File: Version_6.08.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 (246 lines) | stat: -rw-r--r-- 5,966 bytes parent folder | download | duplicates (6)
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
<!---

To maintain this document use the following markdown:

# First level heading
## Second level heading
### Third level heading

- First level bullet point
 - Second level bullet point
  - Third level bullet point
  
`inline code`

``` preformatted text etc.  ```

[hyperlink](url for the hyperlink)

Any valid HTML can also be used.

--->
# CSOUND VERSION 6.08 RELEASE NOTES

As usual there are a number of opcode fixes and improvements, but the
major changes are in the language structures.  First the score language
has all-new treatment of macros and preprocessing, bringing it in line
with those of the orchestra.  The parsing of the orchestra has had a
number of fixes as outlined below.

A major, and not totally compatible change as been made in reading and
writing array elements.  The rate of the index now often determines
the time of processing; check the entry below under *Orchestra*.  This
simplifies much code and seems to capture expectations; the earlier ad
hoc code had many anomalies.

Also as usual there are a number of new opcodes and internal fixes
to memory leaks and more robust code.
  
-- The Developers

## USER-LEVEL CHANGES

### New opcodes

- dct -- Discrete Cosine Transform of a sample array (type-II DCT)

- getftargs -- copy arguments of a gen to an S-variable

- mfb -- implements a mel-frequency filter-bank for an array of input
  magnitudes 

### New Gen and Macros

- quadbezier -- generating Bezier curves in a table

### Orchestra

- The character ¬ is now correctly treated as a variant of ~ for bitwise not

- Lexing bug which could corrupt strings fixed

- Ensure no newlines in string-lexing

- Small improvement in reported line numbers

- Better checking of macro syntax

- Improved parsing of setting of labels

- Added error handling for unmatched brackets for UDO arg specification

- Check that `#included` file is not a directory

- Deeply nested macro calls better policed

- For years Csound has fixed the pitch of A4 at 440Hz.  Now this can be set in the header using the new r-variable A4, and also read with that variable

- Floating point values can use e or E for exponent

- Array access semantics have been clarified:

	- i[i]  => reading at i-time and perf-time, writing at i-time
    only.
	- i[k] =>  reading at perf-time, writing yields a runtime error
	- k[i], k[k] =>  reading at perf-time, writing at perf-time
	- a[i], a[k] => reading at perf-time, writing at perf-time
    - other (S[], f[]) => reading and writing according to index type (i,k).
   
In particular, i(k[i]) will continue not to work, as before, but the new operator
i(k[],i) is provided to cover this case.

- xout validation no longer fails when constants are given

### Score

- New code to handle macros and other preprocessor commands. Brings it
  into line with orchestra code

- New score opcode C introduced as a way of switching automatic carry off (`C 0`)
  or on (default) (`C 1`)

### Options

- The tempo setting can now be a floating point value (previously fixed to integer)

- New option --version prints version information and exits

### Modified Opcodes and Gens

- Problems in centroid fixed.

- Better treatment of rounding in printks

- OSC extended to include multicast

- Faust opcodes brought up to date with faust

- oscil1 and oscili can take a negative duration

- fout opcode documentation clarified

- Release time in mxadsr fixed

- centroid opcode  extended to take array inputs in addition

- ptable opcodes are now identical to table family

- ftgen now as array input option

- subinstr can now have string arguments

- the i() format is extended to work on k-rate arrays with the first
  argument being an array, followed by the indices

- monitor opcode can now write to an array

### Utilities

- pvlook now always prints explicit analysis window name
     
### Frontends

- icsound:

- csound~:

- csdebugger:
  
- HTML5

 - csound.node: Implemented for Linux, minor API fix.

 - pnacl: Added compileCsdText method to csound object

 - Emscripten:

- CsoundQT:

### General Usage

- Checking of valid macro names improved

- ```#undef``` fixed

## Bugs Fixed

- Fixes to prints in format use

- jitter2 reworked to make it more like the manual.

- oscbank has had multiple fixes and now works as advertised

- bformdec1 with arrays and type 4 fixed

- Bug in pvsceps fixed

- In various formatted print opcodes extra trash characters might appear -- fixed

- Assigning variables with --sample-accurate could give unexpected results; this is believed fixed now

- padsynth square profile fix, and opcode prints less depending on warn level

- gen31 fixed

- gen41 fixed

- Bug in sensekey fixed
    
- A number of issues in centroid fixed

- An internal miscalculation of variable sizes that only affected 32bit
  architectures fixed
    
## SYSTEM LEVEL CHANGES

### System Changes

- New score lexing and preprocessor

- MAC line endings now work again

- System information messages (system sampling rate, etc) are now directed to stdout

- rtjack reworked to deal with names and numbers

- The version printing now includes the commit as so the developers
  know which patches have been applied 

### API

- API version now 4.0

- Now supports named gens

- fterror now in API

- API functions SetOutput and GetOutputFormat fixed

- Many API functions now use const where appropriate

- Messages can now be directed to stdout from the API by using CSOUNDMSG_STDOUT attribute
    
- New Lisp CFFI and FFI interfaces tested with Steel Bank Common Lisp (64 bit CPU architecture), runs in separate thread

- ctcsound.py, a new FFI interface for Python was introduced in version 6.07. It is now the recommended interface for Python,
  csnd6.py being deprecated.

### Platform Specific

- iOS

- Android

 - Multichannel input and output allowed

- Windows

 - csound64.lib import library added to Windows installer
    
- OSX

 - Minor issues with installer fixed 

- GNU/Linux

==END==