diff --git a/A4.html b/A4.html index 724000e6b07..251989933c6 100644 --- a/A4.html +++ b/A4.html @@ -39,7 +39,7 @@

- +

Description

These statements are global value assignments, made @@ -51,12 +51,12 @@

Description

- +

Syntax

A4 = iarg
- +

Initialization

A4 = (optional) -- set reference frequency @@ -74,21 +74,21 @@

Initialization

- +

Examples

Here is an example of the A4 opcode. It uses the file A4.csd.

- +

Example 34. Example of the A4 opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -157,24 +157,16 @@ 

Examples

- -

See Also

+ +

See also

- sr, - kr, - ksmps, - nchnls, - nchnls_i, - 0dbfs, - cpspch, - cpsoct, - cpsmidinn, - cps2pch, - cpsxpch. -

+ + Orchestra Header Statements + +

- +

Credits

diff --git a/ATSadd.html b/ATSadd.html index 92453abe61d..2dd88e325b7 100644 --- a/ATSadd.html +++ b/ATSadd.html @@ -38,20 +38,20 @@

- +

Description

ATSadd reads from an ATS analysis file and uses the data to perform additive synthesis using an internal array of interpolating oscillators.

- +

Syntax

ar ATSadd ktimepnt, kfmod, iatsfile, ifn, ipartials[, ipartialoffset, \
         ipartialincr, igatefn]
- +

Initialization

iatsfile – the ATS number (n in ats.n) or the name in quotes of the analysis file made using ATSA. @@ -69,7 +69,7 @@

Initialization

- +

Performance

ktimepnt – The time pointer in seconds used to index the ATS file. Used for ATSadd exactly the same as for pvoc.

ATSadd and ATSaddnz are based on pvadd by Richard Karpen and use files created by Juan Pampin's ATS (Analysis - Transformation - Synthesis). @@ -80,7 +80,7 @@

Performance

- +

Examples

  ktime line   0, p3, 2.5
   asig  ATSadd ktime, 1, "clarinet.ats", 1, 20, 2
@@ -91,13 +91,13 @@ 

Examples

Here is a complete example of the ATSadd opcode. It uses the file ATSadd.csd.

- +

Example 70. Example of the ATSadd opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -147,13 +147,13 @@ 

Examples

Here is another example of the ATSadd opcode. It uses the file ATSadd-2.csd.

- +

Example 71. Example 2 of the ATSadd opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -220,20 +220,16 @@ 

Examples

- +

Credits

diff --git a/ATSaddnz.html b/ATSaddnz.html index 97d616867e3..e781cd1f6f6 100644 --- a/ATSaddnz.html +++ b/ATSaddnz.html @@ -38,19 +38,19 @@

- +

Description

ATSaddnz reads from an ATS analysis file and uses the data to perform additive synthesis using a modified randi function.

- +

Syntax

ar ATSaddnz ktimepnt, iatsfile, ibands[, ibandoffset, ibandincr]
- +

Initialization

iatsfile – the ATS number (n in ats.n) or the name in quotes of the analysis file made using ATSA. @@ -63,7 +63,7 @@

Initialization

- +

Performance

ktimepnt – The time pointer in seconds used to index the ATS file. Used for ATSaddnz exactly the same as for pvoc and ATSadd.

ATSaddnz and ATSadd are based on pvadd by Richard Karpen and use files created by Juan Pampin's ATS (Analysis - Transformation - Synthesis). @@ -72,7 +72,7 @@

Performance

- +

Examples

  ktime line     0, p3, 2.5
   asig  ATSaddnz ktime, "clarinet.ats", 25
@@ -83,13 +83,13 @@ 

Examples

Here is a complete example of the ATSaddnz opcode. It uses the file ATSaddnz.csd.

- +

Example 72. Example of the ATSaddnz opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -109,18 +109,18 @@ 

Examples

0dbfs = 1 ;ATSA wants a mono file! -ires system_i 1,{{ atsa beats.wav beats.ats }} ; default size +ires system_i 1,{{ atsa Mathews.wav Mathews.ats }} ; default options instr 1 ktime line 0, p3, p3 -asig ATSaddnz ktime, "beats.ats", 1, 4 ; only 1 noise band, the 4th noise band - outs asig*6, asig*6 ;amplify +asig ATSaddnz ktime, "Mathews.ats", 1, 4 ; only 1 noise band, the 4th noise band + outs asig*2, asig*2 ;amplify endin </CsInstruments> <CsScore> -i1 0 2 +i1 1 15.6 e </CsScore> </CsoundSynthesizer> @@ -134,13 +134,13 @@

Examples

Here is another example of the ATSaddnz opcode. It uses the file ATSaddnz-2.csd.

- +

Example 73. Example 2 of the ATSaddnz opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -197,20 +197,16 @@ 

Examples

- +

Credits

diff --git a/ATSbufread.html b/ATSbufread.html index 09d5c3c7d2f..a6e3a11276b 100644 --- a/ATSbufread.html +++ b/ATSbufread.html @@ -38,20 +38,20 @@

- +

Description

ATSbufread reads data from and ATS data file and stores it in an internal data table of frequency, amplitude pairs.

- +

Syntax

ATSbufread ktimepnt, kfmod, iatsfile, ipartials[, ipartialoffset, \
           ipartialincr]
- +

Initialization

iatsfile – the ATS number (n in ats.n) or the name in quotes of the analysis file made using ATSA. @@ -64,7 +64,7 @@

Initialization

- +

Performance

ktimepnt – The time pointer in seconds used to index the ATS file. Used for ATSbufread exactly the same as for pvoc.

@@ -89,20 +89,20 @@

Performance

- +

Examples

Here is an example of the ATSbufread opcode. It uses the file ATSbufread.csd.

- +

Example 74. Example of the ATSbufread opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -119,32 +119,34 @@ 

Examples

nchnls = 2 0dbfs = 1 -; by Menno Knevel - 2021 +; by Menno Knevel - 2023 ;ATSA wants a mono file! ;it takes a while to analyze these files... ires1 system_i 1,{{ atsa finneganswake1.flac finneganswake.ats }} prints "\n***1st analyzed file is ready***\n\n" -ires2 system_i 1,{{ atsa beats.wav beats.ats }} +ires2 system_i 1,{{ atsa drumsMlp.wav drumsMlp.ats }} prints "\n***2nd analyzed file is ready***\n\n" instr 1 -ipr ATSinfo "finneganswake.ats", 3 ; get number of partials -prints "\n***number of partials = %d***\n\n", ipr +ires1 ATSinfo "finneganswake.ats", 3 ; get number of partials +ires2 ATSinfo "drumsMlp.ats", 3 ; get number of partials +prints "\n***number of partials of finneganswake.ats = %d***\n\n", ires1 +prints "\n***number of partials of drumsMlp.ats = %d***\n\n", ires2 ktime1 line 0, p3, 12.67 ktime2 line 0, p3, 2 kline line 0, p3, 1 ; cross from voice to the beats - ATSbufread ktime1, 1, "finneganswake.ats", ipr -aout ATScross ktime2, 1, "beats.ats", 1, kline, 1, ipr - outs aout*1.7, aout*1.7 + ATSbufread ktime1, 1, "finneganswake.ats", ires1 +aout ATScross ktime2, 1, "drumsMlp.ats", 1, kline, 1, ires2 + outs aout*2.5, aout*2.5 endin </CsInstruments> <CsScore> -; sine wave. -f 1 0 16384 10 1 +; sinoid wave. +f 1 0 16384 10 1 .3 .1 .5 i 1 0 12.7 e @@ -159,20 +161,16 @@

Examples

See also the examples for ATScross, ATSinterpread and ATSpartialtap

- +

Credits

diff --git a/ATScross.html b/ATScross.html index 8aa4ddccdb4..9bc56e8af0c 100644 --- a/ATScross.html +++ b/ATScross.html @@ -38,20 +38,20 @@

- +

Description

ATScross uses data from an ATS analysis file and data from an ATSbufread to perform cross synthesis.

- +

Syntax

ar ATScross ktimepnt, kfmod, iatsfile, ifn, kmylev, kbuflev, ipartials \
           [, ipartialoffset, ipartialincr]
- +

Initialization

iatsfile – integer or character-string denoting a control-file derived from ATS analysis of an audio signal. An integer denotes the suffix of a file ATS.m; a character-string (in double quotes) gives a filename, optionally a full pathname. If not full-path, the file is sought first in the current directory, then in the one given by the environment variable SADIR (if defined). @@ -65,7 +65,7 @@

Initialization

- +

Performance

ktimepnt – The time pointer in seconds used to index the ATS file. Used for ATScross exactly the same as for pvoc.

@@ -79,19 +79,19 @@

Performance

- +

Examples

Here is an example of the ATScross opcode. It uses the file ATScross.csd.

- +

Example 75. Example of the ATScross opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -108,25 +108,28 @@ 

Examples

nchnls = 2 0dbfs = 1 -; by Menno Knevel - 2021 +; by Menno Knevel - 2023 ;ATSA wants a mono file! ;it takes a while to analyze these files... ires1 system_i 1,{{ atsa finneganswake1.flac finneganswake.ats }} prints "\n***1st analyzed file is ready***\n\n" -ires2 system_i 1,{{ atsa beats.wav beats.ats }} + +ires2 system_i 1,{{ atsa drumsMlp.wav drumsMlp.ats }} prints "\n***2nd analyzed file is ready***\n\n" -instr 1 -ipr ATSinfo "finneganswake.ats", 3 ; get number of partials -prints "\n***number of partials = %d***\n\n", ipr +instr 1 +ires1 ATSinfo "finneganswake.ats", 3 ; get number of partials +ires2 ATSinfo "drumsMlp.ats", 3 ; get number of partials +prints "\n***number of partials of finneganswake.ats = %d***\n\n", ires1 +prints "\n***number of partials of drumsMlp.ats = %d***\n\n", ires2 ktime1 line 0, p3, 12.67 ktime2 line 0, p3, 2 kline line p4, p3, p5 - ATSbufread ktime1, 1, "finneganswake.ats", ipr -aout ATScross ktime2, 1, "beats.ats", 1, kline, 1, ipr ; cross from p4 to p5 - outs aout*1.7, aout*1.7 + ATSbufread ktime1, 1, "finneganswake.ats", ires1 +aout ATScross ktime2, 1, "drumsMlp.ats", 1, kline, 1, 68 ; cross from p4 to p5 + outs aout*2.5, aout*2.5 endin @@ -135,8 +138,8 @@

Examples

; sine wave. f 1 0 16384 10 1 ; start end -i 1 0 12.7 0 1 ; voice --> beats -i 1 15 12.7 1 0 ; beats --> voice +i 1 0 12.7 0 1 ; voice --> drums +i 1 15 12.7 1 0 ; drums --> voice e </CsScore> </CsoundSynthesizer> @@ -148,20 +151,16 @@

Examples

- +

Credits

diff --git a/ATSinfo.html b/ATSinfo.html index ac3ec1d8038..2de238a0a0a 100644 --- a/ATSinfo.html +++ b/ATSinfo.html @@ -38,19 +38,19 @@

- +

Description

atsinfo reads data out of the header of an ATS file.

- +

Syntax

idata ATSinfo iatsfile, ilocation
- +

Initialization

iatsfile – the ATS number (n in ats.n) or the name in quotes of the analysis file made using ATSA. @@ -69,7 +69,7 @@

Initialization

8 - ATS file Type

- +

Performance

Macros can really improve the legibility of your csound code, I have provided my Macro Definitions below:

@@ -86,19 +86,19 @@

Performance

ATSinfo can be useful for writing generic instruments that will work with many ATS files, even if they have different lengths and different numbers of partials etc. Example 2 is a simple application of this.

- +

Examples

Here is an example of the ATSinfo opcode. It uses the file ATSinfo.csd.

- +

Example 76. Example of the ATSinfo opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -155,7 +155,7 @@ 

Examples

- +

Other examples

    @@ -177,20 +177,16 @@

    Other examples

- +

Credits

diff --git a/ATSinterpread.html b/ATSinterpread.html index 5790c9831e7..07a87a11dba 100644 --- a/ATSinterpread.html +++ b/ATSinterpread.html @@ -38,38 +38,38 @@

- +

Description

ATSinterpread allows a user to determine the frequency envelope of any ATSbufread.

- +

Syntax

kamp ATSinterpread kfreq
- +

Performance

kfreq - a frequency value (given in Hertz) used by ATSinterpread as in index into the table produced by an ATSbufread.

ATSinterpread takes a frequency value (kfreq in Hz). This frequency is used to index the data of an ATSbufread. The return value is an amplitude gained from the ATSbufread after interpolation. ATSinterpread allows a user to determine the frequency envelope of any ATSbufread. This data could be useful for an number of reasons, one might be performing cross synthesis of data from an ATS file and non ATS data.

- +

Examples

Here is an example of the ATSinterpread opcode. It uses the file ATSinterpread.csd.

- +

Example 77. Example of the ATSinterpread opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -125,20 +125,16 @@ 

Examples

- +

Credits

diff --git a/ATSpartialtap.html b/ATSpartialtap.html index 11b6394233a..4111a922f43 100644 --- a/ATSpartialtap.html +++ b/ATSpartialtap.html @@ -38,46 +38,46 @@

- +

Description

ATSpartialtap takes a partial number and returns a frequency, amplitude pair. The frequency and amplitude data comes from an ATSbufread opcode.

- +

Syntax

kfrq, kamp ATSpartialtap ipartialnum
- +

Initialization

ipartialnum - indicates the partial that the ATSpartialtap opcode should read from an ATSbufread.

- +

Performance

kfrq - returns the frequency value for the requested partial.

kamp - returns the amplitude value for the requested partial.

ATSpartialtap takes a partial number and returns a frequency, amplitude pair. The frequency and amplitude data comes from an ATSbufread opcode. This is more restricted version of ATSread, since each ATSread opcode has its own independent time pointer, and ATSpartialtap is restricted to the data given by an ATSbufread. Its simplicity is its attractive feature.

- +

Examples

Here is an example of the ATSpartialtap opcode. It uses the file ATSpartialtap.csd.

- +

Example 81. Example of the ATSpartialtap opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -94,15 +94,15 @@ 

Examples

nchnls = 2 0dbfs = 1 -; by Menno Knevel - 2021 +; by Menno Knevel - 2023 -ires1 system_i 1,{{ atsa beats.wav beats1.ats }} ; default settings -ires2 system_i 1,{{ atsa -h.8 -c8 beats.wav beats2.ats }} ; longer hopsize & more cycles +ires1 system_i 1,{{ atsa drumsMlp.wav drumsMlp1.ats }} ; default settings +ires2 system_i 1,{{ atsa -h.8 -c8 drumsMlp.wav drumsMlp2.ats }} ; longer hopsize & more cycles instr 1 ktime line 0, p3, 2 - ATSbufread ktime, 1, p4 , 90 + ATSbufread ktime, 1, p4 , 54 kfreq1, kam1 ATSpartialtap 5 kfreq2, kam2 ATSpartialtap 20 kfreq3, kam3 ATSpartialtap 30 @@ -117,9 +117,9 @@

Examples

</CsInstruments> <CsScore> f 1 0 16384 10 1 0 .5 0 .33 ; square-ish wave -; stretch the beats 2x -i 1 0 2 "beats1.ats" 1 ; defaults settings for ATSA -i 1 3 2 "beats2.ats" .25 ; different settings +; stretch the drums... +i 1 0 2 "drumsMlp1.ats" 2.5 ; defaults settings for ATSA +i 1 3 10 "drumsMlp2.ats" 1 ; different settings e </CsScore> </CsoundSynthesizer> @@ -133,20 +133,16 @@

Examples

- +

Credits

diff --git a/ATSread.html b/ATSread.html index bd0349481ca..09c674afeb0 100644 --- a/ATSread.html +++ b/ATSread.html @@ -38,19 +38,19 @@

- +

Description

ATSread returns the amplitude (kamp) and frequency (kfreq) information of a user specified partial contained in the ATS analysis file at the time indicated by the time pointer ktimepnt.

- +

Syntax

kfreq, kamp ATSread ktimepnt, iatsfile, ipartial
- +

Initialization

iatsfile – the ATS number (n in ats.n) or the name in quotes of the analysis file made using ATSA. @@ -60,7 +60,7 @@

Initialization

- +

Performance

kfreq, kamp - outputs of the ATSread unit. These values represent the frequency and amplitude of a specific partial selected by the user using ipartial. The partials' informations are derived from an ATS analysis. ATSread linearly interpolates the frequency and amplitude between frames in the ATS analysis file at k-rate. The output is dependent on the data in the analysis file and the pointer ktimepnt. @@ -68,19 +68,19 @@

Performance

ktimepnt – The time pointer in seconds used to index the ATS file. Used for ATSread exactly the same as for pvoc and ATSadd.

- +

Examples

Here is an example of the ATSread opcode. It uses the file ATSread.csd.

- +

Example 78. Example of the ATSread opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -135,13 +135,13 @@ 

Examples

Here is a musical example of the ATSread opcode. It uses the file ATSread-musical.csd.

- +

Example 79. Example 2 of the ATSread opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -271,20 +271,16 @@ 

Examples

- +

Credits

diff --git a/ATSreadnz.html b/ATSreadnz.html index 777d8984f7d..0c346b4a868 100644 --- a/ATSreadnz.html +++ b/ATSreadnz.html @@ -38,19 +38,19 @@

- +

Description

ATSreadnz returns the energy (kenergy) of a user specified noise band (1-25 bands) at the time indicated by the time pointer ktimepnt.

- +

Syntax

kenergy ATSreadnz ktimepnt, iatsfile, iband
- +

Initialization

iatsfile – the ATS number (n in ats.n) or the name in quotes of the analysis file made using ATSA. @@ -60,7 +60,7 @@

Initialization

- +

Performance

kenergy outputs the linearly interpolated energy of the noise band indicated in iband. The output is dependent on the data in the analysis file and the ktimepnt. @@ -72,7 +72,7 @@

Performance

- +

Examples

   ktime   line      2.5, p3, 0
@@ -97,13 +97,13 @@ 

Examples

Here is a complete example of the ATSreadnz opcode. It uses the file ATSreadnz.csd.

- +

Example 80. Another example of the ATSreadnz opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -118,26 +118,26 @@ 

Examples

sr = 44100 ksmps = 32 nchnls = 2 -0dbfs = 1 +0dbfs = 1 -; by Menno Knevel - 2021 +; by Menno Knevel - 2023 -ires system_i 1,{{ atsa beats.wav beats.ats }} ; default settings +ires system_i 1,{{ atsa Mathews.wav Mathews.ats }} ; default settings instr 1 ktime line 0, p3, 2 -kenergy ATSreadnz ktime, "beats.ats", p4 ; return energy from band p4 -anoise randi kenergy, 1500 - outs anoise *.7, anoise *.7 +kenergy ATSreadnz ktime, "Mathews.ats", p4 ; return energy from band p4 +anoise randi kenergy, 5000 + outs anoise *p5, anoise *p5 ; compensate amplitude differences! endin </CsInstruments> <CsScore> -; band -i 1 0 2 6 ; 3 different energy bands -i 1 3 2 12 -i 1 6 2 17 +; 3 different energy bands, compensated by different amplitude values +i 1 0 10 6 .015 ; loud!! +i 1 11 10 12 .4 ; less energy in this band +i 1 22 10 17 1 ; and even less... e </CsScore> @@ -150,20 +150,16 @@

Examples

- +

Credits

diff --git a/ATSsinnoi.html b/ATSsinnoi.html index c52aceccc1a..c937ffc73b0 100644 --- a/ATSsinnoi.html +++ b/ATSsinnoi.html @@ -38,20 +38,20 @@

- +

Description

ATSsinnoi reads data from an ATS data file and uses the information to synthesize sines and noise together.

- +

Syntax

ar ATSsinnoi ktimepnt, ksinlev, knzlev, kfmod, iatsfile, ipartials \
           [, ipartialoffset, ipartialincr]
- +

Initialization

iatsfile – the ATS number (n in ats.n) or the name in quotes of the analysis file made using ATSA. @@ -64,7 +64,7 @@

Initialization

- +

Performance

ktimepnt – The time pointer in seconds used to index the ATS file. Used for ATSsinnoi exactly the same as for pvoc.

@@ -79,7 +79,7 @@

Performance

- +

Examples

   ktime   line       0, p3, 2.5
@@ -90,13 +90,13 @@ 

Examples

Here is a complete example of the ATSsinnoi opcode. It uses the file ATSsinnoi.csd.

- +

Example 82. Example of the ATSsinnoi opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -115,8 +115,8 @@ 

Examples

nchnls = 2 0dbfs = 1 -ires1 system_i 1,{{ atsa -h.5 -c1 beats.wav beats1.ats }} -ires2 system_i 1,{{ atsa beats.wav beats2.ats }} ; default settings -h.25 -c4 +ires1 system_i 1,{{ atsa -h.5 -c1 drumsMlp.wav drumsMlp1.ats }} +ires2 system_i 1,{{ atsa drumsMlp.wav drumsMlp2.ats }} ; default settings -h.25 -c4 instr 1 @@ -131,14 +131,14 @@

Examples

<CsScore> s ; atsfile partial -i 1 0 2 "beats1.ats" 3 -i 1 3 2 "beats2.ats" 3 +i 1 0 2 "drumsMlp1.ats" 3 +i 1 3 2 "drumsMlp2.ats" 3 s -i 1 0 2 "beats1.ats" 13 -i 1 3 2 "beats2.ats" 13 +i 1 0 2 "drumsMlp1.ats" 13 +i 1 3 2 "drumsMlp2.ats" 13 s -i 1 0 2 "beats1.ats" 30 -i 1 3 2 "beats2.ats" 30 +i 1 0 2 "drumsMlp1.ats" 30 +i 1 3 2 "drumsMlp2.ats" 30 e </CsScore> @@ -152,13 +152,13 @@

Examples

Here is another complete example of the ATSsinnoi opcode. It uses the file ATSsinnoi-2.csd.

- +

Example 83. Example 2 of the ATSsinnoi opcode.

- +
 <CsoundSynthesizer>
 <CsOptions>
@@ -245,20 +245,16 @@ 

Examples

- +

Credits

diff --git a/AbletonLink.html b/AbletonLink.html new file mode 100644 index 00000000000..5026e66b2e7 --- /dev/null +++ b/AbletonLink.html @@ -0,0 +1,127 @@ + + + + + + Ableton Link Opcodes + + + + + + + + + + +
+
+
+
+

Ableton Link Opcodes

+
+
+
+

+The purpose of Ableton Link is to synchronize musical time, beat, and phase +between musical applications performing in real time from separate +programs, processes, and network addresses. This is useful, e.g., for laptop +orchestras. +

+

+ Ableton Live is not required to use the Ableton Link protocol, as it is a peer-to-peer protocol. + There is one Link session on the local area network that maintains a global time, tempo, and + beat. Any peer may set the tempo, +and thereafter all peers in the session share that tempo. A process may +have any number of peers (i.e., any number of Link objects). Each peer +may also define its own "quantum" i.e. some multiple of the beat, e.g. a +quantum of 4 might imply 1 beat every measure of 4/4 time. The phase of the time is defined w.r.t +the quantum, e.g. phase 0.5 of a quantum of 4 would be the second beat of +the measure. Peers may read and write timelines with local time, beat, and +phase, counting from when the peer is enabled, but the tempo and beat on +all timelines for all peers in the session will coincide. +

+

+The first peer in a session determines the initial tempo. After +that, the tempo is changed only, and whenever, any peer explicity calls +the set tempo functon (link_tempo_set, in Csound). +

+

+The Link tempo is independent of the Csound score tempo. Performances that +need to synchronize the score tempo with the Link tempo may use the tempo +opcode to set the score tempo from the Link tempo; or conversely, set the +Link tempo from the score tempo using the tempoval opcode. +

+

+Please note, the phase and beat obtained or set by these opcodes is only as +precise as allowed by the duration of Csound's kperiod, the audio driver +used by Csound, network latency and stability, and the system's most precise clock. +

+
+
    +
  • +

    link_create - Creates an Ableton Link peer object.

    +
  • +
  • +

    link_enable - Enable/disable synchronization with the network Ableton Link session tempo and beat.

    +
  • +
  • +

    link_is_enabled - Returns whether or not this Ableton Link peer has joined the network session.

    +
  • +
  • +

    link_tempo_set - Sets the tempo for the network's Ableton Link session.

    +
  • +
  • +

    link_tempo_set - Returns the tempo of the network's Ableton Link session.

    +
  • +
  • +

    link_beat_get - Returns the beat, phase, and current time of Ableton Link for this session for a given quantum.

    +
  • +
  • +

    link_metro - Returns a trigger that is 1 on the beat and 0 otherwise along with the beat, phase, and current time of Ableton Link for this session for a given quantum.

    +
  • +
  • +

    link_beat_request - Requests a beat with a specific number at a specific time at a given quantum.

    +
  • +
  • +

    link_beat_force - Forces the network Ableton Link session to adopt a beat with a specific number at a specific time at a given quantum.

    +
  • +
  • +

    link_peers - Returns the number of peers currently joined in the network Ableton Link session.

    +
  • +
+
+
+ + + diff --git a/C.html b/C.html index dcc1f54fec2..6411293845f 100644 --- a/C.html +++ b/C.html @@ -39,19 +39,19 @@

- +

Description

This statement switches automatic carrying of missing arguments on or off.

- +

Syntax

C p1
- +

Performance

p1 -- Specifies whether to switch off (value @@ -59,19 +59,19 @@

Performance

- +

Examples

Here is an example of the C statement. It uses the file C.csd.

- +

- Example 1261. Example of the C statement. + Example 1276. Example of the C statement.

- +
 <CsoundSynthesizer>
 
@@ -115,7 +115,14 @@ 

Examples

- + +

See Also

+

+ Score Statements +

+
+
+

Credits

diff --git a/CommandDesc.html b/CommandDesc.html index 36fafa24a08..b01ac33cd1c 100644 --- a/CommandDesc.html +++ b/CommandDesc.html @@ -71,7 +71,7 @@

Description of the

Csound reports on the various stages of score and orchestra processing as it executes, performing various syntax and error checks along the way. Once the actual performance has begun, any error messages will derive from either the instrument loader or the unit generators themselves. A CSound command may include any rational combination of flag arguments.

-

Running the examples in this manual from the command line

+

Running the examples in this manual from the command line

Most of the manual's examples come ready to run without the need of adding any command line flags since they specify options within the csd file's <CsOptions> tag, so you only need to type something like:

diff --git a/CommandEnvironment.html b/CommandEnvironment.html index 422b31a831f..cf18e7b49dd 100644 --- a/CommandEnvironment.html +++ b/CommandEnvironment.html @@ -87,11 +87,11 @@

Csound Envi
-

Setting environment variables

+

Setting environment variables

-

On the command line

+

On the command line

You can set environment variables on the command line or the configuration file .csound6rc by using the command line flag --env:NAME=VALUE or --env:NAME+=VALUE, where NAME is the environment variable name, and VALUE is its value. See Command-line Flags

@@ -109,12 +109,12 @@

On the command line

-

Windows

+

Windows

To set a csound environment on Windows XP and 2000 go to Control Panel->System->Advanced and click on the button 'Environment Variables'. On other versions of Windows earlier than Windows XP and Windows 2000 you set environment variables in the autoexec.bat file. Go to 'My Computer', select C: drive, right click on autoexec.bat, and select 'Edit'. The statement format is: SET NAME=VALUE .

-

Linux

+

Linux

You can set environment variables on Linux in many ways. You can set them using the export shell command, by setting them on .bashrc or similar files or by adding them to the /etc/profile file.

-

Mac

+

Mac

~$ export OPCODE6DIR64=/Users/you/your/Csound6/build

in addition if the bash shell is the default, then it is usually easier to edit your .bashrc or /etc/profile.

Note that if users choose one of the above methods, ie editing the .bashrc file then the environment variables are executed when a new shell is created. This can be problematic if your application implements a Quartz or Aqua interface and does not use the commandline.

diff --git a/CommandFlags.html b/CommandFlags.html index 3bcfd4b142a..53c99efe74f 100644 --- a/CommandFlags.html +++ b/CommandFlags.html @@ -37,20 +37,20 @@

csound

- +

Description

The csound command executes Csound.

- +

Syntax

csound  [flags]  [orchname]  [scorename]
csound  [flags]  [csdfilename]
- +

Csound command line flags

Listed below are the command line flags available in Csound6 in alphabetical order. Various platform @@ -1396,7 +1396,9 @@

Csound command line flags

Start and stop instances of instruments at the nearest sample to the requested time. This is in contrast to traditional Csound which rounds the times to the nearest - k-cycle. Note that this does not work with tied notes. + k-cycle. Note that this does not work with tied notes, + nor does it change the Midi timing (as this is only + affected by ksmps size (control rate).

diff --git a/CommandFlagsCategory.html b/CommandFlagsCategory.html index c92a92bb4a7..56af2a72cdb 100644 --- a/CommandFlagsCategory.html +++ b/CommandFlagsCategory.html @@ -1245,7 +1245,9 @@

Command-l Start and stop instances of instruments at the nearest sample to the requested time. This is in contrast to traditional Csound which rounds the times to the nearest - k-cycle. Note that this does not work with tied notes. + k-cycle. Note that this does not work with tied notes, + nor does it change the Midi timing (as this is only + affected by ksmps size (control rate).

diff --git a/CommandUnifile.html b/CommandUnifile.html index 577f53b161a..c9b3fdccb79 100644 --- a/CommandUnifile.html +++ b/CommandUnifile.html @@ -62,20 +62,20 @@

Description

The file is a structured data file which uses markup language, similar to any SGML such as HTML. Start tags (<tag>) and end tags (</tag>) are used to delimit the various elements. The file is saved as a text file.

-

Structured Data File Format

-

Mandatory Elements

+

Structured Data File Format

+

Mandatory Elements

The first tag in the file must be the start tag <CsoundSynthesizer>. The last tag in the file must be the end tag </CsoundSynthesizer>. This element is used to alert the csound compiler to the .csd format. All text before the start tag and after the end tag is ignored by Csound. The tag may also be spelled <CsoundSynthesiser>.

-

Options (<CsOptions>)

+

Options (<CsOptions>)

Csound command line flags are put in the Options Element. This section is delimited by the start tag <CsOptions> and the end tag </CsOptions> Lines beginning with # or ; are treated as comments.

-

Orchestra (<CsInstruments>)

+

Orchestra (<CsInstruments>)

The instrument definitions (orchestra) are put into the Instruments Element. The statements and syntax in this section are identical to the Csound orchestra file, and have the same requirements, including the header statements (sr, kr, etc.) This Instruments Element is delimited with the start tag <CsInstruments> and the end tag </CsInstruments>.

-

Score (<CsScore>)

+

Score (<CsScore>)

Csound score statements are put in the Score Element. The statements and syntax in this section are identical to the Csound score file, and have the same requirements. The Score Element is delimited by the start tag <CsScore> and the end tag </CsScore>.

@@ -87,8 +87,8 @@

Score (<CsScore>)

the destination score file. The external program should create a standard Csound score.

-

Optional Elements

-

Included Base64 Files (<CsFileB>)

+

Optional Elements

+

Included Base64 Files (<CsFileB>)

Base64-encoded files may be included with the tag <CsFileB filename=filename>, where filename is the name of the file to be included. The Base64-encoded data should be terminated with a </CsFileB> tag. For encoding files, the csb64enc and makecsd utilities (included with Csound 5.00 and newer) can be used. The file will be extracted to the current directory, and deleted at end of performance. If there is an already existing file with the same name, it is not overwritten, but an error will occur instead.

@@ -98,7 +98,7 @@

Included Base64 Files (<CsFileB>)

Base64-encoded sample files may be included with the tag <CsSampleB filename=filename>, where filename is the name of the file containing the sample. There is no matching end tag. This was added in Csound version 4.07. Note: using this tag is not recommended; use <CsFileB> instead.

-

Included Unencoded Files (<CsFile>)

+

Included Unencoded Files (<CsFile>)

Unencoded files may be included with the tag <CsFile @@ -111,7 +111,7 @@

Included Unencoded Files (<CsFile>)

the same name, it is not overwritten, but an error will occur instead.

-

Version Blocking (<CsVersion>)

+

Version Blocking (<CsVersion>)

Versions of Csound may blocked by placing one of the following statements between the start tag <CsVersion> and the end tag </CsVersion>: @@ -139,7 +139,7 @@

Version Blocking (<CsVersion>)

This was added in Csound version 4.09.

-

Licence Information (<CsLicence> or <CsLicense>)

+

Licence Information (<CsLicence> or <CsLicense>)

Licencing details can be included in between the start tag <CsLicence> and the end tag @@ -147,7 +147,7 @@

Licence Information (<CsLicence> or <CsLicense& for this information, any text is acceptable. This text will be printed by Csound to the console when the CSD is run.

-

Licence Information (<CsShortLicence> or <CsShortLicense>)

+

Licence Information (<CsShortLicence> or <CsShortLicense>)

From version 6.05 licencing details can be also included in between the start tag @@ -185,7 +185,7 @@

Licence Information (<CsShortLicence> or <CsSho

-

Embedded HTML (<html>)

+

Embedded HTML (<html>)

Any valid HTML code can be embedded in the CSD file. This code should be structured exactly like an ordinary Web page. This code can contain any valid HTML, JavaScript, Cascading Style Sheet, WebGL, etc., etc. code. diff --git a/Configuring.html b/Configuring.html index cfa754a3d56..d5885fff23d 100644 --- a/Configuring.html +++ b/Configuring.html @@ -9,7 +9,7 @@ - + @@ -19,7 +19,7 @@ Configuring - Prev  + Prev  Part I. Overview  Next @@ -45,33 +45,18 @@

Configuring

(Note that for csound5 these environment variables were OPCODEDIR and OPCODEDIR64.)

-

The Python opcodes currently require at least Python 2.4, which can be downloaded from www.python.org if it is not already on your system. You can check if it is available by typing 'python' on a command prompt or DOS window. +

The Python opcodes currently require Python 3.x, which can be downloaded from www.python.org if it is not already on your system. You can check if it is available by typing 'python' on a command prompt or DOS window.

-

Windows

+

Windows

On Windows, make sure the directory or directories (normally the C:\Program Files\Csound directory) containing the Csound executables directory are in your PATH variable, or else copy all the executable files to your Windows system32 directory. Depending on your installation method, you might also need to set the OPCODE6DIR and OPCODE6DIR64 environment variables. Assuming that Csound is installed to the default location of C:\Program Files\Csound you can use (otherwise set the paths accordingly):

set OPCODE6DIR=C:\Program Files\Csound\plugins
 set OPCODE6DIR64=C:\Program Files\Csound\plugins64
 set PATH=%PATH%;C:\Program Files\Csound\bin
-
- - - - - - - - -
- [Note] - Missing python24.dll or python25.dll
-

If you get a pop-up about the missing Python library (python24.dll or python25.dll) and don't need the python opcodes, just delete C:\Program Files\Csound\plugins\py.dll and C:\Program Files\Csound\plugins64\py.dll, and the pop-up about the missing Python library should be gone.

-
-
-

Unix and Linux

+

Unix and Linux

On Unix and Linux, either install the Csound program in one of the system bin directories, typically /usr/local/bin, and the Csound and plugin shared libraries in places like /usr/local/lib/csound/plugins or /usr/local/lib/csound/plugins64 and make sure that OPCODE6DIR and OPCODE6DIR64 environment variable are set correctly.

-

CsoundAC

+

CsoundAC

CsoundAC requires some additional configuration. On all platforms, CsoundAC requires that you have Python installed on your computer. The directory containing the _csoundAC shared @@ -83,14 +68,14 @@

CsoundAC


- + - + diff --git a/ControlConditional.html b/ControlConditional.html index 1169dcd452e..975e4e5a9ab 100644 --- a/ControlConditional.html +++ b/ControlConditional.html @@ -30,7 +30,7 @@
-

Conditional Values

+

Conditional Values

diff --git a/ControlDurctl.html b/ControlDurctl.html index cfd2ef41355..54cd2af6742 100644 --- a/ControlDurctl.html +++ b/ControlDurctl.html @@ -10,7 +10,7 @@ - + - +
Prev Prev  Up  Next
Optimizing Audio I/O Latency Realtime I/O with JACK Connection Kit  Home
Prev  Instrument Control Next Next

@@ -30,7 +30,7 @@
-

Duration Control Statements

+

Duration Control Statements

@@ -60,6 +60,13 @@

Duration Control

+
  • +

    + + turnoff3 + +

    +
  • @@ -83,14 +90,14 @@

    Duration Control Up -  Next +  Next Conditional Values  Home -  FLTK Widgets and GUI controllers +  Instrument Invocation

  • diff --git a/ControlFltkAppearance.html b/ControlFltkAppearance.html deleted file mode 100644 index 4aed423a2da..00000000000 --- a/ControlFltkAppearance.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - Modifying FLTK Widget Appearance - - - - - - - - - - -
    -
    -
    -
    -

    Modifying FLTK Widget Appearance

    -
    -
    -
    -

    The following opcodes modify FLTK widget appearance:

    - -
    - - - diff --git a/ControlFltkGeneral.html b/ControlFltkGeneral.html deleted file mode 100644 index 0f65017cce0..00000000000 --- a/ControlFltkGeneral.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - General FLTK Widget-related Opcodes - - - - - - - - - - -
    -
    -
    -
    -

    General FLTK Widget-related Opcodes

    -
    -
    -
    -

    - The general FLTK widget-related opcodes are: -

    - -

    -

    -
    - - - diff --git a/ControlFltkIntro.html b/ControlFltkIntro.html deleted file mode 100644 index cfeb9f4135e..00000000000 --- a/ControlFltkIntro.html +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - FLTK Widgets and GUI controllers - - - - - - - - - - -
    -
    -
    -
    -

    FLTK Widgets and GUI controllers

    -
    -
    -
    -

    - Widgets allow the design of a custom Graphical User Interface (GUI) to control an orchestra in real-time. - They are derived from the open-source library FLTK (Fast Light Tool Kit). This library is one of the - fastest graphic libraries available, supports OpenGL and should be source compatible with different - platforms (Windows, Linux, Unix and Mac OS). The subset of FLTK implemented in Csound provides the - following types of objects: -

    -
    -
    -
    - Containers -
    -
    -

    - FLTK Containers are widgets - that contain other widgets such as panels, windows, etc. Csound provides the following container - objects: -

    -
    -
      -
    • Panels
    • -
    • Scroll areas
    • -
    • Pack
    • -
    • Tabs
    • -
    • Groups
    • -
    -
    -

    -

    -
    -
    - Valuators -
    -
    -

    - The most useful objects are named - FLTK Valuators. These objects - allow the user to vary synthesis parameter values in real-time. Csound provides the following - valuator objects: -

    -
    -
      -
    • Sliders
    • -
    • Knobs
    • -
    • Rollers
    • -
    • Text fields
    • -
    • Joysticks
    • -
    • Counters
    • -
    -
    -

    -

    -
    -
    - Other widgets -
    -
    -

    - There are other FTLK widgets - that are not valuators nor containers: -

    -
    -
      -
    • Buttons
    • -
    • Button banks
    • -
    • Labels
    • -
    • Keyboard and Mouse sensing
    • -
    -
    -

    -

    -
    -
    -
    -

    -

    -

    - Also there are some other opcodes useful to modify the - widget appearance: -

    -
    -
      -
    • Updating widget value.
    • -
    • Setting primary and selection colors of a widget.
    • -
    • Setting font type, size and color of widgets.
    • -
    • Resizing a widget.
    • -
    • Hiding and showing a widget.
    • -
    -
    -

    -

    -

    - There are also these general opcodes that allow the following actions: -

    -
    -
      -
    • Running the widget thread: - FLrun
    • -
    • Loading snapshots containing the status of all valuators of an orchestra: - FLgetsnap and - FLloadsnap.
    • -
    • Saving snapshots containing the status of all valuators of an orchestra: - FLsavesnap and - FLsetsnap
    • -
    • Setting the snapshot group of a declared valuator: - FLsetSnapGroup
    • -
    -
    -

    -

    -

    - Below is a simple example of Csound code to create a window. Notice that all opcodes are init-rate and - must be called only once per session. The best way to use them is to place them in the header section of - an orchestra, before any instrument. Even though placing them inside an instrument is not prohibited, - unpredictable results can occur if that instrument is called more than once. -

    -

    - Each container is made up of a couple of opcodes: the first indicating the start of the container block and the last indicating the end of that container block. Some container blocks can be nested but they must not be crossed. After defining all containers, a widget thread must be run by using the special FLrun opcode that takes no arguments. -

    -

    -

    -
    -
    -<CsoundSynthesizer>
    -<CsOptions>
    -; Select audio/midi flags here according to platform
    -; Audio out   Audio in    No messages
    --odac           -iadc     -d     ;;;RT audio I/O
    -; For Non-realtime ouput leave only the line below:
    -; -o linseg.wav -W ;;; for file output any platform
    -</CsOptions>
    -<CsInstruments>
    -;*******************************
    -sr=48000
    -kr=480
    -ksmps=100
    -nchnls=1
    -
    -;*** It is recommended to put almost all GUI code in the
    -;*** header section of an orchestra
    -
    -        FLpanel         "Panel1",450,550 ;***** start of container
    -; some widgets should contained here
    -        FLpanelEnd      ;***** end of container
    -
    -        FLrun           ;***** runs the widget thread, it is always required!
    -instr 1
    -;put some synthesis code here
    -endin
    -;*******************************
    -</CsInstruments>
    -<CsScore>
    -f 0 3600 ;dummy table for realtime input
    -e
    -
    -</CsScore>
    -</CsoundSynthesizer>
    -
    -

    - - The previous code simply creates a panel (an empty window because no widgets are defined inside the container). - -

    -

    - The following example creates two panels and inserts a slider inside each of them: - -

    -
    -
    -<CsoundSynthesizer>
    -<CsOptions>
    -; Select audio/midi flags here according to platform
    -; Audio out   Audio in    No messages
    --odac           -iadc    ; -d     ;;;RT audio I/O
    -; For Non-realtime ouput leave only the line below:
    -; -o linseg.wav -W ;;; for file output any platform
    -</CsOptions>
    -<CsInstruments>
    -;*******************************
    -sr=48000
    -kr=480
    -ksmps=100
    -nchnls=1
    -
    -        FLpanel         "Panel1",450,550,100,100 ;***** start of container
    -gk1,iha FLslider        "FLslider 1", 500, 1000, 0 ,1, -1, 300,15, 20,50
    -        FLpanelEnd      ;***** end of container
    -
    -        FLpanel         "Panel2",450,550,100,100 ;***** start of container
    -gk2,ihb FLslider        "FLslider 2", 100, 200, 0 ,1, -1, 300,15, 20,50
    -        FLpanelEnd      ;***** end of container
    -
    -        FLrun           ;***** runs the widget thread, it is always required!
    -
    -instr 1
    -; gk1 and gk2 variables that contain the output of valuator
    -; widgets previously defined, can be used inside any instrument
    -printk2 gk1
    -printk2 gk2   ;print the values of the valuators whenever they change
    -endin
    -;*******************************
    -</CsInstruments>
    -<CsScore>
    -f 0 3600 ;dummy table for realtime input
    -e
    -
    -</CsScore>
    -</CsoundSynthesizer>
    -
    -

    -

    -

    - All widget opcodes are init-rate opcodes, even if valuators output k-rate variables. This happens because an independent thread is run based on a callback mechanism. It consumes very few processing resources since there is no need of polling. (This differs from other MIDI based controller opcodes.) So you can use any number of windows and valuators without degrading the real-time performance. -

    -
    -
    -
    -
    -

    FLTK Containers

    -
    -
    -
    -

    - The opcodes for FLTK containers are: -

    -
    - -
    -

    -

    -
    -
    - - - diff --git a/ControlFltkOther.html b/ControlFltkOther.html deleted file mode 100644 index 4cf555d13bb..00000000000 --- a/ControlFltkOther.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - Other FLTK Widgets - - - - - - - - - - -
    -
    -
    -
    -

    Other FLTK Widgets

    -
    -
    -
    -

    - Other FLTK widget opcodes are: -

    - -

    -

    -
    - - - diff --git a/ControlFltkValuators.html b/ControlFltkValuators.html deleted file mode 100644 index 5537d7ac236..00000000000 --- a/ControlFltkValuators.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - FLTK Valuators - - - - - - - - - - -
    -
    -
    -
    -

    FLTK Valuators

    -
    -
    -
    -

    - The opcodes for FLTK valuators are: -

    -
    - -
    -

    -

    -
    - - - diff --git a/ControlInvocat.html b/ControlInvocat.html index 0081abb5284..3651e9c1117 100644 --- a/ControlInvocat.html +++ b/ControlInvocat.html @@ -9,7 +9,7 @@ - + @@ -19,7 +19,7 @@ Instrument Invocation - Prev  + Prev  Instrument Control  Next @@ -30,7 +30,7 @@
    -

    Instrument Invocation

    +

    Instrument Invocation

    @@ -53,6 +53,20 @@

    Instrument Invo

    +
  • +

    + + nstance + +

    +
  • +
  • +

    + + readscore + +

    +
  • @@ -74,6 +88,13 @@

    Instrument Invo

  • +
  • +

    + + schedulek + +

    +
  • @@ -104,20 +125,50 @@

    Instrument Invo

    Instruments definitions can be removed using the remove opcode. +

    +

    + These opcodes will compile one or more instruments at init time: +

    +
    + +
    +

  • +

    + These opcodes are part of a counter system: +

    +
    + +
    - +

    Table C.1. Sound Intensity Values (for a 1000 Hz tone)

    diff --git a/MiscExamples.html b/MiscExamples.html index cf435cf765c..5418868c76d 100644 --- a/MiscExamples.html +++ b/MiscExamples.html @@ -56,6 +56,12 @@

    Appendix A. List of examples

    +

    + + ksmps.csd + +

    +

    nchnls.csd @@ -898,6 +904,18 @@

    Appendix A. List of examples

    +

    + + fareylen.csd + +

    +

    +

    + + fareyleni.csd + +

    +

    gendy.csd @@ -1236,12 +1254,24 @@

    Appendix A. List of examples

    +

    + + poisson2.csd + +

    +

    rand.csd

    +

    + + randc.csd + +

    +

    randh.csd @@ -1403,8 +1433,8 @@

    Appendix A. List of examples

    - - fluidcomplex.csd + + fluidControl-advanced.csd

    @@ -1610,6 +1640,12 @@

    Appendix A. List of examples

    +

    + + scanmap_matrxT.csd + +

    +

    scans.csd @@ -1622,6 +1658,12 @@

    Appendix A. List of examples

    +

    + + scansmap.csd + +

    +

    scantable.csd @@ -1629,8 +1671,14 @@

    Appendix A. List of examples

    - - scanu-musical.csd + + scanu.csd + +

    +

    +

    + + scanu-2.csd

    @@ -1640,6 +1688,18 @@

    Appendix A. List of examples

    +

    + + scanu2-2.csd + +

    +

    +

    + + scanu2-3.csd + +

    +

    xscanmap.csd @@ -1877,8 +1937,8 @@

    Appendix A. List of examples

    - - tab.csd + + tabw.csd

    @@ -3198,12 +3258,6 @@

    Appendix A. List of examples

    -

    - - bob.csd - -

    -

    butterbp.csd @@ -3246,12 +3300,6 @@

    Appendix A. List of examples

    -

    - - doppler.csd - -

    -

    k35.csd @@ -3334,6 +3382,12 @@

    Appendix A. List of examples

    +

    + + bob.csd + +

    +

    bqrez.csd @@ -3900,6 +3954,12 @@

    Appendix A. List of examples

    +

    + + evalstr.csd + +

    +

    Instrument Control:Duration Control. 

    @@ -3993,8 +4053,8 @@

    Appendix A. List of examples

    - - schedule.csd + + schedulek.csd

    @@ -4098,6 +4158,12 @@

    Appendix A. List of examples

    +

    + + loop_-group.csd + +

    +

    loop_gt.csd @@ -4122,6 +4188,12 @@

    Appendix A. List of examples

    +

    + + tigoto2.csd + +

    +

    timout.csd @@ -4180,12 +4252,6 @@

    Appendix A. List of examples

    -

    - - jacktransport.csd - -

    -

    maxalloc.csd @@ -4674,22 +4740,6 @@

    Appendix A. List of examples

    -

    - Jacko Opcodes.  -

    -

    -

    - - JackoInfo.csd - -

    -

    -

    - - JackoInit.csd - -

    -

    Serial I/O. 

    @@ -5426,6 +5476,12 @@

    Appendix A. List of examples

    +

    + + floor2.csd + +

    +

    rounding-group.csd @@ -5438,6 +5494,12 @@

    Appendix A. List of examples

    +

    + + frac2.csd + +

    +

    int.csd @@ -5538,6 +5600,12 @@

    Appendix A. List of examples

    +

    + + signum2.csd + +

    +

    sin.csd @@ -7514,6 +7582,12 @@

    Appendix A. List of examples

    +

    + + OSClistenex2.csd + +

    +

    OSCraw.csd @@ -8012,12 +8086,6 @@

    Appendix A. List of examples

    -

    - - fareyleni.csd - -

    -

    framebuffer.csd @@ -8030,6 +8098,12 @@

    Appendix A. List of examples

    +

    + + nchnls_hw.csd + +

    +

    framebuffer.csd diff --git a/MiscModalFreq.html b/MiscModalFreq.html index d71ba804fbd..797c4ac0086 100644 --- a/MiscModalFreq.html +++ b/MiscModalFreq.html @@ -34,7 +34,7 @@

    Appendix E. Modal Frequency Ratios

    -

    Contributed by Scott Lindroth

    +

    Contributed by Scott Lindroth

    John Bower, a student of Scott Lindroth, compiled this list of modal frequencies for various objects and materials. Some modes work better than others, and most need to be in a particular frequency range to sound plausible. Caveat emptor.

    @@ -45,7 +45,7 @@

    Contributed by Scott Lindroth

    This ratios can be useful together with opcodes like mode or streson.

    - +

    Table E.1. Modal Frequency Ratios

    diff --git a/MiscPitch.html b/MiscPitch.html index 1bf99cdcda9..f830a8ca1a2 100644 --- a/MiscPitch.html +++ b/MiscPitch.html @@ -35,7 +35,7 @@

    Appendix B. Pitch Conversion

    - +

    Table B.1. Pitch Conversion

    diff --git a/MiscQuickref.html b/MiscQuickref.html index 32c5688cbb2..698ec6bb901 100644 --- a/MiscQuickref.html +++ b/MiscQuickref.html @@ -348,11 +348,12 @@

    Opcode Quick Reference

    -
    ares foscil xamp, kcps, xcar, xmod, kndx, ifn [, iphs]
    +
    ares foscil xamp, kcps, xcar, xmod, kndx [, ifn , iphs]

    -
    ares foscili xamp, kcps, xcar, xmod, kndx, ifn [, iphs]
    +
    ares foscili xamp, kcps, xcar, xmod,
    +    kndx [, ifn, iphs]

    @@ -741,6 +742,14 @@

    Opcode Quick Reference

    [, ifreq1] [, ifreq2]

    +

    +
    kfl fareylen kfn
    +

    +

    +

    +
    ifl fareyleni ifn
    +

    +

    ares gendy kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
                kampscl, kdurscl [, initcps] [, knum]
    @@ -1022,6 +1031,11 @@

    Opcode Quick Reference

    kres rand xamp [, iseed] [, isel] [, ioffset]

    +

    +
    ares randc xamp, xcps [, iseed] [, isize] [, ioffset]
    +
    kres randc kamp, kcps [, iseed] [, isize] [, ioffset]
    +

    +

    ares randh xamp, xcps [, iseed] [, isize] [, ioffset]
    kres randh kamp, kcps [, iseed] [, isize] [, ioffset]
    @@ -1518,6 +1532,11 @@

    Opcode Quick Reference

    kres tablei kndx, ifn [, ixmode] [, ixoff] [, iwrap]

    +

    +
    tabw ksig, kndx, ifn [,ixmode]
    +
    tabw asig, andx, ifn [,ixmode]
    +

    +

    tabw_i isig, indx, ifn [,ixmode]

    @@ -1914,6 +1933,7 @@

    Opcode Quick Reference

     chn_a Sname, imode
     chn_S Sname, imode
     chn_S Sname, Smode
    +
     chn_array Sname, imode, Stype, iSizes[]

    @@ -1959,10 +1979,18 @@

    Opcode Quick Reference

    chnsets Sval[], []Sname

    +

    +
    oversample ifactor[,icvt_in, icvt_out] 
    +

    +

    setksmps iksmps

    +

    +
    undersample ifactor[,icvt_in, icvt_out] 
    +

    +

    xinarg1 [, xinarg2] ... [xinargN] xin 

    @@ -2430,7 +2458,9 @@

    Opcode Quick Reference

    -
    a1, a2 babo asig, ksrcx, ksrcy, ksrcz, irx, iry, irz [, idiff] [, ifno]
    +
    a1, a2 babo asig, ksrcx, ksrcy,
    +    ksrcz, irx, iry, irz [, idiff] [, ifno]
    +
    a1, a2 babo2 asig, ksrcx, ksrcy, ksrcz, irx, iry, irz [, idiff] [, ifno]

    @@ -2646,10 +2676,6 @@

    Opcode Quick Reference

    ares biquada asig, ab0, ab1, ab2, aa0, aa1, aa2 [, iskip]

    -

    -
    asig bob ain, xcf, xres, xsat [, iosamps, istor]
    -

    -

    ares butbp asig, kfreq, kband [, iskip]

    @@ -2694,10 +2720,6 @@

    Opcode Quick Reference

    asig diode_ladder ain, xcf, xk [, inlp, isaturation, istor]

    -

    -
    ashifted doppler asource, ksourceposition, kmicposition [, isoundspeed, ifiltercutoff]
    -

    -

    asig K35_hpf ain, xcf, xQ [, inlp, isaturation, istor]

    @@ -2714,6 +2736,10 @@

    Opcode Quick Reference

    kres mediank kin, ksize, imaxsize [, iskip]

    +

    +
    aout mode ain, xfreq, xQ [, iskip]
    +

    +

    ares tone asig, khp [, iskip]

    @@ -2757,6 +2783,10 @@

    Opcode Quick Reference

    ares areson asig, acf, abw [, iscl] [, iskip]

    +

    +
    asig bob ain, xcf, xres, xsat [, iosamps, istor]
    +

    +

    ares bqrez asig, xfco, xres [, imode] [, iskip]

    @@ -3421,10 +3451,6 @@

    Opcode Quick Reference

    exitnow [ivalue]

    -

    -
    jacktransport icommand [, ilocation]
    -

    -

    maxalloc insnum, icount
    maxalloc Sinsname, icount
    @@ -3585,7 +3611,7 @@

    Opcode Quick Reference

    -
    kres joystick kdevice ktab
    +
    kres joystick kdevice, ktab

    @@ -3600,10 +3626,6 @@

    Opcode Quick Reference

    ktrig  metrobpm  kfreq [, initphase] [, kgate]

    -

    -
    ksig  midifilestatus 
    -

    -

    ksig  miditempo 

    @@ -3851,65 +3873,6 @@

    Opcode Quick Reference

    kres times 

    -

    -

    -

    -

    Jacko Opcodes.  -

    -

    -

    -

    -
    asignal JackoAudioIn ScsoundPortName
    -

    -

    -

    -
    JackoAudioInConnect SexternalPortName, ScsoundPortName
    -

    -

    -

    -
    JackoAudioOut  ScsoundPortName, asignal
    -

    -

    -

    -
    JackoAudioOutConnect ScsoundPortName, SexternalPortName
    -

    -

    -

    -
    JackoFreewheel [ienabled]
    -

    -

    -

    -
    JackoInfo  
    -

    -

    -

    -
    JackoInit ServerName, SclientName
    -

    -

    -

    -
    JackoMidiInConnect SexternalPortName, ScsoundPortName
    -

    -

    -

    -
    JackoMidiOut  ScsoundPortName, kstatus, kchannel, kdata1[, kdata2]
    -

    -

    -

    -
    JackoMidiOutConnect ScsoundPortName, SexternalPortName
    -

    -

    -

    -
    JackoNoteOut  ScsoundPortName, kstatus, kchannel, kdata1[, kdata2]
    -

    -

    -

    -
    JackoOn [iactive] 
    -

    -

    -

    -
    JackoTransport  kcommand, [kposition]
    -

    -

    @@ -5728,8 +5691,7 @@

    Opcode Quick Reference

    -
    asigresonbnk ain,
    -    kPar[],kmin,kmax,iper[,imode,iscal,iskip] 
    +
    asig resonbnk ain, kPar[], kmin, kmax, iper [, imode, iscal, iskip]

    @@ -6684,7 +6646,9 @@

    Opcode Quick Reference

    kans OSClisten ihandle, idest, itype [, xdata1, xdata2, ...]
    -
    kans, kdata[] OSClisten ihandle, idest, itype
    +
    kans, kdata[] OSClisten ihandle,
    +    idest, itype
    +
    kans, ... OSClisten idest, itype

    @@ -7057,7 +7021,7 @@

    Opcode Quick Reference

    -
    i/kout[] setcoli/kin[],i/kcol
    +
    i/kout[] setcol i/kin[],i/kcol

    @@ -7259,14 +7223,6 @@

    Opcode Quick Reference

    SFiles[] directory SDirectory[, SExtention]

    -

    -
    kfl fareylen kfn
    -

    -

    -

    -
    ifl fareyleni ifn
    -

    -

    @@ -7380,7 +7336,6 @@

    Opcode Quick Reference

    -

    diff --git a/MiscWindows.html b/MiscWindows.html index b3c2680b03c..c2cfd52e563 100644 --- a/MiscWindows.html +++ b/MiscWindows.html @@ -46,7 +46,7 @@

    Appendix F. Window Functions

    Hamming. 

    - +

    Example F.1. Hamming window function statement

    @@ -69,7 +69,7 @@

    Appendix F. Window Functions

    Hanning. 

    - +

    Example F.2. Hanning window function statement

    @@ -92,7 +92,7 @@

    Appendix F. Window Functions

    Bartlett. 

    - +

    Example F.3. Bartlett window function statement

    @@ -115,7 +115,7 @@

    Appendix F. Window Functions

    Blackman. 

    - +

    Example F.4. Blackman window function statement

    @@ -138,7 +138,7 @@

    Appendix F. Window Functions

    Blackman-Harris. 

    - +

    Example F.5. Blackman-Harris window function statement

    @@ -161,7 +161,7 @@

    Appendix F. Window Functions

    Gaussian. 

    - +

    Example F.6. Gaussian window function statement

    @@ -180,7 +180,7 @@

    Appendix F. Window Functions

    - +

    Example F.7. Gaussian window function statement with extra parameter

    @@ -203,7 +203,7 @@

    Appendix F. Window Functions

    Kaiser. 

    - +

    Example F.8. Kaiser window function statement as default (alpha=0)

    @@ -222,7 +222,7 @@

    Appendix F. Window Functions

    - +

    Example F.9. Kaiser window function statement with alpha=5

    @@ -241,7 +241,7 @@

    Appendix F. Window Functions

    - +

    Example F.10. Kaiser window function statement with alpha=10

    @@ -264,7 +264,7 @@

    Appendix F. Window Functions

    Rectangle. 

    - +

    Example F.11. Rectangle window function statement

    @@ -287,7 +287,7 @@

    Appendix F. Window Functions

    Sinc. 

    - +

    Example F.12. Sinc window function statement (default and max=0.8)

    @@ -306,7 +306,7 @@

    Appendix F. Window Functions

    - +

    Example F.13. Sinc window function statement (-3π to +3π and normalized)

    diff --git a/MiscopcodesTop.html b/MiscopcodesTop.html index 98b23947617..5ea5492353c 100644 --- a/MiscopcodesTop.html +++ b/MiscopcodesTop.html @@ -9,7 +9,7 @@ - + @@ -19,7 +19,7 @@ Miscellaneous opcodes - Prev  + Prev  Part II. Opcodes Overview  Next @@ -38,9 +38,14 @@

    Miscellaneous opcodes

      +
    • directory - Reads a directory and outputs to a string array a list of file names.
    • +
    • nchnls_hw - Returns the number of audio channels in the underlying hardware.
    • +
    • pwd - Asks the underlying operating system for the current directory name as a string.
    • +
    • select - Select sample value based on audio-rate comparisons.
    • system - Call an external program via the system call.
    • -
    • modmatrix - - modulation matrix opcode with optimizations for sparse matrices.
    • +
    • modmatrix - Modulation matrix opcode with optimizations for sparse matrices.
    • +
    • readscratch - Returns a value stored in the instance of an instrument.
    • +
    • writescratch - Writes a value into the scratchpad of the instance of an instrument.

    @@ -50,14 +55,14 @@

    Miscellaneous opcodes


    - + - + diff --git a/MixerClear.html b/MixerClear.html index 553e7ab3957..2cc4d919ffc 100644 --- a/MixerClear.html +++ b/MixerClear.html @@ -39,7 +39,13 @@

    - + +

    Description

    +

    Resets all channels of a buss to 0. +

    +
    +
    +

    Syntax

               
    @@ -48,13 +54,7 @@ 

    Syntax

    - -

    Description

    -

    Resets all channels of a buss to 0. -

    -
    -
    - +

    Performance

    Use of the mixer requires that instruments setting gains have smaller numbers than instruments sending signals, @@ -64,7 +64,7 @@

    Performance

    - +

    Examples

     instr 220 ; Master output
    @@ -99,13 +99,13 @@ 

    Examples

    Here is a complete example of the Mixerclear opcode. It uses the file Mixer.csd

    - +

    - Example 625. Complete example of the Mixerclear opcode. + Example 628. Complete example of the Mixerclear opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -168,7 +168,16 @@ 

    Examples

    - + +

    See also

    +

    + + Mixer Opcodes + +

    +
    +
    +

    Credits

    Author: Michael Gogins (gogins at pipeline dot com).

    diff --git a/MixerGetLevel.html b/MixerGetLevel.html index 1d40b86f7f3..0b7aaaf6307 100644 --- a/MixerGetLevel.html +++ b/MixerGetLevel.html @@ -39,12 +39,7 @@

    - -

    Syntax

    -
    kgain MixerGetLevel isend, ibuss
    -
    -
    - +

    Description

    Plugin opcode in mixer

    Gets the level at which signals from the send are being added to the buss. The actual sending of the signal to the buss @@ -52,13 +47,18 @@

    Description

    - + +

    Syntax

    +
    kgain MixerGetLevel isend, ibuss
    +
    +
    +

    Initialization

    isend -- The number of the send, for example the number of the instrument sending the signal.

    ibuss -- The number of the buss, for example the number of the instrument receiving the signal.

    - +

    Performance

    kgain -- The level (any real number) at which the signal from the send will be mixed onto the buss.

    @@ -72,19 +72,19 @@

    Performance

    - +

    Examples

    Here is an example of the MixerGetLevel opcode. It uses the file Mixer.csd

    - +

    - Example 622. Example of the MixerGetLevel opcode. + Example 625. Example of the MixerGetLevel opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -147,7 +147,16 @@ 

    Examples

    - + +

    See also

    +

    + + Mixer Opcodes + +

    +
    +
    +

    Credits

    Michael Gogins (gogins at pipeline dot com).

    diff --git a/MixerOpcodes.html b/MixerOpcodes.html index d7e45037ae2..2635adc7e10 100644 --- a/MixerOpcodes.html +++ b/MixerOpcodes.html @@ -9,8 +9,8 @@ - - + +

    - + - +
    Prev Prev  Up  Next
    STK Opcodes Ableton Link Opcodes  Home Mixer Opcodes
    Prev Prev  Part II. Opcodes Overview Next Next

    @@ -57,20 +57,20 @@

    Mixer Opcodes


    - + - + - + - +
    Prev Prev  Up  Next Next
    Remote Opcodes  + Signal Flow Graph Opcodes +  Home   - Signal Flow Graph Opcodes - External Plugin Opcodes
    diff --git a/MixerReceive.html b/MixerReceive.html index 0af7a5c55fb..5fa04409413 100644 --- a/MixerReceive.html +++ b/MixerReceive.html @@ -39,24 +39,24 @@

    - -

    Syntax

    -
    asignal MixerReceive ibuss, ichannel
    -
    -
    - +

    Description

    Receives an arate signal that has been mixed onto a channel of a buss.

    - + +

    Syntax

    +
    asignal MixerReceive ibuss, ichannel
    +
    +
    +

    Initialization

    ibuss -- The number of the buss, for example the number of the instrument receiving the signal.

    ichannel -- The number of the channel. Each buss has nchnls channels.

    - +

    Performance

    asignal -- The signal that has been mixed onto the indicated channel of the buss.

    @@ -67,7 +67,7 @@

    Performance

    - +

    Examples

     instr 220 ; Master output
    @@ -102,13 +102,13 @@ 

    Examples

    Here is a complete example of the MixerReceive opcode. It uses the file Mixer.csd

    - +

    - Example 624. Complete example of the MixerReceive opcode. + Example 627. Complete example of the MixerReceive opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -171,7 +171,16 @@ 

    Examples

    - + +

    See also

    +

    + + Mixer Opcodes + +

    +
    +
    +

    Credits

    Michael Gogins (gogins at pipeline dot com).

    diff --git a/MixerSend.html b/MixerSend.html index a9ce0d619f7..476e113bde0 100644 --- a/MixerSend.html +++ b/MixerSend.html @@ -39,18 +39,18 @@

    - -

    Syntax

    -
    MixerSend asignal, isend, ibuss, ichannel
    -
    -
    - +

    Description

    Mixes an arate signal into a channel of a buss.

    - + +

    Syntax

    +
    MixerSend asignal, isend, ibuss, ichannel
    +
    +
    +

    Initialization

    isend -- The number of the send, for example the number of the instrument sending the signal. The gain of the send is controlled by the MixerSetLevel opcode. @@ -60,7 +60,7 @@

    Initialization

    ichannel -- The number of the channel. Each buss has nchnls channels.

    - +

    Performance

    asignal -- The signal that will be mixed into the indicated channel of the buss.

    @@ -71,7 +71,7 @@

    Performance

    - +

    Examples

     instr 100 ; Fluidsynth output
    @@ -96,13 +96,13 @@ 

    Examples

    Here is a complete example of the MixerSend opcode. It uses the file Mixer.csd

    - +

    - Example 623. Complete example of the MixerSend opcode. + Example 626. Complete example of the MixerSend opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -165,7 +165,16 @@ 

    Examples

    - + +

    See also

    +

    + + Mixer Opcodes + +

    +
    +
    +

    Credits

    Michael Gogins (gogins at pipeline dot com).

    diff --git a/MixerSetLevel.html b/MixerSetLevel.html index eae45ea2aaa..7a41f43e274 100644 --- a/MixerSetLevel.html +++ b/MixerSetLevel.html @@ -39,12 +39,7 @@

    - -

    Syntax

    -
    MixerSetLevel isend, ibuss, kgain
    -
    -
    - +

    Description

    Plugin opcode in mixer

    Sets the level at which signals from the send are added to the buss. The actual sending of the signal to the buss @@ -52,14 +47,19 @@

    Description

    - + +

    Syntax

    +
    MixerSetLevel isend, ibuss, kgain
    +
    +
    +

    Initialization

    isend -- The number of the send, for example the number of the instrument sending the signal (but any integer can be used).

    ibuss -- The number of the buss, for example the number of the instrument receiving the signal (but any integer can be used).

    Setting the gain for a buss also creates the buss.

    - +

    Performance

    kgain -- The level (any real number) at which the signal from the send will be mixed onto the buss. The default is 0.

    @@ -70,7 +70,7 @@

    Performance

    - +

    Examples

    In the orchestra, define an instrument to control mixer levels:

    @@ -105,13 +105,13 @@ 

    Examples

    Here is a complete example of the MixerSetLevel opcode. It uses the file Mixer.csd

    - +

    - Example 621. Complete example of the MixerSetLevel opcode. + Example 624. Complete example of the MixerSetLevel opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -174,7 +174,16 @@ 

    Examples

    - + +

    See also

    +

    + + Mixer Opcodes + +

    +
    +
    +

    Credits

    Michael Gogins (gogins at pipeline dot com).

    diff --git a/MixerSetLevel_i.html b/MixerSetLevel_i.html index b551a402c6e..9f71e722283 100644 --- a/MixerSetLevel_i.html +++ b/MixerSetLevel_i.html @@ -39,12 +39,7 @@

    - -

    Syntax

    -
    MixerSetLevel_i isend, ibuss, igain
    -
    -
    - +

    Description

    Plugin opcode in mixer

    Sets the level at which signals from the send are added to the buss. This opcode, because all parameters are irate, may @@ -53,7 +48,12 @@

    Description

    - + +

    Syntax

    +
    MixerSetLevel_i isend, ibuss, igain
    +
    +
    +

    Initialization

    isend -- The number of the send, for example the number of the instrument sending the signal (but any integer can be used).

    ibuss -- The number of the buss, for example the number of the instrument receiving the signal (but any integer can be used).

    @@ -61,7 +61,7 @@

    Initialization

    Setting the gain for a buss also creates the buss.

    - +

    Performance

    Use of the mixer requires that instruments setting gains have smaller numbers than instruments sending signals, @@ -71,14 +71,23 @@

    Performance

    - +

    Examples

    In the orchestra header, set the gain for the send from buss 3 to buss 4:

           MixerSetLevel_i		3, 4, 0.76
    +
    + +

    See also

    +

    + + Mixer Opcodes + +

    +
    - +

    Credits

    Michael Gogins (gogins at pipeline dot com).

    diff --git a/Network.html b/Network.html index 661fe5452be..367adf75e5f 100644 --- a/Network.html +++ b/Network.html @@ -8,8 +8,8 @@ - - + + @@ -19,8 +19,8 @@ Network - Prev  - OSC and Network + Prev  + OSC, Network and non-MIDI Devices  Next @@ -30,7 +30,7 @@
    -

    Network

    +

    Network

    @@ -60,14 +60,14 @@

    Network


    - + - + diff --git a/OSC.html b/OSC.html deleted file mode 100644 index 3eac2890690..00000000000 --- a/OSC.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - OSC - - - - - - - - - -
    Prev Prev  Up  Next
    OSC OSC, Network and non-MIDI Devices  Home
    - - - - - - - - -
    OSC
    Prev OSC and Network Next
    -
    -
    -
    -
    -
    -
    -

    OSC

    -
    -
    -
    -

    OSC enables interaction between different - audio processes, and in particular between Csound and other synthesis - engines. - The following opcodes are - available:

    -
    -
      -
    • -

      OSCinit - Start - an OSC listener thread.

      -
    • -
    • -

      OSClisten - - Receive OSC messages.

      -
    • -
    • -

      OSCsend - Send - an OSC message.

      -
    • -
    • -

      OSCinitM - - Start to list for multicast OSC messages. -

      -
    • -
    • -

      OSCraw - - Listen for all OSC messages. -

      -
    • -
    • -

      OSCcount - - Count of OSC messages currently unread. -

      -
    • -
    • -

      OSCbundle - - Sends data by packing messages in a bundle. -

      -
    • -
    -
    -

    Credits

    -

    By: John ffitch with the liblo library as inspiration and support.

    -

    Improvements and extensions by Victor Lazzarini.

    -
    - - - diff --git a/OSCNetwork.html b/OSCNetwork.html index cc1c3f4f354..61e8fe423ca 100644 --- a/OSCNetwork.html +++ b/OSCNetwork.html @@ -3,25 +3,25 @@ - OSC and Network + OSC, Network and non-MIDI Devices - - + +
    diff --git a/OSCbundle.html b/OSCbundle.html index 33a9796a047..6978bfc93ed 100644 --- a/OSCbundle.html +++ b/OSCbundle.html @@ -40,7 +40,7 @@

    - +

    Description

    Uses the OSC protocol to send one or more messages to other OSC listening @@ -50,13 +50,13 @@

    Description

    - +

    Syntax

    OSCbundle kwhen, ihost, iport,
         Sdest[], Stype[],kArgs[][][,isize]
    - +

    Initialization

    ihost @@ -73,7 +73,7 @@

    Initialization

    - +

    Performance

    kwhen -- a bundle of messages is sent whenever this @@ -103,20 +103,20 @@

    Performance

    - +

    Example

    Here is an example of the OSCBundle opcode. It uses the file oscbundle.csd.

    - +

    - Example 692. Example of the OSCbundle opcode. + Example 696. Example of the OSCbundle opcode.

    See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -152,15 +152,17 @@ 

    Example

    - -

    See Also

    + +

    See also

    - OSClisten, - OSCinit -

    + + OSC (Open Sound Control) + +

    +

    More information on this opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y , made by Andrés Cabrera

    - +

    Credits

    diff --git a/OSCcount.html b/OSCcount.html index 6b004b65b26..dd2798e4d13 100644 --- a/OSCcount.html +++ b/OSCcount.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in osc.

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    kans OSCcount
    - +

    Performance

    kans -- set to the number of messages @@ -67,7 +67,7 @@

    Performance

    - +

    Example

    This example shows a pair of floating point numbers being received @@ -99,17 +99,17 @@

    Example

    - -

    See Also

    + +

    See also

    - OSCsend, - OSCinit - OSClisten -

    + + OSC (Open Sound Control) + +

    More information on this opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y , made by Andrés Cabrera

    - +

    Credits

    diff --git a/OSCinit.html b/OSCinit.html index 3086101bb6a..cfbe3e28bee 100644 --- a/OSCinit.html +++ b/OSCinit.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in osc.

    @@ -47,12 +47,12 @@

    Description

    - +

    Syntax

    ihandle OSCinit iport
    - +

    Initialization

    ihandle @@ -65,14 +65,14 @@

    Initialization

    - +

    Performance

    The listener runs in the background. See OSClisten for details.

    - +

    Example

    The example shows a pair of floating point numbers being received @@ -101,16 +101,17 @@

    Example

    - -

    See Also

    + +

    See also

    - OSClisten, - OSCsend -

    + + OSC (Open Sound Control) + +

    More information on this opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y , made by Andrés Cabrera

    - +

    Credits

    diff --git a/OSCinitM.html b/OSCinitM.html index 32bc740268f..dd33ed1612b 100644 --- a/OSCinitM.html +++ b/OSCinitM.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in osc.

    @@ -47,12 +47,12 @@

    Description

    - +

    Syntax

    ihandle OSCinitM Sgroup, iport
    - +

    Initialization

    Sgroup -- string giving the IP address of the @@ -69,14 +69,14 @@

    Initialization

    - +

    Performance

    The listener runs in the background. See OSClisten for details.

    - +

    Example

    The example shows a pair of floating point numbers being received @@ -105,16 +105,17 @@

    Example

    - -

    See Also

    + +

    See also

    - OSClisten, - OSCsend - OSCinit -

    + + OSC (Open Sound Control) + +

    +

    More information on this opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y , made by Andrés Cabrera

    - +

    Credits

    diff --git a/OSClisten.html b/OSClisten.html index 9ec35db0e2e..75bcfc41835 100644 --- a/OSClisten.html +++ b/OSClisten.html @@ -35,31 +35,38 @@

    OSClisten

    OSClisten — - Listen for OSC messages to a particular path. + Listen for OSC messages to a particular path, either from a custom-defined + OSC server or from the Csound UDP server.

    - +

    Description

    -

    Plugin opcode in osc.

    +

    Plugin opcode in osc; internal opcode (for UDP server)

    On each k-cycle looks to see if an OSC message has been sent to a given path of a given type.

    - +

    Syntax

    kans OSClisten ihandle, idest, itype [, xdata1, xdata2, ...]
    -
    kans, kdata[] OSClisten ihandle, idest, itype
    +
    kans, kdata[] OSClisten ihandle,
    +    idest, itype
    +
    kans, ... OSClisten idest, itype
    - +

    Initialization

    ihandle - -- a handle returned by an earlier call to OSCinit, to associate - OSClisten with a particular port number. + -- In the first two versions (overloads) of the opcode, a handle + returned by an earlier call to OSCinit, + to associate + OSClisten with a particular port number. The third overload does + not take a handle as it will listen for messages + sent to the Csound UDP server.

    idest @@ -83,7 +90,7 @@

    Initialization

    - +

    Performance

    kans -- set to 1 if a new message was @@ -112,10 +119,16 @@

    Performance

    or equal to length as the format string. If a message is received, this array will be filled with the incoming values. See below for an example of this usage. +

    +

    + The third overload uses a different number of outputs of + different types (k or S) to store messages matching address and + type, which are coming into the UDP server. It only accepts + scalar values ("dfhi") or strings ("s").

    - +

    Example

    This example shows a pair of floating point numbers being received @@ -173,15 +186,15 @@

    Example

    - +

    - Example 693. Example of the OSC opcodes. + Example 697. Example of the OSC opcodes.

    The following two .csd files demonstrate the usage of the OSC opcodes in csound. The first file, OSCmidisend.csd, transforms received real-time MIDI messages into OSC data. The second file, OSCmidircv.csd, can take these OSC messages, and intrepret them to generate sound from note messages, and store controller values. It will use controller number 7 to control volume. Note that these files are designed to be on the same machine, but if a different host address (in the IPADDRESS macro) is used, they can be separate machines on a network, or connected through the internet.

    CSD file to send OSC messages:

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -224,7 +237,7 @@ 

    Example

    CSD file to receive OSC messages:

    - +
     <CsoundSynthesizer>
     ; network_recv.csd
    @@ -328,30 +341,80 @@ 

    Example


    +

    + The next example demonstrates the usage of the third overload of + the OSClisten opcode. It uses the fils OSClistenex2.csd. +

    +
    + +
    +<CsoundSynthesizer>
    +<CsOptions>
    +-odac --port=7000
    +</CsOptions>
    +<CsInstruments>
    +
    +0dbfs = 1
    +
    +instr 1
    + freq:k chnget "freq"
    + amp:k  chnget "amp"
    +    out oscili(0dbfs*amp, p4*freq)
    + status:k, f:k, mess:S, n:k OSClisten "/in", "fsi"
    + puts mess, status
    + printk2 n
    + printk2 f
    + status, nums:k[] OSClisten "/ina", "fi"
    + printk2 nums[0]
    + printk2 nums[1] 
    +endin
    +
    +instr 2
    + OSCsend 0, "localhost", 7000, "/csound/event/instr", "ffff", 1, 0, 1, 300
    + OSCsend 1, "localhost", 7000, "/csound/channel/freq/amp", "ff", p4, p5
    + OSCsend 2, "localhost", 7000, "/in", "fsi", p5, "hello", p4
    + OSCsend 3, "localhost", 7000, "/ina", "fi", p5, p4
    + OSCsend 4, "localhost", 7000, "/csound/event", "s", "i3 4 1"
    + OSCsend 5, "localhost", 7000, "/csound/compile", "s", "schedule 1,2,2,500"
    +endin
    +
    +instr 3
    + OSCsend 0, "localhost", 7000, "/csound/stop"
    +endin
    +
    +</CsInstruments>
    +<CsScore>
    +i2 0 2 1 0.2
    +</CsScore>
    +</CsoundSynthesizer>
    +
    +
    - -

    See Also

    + +

    See also

    - OSCsend, - OSCinit -

    + + OSC (Open Sound Control) + +

    More information on this opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y , made by Andrés Cabrera

    - +

    Credits

    - + - + - +
    Author: John ffitchAuthor: John ffitch Victor Lazzarini
    20052005, 2024
    Examples by: David Akbari, Andrés Cabrera and Jonathan Murphy 2007Examples by: David Akbari, Andrés Cabrera and Jonathan + Murphy 2007; Victor Lazzarini 2024

    @@ -363,7 +426,11 @@

    Credits

    types aAG are new in Csound 6.07 - the use an an array for outputs is new in Csound 6.12 + the use an an array for outputs is new in Csound + 6.12 + + + UDP server support new in Csound 7.0

    diff --git a/OSCraw.html b/OSCraw.html index 449203f41f0..4eee03d779c 100644 --- a/OSCraw.html +++ b/OSCraw.html @@ -39,7 +39,7 @@

    - +

    Description

    On each k-cycle looks to see if an OSC message has been received @@ -49,12 +49,12 @@

    Description

    - +

    Syntax

    Smess[],klen OSCraw iport
    - +

    Initialization

    iport @@ -62,7 +62,7 @@

    Initialization

    - +

    Performance

    Smess[] -- an array of strings containing @@ -82,17 +82,17 @@

    Performance

    - +
    - +

    - Example 694. Example. + Example 698. Example.

    The following CSD file demonstrates how a message is received by OSCraw:

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -133,16 +133,17 @@ 

    Performance


    - -

    See Also

    + +

    See also

    - OSCsend, - OSCinit - OSClisten -

    + + OSC (Open Sound Control) + +

    +

    More information on this opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y , made by Andrés Cabrera

    - +

    Credits

    diff --git a/OSCsend.html b/OSCsend.html index cf9e48cbaf5..df6eb22e8d1 100644 --- a/OSCsend.html +++ b/OSCsend.html @@ -39,19 +39,19 @@

    - +

    Description

    Uses the OSC protocol to send message to other OSC listening processes.

    - +

    Syntax

    OSCsend kwhen, ihost, iport, idestination[, itype , xdata1, xdata2, ...]
    - +

    Initialization

    ihost @@ -79,7 +79,7 @@

    Initialization

    - +

    Performance

    kwhen -- a message is sent whenever this @@ -93,7 +93,7 @@

    Performance

    - +

    Example

    The example shows a simple instrument, which when called, sends a group of 3 messages to a computer called "xenakis", on port 7770, to be read by a process that recognises /foo/bar as its address. @@ -108,14 +108,14 @@

    Example

    Here is a complete example of the OSCsend opcode. It uses the file OSCsend.csd.

    - +

    - Example 695. Example of the OSCsend opcode. + Example 699. Example of the OSCsend opcode.

    See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -166,16 +166,17 @@ 

    Example

    - -

    See Also

    + +

    See also

    - OSClisten, - OSCinit -

    + + OSC (Open Sound Control) + +

    More information on this opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y , made by Andrés Cabrera

    - +

    Credits

    diff --git a/OpcodesTop.html b/OpcodesTop.html index 22528c3df64..9bcce4b1002 100644 --- a/OpcodesTop.html +++ b/OpcodesTop.html @@ -30,10 +30,8 @@ j -. - - + ps
    +
    +
    +
    +
    +

    DSSI and LADSPA for Csound

    +
    +
    +
    +

    dssi4cs enables the use of DSSI and LADSPA plugin + effects and synthesizers within Csound on Linux. The following opcodes are + available:

    +
    +
      +
    • +

      + dssiinit - Loads a plugin.

      +
    • +
    • +

      + dssiactivate - Activates or deactivates a plugin if it has this facility

      +
    • +
    • +

      + dssilist - Lists all available plugins found in the LADSPA_PATH and DSSI_PATH global variables.

      +
    • +
    • +

      + dssiaudio - Process audio using a Plugin.

      +
    • +
    • +

      + dssictls - Send control information to a plugin's control port.

      +
    • +
    +
    +

    + See the entry for dssiinit for a usage example. +

    +
    + + + + + + + + +
    + [Note] + Note
    +

    Currently only LADSPA plugins are supported, but DSSI support is planned.

    +
    +
    +
    diff --git a/PrefaceGettingStarted.html b/PrefaceGettingStarted.html index 7bf29c8b621..1cc55741fb6 100644 --- a/PrefaceGettingStarted.html +++ b/PrefaceGettingStarted.html @@ -10,7 +10,7 @@ - + diff --git a/PrefaceTop.html b/PrefaceTop.html index 822963b126c..bb952139f26 100644 --- a/PrefaceTop.html +++ b/PrefaceTop.html @@ -61,7 +61,7 @@

    Preface

    - What's new in Csound 6.18.0 + What's new in Csound 7.0
    diff --git a/PrefaceWhatsNew.html b/PrefaceWhatsNew.html index 8c765f9c44f..9ffff188511 100644 --- a/PrefaceWhatsNew.html +++ b/PrefaceWhatsNew.html @@ -3,7 +3,7 @@ - What's new in Csound 6.18.0 + What's new in Csound 7.0 @@ -16,7 +16,7 @@ -

    -

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • - loscilphs, - loscil3phs - are like loscil but return the phase in addition to the audio. -
      • -
      -
      -

      -

      -
      -
        -
      • - More arithmetic between a-rate arrays and a-rate values; this - completes the arithmetic where one or more argument is an audio - array. -
      • -
      -
      -

      -

      -
      -
        -
      • - balance2 - is like balance but scales the output at a-rate, - rather than k-rate. -
      • -
      -
      -

      -

      -
    • -
    • -

      Score: -

      -
      -
        -
      • - Characters following a \ in a score string are treated as - escaped, so \n is a newline rather than two characters. It - handles escaped a, b, f, n, r, t and v. Other characters - following a \ ignore the backslash. -
      • -
      -
      -

      -

      -
    • -
    • -

      Modified Opcodes and Gens: -

      -
      -
        -
      • - print, printk2 now take an additional optional argument which - if non-zero causes the k-variable name to be printed as well as - the value. -
      • -
      • - getrow, setrow, getcol, and setcol can now act on i-rate arrays. -
      • -
      • - diskin2 was incorrectly described in the manual with respect to - the iformat parameter. Now if iformat is zero the file is - expected to have an audio header; if in the range 1-10 (rather - than 0-9 as before) then it is opened as raw with the specified - sample format. THIS MAY BE INCOMPATIBLE. For most users the - value of zero will be correct. -
      • -
      • - GEN01 now uses format 0 to get the file type from the header; - any other value indicates a raw file. THIS MAY BE INCOMPATIBLE. - For most users the value of zero will be correct. -
      • -
      • - GEN01 was incorrectly documented with respect to the format - argument. There are 9 raw formats whereas the earlier manual - stated 6. -
      • -
      • - Small change in slicearray should allow it to be used in - functional form in most cases. -
      • -
      • - The family of opcodes tb0 to tb15 and their initialisation - opcodes tb0_init to tb15_init are deprecated as multi-argument - functions are allowed. -
      • -
      • - The mode filter now does not allow a frequency in the unstable - region. -
      • -
      • - In scanu and xscanu the value of kpos is supposed to be in the - range [0,1]. This is now enforced by treating all negative - values as 0 and all values bigger than 1 as 1. -
      • -
      -
      -

      -

      -
    • -
    • -

      Utilities: -

      -
      -
        -
      • - src_conv is now available on Windows and MacOS. -
      • -
      -
      -

      -

      -
    • -
    • -

      Frontends: -

      -
      -
        -
      • - Belacsound: a new frontend specific for the Bela platform is - introduced in this version. -
      • -
      -
      -

      -

      -
    • -
    • -

      Bugs Fixed: -

      -
      -
        -
      • - linen was reworked to allow for long durations and overlaps. -
      • -
      • - Resetting csound caused a crash if Lua opcodes were used; fixed. -
      • -
      • - The poscil family of opcodes could give incorrect results if - used in multi-core orchestras AND another instrument changed - the f-table. This is now corrected. -
      • -
      • - Use of out with an audio array did not check that the array - dimension was not greater than the number of channels, which - caused a crash. It is now checked and truncated if too large - with a warning. -
      • -
      • - Bug in stereo versions of loscil introduced distortion; - now fixed. -
      • -
      • Fencepost error in phs fixed.
      • -
      • - gen49 read deleted memory if the file was not found; fixed. -
      • -
      • - Loading of LADSPA plugins when relying on search paths was - wrong and mangled the name; now fixed. -
      • -
      -
      -

      -

      -
    • -
    • -

      System Changes: -

      -
      -
        -
      • - OPCODE6DIR{64} now can contain a colon-separated list of - directories. -
      • -
      • - The somewhat curious distinction between k-rate and a-rate - perf-time has been removed throughput, so only threads 1, 2 - and 3 are used, the s-type output is not used, and some x-type - inputs have been changed for direct polymorphism. This only - matters for opcode writers as the s, and x codes and threads - 4, 5, 6 and 7 will be removed in a while. -
      • -
      -
      -

      -

      -
    • -
    • -

      Translations: -

      -
      -
        -
      • As ever the French translations are complete.
      • -
      -
      -

      -

      -
    • -
    • -

      API: -

      -
      -
        -
      • No changes to the API.
      • -
      -
      -

      -

      -
    • -
    • -

      Platform Specific: -

      -
      -
        -
      • - WebAudio: from this release onwards, the Csound port for the - web platforms has been merged into a single package henceforth - called 'WebAudio Csound'. There are many internal changes to - this, the AudioWorklet interface is employed wherever supported, - with a fallback to ScriptProcessorNode elsewhere. Csound is also - available in the form of independent Nodes, in addition to the - original CsoundObj API. The csound.js frontend, originally - designed for PNaCl Csound, is also ported to WebAudio Csound, - following the deprecation of that port of Csound. -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    Release Notes for Csound 6.10 (2017 December)

    -

    - This is mostly a bugfix release, including a major bug introduced in loscil - recently. New and improved opcodes and a long orphaned GEN (53) are here, as - well as many small internal improvements. Internal changes have removed a - number of memory leaks. -

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • - midiout_i - which is like midiout, but works at i-rate. -
      • -
      • - chngetks and - chnsetks -- - versions of chnget and chnset - for string channels that only run at perf-time. -
      • -
      • - squinewave, - a mostly bandlimited shape-shifting square-pulse-saw-sinewave - oscillator with hardsync. -
      • -
      -
      -

      -

      -
    • -
    • -

      New Gen and Macros: -

      -
      -
        -
      • - GEN53 - (which has been in the code but not documented for years) is now - acknowledged. It creates a linear-phase or minimum-phase impulse - response table from a source table containing a frequency - response or an impulse response. -
      • -
      -
      -

      -

      -
    • -
    • -

      Orchestra: -

      -
      -
        -
      • - Incorrect use of k-rate if..then.. in instrument 0 is now treated - as i-rate. -
      • -
      • - Incorrect use of k-rate operations in instrument 0 are no longer - treated as an error but a warning. -
      • -
      • - In a csd file commented-out tags were acted upon in some cases, - leading to truncated orchestras. This is now fixed. -
      • -
      • - Arrays can be assigned from i-rate and k-rate to krate and - i-rate; previously rates had to match. -
      • -
      • - The use of ! as a Boolean operation (meaning negation) is now - supported, where previously the parser accepted it but did not - use it. -
      • -
      • - Constant folding now implemented on a wide range of arithmetic. -
      • -
      • - Attempts to use an undefined macro produce a syntax error now. -
      • -
      • - Missing " (or other terminator) in #include is noticed and - the #include is ignored. -
      • -
      -
      -

      -

      -
    • -
    • -

      Score: -

      -
      -
        -
      • - In a csd file commented-out tags were acted upon in some cases, - leading to truncated scores. This is now fixed. -
      • -
      • The evaluation form [..] can now be nested.
      • -
      • - The extract feature (-x from command line) now works. -
      • -
      • - Use of the score opcode x could cause spurious error messages - which are now suppressed. -
      • -
      • - After calling a undefined macro the rest of the line is ignored. -
      • -
      • - A couple of bugs in repeated sections (r opcode) have been removed. -
      • -
      • - Missing " (or other terminator) in #include is noticed and the - #include is ignored. -
      • -
      -
      -

      -

      -
    • -
    • -

      Options: -

      -
      -
        -
      • - The --tempo (and -t) option now can be fractional; was - previously limited to an integer. -
      • -
      • - new option: --udp-console=address:port redirects console to a - remote address:port. -
      • -
      • - new option: --udp-mirror-console=address:port mirrors the - console to a remote address:port. -
      • -
      • - new option: --udp-echo echoes messages sent to the UDP server. -
      • -
      -
      -

      -

      -
    • -
    • -

      Modified Opcodes and Gens: -

      -
      -
        -
      • loscil/loscil3 accept floating point increment.
      • -
      • OSCraw closes socket after use.
      • -
      • - fout can now generate ogg format, as well as accepting -1 to - mean the same format as -o uses. -
      • -
      • - bitwise and opcode (&) at a-rate corrected for sample-accurate - mode. -
      • -
      • - slicearray has an optional additional argument to give a stride - to the slice. -
      • -
      • chnset now can have variable channel names.
      • -
      • - a-rate arrays may be added, subtracted, multiplied and scaled. - This is a start on a-rate array arithmetic. -
      • -
      • dssiinit improved removing some crashes.
      • -
      • partials improved to remove a fencepost issue.
      • -
      • vco2ift fixed when an existing table is used.
      • -
      -
      -

      -

      -
    • -
    • -

      Frontends: -

      -
      -
        -
      • - Emscripten: Now compiled as WebAssembly (runs in all major - browsers). API now somewhat more conformed to other HTML5 APIs. -
      • -
      • - CsoundQT: Now built from master branch for improved stability. -
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixed: -

      -
      -
        -
      • - The optionality of the last argument in sc_phasor now works. -
      • -
      • Freezing in dconv fixed.
      • -
      • - looptseg no longer crashes if presented with too few arguments. -
      • -
      • - schedule etc now work correctly with double-quoted strings - within {{ }} strings. -
      • -
      • - problem with CLI frontend interrupt handler fixed. -
      • -
      • - outs2 was broken (always wrote to channel 1 like outs1). -
      • -
      • - Various errors in the DSSI/ladspa system fixed. -
      • -
      • - vbap was broken in all cases except 4-speakers, now corrected. -
      • -
      • - Live evalution of Csound Orchestra code code could result in - hard to diagnose, odd errors (e.g., crashes, division by zeros, - NaNs). This was due to a bug in merging of newly found constants - into the global constant pool. -
      • -
      -
      -

      -

      -
    • -
    • -

      System Changes: -

      -
      -
        -
      • - UDP Server now accepts some new commands, which are prefixed by - an opcode. These include support for events (&) and scores ($); - setting control channels (@ ); setting string channels (% ); - getting control channel values via UDP (:@ ) and string channel - contents (:% ). -
      • -
      -
      -

      -

      -
    • -
    • -

      Translations: -

      -
      -
        -
      • As ever the French translations are complete.
      • -
      • - The Italian translations of messages are greatly improved in - scope; about a half of error and warning messages are now done. -
      • -
      • - Some progress as been made in German translations. -
      • -
      -
      -

      -

      -
    • -
    • -

      API: -

      -
      -
        -
      • - CompileCsdText now always returns a value indicating success/failure. -
      • -
      • - Eight new asynchronous versions of API functions now available: - csoundCompileTreeAsync(), csoundCompileOrcAsync(), csoundReadScoreAsync(), - csoundInputMessageAsync(), csoundScoreEventAsync(), csoundScoreEventAbsoluteAsync(), - csoundTableCopyOutAsync(), and csoundTableCopyInAsync(). -
      • -
      • - For server use, three new API functions: csoundUDPServerStart, - csoundUDPServerStatus and csoundUDPServerClose. -
      • -
      -
      -

      -

      -
    • -
    • -

      Platform Specific: -

      -
      -
        -
      • -

        Windows

        -
        -
          -
        • Now compiled with Microsoft Visual Studio 2017 or later.
        • -
        • Continuous integration for Windows with AppVeyor.
        • -
        -
        -
      • -
      • -

        GNU/Linux

        -
        -
          -
        • - GNU/Linux ALSA MIDI backend now ignores some spurious ENOENT - error codes. -
        • -
        -
        -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    Release Notes for Csound 6.09 (2017 May)

    -

    A mixed bag of new opcodes and many fixes and improvements.

    -

    - Also as usual there are a number of internal changes, including many memory - leaks fixed and more robust code. -

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • - select -- - sample-by-sample comparison of audio selecting the output. -
      • -
      • - midiarp -- - generates arpeggios based on currently held MIDI notes. -
      • -
      • - hilbert2 -- - a DFT-based implementation of a Hilbert transformer. -
      • -
      • - Ableton Link opcodes -- for synchronizing tempo and beat across - local area networks. -
      • -
      • - pvstrace -- - retain only the N loudest bins. -
      • -
      • - several new unary functions/opcodes for k-rate and i-time numeric - arrays: ceil, floor, round, int, frac, powoftwo, abs, log2, log10, - log, exp, sqrt, cos, sin, tan, acos, asin, atan, sinh, cosh, tanh, - cbrt, limit1. -
      • -
      • - several new binary functions/opcodes for k-rate and i-time numeric - arrays: atan2, pow, hypot, fmod, fmax, fmin. -
      • -
      • - limit -- - numeric limiting within a given range (for arrays). -
      • -
      • - tvconv -- - a time-varying convolution (FIR filter) opcode. -
      • -
      • - liveconv -- - partitioned convolution with dynamically reloadable impulse - response. -
      • -
      • - bpf, - xyscale, - ntom, - mton -- - (from SuperCollider?). -
      • -
      • - OSCsend -- - now implemented directly using system sockets. Old version using - liblo has been kept as OSCsend_lo. -
      • -
      • - OSCraw -- to listen for all OSC messages at - a given port. -
      • -
      • - sorta and - sortd-- - sort elements of an array. -
      • -
      • - dot -- - calculates the dot product of two arrays. -
      • -
      • - zero delay filters -- - zdf_1pole_mode, - zdf_2pole_mode, - zdf_ladder, - zdf_1pole and - zdf_2pole, - diode_ladder, - K35_hpf and - K35_lpf. -
      • -
      • - product -- - takes a numeric array (k or i-rate) and calculates its product. -
      • -
      • - supercollider ugens -- - sc_phasor, - sc_lag, - sc_lagud, - sc_trig. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Orchestra: -

      -
      -
        -
      • - Including a directory of UDO files no longer fails if more than - about 20 entries. -
      • -
      • - It was possible for kr, sr, and ksmps to be inconsistent in one - case, no more. -
      • -
      • - Macro names better policed and bracket matching. -
      • -
      • - Octal values as \000 can be in strings. -
      • -
      • - (from 6.09.1) In a UDO the out* opcodes now work, where before - it was working only sometimes. -
      • -
      -
      -

      -

      -
    • -
    • -

      Score: -

      -
      -
        -
      • - Improved line number reporting in r opcode and case with no - macro implemented. -
      • -
      • m and n opcodes fixed.
      • -
      • Expansion of [...] corrected and improved.
      • -
      • Strings in scores improved.
      • -
      • - The ) character can be in a macro argument if it is escaped - with \. -
      • -
      • - Use of the characters e or s could lead to errors; now fixed. -
      • -
      • - Macro names better policed, and bracket matching. -
      • -
      • - p2 and p3 are now at higher precision, no longer truncated to - 6 decimal places. -
      • -
      • - new opcode d to switch off infinite notes (denote); same as i - with negative p1. -
      • -
      • - named instruments can be turned off with i if a - follows the ". -
      • -
      • - (from 6.09.1) if an r-opcode section ended in e-opcode it used - to stop early. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Options: -

      -
      -
        -
      • - jack midi module now can report available devices under - --midi-devices. -
      • -
      • - (from 6.09.1) defining smacros and omacros on command line only - happens once. -
      • -
      • - (from 6.09.1) defining smacros from command line now works. -
      • -
      -
      -

      -

      -
    • -
    • -

      Modified Opcodes and Gens: -

      -
      -
        -
      • ftgentmp improved string arguments.
      • -
      • - hdf5read opcode now reads entire data sets when dataset name - string is suffixed with an asterisk. -
      • -
      • - use of non power-of-two lengths now acceptable where before - it was inconsistent. -
      • -
      • ampmidid optionally can be aware of 0dbfs.
      • -
      • - dust and dust2 at k-rate now conform to the manual (NOTE: - this is an incompatible change). -
      • -
      • In prints the format %% now prints one %.
      • -
      • OSClisten can be used with no data outputs.
      • -
      • GEN18 corrected to write to requested range.
      • -
      • sockrev now can read strings.
      • -
      • - vbap system can in some cases allow arbitrary number of - speakers via arrays (work in progress). -
      • -
      • - Websocket server can only accept one protocol output, so - limiting intype to just a single argument. -
      • -
      • sum opcode will also sum elements of an array.
      • -
      • - Overloaded pvs2tab and tab2pvs now can create and use split - magnitude and phase arrays. -
      • -
      -
      -

      -

      -
    • -
    • -

      Utilities: -

      -
      -
        -
      • dnoise fixed.
      • -
      -
      -

      -

      -
    • -
    • -

      Frontends: -

      -
      -
        -
      • Removed HTML5 Csound editor which has quit working.
      • -
      • - Emscripten: Emscripten Csound (asm.js) now requires sourcing in - CsoundObj.js and FileList.js separately from libcsound.js. This - is to accommodate using the same JS API with either asm.js or - wasm backends. -
      • -
      • - CsoundQT: CsoundQt 0.9.4 is announced: - - https://github.com/CsoundQt/CsoundQt/blob/develop/release_notes/Release notes 0.9.4.md. -
      • -
      • Windows installer with CsoundQt includes PythonQt.
      • -
      -
      -

      -

      -
    • -
    • -

      Bugs Fixed: -

      -
      -
        -
      • pwd works on OSX.
      • -
      • Fencepost error in sensLine fixed.
      • -
      • OSCsend corrected for caching of host name.
      • -
      • - Bug in push/pop opcodes fixed (this opcode is now a plugin and - deprecated). -
      • -
      • Bug in sprintf removed.
      • -
      • Bug in soundin removed.
      • -
      • losci/losci3 fixed in case of long tables.
      • -
      • inrg was broke for a while.
      • -
      • - Partikkel channelmask panning laws had an indexing error, now - fixed. -
      • -
      • - jack audio module now allows for independent numbers of in and - out channels. -
      • -
      • Bug in string copying fixed.
      • -
      • - Bug in hdf5read where if two hdf5read opcodes were placed in - series in an instrument, the argument names of the second opcode - instance would be incorrect due to directly changing the last - string character of the first when reading an entire dataset. -
      • -
      • Memory leaks fixed in some plugin opcodes.
      • -
      -
      -

      -

      -
    • -
    • -

      System Changes: -

      -
      -
        -
      • soundin now uses the diskin2 code.
      • -
      • - out family of opcodes reworked to reduce interleaving costs and - to take proper regard if nchnls value. -
      • -
      • - (from 6.09.1) a crash on Linux i386 removed relating to server mode. -
      • -
      -
      -

      -

      -
    • -
    • -

      API: -

      -
      -
        -
      • - New csound_threaded.hpp header-only facility, obviating need for - csPerfThread.cpp object in some projects. -
      • -
      • Added GetA4 function.
      • -
      • - New framework for plugin opcode development in C++ using - Csound's allocator. -
      • -
      • Added StrDup function.
      • -
      • - Boost dependencies removed from Csound interfaces and CsoundAC. -
      • -
      • - (from 6.09.1) Two new API function, csoundSetSpinSample and - csoundClearSpin. -
      • -
      -
      -

      -

      -
    • -
    • -

      Platform Specific: -

      -
      -
        -
      • -

        iOS

        -
        -
          -
        • - iPad portrait SplitView fix+animation, info popover - resizing, stop button fix in Soundfile Pitch Shifter. -
        • -
        • - Csound-iOS API updates; Examples cleaned up, - enhanced/expanded, and reordered. Manual revised, expanded, - updated. Updates to API and examples support iOS 10 and - Xcode 8. -
        • -
        -
        -
      • -
      • -

        Android

        -
        -
          -
        • - Multichannel input and output allowed. -
        • -
        -
        -
      • -
      • -

        Windows

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

      -

      -
    • -
    -
    -

    -

    -

    Release Notes for Csound 6.08 (2016 November)

    -

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

    -

    -

    -
    -
      -
    • -

      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 filterbank 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. -
      • -
      -
      -

      -

      -
    • -
    • -

      Utilities: -

      -
      -
        -
      • - pvlook now always prints explicit analysis window name. -
      • -
      -
      -

      -

      -
    • -
    • -

      Frontends: -

      -
      -
        -
      • - HTML5 -
        • - csound.node: Implemented for Linux, minor API fix. -
        • - pnacl: Added compileCsdText method to csound object. -
        -
      • -
      -
      -

      -

      -
    • -
    • -

      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.
      • -
      -
      -

      -

      -
    • -
    • -

      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 recommanded interface for Python, - csnd6.py being deprecated. -
      • -
      -
      -

      -

      -
    • -
    • -

      Platform Specific: -

      -
      -
        -
      • -

        Android.

        -
        -
          -
        • Multichannel input and output allowed.
        • -
        -
        -
      • -
      • -

        Windows.

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

      -

      -
    • -
    -
    -

    -

    -

    Release Notes for Csound 6.07 (2016 March)

    -

    - A large number of bug fixes, some quite major, some internal are - included, as well as some new facilities and extensions. As ever there - are coding improvements as well. -

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • - compress2: - like compress but using a more normal use of dB (0.0 for full - scale). -
      • -
      • - (Experimental, source code-only) New cuda opcodes: cudasynth2 - and cudanal2. -
      • -
      • - directory - opcode: reads a directory and outputs to a string array a list - of file names. -
      • -
      • - ftsamplebank: - to load a sample library from a directory. -
      • -
      • - mvclpf1, - mvclpf2, - mvclpf3, - mvclpf4, - mvchpf: - Moog voltage-controlled filter emulations from Fons Andriaensen. -
      • -
      • - S() - converter from k-rate and i-time number to a string. -
      • -
      • - cepsinv - opcode to calculate the inverse cepstrum of an array. -
      • -
      • - moogladder2, - is a faster, less accurate implementation of moogladder. -
      • -
      • - paulstretch - opcode is a lightweight implementation of the PaulStretch - time-stretching algorithm by Nasca Octavian Paul. It is ideal - for timestretching a signal by very large amounts. -
      • -
      • - mp3scal - implements phase-locked vocoder processing from mp3-format disk - files, resampling if necessary. -
      • -
      • - filescal - implements phase-locked vocoder processing from disk files, - resampling if necessary. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Orchestra: -

      -
      -
        -
      • - The boolean ? .. : .. construction can now have string results, - while previously it only allowed numbers. -
      • -
      • - The line number reported when an error is detected at the end - of a line is now correct. Also more improvements in line numbers - for complex syntax. -
      • -
      • - while loop - improved/fixed. -
      • -
      • - Better and consistent reading of comments. -
      • -
      • - Continuation lines handled better, especially respecting line - numbers. -
      • -
      • - opcode: S(.) - syntax now allowed. -
      • -
      -
      -

      -

      -
    • -
    • -

      Score: -

      -
      -
        -
      • - The list of tempo points in score opcode - t is now - arbitrarily long. -
      • -
      • - A stupidity in r - and { - opcodes fixed. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Options: -

      -
      -
        -
      • - The -z - option now suppresses deprecated opcodes, unless given - a 2 or 3 argument. -
      • -
      • - The new option --fftlib controls which real fft library to - use internally (FFTLIB = 0, PFFFT = 1, vDSP = 2) -
      • -
      -
      -

      -

      -
    • -
    • -

      - Modified Opcodes and Gens: -

      -
      -
        -
      • - In OSC - opcodes it is now possible to send and receive arrays, - tables and audio. -
      • -
      • - Better diagnostic if - diskin2 - fails. -
      • -
      • - rezzy - now checks for unstable filter and modifies to close - stable version. -
      • -
      • - adsr - rewritten so it gives an error if the segments are - longer than p3. -
      • -
      • - Use of diskin to an - array now resizes the output array if necessary. -
      • -
      • - chnget - now checks for a change in channel name as well as data. -
      • -
      • - interp - can take an optional extra argument to give an initial value. -
      • -
      • - oscilikts - uses a more liberal table lookup. -
      • -
      • - opcode in can - read mono or stereo, obviating the in/ins distinction. -
      • -
      • - sensekey - rewritten to provide better diagnostics and fixes a minor bug. -
      • -
      • - Fix to a case of defining a macro with arguments. -
      • -
      • - sockrecv - now works at a and k rate. -
      • -
      • - GEN49 now - works from ftgen - calls. -
      • -
      • - GEN34 - liberalised in tables it accepts. -
      • -
      • - chnget - now allows channel names to be changed at perf time. -
      • -
      • - iceps has been renamed cepsinv to avoid name clashes. -
      • -
      • - mp3 support improved in a number of minor ways. -
      • -
      • - A minor fix to allow a ladspa plugin to be re-loaded by the host. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Frontends: -

      -
      - -
      -

      -

      -
    • -
    • -

      General usage: -

      -
      -
        -
      • - The multicore options somewhat improved. -
      • -
      • - When replacing instruments the new version inherits maxalloc - and active flags. -
      • -
      • - Multicore code now works with midi instruments. -
      • -
      • - MIDI operations now available via a new rtmidi jack module - (-+rtmidi=jack). -
      • -
      -
      -

      -

      -
    • -
    • -

      Bugs fixed: -

      -
      -
        -
      • - Fix to trigseq. -
      • -
      • - Major error in rezzy fixed. -
      • -
      • - p() fixed for - high numbers of p-arguments. -
      • -
      • - p() now works - from MIDI events. -
      • -
      • - The 31-bit random number generator could give a very short - loop if seeded with zero; fixed. -
      • -
      • - Macros in .orc files now work. -
      • -
      • - A long-standing bug in display of graphs fixed. -
      • -
      • - Fixes to the envelope opcodes - linen, - expsegr, - linsegr, - cossegr, - transegr, - envlpx, - including new warnings. -
      • -
      • - Many fixes in string opcodes - (strsub, - strcpy - and others). -
      • -
      • - Fixed bugs in print formats - (sprintf, - printf, - prints). -
      • -
      • - pvsmooth - had a missing initialisation. -
      • -
      • - Array initialisation now robust. -
      • -
      • - Bug in copya2ftab - fixed. -
      • -
      • - Fix in cudapvsanal (EXPERIMENTAL). -
      • -
      • - partikkel - fix to subsample grain placement. -
      • -
      • - Opcodes that require an odd number of arguments are now - properly checked. -
      • -
      • - pvswrite now takes proper notice of 0dbfs. -
      • -
      • - GEN34 - now allowing non-power-of-two source tables. -
      • -
      • - strcat - mended. -
      • -
      • - nstance - mended. -
      • -
      • - fixed small issues in rtauhal module. -
      • -
      • - Windows installer for 64 bit CPU architecture now sets - environment variables on system level as it should. -
      • -
      • - transeg at k-rate with itype non-zero had an initial delay if - one cycle. -
      • -
      • - log function on arrays fixed. -
      • -
      • - Rescaling of named GENs fixed. -
      • -
      • - A fencepost error in reading ATS files believed fixed; it - generated spurious errors about file finishing early. -
      • -
      • - Initialisation error in pvbandp fixed. -
      • -
      • - readfi string allocation fixed. -
      • -
      -
      -

      -

      -
    • -
    • -

      System changes: -

      -
      -
        -
      • - Extensive use made of in-memory files. Orc and sco are always - thus, as are .csound6rc. This simplifies much internally. -
      • -
      • - Nested longjmps fixed which affected some API use. -
      • -
      • - If a non-existent .csd file is presented Csound no longer - crashes. -
      • -
      • - The kcounter value is now consistently an unsigned 64bit - value, allowing for long performances. -
      • -
      -
      -

      -

      -
    • -
    • -

      API: -

      -
      -
        -
      • - csoundCompileCsdText: New function to compile a CSD from a - string of text. -
      • -
      • - The function call csound->GetKcounter(csound) now returns an - unsigned 64 bit integer. Previously it returned a long which is - unclear. -
      • -
      • - ctcsound.py is a new wrapper file to the Csound API for the - Python language. It is a pure Python file using the FFI - (Foreign Function Interface) module ctypes. It does not depend - on Swig, and it works with Python2 and Python3 as well. It uses - numpy for its data structures, numpy being the fundamental - package for scientific computing with Python. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Platform Specific: -

      -
      -
        -
      • -

        Windows.

        -
        -
          -
        • - The Windows installer for Csound now contains all executables - built for 64 bit CPU architecture. -
        • -
        • - The Windows installer for 64 bit CPU architecture now - provides NW.js "out of the box." It runs all features of - Csound, as well as all features of HTML5, in a browser-like - runtime with JavaScript scripting, and includes a Csound - editor implemented in HTML. The editor will run pieces - either as .csd files with embedded <html> or as .html - files calling the csound object, and includes JavaScript - debugging. -
        • -
        • - A new simplified build system has been implemented in the - csound/mingw64 directory for building Csound using the - MSYS2/mingw64 toolchain. -
        • -
        • - Linking to pthreads and other libraries now static. -
        • -
        • - Some limited support for non-ASCII characters in file names. -
        • -
        -
        -
      • -
      • -

        OSX.

        -
        -
          -
        • Installer fixed for link names for _csnd6 and _CsoundAC.
        • -
        -
        -
      • -
      • -

        GNU/Linux.

        -
        -
          -
        • - date - opcode more accurate.
        • -
        -
        -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    Release Notes for Csound 6.06 (2015 September)

    -

    A number of bug fixes, some quite major, are included, as well as some - new facilities and extensions.

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • getseed reads the state of the PRN generator; - opposite of seed opcode.
      • -
      • tabifd — Instantaneous Frequency Distribution, magnitude - and phase analysis.
      • -
      • websocket — Read and write signals and arrays using a - websocket connection.
      • -
      • framebuffer — Read audio signals into 1 dimensional - k-rate arrays and vice-versa with a specified buffer size.
      • -
      • olabuffer — Sum overlapping frames of audio as k-rate - arrays and read as an audio signal
      • -
      -
      -

      -

      -
    • -
    • -

      - Orchestra: -

      -
      -
        -
      • Labels are allowed in instrument 0.
      • -
      -
      -

      -

      -
    • -
    • -

      Score: -

      -
      -
        -
      • Maximum string length in scores increased to 1024.
      • -
      -
      -

      -

      -
    • -
    • -

      - Modified Opcodes and Gens: -

      -
      -
        -
      • diskin2 array version uses array size to give number - of channels in raw file form.
      • -
      • diskin2 now has the kpitch parameter defaulting to 1 for - simple use.
      • -
      • Vibrato f-table in wgflute and wgcar optional, - defaulting to sine wave.
      • -
      • schedule now accept string arguments.
      • -
      • urandom now available on OSX platforms.
      • -
      • GEN18 had fencepost problem; largely rewritten.
      • -
      • In poscil family of opcodes it is possible to skip - initialisation of phase.
      • -
      • svfilter now can skip initialisation.
      • -
      • When opening an input file nchncls_i is used rather - than nchnls. This is a change that should have followed the - existence of nchnls_i
      • -
      • rtjack module now reports the sampling rate.
      • -
      • The opcodes rfft, rifft, fft, fftinv, r2c and c2r now - have i-rate array versions.
      • -
      • New optional threshhold parameter in opcodes tradsyn, - sinsyn and resyn.
      • -
      • New thresholding option for partials.
      • -
      -
      -

      -

      -
    • -
    • -

      Utilities: -

      -
      -
        -
      • extract fixed.
      • -
      • src_conv improved and integrated with -U options.
      • -
      • fixes in atsa, and heti.
      • -
      -
      -

      -

      -
    • -
    • -

      Frontends: -

      -
      -
        -
      • -

        pnacl:

        -
        -
          -
        • Support for 48000 sample rate fixed.
        • -
        -
        -
      • -
      • -

        csound~:

        -
        -
          -
        • Changes to the threading system. String channel - initialisation fixed. A number of other bugs were - fixed.
        • -
        -
        -
      • -
      • -

        Emscripten:

        -
        -
          -
        • Csound Javascript object can now receive data - from the outvalue opcode.
        • -
        -
        -
      • -
      • -

        HTML5:

        -
        -
          -
        • Integrate HTML, JavaScript, and other features of - HTML5 with Csound, either by embedding a Web page as an - <html> element in the CSD file for CsoundQt or Csound - for Android, or by hosting Csound in the JavaScript context - of a standalone Web browser (Emscripten, PNaCl) or embedded - Web browser (csound.node).
        • -
        -
        -
      • -
      -
      -

      -

      -
    • -
    • -

      General usage: -

      -
      -
        -
      • Ill-formatted macros in the orchestra now trapped.
      • -
      -
      -

      -

      -
    • -
    • -

      Bugs fixed: -

      -
      -
        -
      • Use of Windows-style environments for INCDIR etc now - works with device numbers.
      • -
      • vibrato opcode fixed.
      • -
      • Clicking in real-time sample accurate case fixed.
      • -
      • Copying of strings now correct; did confuse memory - sometimes.
      • -
      • Bug in pvstanal fixed.
      • -
      • Rounding error in cpspch fixed.
      • -
      • Removed crash on recompiling a named instrument.
      • -
      • Fix interpolation bug in tablexkt.
      • -
      • Fix to plltrack when ksmps is 1.
      • -
      -
      -

      -

      -
    • -
    • -

      System changes: -

      -
      -
        -
      • The "error" message from STK plugin is now a warning.
      • -
      -
      -

      -

      -
    • -
    • -

      API: -

      -
      -
        -
      • Redefinition of opcodes and UDOs fixed.
      • -
      -
      -

      -

      -
    • -
    • -

      - Platform Specific: -

      -
      -
        -
      • -

        OSX.

        -
        -
          -
        • csnd6.jar link installed in the correct location.
        • -
        • Java JNI linking issues solved.
        • -
        • fixed link name for libpng in libfltk_image.
        • -
        -
        -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    Release Notes for Csound 6.05 (2015 April)

    -

    As ever there are new facilities and numerous bug-fixes. A major part of - this release is the removal of a number of memory leaks and over use - of memory. Naturally these changes are all but invisible, just a - smaller memory foot-print. - - Note that we track bugs and requests for enhancements via the github - issues system, and these had a significant affect on this release.

    -

    -

    -
    -
      -
    • -

      Opcodes : -

      -
      -
        -
      • The opcode sndload is now deprecated.
      • -
      -
      -

      -

      -
    • -
    • -

      New Gen and Macros: -

      -
      -
        -
      • Paul Octavian Nasca's padsynth algorithm implemented as a gen.
      • -
      -
      -

      -

      -
    • -
    • -

      Score: -

      -
      -
        -
      • Fixed string location calculation bug when processing score - lines [fixes #443]
      • -
      -
      -

      -

      -
    • -
    • -

      Options: -

      -
      -
        -
      • A short-format copyright option is available, with a fixed - number of well-known licences (CC, etc)
      • -
      • New command-line option to report MIDI devices in simple - format
      • -
      • New command-line option to set ksmps
      • -
      -
      -

      -

      -
    • -
    • -

      - Modified Opcodes and Gens: -

      -
      -
        -
      • adsynt handles amplitude changes - better
      • -
      • sfont has better checking for - corruptions
      • -
      • better checking in physical models for out-of-range - frequencies
      • -
      • ftgenonce and others allows string - parameters
      • -
      • gausstrig reworked and extended with new - features
      • -
      • use of p() function no longer - complains overrides the pcnt warning
      • -
      • fix to midirecv
      • -
      • OSCsend cleans up after use - improved
      • -
      • fillarray is limited to 1 or 2 - dimensional arrays; in fact it failed silently previously for 3D - and higher.
      • -
      • oscbnk now works when the equaliser - is used.
      • -
      • mp3in now works with both mono and - stereo input files
      • -
      • flooper & flooper2 - now allow stereo tables
      • -
      • Release phase of expsegr fixed
      • -
      • f-tables created by a large number of arguments could - overwrite memory, now fixed
      • -
      • performance of plltrack improved -
      • -
      • init of arrays clarified and checked
      • -
      • gen23 corrected to stop an infinite - loop
      • -
      • alwayson now starts from score offset. - - -
      • -
      • invalue now checks for output string size and reallocates - memory if smaller than default string size (set at 256 bytes - for backwards compatibility)
      • -
      -
      -

      -

      -
    • -
    • -

      Utilities: -

      -
      -
        -
      • The srconv utility has been improved but it does not - work well, with groups of noise in otherwise good output. We - recommend the use of Erik de Castro Lopo's Secret Rabbit Code - (aka libsamplerate) as providing sample rate conversion at high - quality. srconv will be removed shortly possibly to be replaced - by an SRC-based utility.
      • -
      -
      -

      -

      -
    • -
    • -

      Frontends: -

      -
      -
        -
      • -

        pnacl

        -
        -
          -
        • Added interface to allow the use of Csound's MIDI input - system.
        • -
        • Fixed audio input to conform to the latest Pepper API - spec.
        • -
        -
        -
      • -
      -
      -

      -

      -
    • -
    • -

      Bugs fixed: -

      -
      -
        -
      • bugs in fastabi,oscktp, phasorbnk, adsr, xadsr, hrtfer fixed.
      • -
      • bugs in the harmon. harmon2, harmon3 and harmon4 fixed.
      • -
      • Csound could crash after a parsing error, a case now removed.
      • -
      -
      -

      -

      -
    • -
    • -

      - System changes: -

      -
      -
        -
      • There are now checks that xin/xout types match those defined - as part of UDO definition.
      • -
      • jack now has a timeout.
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • Many defects indicated by coverity fixed or code changed. - Should make csound more robust in edge cases.
      • -
      • Parser-related changes simplifies allocation of temporary - variables, with some new optimisations.
      • -
      • code for multi-thread rendering improved and stablised - vis-a-vis redefinition of instruments.
      • -
      -
      -

      -

      -
    • -
    • -

      - Platform Specific: -

      -
      -
        -
      • -

        iOS.

        -
        -
          -
        • Fixed audio callback to work correctly with lightning - output and Apple TV.
        • -
        -
        -
      • -
      • -

        Android.

        -
        -
          -
        • New experimental audio IO mode: csoundPerformKsmps() - is called from the OpenSL ES output callback. This mode can - be optionally enabled by passing a value of "false" to a new - second parameter to the CsoundObj constructor (bool isAsync). - The default constructor and the one-parameter sets this to - "true" (keeping backwards compatibility with existing - code).
        • -
        • The OSC opcodes are included in distribution.
        • -
        • -

          Android app

          -
          -
            -
          • There are new file open and save dialogs that - permit the user to access the SD card on the device, if - there is one, in addition to internal storage.
          • -
          • There is a new "Save as..." button that permits - the user to save the csd as a new file with a new name.
          • -
          • Many of the examples in the archive of Android - examples are now built into the app and can be run from the - app's menu.
          • -
          • Includes now the exciter opcode.
          • -
          -
          -
        • -
        -
        -
      • -
      • -

        OSX.

        -
        -
          -
        • Installation now places csladspa.so rather than - csladspa.dylib on disk.
        • -
        -
        -
      • -
      • -

        Linux.

        -
        -
          -
        • Linux is now build without FLTK threads. This removes - system hangs and is in line with other builds.
        • -
        -
        -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    Release Notes for Csound 6.04 (2014 November)

    -

    This new version has many extensions and fixes; many new opcodes - and significant numbers of internal reworking. There is a new - frontend and iOS and Android version have seen many improvements.

    -

    As ever we track bugs and requests for enhancements via the github - issues system. Already proposals for the next release are being - made but the volume of changes require a release now.

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • pinker - generates high quality pink noise.
      • -
      • power opcode ^ now works with array arguments.
      • -
      • exciter - opcode, modelled on the calf plugin.
      • -
      • vactrol - opcode simulates an analog envelope follower.
      • -
      • family of hdf5 opcodes to handle hdf5 format files.
      • -
      • (experimental undocumented) buchla opcode models the lowgate - filter of Buchla.
      • -
      • New k-rate opcodes acting on arrays: -
        • transforms: rfft, rifft, fft, fftinv
        • complex product: complxprod
        • polar - rectangular conversion: rect2pol, pol2rect, mags, phs
        • real - complex: r2c, c2r
        • windowing: window
        • cepstrum: pvscpes, iceps, ceps
        • column / row access: getrow, getcol, setrow, setcol
        • a-rate data - k-array copy: shiftin, shiftout
        • phase unwraping: unwrap
        -
      • -
      -
      -

      -

      -
    • -
    • -

      - New Gen and Macros: -

      -
      -
        -
      • Line numbers corrected in instr statements.
      • -
      • New control operation, while, for looping.
      • -
      • A long-standing bug with macros which use the same name for an - argument has been corrected.
      • -
      • Redefinition of an instrument in a single call to compile is - flagged as an error.
      • -
      • ID3 header skip for mp3 files now properly implemented.
      • -
      • Errors induced by not defining the location of STK's raw wave - files has been removed.
      • -
      • bug fixed where UDO's could not read strings from pfields.
      • -
      -
      -

      -

      -
    • -
    • -

      - Modified Opcodes and Gens: -

      -
      -
        -
      • stackops opcodes deprecated.
      • -
      • lenarray extended to handle multi-dimensional arrays.
      • -
      • ftgenonce accepts string arguments correctly and multiple - string arguments.
      • -
      • max and min now have initialisation-time versions.
      • -
      • gen23 improved regarding comments and reporting problems.
      • -
      • in OSCsend the port is now a k-rate value.
      • -
      • socksend now works at k-rate.
      • -
      • a number of envelope-generating opcodes are now correct in - sample-accurate mode.
      • -
      • faust compilation is now lock-protected.
      • -
      • mp3 fixed to allow reinit to be used with it.
      • -
      • In remote opcode the name of the network can be set via - the environment variable CS_NETWORK. Defaults to en0 (OSX) or - eth0.
      • -
      -
      -

      -

      -
    • -
    • -

      Frontends: -

      -
      -
        -
      • icsound: - New frontend icsound is now ready for general use. icsound is - a python interface for interactive work in the ipython notebook. -
      • -
      • csdebugger: - A number of changes and improvements have been made, like - stepping through active instruments, better line number use. -
      • -
      -
      -

      -

      -
    • -
    • -

      General usage: -

      -
      -
        -
      • Jack module now does not stop Csound if autoconnect fails.
      • -
      -
      -

      -

      -
    • -
    • -

      Bugs fixed: -

      -
      -
        -
      • atsinnoi fixed.
      • -
      • ftsavek fixed.
      • -
      • sprintf fixed.
      • -
      • gen27 fixed, especially with extended arguments, as well as - fixed a number of errors in extended score arguments.
      • -
      • Physem opcodes (guiro cabasa, sekere) fixed so second call - works.
      • -
      • flooper fixed in mode 2.
      • -
      • OSCsend multiple fixes.
      • -
      • UDO fix for case of local ksmps of 1.
      • -
      • More changes/fixes to dssi code.
      • -
      • xscanu and scanu fixed.
      • -
      • temposcal and mincer fixed.
      • -
      • crash in ftload fixed.
      • -
      -
      -

      -

      -
    • -
    • -

      - System changes: -

      -
      -
        -
      • In server mode exit is now clean.
      • -
      • Fixes to rtalsa module.
      • -
      • Pulseaudio rt module fixes.
      • -
      • Fix to remove fluidEngine entries for csound instance - (prevents crash on moduleDestroy).
      • -
      • Opcodes called through function calls that returned arrays - did not correctly synthesize args as array types due to not - converting the arg specifier to the internal format.
      • -
      • fixed crashing issue during note initialization for tied - notes due to goto skipping over code.
      • -
      • fixed incorrect initialization of pfields when note's pfields - length were less than instrument expected (off-by-one).
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • Added Runtime Type Identification for instrument variables; - removed use of XINCODE/XOUTCO.
      • -
      • fix malloc length in negative number parsing, and improved - handling of negative numbers.
      • -
      • writing to circularBuffer is now atomic.
      • -
      • a number of memory leaks and potential dangerous code have been - fixed.
      • -
      • type-inference has been extensively reworked, as have a few - parsing areas.
      • -
      -
      -

      -

      -
    • -
    • -

      - API: -

      -
      -
        -
      • Added API function for retrieving GEN parameters used for - creating a table.
      • -
      -
      -

      -

      -
    • -
    • -

      - Platform Specific: -

      -
      -
        -
      • -

        iOS.

        -
        -
          -
        • API Refactored for clearer method names and abstraction names (i.e. - CsoundBinding instead of CsoundValueCacheable).
        • -
        • Updated to remove deprecated code.
        • -
        • A significant amount of reworking has been done on the code.
        • -
        -
        -
      • -
      • -

        Android.

        -
        -
          -
        • API Refactored for clearer method names and abstraction names (i.e. - CsoundBinding instead of CsoundValueCacheable).
        • -
        • Changes to enable HTML 5 with JavaScript and it is to be hoped WebGL - in the Csound6 Android app.
        • -
        • Enabled change of screen orientation in the Csound6 app without - forcing a restart of the app.
        • -
        • Enabled local storage (useful for saving and restoring widget - values, etc.).
        • -
        -
        -
      • -
      • -

        Windows.

        -
        -
          -
        • fixed pointer arithmetic that caused crashing on Windows.
        • -
        • pyexec changed to use python's file opening functions to - prevent crash on Windows.
        • -
        -
        -
      • -
      • -

        OSX.

        -
        -
          -
        • CsoundAC now compiles.
        • -
        -
        -
      • -
      • -

        Linux.

        -
        -
          -
        • threadlocks bug fix on linux.
        • -
        -
        -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    Release Notes for Csound 6.03 (2014 May)

    -

    - This new version has a large number of bug fixes (including clearing - many tickets on SourceForge and GitHub) as well internal changes to improve - performance. -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • prinks2: - prints a new value every time a control variable - changes using a printf() style syntax -
      • -
      • mp3sr, mp3bitrate, - and mp3nchnls to get information on mp3 files
      • -
      • EXPERIMENTAL: CUDA opcodes for partitioned convolution direct - convolution and sliding phase vocoding; OpenCL opcode for - additive synthesis -
      • -
      • compilecsd - to compile instruments from a standard CSD file -
      • -
      -
      -

      -

      -
    • -
    • -

      - Orchestra: -

      -
      -
        -
      • The argument for i() is supposed to be a variable not an - expression. This is now enforced. (bug #90) -
      • -
      -
      -

      -

      -
    • -
    • -

      - Score: -

      -
      -
        -
      • New score opcode y sets the random seed (for ~) at read time -
      • -
      -
      -

      -

      -
    • -
    • -

      - Options: -

      -
      -
        -
      • There was a bug in CsOptions; the last argument was missed being - read(issue #296) -
      • -
      • As command-line options expression-opt and no-expression-opt do - nothing in Csound6 a warning is printed -
      • -
      -
      -

      -

      -
    • -
    • -

      - Modified Opcodes and Gens: -

      -
      -
        -
      • For ogg output it is possible to specify a VBR (variable block - rate) quality. -
      • -
      • dssi4cs code has been extensively reworked - to avoid potential memory faults. -
      • -
      • Many array operations now available for i-arrays as well as - k-arrays. -
      • -
      • fillarray will work for string arrays -
      • -
      • Displays of FFT (via dispfft) improved - with scaling/zooming options -
      • -
      • Signal flow graph opcodes are now working with a-rate array - signals. -
      • -
      • In alsa RT code the sample rate is taken from the device -
      • -
      • Faust opcode system updated to latest faust API -
      • -
      -
      -

      -

      -
    • -
    • -

      - Utilities: -

      -
      -
        -
      • fixed bug in lpanal -
      • -
      -
      -

      -

      -
    • -
    • -

      - csound~: -

      -
      -
        -
      • OSX - fix for running with 32-bit cpu architecture -
      • -
      • Windows - csound~ now available for Windows -
      • -
      -
      -

      -

      -
    • -
    • -

      - Emscripten: -

      -
      -
        -
      • This is now generally merged into the code-base -
      • -
      -
      -

      -

      -
    • -
    • -

      - General usage: -

      -
      -
        -
      • --displays now switches graphs on, as expected -
      • -
      • New commandline option --get-system-sr added to obtain the - machine's sample rate -
      • -
      • New command-line option --devices[=in|out] gives a list of - available audio devices and then exit -
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes: -

      -
      -
        -
      • fixed the bug when tables were replaced but the size did not change -
      • -
      • A number of bugs in --sample-accurate have been detected and - fixed. This includes opcodes out, - outn, and line -
      • -
      • A number of bugs in grain3 were fixed -
      • -
      • Bug in str_chanel could cause a crash; fixed -
      • -
      • Small bug in rtjack fixed -
      • -
      • Error in resize opcode corrected -
      • -
      • Fixed an unlikely bug in atsa -
      • -
      • Fixed rtauhal pause issue -
      • -
      • A number of bugs/untidiness fixed in GEN23 -
      • -
      • Array bound checks fixed -
      • -
      • strings channels were not correctly set for dynamic-size - strings, now fixed -
      • -
      • memory allocation for string formatting in printfsk - was fixed, stopping string truncation -
      • -
      • strcat safe against overflow -
      • -
      • error in compilation of arrays fixed (issue #293) -
      • -
      • GetPvsChannel fixed against a crash -
      • -
      -
      -

      -

      -
    • -
    • -

      - System Changes: -

      -
      -
        -
      • turnoff opcode now checks that the - instrument being affected is active -
      • -
      • lenarray can accept any array type -
      • -
      • the way of rounding a table number to an integer was changed - and is now more as expected -
      • -
      • there is a new possible section in a csd file called - <CsFile...> which is like csFileB but with unencoded text. -
      • -
      • UDO compilation now uses the type system. This means that - UDOs now allow any array type to be used -
      • -
      • Improved orchestra parsing speeds with better algorithms -
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • The whole system has been checked by the Coverity static checker - which identified a number of (mainly minor) problems. These have - been reviewed and checked. In particular better use of printing - and string copying should prevent overflows -
      • -
      • The type and variable system has been extensively rewritten; this - allows better array and UDO support -
      • -
      • Alignment of variables got right in all cases -
      • -
      • Array copying is now using the type system to copy values; fixes - issues with copying string arrays, f-sigs, etc -
      • -
      • Always reset Csound when stopping to ensure state is clean; was - not being reset when there was a compile error, so that next - successful run would start with an invalid Csound engine (issue - #305) -
      • -
      -
      -

      -

      -
    • -
    • -

      - API: -

      -
      -
        -
      • All opcodes etc now use the API memory allocation operations, - so it is possible to replace the whole memory allocator -
      • -
      • Added csoundCompileCsd to API and - associated new compilecsd opcode -
      • -
      • Protected csoundGetStringChannel against - null and short strings and added a check for string size -
      • -
      • A number of API functions have had char* changed to - const char* which reflect the usage -
      • -
      -
      -

      - The performance engine now includes debugging capabilities to allow - interrupting rendering and providing introspection into the engine's state - and instrument variables. The following new functions are available by - including the csdebug.h header: -

      -
      -void csoundDebuggerInit (CSOUND *csound);
      -void csoundDebuggerClean (CSOUND *csound);
      -void csoundSetInstrumentBreakpoint (CSOUND *csound, MYFLT instr, int skip);
      -void csoundRemoveInstrumentBreakpoint (CSOUND *csound, MYFLT instr);
      -void csoundClearBreakpoints (CSOUND *csound);
      -void csoundSetBreakpointCallback (CSOUND *csound, breakpoint_cb_t bkpt_cb, void *userdata);
      -void csoundDebugContinue (CSOUND *csound);
      -void csoundDebugStop (CSOUND *csound);
      -debug_instr_t *csoundDebugGetInstrInstances(CSOUND *csound);
      -void csoundDebugFreeInstrInstances(CSOUND *csound, debug_instr_t *instr);
      -debug_variable_t *csoundDebugGetVariables(CSOUND *csound, debug_instr_t *instr);
      -void csoundDebugFreeVariables(CSOUND *csound, debug_variable_t *varHead);
      -

      -

      -
    • -
    • -

      - Windows: -

      -
      -
        -
      • Soundfonts in Windows had an internal alignement problem - which is fixed -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    Release Notes for Csound 6.02

    -

    -This new version has a large number of bug fixes (including clearing -all general tickets on SourceForge). It also introduces some major new -facilities such as use as a server, code to run Csound in a browser -and a large generalisation of filter opcodes to have parameters -changeable at audio rate. -

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • nstance - opcode schedules a new instrument instance, storing the instance handle. -
      • -
      • turnoff - nw variant to stop a given instrument instance. -
      • -
      • strfromurl - to set a string from a URL. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Orchestra: -

      -
      -
        -
      • If building supports it, a #include string can be a URL or a - file.
      • -
      • A space is again permitted between a function name and the - opening bracket for all functions allowed in Csound5 (but not in - general).
      • -
      • The Csound command can start with an empty CSD in daemon mode - (--daemon): do not exit if CSD/orchestra is not - given, is empty or does not compile).
      • -
      -
      -

      -

      -
    • -
    • -

      Score: -

      -
      -
        -
      • If building supports it, a #include string can be a URL or a - file.
      • -
      -
      -

      -

      -
    • -
    • -

      Modified Opcodes and Gens: -

      -
      -
        -
      • Many filters generalised to allow k- or a-rate parameters. In - particular it includes these: -
        aresonatonex
        butterworth filtersfofilter
        lowreslowresx
        lpf18mode
        moogladdermoogvcf
        resonresonr
        resonxresonz
        statevartonex
        -
      • -
      • The maximum number of presets in sfont increased to 16384. -
      • -
      • cpsmidinn is now more accurate. -
      • -
      • max_k now behaves like the documentation. - There were cases when it gave strange results. -
      • -
      • In alwayson opcode changes for better - handling of pfields, more reliable insert of an instrument instance - for repeating or re-started score sections. -
      • -
      • The signal flow graph opcodes have replaced OpenMP - multi-threading with pthreads, using one-time initialization - of static structures. -
      • -
      -
      -

      -

      -
    • -
    • -

      Frontends: -

      -
      -
        -
      • PNaCl is now supported as a platform, allowing Csound to run - under the Chrome browser in all enabled operating systems. -
      • -
      -
      -

      -

      -
    • -
    • -

      Bugs fixed: -

      -
      -
        -
      • adsynt2 opcode fixed. -
      • -
      • ftgentmp opcode fixed. -
      • -
      • dates opcode fixed. -
      • -
      • fixed a bug in pvsfilter. -
      • -
      • fixed stereo out in temposcal and - mincer. -
      • -
      • pan2 opcode fixed. -
      • -
      • index overflow in randh and - randi fixed. -
      • -
      • fixed pycalln for no inputs. -
      • -
      • fixed/revised setting and use of ksmps - and kr in UDOs. -
      • -
      • fixed problem in sending a score event from max to csound via - csound~ (Ticket #58). -
      • -
      • If itype in chn_k was set to 3 and - values are set less than 1, Csound6 used to give an INIT Error. - (Ticket #67). -
      • -
      • A number of reported seg faults have been dealt with. -
      • -
      • xtratim opcode was using incorrect - ekr value from csound instead of from instance; when used in - conjunction with setksmps, was causing notes - to have very long xtratim set and - thus notes were effectively not getting turned off -
      • -
      -
      -

      -

      -
    • -
    • -

      System changes: -

      -
      -
        -
      • A server mode is now available, accepting input via UDP (with - --port option). -
      • -
      • A longstanding bug in extract was detected and fixed. It does - suggest that this facility is little used! -
      • -
      • The way the external score generator was coded is - substantially changed. In particular this should fix a very - strange bug in Windows. -
      • -
      • Fixed crashing bug with invalue channel callback due to - wrong data object being pulled from csound host data. -
      • -
      • Fixed bug in UDOs with no local ksmps where kcounter was - being used incorrectly. -
      • -
      • Better checking in channels. -
      • -
      • (Experimental) If the environment variable CS_UDO_DIR is - set then any files in the directory that have an .udo extension - are automatically included at the start of the orchestra. - This facility needs review to see if it is what is required. -
      • -
      • (Experimental) There are new cuda GPGPU opcodes (source - only): cudasynth (3 versions for additive synthesis, additive - synthesis of fsigs and phase vocoder resynthesis) and cudanal - (a GPGPU version of pvsanal). -
      • -
      -
      -

      -

      -
    • -
    • -

      Internal changes: -

      -
      -
        -
      • Many attempts at faster code. -
      • -
      • Type inference and parsing still improving. -
      • -
      -
      -

      -

      -
    • -
    • -

      iOS: -

      -
      -
        -
      • Fixed crash where no csoundSetHostImplementedMIDIIO is - used on iOS and no _RTMIDI value is set. -
      • -
      -
      -

      -

      -
    • -
    • -

      OSX: -

      -
      -
        -
      • Fixed input device name for auhal. -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    Release Notes for Csound6

    -

    - Csound6 is a significant rewrite of much of the code. In particular - the API is not compatible, although all orc/sco/csd works should still - run. -

    -

    - There are new facilities, like sample accuracy and realtime mode, - described below. -

    -

    - IMPORTANT: The environment variable to find plugins are called - OPCODE6DIR64 or - OPCODE6DIR (note the 6) so it can co-exist - with Csound5. -

    -

    - Similarly .csoundrc is renamed - .csound6rc. -

    -

    - Arrays are now mainstream, with syntax and opcode support. They also - exist in multidimensional format. They are created (usually) - with init opcode or fillarray. -

    -
    -
    -  k1[]  init 4
    -
    -

    - generates a k-rate 1-D array of length 4. Similarly -

    -
    -
    -  a2[][] init 4, 4
    -
    -

    - creates a square 4x4 a-rate array. -

    -
    -
    -  k2[]  fillarray 1, 2, 3, 4
    -
    -

    - creates a 4-element vector filled with 1,..4, which also defines the - length. -

    -

    - Elements are used via indexing in [] such as k1[2] or a2[2][3]. - One dimensional arrays replace tvars, and can be used in opcodes like - maxtab, mintab and - sumtab (see below). Array setting can be done in - left-hand side of opcodes, i.e.: -

    -
    -
    -  aSigs[0] vco2 .1, 440
    -  aSigs[1] vco2 .1, 880
    -
    -

    -

    -

    - The new realtime priority mode can be switched on with by passing the - --realtime or setting the CSOUND_PARAMS field realtime_mode to 1. - This has the following effects: -

    -
    -
      -
    1. all opcode audio file reading/writing is handled asynchronously - by a separate thread.
    2. -
    3. all init-pass operations are also performed asynchronously.
    4. -
    -
    -

    -

    -

    - Multicore support is totally rewritten using a different algorithm for - task-dispatch, which should use less memory and fewer locks. -

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • - - faustgen - -
      • -
      • array -- many new or revised - opcodes -- see Array - Opcodes.
      • -
      • compileorc takes a filename containing - a collection of instrument definitions and compiles them, replacing - existing versions. It returns 0 on success.
      • -
      • compilestr is like - compileorc but takes a string.
      • -
      • readscore runs the score preprocessor - on a string and then schedules new events via the RT event mechanism, - returning 0 if successful.
      • -
      -
      -

      -

      -
    • -
    • -

      Orchestra -

      -
      -
        -
      • Note events can start and end in mid-kcycle. As this is an - incompatible change it is only invoked when the command-line option - --sample-accurate is specified. Note that this does not work for - tied notes, and use of skipping initialisation has questionable - use.
      • -
      • Instruments can run at local ksmps - values using setksmps iksmps as in Csound 5 UDOs.
      • -
      • Compilation can be done at any stage, new instruments are - added or replace old ones. Running instances of old instrument - definitions are not affected. Only limitation is that header - constants in instr 0 are read only once at the time of the - first compilation. Init-time code can be placed outside - instruments in the global space, and this will be executed - once-only following the compilation. In this case, score event - generation can be completely replaced by orchestra code. - See also new opcodes compileorc and - compilestr.
      • -
      • New syntax operators +=, -=, *= and /=. These are more - than syntactic sugar; please use += and -= for accumulating reverbs - as it gives better multicore behaviour.
      • -
      • The opcodes add, sub, - mul and div have been - deleted; use the forms + - * /. Not many people were aware of these - opcodes.
      • -
      • Any opcode with a single output or with no outputs can be - used as a function. Some opcodes might require type annotation to - resolve ambiguities, more details on the - Function syntax in - Csound 6.
      • -
      • A statement can be broken across lines after a , = or - arithmetic operation.
      • -
      • There are a range of new or recoded operations on k-valued - arrays, most restricted to 1 dimensional arrays (vectors): -
        - kans minarray ktab       returns the smallest value in the
        -                          (possibly) multidimensional array
        - kans maxarray ktab       is like mintab
        - kabs sumarray ktab       returns sum of all values in the array
        - ktab genarray imin, imax[, inc]
        -                          generates vector of values from imin
        -                          to imax by increments of inc (default 1)
        - ktab2 maparray ktab1, "sin" maps the k-rate 1-arg function in
        -                          the string to every element of the vector
        - ktab2 maparray_i ktab1, "sin" maps the i-rate 1-arg function
        -                          in the string to every element of the vector
        - ktab2 slicearray ktab1, istart, iend
        -                          returns a slice of ktab1 from ktab1[istart]
        -                          to ktab1[iend]
        - copyf2array ktab, kfn    copies data from an ftable to a vector
        - copya2ftab  ktab, kfn    copies data from a vector to an ftable
        - - Arithmetic on arrays is allowed. In particular addition, - subtraction, multiplication, division on a element-by-element - version is provided in arithmetic format. Similar operations - between an array and a scalar are allowed.
      • -
      • Each instance of any instrument has a scratchpad of 4 values - that persist; allows values to carry to next use of the - instrument; hope it may be useful in legato etc.
      • -
      • If a table number is given as -1 then an internal sine wave - equivalent to f. 0 16382 10 1 is used. Attempts to - write to this table will give unpredictable results, but is not - policed. The 16382 can be change by command line option - --sine-size=# where the # is rounded up to a power of two.
      • -
      • A number of oscil opcodes now have the f-table parameter as - optional, defaulting to the internal sine wave. (oscil1, - oscil1i, oscil, oscil3, oscili, foscil, foscil1, loscil, - loscil3).
      • -
      -
      -

      -

      -
    • -
    • -

      Score: -

      -
      -
        -
      • Score lines can have multiple strings.
      • -
      • Change to escape characters in score strings -- they do not - happen.
      • -
      • Also note the readscore opcode.
      • -
      -
      -

      -

      -
    • -
    • -

      Modified Opcodes and Gens: -

      -
      -
        -
      • The k() function can take an a-rate - argument in which case it is a call to downsamp. -
      • -
      -
      -

      -

      -
    • -
    • -

      Utilities -

      -
      -
        -
      • Hetro/adsyn analysis files can be - machine byte-order independent if created with -X. Down side is a - longer file and a little slower loading. The - het_export utility will create the independent - format from the old, and het_import is no - longer necessary.
      • -
      • cvanal and lpanal - will produce machine independent files if -X option is used. The - convolve and lpread etc - opcodes will accept either format. You are encouraged to use the - machine independent form. Analysis files produced with -X can be used - on other systems.
      • -
      -
      -

      -

      -
    • -
    • -

      Frontends

      -
    • -
    • -

      Bugs fixed:

      -
    • -
    • -

      System Changes: -

      -
      -
        -
      • In Linux and OSX the treatment of locales is now thread-safe - and local.
      • -
      -
      -

      -

      -
    • -
    • -

      Platform Changes:

      -
    • -
    • -

      API: -

      -

      New API functions...

      -

      -

      -
      -
        -
      • new configuration/parameter setting functions -
        -        PUBLIC int csoundSetOption(CSOUND *csound, char *option);
        -        PUBLIC void csoundSetParams(CSOUND *csound, CSOUND_PARAMS *p);
        -        PUBLIC void csoundGetParams(CSOUND *csound, CSOUND_PARAMS *p);
        -        PUBLIC void csoundSetOutput(CSOUND *csound, char *name, char *type,
        -                                    char *format);
        -        PUBLIC void csoundSetInput(CSOUND *csound, char *name);
        -        PUBLIC void csoundSetMIDIInput(CSOUND *csound, char *name);
        -        PUBLIC void csoundSetMIDIFileInput(CSOUND *csound, char *name);
        -        PUBLIC void csoundSetMIDIOutput(CSOUND *csound, char *name);
        -        PUBLIC void csoundSetMIDIFileOutput(CSOUND *csound, char *name);
      • -
      • new parsing/compilation functions -
        -        PUBLIC TREE *csoundParseOrc(CSOUND *csound, char *str);
        -        PUBLIC int csoundCompileTree(CSOUND *csound, TREE *root);
        -        PUBLIC int csoundCompileOrc(CSOUND *csound, const char *str);
        -        PUBLIC int csoundReadScore(CSOUND *csound, char *str);
        -        PUBLIC int csoundCompileArgs(CSOUND *, int argc, char **argv);
      • -
      • new function for starting csound after first compilation -
        -        PUBLIC int csoundStart(CSOUND *csound);
      • -
      • new software bus threadsafe getters/setters -
        -        PUBLIC MYFLT csoundGetControlChannel(CSOUND *csound, const char *name);
        -        PUBLIC void csoundSetControlChannel(CSOUND *csound, const char *name, MYFLT val);
        -        PUBLIC void csoundGetAudioChannel(CSOUND *csound, const char *name, MYFLT *samples);
        -        PUBLIC void csoundSetAudioChannel(CSOUND *csound, const char *name, MYFLT *samples);
        -        PUBLIC void csoundSetStringChannel(CSOUND *csound, const char *name, char *string);
        -        PUBLIC void csoundGetStringChannel(CSOUND *csound, const char  *name, char *string);
      • -
      • new table threadsafe copy functions -
        -        PUBLIC void csoundTableCopyOut(CSOUND *csound, int table, MYFLT *dest);
        -        PUBLIC void csoundTableCopyIn(CSOUND *csound, int table, MYFLT *src);
      • -
      -
      -

      - API has been made threadsafe so that performance and control - can occur in separate threads (after a call to csoundStart() - or csoundCompile()). Threadsafety is ensure by -

      -
      -
        -
      1. use of atomic read/writing to control channels
      2. -
      3. spinlocks in audio and string channels
      4. -
      5. mutexes protecting compilation, score events and table - access.
      6. -
      -
      -

      -

      -
    • -
    • -

      Internal: -

      -
      -
        -
      • The build system is now cmake (and not scons as in - Csound5).
      • -
      • A number of table access opcodes have been rewritten but - should behave the same. Similarly diskin and - diskin2 now use the same code and so - diskin should be more stable.
      • -
      • The old parser is completely removed.
      • -
      -
      -

      -

      -
    • -
    • -

      New internal functions in Csound -

      -
      -
      -    void (*FlushCircularBuffer)(CSOUND *, void *);
      -    void *(*FileOpenAsync)(CSOUND *, void *, int, const char *, void *,
      -                           const char *, int, int, int);
      -    unsigned int (*ReadAsync)(CSOUND *, void *, MYFLT *, int);
      -    unsigned int (*WriteAsync)(CSOUND *, void *, MYFLT *, int);
      -    int  (*FSeekAsync)(CSOUND *, void *, int, int);
      -    char *(*GetString)(CSOUND *, MYFLT);
      -             Extract a string originating from a score-event argument.
      -
      -

      -

      -
    • -
    • -

      Functions removed -

      -
      -
      -    void *(*FileOpen)(CSOUND *, void*, int, const char*, void*, const char*);
      -
      -

      -

      -
    • -
    • -

      - The "private" parts of the API have been changed considerably. - Also structures like EVTBLK have changed. -

      -
    • -
    • -

      - The LINKAGE1/FLINKAGE1 macros are renamed as - LINKAGE_BUILTIN/FLINKAGE_BUILTIN. -

      -
    • -
    • -

      Template for a-rate perf-pass opcodes is -

      -
      -
      -int perf_myopcode(CSOUND *csound, MYOPCODE *p)
      -{
      -    uint32_t offset = p->h.insdshead->ksmps_offset;
      -    uint32_t early  = p->h.insdshead->ksmps_no_end;
      -    uint32_t nsmps = CS_KSMPS;
      -    ...
      -    if (UNLIKELY(offset)) memset(p->res, '\0', offset*sizeof(MYFLT));
      -    if (UNLIKELY(early))  {
      -      nsmps -= early;
      -      memset(&p->res[nsmps], '\0', early*sizeof(MYFLT));
      -    }
      -    for (n=offset; n<nsmps; n++) {
      -        .....
      -        p->res[n] = ....
      -    }
      -    return OK;
      -}
      -
      -

      -

      -
    • -
    • -

      String variables re-implemented

      -
    • -
    • -

      - OENTRY structure has changed and has a new dependency field; please - use this field as it is required for multicore semantics. You could - set it to -1 and disallow all parallelism, but at least it is safe. -

      -
    • -
    • -

      - All opcodes that touch audio should take note of sample-accurate code. -

      -
    • -
    • -

      - A number of previous API functions are removed; - OpenFile and OpenFile2 - both replaced by new OpenFile2 with additional - argument. -

      -
    • -
    • -

      - Additions have been made for arg type specifications for opcodes. -

      -
      -
        -
      • Any-types have been added, as follows: -
        • '.' signifies a required arg of any-type
        • '?' signifies an optional arg of any-type
        • '*' signifies a var-arg list of any-type
      • -
      • Arrays are now specified using "[x]" where x is a - type-specifier. The type-specifier can be any of the of the current - specifiers, including any-types. See Opcodes/arrays.c - for example usage.
      • -
      -
      -

      -

      -
    • -
    • -

      New Type System

      -

      - A new type system has been added to Csound6, and significant changes - have been made to the compiler. The previous system for handling types - involved depending on the first-letter of a variable's name every time - it was used to determine type. This meant there was a lot of re-checking - of types. Also, adding new types was difficult, as there was a lot of - custom code that had to be updated to check for new type letters. -

      -

      - In Csound6, a separate system of types was added. Types are defined as - CS_TYPE's. The creation of variables from types and the initialisation - of memory has been encapsulated within the CS_TYPE's. This change - allows easier addition of new types, as well as generic calculations of - memory pools, amongst other things. -

      -

      - The compiler has been modified since Csound5 to now use the type system - as an integral part of its semantic checking phase. Variables are now - registered into a CS_VAR_POOL when they are first defined, with the - CS_VARIABLE having a reference to its CS_TYPE. After first time - definition within the pool, the type information is then looked up in - consequent variable lookups, rather than re-calculated from the variable - name. This opens up possibilities for new variable naming and typing - strategies, i.e. using "myVar:K" to denote a k-rate arg. This also - opens up possibilities for user-defined types, such as - "data myType kval, aval", then using "myVar:myType" to define a var - of that type. (The previous is speculative, and is not an active - proposal at this time.) -

      -

      - The addition of the type system has formalised the static type system - that has existed in Csound prior to Csound6. It has, arguably, simplified - the code-base in terms of type handling, as well as laid the ground work - for future type-related research to be integrated into Csound. -

      -
    • -
    -
    -

    -

    -

    New in Version 5.19 (2013 January 7)

    -

    - This is mainly a bug-fixing release but with a number of new opcodes and - enhanced features. -

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • ipmidi module for MIDI over network.
      • -
      -
      -

      -

      -
      -
        -
      • ppltrack opcode.
      • -
      -
      -

      -

      -
      - -
      -

      -

      -
    • -
    • -

      New Gen and Macros: -

      -
      -
        -
      • - Better checking in GEN28. -
      • -
      • - Check range in outrg, - and optionally allow wrapping. -
      • -
      -
      -

      -

      -
    • -
    • -

      Orchestra: -

      -
      -
        -
      • - Change empty statement to a warning. -
      • -
      • - Added line numbers to many input args message (new parser). -
      • -
      -
      -

      -

      -
    • -
    • -

      Modified Opcodes and GENs: -

      -
      -
        -
      • - Better error and warning messages. -
      • -
      • - loopseg now - checks argument count. -
      • -
      • - harmon2/3/4 improved. -
      • -
      • - active: added - the option to skip the instances in release phase. -
      • -
      • - New and more tested implementation of ChordSpace. -
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixed: -

      -
      -
        -
      • - Fix botched optimisation in lowpass filters. -
      • -
      • - Chn opcodes fixed in Linux. -
      • -
      • - Fix bug in loscil with silence. -
      • -
      • - Correct GEN23 - when comment does not end in newline. -
      • -
      • - Correcting loopseg. -
      • -
      • - Number of input and output channels fixed in new parser. -
      • -
      • - Fixed GEN43 issue. -
      • -
      • - Fixed fout. -
      • -
      • - centroid - was likely to crash. -
      • -
      • - Minor bug in printing which lost %. -
      • -
      • - An uninitialised value in fold fixed. -
      • -
      • - Uninitalised values in dconv fixed. -
      • -
      • - Assignment of fsigs now works. -
      • -
      -
      -

      -

      -
    • -
    • -

      System Changes: -

      -
      -
        -
      • - Avoid seg fault on some user errors. -
      • -
      • - Faster modal4 opcodes. -
      • -
      • - Allow cabbage compilation. -
      • -
      • - Made pfield size dynamic in event message csoundapi~. -
      • -
      • - The default output format with pipe and double float is AU. -
      • -
      • - Change to ircam with default format, '-o stdout' and pipe. -
      • -
      • - Added double float precision for output format. -
      • -
      -
      -

      -

      -
    • -
    • -

      Platform Changes: -

      -
      -
        -
      • -

        Linux: -

        -
        -
          -
        • Spinlocks initialised (fixes bug in chn opcodes).
        • -
        -
        -

        -

        -
      • -
      • -

        OSX: -

        -
        -
          -
        • - Improved selection of devices in rtauhal module. -
        • -
        • - Added a circular buffer interface and lock-free operation to rtauhal. -
        • -
        • - Fixed MacOSX installer (creating symlinks to lib_csnd.dylib). -
        • -
        -
        -

        -

        -
      • -
      • -

        Haiku: -

        -
        -
          -
        • New platform
        • -
        -
        -

        -

        -
      • -
      • -

        Android: -

        -
        -
          -
        • - Using -B now in android to set circular buffer size. -
        • -
        • - Added fluid synth opcodes for android. -
        • -
        • - Added inputMessage method to CsoundObj. -
        • -
        • - Allow CSDPlayer to be installed on SD Card. -
        • -
        -
        -

        -

        -
      • -
      • -

        iOS: -

        -
        -
          -
        • - Improved audio routing. -
        • -
        • - Bottom speaker the default for iOS. -
        • -
        -
        -

        -

        -
      • -
      -
      -

      -

      -
    • -
    • -

      API: -

      -
      -
        -
      • - Added new API function csoundCompileFromStrings(). -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.18 (2012 August 29)

    -

    - This is mainly a bug-fixing release but with a number of new opcodes and - enhanced features. -

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • centroid - opcode like pvscent but acting on audio signals
      • -
      • cosseg - like linseg but with cosine interpolation
      • -
      • cossegb - like linsegb but with cosine interpolation
      • -
      • cossegr - like linsegr but with cosine interpolation
      • -
      • joystick - to read input values from an external joystick (Linux only)
      • -
      • log2 - function for logarithms base 2
      • -
      • platerev - opcode to model a reverberating square plate
      • -
      • pwd - opcode to determine the current working directory
      • -
      • readf - opcode to read strings from a file
      • -
      • readfi - opcode to read strings from a file on initialisation
      • -
      • vbap - opcode like other vbap family but flexible about number - of speakers and choice of layouts.
      • -
      • vbapg - opcode like vbap but only calculate the gains on the - channels.
      • -
      -
      -

      -

      -
    • -
    • -

      - New functionality -

      -
      -
        -
      • - Changes to <CsOptions> to allow spaces between - words, and escaped characters. -
      • -
      • - fout - and fin use a - better buffering strategy, and so are - faster -
      • -
      • - It is possible to specify just an orchestra with the - --orc flag. This is useful when a score is not needed. -
      • -
      • - A new command-line flag --ogg flag has been added for - easy use of ogg/vorbis output. -
      • -
      • - Added alsaseq real-time midi -
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes and improvements: -

      -
      -
        -
      • - dates - opcode could crash on 64bit architecture; this is fixed -
      • -
      • - Some multicore interlocks were wrong. It is believed - that this was not actually a problem, but would be in - the future.
      • -
      • - There were cases when a file was double closed, leading - to a crash on exit. -
      • -
      • - Two new features added in partikkel. Panning law for - channelmasks can now be set using a function table - (second optional argument to partikkel) and new support - opcodes partikkelget and partikkelset, to access and - modify the internal mask indices of partikkel. -
      • -
      • - follow2 was reworked do the i-rate and k-rate - calculations are the same. -
      • -
      • - pvscent is corrected as it returned half the correct - value. -
      • -
      • - vbaplsinit can create more than one speaker layout which - vbap/vbapg can use. Also much better diagnostics on - incorrect layouts. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • - Code changed so bison 2.6 can be used. -
      • -
      • - It is assumed that libsndfile version 1.0.19 or later is - available. -
      • -
      • - If the score is omitted a near-infinite wait is - generated. -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.17 (March 2012)

    -

    - This is mainly a bug-fixing release with no major changes, but the - number of fixes warrants a release. -

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • cell - opcode, for cellular automata
      • -
      -
      -

      -

      -
    • -
    • -

      - Modified Opcodes and Gens: -

      -
      -
        -
      • active now will report total number of active or allocated instruments if argument in zero
      • -
      • stsend and strecv the TCP socket opcodes reworked to a logical design
      • -
      • DSSI system now will take up to 9 channels
      • -
      • FLsavesnap works with other widgets where imin > imax
      • -
      -
      -

      -

      -
    • -
    • -

      - Utilities: -

      -
      -
        -
      • csbeats better documented and built by default; also more note lengths available
      • -
      • Some security holes in utilities fixed
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes: -

      -
      -
        -
      • unirand opcode at a-rate fixed
      • -
      • Locale fix for floating point literals in orchestra
      • -
      • transegr fixed
      • -
      -
      -

      -

      -
    • -
    • -

      - System Changes: -

      -
      -
        -
      • Score can now last longer (change to size of time variable)
      • -
      • An empty score gives a very long performance time (years and years)
      • -
      • Android code released
      • -
      • Changes to use of tmp files; now all are deleted at end of run (previously some were left) and the environment variable TMPDIR is used. -
      • -
      • interaction between Comments, end of line and end of file fixed
      • -
      • Hexadecimal numbers now allowed in orchestra
      • -
      • Empty orchestra now not a crash
      • -
      • change to macro expansion inside a string
      • -
      • avoid infinite loop when eof in malformed score macro
      • -
      • fixed macroname-with-args diagnostics and memory leak
      • -
      • change to preprocessor: {{ }} inside "..." and better diagnostics
      • -
      • fix windows installer so it removes full $INSTDIR\bin from PATH during uninstall: this cleans up the PATH environment variable when uninstalling on - Windows. Previously, it was leaving a trailing "\bin" on the PATH.
      • -
      • CsoundAC MusicModel class more usable by C++ programs
      • -
      • ftcps had been missed as a function
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • Many! Some messages quietened, code improvements etc
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.16 (February 2012)

    -

    - The major change is that the new parser is now the default. The old - parser is still available in case of difficulty but the new has been - given extensive testing since the start of the year, including - complete restructuring of macro expansion. - A side effect is that the runtime of most orchestras is faster, - although parsing is slower. There are a few optimisations implemented - like constant folding in simple cases. Line numbers and file names - are traced better than before. -

    -

    - Some memory leaks also fixed. -

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      - -
      -

      -

      -
    • -
    • -

      - Modified Opcodes and Gens: -

      -
      -
        -
      • There was a fence post problem in tab opcode that could falsely report a reference out of range.
      • -
      • GEN15 mis-called gens 13 and 14 internally, using uninitialised values voice amplitude. Problem fixed.
      • -
      • fmbell now takes an optional argument to control the sustain time.
      • -
      • Change to pvsbasic for tab to table conversions.
      • -
      • poscil is now polymorphic, allowing k- or a-rate amplitude and frequency.
      • -
      • p() and i() changed when argument at k-rate.
      • -
      • gen49 deferred now works.
      • -
      • gen23 now available deferred.
      • -
      -
      -

      -

      -
    • -
    • -

      - Utilities: -

      -
      -
        -
      • Checked for use with the new parser in memory files.
      • -
      -
      -

      -

      -
    • -
    • -

      - Frontends: -

      -
      -
        -
      • Table access added to csoundapi~ via new get/set methods.
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes and improvements: -

      -
      -
        -
      • Many in new parser related to precedence and multicore.
      • -
      • Better diagnostics when orchestra file/csd is missing.
      • -
      • csd file: fix CsFileB and CsSampleB.
      • -
      • Fixed score statement 'n'.
      • -
      • Fixed bug in diskin2 leading to infinite loop.
      • -
      • Fixed bug causing crossfade noise in hrtfmove.
      • -
      • Fixed unlikely buffer overflows in some utilities.
      • -
      • Avoid segfault in midicN.
      • -
      • Bug in mp3in in skip=0 case fixed.
      • -
      • 'r' score statement fixed with respect to macros.
      • -
      • sndwarp could segfault.
      • -
      -
      -

      -

      -
    • -
    • -

      - System Changes: -

      -
      -
        -
      • Preprocessor #if #else #endin working.
      • -
      • #includes depth now limited rather than infinite recursion.
      • -
      • Really turn off all displays if --nodisplays or -d is used; fixes bug where using -d or --nodisplays would still cause the - winFLTK.c csoundModuleInit to setup display callbacks; bug caused with python TK apps and CsoundYield_FLTK being called.
      • -
      • Memory leak in mp3in and mp3len fixed.
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • Very, very, very many! And the new parser...
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.15 (December 2011)

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • ftab2tab - opcode.
      • -
      • tab2pvs - opcode.
      • -
      • pvs2tab - opcode.
      • -
      • cpumeter opcode, (not really new but now available in OSX)
      • -
      • minmax - opcode.
      • -
      • (EXPERIMENTAL) ftresize - opcode.
      • -
      • (EXPERIMENTAL) ftresizei - opcode.
      • -
      • hrtfearly - opcode.
      • -
      • hrtfreverb - opcode.
      • -
      -
      -

      -

      -

      - New Gen and Macros -

      -
      -
        -
      • Code to allow GEN49 to be deferred [NB does not seem to work]
      • -
      -
      -

      -

      -
    • -
    • -

      - Modified Opcodes and Gens -

      -
      -
        -
      • socksend and sockrecv no longer uses MTFU check and work on Windows
      • -
      • mpulse changed so if next event is at negative time use the absolute value
      • -
      • serial opcode now runs on Windows as will as Un*x
      • -
      • out, out2, outq, outh, outo outx and out32 are now identical opcodes and will take up to as many arguments as nchnls. This replaces the current remapping of opcodes
      • -
      • turnoff2 now polymorphic wrt S and k types (ie accepts instrumnet names)
      • -
      -
      -

      -

      -
    • -
    • -

      Bugs fixed: -

      -
      -
        -
      • GEN42 fixed
      • -
      • jacko: fixed a segfault removing the unused JackSessionID option
      • -
      • doppler memory leak fixed
      • -
      • transegr fixed in release mode when skipping most of envelope
      • -
      • FLPack now agrees with manual
      • -
      • max_k now agrees with manual
      • -
      • hrtfreverb fixed
      • -
      • atsa code now works on Windows in more cases
      • -
      • tabmorph bug fixed
      • -
      • fixed problem with user-defined opcodes having no outputs
      • -
      • Various fixes to * ... */ comments
      • -
      -
      -

      -

      -
    • -
    • -

      System Changes: -

      -
      -
        -
      • Various licence issues sorted
      • -
      • Loris is no longer part of the Csound tree
      • -
      • Memory leaks fixed
      • -
      • If no score is given a dummy that runs for over 100 years is created
      • -
      • All score processing takes place in memory without temporary files
      • -
      • String memory now expandable and no size limitation
      • -
      • #if #else #end now in new parser
      • -
      • Adjustments to MIDI file precision in output
      • -
      • On OSX move from Coreaudio to AuHAL
      • -
      • Multicore now safe for ZAK, Channels and modifying tables
      • -
      • New coremidi module
      • -
      • Virtual Keyboard improved: - 1) Dropdown for choosing base octave (the one that - starts with the virtual key mapped to physical key - Z). Default value is 5 which is backwards compatible. - 2) Shift-X mappings which add two octaves to X - mappings for a total of 4 octaves playable from the - physical keyboard (starting from selected base octave). - 3) Control-N / Control-Shift-N mappings to increment - / decrement slider for control N. - 4) Mouse wheel now controls sliders.
      • -
      • tsig type for vectors
      • -
      • tsigs and fsigs allowed as arguments in UDOs
      • -
      • API: Minor version upped
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • - Very, very, very many!
      • -
      • -
      • -
      • -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.14 (October 2011)

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      - -
      -

      -

      -
    • -
    • -

      - New functionality -

      -
      -
        -
      • beats processor renamed to csbeats and distributed
      • -
      • mkdb utility to provide a catalogue of plugin - libraries/opcodes
      • -
      • ladspa library build in default system
      • -
      • macros are now expanded inside string in the score
      • -
      • there in an until .. do .. od looping syntax - (in the new parser only)
      • -
      • SIGPIPE signals are ignored rather than causing Csound to exit
      • -
      • It is possible to use vectors of k-rate values, - named t-variable. They are initialised to a fixed sizw - with init adncan be read with a simple [] syntax. - assignment to elements is only via =. There are also a - few new opcodes that provide wider functionality. -
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes and improvements: -

      -
      -
        -
      • reading values to fill tables was broken with - respect to comments
      • -
      • internal error in wii_data fixed
      • -
      • pvsshift fixed
      • -
      • jacko fixed
      • -
      • gen23 minor fixes
      • -
      • wiimote fixed
      • -
      • atsaadd fixed
      • -
      • compress fixed to work with 0dbfs
      • -
      • pvsbufread corrected with respect to position - counting
      • -
      • tempo opcode fixed
      • -
      • CsFileB section in .csd files had a bug, now fixed
      • -
      • deferred gen01 tables could have wrong size
      • -
      • vbap_zak made to work(!)
      • -
      • fixed memory issue in ATSsinoi
      • -
      • various fixes to cscore
      • -
      • various fixes to partials and tradsyn
      • -
      • transegr could crash in some cases
      • -
      • loris opcodes updated to latest version
      • -
      • date opcode has new base in some platforms to - avoid overflow
      • -
      • pvsblur now works over reinit
      • -
      • diskin, diskin2 and soundin now can read up to 40 - channels
      • -
      • prints behaves better with rounding
      • -
      • fmpercfl now has working vibrato
      • -
      • atreson now has gain parameter at k-rate
      • -
      • comb opcode made safe if in and out arguments the - same
      • -
      • better accuracy in line and expon
      • -
      • OSCsend recovers space previously lost
      • -
      • OSCsend can send a table as a blob with the T tag - -- experimental and untested.
      • -
      • lpf18 now has an optional iskip argument
      • -
      • i() will also accept an i-rate value in which - case it is a no-op
      • -
      • makecsd revised and extended to have options for - MIDI and score processing and licenses
      • -
      • lpanal reworked to remove bugs and oddities
      • -
      • an issue with noise in alsa fixed - and a click in portaudio fixed
      • -
      • portaudio driver changed to be more robust on stop/exit
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • - Many many changesto the new parser so it is now - operational, but should be used with care
      • -
      • The multicore system is distributed in an - experimental mode and should be used with great care. -
      • -
      • -
      • -
      • -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.13 (January 2011)

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      - -
      -

      -

      -
    • -
    • -

      - New functionality -

      -
      -
        -
      • Real random number generators using /dev/random (Linux only). -
      • -
      • INF macro added to orchestras; z read as infinity in scores
      • -
      • init changed to allow multiple inits in on statement
      • -
      • GEN for support of farey sequences
      • -
      • maxalloc,cpuprc, active now accept named instruments.
      • -
      • If normalisation in pow opcodes is zero treat as 1
      • -
      • inch can take upto 20 inputs and outputs.
      • -
      • pvscale, pvsvoc and pvsmix now have very good spectral envelope preservation modes (1 = filtered cepstrum, 2 = true envelope).
      • -
      • oscil1 could be static if the duration was long; now there is a - positive minimum increment.
      • -
      • GEN49 now uses search paths.
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes and improvements: -

      -
      -
        -
      • Count of lines fixed in orchestras, and \ inside strings -
      • -
      • Fast tab opcodes made safe from crashes
      • -
      • % in formated printing could crash
      • -
      • Double free in fgen fixed
      • -
      • sndwarp quietened (gave too many messages)
      • -
      • gen41 deals with positive probabilities
      • -
      • adsynt reworked removing many bugs
      • -
      • adsynt2 phase error fixed
      • -
      • Bug in max number of gens fixed
      • -
      • Better checking in grain4
      • -
      • Better checking in adsyn
      • -
      • modulus was wrong in new parser
      • -
      • atonex/tonex did wrong operation
      • -
      • mp3in could repeat sound at end of file
      • -
      • changed opcode initialised to zero
      • -
      • Serious bug in tabmorpha fixed
      • -
      • GEN49 has serious bug removed, so no longer incorrect silences.
      • -
      • partikkel opcode: fixed bug in sub-sample grain placement when - using grain rate FM
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • - In the new parser only there are operator @ and @@ to round up the - next integer to a power of 2 or powerof2+1 -
      • -
      • Score sorting made much faster
      • -
      • lineto improved
      • -
      • Named gens allowed
      • -
      • Various printing include instrument name if available
      • -
      • Command option to omit loading a library
      • -
      • Number of out channels no longer constrained to be number of in
      • -
      • Many fixes to new parser
      • -
      • More use of Warnings than Messages (allows for them to be switched off)
      • -
      • csoundSetMessageCallback reset if callback set to null
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.12 (January 2010)

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • - transegr - is a version of - the transeg - opcode which has a release section which is triggered - by midi, - a turnoff2 - opcode or a negative instrument - number i score event. -
      • -
      • - ftgenonce - generates a function table from within an instrument - definition, without duplication of data. -
      • -
      • passign - allows quick initialization of i-rate variables from p-fields
      • -
      • crossfm - implements crossed fm synthesis.
      • -
      • - loopxseg - is - like loopseg - but with exponential envelope. -
      • -
      • - looptseg - is like loopseg - but with a flexible envelope like transeg -
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes and improvements: -

      -
      -
        -
      • - pvshift would overwrite in double mode. -
      • -
      • - pan2 case 3 fixed. -
      • -
      • - clockon - and clockoff - now work again. -
      • -
      • - cross2 and interp could have divided by zero -
      • -
      • - linecount for error messages no longer includes text - from .csoundrc -
      • -
      • - p5gconnect - changed to use a separate thread to avoid timeout problem. -
      • -
      • - transeg checks argument count. -
      • -
      • - sfload - used to be limited to 10 sound fonts and was not policed. - Now open-ended. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • - \" allowed as an escape in orchestral strings -
      • -
      • - New parser fixed on optional arguments -
      • -
      • - Better checking of f statement with negative number -
      • -
      • - Soundfonts only initialise pitches array once, in the - soundfont opcodes. -
      • -
      • - Usual collection of gratuitous minor changes, layout and comments -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.11 (June 2009)

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      - -
      -

      -

      -
    • -
    • -

      - New functionality -

      -
      -
        -
      • - New panning type for pan2 opcode -
      • -
      • - New csd score tag <CsExScore>. -
      • -
      • - New -Ma option for ALSA RT MIDI module which listens to all devices. -
      • -
      • There is a gen49 to read mp3 files -
      • -
      • - Added rounding bin code to pvscale -
      • -
      • - Added non-power-of-2 table support for ftload and ftsave -
      • -
      • - GEN23 totally rewritten to be more consistent in what constitutes - a separator and comments. (Still no /* */ comments) -
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes and improvements: -

      -
      - -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • SConstruct now builds completely independent shared libraries - for Python, Lua, and Java wrappers. -
      • -
      • New Parser almost usable -
      • -
      • Redrawing of graphs fixed so that only selected ones get redrawn. -
      • -
      • RT-alsa more forgiving on near sample rates -
      • -
      • It is possible to have the score generated by an external program - rather than using standard score format using - <CScore bin="translater"> to call the program translater on the - score data -
      • -
      • lpc_export fixed -
      • -
      • Removed limit on macro names length -
      • -
      • PMAX, the number of arguments to a score event has been reduced - by 2, and an overflow system introduced so GENs can have - arbitrary numbers of arguments. -
      • -
      • Increased API version to 2.1. -
      • -
      • New API function pointer ldmemfile2withCB() which is - a version of ldmemfile() allowing a callback to be set and called - exactly once to process the MEMFIL buffer after it is loaded. -
      • -
      • csound->floatsize set; zero in earlier versions -
      • -
      • GetChannelLock added -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.10 (December 2008)

    -

    -

    -
    -
      -
    • -

      - New functionality -

      -
      -
        -
      • - New option to listen to all MIDI devices using the portmidi realtime module. To enable listening to all devices use "-+rtmidi=portmidi -Ma". -
      • -
      • Dither on output implemented; rectangular and triangular dither - available in some cases -
      • -
      • GEN20 type 6 now has option to set variance -
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes and improvements: -

      -
      -
        -
      • - Locale set to C numeric to avoid , versus . problems. -
      • -
      • diskin fixed -
      • -
      • outo was broken regarding channel 6 -
      • -
      • pitchamdf fixed -
      • -
      • zfilter2 intialization fixed -
      • -
      • s32b14 fixed -
      • -
      • Fixed other bugs fixed that have not been reported publicly. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • - The major version of the Csound API is increased to 2; affected csound.so as well. This means that Csound 5.10 is incompatible with applications ("front ends", "clients", or "hosts") that were built for Csound 5.08 and earlier and that use API version 1.x. These applications will need to be rebuilt to work with the current and future versions of Csound. Csound front ends written in interpreted languages such as Python or Java may continue to work without modification. It may also be possible to keep both an earlier version of the Csound library and an API 2.0 version on the same machine together so that new and old Csound-based applications can run side-by-side. These changes do not in any way affect the - compatibility of Csound orchestras and scores: all old documents should continue to work as before. -
      • -
      • - Time now counted internally in samples, overcoming a longstanding bug with rounding of time to k-rate. -
      • -
      • - Many internal changes related to branch prediction. Some opcodes are substantially quicker. -
      • -
      • -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.09 (October 2008)

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      -
        -
      • New vosim opcode by Rasmus Ekman which recreates the historic VOSIM (VOcal SIMulator) technique.
      • -
      • New dcblock2 opcode by Victor Lazzarini.
      • -
      • New Chua's oscillator model: chuap by Michael Gogins.
      • -
      • New Linear Algebra opcodes by Michael Gogins. Standard Linear algebra over real and complex vectors and matrices: elementwise arithmetic, norms, transpose and conjugate, inner products, matrix inverse, LU decomposition, QR decomposition, and QR-based eigenvalue decomposition. Includes copying vectors to and from a-rate signals, function tables, and f-signals.
      • -
      • New ambisonic opcodes: bformdec1 and bformenc1. These opcodes deprecate the older bformdec and bformenc.
      • -
      • New Score control opcodes by Victor Lazzarini: rewindscore and setscorepos.
      • -
      -
      -

      -

      -
    • -
    • -

      - New functionality: -

      -
      -
        -
      • - The vbap family of opcodes (vbap4, vbap8, vbap16 and vbapz) now accept k-rate variables for all their input arguments. -
      • -
      • - New pulseaudio I/O module on Linux. -
      • -
      • - New optional ienv parameter to generate envelopes for the soundfont opcodes: sfplay, sfplay3, sfplaym and sfplay3m. -
      • -
      • - Added 'skip normalisation argument' to "tanh" named GEN routine. (See Named GEN Routines) -
      • -
      • - Added scheduler priority option on alsa. -
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes and improvements: -

      -
      -
        -
      • - Allow scientific notation (as was in csound4!) in GEN23. -
      • -
      • - Fixed bug in FLTK initialization. Should make FLTK usage more stable. -
      • -
      • - Error on /* */ comments in orchestra fixed. -
      • -
      • - poscil no longer overwrites frequency if variable is shared. -
      • -
      • - printk and printks check that opcode is initialised. -
      • -
      • - Deprecate soundout and soundouts in favour of fout. -
      • -
      • - Fixed space opcode to accept non-pow-2 (deferred) tables. -
      • -
      • - Fixed pvsmorph bug. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • - New parser has #include and argumentless macros. -
      • -
      • - Less casting between floats and doubles in float version. -
      • -
      • - Includes experimental multicore support. -
      • -
      • - buzz opcode rewritten. -
      • -
      • - Many other internal changes and small bug fixes. -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.08 (February 2008)

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      - -
      -

      -

      -
    • -
    • -

      - New functionality -

      -
      -
        -
      • Added --csd-line-nums= command line option to select mode for error line reporting. -
      • -
      • - New "no-carry" operator (! ) for score language that prevents implicit carrying of p-fields in i-statements. -
      • -
      • - Added --syntax-check-only commandline flag (exclusive with --i-only) -
      • -
      • - <CsLicence> tag for CSDs. <CsLicense> is accepted as an alternative to <CsLicence>. -
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes and improvements: -

      -
      -
        -
      • - Changed order of outputs for hilbert. This change breaks compatibility with previous versions, but fixes the opcode and now works as documented. -
      • -
      • - Messages about loading opcode plugins modified so can be suppressed with message level flag. -
      • -
      • Major changes to score error reporting; now accurately reports the line numbers for the chain of inputs for most errors.
      • -
      • Corrected pan2 so it agrees with documentation.
      • -
      • - <CsVersion> tag works again according to the manual.
      • -
      • - Fixed the { and } score looping statements. Added missing documentation for them and ~, &, |, and # operators in score expressions. -
      • -
      • - hilbert had its outputs reversed, now correct. Manual example updated. -
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • Change to gettext localisation; French and Columbian-Spanish translations available.
      • -
      • - Internal changes to partikkel, interpolation of waveform read and windowing, allowing more precise pitch synchronous granular synthesis. Updated examples for partikkel. -
      • -
      • - pvscale: Improved algorithm for SDFT case so no ampltitude variation. -
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.07 (October 2007)

    -

    -

    -
    -
      -
    • -

      New opcodes: -

      -
      - -
      -

      -

      -
    • -
    • -

      - New functionality -

      -
      -
        -
      • -

        SDFT - the Sliding Discrete Fourier Transform -- added seamlessly to pvsanal, etc opcodes if the overlap is less than the ksmps or less than 10. Some pvsXXX opcodes extended to take a-rate parameters when sliding. -

        -
      • -
      • -

        New feature (-O null / --logfile=null) that disables all messages and printing to the console. -

        -
      • -
      -
      -

      -

      -
    • -
    • -

      Bug fixes and improvements: -

      -
      -
        -
      • partikkel -- particle synthesis had an inadvertent bug, now fixed.
      • -
      • Closing of MIDI input on Windows(MM) failed; now fixed
      • -
      • fluidEngine opcode now takes optional number of channels (range 16-256, default to 256) and polyphony (range 16-4096, default to 4096) to use.
      • -
      • atsa utility safer when given silence.
      • -
      • ATSaddnz: improved checking.
      • -
      • Ambisonics (bformdec, bformenc) has more options for controlled opposites.
      • -
      • Bug in turnoff2 fixed.
      • -
      • het_export: invalid check caused export to fail.
      • -
      -
      -

      -

      -
    • -
    • -

      - Internal Changes: -

      -
      -
        -
      • Improved Windows installer.
      • -
      • CsoundVST replaced by CsoundAC, that does not depend on the VST SDK headers.
      • -
      • Less messages in Windows(MM) startup.
      • -
      • P argument type added (k-rate defaults to 1) for opcode in and out types.
      • -
      -
      -

      -

      -
    • -
    -
    -

    -

    -

    New in Version 5.06 (June 2007)

    -

    -

    -
    - -
    +

    Release Notes for Csound 7.

    + Major new version.

    -

    Credits

    +
    Credits

    Copyright (c) 2002 by Maurizio Umberto Puxeddu. All rights reserved.

    Portions copyright (c) 2004 and 2005 by Michael Gogins.

    @@ -76,14 +76,14 @@

    Credits

    Up -  Next +  Next Python Opcodes  Home -  Image processing opcodes +  Faust Opcodes
    diff --git a/RealTimeJack.html b/RealTimeJack.html index a1cbdeb3354..18a2f75f6c4 100644 --- a/RealTimeJack.html +++ b/RealTimeJack.html @@ -10,7 +10,7 @@ - +

    Under a number of systems the JACK connection kit can be used for both - audio and MIDI input/output. For more details on this, see + audio and MIDI input/output. JACK is available for Linux, Mac and Windows. For more details on this, see

    http://jackaudio.org/faq

    -

    Using JACK

    +

    Scheduling

    +

    DO NOT + use "--sched" if you are using JACK for audio output. JACK controls + scheduling for the audio applications connected to it, and also tries + to run at the highest possible priority. If the "--sched" flag is + used, Csound and JACK will be competing rather than cooperating, + resulting in extremely poor performance.

    +

    JACK Audio

    The simplest way to use the JACK plugin enabling input and output is as follows:

    @@ -88,7 +95,7 @@ 

    Using JACK

    -

    Connecting Csound to other JACK clients

    +

    Connecting Csound to other JACK clients

    By default, connections are made to the first ports on the jack port list (generally these default to system physical ports).The plugin can connect to @@ -113,7 +120,7 @@

    Connecting Csound to other JACK clients

    -odac:null and -iadc:null, for output and input, respectively. Connections can also be made manually using jack connection tools.

    -

    Notes on buffer sizes

    +

    Notes on buffer sizes

    Audio data is received from and sent to the JACK server by Csound using a ring buffer that is controlled by the -b and -B flags. @@ -140,11 +147,23 @@

    Notes on buffer sizes

    The sample rate of the orchestra must be the same as that of the JACK server.

    +

    JACK Midi

    Jack can also be used for MIDI IO. For this -+rtmidi=jack is needed. For input -M followed by the requested jack MIDI port name is used to connect directly to an input stream. For output -Q - followed by the jack port name is used. The options + followed by the jack port name is used. +

    +

    + For example +

    +
    +     -+rtmidi=jack -Q UM-3:midi/capture_2
    +

    + makes a conection from the Csound Midi port to the second Midi port of a Midi interface. +

    +

    + The options -+jack_midi_inportname= and -+jack_midi_outportname= can be used to rename Csound's MIDI IO ports.

    @@ -157,14 +176,14 @@

    Notes on buffer sizes

    Up -  Next +  Next Windows  Home -  Optimizing Audio I/O Latency +  Configuring
    diff --git a/RealTimeLinux.html b/RealTimeLinux.html index a5d3d62aa89..c07b1166981 100644 --- a/RealTimeLinux.html +++ b/RealTimeLinux.html @@ -42,7 +42,28 @@

    Realtime I/O on interface to the ALSA drivers, in a manner which is in some respects similar but fundamentally different from that provided by JACK.

    -

    Using ALSA

    +
    + + + + + + + + +
    + [Note] + Note
    If you are able to run Csound as the root user, using the "--sched" + flag will dramatically improve realtime performance, when using ALSA, + however you may hang your system if you do something stupid. DO NOT + use "--sched" if you are using JACK for audio output. JACK controls + scheduling for the audio applications connected to it, and also tries + to run at the highest possible priority. If the "--sched" flag is + used, Csound and JACK will be competing rather than cooperating, + resulting in extremely poor performance. +
    +
    +

    Using ALSA

    The highest level of control and the lowest possible level of latency are to be achieved using the ALSA plugins in combination with the --sched @@ -78,7 +99,7 @@

    Using ALSA

    -

    Audio Output

    +

    Audio Output

    Running the following command:

               aplay -l
    @@ -102,7 +123,7 @@

    Audio Output

               -+rtaudio=alsa -o dac
    -

    Output with dmix

    +

    Output with dmix

    If you would like to use Csound with dmix and your soundcard does not support hardware mixing of audio streams, special care is needed in setting @@ -183,7 +204,7 @@

    Output with dmix

    -

    Audio Input

    +

    Audio Input

    Typically the same card will be used for both input and output, so to continue using the foregoing example, the flag: @@ -215,24 +236,36 @@

    Audio Input

               -+rtaudio=alsa -i adc:hw:0,0 -o dac:hw:1,1
    -

    MIDI

    -

    2 Midi drivers are available: -

    -
    -
      -
    • Raw Midi.
    • -
    +

    Using Pulseaudio

    +

    Support for Pulseaudio was added in Csound 5.09. You can specify the following settings:

    +
    +
      +
    1. Sink names: it's possible to use a number instead of the full name, so + -odac:1 would select your second device (count starts at 0).
    2. +
    3. Server name: it's possible to connect to a specific server by using + -+server=<server_string> + where server_string is a name of a server or a more + complex server selection string (see pulseaudio.org on + server strings). This should be network transparent and should allow connections to remote machines.
    4. +
    5. Stream names: it is possible to label the streams generated by csound, by + using + -+output_stream=<stream-name> + and + -+input_stream=<stream-name>
    6. +
    -

    -

    -
    -
      -
    • Alsa Sequencer (since version 5.18).
    • -
    +

    Here's an example command line:

    +
    +

    csound -odac:1 examples/trapped.csd -+rtaudio=pulse -+server=unix:/tmp/pulse-victor/native -+output_stream=trapped

    -

    +

    MIDI

    +

    3 Midi drivers are available: PortMidi, Raw Midi and Alsa Sequencer (since version 5.18). +

    +

    Csound will use PortMidi as the default MIDI module. With PortMIDI, DEVICE is either a number for single port input, 'a' for listening to all input ports, or 'm' for mapping ports to MIDI channels above 16. In this case, device 0 uses 1-16, device 1 uses 17-32, ... device N uses (N+1)*channel. The options 'a' and 'm' are also convenient when you don't have devices as they will not generate an error.

    -

    MIDI Input (Raw Midi driver)

    +
    +          -+rtmidi=PortMIDI -Ma -Q 1
    +

    MIDI Input (Raw Midi driver)

    In order to enable your orchestra to receive MIDI input you can use VirMIDI or MIDIThru, whichever you prefer. Setting up these virtual MIDI ports is a topic that has been covered extensively elsewhere, see @@ -322,14 +355,14 @@

    MIDI Input (Raw Midi driver)

               aconnect 24:1 20:0

    Remember that Csound acts as a raw MIDI device and is not an ALSA sequencer client. This means that Csound will not appear in MIDI device listings and will not be available for use directly with aconnect, so you must connect to a virtual device (like 'virtual raw MIDI' or 'MIDI through') for persistent connections, or conect directly to the destination using command line flags.

    -

    MIDI Output (Raw Midi driver)

    +

    MIDI Output (Raw Midi driver)

    Csound can be connected to any device which shows up on the ALSA sequencer list of output ports, obtained by "amidi -l" as above. In order to connect a Csound synthesizer to the MIDI out port of the keyboard listed above, the following flag would be used:

               -Qhw:2,0,0
    -

    MIDI Input and Output (Midi Sequencer driver)

    +

    MIDI Input and Output (Midi Sequencer driver)

    This driver is to be preferred over the Raw Midi driver. It has these advantages:

    @@ -377,37 +410,6 @@

    MIDI Input and Output (Midi Sequencer driver)

    .............. 
        

    -

    Scheduling

    -

    If you are able to run Csound as the root user, using the "--sched" - flag will dramatically improve realtime performance, when using ALSA, - however you may hang your system if you do something stupid. DO NOT - use "--sched" if you are using JACK for audio output. JACK controls - scheduling for the audio applications connected to it, and also tries - to run at the highest possible priority. If the "--sched" flag is - used, Csound and JACK will be competing rather than cooperating, - resulting in extremely poor performance.

    -

    Using Pulseaudio

    -

    Support for Pulseaudio was added in Csound 5.09. You can specify the following settings:

    -
    -
      -
    1. Sink names: it's possible to use a number instead of the full name, so - -odac:1 would select your second device (count starts at 0).
    2. -
    3. Server name: it's possible to connect to a specific server by using - -+server=<server_string> - where server_string is a name of a server or a more - complex server selection string (see pulseaudio.org on - server strings). This should be network transparent and should allow connections to remote machines.
    4. -
    5. Stream names: it is possible to label the streams generated by csound, by - using - -+output_stream=<stream-name> - and - -+input_stream=<stream-name>
    6. -
    -
    -

    Here's an example command line:

    -
    -

    csound -odac:1 examples/trapped.csd -+rtaudio=pulse -+server=unix:/tmp/pulse-victor/native -+output_stream=trapped

    -
    -

    Real-time Audio

    +

    Real-time Audio

    OSX users can use either the PortAudio (default),auhal(or coreaudio), or the @@ -66,12 +66,17 @@

    Real-time Audio

    which makes csound listen to the realtime audio inputs. You can again select the device by its number (or name), and check for available devices using an out of range number. Note that for input you use 'adc' instead of 'dac'. Make sure you have the appropriate input selected in your soundcard's control panel.

    -

    Real-time MIDI

    +

    Real-time MIDI

    To enable Real-time MIDI on OSX, you can use the -M flag for MIDI input and the -Q flag for MIDI output. You might need to specify the device number after the flag (e.g. -M2), and again, you can find the available devices by giving an out of range number.

    - Csound will use PortMidi as the default MIDI module, but there's also a native coremidi module, which can be activated with the flag: + Csound will use PortMidi as the default MIDI module. With PortMIDI, DEVICE is either a number for single port input, 'a' for listening to all input ports, or 'm' for mapping ports to MIDI channels above 16. In this case, device 0 uses 1-16, device 1 uses 17-32, ... device N uses (N+1)*channel. The options 'a' and 'm' are also convenient when you don't have devices as they will not generate an error. +

    +
    +          -+rtmidi=PortMIDI -Ma -Q 1
    +

    +There's also a native coremidi module, which can be activated with the flag:


    diff --git a/RealTimeWindows.html b/RealTimeWindows.html index 686b794aed5..45570ad3c79 100644 --- a/RealTimeWindows.html +++ b/RealTimeWindows.html @@ -34,7 +34,7 @@

    Windows

    -

    Real-time Audio

    +

    Real-time Audio

    Windows users can use either the default PortAudio Realtime module, or the winmm Realtime Audio Module. The winmm module is a native windows module which provides great stability, but latency will usually be too high for realtime interaction. To activate a realtime module, you can use the -+rtaudio flag with value of portaudio or winmme. The default value is portaudio, which is activated by default without specifying it.

    @@ -47,12 +47,17 @@

    Real-time Audio

    Enabling realtime audio input is done using -iadc, which makes csound listen to the realtime audio outputs. You can again select the device by its number, and check for available devices using an out of range number. Note that for input you use 'adc' instead of 'dac'. Make sure you have the appropriate input selected in your soundcard's control panel.

    -

    Real-time MIDI

    +

    Real-time MIDI

    To enable Real-time MIDI on Windows, you can use the -M flag for MIDI input and the -Q flag for MIDI output. You might need to specify the device number after the flag (e.g. -M2), and again, you can find the available devices by giving an out of range number.

    - Csound will use PortMidi as the default MIDI module, but there's also a native winmme module, which can be activated with the flag: + Csound will use PortMidi as the default MIDI module. With PortMIDI, DEVICE is either a number for single port input, 'a' for listening to all input ports, or 'm' for mapping ports to MIDI channels above 16. In this case, device 0 uses 1-16, device 1 uses 17-32, ... device N uses (N+1)*channel. The options 'a' and 'm' are also convenient when you don't have devices as they will not generate an error. +

    +
    +          -+rtmidi=PortMIDI -Ma -Q 1
    +

    + There's also a native winmme module, which can be activated with the flag:


    diff --git a/Remote.html b/Remote.html index 8ef28cc7348..55f48a436c8 100644 --- a/Remote.html +++ b/Remote.html @@ -8,9 +8,9 @@ - + - +

    diff --git a/STKBandedWG.html b/STKBandedWG.html index b61fe4dc7c7..def88f5a93c 100644 --- a/STKBandedWG.html +++ b/STKBandedWG.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -47,12 +47,12 @@

    Description

    This opcode uses banded waveguide techniques to model a variety of sounds, including bowed bars, glasses, and bowls.

    - +

    Syntax

    asignal STKBandedWG ifrequency, iamplitude, [kpress, kv1[, kmot, kv2[, klfo, kv3[, klfodepth, kv4[, kvel, kv5[, kstrk, kv6[, kinstr, kv7]]]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -62,7 +62,7 @@

    Initialization

    - +

    Performance

    kpress -- controller 2, pressure of bow. Value range of kv1 is 0-127.

    kmot -- controller 4, motion of bow. Value range of kv2 is 0-127.

    @@ -73,7 +73,7 @@

    Performance

    kinstr -- controller 16, instrument presets (0 = uniform bar, 1 = tuned bar, 2 = glass harmonica, 3 = Tibetan bowl). Value range of kv7 is 0-3.

    - +
    @@ -99,20 +99,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKBandedWG opcode. It uses the file STKBandedWG.csd.

    - +

    - Example 1010. Example of the STKBandedWG opcode. + Example 1023. Example of the STKBandedWG opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -158,7 +158,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKBeeThree.html b/STKBeeThree.html index c69255fba85..442db7be410 100644 --- a/STKBeeThree.html +++ b/STKBeeThree.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -52,12 +52,12 @@

    Description

    - +

    Syntax

    asignal STKBeeThree ifrequency, iamplitude, [kop4, kv1[, kop3, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -67,7 +67,7 @@

    Initialization

    - +

    Performance

    kop4 -- controller 2, gain of feedback of operator 4. Value range of kv1 is 0-127.

    kop3 -- controller 4, gain of operator 3. Value range of kv2 is 0-127.

    @@ -76,7 +76,7 @@

    Performance

    kadsr -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.

    - +
    @@ -102,20 +102,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKBeeThree opcode. It uses the file STKBeeThree.csd.

    - +

    - Example 1011. Example of the STKBeeThree opcode. + Example 1024. Example of the STKBeeThree opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -159,7 +159,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKBlowBotl.html b/STKBlowBotl.html index 0a49cf0b293..574c0509339 100644 --- a/STKBlowBotl.html +++ b/STKBlowBotl.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    asignal STKBlowBotl ifrequency, iamplitude, [knoise, kv1[, klfo, kv2[, klfodepth, kv3[, kvol, kv4]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +

    Performance

    knoise -- controller 4, gain of noise. Value range of kv1 is 0-127.

    klfo -- controller 11, speed of low-frequency oscillator. Value range of kv2 is 0-127.

    @@ -71,7 +71,7 @@

    Performance

    kvol -- controller 128, volume. Value range of kv4 is 0-127.

    - +
    @@ -97,20 +97,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKBlowBotl opcode. It uses the file STKBlowBotl.csd.

    - +

    - Example 1012. Example of the STKBlowBotl opcode. + Example 1025. Example of the STKBlowBotl opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -154,7 +154,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKBlowHole.html b/STKBlowHole.html index 018352075fc..d77482e6a01 100644 --- a/STKBlowHole.html +++ b/STKBlowHole.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -50,12 +50,12 @@

    Description

    As a result, both the tonehole and register hole will have variable influence on the playing frequency, which is dependent on the length of the air column. In addition, the highest playing freqeuency is limited by these fixed lengths.

    - +

    Syntax

    asignal STKBlowHole ifrequency, iamplitude, [kreed, kv1[, knoise, kv2[, khole, kv3[, kreg, kv4[, kbreath, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -65,7 +65,7 @@

    Initialization

    - +

    Performance

    kreed -- controller 2, stiffness of reed. Value range of kv1 is 0-127.

    knoise -- controller 4, gain of noise. Value range of kv2 is 0-127.

    @@ -74,7 +74,7 @@

    Performance

    kbreath -- controller 128, breath pressure. Value range of kv5 is 0-127.

    - +
    @@ -100,20 +100,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKBlowHole opcode. It uses the file STKBlowHole.csd.

    - +

    - Example 1013. Example of the STKBlowHole opcode. + Example 1026. Example of the STKBlowHole opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -156,7 +156,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKBowed.html b/STKBowed.html index 41fa7445986..39a1d4dd21c 100644 --- a/STKBowed.html +++ b/STKBowed.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    asignal STKBowed ifrequency, iamplitude, [kpress, kv1[, kpos, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +

    Performance

    kpress -- controller 2, bow pressure. Value range of kv1 is 0-127.

    kpos -- controller 4, position on bow. Value range of kv2 is 0-127.

    @@ -72,7 +72,7 @@

    Performance

    kvol -- controller 128, volume. Value range of kv5 is 0-127.

    - +
    @@ -98,20 +98,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKBowed opcode. It uses the file STKBowed.csd.

    - +

    - Example 1014. Example of the STKBowed opcode. + Example 1027. Example of the STKBowed opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -158,7 +158,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKBrass.html b/STKBrass.html index f8ed70a51fa..335cef0f917 100644 --- a/STKBrass.html +++ b/STKBrass.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    asignal STKBrass ifrequency, iamplitude, [klip, kv1[, kslide, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +

    Performance

    klip -- controller 2, lip tension. Value range of kv1 is 0-127.

    kslide -- controller 4, slide length. Value range of kv2 is 0-127.

    @@ -72,7 +72,7 @@

    Performance

    kvol -- controller 128, volume. Value range of kv5 is 0-127.

    - +
    @@ -98,20 +98,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKBrass opcode. It uses the file STKBrass.csd.

    - +

    - Example 1015. Example of the STKBrass opcode. + Example 1028. Example of the STKBrass opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -155,7 +155,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKClarinet.html b/STKClarinet.html index 86671849293..269622e9e73 100644 --- a/STKClarinet.html +++ b/STKClarinet.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    asignal STKClarinet ifrequency, iamplitude, [kstiff, kv1[, knoise, kv2[, klfo, kv3[, klfodepth, kv4[, kbreath, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +

    Performance

    kstiff -- controller 2, reed stiffness. Value range of kv1 is 0-127.

    knoise -- controller 4, gain of noise. Value range of kv2 is 0-127.

    @@ -72,7 +72,7 @@

    Performance

    kbreath -- controller 128, breath pressure. Value range of kv5 is 0-127.

    - +
    @@ -98,20 +98,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKClarinet opcode. It uses the file STKClarinet.csd.

    - +

    - Example 1016. Example of the STKClarinet opcode. + Example 1029. Example of the STKClarinet opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -153,14 +153,16 @@ 

    Examples

    - -

    See Also

    + +

    See also

    - STKFlute. -

    + + STK Opcodes + +

    - +

    Credits

    diff --git a/STKDrummer.html b/STKDrummer.html index c8c85e7bab3..64caf1395f1 100644 --- a/STKDrummer.html +++ b/STKDrummer.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -49,12 +49,12 @@

    Description

    - +

    Syntax

    asignal STKDrummer ifrequency, iamplitude
    - +

    Initialization

    ifrequency -- Samples being played. @@ -64,7 +64,7 @@

    Initialization

    - +
    @@ -85,20 +85,20 @@

    Initialization

    - +

    Examples

    Here is an example of the STKDrummer opcode. It uses the file STKDrummer.csd.

    - +

    - Example 1017. Example of the STKDrummer opcode. + Example 1030. Example of the STKDrummer opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -138,14 +138,16 @@ 

    Examples

    - -

    See Also

    + +

    See also

    - STKClarinet. -

    + + STK Opcodes + +

    - +

    Credits

    diff --git a/STKFMVoices.html b/STKFMVoices.html index 14e24faab3b..9cae7942174 100644 --- a/STKFMVoices.html +++ b/STKFMVoices.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    asignal STKFMVoices ifrequency, iamplitude, [kvowel, kv1[, kspec, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +

    Performance

    kvowel -- controller 2, vowel. Value range of kv1 is 0-127.

    kspec -- controller 4, spectral tilt. Value range of kv2 is 0-127.

    @@ -72,7 +72,7 @@

    Performance

    kadsr -- controller 128, ADSR 2 and 4 Target. Value range of kv5 is 0-127.

    - +
    @@ -98,19 +98,19 @@

    Performance

    - +

    Examples

    Here is an example of the STKFMVoices opcode. It uses the file STKFMVoices.csd.

    - +

    - Example 1019. Example of the STKFMVoices opcode. + Example 1032. Example of the STKFMVoices opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -154,14 +154,16 @@ 

    Examples

    - -

    See Also

    + +

    See also

    - STKBeeThree. -

    + + STK Opcodes + +

    - +

    Credits

    diff --git a/STKFlute.html b/STKFlute.html index dadbc1f90b8..ddbbee7df63 100644 --- a/STKFlute.html +++ b/STKFlute.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    asignal STKFlute ifrequency, iamplitude, [kjet, kv1[, knoise, kv2[, klfo, kv3[, klfodepth, kv4[, kbreath, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +

    Performance

    kjet -- controller 2, jet delay. Value range of kv1 is 0-127.

    knoise -- controller 4, gain of noise. Value range of kv2 is 0-127.

    @@ -72,7 +72,7 @@

    Performance

    kbreath -- controller 128, breath pressure. Value range of kv5 is 0-127.

    - +
    @@ -98,20 +98,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKFlute opcode. It uses the file STKFlute.csd.

    - +

    - Example 1018. Example of the STKFlute opcode. + Example 1031. Example of the STKFlute opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -153,14 +153,16 @@ 

    Examples

    - -

    See Also

    + +

    See also

    - STKClarinet. -

    + + STK Opcodes + +

    - +

    Credits

    diff --git a/STKHevyMetl.html b/STKHevyMetl.html index 40995a0407f..2e7ac5edaf9 100644 --- a/STKHevyMetl.html +++ b/STKHevyMetl.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -49,12 +49,12 @@

    Description

    - +

    Syntax

    asignal STKHevyMetl ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -64,7 +64,7 @@

    Initialization

    - +

    Performance

    kmod -- controller2, total modulator index. Value range of kv1 is 0-127.

    kcross -- controller 4, crossfade of modulator. Value range of kv2 is 0-127.

    @@ -73,7 +73,7 @@

    Performance

    kadsr -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.

    - +
    @@ -99,20 +99,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKHevyMetl opcode. It uses the file STKHevyMetl.csd.

    - +

    - Example 1020. Example of the STKHevyMetl opcode. + Example 1033. Example of the STKHevyMetl opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -158,14 +158,16 @@ 

    Examples

    - -

    See Also

    + +

    See also

    - STKWurley. -

    + + STK Opcodes + +

    - +

    Credits

    diff --git a/STKMandolin.html b/STKMandolin.html index ae024a64fb6..e7ef94d9825 100644 --- a/STKMandolin.html +++ b/STKMandolin.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    asignal STKMandolin ifrequency, iamplitude, [kbody, kv1[, kpos, kv2[, ksus, kv3[, kdetune, kv4[, kmic, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +

    Performance

    kbody -- controller 2, size of body. Value range of kv1 is 0-127.

    kpos -- controller 4, pluck position. Value range of kv2 is 0-127.

    @@ -72,7 +72,7 @@

    Performance

    kmic -- controller 128, position of microphone. Value range of kv5 is 0-127.

    - +
    @@ -98,20 +98,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKMandolin opcode. It uses the file STKMandolin.csd.

    - +

    - Example 1021. Example of the STKMandolin opcode. + Example 1034. Example of the STKMandolin opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -156,14 +156,16 @@ 

    Examples

    - -

    See Also

    + +

    See also

    - STKPlucked. -

    + + STK Opcodes + +

    - +

    Credits

    diff --git a/STKModalBar.html b/STKModalBar.html index dea74b8f60e..08da67e3f31 100644 --- a/STKModalBar.html +++ b/STKModalBar.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -47,12 +47,12 @@

    Description

    This opcode is a resonant bar instrument.It has a number of different struck bar instruments.

    - +

    Syntax

    asignal STKModalBar ifrequency, iamplitude, [khard, kv1[, kpos, kv2[, klfo, kv3[, klfodepth, kv4[, kmix, kv5[, kvol, kv6[, kinstr, kv7]]]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -62,7 +62,7 @@

    Initialization

    - +

    Performance

    khard -- controller 2, hardness of the stick. Value range of kv1 is 0-127.

    kpos -- controller 4, stick position. Value range of kv2 is 0-127.

    @@ -73,7 +73,7 @@

    Performance

    kinstr -- controller 16, instrument presets (0 = marimba, 1 = vibraphone, 2 = agogo, 3 = wood1, 4 = reso, 5 = wood2, 6 = beats, 7 = two fixed, 8 = clump). Value range of kv7 is 0-16.

    - +
    @@ -99,20 +99,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKModalBar opcode. It uses the file STKModalBar.csd.

    - +

    - Example 1022. Example of the STKModalBar opcode. + Example 1035. Example of the STKModalBar opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -155,7 +155,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKMoog.html b/STKMoog.html index 019d03b01b7..6512903febf 100644 --- a/STKMoog.html +++ b/STKMoog.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    asignal STKMoog ifrequency, iamplitude, [kq, kv1[, krate, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +

    Performance

    kq -- controller 2, Q filter. Value range of kv1 is 0-127.

    krate -- controller 4, rate of filter sweep. Value range of kv2 is 0-127.

    @@ -72,7 +72,7 @@

    Performance

    kvol -- controller 128, volume. Value range of kv5 is 0-127.

    - +
    @@ -98,20 +98,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKMoog opcode. It uses the file STKMoog.csd.

    - +

    - Example 1023. Example of the STKMoog opcode. + Example 1036. Example of the STKMoog opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -156,7 +156,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKPercFlut.html b/STKPercFlut.html index 07e40e3a388..92f5642b907 100644 --- a/STKPercFlut.html +++ b/STKPercFlut.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -47,12 +47,12 @@

    Description

    STKPercFlut is a percussive flute FM synthesis instrument. The instrument uses an algorithm like the algorithm 4 of the TX81Z.

    - +

    Syntax

    asignal STKPercFlut ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -62,7 +62,7 @@

    Initialization

    - +

    Performance

    kmod -- controller 2, total modulator index. Value range of kv1 is 0-127.

    kcross -- controller 4, crossfade of modulator. Value range of kv2 is 0-127.

    @@ -71,7 +71,7 @@

    Performance

    kadsr -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.

    - +
    @@ -97,20 +97,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKPercFlut opcode. It uses the file STKPercFlut.csd.

    - +

    - Example 1024. Example of the STKPercFlut opcode. + Example 1037. Example of the STKPercFlut opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -156,7 +156,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKPlucked.html b/STKPlucked.html index 782f001f42d..7dfafdc96cf 100644 --- a/STKPlucked.html +++ b/STKPlucked.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    asignal STKPlucked ifrequency, iamplitude
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +
    @@ -84,20 +84,20 @@

    Initialization

    - +

    Examples

    Here is an example of the STKPlucked opcode. It uses the file STKPlucked.csd.

    - +

    - Example 1025. Example of the STKPlucked opcode. + Example 1038. Example of the STKPlucked opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -139,14 +139,16 @@ 

    Examples

    - -

    See Also

    + +

    See also

    - STKSitar. -

    + + STK Opcodes + +

    - +

    Credits

    diff --git a/STKResonate.html b/STKResonate.html index 52d8768960b..63055c14943 100644 --- a/STKResonate.html +++ b/STKResonate.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    asignal STKResonate ifrequency, iamplitude, [kfreq, kv1[, kpole, kv2[, knotch, kv3[, kzero, kv4[, kenv, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +

    Performance

    kfreq -- controller 2, frequency of resonance. Value range of kv1 is 0-127.

    kpole -- controller 4, pole radii. Value range of kv2 is 0-127.

    @@ -72,7 +72,7 @@

    Performance

    kenv -- controller 128, gain of envelope. Value range of kv5 is 0-127.

    - +
    @@ -98,20 +98,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKResonate opcode. It uses the file STKResonate.csd.

    - +

    - Example 1026. Example of the STKResonate opcode. + Example 1039. Example of the STKResonate opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -157,7 +157,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKRhodey.html b/STKRhodey.html index f7646fa0ea8..c8f291d897b 100644 --- a/STKRhodey.html +++ b/STKRhodey.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -52,12 +52,12 @@

    Description

    - +

    Syntax

    asignal STKRhodey ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -67,7 +67,7 @@

    Initialization

    - +

    Performance

    kmod -- controller 2, modulator index 1. Value range of kv1 is 0-127.

    kcross -- controller 4, crossfade of outputs. Value range of kv2 is 0-127.

    @@ -76,7 +76,7 @@

    Performance

    kadsr -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.

    - +
    @@ -102,20 +102,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKRhodey opcode. It uses the file STKRhodey.csd.

    - +

    - Example 1027. Example of the STKRhodey opcode. + Example 1040. Example of the STKRhodey opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -159,14 +159,16 @@ 

    Examples

    - -

    See Also

    + +

    See also

    - STKWurley. -

    + + STK Opcodes + +

    - +

    Credits

    diff --git a/STKSaxofony.html b/STKSaxofony.html index 01f5802e8d6..6f372daa993 100644 --- a/STKSaxofony.html +++ b/STKSaxofony.html @@ -38,7 +38,7 @@

    STKSaxofony is a faux conical bore reed instrument.

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -50,12 +50,12 @@

    Description

    If the excitation is placed at the string mid-point, the sound is that of a clarinet. At points closer to the "bridge", the sound is closer to that of a saxophone.

    - +

    Syntax

    asignal STKSaxofony ifrequency, iamplitude, [kstiff, kv1[, kapert, kv2[, kblow, kv3[, knoise, kv4[, klfo, kv5[, klfodepth, kv6[, kbreath, kv7]]]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -65,7 +65,7 @@

    Initialization

    - +

    Performance

    kstiff -- controller 2, stiffness of reed. Value range of kv1 is 0-127.

    kapert -- controller 26, reed aperture. Value range of kv2 is 0-127.

    @@ -76,7 +76,7 @@

    Performance

    kbreath -- controller 128, breath pressure. Value range of kv7 is 0-127.

    - +
    @@ -102,20 +102,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKSaxofony opcode. It uses the file STKSaxofony.csd.

    - +

    - Example 1028. Example of the STKSaxofony opcode. + Example 1041. Example of the STKSaxofony opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -161,7 +161,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKShakers.html b/STKShakers.html index 544c22dcc27..7936d9694ab 100644 --- a/STKShakers.html +++ b/STKShakers.html @@ -38,7 +38,7 @@

    STKShakers is an instrument that simulates environmental sounds or collisions of multiple independent sound producing objects.

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -50,12 +50,12 @@

    Description

    It simulates of breaking sticks, crunchy snow (or not), a wrench, sandpaper, and more..

    - +

    Syntax

    asignal STKShakers ifrequency, iamplitude, [kenerg, kv1[, kdecay, kv2[, kshake, kv3[, knum, kv4[, kres, kv5[, kinstr, kv6]]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -65,7 +65,7 @@

    Initialization

    - +

    Performance

    kenerg -- controller 2, shake energy. Value range of kv1 is 0-127.

    kdecay -- controller 4, system decay. Value range of kv2 is 0-127.

    @@ -75,7 +75,7 @@

    Performance

    kinstr -- controller 1071, instrument selection (Maraca = 0, Cabasa = 1, Sekere = 2, Guiro = 3, Water Drops = 4, Bamboo Chimes = 5, Tambourine = 6, Sleigh Bells = 7, Sticks = 8, Crunch = 9, Wrench = 10, Sand Paper = 11, Coke Can = 12, Next Mug = 13, Penny + Mug = 14, Nickle + Mug = 15, Dime + Mug = 16, Quarter + Mug = 17, Franc + Mug = 18, Peso + Mug = 19, Big Rocks = 20, Little Rocks = 21, Tuned Bamboo Chimes = 22). Value range of kv6 is 0-22.

    - +
    @@ -101,20 +101,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKShakers opcode. It uses the file STKShakerscsd.

    - +

    - Example 1029. Example of the STKShakers opcode. + Example 1042. Example of the STKShakers opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -156,7 +156,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKSimple.html b/STKSimple.html index 6b4299a674a..1985ff5779c 100644 --- a/STKSimple.html +++ b/STKSimple.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -49,12 +49,12 @@

    Description

    - +

    Syntax

    asignal STKSimple ifrequency, iamplitude, [kpos, kv1[, kcross, kv2[, kenv, kv3[, kgain, kv4]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -64,7 +64,7 @@

    Initialization

    - +

    Performance

    kpos -- controller 2, position of filter pole. Value range of kv1 is 0-127.

    kcross -- controller 4, noise/pitched cross-fade. Value range of kv2 is 0-127.

    @@ -72,7 +72,7 @@

    Performance

    kgain -- controller 128, gain. Value range of kv4 is 0-127.

    - +
    @@ -98,20 +98,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKSimple opcode. It uses the file STKSimple.csd.

    - +

    - Example 1030. Example of the STKSimple opcode. + Example 1043. Example of the STKSimple opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -156,14 +156,16 @@ 

    Examples

    - -

    See Also

    + +

    See also

    - STKClarinet. -

    + + STK Opcodes + +

    - +

    Credits

    diff --git a/STKSitar.html b/STKSitar.html index 288750d3c07..464f77292d0 100644 --- a/STKSitar.html +++ b/STKSitar.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    - +

    Syntax

    asignal STKSitar ifrequency, iamplitude
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +
    @@ -84,20 +84,20 @@

    Initialization

    - +

    Examples

    Here is an example of the STKSitar opcode. It uses the file STKSitar.csd.

    - +

    - Example 1031. Example of the STKSitar opcode. + Example 1044. Example of the STKSitar opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -140,7 +140,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKStifKarp.html b/STKStifKarp.html index bc540581cde..e14e8a859ac 100644 --- a/STKStifKarp.html +++ b/STKStifKarp.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -49,12 +49,12 @@

    Description

    - +

    Syntax

    asignal STKStifKarp ifrequency, iamplitude, [kpos, kv1[, ksus, kv2[, kstretch, kv3]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -64,14 +64,14 @@

    Initialization

    - +

    Performance

    kpos -- controller 4, pickup position. Value range of kv1 is 0-127.

    ksus -- controller11, string sustain. Value range of kv2 is 0-127.

    kstretch -- controller 1, string stretch. Value range of kv3 is 0-127.

    - +
    @@ -97,20 +97,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKStifKarp opcode. It uses the file STKStifKarp.csd.

    - +

    - Example 1032. Example of the STKStifKarp opcode. + Example 1045. Example of the STKStifKarp opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -154,7 +154,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKTop.html b/STKTop.html index cb3788e1c46..19c1d75f27a 100644 --- a/STKTop.html +++ b/STKTop.html @@ -8,9 +8,9 @@ - + - +
    - - + +
    Prev Part II. Opcodes Overview NextExternal Plugin Opcodes Next

    @@ -205,7 +205,10 @@

    STK Opcodes

    For more information about the STK opcodes, visit The Synthesis ToolKit in C++ (STK) web site at https://ccrma.stanford.edu/software/stk.

    -

    Credits

    +

    +Also, see the Models and Emulations section . +

    +

    Credits

    This implementation of the STK unit generators was written by Perry R. Cook and Gary P. Scavone. @@ -220,16 +223,16 @@

    Credits

    Prev  - Up + Up -  Next +  Next Image processing opcodes  Home -  Miscellaneous opcodes +  Ableton Link Opcodes
    diff --git a/STKTubeBell.html b/STKTubeBell.html index 34c11e1986e..d730d074a19 100644 --- a/STKTubeBell.html +++ b/STKTubeBell.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    It uses two simple FM Pairs summed together, also referred to as algorithm 5 of the TX81Z.

    - +

    Syntax

    asignal STKTubeBell ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +

    Performance

    kmod -- controller 2, modulator index 1. Value range of kv1 is 0-127.

    kcross -- controller 4, crossfade of outputs. Value range of kv2 is 0-127.

    @@ -72,7 +72,7 @@

    Performance

    kadsr -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.

    - +
    @@ -98,20 +98,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKTubeBell opcode. It uses the file STKTubeBell.csd.

    - +

    - Example 1033. Example of the STKTubeBell opcode. + Example 1046. Example of the STKTubeBell opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -156,7 +156,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKVoicForm.html b/STKVoicForm.html index 8c5aebcb0d0..fffd41bda92 100644 --- a/STKVoicForm.html +++ b/STKVoicForm.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -51,12 +51,12 @@

    Description

    cascade synthesis is the most natural so that us what you will find here.

    - +

    Syntax

    asignal STKVoicForm ifrequency, iamplitude, [kmix, kv1[, ksel, kv2[, klfo, kv3[, klfodepth, kv4[, kloud, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -66,7 +66,7 @@

    Initialization

    - +

    Performance

    kmix -- controller 2, voiced/unvoiced mix. Value range of kv1 is 0-127.

    ksel -- controller 4, vowel/phoneme selection. Value range of kv2 is 0-127.

    @@ -75,7 +75,7 @@

    Performance

    kloud -- controller 128, loudness (spectral tilt). Value range of kv5 is 0-127.

    - +
    @@ -101,7 +101,7 @@

    Performance

    - +

    Examples

    Here is an example of the STKVoicForm opcode. @@ -109,13 +109,13 @@

    Examples

    - +

    - Example 1034. Example of the STKVoicForm opcode. + Example 1047. Example of the STKVoicForm opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -158,7 +158,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKWhistle.html b/STKWhistle.html index fbbb060f55b..b2182d551b8 100644 --- a/STKWhistle.html +++ b/STKWhistle.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -47,12 +47,12 @@

    Description

    STKWhistle produces (police) whistle sounds. It uses a hybrid physical/spectral model of a police whistle (a la Cook).

    - +

    Syntax

    asignal STKWhistle ifrequency, iamplitude, [kmod, kv1[, knoise, kv2[, kfipfreq, kv3[, kfipgain, kv4[, kvol, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -62,7 +62,7 @@

    Initialization

    - +

    Performance

    kmod -- controller 2, blowing frequency modulation. Value range of kv1 is 0-127.

    knoise -- controller 4, noise gain. Value range of kv2 is 0-127.

    @@ -71,7 +71,7 @@

    Performance

    kvol -- controller 128, volume. Value range of kv5 is 0-127.

    - +
    @@ -97,20 +97,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKWhistle opcode. It uses the file STKWhistle.csd.

    - +

    - Example 1035. Example of the STKWhistle opcode. + Example 1048. Example of the STKWhistle opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -155,7 +155,16 @@ 

    Examples

    - + +

    See also

    +

    + + STK Opcodes + +

    +
    +
    +

    Credits

    diff --git a/STKWurley.html b/STKWurley.html index d43c45c3f30..29d3d2c9815 100644 --- a/STKWurley.html +++ b/STKWurley.html @@ -39,7 +39,7 @@

    - +

    Description

    Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

    @@ -48,12 +48,12 @@

    Description

    It uses two simple FM Pairs summed together, also referred to as algorithm 5 of the TX81Z.

    - +

    Syntax

    asignal STKWurley ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]
    - +

    Initialization

    ifrequency -- Frequency of note played, in Hertz. @@ -63,7 +63,7 @@

    Initialization

    - +

    Performance

    kmod -- controller 2, modulator index 1. Value range of kv1 is 0-127.

    kcross -- controller 4, crossfade of outputs. Value range of kv2 is 0-127.

    @@ -72,7 +72,7 @@

    Performance

    kadsr -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.

    - +
    @@ -98,20 +98,20 @@

    Performance

    - +

    Examples

    Here is an example of the STKWurley opcode. It uses the file STKWurley.csd.

    - +

    - Example 1036. Example of the STKWurley opcode. + Example 1049. Example of the STKWurley opcode.

    - +
     <CsoundSynthesizer>
     <CsOptions>
    @@ -156,14 +156,16 @@ 

    Examples

    - -

    See Also

    + +

    See also

    - STKRhodey. -

    + + STK Opcodes + +

    - +

    Credits

    diff --git a/ScoreEval.html b/ScoreEval.html index 0385befe4c1..6219da5afa9 100644 --- a/ScoreEval.html +++ b/ScoreEval.html @@ -47,7 +47,7 @@

    Evaluation of Expres
    -

    Example

    +

    Example

    @@ -120,7 +120,7 @@

    Example

    -

    The @ operator

    +

    The @ operator

    @@ -140,7 +140,7 @@

    The @ operator

    -

    Credits

    +

    Credits

    diff --git a/ScoreGenRef.html b/ScoreGenRef.html index e0f723c8032..e0ec49ee5e0 100644 --- a/ScoreGenRef.html +++ b/ScoreGenRef.html @@ -35,7 +35,7 @@

    GEN Routines

    GEN routines are used as data generators for function tables. When a function table is created using the f score statement the GEN function is given as its fourth argument. A negative GEN number implies that the function is not rescaled, and maintains its original values.

    -

    Sine/Cosine Generators:

    +

    Sine/Cosine Generators:

    • GEN09 - Composite waveforms made up of weighted sums of simple sinusoids.
    • @@ -47,7 +47,7 @@

      Sine/Cosine Generators:

    • GEN34 - Generate composite waveforms by mixing simple sinusoids.
    -

    +

    Line/Exponential Segment Generators:

    @@ -61,7 +61,7 @@

  • GEN27 - Construct functions from segments of straight lines in breakpoint fashion.
  • -

    +

    File Access GEN Routines:

    @@ -74,7 +74,7 @@

    - Transfers data from an MP3 soundfile into a function table.

    -

    +

    Numeric Value Access GEN Routines

    @@ -85,7 +85,7 @@

  • GEN52 - Creates an interleaved multichannel table from the specified source tables, in the format expected by the ftconv opcode.
  • -

    +

    Window Function GEN Routines

    @@ -93,7 +93,7 @@

  • GEN20 - Generates functions of different windows.
  • -

    +

    Random Function GEN Routines

    @@ -104,7 +104,7 @@

  • GEN42 - Generates a random distribution of discrete ranges of values.
  • -

    +

    Waveshaping GEN Routines

    @@ -115,7 +115,7 @@

  • GEN15 - Creates two tables of stored polynomial functions.
  • -

    +

    Amplitude Scaling GEN Routines

    @@ -125,7 +125,7 @@

  • GEN24 - Reads numeric values from another allocated function-table and rescales them.
  • -

    +

    Mixing GEN Routines

    @@ -135,7 +135,7 @@

  • GEN32 - Mixes any waveform, resampled with either FFT or linear interpolation.
  • -

    +

    Pitch and Tuning GEN Routines

    @@ -143,7 +143,7 @@

  • GEN51 - fills a table with a fully customized micro-tuning scale, in the manner of Csound opcodes cpstun, cpstuni and cpstmid.
  • -

    +

    Named GEN Routines

    Csound's GEN routines can be extended with GEN function diff --git a/ScoreMacros.html b/ScoreMacros.html index e740e041605..715f151e278 100644 --- a/ScoreMacros.html +++ b/ScoreMacros.html @@ -38,7 +38,7 @@

    Score Macros

    -

    Description

    +

    Description

    @@ -77,7 +77,7 @@

    Description

    -

    Syntax

    +

    Syntax

    @@ -94,7 +94,7 @@

    Syntax

    -

    Initialization

    +

    Initialization

    @@ -106,7 +106,7 @@

    Initialization

    -

    Performance

    +

    Performance

    @@ -131,14 +131,14 @@

    Performance

    -

    Examples

    +

    Examples

    - +

    Example 1. Simple Macro

    @@ -184,7 +184,7 @@

    Examples

    - +

    Example 2. Macros with arguments

    @@ -218,7 +218,7 @@

    Examples

    -

    Credits

    +

    Credits

    diff --git a/ScoreMult.html b/ScoreMult.html index 7935ec24e82..01cccaea50b 100644 --- a/ScoreMult.html +++ b/ScoreMult.html @@ -38,7 +38,7 @@

    Multiple File Score<
    -

    Description

    +

    Description

    @@ -50,7 +50,7 @@

    Description

    -

    Syntax

    +

    Syntax

    @@ -61,7 +61,7 @@

    Syntax

    -

    Performance

    +

    Performance

    @@ -120,7 +120,7 @@

    Performance

    -

    Credits

    +

    Credits

    diff --git a/SigProcConmorph.html b/SigProcConmorph.html index d0d0f855bf5..fb9206a3d92 100644 --- a/SigProcConmorph.html +++ b/SigProcConmorph.html @@ -30,7 +30,7 @@
    -

    Convolution and Morphing

    +

    Convolution and Morphing

    @@ -70,11 +70,23 @@

    Convolution an

    +
  • +

    + + liveconv + +

    +
  • pconvolve

  • +
  • +

    + tvconv +

    +
  • diff --git a/SiggenBasic.html b/SiggenBasic.html index 1a2a6897e6a..e35ec5dcbee 100644 --- a/SiggenBasic.html +++ b/SiggenBasic.html @@ -30,7 +30,7 @@

    -

    Basic Oscillators

    +

    Basic Oscillators

    @@ -63,7 +63,7 @@

    Basic Oscillators<
    -

    LFOs

    +

    LFOs

    diff --git a/SiggenDynamic.html b/SiggenDynamic.html index 7306d4c4e08..3958f129a33 100644 --- a/SiggenDynamic.html +++ b/SiggenDynamic.html @@ -30,7 +30,7 @@
    -

    Dynamic Spectrum Oscillators

    +

    Dynamic Spectrum Oscillators

    @@ -45,6 +45,9 @@

    Dynamic Spectrum
  • Impulse generator: mpulse

  • +
  • +

    Bandlimited shape-shifting square-pulse-saw-sinewave oscillator: squinewave

    +
  • Band limited oscillators (analog modelled): vco and vco2

  • diff --git a/SiggenEnvelope.html b/SiggenEnvelope.html index 906df72201d..d167407dd4e 100644 --- a/SiggenEnvelope.html +++ b/SiggenEnvelope.html @@ -30,7 +30,7 @@
    -

    Envelope Generators

    +

    Envelope Generators

    @@ -46,6 +46,13 @@

    Envelope Genera

    +
  • +

    + + gtadsr + +

    +
  • diff --git a/SiggenFmsynth.html b/SiggenFmsynth.html index 8041e4b832d..6d893883362 100644 --- a/SiggenFmsynth.html +++ b/SiggenFmsynth.html @@ -30,7 +30,7 @@

    -

    FM Synthesis

    +

    FM Synthesis

    @@ -69,7 +69,7 @@

    FM Synthesis

    -

    FM instrument models

    +

    FM instrument models

  • diff --git a/SiggenGranular.html b/SiggenGranular.html index f321fd9f0a8..0c687159edd 100644 --- a/SiggenGranular.html +++ b/SiggenGranular.html @@ -30,7 +30,7 @@
    -

    Granular Synthesis

    +

    Granular Synthesis

    diff --git a/SiggenHvs.html b/SiggenHvs.html index 966e99002d0..bcbdc670ed6 100644 --- a/SiggenHvs.html +++ b/SiggenHvs.html @@ -30,7 +30,7 @@
    -

    Hyper Vectorial Synthesis

    +

    Hyper Vectorial Synthesis

    @@ -77,7 +77,7 @@

    Hyper Vectorial Synt

    - + The opcode FLhvsBox can be used to display the phase position for 2-dimensional Hyper Vectorial Synthesis.

    @@ -180,7 +180,7 @@

    Soundfonts

    -

    Fluid Opcodes

    +
    Fluid Opcodes
    @@ -285,7 +285,7 @@

    Fluid Opcodes

    -

    "Original" Soundfont opcodes

    +
    "Original" Soundfont opcodes
    diff --git a/SiggenScanTop.html b/SiggenScanTop.html index 84b71ed06b0..6bd0c7f49a2 100644 --- a/SiggenScanTop.html +++ b/SiggenScanTop.html @@ -30,7 +30,7 @@
    -

    Scanned Synthesis

    +

    Scanned Synthesis

    @@ -53,13 +53,29 @@

    Scanned Synthesi

    - All parameters — mass, damping, earth-spring strength, and string tension can vary along the "string." The model is manipulated by pushing or hitting different masses (the individual samples in a very short wavetable) and by manipulating parameters. What is unique here is that the wavetable itself is a dynamic model. + All parameters — mass (in the drawing above: M), damping (D), earth-spring strength (C), and string tension (T) can vary along the "string." The model is manipulated by pushing or hitting different masses (the individual samples in a very short wavetable) and by manipulating parameters. What is unique here is that the wavetable itself is a dynamic model.

    +
    +

    + + + + + + + +
    + [Note] + Note
    +

    The term 'hammer' is chosen for the model name, but 'hammer' might not be the best metaphor. A hammer implies that you are striking it - but you are actually initializing a deformation of the surface and then setting it in motion. +

    +
    +

    - You are manipulating the mechanical model at haptic rates 0-10 Hz, and independent to this, you are scanning out the wavetable at the pitch frequency. Although, the table has its own dynamics, there are no discontinuities because the model is implemented as a circular string, so you end up with a 128 point looping oscillator with a constantly evolving loop. It is hard to believe, but true, that what results is a short sample that is animated and harmonically rich because of the complex interactive nature of the elements in the underlying system — the mechanics of the model. + You are manipulating the mechanical model at haptic rates 0-10 Hz, and independent to this, you are scanning out the wavetable at the pitch frequency. Although, the table has its own dynamics, there are no discontinuities because the model is implemented as a circular string, so you end up with a looping oscillator (for example of 128 points) with a constantly evolving loop. It is hard to believe, but true, that what results is a short sample that is animated and harmonically rich because of the complex interactive nature of the elements in the underlying system — the mechanics of the model.

    @@ -68,13 +84,16 @@

    Scanned Synthesi In fact, even enveloping can come directly from the model. It turns out that the specific setting of the centering springs can affect the damping of the system — low values allowing the rich timbre to ring, high values causing the tone to die away quickly.

    - The opcode scanu defines the mass/spring network and sets it in motion. The opcode scans follows a predefined path (trajectory) around the network and outputs the detected waveform. Several scans instances may follow different paths around the same network. These are highly efficient mechanical modelling algorithms for both synthesis and sonic animation via algorithmic processing. They should run in real-time. Thus, the output is useful either directly as audio, or as controller values for other parameters. + The opcodes scanu / scanu2 define the mass/spring network and sets it in motion. The opcode scans follows a predefined path (trajectory) around the network and outputs the detected waveform. Several scans instances may follow different paths around the same network. These are highly efficient mechanical modelling algorithms for both synthesis and sonic animation via algorithmic processing. They should run in real-time. Thus, the output is useful either directly as audio, or as controller values for other parameters.

    The Csound implementation adds support for a scanning path or matrix. Essentially, this offers the possibility of reconnecting the masses in different orders, causing the signal to propagate quite differently. They do not necessarily need to be connected to their direct neighbors. Essentially, the matrix has the effect of molding this surface into a radically different shape.

    - To produce the matrices, the table format is straightforward. For example, for 4 masses we have the following grid describing the possible connections: + Two different matrix formats are available: a binary matrix and a text matrix. It is good practise to give the binary matrix name the extension .matrxB and the text matrix .matrxT. To produce the matrices, the table formats are straightforward. +

    +

    +As an example for the binary matrix, for 4 masses we have the following grid describing the possible connections:

    @@ -186,13 +205,100 @@

    Scanned Synthesi

    - This matrix example is very small and simple. In practice, most scanned synthesis instruments will use many more masses than four, so their matrices will be much larger and more complex. See the example in the scans documentation. + As an example of a text matrix (see GEN44), for the same 4 masses we have the following grid describing these connections: +

    +
    +
    +<MATRIX size=4>
    +1   2   4 
    +2   3   2 
    +3   4   6 
    +</MATRIX>
    +        
    +
    +

    + Here, the first two values in the row denote a connection from the first to the second. + The third number is a weight; a weight of 2 is like having two links so more + information gets distributed, while a zero weight means no link. If this third + number is omitted it is taken as value 1. +

    +

    + Both these matrix examples are very small and simple. In practice, most scanned synthesis instruments will use many more masses than four, so their matrices will be much larger and more complex. See the example in the scans documentation.

    +
    + +

    + Here is an example that compares the binary and the text matrix. They sound the same. It uses the file matrices_compare.csd. +

    +
    + +

    + Example 3. Example comparing the use of the binary and the text matrix. +

    +
    +
    + +
    +<CsoundSynthesizer>
    +<CsOptions>
    +-o dac
    +</CsOptions>
    +<CsInstruments>
    +
    +sr = 44100
    +ksmps = 32
    +nchnls = 2
    +0dbfs  = 1
    +
    +instr 1
    +
    +initial ftgen 1, 0, 128, 10, 1                         ; initial position = sine wave
    +idispl  ftgen 2, 0, 128, -7, .01, 128, .01             ; displace
    +imass   ftgen 3, 0, 128, -7, 5, 128, 5                 ; masses
    +icent   ftgen 4, 0, 128, -7, 1, 128, 1                 ; centering
    +idamp   ftgen 5, 0, 128, -7, -.1, 128, -.1             ; damping
    +itraj   ftgen 6, 0, 128, -7, 0, 128, 127               ; trajectory
    +
    +a0 init 0
    +irate = .01
    +      
    +;scanu2 init, irate, ifndisplace, ifnmass, imatrix, ifncentr, ifndamp, kmass, kmtrxstiff, kcentr, kdamp, ileft, iright, kpos, kdisplace, ain, idisp, id
    +scanu2   1,   irate,     2,          3,       p4,       4,       5,      20,      9,       0.1,    .9,     .5,    .1,     0,      0,     a0,    0,   2
    +;ar scans kamp, kfreq, ifntraj, id
    +a1 scans    1,   200,    6,     2
    +
    +if p4 == 50 then
    +    prints  "\n  using binary matrix system\n", p4
    +else
    +    prints  "\n  and now the text matrix system\n", p4
    +endif
    +
    +outs a1, a1
    +endin
    +
    +</CsInstruments>
    +<CsScore>
    +; both matrices are to be found in the examples folder of the manual
    +f50 0 16384 -23  "string-128.matrxB"    ; binary matrix
    +f100 0 128  -44  "string-128.matrxT"    ; text matrix
    +
    +i1 0 10     50
    +i1 12 10    100
    +e
    +</CsScore>
    +</CsoundSynthesizer>
    +
    +
    +
    +
    +


    +

    +

    - Please note that the generated dynamic wavetables are very unstable. Certain values for masses, centering, and damping can cause the system to blow up and the most interesting sounds to emerge from your loudspeakers! + Please note that generated dynamic wavetables can be very unstable. Certain values for masses, centering, and damping can cause the system to blow up and the most interesting sounds to emerge from your loudspeakers!

    - The supplement to this manual contains a tutorial on scanned synthesis. The tutorial, examples, and other information on scanned synthesis is available from the Scanned Synthesis page at cSounds.com. + A tutorial, examples, and other information on scanned synthesis is available from the Scanned Synthesis page at cSounds.com.

    Opcodes that implement scanned synthesis are: @@ -248,6 +354,13 @@

    Scanned Synthesi

    +
  • +

    + + GEN44 + +

    +
  • diff --git a/SiggenTableacc.html b/SiggenTableacc.html index b466aed77b1..f52a18fc6c2 100644 --- a/SiggenTableacc.html +++ b/SiggenTableacc.html @@ -30,7 +30,7 @@

    -

    Table Access

    +

    Table Access

    @@ -107,21 +107,21 @@

    Table Access
  • - + tab_i

  • - + tabw

  • - + tabw_i

    @@ -133,23 +133,6 @@

    Table Access See the sections Table Queries, Read/Write Operationsand Table Reading with Dynamic Selection for other table operations.

    -
    -

  • - - - - - - - -
    - [Note] - Note
    -

    - Although tables with a size which is not a power of two can be created using a negative size (see f score statement), some opcodes will not accept them. -

    -
    -

    @@ -261,7 +285,7 @@

    Standard filters

    -

    Zero-delay Feedback Filters (Virtual Analog)

    +

    Zero-delay Feedback Filters (Virtual Analog)

    @@ -269,57 +293,57 @@

    Zero-delay Feedback Filters (Virtual Anal

    diff --git a/SigmodTop.html b/SigmodTop.html index dcd601cea49..767e9c6fc24 100644 --- a/SigmodTop.html +++ b/SigmodTop.html @@ -38,7 +38,7 @@

    Signal Modifiers

    -

    Amplitude Modifiers and Dynamic processing

    +

    Amplitude Modifiers and Dynamic processing

    @@ -54,6 +54,13 @@

    Amplitude Modifi

    +
  • +

    + + balance2 + +

    +
  • @@ -61,6 +68,13 @@

    Amplitude Modifi

  • +
  • +

    + + compress2 + +

    +
  • diff --git a/SigmodWavguide.html b/SigmodWavguide.html index 9ba916c576a..86fe9cb6368 100644 --- a/SigmodWavguide.html +++ b/SigmodWavguide.html @@ -30,7 +30,7 @@

    -

    Waveguides

    +

    Waveguides

    diff --git a/SigmodWavshape.html b/SigmodWavshape.html index 8d5240519f0..ad78f09fe2a 100644 --- a/SigmodWavshape.html +++ b/SigmodWavshape.html @@ -30,7 +30,7 @@
    -

    Waveshaping and Phase Distortion

    +

    Waveshaping and Phase Distortion

    @@ -114,6 +114,13 @@

    Waveshaping and

  • +
  • +

    + + vps + +

    +
  • diff --git a/SignalFlowGraphOpcodes.html b/SignalFlowGraphOpcodes.html index 694af217e2b..4febadc0e4a 100644 --- a/SignalFlowGraphOpcodes.html +++ b/SignalFlowGraphOpcodes.html @@ -9,8 +9,8 @@ - - + +