1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248
|
# CSOUND VERSION 6.16 RELEASE NOTES - DRAFT - DRAFT - DRAFT - DRAFT
This delayed release is mainly a bug fixing release, but there
are significant new opcodes, including support for simpler use of MIDI
controls and a new opcode to connect to an Arduino. Also there is an
optional limiter in the sound output chain.
There are a number of new filters, including including the final
opcode written by the 'father of computer music' Max Mathews (with
Julius Smith!), ported by Joel Ross.
-- The Developers
## USER-LEVEL CHANGES
### New opcodes
- cntDelete deletes a counter object
- lfsr, a linear feedback shift register opcode for pseudo random
number generation.
- ctrlsave stores the current values of MIDI controllers in an array.
- turnoff3 extends tuning off to remove instrument instances that are
queued via scheduling but not yet active.
- ctrlprint prints the result of a ctrlsave call in a form that can be
used in an orchestra.
- ctrlprintpresets prints the MIDI controller preset.
- ctrlselect selects a preset for MIDI controller values.
- ctrlpreset defines a preset for MIDI controllers.
- outall writes a signal to all output channels.
- scale2 is similar to scale but has different argument order and has
an optional port filter.
- arduinoReadF extends the arduino family to transfer floating point
values.
- triglinseg and trigexpseg are triggered versions of linseg and
expseg
- vclpf is a 4-pole resonant lowpass linear filter based on a typical
analogue filter configuration.
- spf is a second-order multimode filter based on the Steiner-Parker
configuration with separate lowpass, highpass, and bandpass inputs
and a single output.
- skf is a second-order lowpass or highpass filter based on a
linear model of the Sallen-Key analogue filter.
- svn is a non-linear state variable filter with overdrive control
and optional user-defined non-linear map.
- autocorr computes the autocorrelation of a sequence stored in an array.
- turnoff2_i is init-time version of turnoff2.
- scanu2 is a revision of scanu to make it closer to the original
concept. Damping now a positive value and plucking initialisation
totally rewritten, plus various code improvements.
- st2ms and ms2st are stereo to MS and vice-versa conversion opcodes
with stereo width control.
- mvmfilter is a filter with pronounced resonance and controllable decay time.
### New gen
- gen44 allows the writing of stiffness matrices for scanu/scanu2 in a
textual format.
### Orchestra
- The operations += and -= now work for i and k arrays.
- k-rate array operators are now only processed at k-rate.
### Score
- An instance of a named instrument can have a decimal fraction added
to the name to allow for tied notes and other facilities that were
only avaliable for numbered instruments.
### Options
- New options --limiter and --limiter=num (where num is in range (0,1]
inserts a tanh limiter (see clip version2) at the end of each k-cycle.
This can be used when experimenting or trying some alien inputs to save
your ears or speakers. The default value in the first form is 0.5
- A typing error meant that the tag <CsShortLicense> was not recognised,
although the English spelling (CsSortLicence) was. Corrected.
- New option --default-ksmps=num changes the default value from the
internal fixed number.
- New environment variable `CS_USER_PLUGINDIR` has been added to
indicate a user plugin dir path (in addition to the system plugin
directory). This added search path defaults to standard locations
on different platforms (documented in the manual).
### Modified Opcodes and Gens
- slicearray_i now works for string arrays.
- OSCsend always runs on the first call regardless of the value of kwhen.
- pvadd can access the internal ftable -1.
- pan2 efficiency improved in many cases.
- Add version of pow for the case kout[] = kx ^ ivalues[]
- expcurve and logcurve now incorporate range checks and corrects end
values.
- Streaming LPC opcodes have had a major improvement in performance
(>10x speedup for some cases), due to a new autocorrelation routine.
- Restriction on size of directory name size in ftsamplebank removed.
- If a non string is passed to sprintf to be formatted as a %s an error
is signalled.
- readk family of opcodes now support comments in the input which is ignored.
- Added iflag parameter to sflooper.
- Opcodes beosc, beadsynt, tabrowl, and getrowlin removed.
### Utilities
### Frontends
### General Usage
- Csound no longer supports Python2 opcodes, following end of life for Python 2.
## Bugs Fixed
- The wterrain2 opcode was not correctly compiled on some platforms.
- fprintks opcode crashed when format contains one %s.
- Bug in rtjack when number of outputs differed from the number in
inputs.
- FLsetVal now works properly with "inverted range" FLsliders.
- Conditional expressions with a-rate output now work correctly.
- Bug in --opcode-dir option fixed.
- sfpassign failed to remember the number of presets causing
confusion. This also affects sfplay ad sfinstrplay.
- midiarp opcode fixed (issue 1365).
- A bug in moogladder where the value of 0dbfs affected the output is
now fixed.
- Bugs in several filters where istor was defaulting to 1 instead of 0
as described in the manual have been fixed.
- Bug in assigning numbers to named instruments fixed. This
particularly affected dynamic definitions of instruments.
- Use of %s format in sprintf crashed if the corresponding item was not a
string. Thus now gives an error.
- Fix bug in ftprint where trigger was not working as advertised.
- Asynchronous use of diskin2 fixed.
- pvs2tab does not crash in the sliding case but gives a error.
- In some circumstances turnoff2 could cause the silencing of another
instrument for one k-cycle. This is now fixed.
- timeinstk behaved differently in a UDO to normal use. This has been
corrected.
- Fixed midiarp init method as it was causing an issue with one of the arp modes.
- Fixed scaling of attack stage of xadsr.
- Fix printarray behaviour for string arrays (default is to print at
every cycle); added a variant without trigger.
- Bug with named instrument merging in new compilations fixed.
- ATSA opcode atsinnoi could cause memory problems. The 6.16 release is better but not yet verified.
# SYSTEM LEVEL CHANGES
### System Changes
- New autocorrelation routine can compute in the frequency or
in the time domain. Thanks to Patrick Ropohl for the improvement
suggestion.
- Minimum cmake version bumped to 3.5.
- Image opcodes removed, now in plugin repo.
- faust opcodes removed, now in plugin repo.
- Python opcodes removed, now in plugin repo.
- Ableton Link opcodes removed, now on plugins repo.
### Translations
### API
### Platform Specific
- WebAudio
- iOS
- Android
- Windows
- MacOS:
Some opcode libs with dependencies have been removed from release. Image
opcodes, Python opcodes, Faust opcodes, and FLTK Widget opcodes have
been moved to a separate repository and are not included anymore.
- GNU/Linux
- Haiku port
- Bela
==END==
|