File: Version_6.16.md

package info (click to toggle)
csound 1%3A6.18.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 62,416 kB
  • sloc: ansic: 192,636; cpp: 14,151; javascript: 9,654; objc: 9,181; java: 3,337; python: 3,333; sh: 1,783; yacc: 1,255; xml: 985; perl: 635; lisp: 411; tcl: 341; lex: 217; makefile: 126
file content (248 lines) | stat: -rw-r--r-- 7,151 bytes parent folder | download | duplicates (3)
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==