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==
|