diff --git a/A4.html b/A4.html index 724000e6b07..251989933c6 100644 --- a/A4.html +++ b/A4.html @@ -39,7 +39,7 @@
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.
- sr, - kr, - ksmps, - nchnls, - nchnls_i, - 0dbfs, - cpspch, - cpsoct, - cpsmidinn, - cps2pch, - cpsxpch. -
+ + Orchestra Header Statements + +diff --git a/ATSadd.html b/ATSadd.html index 92453abe61d..2dd88e325b7 100644 --- a/ATSadd.html +++ b/ATSadd.html @@ -38,20 +38,20 @@
ATSadd reads from an ATS analysis file and uses the data to perform additive synthesis using an internal array of interpolating oscillators.
ar ATSadd ktimepnt, kfmod, iatsfile, ifn, ipartials[, ipartialoffset, \
ipartialincr, igatefn]
iatsfile – the ATS number (n in ats.n) or the name in quotes of the analysis file made using ATSA. @@ -69,7 +69,7 @@
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 @@
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.
- +See also
-ATSread, - ATSreadnz, - ATSinfo, - ATSbufread, - ATScross, - ATSinterpread, - ATSpartialtap, - ATSaddnz, - ATSsinnoi
+- +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.
- +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.
- +See also
-ATSread, - ATSreadnz, - ATSinfo, - ATSbufread, - ATScross, - ATSinterpread, - ATSpartialtap, - ATSaddnz, - ATSsinnoi
+- +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.
- +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
- +See also
-ATSread, - ATSreadnz, - ATSinfo, - ATSsinnoi, - ATScross, - ATSinterpread, - ATSpartialtap, - ATSadd, - ATSaddnz
+- +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
- +See also
-ATSread, - ATSreadnz, - ATSinfo, - ATSsinnoi, - ATSbufread, - ATSinterpread, - ATSpartialtap, - ATSadd, - ATSaddnz
+- +Credits
diff --git a/ATSinfo.html b/ATSinfo.html index ac3ec1d8038..2de238a0a0a 100644 --- a/ATSinfo.html +++ b/ATSinfo.html @@ -38,19 +38,19 @@
- +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.
- +See also
-ATSread, - ATSreadnz, - ATSbufread, - ATScross, - ATSinterpread, - ATSpartialtap, - ATSadd, - ATSaddnz, - ATSsinnoi
+- +Credits
diff --git a/ATSinterpread.html b/ATSinterpread.html index 5790c9831e7..07a87a11dba 100644 --- a/ATSinterpread.html +++ b/ATSinterpread.html @@ -38,38 +38,38 @@
- +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.
- +See also
-ATSread, - ATSreadnz, - ATSinfo, - ATSsinnoi, - ATSbufread, - ATScross, - ATSpartialtap, - ATSadd, - ATSaddnz
+- +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.
- +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
- +See also
-ATSread, - ATSreadnz, - ATSinfo, - ATSsinnoi, - ATSbufread, - ATScross, - ATSinterpread, - ATSadd, - ATSaddnz
+- +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.
- +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.
- +See also
-ATSreadnz, - ATSinfo, - ATSbufread, - ATScross, - ATSinterpread, - ATSpartialtap, - ATSadd, - ATSaddnz, - ATSsinnoi
+- +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.
- +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
- +See also
-ATSread, - ATSinfo, - ATSbufread, - ATScross, - ATSinterpread, - ATSpartialtap, - ATSadd, - ATSaddnz, - ATSsinnoi
+- +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.
- +See also
-ATSread, - ATSreadnz, - ATSinfo, - ATSbufread, - ATScross, - ATSinterpread, - ATSpartialtap, - ATSadd, - ATSaddnz
+- +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 + + + + + + + + + + ++ ++ + + diff --git a/C.html b/C.html index dcc1f54fec2..6411293845f 100644 --- a/C.html +++ b/C.html @@ -39,19 +39,19 @@+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.
+
- +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.
++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 -
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
-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/buildin 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
- +diff --git a/ControlFltkAppearance.html b/ControlFltkAppearance.html deleted file mode 100644 index 4aed423a2da..00000000000 --- a/ControlFltkAppearance.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - -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 - @@ -45,33 +45,18 @@Prev +Prev Part I. Overview Next Configuring
(Note that for csound5 these environment variables wereOPCODEDIR
andOPCODEDIR64
.) -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 yourPATH
variable, or else copy all the executable files to your Windowssystem32
directory. Depending on your installation method, you might also need to set theOPCODE6DIR
andOPCODE6DIR64
environment variables. Assuming that Csound is installed to the default location ofC:\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----
-- -- - -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
andC:\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 thatOPCODE6DIR
andOPCODE6DIR64
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
- Prev +Prev Up Next - Optimizing Audio I/O Latency +Realtime I/O with JACK Connection Kit Home diff --git a/ControlConditional.html b/ControlConditional.html index 1169dcd452e..975e4e5a9ab 100644 --- a/ControlConditional.html +++ b/ControlConditional.html @@ -30,7 +30,7 @@ diff --git a/ControlDurctl.html b/ControlDurctl.html index cfd2ef41355..54cd2af6742 100644 --- a/ControlDurctl.html +++ b/ControlDurctl.html @@ -10,7 +10,7 @@ - +
@@ -30,7 +30,7 @@ @@ -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 Modifying FLTK Widget Appearance - - - - - - - - - - -- --The following opcodes modify FLTK widget appearance:
----
-- -
-- - FLcolor - -
-- -
-- - FLcolor2 - -
-- -
-- - FLhide - -
-- -
-- - FLlabel - -
-- -
-- - FLsetAlign - -
-- -
-- - FLsetBox - -
-- -
-- - FLsetColor - -
-- -
-- - FLsetColor2 - -
-- -
-- - FLsetFont - -
-- - -
-- -
-- - FLsetSize - -
-- -
-- - FLsetText - -
-- - -
-- - -
-- - -
-- -
-- - FLsetVal_i - -
-- -
-- - FLsetVal - -
-- -
-- - FLshow - -
--- - diff --git a/ControlFltkGeneral.html b/ControlFltkGeneral.html deleted file mode 100644 index 0f65017cce0..00000000000 --- a/ControlFltkGeneral.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - -
--
-- -Prev -- Up - -Next -- -Other FLTK Widgets -- Home - -General FLTK Widget-related Opcodes -General FLTK Widget-related Opcodes - - - - - - - - - ----
-- -General FLTK Widget-related Opcodes -- -Prev -FLTK Widgets and GUI controllers -Next -
-- --- The general FLTK widget-related opcodes are: -
----
-- -
-- - FLgetsnap - -
-- -
-- - FLloadsnap - -
-- -
-- - FLrun - -
-- -
-- - FLsavesnap - -
-- -
-- - FLsetsnap - -
-- -
-- - FLupdate - -
-- - -
--
--- - diff --git a/ControlFltkIntro.html b/ControlFltkIntro.html deleted file mode 100644 index cfeb9f4135e..00000000000 --- a/ControlFltkIntro.html +++ /dev/null @@ -1,360 +0,0 @@ - - - - - -
--
-- -Prev -- Up - -Next -- -Modifying FLTK Widget Appearance -- Home - -Instrument Invocation -FLTK Widgets and GUI controllers - - - - - - - - - - -- -- - - diff --git a/ControlFltkOther.html b/ControlFltkOther.html deleted file mode 100644 index 4cf555d13bb..00000000000 --- a/ControlFltkOther.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - -- 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. -
-- --- The opcodes for FLTK containers are: -
----
-- -
-- - FLgroup - -
-- -
-- - FLgroupEnd - -
-- -
-- - FLpack - -
-- -
-- - FLpackEnd - -
-- -
-- - FLpanel - -
-- -
-- - FLpanelEnd - -
-- -
-- - FLscroll - -
-- -
-- - FLscrollEnd - -
-- -
-- - FLtabs - -
-- -
-- - FLtabsEnd - -
--
-Other FLTK Widgets - - - - - - - - - - -- --- Other FLTK widget opcodes are: -
----
-- -
-- - FLbox - -
-- -
-- - FLbutBank - -
-- -
-- - FLbutton - -
-- -
-- - FLexecButton - -
-- -
-- - FLkeyIn - -
-- -
-- - FLhvsBox - -
-- - -
-- -
-- - FLmouse - -
-- -
-- - FLprintk - -
-- -
-- - FLprintk2 - -
-- -
-- - FLslidBnk - -
-- -
-- - FLslidBnk2 - -
-- - -
-- -
-- - FLslidBnkSet - -
-- - -
-- - -
-- -
-- - FLvalue - -
-- -
-- - FLvkeybd - -
-- -
-- - FLvslidBnk - -
-- -
-- - FLvslidBnk2 - -
-- -
-- - FLxyin - -
--
--- - diff --git a/ControlFltkValuators.html b/ControlFltkValuators.html deleted file mode 100644 index 5537d7ac236..00000000000 --- a/ControlFltkValuators.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - -
--
-- -Prev -- Up - -Next -- -FLTK Valuators -- Home - -Modifying FLTK Widget Appearance -FLTK Valuators - - - - - - - - - - -- --- The opcodes for FLTK valuators are: -
----
-- -
-- - FLcount - -
-- -
-- - FLjoy - -
-- -
-- - FLknob - -
-- -
-- - FLroller - -
-- -
-- - FLslider - -
-- -
-- - FLtext - -
--
--- - 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 @@
--
-- -Prev -- Up - -Next -- -FLTK Widgets and GUI controllers -- Home - -Other FLTK Widgets -Instrument Invocation - @@ -30,7 +30,7 @@ @@ -53,6 +53,20 @@Prev +Prev Instrument Control Next Instrument Invo +
+ ++ + nstance + +
++ + + readscore + +
++ + + + 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: +
++++
+- +
++ + compilecsd + +
+- +
++ + compileorc + +
+- +
++ + compilestr + +
+
+
- Prev +Prev Up Next - General FLTK Widget-related Opcodes +Duration Control Statements Home diff --git a/ControlPgmctl.html b/ControlPgmctl.html index 2af793b4c5b..e241b631f63 100644 --- a/ControlPgmctl.html +++ b/ControlPgmctl.html @@ -30,7 +30,7 @@ @@ -196,6 +196,76 @@Program Flow Con
+ These opcodes are part of a counter system: +
+++
+- +
++ + count + +
+- +
++ + count_i + +
+- +
++ + cntCycles + +
+- +
++ + cntRead + +
+- +
++ + cntReset + +
+- +
++ + cntState + +
+- +
++ + cntCreate + +
+- +
++ + cntDelete + +
+- +
++ + cntDelete_i + +
+
diff --git a/ControlRealtime.html b/ControlRealtime.html index ecd04a19181..4d9f389b2e9 100644 --- a/ControlRealtime.html +++ b/ControlRealtime.html @@ -30,7 +30,7 @@ @@ -55,22 +55,29 @@Real-time Perf
+ ++ diff --git a/ControlReinitn.html b/ControlReinitn.html index b235295b0d9..6a7d7741789 100644 --- a/ControlReinitn.html +++ b/ControlReinitn.html @@ -30,7 +30,7 @@ diff --git a/ControlSensing.html b/ControlSensing.html index d3b7b03313e..54dfdb03fe0 100644 --- a/ControlSensing.html +++ b/ControlSensing.html @@ -30,7 +30,7 @@ @@ -38,7 +38,7 @@Sensing and Con @@ -67,6 +67,13 @@
TCL/TK widgets
++ + + flashtxt + +
++ @@ -83,7 +90,7 @@
TCL/TK widgets
@@ -91,6 +98,13 @@Keyboard and mouse sensing
+
- +
+ + joystick + +
+- @@ -110,7 +124,7 @@
Keyboard and mouse sensing
@@ -132,6 +146,13 @@Envelope followers
+- +
+ + lufs + +
+- +
- +
+ + vactrol + +
+@@ -155,7 +183,7 @@
Envelope followers
@@ -163,8 +191,8 @@Tempo and Pitch estimation
+ ++ + plltrack + +
++ ++ + ptrack + +
++ + + pvspitch + +
++ @@ -196,7 +245,7 @@
Tempo and Pitch estimation
@@ -204,22 +253,43 @@Tempo and Sequencing
- +
+- +
++ + metro2 + +
+- +
++ + metrobpm + +
+- +
@@ -237,6 +307,34 @@Tempo and Sequencing
+ ++ + sequ + +
++ ++ + splitrig + +
++ ++ + tempo + +
++ + + tempoval + +
+@@ -272,7 +370,7 @@ Tempo and Sequencing
@@ -292,12 +390,26 @@System
+
- +
++ + pcount + +
+- +
+ + pindex + +
+diff --git a/ControlStacks.html b/ControlStacks.html index 0c6c2974870..b7182a2a22e 100644 --- a/ControlStacks.html +++ b/ControlStacks.html @@ -30,10 +30,11 @@ +
These opcodes are deprecated.
Csound implements a global stack that can be accessed with the following opcodes:
diff --git a/ControlSubinstrument.html b/ControlSubinstrument.html index 1dde9f5d125..6649a9d168c 100644 --- a/ControlSubinstrument.html +++ b/ControlSubinstrument.html @@ -30,7 +30,7 @@ diff --git a/ControlTimeread.html b/ControlTimeread.html index 4e135bf5530..1bab6fb018f 100644 --- a/ControlTimeread.html +++ b/ControlTimeread.html @@ -30,7 +30,7 @@ @@ -39,6 +39,34 @@Time Reading
+
- + +
+- +
++ + elapsedtime + +
+- +
++ + eventcycles + +
+- +
+ + eventtime + +
+diff --git a/ControlTop.html b/ControlTop.html index a397c667ade..c408f2bb494 100644 --- a/ControlTop.html +++ b/ControlTop.html @@ -38,7 +38,7 @@
Instrument Control
diff --git a/CsBeats.html b/CsBeats.html index d8bd629fbc2..0d4d7a7d929 100644 --- a/CsBeats.html +++ b/CsBeats.html @@ -9,7 +9,7 @@ - + @@ -19,7 +19,7 @@Csbeats - @@ -48,7 +48,7 @@Prev +Prev Part III. Reference Next Csbeats
standard output.- +The opening of Bach's Goldberg variation number 3 can be coded as: @@ -271,21 +271,21 @@
Csbeats
- +A Complete Example
Here is a simple example of the csbeats score generator. It uses the file csbeats.csd.
- +- Example 1360. A simple example of csbeats. + Example 1378. A simple example of csbeats.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +diff --git a/FLbox.html b/FLbox.html index 608eaa9d4bb..c0715c85317 100644 --- a/FLbox.html +++ b/FLbox.html @@ -39,7 +39,7 @@<CsoundSynthesizer> <CsOptions> @@ -410,14 +410,14 @@A Complete Example
- Prev +Prev Up Next - More Advanced Examples +scale Home diff --git a/CscoreAdvancd.html b/CscoreAdvancd.html deleted file mode 100644 index dda98a534c5..00000000000 --- a/CscoreAdvancd.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - -More Advanced Examples - - - - - - - - - - -- -- - - diff --git a/CscoreCompile.html b/CscoreCompile.html deleted file mode 100644 index 9d1dca57684..00000000000 --- a/CscoreCompile.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - -- The following program demonstrates reading from two different input files. The idea is to switch between two 2-section scores, and write out the interleaved sections to a single output file. -
--
----#include "cscore.h" /* CSCORE_SWITCH.C */ -cscore(CSOUND* cs) /* callable from either Csound or standalone cscore */ -{ - EVLIST *a, *b; - FILE *fp1, *fp2; /* declare two scorefile stream pointers */ - fp1 = cscoreFileGetCurrent(cs); /* this is the command-line score */ - fp2 = cscoreFileOpen(cs, "score2.srt"); /* this is an additional score file */ - a = cscoreListGetSection(cs); /* read section from score 1 */ - cscoreListPut(cs, a); /* write it out as is */ - cscorePutString(cs, "s"); - cscoreFileSetCurrent(cs, fp2); - b = cscoreListGetSection(cs); /* read section from score 2 */ - cscoreListPut(cs, b); /* write it out as is */ - cscorePutString(cs, "s"); - cscoreListFreeEvents(cs, a); /* optional to reclaim space */ - cscoreListFreeEvents(cs, b); - cscoreFileSetCurrent(cs, fp1); - a = cscoreListGetSection(cs); /* read next section from score 1 */ - cscoreListPut(cs, a); /* write it out */ - cscorePutString(cs, "s"); - cscoreFileSetCurrent(cs, fp2); - b = cscoreListGetSection(cs); /* read next sect from score 2 */ - cscoreListPut(cs, b); /* write it out */ - cscorePutString(cs, "e"); -}--
-- Finally, we show how to take a literal, uninterpreted score file and imbue it with some expressive timing changes. The theory of composer-related metric pulses has been investigated at length by Manfred Clynes, and the following is in the spirit of his work. The strategy here is to first create an array of new onset times for every possible sixteenth-note onset, then to index into it so as to adjust the start and duration of each note of the input score to the interpreted time-points. This also shows how a Csound orchestra can be invoked repeatedly from a run-time score generator. -
--
----#include "cscore.h" /* CSCORE_PULSE.C */ - -/* program to apply interpretive durational pulse to */ -/* an existing score in 3/4 time, first beats on 0, 3, 6 ... */ - - -static float four[4] = { 1.05, 0.97, 1.03, 0.95 }; /* pulse width for 4's */ -static float three[3] = { 1.03, 1.05, .92 }; /* pulse width for 3's */ - - -cscore(CSOUND* cs) /* This example should be called from Csound */ -{ - EVLIST *a, *b; - EVENT *e, **ep; - float pulse16[4*4*4*4*3*4]; /* 16th-note array, 3/4 time, 256 measures */ - float acc16, acc1,inc1, acc3,inc3, acc12,inc12, acc48,inc48, acc192,inc192; - float *p = pulse16; - int n16, n1, n3, n12, n48, n192; - - /* fill the array with interpreted ontimes */ - for (acc192=0.,n192=0; n192<4; acc192+=192.*inc192,n192++) - for (acc48=acc192,inc192=four[n192],n48=0; n48<4; acc48+=48.*inc48,n48++) - for (acc12=acc48,inc48=inc192*four[n48],n12=0;n12<4; acc12+=12.*inc12,n12++) - for (acc3=acc12,inc12=inc48*four[n12],n3=0; n3<4; acc3+=3.*inc3,n3++) - for (acc1=acc3,inc3=inc12*four[n3],n1=0; n1<3; acc1+=inc1,n1++) - for (acc16=acc1,inc1=inc3*three[n1],n16=0; n16<4; acc16+=.25*inc1*four[n16],n16++) - *p++ = acc16; - - - /* for (p = pulse16, n1 = 48; n1--; p += 4) /* show vals & diffs */ - /* printf("%g %g %g %g %g %g %g %g\n", *p, *(p+1), *(p+2), *(p+3), - /* *(p+1)-*p, *(p+2)-*(p+1), *(p+3)-*(p+2), *(p+4)-*(p+3)); */ - - a = cscoreListGetSection(cs); /* read sect from tempo-warped score */ - b = cscoreListSeparateTWF(cs, a); /* separate warp & fn statements */ - cscoreListPlay(cs, b); /* and send these to performance */ - a = cscoreListAppendStringEvent(cs, a, "s"); /* append a sect statement to note list */ - cscoreListPlay(cs, a); /* play the note-list without interpretation */ - for (ep = &a->e[1], n1 = a->nevents; n1--; ) { /* now pulse-modifiy it */ - e = *ep++; - if (e->op == 'i') { - e->p[2] = pulse16[(int)(4. * e->p2orig)]; - e->p[3] = pulse16[(int)(4. * (e->p2orig + e->p3orig))] - e->p[2]; - } - } - - cscoreListPlay(cs, a); /* now play modified list */ -}--
-Compiling a Cscore Program - - - - - - - - - - -- --- A Cscore program can be invoked either as a standalone program or as part of Csound in between sorting the score and performing the score with the orchestra: -
--
----
cscore
[scorefilein
] [> scorefileout
]-
-- or -
--
----
csound
[-C] [otherflags
] [orchname
] [scorename
]-
-- Before trying to compile your own Cscore program, you will most likely want to obtain a copy of the Csound source code. Either download the latest source distribution for your platform or check out a copy of the csound5 module from Sourceforge CVS. There are several files in the sources that will help you. Within the
-examples/cscore/
directory are a number of examples of Cscore control programs, including all of the examples contained in this manual. And in thefrontends/cscore/
directory are the two files cscoremain.c and cscore.c. cscoremain.c contains a simple main function that performs all of the initialization that a standalone Cscore program needs to do before it calls your control function. This main “stub” initializes Csound, reads the commandline arguments, opens the input and output score files, and then calls a function cscore(). As described above, it is expected that you will write the cscore() function and provide it in another file. The file frontends/cscore/cscore.c shows the simplest example of a cscore() function that reads in a score of any length and writes it to the output unchanged. --So, to create a standalone program, write a control program as shown in the previous section. Let's assume that you saved this program in a file named “mycscore.c”. Next, you need to compile and link this program with the Csound library and cscoremain.c in order to create an exectuable by following the set of directions below that apply to your operating system. It will be helpful to already have some familiarity with the C compiler on your computer since the information below cannot be complete for all possible systems. -
-Linux and Unix
--The following commands assume that you have copied your file mycscore.c into the same directory as cscoremain.c, that you have opened a terminal to that same directory, and that you have previously installed a binary distribution of Csound that placed a library libcsound.a or libcsound.so into /usr/local/lib and the header files for the Csound API into /usr/local/include/csound. -
--To compile and link: -
----gcc mycscore.c cscoremain.c -o cscore -lcsound -L/usr/local/lib -I/usr/local/include/csound--To run (sending the results to standard output): -
---./cscore test.sco--It is possible that on some Unix systems, the C compiler will be named cc or something else other than gcc. -
-Windows
--Csound is usually compiled on Windows using the MinGW environment that makes GCC -- the same compiler used on Linux -- available using a Unix-like command shell (MSYS). Since pre-compiled libraries for Csound on Windows are built in this way, you may need to use MinGW as well to link to them. If you have built Csound using another compiler, then you should be able to build Cscore with that compiler as well. -
--Compiling standalone Cscore programs using MinGW should be similar to the procedure for Linux above with library and header paths changed appropriately for where Csound is installed on the Windows system. (Please feel free to contribute more detailed instructions here as the editor has been unable to test Cscore on a Windows machine). -
-OS X
--The following commands assume that you have copied your file mycscore.c into the same directory as cscoremain.c and that you have opened a terminal to that same directory. In addition, the Apple-supplied developer tools (including the GCC compiler) should be installed on your system and you should have previously installed a binary distribution of Csound that placed the CsoundLib framework into /Library/Frameworks. -
--Use this command compile and link. (You may get a warning about "multiple definitions of symbol _cscore"). -
----gcc cscore.c cscoremain.c -o cscore -framework CsoundLib -I/Library/Frameworks/CsoundLib.framework/Headers--To run (sending the results to standard output): -
---./cscore test.sco-MacOS 9
-- You will need CodeWarrior or some other development environment installed on your computer (MPW may work). Download the source code distribution for OS 9 (it will have a name like Csound5.05_OS9_src.smi.bin). -
-- If using CodeWarrior, find and open the project file "Cscore5.cw8.mcp" in the folder "Csound5.04-OS9-source:macintosh:Csound5Library:". This project file is configured to use the source files cscore.c and cscoremain_MacOS9.c from the csound5 source tree and the Csound5Lib shared library produced by compiling Csound with the "Csound5.cw8.mcp" project file. You should substitute your own Cscore program file for cscore.c and either compile Csound5Lib first or substitute a copy of the library in the project from the binary distribution of Csound for OS 9. The file cscoremain_MacOS9.c contains specialized code for configuring CodeWarrior's SIOUX console library and allows commandline arguments to be entered before the program is run. -
--Once you have the proper files included in the project window, click the "Make" button and CodeWarrior should produce an application named “Cscore”. When you run this application, it first displays a window allowing you to type in the arguments to the main function. You only need to type in the filename or pathname to the input score -- do not type in "cscore". The input file should be in the same folder as the application or else you will need to type a full or relative pathname to the file. Output will be displayed in the console window. You can use the Save command from the File menu before quitting if you wish. Alternatively, in the commandline dialog, you can choose to redirect the output to a file by clicking on the File button on the right side of the dialog. (Note that the console window can only display about 32,000 characters, so writing to a file is necessary for long scores). -
-Making Cscore usable from within Csound
-- To operate from Csound, first follow the instructions for compiling Csound (see Building Csound) according to the operating system that you are using. Once you have successfully built an unmodified Csound system, then substitute your own cscore() function for the one in the file Top/cscore_internal.c, and rebuild Csound. -
-- The resulting executable is your own special Csound, usable as above. The -C flag will invoke your Cscore program after the input score is sorted into “score.srt”. The details of what happens when you run Csound with the -C flag are given in the next section. -
-- Csound 5 also provides an additional way to run your own Cscore program from within Csound. Using the API, a host application can set a Cscore callback function, which is a function that Csound will call instead of using the built-in cscore() function. One advantage of this approach is that it is not necessary to recompile the entirety of Csound. Another benefit is that the host application can select at runtime from more than one Cscore function to designate as the callback. The disadvantage is that you need to write a host application. -
-- A simple approach to using a Cscore callback via the API would be to modify the standard Csound main program -- which is a simple Csound host -- contained in the file frontends/csound/csound_main.c. Adding a call to csoundSetCscoreCallback() after the call to csoundCreate() but before the call to csoundCompile() should do the job. Recompiling this file and linking to an existing Csound library will make a commandline version of Csound that works similarly to the one described above. Don't forget to use the -C flag. -
-Notes about score formats and run-time behavior
-- As stated previously, the input files to Cscore may be in original or time-warped and pre-sorted form; this modality will be preserved (section by section) in reading, processing, and writing scores. Standalone processing will most often use unwarped sources and create unwarped new files. When running from within Csound, the input score will arrive already warped and sorted, and can thus be sent directly (normally section by section) to the orchestra. One advantage of this method of using Cscore is that all of the syntactical conveniences of the full Csound score language may be used -- macros, arithmetic expressions, carry, ramp, etc. -- since the score will go through the "Carry, Tempo, Sort" phases of score processing before being passed to the user-supplied Cscore program. -
-- When running within Csound, a list of events can be conveyed to a Csound orchestra using cscoreListPlay(). There may be any number of cscoreListPlay() calls in a Cscore program. Each list so conveyed can be either time-warped or not, but each list must be in strict p2-chronological order (either from presorting or using cscoreListSort()). If there is no cscoreListPlay() in a Cscore module run from within Csound, all events written out (via cscorePutEvent(), cscorePutString(), or cscoreListPut()) are written to a new score in the current directory with the name “cscore.out”. Csound then invokes the score sorter again before sending this new score to the orchestra for performance. The final, sorted, output score is written to a file named “cscore.srt”. -
-- A standalone Cscore program will normally use the “put” commands to write into its output file. If a standalone Cscore program calls cscoreListPlay(), the events thus intended for performance will be sent to the output in the same way as if cscoreListPut() had been called instead. -
-- A note list sent by cscoreListPlay() for performance should be temporally distinct from subsequent note lists. No note-end should extend past the next list's start time, since cscoreListPlay() will complete each list before starting the next (i.e. like a Section marker that doesn't reset local time to zero). This is important when using cscoreListGetNext() or cscoreListGetUntil() to fetch and process score segments prior to performance, because these functions may only read part of an unsorted section. -
--- - diff --git a/CscoreMain.html b/CscoreMain.html deleted file mode 100644 index 0e1f6d63ea6..00000000000 --- a/CscoreMain.html +++ /dev/null @@ -1,390 +0,0 @@ - - - - - -
--
-- -Prev -- Up - -Next -- -Writing a Cscore Control Program -- Home - -More Advanced Examples -Writing a Cscore Control Program - - - - - - - - - - -- -- - - diff --git a/CscoreTop.html b/CscoreTop.html deleted file mode 100644 index fcc1000e393..00000000000 --- a/CscoreTop.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - -- The general format for a Cscore control program is: - -
----#include "cscore.h" -void cscore(CSOUND *cs) -{ - /* VARIABLE DECLARATIONS */ - /* PROGRAM BODY */ -}--
-- The include statement will define the event and list structures and all of the Cscore API functions for the program. The name of the user function needs to be cscore if it will be linked with the standard main program in
-cscormai.c
or linked as the internal Cscore routine for a personal Csound executable. This cscore() function receives one argument fromcscormai.c
or Csound -- CSOUND *cs -- which is a pointer to a Csound object. The pointer cs must be passed as the first parameter to every Cscore API function that the program calls. -- The following C program will read from a standard numeric score, up to (but not including) the first s or e statement, then write that data (unaltered) as output. -
--
----#include "cscore.h" -void cscore(CSOUND *cs) -{ - EVLIST *a; /* a is allowed to point to an event list */ - a = cscoreListGetSection(cs); /* read events in, return the list pointer */ - cscoreListPut(cs, a); /* write these events out (unchanged) */ - cscorePutString(cs, "e"); /* write the string e to output */ -}--
-- After execution of cscoreListGetSection(), the variable a points to a list of event addresses, each of which points to a stored event. We have used that same pointer to enable another list function -- cscoreListPut() -- to access and write out all of the events that were read. If we now define another symbol e to be an event pointer, then the statement - -
---e = a->e[4];-- - will set it to the contents of the 4th slot in the EVLIST structure, a. The contents is a pointer to an event, which is itself comprised of an array of parameter field values. Thus the term e->p[5] will mean the value of parameter field 5 of the 4th event in the EVLIST denoted by a. The program below will multiply the value of that pfield by 2 before writing it out. -
--
----#include "cscore.h" -void cscore(CSOUND *cs) -{ - EVENT *e; /* a pointer to an event */ - EVLIST *a; - a = cscoreListGetSection(cs); /* read a score as a list of events */ - e = a->e[4]; /* point to event 4 in event list a */ - e->p[5] *= 2; /* find pfield 5, multiply its value by 2 */ - cscoreListPut(cs, a); /* write out the list of events */ - cscorePutString(cs, "e"); /* add a "score end" statement */ -}--
-- Now consider the following score, in which p[5] contains frequency in Hz. - -
----f 1 0 257 10 1 -f 2 0 257 7 0 300 1 212 .8 -i 1 1 3 0 440 10000 -i 1 4 3 0 256 10000 -i 1 7 3 0 880 10000 -e--
-- If this score were given to the preceding main program, the resulting output would look like this: - -
----f 1 0 257 10 1 -f 2 0 257 7 0 300 1 212 .8 -i 1 1 3 0 440 10000 -i 1 4 3 0 512 10000 ; p[5] has become 512 instead of 256. -i 1 7 3 0 880 10000 -e--
-- Note that the 4th event is in fact the second note of the score. So far we have not distinguished between notes and function table setup in a numeric score. Both can be classed as events. Also note that our 4th event has been stored in e[4] of the structure. For compatibility with Csound pfield notation, we will ignore p[0] and e[0] of the event and list structures, storing p1 in p[1], event 1 in e[1], etc. The Cscore functions all adopt this convention. -
-- As an extension to the above, we could decide to use the same pointers a and e to examine each of the events in the list. Note that e was not set to the numeral 4, but to the location of the 4th slot in the list. To inspect p5 of the previous event in the list, we need only redefine e with the assignment - -
---e = a->e[3];-- -and reference the 5th slot of the pfield array using the expression - -
---e->p[5]--
-- More generally, we can use an integer variable as an index to the array e[], and access each event in sequence by using a loop and incrementing the index. The number of events stored in an EVLIST is contained in the nevents member of the struct. -
--
----int index; /* start with e[1] because e[0] is not used */ -for (index = 1; index <= a->nevents; index++) -{ - e = a->e[index]; - /* do something with e */ -}--
-- The above example starts with e[1] and increases the index each time through the loop (index++) until it is greater than a->nevents, the index of the last event in the list. The statements inside the for loop do execute a final time when index equals a->nevents. -
-- In the following program we will use the same input score. This time we will separate the ftable statements from the note statements. We will next write the three note-events stored in the list a to the output, then create a second score section consisting of the original pitch set and a transposed version of itself. This will bring about an octave doubling. -
-- Here, our index to the array is n and we increment n as part of a for block which iterates nevents times, allowing one statement to act upon the same pfield of each successive event. -
--
----#include "cscore.h" -void cscore(CSOUND *cs) -{ - EVENT *e, *f; - EVLIST *a, *b; - int n; - - a = cscoreListGetSection(cs); /* read score into event list "a" */ - b = cscoreListSeparateF(cs, a); /* separate f statements */ - cscoreListPut(cs, b); /* write f statements out to score */ - cscoreListFreeEvents(cs, b); /* and release the spaces used */ - e = cscoreDefineEvent(cs, "t 0 120"); /* define event for tempo statement */ - cscorePutEvent(cs, e); /* write tempo statement to score */ - cscoreListPut(cs, a); /* write the notes */ - cscorePutString(cs, "s"); /* section end */ - cscorePutEvent(cs, e); /* write tempo statement again */ - b = cscoreListCopyEvents(cs, a); /* make a copy of the notes in "a" */ - for (n = 1; n <= b->nevents; n++) /* iterate the following lines nevents times: */ - { - f = b->e[n]; - f->p[5] *= 0.5; /* transpose pitch down one octave */ - } - a = cscoreListAppendList(cs, a, b); /* now add these notes to original pitches */ - cscoreListPut(cs, a); - cscorePutString(cs, "e"); -}--
-- The output of this program is: -
--
----f 1 0 257 10 1 -f 2 0 257 7 0 300 1 212 .8 -t 0 120 -i 1 1 3 0 440 10000 -i 1 4 3 0 256 10000 -i 1 7 3 0 880 10000 -s -t 0 120 -i 1 1 3 0 440 10000 -i 1 4 3 0 256 10000 -i 1 7 3 0 880 10000 -i 1 1 3 0 220 10000 -i 1 4 3 0 128 10000 -i 1 7 3 0 440 10000 -e--
-- If the output is only being written to a file, then the unsorted order of the events is not a problem. The output is written to a file (or standard output) whenever the function cscoreListPut() is used. However, if this program were to be called during a Csound performance and the function cscoreListPlay() replaced cscoreListPut(), then the events would be sent to the orchestra instead of to a file and they should then be sorted beforehand by calling the function cscoreListSort(). The details of score output and playing when using Cscore from within Csound are described in the next section. -
-- Next we extend the above program by using the for loop to look at p[5] and p[6]. In the original score p[6] denotes amplitude. To create a diminuendo in the added lower octave, which is independent from the original set of notes, a variable called dim will be used. -
--
----#include "cscore.h" -void cscore(CSOUND *cs) -{ - EVENT *e, *f; - EVLIST *a, *b; - int n, dim; /* declare two integer variables */ - - a = cscoreListGetSection(cs); - b = cscoreListSeparateF(cs, a); - cscoreListPut(cs, b); - cscoreListFreeEvents(cs, b); - e = cscoreDefineEvent(cs, "t 0 120"); - cscorePutEvent(cs, e); - cscoreListPut(cs, a); - cscorePutString(cs, "s"); - cscorePutEvent(cs, e); /* write out another tempo statement */ - b = cscoreListCopyEvents(cs, a); - dim = 0; /* initialize dim to 0 */ - for (n = 1; n <= b->nevents; n++) - { - f = b->e[n]; - f->p[6] -= dim; /* subtract current value of dim */ - f->p[5] *= 0.5; /* transpose pitch down one octave */ - dim += 2000; /* increase dim for each note */ - } - a = cscoreListAppendList(cs, a, b); /* now add these notes to original pitches */ - cscoreListPut(cs, a); - cscorePutString(cs, "e"); -}--
-- Using the same input score again, the output from this program is: - -
----f 1 0 257 10 1 -f 2 0 257 7 0 300 1 212 .8 -t 0 120 -i 1 1 3 0 440 10000 -i 1 4 3 0 256 10000 -i 1 7 3 0 880 10000 -s -t 0 120 -i 1 1 3 0 440 10000 ; Three original notes at -i 1 4 3 0 256 10000 ; beats 1,4 and 7 with no dim. -i 1 7 3 0 880 10000 -i 1 1 3 0 220 10000 ; three notes transposed down one octave -i 1 4 3 0 128 8000 ; also at beats 1,4 and 7 with dim. -i 1 7 3 0 440 6000 -e--
-- In the following program the same three-note sequence will be repeated at various time intervals. The starting time of each group is determined by the values of the array cue. This time the dim will occur for each group of notes rather than each note. Note the position of the statement which increments the variable dim outside the inner for loop. -
--
----#include "cscore.h" -int cue[3] = {0,10,17}; /* declare an array of 3 integers */ -void cscore(CSOUND *cs) -{ - EVENT *e, *f; - EVLIST *a, *b; - int n, dim, cuecount; /* declare new variable cuecount */ - - a = cscoreListGetSection(cs); - b = cscoreListSeparateF(cs, a); - cscoreListPut(cs, b); - cscoreListFreeEvents(cs, b); - e = cscoreDefineEvent(cs, "t 0 120"); - cscorePutEvent(cs, e); - dim = 0; - for (cuecount = 0; cuecount <= 2; cuecount++) /* elements of cue are numbered 0, 1, 2 */ - { - for (n = 1; n <= a->nevents; n++) - { - f = a->e[n]; - f->p[6] -= dim; - f->p[2] += cue[cuecount]; /* add values of cue */ - } - printf("; diagnostic: cue = %d\n", cue[cuecount]); - dim += 2000; - cscoreListPut(cs, a); - } - cscorePutString(cs, "e"); -}--
-- Here the inner for loop looks at the events of list a (the notes) and the outer for loop looks at each repetition of the events of list a (the pitch group "cues"). This program also demonstrates a useful trouble-shooting device with the printf function. The semi-colon is first in the character string to produce a comment statement in the resulting score file. In this case the value of cue is being printed in the output to insure that the program is taking the proper array member at the proper time. When output data is wrong or error messages are encountered, the printf function can help to pinpoint the problem. -
-- Using the same input file, the C program above will generate the following score. Can you determine why the last set of notes starts at the wrong time and how to correct the problem? -
--
----f 1 0 257 10 1 -f 2 0 257 7 0 300 1 212 .8 -t 0 120 -; diagnostic: cue = 0 -i 1 1 3 0 440 10000 -i 1 4 3 0 256 10000 -i 1 7 3 0 880 10000 -; diagnostic: cue = 10 -i 1 11 3 0 440 8000 -i 1 14 3 0 256 8000 -i 1 17 3 0 880 8000 -; diagnostic: cue = 17 -i 1 28 3 0 440 4000 -i 1 31 3 0 256 4000 -i 1 34 3 0 880 4000 -e--
-Cscore - - - - - - - - - - -- -- - - diff --git a/DeprecatedTop.html b/DeprecatedTop.html index 420cbaecb2f..6cd0f877fd2 100644 --- a/DeprecatedTop.html +++ b/DeprecatedTop.html @@ -10,7 +10,7 @@ - +- - Cscore is an API (application programming interface) for generating and manipulating numeric score files. It is a part of the larger Csound API and includes a number of functions that can be called by a user-designed program written in the C language. Cscore can be invoked either as a standalone score preprocessor, or as part of a Csound performance by including the -C flag in its arguments: -
--
----
cscore
[scorefilein
] [> scorefileout
]-
-(where cscore is the name of your user-written program), or
--
----
csound
[-C] [otherflags
] [orchname
] [scorename
]-
-- The available API functions augment the C language library functions; they can read either standard numeric scores or pre-sorted score files, can massage and expand the data in various ways, then make it available for performance by a Csound orchestra. -
-- The user-written control program is written in C, and is compiled and linked to the Csound library (or the csound commandline program) by the user. It is not essential to know the C language well to write this program, since the function calls have a simple syntax, and are powerful enough to do most of the complicated work. Additional power can come from C later as the need arises. -
-- The following sections explain all of the steps needed to make use of Cscore: -
----
-- Events, Lists, and Operations - Explains the syntax of Cscore functions and data structures.
-- Writing a Cscore Control Program - Illustrates by example how to write your own control program.
-- Compiling a Cscore Program - Outlines the steps for compiling and linking with the Csound library.
-- More Advanced Examples - Addresses advanced issues such as multiple input scores and the details of running Cscore inside of a Csound performance.
-- --- An event in Cscore is equivalent to one statement of a standard numeric score or a time-warped score (the format in which Csound writes a sorted score -- see any score.srt), and is stored internally in time-warped format. It is important to note that when Cscore is used in standalone-mode, it cannot understand any of the non-numeric "conveniences" that Csound allows in the input score format. Therefore, scores making use of features such as carry, ramp, expressions, and others will have to either be sorted first with the scsort utility or used with a modified Csound executable that contains the user's Cscore program. Score opcodes with macro arguments (r, m, n, and {}) are not understood. -
--Score events are each read in from an existing score file and stored in a C structure. The structures main components are an opcode and an array of pfield values. Cscore handles reading the events and storing them in memory for you. The format of the structure starts as follows: -
--
----typedef struct { - CSHDR h; /* space-managing header */ - char *strarg; /* address of optional string argument */ - char op; /* opcode-t, w, f, i, a, s or e */ - short pcnt; - MYFLT p2orig; /* unwarped p2, p3 */ - MYFLT p3orig; - MYFLT p[1]; /* array of pfields p0, p1, p2 ... */ -} EVENT;--
--MYFLT is either the C type float or double depending on how your copy of the Csound library was compiled. You should just declare any floating-point variables as MYFLT in your user program for compatibility. -
-- Any Cscore function that creates, reads, or copies an event will return a pointer to the storage structure holding the event data. The event pointer can be used to access any component of the structure, in the form of e->op or e->p[n]. Each newly stored event will give rise to a new pointer, and a sequence of new events will generate a sequence of distinct pointers that must themselves be stored. Groups of event pointers are stored in an event list, which has its own structure: -
--
----typedef struct { - CSHDR h; - int nslots; /* max events in this event list */ - int nevents; /* number of events present */ - EVENT *e[1]; /* array of event pointers e0, e1, e2.. */ -} EVLIST;--
-- Any Cscore function that creates or modifies a list will return a pointer to the new list. The list pointer can be used to access any of its component event pointers, in the form of a->e[n]. Event pointers and list pointers are thus primary tools for manipulating the data of a score file. Pointers and lists of pointers can be copied and reordered without modifying the data values they refer to. This means that notes and phrases can be copied and manipulated from a high level of control. Alternatively, the data within an event or group of events can be modified without changing the event or list pointers. The Cscore API functions enable scores to be created and manipulated in this way. -
--With Csound 5, the names of all of the Cscore API functions have changed to be more explicit. In addition, each function now requires a pointer to a CSOUND object as its first argument. The structure of the CSOUND object is unimportant (and indeed cannot be modified in a user program). How to obtain this CSOUND pointer will be shown in the next section. The Cscore functions and data structures are available in the
-cscore.h
header file, which you must include in your program code before you can you use them. --The names of the Cscore functions specify whether they operate on single events or event lists. In the following summary of available function calls, some simple naming conventions are used: -
--
----The symbol cs is a pointer to a CSOUND object (CSOUND *); -The symbols e, f are pointers to events (notes); -The symbols a, b are pointers to lists (arrays) of such events; -The symbol n is an integer parameter of type int; -"..." indicates a string parameter (either a constant or variable of type char *); -The symbol fp is a score input stream file pointer (FILE *); - -calling syntax description --------------- ----------- -/* Functions for working with single events */ -e = cscoreCreateEvent(cs, n); create a blank event with n pfields -e = cscoreDefineEvent(cs, "..."); defines an event as per the character string ... -e = cscoreCopyEvent(cs, f); make a new copy of event f -e = cscoreGetEvent(cs); read the next event in the score input file - cscorePutEvent(cs, e); write event e to the score output file - cscorePutString(cs, "..."); write the string-defined event to score output - -/* Functions for working with event lists */ -a = cscoreListCreate(cs, n); create an empty event list with n slots -a = cscoreListAppendEvent(cs, a, e); append event e to list a -a = cscoreListAppendStringEvent(cs, a, "..."); append a string-defined event to list a; -a = cscoreListCopy(cs, b); copy the list b (but not the events) -a = cscoreListCopyEvents(cs, b); copy the events of b, making a new list -a = cscoreListGetSection(cs); read all events from score input, up to next s or e -a = cscoreListGetNext(cs, nbeats); read next nbeats beats from score input (nbeats is MYFLT) -a = cscoreListGetUntil(cs, beatno); read all events from score input up to beat beatno (MYFLT) -a = cscoreListSeparateF(cs, b); separate the f statements from list b into list a -a = cscoreListSeparateTWF(cs, b); separate the t,w & f statements from list b into list a -a = cscoreListAppendList(cs, a, b); append the list b onto the list a -a = cscoreListConcatenate(cs, a, b); concatenate (append) the list b onto the list a (same as previous) - cscoreListSort(cs, a); sort the list a into chronological order by p[2] -n = cscoreListCount(cs, a); returns the number of events in list a -a = cscoreListExtractInstruments(cs, b, "..."); extract notes of instruments ... (no new events) -a = cscoreListExtractTime(cs, b, from, to); extract notes of time-span, creating new events (from and to are MYFLT) - cscoreListPut(cs, a); write the events of list a to the score output file - cscoreListPlay(cs, a); send events of list a to the Csound orchestra for - immediate performance (or print events if no orchestra) -/* Functions for reclaiming memory */ - cscoreFreeEvent(cs, e); release the space of event e - cscoreListFree(cs, a); release the space of list a (but not the events) - cscoreListFreeEvents(cs, a); release the events of list a, and the list space - -/* Functions for working with multiple input score files */ -fp = cscoreFileGetCurrent(cs); get the currently active input scorefile pointer - (initially finds the command-line input scorefile pointer) -fp = cscoreFileOpen(cs, "filename"); open another input scorefile (maximum of 5) - cscoreFileSetCurrent(cs, fp); make fp the currently active scorefile pointer - cscoreFileClose(cs, fp); close the scorefile relating to FILE *fp--
--Under Csound 4, the function names and parameters were as follows: -
--
----calling syntax description --------------- ----------- -e = createv(n); create a blank event with n pfields -e = defev("..."); defines an event as per the character string ... -e = copyev(f); make a new copy of event f -e = getev(); read the next event in the score input file -putev(e); write event e to the score output file -putstr("..."); write the string-defined event to score output -a = lcreat(n); create an empty event list with n slots - int n; -a = lappev(a,e); append event e to list a -a = lappstrev(a,"..."); append a string-defined event to list a; -a = lcopy(b); copy the list b (but not the events) -a = lcopyev(b); copy the events of b, making a new list -a = lget(); read all events from score input, up to next s or e -a = lgetnext(nbeats); read next nbeats beats from score input - float nbeats; -a = lgetuntil(beatno); read all events from score input up to beat beatno - float beatno; -a = lsepf(b); separate the f statements from list b into list a -a = lseptwf(b); separate the t,w & f statements from list b into list a -a = lcat(a,b); concatenate (append) the list b onto the list a -lsort(a); sort the list a into chronological order by p[2] -a = lxins(b,"..."); extract notes of instruments ... (no new events) -a = lxtimev(b,from,to); extract notes of time-span, creating new events - float from, to; -lput(a); write the events of list a to the score output file -lplay(a); send events of list a to the Csound orchestra for - immediate performance (or print events if no orchestra) -relev(e); release the space of event e -lrel(a); release the space of list a (but not the events) -lrelev(a); release the events of list a, and the list space -fp = getcurfp(); get the currently active input scorefile pointer - (initially finds the command-line input scorefile pointer) -fp = filopen("filename"); open another input scorefile (maximum of 5) -setcurfp(fp); make fp the currently active scorefile pointer -filclose(fp); close the scorefile relating to FILE *fp--
-
@@ -58,14 +58,14 @@Deprecate
Up -Next +Next cudasliding Home -abetarand +array
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,16 +49,16 @@
Description
- +Syntax
ihandle FLbox "label", itype, ifont, isize, iwidth, iheight, ix, iy [, image]
ihandle FLbox istr, itype, ifont, isize, iwidth, iheight, ix, iy [, image]
- +Initialization
- ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLbox and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.) + ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLbox and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.)
“label” -- a double-quoted string containing some user-provided text, placed near corresponding widget. @@ -266,7 +266,7 @@
Initialization
- +Performance
FLbox is useful to show some text in a window. The text is bounded by a box, whose aspect depends on itype argument. @@ -276,21 +276,21 @@
Performance
- +Examples
Here is an example of the FLbox opcode. It uses the file FLbox.csd.
- +- Example 310. Example of the FLbox opcode. + Example 312. Example of the FLbox opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLbutBank.html b/FLbutBank.html index f909750e607..6653e54c71a 100644 --- a/FLbutBank.html +++ b/FLbutBank.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,16 +49,16 @@
Description
- +Syntax
kout, ihandle FLbutBank itype, inumx, inumy, iwidth, iheight, ix, iy, \ iopcode [, kp1] [, kp2] [, kp3] [, kp4] [, kp5] [....] [, kpN]
- +Initialization
- ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLbutBank and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.) + ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLbutBank and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.)
itype -- an integer number denoting the appearance of the widget. The valid numbers are: @@ -99,7 +99,7 @@
Initialization
- +Performance
kout -- output value @@ -135,28 +135,28 @@
Performance
FLbutBank not only outputs a value but can also activate (or schedule) an instrument provided by the user each time a button is pressed. If the iopcode argument is set to a negative number, no instrument is activated so this feature is optional. In order to activate an instrument, iopcode must be set to 0 or to 105 (the ascii code of character “i”, referring to the i score opcode). P-fields of the activated instrument are kp1 (instrument number), kp2 (action time), kp3 (duration) and so on with user p-fields.- The itype argument sets the type of buttons identically to the FLbutton opcode. By adding 10 to the itype argument (i.e. by setting 11 for type 1, 12 for type 2, 13 for type 3 and 14 for type 4), it is possible to skip the current FLbutBank value when getting/setting snapshots (see General FLTK Widget-related Opcodes). You can also add 10 to "plastic" button types (31 for type 1, 32 for type 2, etc.) + The itype argument sets the type of buttons identically to the FLbutton opcode. By adding 10 to the itype argument (i.e. by setting 11 for type 1, 12 for type 2, 13 for type 3 and 14 for type 4), it is possible to skip the current FLbutBank value when getting/setting snapshots (see General FLTK Widget-related Opcodes). You can also add 10 to "plastic" button types (31 for type 1, 32 for type 2, etc.)
FLbutBank is very useful to retrieve snapshots.
- +Examples
Here is an example of the FLbutBank opcode. It uses the file FLbutBank.csd.
- +- Example 311. Example of the FLbutBank opcode. + Example 313. Example of the FLbutBank opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLbutton.html b/FLbutton.html index edf3f3de5d8..2840b8a274a 100644 --- a/FLbutton.html +++ b/FLbutton.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,16 +49,16 @@
Description
- +Syntax
kout, ihandle FLbutton "label", ion, ioff, itype, iwidth, iheight, ix, \ iy, iopcode [, kp1] [, kp2] [, kp3] [, kp4] [, kp5] [....] [, kpN]
- +Initialization
- ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLbutton and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.) + ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLbutton and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.)
“label” -- a double-quoted string containing some user-provided text, placed near the corresponding widget. @@ -158,7 +158,7 @@
Initialization
- +Examples
- Here is an example of the FLbutton opcode. It uses the file FLbutton.csd, and beats.wav. + Here is an example of the FLbutton opcode. It uses the file FLbutton.csd, and drumsMlp.wav.
- +- Example 312. Example of the FLbutton opcode. + Example 314. Example of the FLbutton opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +<CsoundSynthesizer> <CsOptions> @@ -258,7 +258,7 @@Examples
maxalloc insnum, icount instr 1 - asig diskin2 "beats.wav", p4, 0, 1 + asig diskin2 "drumsMlp.wav", p4, 0, 1 outs asig, asig endin @@ -285,7 +285,7 @@Examples
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLcloseButton.html b/FLcloseButton.html index c470ffa6327..f0b9c7ab970 100644 --- a/FLcloseButton.html +++ b/FLcloseButton.html @@ -40,7 +40,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -51,15 +51,15 @@
Description
- +Initialization
- ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLcloseButton and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.) + ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLcloseButton and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.)
“label” -- a double-quoted string containing some user-provided text, placed near the corresponding widget. @@ -112,7 +112,7 @@
Initialization
- +Credits
Author: Steven Yi
New in version 5.05
diff --git a/FLcolor.html b/FLcolor.html index 40ba0ffce1a..f75c5e426d7 100644 --- a/FLcolor.html +++ b/FLcolor.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ired -- The red color of the target widget. The range for each RGB component is 0-255 @@ -76,7 +76,7 @@
Initialization
- +Performance
These opcodes modify the appearance of other widgets. There are @@ -93,7 +93,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLcolor2.html b/FLcolor2.html index aaccce6b5ce..e4815577238 100644 --- a/FLcolor2.html +++ b/FLcolor2.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ired -- The red color of the target widget. The range for each RGB component is 0-255 @@ -67,7 +67,7 @@
Initialization
- +Performance
These opcodes modify the appearance of other widgets. There are @@ -78,7 +78,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLcount.html b/FLcount.html index 9561d98821e..d7ab6bb41a3 100644 --- a/FLcount.html +++ b/FLcount.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,13 +49,13 @@
Description
- +Syntax
kout, ihandle FLcount "label", imin, imax, istep1, istep2, itype, \ iwidth, iheight, ix, iy, iopcode [, kp1] [, kp2] [, kp3] [...] [, kpN]
- +Initialization
ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. Used by further opcodes that changes some valuator's properties. It is automatically set by the corresponding valuator. @@ -95,7 +95,7 @@
Initialization
- +Examples
Here is an example of the FLcount opcode. It uses the file FLcount.csd.
- +- Example 313. Example of the FLcount opcode. + Example 315. Example of the FLcount opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Initialization
ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see - Modifying FLTK Widget Appearance). It is automatically output by FLexecButton. + Modifying FLTK Widget Appearance). It is automatically output by FLexecButton.
“command” -- a double-quoted string containing a command to execute. @@ -105,21 +105,21 @@
Initialization
- +Examples
Here is an example of the FLexecButton opcode. It uses the file FLexecButton.csd.
- +- Example 314. Example of the FLexecButton opcode. + Example 316. Example of the FLexecButton opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +<CsoundSynthesizer> @@ -150,8 +150,8 @@Examples
;;; set FLexecButton colour FLcolor 255, 255, 0 ;;; when this button is pressed, fourier analysis is performed on the file -;;; "beats.wav", producing the analysis file "beats.pvx" - gipvoc FLexecButton "csound -U pvanal beats.wav beats.pvx", 60, 20, 20, 20 +;;; "drumsMlp.wav", producing the analysis file "beats.pvx" + gipvoc FLexecButton "csound -U pvanal drumsMlp.wav beats.pvx", 60, 20, 20, 20 ;;; set FLexecButton text FLsetText "PVOC", gipvoc ;;; when this button is pressed, instr 10000 is called, exiting @@ -249,7 +249,7 @@Examples
- +Credits
Author: Steven Yi
Example by: Jonathan Murphy
diff --git a/FLgetsnap.html b/FLgetsnap.html index 3e716babc97..7d28316deaa 100644 --- a/FLgetsnap.html +++ b/FLgetsnap.html @@ -39,7 +39,7 @@
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLgroup.html b/FLgroup.html index e48a3b5ac9e..c536e23bd88 100644 --- a/FLgroup.html +++ b/FLgroup.html @@ -39,7 +39,7 @@
- +Performance
Containers are useful to format the graphic appearance of the widgets. The most important container is FLpanel, that actually creates a window. It can be filled with other containers and/or valuators or other kinds of widgets. @@ -139,7 +139,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLgroupEnd.html b/FLgroupEnd.html index 41914a8b31d..11d677c5236 100644 --- a/FLgroupEnd.html +++ b/FLgroupEnd.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,7 +49,7 @@
Description
- +Performance
Containers are useful to format the graphic appearance of the widgets. The most important container is FLpanel, that actually creates a window. It can be filled with other containers and/or valuators or other kinds of widgets. @@ -68,7 +68,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLgroup_end.html b/FLgroup_end.html index fc820464c09..b1bf3d64fd9 100644 --- a/FLgroup_end.html +++ b/FLgroup_end.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -51,7 +51,7 @@
Description
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLhide.html b/FLhide.html index c846fcda8bb..191c795a34a 100644 --- a/FLhide.html +++ b/FLhide.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,26 +49,26 @@
Description
- +Initialization
- ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). + ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance).
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLhvsBox.html b/FLhvsBox.html index 225eae87177..c65558056df 100644 --- a/FLhvsBox.html +++ b/FLhvsBox.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ihandle – an integer number used a univocally-defined handle for identifying a specific HVS box (see below). @@ -70,7 +70,7 @@
Initialization
- +Performance
FLhvsBox is a widget able to visualize current position of the HVS cursor in an HVS box (i.e. a squared area containing a grid). The number of horizontal and vertical lines of the grid can be defined with the inumlinesX, inumlinesY arguments. This opcode has to be declared inside an FLpanel - FLpanelEnd block. See the entry for hvs2 for an example of usage of FLhvsBox. @@ -80,7 +80,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLhvsBoxSetValue.html b/FLhvsBoxSetValue.html index 3ac8e14d5dc..47cd68c5223 100644 --- a/FLhvsBoxSetValue.html +++ b/FLhvsBoxSetValue.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,19 +49,19 @@
Description
- +Initialization
ihandle – an integer number used a univocally-defined handle for identifying a specific HVS box (see below).
- +Performance
kx, ky– the coordinates of the HVS cursor position to be set. @@ -73,7 +73,7 @@
Performance
See the entry for hvs2 for an example of usage of FLhvsBoxSetValue.- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLjoy.html b/FLjoy.html index 6cd4f8ea54e..224b60a55bd 100644 --- a/FLjoy.html +++ b/FLjoy.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,13 +49,13 @@
Description
- +Syntax
koutx, kouty, ihandlex, ihandley FLjoy "label", iminx, imaxx, iminy, \ imaxy, iexpx, iexpy, idispx, idispy, iwidth, iheight, ix, iy
- +Initialization
ihandlex -- a handle value (an integer number) that unequivocally references a corresponding widget. Used by further opcodes that changes some valuator's properties. It is automatically set by the corresponding valuator. @@ -157,7 +157,7 @@
Initialization
- +Examples
Here is an example of the FLjoy opcode. It uses the file FLjoy.csd.
- +- Example 315. Example of the FLjoy opcode. + Example 317. Example of the FLjoy opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLkeyIn.html b/FLkeyIn.html index 56ba90c14ad..97bbadc38a9 100644 --- a/FLkeyIn.html +++ b/FLkeyIn.html @@ -39,7 +39,7 @@
- +Examples
Here is an example of the FLkeyIn opcode. It uses the file FLkeyIn.csd.
- +- Example 316. Example of the FLkeyIn opcode. + Example 318. Example of the FLkeyIn opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLknob.html b/FLknob.html index 3d774c1b524..7ae2d22a05f 100644 --- a/FLknob.html +++ b/FLknob.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,16 +49,16 @@
Description
- +Syntax
kout, ihandle FLknob "label", imin, imax, iexp, itype, idisp, iwidth, \ ix, iy [, icursorsize]
- +Initialization
- ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically utput by FLknob and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.) + ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically utput by FLknob and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.)
“label” -- a double-quoted string containing some user-provided text, placed near the corresponding widget. @@ -189,7 +189,7 @@
Initialization
- +Examples
Here is an example of the FLknob opcode. It uses the file FLknob.csd.
- +- Example 317. Example of the FLknob opcode. + Example 319. Example of the FLknob opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +<CsoundSynthesizer> <CsOptions> @@ -293,13 +293,13 @@Examples
- +- Example 318. More complex example of the FLknob opcode. + Example 320. More complex example of the FLknob opcode.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLlabel.html b/FLlabel.html index 238c3449fd9..c9760206403 100644 --- a/FLlabel.html +++ b/FLlabel.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
isize -- size of the font of the target widget. Normal values are in the order of 15. Greater numbers enlarge font size, while smaller numbers reduce it. @@ -171,7 +171,7 @@
Initialization
- +Performance
FLlabel modifies a set of parameters related to the text label appearance of a widget, i.e. size, font, alignment and color of corresponding text. This opcode affects (almost) all widgets defined next its location. A user can put several instances of FLlabel in front of each widget he intends to modify. However, to modify a particular widget, it is better to use the opcode belonging to the second type (i.e. those containing the ihandle argument). @@ -181,7 +181,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLloadsnap.html b/FLloadsnap.html index eb500bbc9cf..b8eac0d200b 100644 --- a/FLloadsnap.html +++ b/FLloadsnap.html @@ -39,7 +39,7 @@
- +Performance
FLloadsnap loads all snapshots contained in filename into the memory bank of current orchestra. @@ -91,7 +91,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLmouse.html b/FLmouse.html index 357cc7fa06d..af1f529690b 100644 --- a/FLmouse.html +++ b/FLmouse.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
imode – (optional, default = 0) Determines the mode for mouse location reporting. @@ -76,7 +76,7 @@
Initialization
- +Performance
kx, ky – the mouse coordinates, whose range depends on the imode argument (see above). @@ -88,21 +88,21 @@
Performance
- +Examples
Here is an example of the FLmouse opcode. It uses the file FLmouse.csd.
- +- Example 319. Example of the FLmouse opcode. + Example 321. Example of the FLmouse opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLpack.html b/FLpack.html index f9571c8dc37..6edf995b6ba 100644 --- a/FLpack.html +++ b/FLpack.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Performance
FLpack provides the functionality of compressing and aligning widgets. @@ -138,7 +138,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLpackEnd.html b/FLpackEnd.html index 2df82ef55c7..4a2d273f634 100644 --- a/FLpackEnd.html +++ b/FLpackEnd.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,7 +49,7 @@
Description
- +Performance
Containers are useful to format the graphic appearance of the widgets. The most important container is FLpanel, that actually creates a window. It can be filled with other containers and/or valuators or other kinds of widgets. @@ -68,7 +68,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLpack_end.html b/FLpack_end.html index 4e60ed36915..9dd9e97bd68 100644 --- a/FLpack_end.html +++ b/FLpack_end.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -50,7 +50,7 @@
Description
for compatibility. See FLpackEnd- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLpanel.html b/FLpanel.html index 20f69a6b390..a570c573cf9 100644 --- a/FLpanel.html +++ b/FLpanel.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
“label” -- a double-quoted string containing some user-provided text, placed near the corresponding widget. @@ -113,7 +113,7 @@
Initialization
- +Performance
Containers are useful to format the graphic appearance of the widgets. The most important container is FLpanel, that actually creates a window. It can be filled with other containers and/or valuators or other kinds of widgets. @@ -151,21 +151,21 @@
Performance
- +Examples
Here is an example of the FLpanel opcode. It uses the file FLpanel.csd.
- +- Example 326. Example of the FLpanel opcode. + Example 329. Example of the FLpanel opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLpanelEnd.html b/FLpanelEnd.html index b88e6332d11..31fe34ac1a0 100644 --- a/FLpanelEnd.html +++ b/FLpanelEnd.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,7 +49,7 @@
Description
- +Performance
Containers are useful to format the graphic appearance of the widgets. The most important container is FLpanel, that actually creates a window. It can be filled with other containers and/or valuators or other kinds of widgets. @@ -68,7 +68,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLpanel_end.html b/FLpanel_end.html index 742e0292eb5..0ccd70b633e 100644 --- a/FLpanel_end.html +++ b/FLpanel_end.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -52,7 +52,7 @@
Description
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLprintk.html b/FLprintk.html index 80c6fabd749..abbb09b51a0 100644 --- a/FLprintk.html +++ b/FLprintk.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
itime -- how much time in seconds is to elapse between updated displays. @@ -67,7 +67,7 @@
Initialization
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLprintk2.html b/FLprintk2.html index d8a16b82fa2..22832775f2d 100644 --- a/FLprintk2.html +++ b/FLprintk2.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,19 +49,19 @@
Description
- +Initialization
idisp -- a handle value that was output from a previous instance of the FLvalue opcode to display the current value of the current valuator in the FLvalue widget itself. If the user doesn't want to use this feature that displays current values, it must be set to a negative number by the user.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLroller.html b/FLroller.html index e05868e0074..9c0ec596a60 100644 --- a/FLroller.html +++ b/FLroller.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,16 +49,16 @@
Description
- +Syntax
kout, ihandle FLroller "label", imin, imax, istep, iexp, itype, idisp, \ iwidth, iheight, ix, iy
- +Initialization
- ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLroller and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.) + ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLroller and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.)
“label” -- a double-quoted string containing some user-provided text, placed near the corresponding widget. @@ -147,7 +147,7 @@
Initialization
- +Examples
Here is an example of the FLroller opcode. It uses the file FLroller.csd.
- +- Example 327. Example of the FLroller opcode. + Example 330. Example of the FLroller opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLrun.html b/FLrun.html index 7db86d584ba..a9188fbd211 100644 --- a/FLrun.html +++ b/FLrun.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,7 +49,7 @@
Description
- +Performance
This opcode must be located at the end of all widget declarations. It has no arguments, and its purpose is to start the thread related to widgets. Widgets would not operate if FLrun is missing.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsavesnap.html b/FLsavesnap.html index 77c96202639..6a7b3852242 100644 --- a/FLsavesnap.html +++ b/FLsavesnap.html @@ -39,7 +39,7 @@
- +Performance
FLsavesnap saves all snapshots currently created (i.e. the entire memory bank) into a file whose name is filename. Since the file is a text file, snapshot values can also be edited manually by means of a text editor. The format of the data stored in the file is the following (at present time, this could be changed in next Csound version): @@ -154,21 +154,21 @@
Performance
- +Examples
Here is a simple example of the FLTK snapshot saving. It uses the file FLsavesnap_simple.csd.
- +- Example 328. Example of FLTK snapshot saving. + Example 331. Example of FLTK snapshot saving.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +<CsoundSynthesizer> <CsOptions> @@ -258,14 +258,14 @@Examples
- +- Example 329. Example of FLTK snapshot saving using snapshot groups. + Example 332. Example of FLTK snapshot saving using snapshot groups.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLscroll.html b/FLscroll.html index b3f9b66d86f..c469df37056 100644 --- a/FLscroll.html +++ b/FLscroll.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Performance
Containers are useful to format the graphic appearance of the widgets. The most important container is FLpanel, that actually creates a window. It can be filled with other containers and/or valuators or other kinds of widgets. @@ -108,21 +108,21 @@
Performance
- +Examples
Here is an example of the FLscroll opcode. It uses the file FLscroll.csd.
- +- Example 330. Example of the FLscroll opcode. + Example 333. Example of the FLscroll opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLscrollEnd.html b/FLscrollEnd.html index c8a1e75610c..be68c7189fe 100644 --- a/FLscrollEnd.html +++ b/FLscrollEnd.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,7 +49,7 @@
Description
- +Performance
Containers are useful to format the graphic appearance of the widgets. The most important container is FLpanel, that actually creates a window. It can be filled with other containers and/or valuators or other kinds of widgets. @@ -68,7 +68,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLscroll_end.html b/FLscroll_end.html index 1aa11bd8f15..34df4cdb67d 100644 --- a/FLscroll_end.html +++ b/FLscroll_end.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -52,7 +52,7 @@
Description
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetAlign.html b/FLsetAlign.html index 884135f654c..3482a2cfe5e 100644 --- a/FLsetAlign.html +++ b/FLsetAlign.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ialign -- sets the alignment of the label text of widgets. @@ -101,7 +101,7 @@
Initialization
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetBox.html b/FLsetBox.html index 03fe32c9525..2ef300e5103 100644 --- a/FLsetBox.html +++ b/FLsetBox.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
itype -- an integer number that modify the appearance of the target widget. @@ -131,7 +131,7 @@
Initialization
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetColor.html b/FLsetColor.html index 6afa89ed25b..799eeba4251 100644 --- a/FLsetColor.html +++ b/FLsetColor.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ired -- The red color of the target widget. The range for each RGB component is 0-255 @@ -70,21 +70,21 @@
Initialization
- +Examples
Here is an example of the FLsetcolor opcode. It uses the file FLsetcolor.csd.
- +- Example 331. Example of the FLsetcolor opcode. + Example 334. Example of the FLsetcolor opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetColor2.html b/FLsetColor2.html index b8e09f8ba84..c7305b3682a 100644 --- a/FLsetColor2.html +++ b/FLsetColor2.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ired -- The red color of the target widget. The range for each RGB component is 0-255 @@ -70,7 +70,7 @@
Initialization
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetFont.html b/FLsetFont.html index c1845cf61f3..f222e9d3ef7 100644 --- a/FLsetFont.html +++ b/FLsetFont.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ifont -- sets the the font type of the label of a widget. @@ -122,7 +122,7 @@
Initialization
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetPosition.html b/FLsetPosition.html index 6ed7ca14a78..ab0874e4529 100644 --- a/FLsetPosition.html +++ b/FLsetPosition.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ix -- horizontal position of upper left corner of the valuator, relative to the upper left corner of corresponding window (expressed in pixels). @@ -67,7 +67,7 @@
Initialization
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetSize.html b/FLsetSize.html index d34b2d3677d..b4dfde5f399 100644 --- a/FLsetSize.html +++ b/FLsetSize.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetSnapGroup.html b/FLsetSnapGroup.html index 145b905268e..19242f4f47a 100644 --- a/FLsetSnapGroup.html +++ b/FLsetSnapGroup.html @@ -39,7 +39,7 @@
- +Performance
For purposes of snapshot saving, widgets can be grouped, so that snapshots affect only a defined group of widgets. The opcode FLsetSnapGroup is used to specify the group for all widgets declared after it, until the next FLsetSnapGroup statement. @@ -88,7 +88,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetText.html b/FLsetText.html index 4269c61b3e9..3d34239ad5b 100644 --- a/FLsetText.html +++ b/FLsetText.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,13 +49,13 @@
Description
- +Initialization
“itext” -- a double-quoted string denoting the text of the label of the widget. @@ -68,21 +68,21 @@
Initialization
- +Examples
Here is an example of the FLsetText opcode. It uses the file FLsetText.csd.
- +- Example 332. Example of the FLsetText opcode. + Example 335. Example of the FLsetText opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetTextColor.html b/FLsetTextColor.html index bc37f1cad46..3384129eeb3 100644 --- a/FLsetTextColor.html +++ b/FLsetTextColor.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ired -- The red color of the target widget. The range for each RGB component is 0-255 @@ -70,7 +70,7 @@
Initialization
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetTextSize.html b/FLsetTextSize.html index 8d556764823..996af0ae315 100644 --- a/FLsetTextSize.html +++ b/FLsetTextSize.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
isize -- size of the font of the target widget. Normal values are in the order of 15. Greater numbers enlarge font size, while smaller numbers reduce it. @@ -64,7 +64,7 @@
Initialization
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetTextType.html b/FLsetTextType.html index 7cc1da7a6f7..2e76f51502d 100644 --- a/FLsetTextType.html +++ b/FLsetTextType.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
itype -- an integer number that modify the appearance of the target widget. @@ -140,7 +140,7 @@
Initialization
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetVal.html b/FLsetVal.html index 433add23cca..69eb1552211 100644 --- a/FLsetVal.html +++ b/FLsetVal.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,19 +49,19 @@
Description
- +Initialization
ihandle -- an integer number (used as unique identifier) taken from the output of a previously located widget opcode (which corresponds to the target widget). It is used to unequivocally identify the widget when modifying its appearance with this class of opcodes. The user must not set the ihandle value directly, otherwise a Csound crash will occur.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetVal_i.html b/FLsetVal_i.html index 66ebc422427..05b0c884062 100644 --- a/FLsetVal_i.html +++ b/FLsetVal_i.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,19 +49,19 @@
Description
- +Initialization
ihandle -- an integer number (used as unique identifier) taken from the output of a previously located widget opcode (which corresponds to the target widget). It is used to unequivocally identify the widget when modifying its appearance with this class of opcodes. The user must not set the ihandle value directly, otherwise a Csound crash will occur.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLsetsnap.html b/FLsetsnap.html index 3fd13e2c10c..6c4569da1a7 100644 --- a/FLsetsnap.html +++ b/FLsetsnap.html @@ -39,7 +39,7 @@
- +Performance
The FLsetsnap opcode stores current status of all valuators present in the orchestra into a snapshot location (in memory). Any number of snapshots can be stored in the current bank. Banks are structures that only exist in memory, there are no other reference to them other that they can be accessed by FLsetsnap, FLsavesnap, FLloadsnap and FLgetsnap opcodes. Only a single bank can be present in memory. @@ -122,7 +122,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLshow.html b/FLshow.html index d3d494dbc51..d730fd0b1f2 100644 --- a/FLshow.html +++ b/FLshow.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,19 +49,19 @@
Description
- +Initialization
ihandle -- an integer number (used as unique identifier) taken from the output of a previously located widget opcode (which corresponds to the target widget). It is used to unequivocally identify the widget when modifying its appearance with this class of opcodes. The user must not set the ihandle value directly, otherwise a Csound crash will occur.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLslidBnk.html b/FLslidBnk.html index e2c8837f99a..5c7d89dc6f0 100644 --- a/FLslidBnk.html +++ b/FLslidBnk.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,13 +49,13 @@
Description
- +Syntax
FLslidBnk "names", inumsliders [, ioutable] [, iwidth] [, iheight] [, ix] \ [, iy] [, itypetable] [, iexptable] [, istart_index] [, iminmaxtable]
- +Initialization
“names” -- a double-quoted string containing the names of each slider. Each slider can have a different name. Separate each name with “@” character, for example: “frequency@amplitude@cutoff”. It is possible to not provide any name by giving a single space “ ”. In this case, the opcode will automatically assign a progressive number as a label for each slider. @@ -137,7 +137,7 @@
Initialization
- +Examples
Here is an example of the FLslidBnk opcode. It uses the file FLslidBnk.csd.
- +- Example 333. Example of the FLslidBnk opcode. + Example 336. Example of the FLslidBnk opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLslidBnk2.html b/FLslidBnk2.html index d3e99a8ec5a..c1ea299a591 100644 --- a/FLslidBnk2.html +++ b/FLslidBnk2.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,13 +49,13 @@
Description
- +Syntax
FLslidBnk2 "names", inumsliders, ioutable, iconfigtable [,iwidth, iheight, ix, iy, istart_index]
FLslidBnk2 istring, inumsliders, ioutable, iconfigtable [,iwidth, iheight, ix, iy, istart_index]
- +Initialization
“names” -- a double-quoted string containing the names of each slider. Each slider can have a different name. Separate each name with “@” character, for example: “frequency@amplitude@cutoff”. It is possible to not provide any name by giving a single space “ ”. In this case, the opcode will automatically assign a progressive number as a label for each slider. @@ -101,7 +101,7 @@
Initialization
- +Examples
Here is an example of the FLslidBnk2 opcode. It uses the file FLslidBnk2.csd.
- +- Example 334. Example of the FLslidBnk2 opcode. + Example 337. Example of the FLslidBnk2 opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLslidBnk2Set.html b/FLslidBnk2Set.html index 967be2789ee..9aefb609d3d 100644 --- a/FLslidBnk2Set.html +++ b/FLslidBnk2Set.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ihandle - handle of the sliderBnk (to be used to set its values). @@ -73,7 +73,7 @@
Initialization
- +Performance
FLslidBnk2Set modifies the values of a slider bank (created with FLslidBnk2 or with FLvslidBnk2) according to an array of values stored into table ifn. It actually allows to update an FLslidBnk2 (or FLvslidBnk2) bank of sliders (for instance, using the slider8table opcode) to a set of values located in a table. User has to set ihandle argument to the handle got from FLslidBnkGetHandle opcode. It works at init-rate only. It is possible to reset only a range of sliders, by using the optional arguments istartIndex, istartSlid, inumSlid @@ -86,7 +86,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLslidBnk2Setk.html b/FLslidBnk2Setk.html index 8a7ae801328..9b446956888 100644 --- a/FLslidBnk2Setk.html +++ b/FLslidBnk2Setk.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ihandle - handle of the sliderBnk (to be used to set its values). @@ -73,7 +73,7 @@
Initialization
- +Performance
ktrig – the output of FLslidBnk2Setk consists of a trigger that informs if sliders have to be updated or not. A non-zero value forces the slider to be updated. @@ -86,21 +86,21 @@
Performance
- +Examples
Here is an example of the FLslidBnk2Setk opcode. It uses the file FLslidBnk2Setk.csd.
- +- Example 335. Example of the FLslidBnk2Setk opcode. + Example 338. Example of the FLslidBnk2Setk opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLslidBnkGetHandle.html b/FLslidBnkGetHandle.html index f1c1b610cab..13a74c50892 100644 --- a/FLslidBnkGetHandle.html +++ b/FLslidBnkGetHandle.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,19 +49,19 @@
Description
- +Performance
There are no k-rate arguments, even if cells of the output table (or the zak space) are updated at k-rate. @@ -74,7 +74,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLslidBnkSet.html b/FLslidBnkSet.html index 16b4fdc2795..7ab304ed735 100644 --- a/FLslidBnkSet.html +++ b/FLslidBnkSet.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ihandle - handle of the sliderBnk (to be used to set its values). @@ -73,7 +73,7 @@
Initialization
- +Performance
FLslidBnkSet modifies the values of a slider bank (created with FLslidBnk or with FLvslidBnk) according to an array of values stored into table ifn. It actually allows to update an FLslidBnk (or FLvslidBnk) bank of sliders (for instance, using the slider8table opcode) to a set of values located in a table. User has to set ihandle argument to the handle got from FLslidBnkGetHandle opcode. It works at init-rate only. It is possible to reset only a range of sliders, by using the optional arguments istartIndex, istartSlid, inumSlid @@ -83,7 +83,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLslidBnkSetk.html b/FLslidBnkSetk.html index 1a78cf9c8d8..5b5f33c84f4 100644 --- a/FLslidBnkSetk.html +++ b/FLslidBnkSetk.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ihandle - handle of the sliderBnk (to be used to set its values). @@ -73,7 +73,7 @@
Initialization
- +Performance
ktrig – the output of FLslidBnkSetk consists of a trigger that informs if sliders have to be updated or not. A non-zero value forces the slider to be updated. @@ -86,7 +86,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLslider.html b/FLslider.html index ff3b0a4b2f2..ff79f82f48c 100644 --- a/FLslider.html +++ b/FLslider.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,16 +49,16 @@
Description
- +Syntax
kout, ihandle FLslider "label", imin, imax, iexp, itype, idisp, iwidth, \ iheight, ix, iy
- +Initialization
- ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLslider and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.) + ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLslider and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.)
“label” -- a double-quoted string containing some user-provided text, placed near the corresponding widget. @@ -193,7 +193,7 @@
Initialization
- +Examples
Here is an example of the FLslider opcode. It uses the file FLslider.csd.
- +- Example 336. Example of the FLslider opcode. + Example 339. Example of the FLslider opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +<CsoundSynthesizer> <CsOptions> @@ -300,13 +300,13 @@Examples
- +- Example 337. More complex example of the FLslider opcode. + Example 340. More complex example of the FLslider opcode.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLtabs.html b/FLtabs.html index 15bb1314ac9..a8734156f5b 100644 --- a/FLtabs.html +++ b/FLtabs.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Performance
Containers are useful to format the graphic appearance of the widgets. The most important container is FLpanel, that actually creates a window. It can be filled with other containers and/or valuators or other kinds of widgets. @@ -96,7 +96,7 @@
Performance
- +Examples
Here is an example of the FLtabs opcode. It uses the file FLtabs.csd.
- +- Example 338. Example of the FLtabs opcode. + Example 341. Example of the FLtabs opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLtabsEnd.html b/FLtabsEnd.html index 52d316d0f86..f90f4e70844 100644 --- a/FLtabsEnd.html +++ b/FLtabsEnd.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,7 +49,7 @@
Description
- +Performance
Containers are useful to format the graphic appearance of the widgets. The most important container is FLpanel, that actually creates a window. It can be filled with other containers and/or valuators or other kinds of widgets. @@ -68,7 +68,7 @@
Performance
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLtabs_end.html b/FLtabs_end.html index 5fc7c658a15..d7d63f3d747 100644 --- a/FLtabs_end.html +++ b/FLtabs_end.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -51,7 +51,7 @@
Description
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLtext.html b/FLtext.html index 595b591280f..e04efd61242 100644 --- a/FLtext.html +++ b/FLtext.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,16 +49,16 @@
Description
- +Initialization
- ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLtext and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.) + ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. This is used by other opcodes that modify a widget's properties (see Modifying FLTK Widget Appearance). It is automatically output by FLtext and must not be set by the user label. (The user label is a double-quoted string containing some user-provided text placed near the widget.)
“label” -- a double-quoted string containing some user-provided text, placed near corresponding widget. @@ -109,7 +109,7 @@
Initialization
- +Examples
Here is an example of the FLtext opcode. It uses the file FLtext.csd.
- +- Example 339. Example of the FLtext opcode. + Example 342. Example of the FLtext opcode.
-See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 4.22
diff --git a/FLupdate.html b/FLupdate.html index c65fec9c3b2..3309b136419 100644 --- a/FLupdate.html +++ b/FLupdate.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,7 +49,7 @@
Description
- +Syntax
diff --git a/FLvalue.html b/FLvalue.html index 683439be814..7c1dc5a4c55 100644 --- a/FLvalue.html +++ b/FLvalue.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Initialization
ihandle -- handle value (an integer number) that unequivocally references the corresponding valuator. It can be used for the idisp argument of a valuator. @@ -77,10 +77,10 @@
Initialization
- +Performance
- FLvalue shows the current values of a valuator in a text field. It outputs ihandle that can then be used for the idisp argument of a valuator (see the FLTK Valuators section). In this way, the values of that valuator will be dynamically be shown in a text field. + FLvalue shows the current values of a valuator in a text field. It outputs ihandle that can then be used for the idisp argument of a valuator (see the FLTK Valuators section). In this way, the values of that valuator will be dynamically be shown in a text field.
@@ -99,21 +99,21 @@
@@ -82,14 +82,14 @@Performance
- +Examples
Here is an example of the FLvalue opcode. It uses the file FLvalue.csd.
- +- Example 345. Example of the FLvalue opcode. + Example 348. Example of the FLvalue opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Steven Yi
New in version 5.05
diff --git a/FLvslidBnk.html b/FLvslidBnk.html index d1ca5f91a22..a2d525906dd 100644 --- a/FLvslidBnk.html +++ b/FLvslidBnk.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,13 +49,13 @@
Description
- +Syntax
FLvslidBnk "names", inumsliders [, ioutable] [, iwidth] [, iheight] [, ix] \ [, iy] [, itypetable] [, iexptable] [, istart_index] [, iminmaxtable]
- +Initialization
“names” -- a double-quoted string containing the names of each slider. Each slider can have a different name. Separate each name with “@” character, for example: “frequency@amplitude@cutoff”. It is possible to not provide any name by giving a single space “ ”. In this case, the opcode will automatically assign a progressive number as a label for each slider. @@ -137,7 +137,7 @@
Initialization
- +Examples
Here is an example of the FLvslidBnk opcode. It uses the file FLvslidBnk.csd.
- +- Example 346. Example of the FLvslidBnk opcode. + Example 349. Example of the FLvslidBnk opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLvslidBnk2.html b/FLvslidBnk2.html index 32a9a58a212..60dd00ac2ef 100644 --- a/FLvslidBnk2.html +++ b/FLvslidBnk2.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,12 +49,12 @@
Description
- +Syntax
FLvslidBnk2 "names", inumsliders, ioutable, iconfigtable [,iwidth, iheight, ix, iy, istart_index]
- +Initialization
“names” -- a double-quoted string containing the names of each slider. Each slider can have a different name. Separate each name with “@” character, for example: “frequency@amplitude@cutoff”. It is possible to not provide any name by giving a single space “ ”. In this case, the opcode will automatically assign a progressive number as a label for each slider. @@ -95,7 +95,7 @@
Initialization
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FLxyin.html b/FLxyin.html index 62f7bc16100..c63de401010 100644 --- a/FLxyin.html +++ b/FLxyin.html @@ -39,7 +39,7 @@
- +Description
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. @@ -49,13 +49,13 @@
Description
- +Syntax
koutx, kouty, kinside FLxyin ioutx_min, ioutx_max, iouty_min, iouty_max, \ iwindx_min, iwindx_max, iwindy_min, iwindy_max [, iexpx, iexpy, ioutx, iouty]
- +Initialization
ioutx_min, ioutx_max - the minimum and maximum limits of the interval to be output (X or horizontal axis). @@ -77,7 +77,7 @@
Initialization
- +Performance
koutx, kouty - output values, scaled according to user choices. @@ -93,21 +93,21 @@
Performance
- +Examples
Here is an example of the FLxyin opcode. It uses the file FLxyin.csd.
- +- Example 347. Example of the FLxyin opcode. + Example 350. Example of the FLxyin opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +<CsoundSynthesizer> <CsOptions> @@ -156,13 +156,13 @@Examples
- +- Example 348. Example of the FLxyin opcode. + Example 351. Example of the FLxyin opcode.
- +Credits
Author: Gabriel Maldonado
New in version 5.06
diff --git a/FaustTop.html b/FaustTop.html new file mode 100644 index 00000000000..549f15d3239 --- /dev/null +++ b/FaustTop.html @@ -0,0 +1,82 @@ + + + + + +Faust Opcodes + + + + + + + + + + ++ ++ + + diff --git a/GEN01.html b/GEN01.html index 61e3b6c3119..c02fa96e528 100644 --- a/GEN01.html +++ b/GEN01.html @@ -39,19 +39,19 @@The Faust opcodes allows access from within Csound to the Faust language. Faust (Functional Audio Stream) is a functional programming language for sound synthesis and audio processing: https://faust.grame.fr/.
+The following opcodes are available:
++++
+- +
+faustaudio - Instantiates and runs a compiled Faust program.
+- +
+faustcompile - Produce a instantiable DSP process from a Faust program.
+- +
+faustdsp - Instantiates a Faust program.
+- +
+faustctl - Adjusts a given control in a Faust DSP instance.
+- +
+faustgen - Compiles, Instantiates and runs a compiled Faust program.
+- +
+faustplay - Runs an instantiated Faust program.
+
- +Performance
size -- number of points in the table. Ordinarily a power of 2 or a power-of-2 plus 1 (see f statement); the maximum tablesize is 16777216 (224) points. The allocation of table memory can be deferred by setting this parameter to 0; the size allocated is then the number of points in the file (probably not a power-of-2), and the table is not usable by normal oscillators, but it is usable by a loscil unit. The soundfile can also be mono or stereo. @@ -141,19 +141,19 @@
Performance
- +Examples
Here is an example of the GEN01 routine. It uses the files gen01.csd and several sound files.
- +- Example 1276. An example of the GEN01 routine. + Example 1291. An example of the GEN01 routine.
- +<CsoundSynthesizer> <CsOptions> @@ -190,9 +190,9 @@Examples
endin </CsInstruments> <CsScore> -f 1 0 131072 1 "beats.wav" 0 0 0 ;non-deferred sound +f 1 0 131072 1 "drumsMlp.wav" 0 0 0 ;non-deferred sound f 2 0 0 1 "flute.aiff" 0 0 0 ;& deferred sounds in -f 3 0 0 1 "beats.ogg" 0 0 0 ;different formats +f 3 0 0 1 "drumsMlp.ogg" 0 0 0 ;different formats i 1 0 1 1 i 1 + 1 2 @@ -212,9 +212,9 @@Examples
- +@@ -230,9 +230,9 @@
Examples
- +@@ -240,7 +240,7 @@
Examples
- +Examples
Here is an example of the GEN02 routine. It uses the files gen02.csd.
- +- Example 1277. Example of the GEN02 routine. + Example 1292. Example of the GEN02 routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
December 2002. Thanks to Rasmus Ekman, corrected the limit of the PMAX variable.
diff --git a/GEN03.html b/GEN03.html index b04cfee887e..59b5db9902b 100644 --- a/GEN03.html +++ b/GEN03.html @@ -39,19 +39,19 @@
- +Examples
Here is an example of the GEN03 generator. It uses the file gen03.csd.
- +- Example 1278. Example of the GEN03 generator. + Example 1293. Example of the GEN03 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +See Also
GEN13, diff --git a/GEN04.html b/GEN04.html index 09bf72e5f0c..26c81bf7dc5 100644 --- a/GEN04.html +++ b/GEN04.html @@ -39,19 +39,19 @@
- +Examples
Here is a simple example of the GEN04 routine. It uses the files gen04.csd.
- +- Example 1279. An example of the GEN04 routine. + Example 1294. An example of the GEN04 routine.
- +<CsoundSynthesizer> <CsOptions> diff --git a/GEN05.html b/GEN05.html index 53dab4f6cda..5fff501a95b 100644 --- a/GEN05.html +++ b/GEN05.html @@ -39,19 +39,19 @@
- +Initialization
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement). @@ -105,19 +105,19 @@
Initialization
- +Examples
Here is a simple example of the GEN05 routine. It uses the files gen05.csd.
- +- Example 1280. An example of the GEN05 routine. + Example 1295. An example of the GEN05 routine.
- +See Also
GEN06, diff --git a/GEN06.html b/GEN06.html index 7687dcc3c1d..741cafd0c4e 100644 --- a/GEN06.html +++ b/GEN06.html @@ -39,19 +39,19 @@
- +Description
This subroutine will generate a function comprised of segments of cubic polynomials, spanning specified points just three at a time.
- +Initialization
size -- number of points in the table. Must be a power off or power-of-2 plus 1 (see f statement). @@ -84,19 +84,19 @@
Initialization
- +Examples
Here is an example of the GEN06 routine. It uses the files gen06.csd.
- +- Example 1281. An example of the GEN06 routine. + Example 1296. An example of the GEN06 routine.
- +See Also
GEN05, diff --git a/GEN07.html b/GEN07.html index a936ba7c35c..be3db236bde 100644 --- a/GEN07.html +++ b/GEN07.html @@ -39,19 +39,19 @@
- +Initialization
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement). @@ -96,19 +96,19 @@
Initialization
- +Examples
Here is an example of the GEN07 routine. It uses the files gen07.csd.
- +- Example 1282. An example of the GEN07 routine. + Example 1297. An example of the GEN07 routine.
- +See Also
GEN05, diff --git a/GEN08.html b/GEN08.html index 636edebc402..e28fd4d7573 100644 --- a/GEN08.html +++ b/GEN08.html @@ -39,19 +39,19 @@
- +Description
This subroutine will generate a piecewise cubic spline curve, the smoothest possible through all specified points.
- +Initialization
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement). @@ -96,19 +96,19 @@
Initialization
- +Examples
Here is an example of the GEN08 routine. It uses the files gen08.csd.
- +- Example 1283. An example of the GEN08 routine. + Example 1298. An example of the GEN08 routine.
- +See Also
GEN05, diff --git a/GEN09.html b/GEN09.html index 6864080089b..53f6463e684 100644 --- a/GEN09.html +++ b/GEN09.html @@ -39,19 +39,19 @@
- +Description
These subroutines generate composite waveforms made up of weighted sums of simple sinusoids. The specification of each contributing partial requires 3 p-fields using GEN09.
- +Initialization
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement). @@ -97,21 +97,21 @@
Initialization
- +Examples
Here is an example of the GEN09 routine. It uses the files gen09.csd.
- +- Example 1284. Example of the GEN09 routine. + Example 1299. Example of the GEN09 routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +See Also
GEN10, diff --git a/GEN10.html b/GEN10.html index d3e39986505..7558e24f3b5 100644 --- a/GEN10.html +++ b/GEN10.html @@ -39,19 +39,19 @@
- +Description
These subroutines generate composite waveforms made up of weighted sums of simple sinusoids. The specification of each contributing partial requires 1 pfield using GEN10.
- +Initialization
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement). @@ -91,19 +91,19 @@
Initialization
- +Examples
Here is an example of the GEN10 routine. It uses the files gen10.csd.
- +- Example 1285. An example of the GEN10 routine. + Example 1300. An example of the GEN10 routine.
- +See Also
GEN09, diff --git a/GEN11.html b/GEN11.html index e958cd49515..19127fb4636 100644 --- a/GEN11.html +++ b/GEN11.html @@ -39,19 +39,19 @@
- +Description
This subroutine generates an additive set of cosine partials, in the manner of Csound generators buzz and gbuzz.
- +Initialization
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement). @@ -99,19 +99,19 @@
Initialization
- +Examples
Here is an example of the GEN11 routine. It uses the files gen11.csd.
- +- Example 1286. An example of the GEN11 routine. + Example 1301. An example of the GEN11 routine.
- +See Also
GEN10 diff --git a/GEN12.html b/GEN12.html index bdebc49982c..52c7b9216ae 100644 --- a/GEN12.html +++ b/GEN12.html @@ -39,19 +39,19 @@
- +Description
This generates the log of a modified Bessel function of the second kind, order 0, suitable for use in amplitude-modulated FM.
- +Initialization
size -- number of points in the table. Must be a power of 2 or a power-of-2 plus 1 (see f statement). The normal value is power-of-2 plus 1. @@ -93,20 +93,20 @@
Initialization
- +Examples
Here is an example of the GEN12 generator. It uses the file gen12.csd.
- +- Example 1287. Example of the GEN12 generator. + Example 1302. Example of the GEN12 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Example is, with minor modifications, taken from The Csound Book (page 87). diff --git a/GEN13.html b/GEN13.html index 7d37ea5c725..caa0021ae9b 100644 --- a/GEN13.html +++ b/GEN13.html @@ -39,19 +39,19 @@
- +Description
Uses Chebyshev coefficients to generate stored polynomial functions which, under waveshaping, can be used to split a sinusoid into harmonic partials having a pre-definable spectrum.
- +Initialization
size -- number of points in the table. Must be a power of 2 or a power-of-2 plus 1 (see f statement). The normal value is power-of-2 plus 1. @@ -80,20 +80,20 @@
Initialization
- +Examples
Here is an example of the GEN13 generator. It uses the file gen13.csd.
- +- Example 1288. Example of the GEN13 generator. + Example 1303. Example of the GEN13 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +See Also
GEN03, diff --git a/GEN14.html b/GEN14.html index 9146448289f..b7162b37d1e 100644 --- a/GEN14.html +++ b/GEN14.html @@ -39,19 +39,19 @@
- +Description
Uses Chebyshev coefficients to generate stored polynomial functions which, under waveshaping, can be used to split a sinusoid into harmonic partials having a pre-definable spectrum.
- +Initialization
size -- number of points in the table. Must be a power of 2 or a power-of-2 plus 1 (see f statement). The normal value is power-of-2 plus 1. @@ -109,20 +109,20 @@
Initialization
- +Examples
Here is an example of the GEN14 generator. It uses the file gen14.csd.
- +- Example 1289. Example of the GEN14 generator. + Example 1304. Example of the GEN14 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +See Also
GEN03, diff --git a/GEN15.html b/GEN15.html index 47c057c7835..47a3cb45956 100644 --- a/GEN15.html +++ b/GEN15.html @@ -39,19 +39,19 @@
- +Description
This subroutine creates two tables of stored polynomial functions, suitable for use in phase quadrature operations.
- +Initialization
size -- number of points in the table. Must be a power of 2 or a power-of-2 plus 1 (see f statement). The normal value is power-of-2 plus 1. @@ -103,19 +103,19 @@
Initialization
- +Examples
Here is an example of the GEN15 routine. It uses the files gen15.csd.
- +- Example 1290. An example of the GEN15 routine. + Example 1305. An example of the GEN15 routine.
- +See Also
GEN13, and diff --git a/GEN16.html b/GEN16.html index ddda607e811..a0d62514cde 100644 --- a/GEN16.html +++ b/GEN16.html @@ -39,19 +39,19 @@
- +- +- Example 1291. A simple example of the GEN16 routine. + Example 1306. A simple example of the GEN16 routine.
- +Credits
diff --git a/GEN17.html b/GEN17.html index dd95dc3f8ce..2294d0b4d6f 100644 --- a/GEN17.html +++ b/GEN17.html @@ -39,19 +39,19 @@
- +Initialization
size -- number of points in the table. Must be a power of 2 or a power-of-2 plus 1 (see f statement). The normal value is power-of-2 plus 1. @@ -81,7 +81,7 @@
Initialization
- +Examples
@@ -97,13 +97,13 @@
Examples
Here is a complete example of the GEN17 routine. It uses the files gen17.csd.- +- Example 1292. An example of the GEN17 routine. + Example 1307. An example of the GEN17 routine.
- +See Also
GEN02 diff --git a/GEN18.html b/GEN18.html index 38110489e57..fb03a7d4839 100644 --- a/GEN18.html +++ b/GEN18.html @@ -39,19 +39,19 @@
- +Description
Writes composite waveforms made up of pre-existing waveforms. Each contributing waveform requires 4 pfields and can overlap with other waveforms.
- +Initialization
size -- number of points in the table. Must be a power-of-2 (see f statement). @@ -70,7 +70,7 @@
Initialization
- +Examples
@@ -87,13 +87,13 @@
Examples
Here is an example of the GEN18 routine. It uses the files gen18.csd.- +- Example 1293. An example of the GEN18 routine. + Example 1308. An example of the GEN18 routine.
- +Deprecated Names
GEN18 was called GEN22 in version 4.18. The name was changed due to a conflict with DirectCsound.
- +Credits
diff --git a/GEN19.html b/GEN19.html index e36a7508eb0..185b0c78283 100644 --- a/GEN19.html +++ b/GEN19.html @@ -39,19 +39,19 @@
- +Description
These subroutines generate composite waveforms made up of weighted sums of simple sinusoids. The specification of each contributing partial requires 4 p-fields using GEN19.
- +Initialization
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement). @@ -100,19 +100,19 @@
Initialization
- +Examples
Here is an example of the GEN19 routine. It uses the files gen19.csd.
- +- Example 1294. An example of the GEN19 routine. + Example 1309. An example of the GEN19 routine.
- +See Also
GEN09 and diff --git a/GEN20.html b/GEN20.html index 3ea43932170..9e6a55974ad 100644 --- a/GEN20.html +++ b/GEN20.html @@ -39,19 +39,19 @@
- +Description
This subroutine generates functions of different windows. These windows are usually used for spectrum analysis or for grain envelopes.
- +Initialization
size -- number of points in the table. Must be a power of 2 ( + 1). @@ -105,7 +105,7 @@
Initialization
- +Examples
@@ -179,14 +179,14 @@
Examples
- +- Example 1295. Example of the GEN20 routine. + Example 1310. Example of the GEN20 routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +<CsoundSynthesizer> <CsOptions> @@ -205,7 +205,7 @@Examples
instr 1 -insnd = 10 ;"fox.wav" +insnd = 10 ;"marimba.aif" ibasfrq = 44100 / ftlen(insnd) ;use original sample rate of insnd file kamp expseg .001, p3/2, .7, p3/2, .8 ;envelope @@ -225,7 +225,7 @@Examples
<CsScore> f1 0 512 20 2 ;Hanning window f2 0 512 20 6 1 ;Gaussian window -f10 0 16384 1 "fox.wav" 0 0 0 +f10 0 16384 1 "marimba.aif" 0 0 0 i1 0 5 1 ;use Hanning window i1 + 5 2 ;use Gaussian window @@ -260,7 +260,7 @@Examples
- +Credits
diff --git a/GEN21.html b/GEN21.html index 04dedb824bc..1d4e06b6553 100644 --- a/GEN21.html +++ b/GEN21.html @@ -39,19 +39,19 @@
- +Description
This generates tables of different random distributions. (See also betarand, bexprnd, cauchy, exprand, gauss, linrand, pcauchy, poisson, trirand, unirand, and weibull)
- +Initialization
time and size are the usual GEN function arguments. level defines the amplitude. Note that GEN21 is not self-normalizing as are most other GEN functions. type defines the distribution to be used as follow: @@ -107,7 +107,7 @@
Initialization
- +Examples
@@ -127,14 +127,14 @@
Examples
Here is a complete example of the GEN21 routine. It uses the file gen21.csd.- +- Example 1296. Example of the GEN21 routine. + Example 1311. Example of the GEN21 routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
diff --git a/GEN22.html b/GEN22.html index cb894b175d6..6a59f08ccbd 100644 --- a/GEN22.html +++ b/GEN22.html @@ -39,7 +39,7 @@
- +Description
Deprecated as of version 4.19. Use the GEN18 routine instead. diff --git a/GEN23.html b/GEN23.html index 020855c93d3..4cd191a1035 100644 --- a/GEN23.html +++ b/GEN23.html @@ -39,19 +39,19 @@
- +Examples
Here is an example of the GEN23 generator. It uses the file gen23.csd and spectrum.txt.
- +- Example 1297. Example of the GEN23 generator. + Example 1312. Example of the GEN23 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
diff --git a/GEN24.html b/GEN24.html index a73139f7d82..9c014e7b2a7 100644 --- a/GEN24.html +++ b/GEN24.html @@ -39,19 +39,19 @@
- +Description
This subroutine reads numeric values from another allocated function-table and rescales them according to the max and min values given by the user.
- +Initialization
#, time, size -- the usual GEN parameters. See f statement. @@ -82,20 +82,20 @@
Initialization
- +Examples
Here is an example of the GEN24 opcode. It uses the file gen24.csd.
- +- Example 1298. Example of the GEN24 generator. + Example 1313. Example of the GEN24 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Gabriel Maldonado
New in Csound version 4.16
diff --git a/GEN25.html b/GEN25.html index 8c6a2e7e894..88c5d1b495f 100644 --- a/GEN25.html +++ b/GEN25.html @@ -39,19 +39,19 @@
- +Description
These subroutines are used to construct functions from segments of exponential curves in breakpoint fashion.
- +Initialization
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement). @@ -81,20 +81,20 @@
Initialization
- +Examples
Here is an example of the GEN25 generator. It uses the file gen25.csd.
- +- Example 1299. Example of the GEN25 generator. + Example 1314. Example of the GEN25 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
diff --git a/GEN27.html b/GEN27.html index bfb55a695f5..187c87dd465 100644 --- a/GEN27.html +++ b/GEN27.html @@ -39,19 +39,19 @@
- +Initialization
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement). @@ -81,20 +81,20 @@
Initialization
- +Examples
Here is an example of the GEN27 generator. It uses the file gen27.csd.
- +- Example 1300. Example of the GEN27 generator. + Example 1315. Example of the GEN27 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
diff --git a/GEN28.html b/GEN28.html index 1dbef8a759e..9e88afba40e 100644 --- a/GEN28.html +++ b/GEN28.html @@ -39,7 +39,7 @@
- +Description
This function generator reads a text file which contains sets of three values representing the xy coordinates and a time-tag for when the signal should be placed at that location, allowing the user to define a time-tagged trajectory. The file format is in the form: @@ -80,12 +80,12 @@
Description
- +Initialization
size -- number of points in the table. Must be 0. GEN28 takes 0 as the size and automatically allocates memory. @@ -95,7 +95,7 @@
Initialization
- +Examples
@@ -126,14 +126,14 @@
Examples
Here is an example of the GEN28 routine. It uses the file gen28.csd.- +- Example 1301. Example of the gen28 generator. + Example 1316. Example of the gen28 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +<CsoundSynthesizer> <CsOptions> @@ -160,7 +160,7 @@Examples
kx init 0 ky init 0 ktime line 0, 5, 5 ;same time as in table 1 (="move") -asig diskin2 "beats.wav", 1, 0, 1 ;sound source is looped +asig diskin2 "drumsMlp.wav", 1, 0, 1 ;sound source is looped a1, a2, a3, a4 space asig, 1, ktime, .1, kx, ky ;use table 1 = GEN28 ar1, ar2, ar3, ar4 spsend ;send to reverb @@ -203,7 +203,7 @@Examples
- +Credits
diff --git a/GEN30.html b/GEN30.html index a17280dd778..fb86f2fc6bf 100644 --- a/GEN30.html +++ b/GEN30.html @@ -39,19 +39,19 @@
- +Examples
Here is an example of the GEN30 routine. It uses the files gen30.csd.
- +- Example 1302. Example of the GEN30 routine. + Example 1317. Example of the GEN30 routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Istvan Varga
New in version 4.16
diff --git a/GEN31.html b/GEN31.html index 4ec439e7846..a44d8b05a51 100644 --- a/GEN31.html +++ b/GEN31.html @@ -39,19 +39,19 @@
- +Description
This routine is similar to GEN09, but allows mixing any waveform specified in an existing table.
- +Examples
Here is an example of the GEN31 routine. It uses the files gen31.csd.
- +- Example 1303. Example of the GEN31 routine. + Example 1318. Example of the GEN31 routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Istvan Varga
New in version 4.15
diff --git a/GEN32.html b/GEN32.html index a9868edf109..51a746e3848 100644 --- a/GEN32.html +++ b/GEN32.html @@ -39,19 +39,19 @@
- +Description
This routine is similar to GEN31, but allows specifying source ftable for each partial. Tables can be resampled either with FFT, or linear interpolation.
- +Performance
srca, srcb -- source table number. A negative value can be used to read the table with linear interpolation (by default, the source waveform is transposed and phase shifted using FFT); this is less accurate, but faster, and allows non-integer and negative partial numbers. @@ -67,20 +67,20 @@
Performance
- +Examples
Here is an example of the GEN32 routine. It uses the file gen32.csd.
- +- Example 1304. Example of the gen32 generator. + Example 1319. Example of the gen32 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Author: Rasmus Ekman
Programmer: Istvan Varga
diff --git a/GEN33.html b/GEN33.html index 795049cd225..d8d98f2bde0 100644 --- a/GEN33.html +++ b/GEN33.html @@ -39,7 +39,7 @@
- +Description
These routines generate composite waveforms by mixing simple sinusoids, similarly to GEN09, but the parameters of the partials are specified in an already existing table, which makes it possible to calculate any number of partials in the orchestra. @@ -49,12 +49,12 @@
Description
- +Initialization
size -- number of points in the table. Must be power of two and at least 4. @@ -100,20 +100,20 @@
Initialization
- +Examples
Here is an example of the GEN33 routine. It uses the file gen33.csd.
- +- Example 1305. Example of the gen33 generator. + Example 1320. Example of the gen33 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
diff --git a/GEN34.html b/GEN34.html index dd237babc2b..d1885adf1a3 100644 --- a/GEN34.html +++ b/GEN34.html @@ -39,7 +39,7 @@
- +Description
These routines generate composite waveforms by mixing simple sinusoids, similarly to GEN09, but the parameters of the partials are specified in an already existing table, which makes it possible to calculate any number of partials in the orchestra. @@ -49,12 +49,12 @@
Description
- +Initialization
size -- number of points in the table. Must be power of two or a power of two plus 1. @@ -100,20 +100,20 @@
Initialization
- +Examples
Here is an example of the GEN34 routine. It uses the file gen34.csd.
- +- Example 1306. Example of the gen34 generator. + Example 1321. Example of the gen34 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
diff --git a/GEN40.html b/GEN40.html index 4f5b69488d3..5632c42d38a 100644 --- a/GEN40.html +++ b/GEN40.html @@ -39,19 +39,19 @@
- +Description
Generates a continuous random distribution function starting from the shape of a user-defined distribution histogram.
- +Performance
The shape of histogram must be stored in a previously defined table, in fact shapetab argument must be filled with the number of such table. @@ -64,20 +64,20 @@
Performance
- +Examples
Here is an example of the GEN40 generator. It uses the file gen40.csd.
- +- Example 1307. Example of the GEN40 generator. + Example 1322. Example of the GEN40 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
diff --git a/GEN41.html b/GEN41.html index b7b34f781d3..62ae855b859 100644 --- a/GEN41.html +++ b/GEN41.html @@ -39,19 +39,19 @@
- +Description
Generates a discrete random distribution function by giving a list of numerical pairs.
- +Performance
The first number of each pair is a value, and the second is the probability of that value to be chosen by a random algorithm. Even if any number can be assigned to the probability element of each pair, it is suggested to give it a percent value, in order to make it clearer for the user. @@ -61,20 +61,20 @@
Performance
- +Examples
Here is an example of the GEN41 generator. It uses the file gen41.csd.
- +- Example 1308. Example of the GEN41 generator. + Example 1323. Example of the GEN41 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
diff --git a/GEN42.html b/GEN42.html index ca7788cde7f..4ce3adbbd3d 100644 --- a/GEN42.html +++ b/GEN42.html @@ -39,19 +39,19 @@
- +Description
Generates a random distribution function of discrete ranges of values by giving a list of groups of three numbers.
- +Performance
The first number of each group is a the minimum value of the range, the second is the maximum value and the third is the probability of that an element belonging to that range of values can be chosen by a random algorithm. Probabilities for a range should be a fraction of 1, and the sum of the probabilities for all the ranges should total 1.0. @@ -61,20 +61,20 @@
Performance
- +Examples
Here is an example of the GEN42 generator. It uses the file gen42.csd.
- +- Example 1309. Example of the GEN42 generator. + Example 1324. Example of the GEN42 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
diff --git a/GEN43.html b/GEN43.html index 639f835d90e..82e10b858b5 100644 --- a/GEN43.html +++ b/GEN43.html @@ -39,7 +39,7 @@
- +Examples
Here is an example of the GEN43 routine. It uses the files gen43.csd. @@ -106,13 +106,13 @@
Examples
- +- Example 1310. An example of the GEN43 routine. + Example 1325. An example of the GEN43 routine.
diff --git a/GEN44.html b/GEN44.html index c5300a58459..87c2abde5b4 100644 --- a/GEN44.html +++ b/GEN44.html @@ -39,27 +39,27 @@
- +Performance
The file named in version 1 or the file stiff.num in the second case is read to create the matrix.
- +Matrix Format
The first line of the file should be @@ -68,9 +68,10 @@
Matrix Format
” and it creates a square matrix of the indicated size. This is followed by lines of two or three numbers, - the first two denoting a connection from the first to the second - and the third is a weight. If the third is omitted it is taken as - value 1. The list is terminated by a + the first two denoting 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. The list is terminated by a “ </MATRIX> ” @@ -116,30 +117,35 @@Matrix Format
- +Examples
Here is an example of the GEN44 generator. It uses the file gen44.csd.
- ++- Example 1311. Example of the GEN44 generator. + Example 1326. Example of the GEN44 generator.
+See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- ++<CsoundSynthesizer> <CsOptions> +; Select audio/midi flags here according to platform +-odac --limiter=0.95 ;;;realtime audio out & and limit loud sounds +;-iadc ;;;uncomment -iadc if realtime audio input is needed too +; For Non-realtime ouput leave only the line below: +; -o gen44.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 1 -0dbfs = 1 +0dbfs = 1 instr scan @@ -156,8 +162,7 @@+Examples
;scanu2 init,irate,ifndisplace,ifnmass,ifnmatrix,ifncentr,ifndamp,kmass,kmtrxstiff, ; kcentr, kdamp, ileft, iright, kpos, kdisplace, ain, idisp, id -scanu2 -1, irate, 6, 2, 3, 4, 5, kmass, kstiff, kcenter, kdamp, .2, .7, kpos, -kdisplace, a0, 1, 2 +scanu2 -1, irate, 6, 2, 3, 4, 5, kmass, kstiff, kcenter, kdamp, .2, .7, kpos, kdisplace, a0, 1, 2 ;ar scans kamp, kfreq, ifntraj, id a1 scans ampdbfs(p4), cpspch(p5), 7, 2 @@ -168,26 +173,15 @@Examples
</CsInstruments> <CsScore> ; Initial displacement condition -f1 0 16 10 1 ; sine hammer - -; Masses -f2 0 16 -7 1 16 1 - -; Spring matrices -f3 0 0 -44 "string_with_extras-16.matrxT" - -; Centering force -f4 0 16 -7 1 16 1 ; uniform initial centering - -; Damping -f5 0 16 -7 1 16 1 ; uniform damping - +f1 0 16 10 1 ; sine hammer +f2 0 16 -7 1 16 1 ; Masses +f3 0 0 -44 "string_with_extras-16.matrxT" ; Spring matrices +f4 0 16 -7 1 16 1 ; Centering force, uniform initial centering +f5 0 16 -7 1 16 1 ; Damping, uniform damping ; Initial displacement - (displacement, vel, and acceleration ; Acceleration is from stiffness matrix pos effect - increases acceleration f6 0 16 -7 .01 16 .01 ; uniform initial velocity-displacement - -; Trajectories -f7 0 16 -5 .001 16 16 +f7 0 16 -5 .001 16 16 ; Trajectories i"scan" 0 2 -6 7.00 i"scan" 2 2 -6 5.00 @@ -196,7 +190,71 @@Examples
i"scan" 8 2 -6 10.00 e +</CsScore> +</CsoundSynthesizer> ++
++ Here is another example of GEN44. It uses the file gen44-2.csd. The matrix file has 1024 masses. +
++ ++ Example 1327. Second example of the GEN44 generator. +
+++ ++<CsoundSynthesizer> +<CsOptions> +; Select audio/midi flags here according to platform +-odac --limiter=0.95 ;;;realtime audio out & and limit loud sounds +;-iadc ;;;uncomment -iadc if realtime audio input is needed too +; For Non-realtime ouput leave only the line below: +; -o gen44-2.wav -W ;;; for file output any platform +</CsOptions> +<CsInstruments> + +sr = 44100 +ksmps = 32 +nchnls = 2 +0dbfs = 1 + +; by Menno Knevel 2024 + +instr 1 ; move the grain table + +initial ftgenonce 1, 0, 1024, 10, 1 ; initial position = sine wave +idispl ftgenonce 2, 0, 1024, -7, .01, 1024, .01 ; displace +imass ftgenonce 3, 0, 1024, -7, 5, 1024, 5 ; masses +icent ftgenonce 4, 0, 1024, -7, .01, 1024, .1 ; centering +idamp ftgenonce 5, 0, 1024, -7, -.1, 1024, -.21 ; damping +itraj ftgenonce 6, 0, 1024, -7, 0, 1024, 1024 ; trajectory +iw ftgenonce 7, 0, 1024, 20, 2 ; Hanning window for GEN20 +a0 = 0 ; no audio injection +kline line .07, p3, 0 ; simple envelope +;scanu2 init, irate, ifndisplace, ifnmass, imatrix, ifncentr, ifndamp, kmass, kmtrxstiff, kcentr, kdamp, ileft, iright, kpos, kdisplace, ain, idisp, id +scanu2 1, .003, 2, 3, 100, 4, 5, 10, 6, 0.1, .9, .5, .1, 0, 0, a0, 0, -1 +aL grain2 p4, p4, 2, 25, 1, 7 +aR grain2 p4, p4, 2, 25, 1, 7 +aL dcblock aL +aR dcblock aR +outs aL * kline, aR * kline + +endin + +</CsInstruments> +<CsScore> +f100 0 0 -44 "circularstring_1024.matrxT" ; text matrix, to be found in manual/examples + +i1 0 20 466.16376098248423 +e </CsScore> </CsoundSynthesizer>@@ -207,10 +265,21 @@Examples
- + ++See also
+ +More information on the Scanned Synthesis opcodes: Working with Scanned Synthesis, written by Steven Yi, and some tutorials by Richard Boulanger.
+diff --git a/GEN49.html b/GEN49.html index c084c89c875..b6918a6baee 100644 --- a/GEN49.html +++ b/GEN49.html @@ -39,19 +39,19 @@
- +Examples
Here is an example of the GEN49 routine. It uses the files gen49.csd.
- +- Example 1312. An example of the GEN49 routine. + Example 1328. An example of the GEN49 routine.
- +Credits
Written by John ffitch
February 2009.
diff --git a/GEN51.html b/GEN51.html index 37720758f36..6df19629c85 100644 --- a/GEN51.html +++ b/GEN51.html @@ -39,7 +39,7 @@
- +Description
This subroutine fills a table with a fully customized micro-tuning @@ -49,12 +49,12 @@
Description
- +Syntax
f # time size -51 numgrades interval basefreq basekey tuningRatio1 tuningRatio2 .... tuningRationN
- +Performance
The first four parameters (i.e. p5, p6, p7 and p8) define the following @@ -106,19 +106,19 @@
Performance
f1 0 64 -51 24 1.5 440 48 1 1.01 1.02 1.03 ..etc...- +Examples
Here is an example of the GEN51 routine. It uses the files gen51.csd.
- +- Example 1313. An example of the GEN51 routine. + Example 1329. An example of the GEN51 routine.
diff --git a/GEN52.html b/GEN52.html index 274fb424116..18d75950365 100644 --- a/GEN52.html +++ b/GEN52.html @@ -40,7 +40,7 @@
- +Description
GEN52 creates an interleaved multichannel table from the specified @@ -60,12 +60,12 @@
Description
- +Syntax
f # time size 52 nchannels fsrc1 offset1 srcchnls1 [fsrc2 offset2 srcchnls2 ... fsrcN offsetN srcchnlsN]
- +Example
; source tables @@ -81,14 +81,14 @@Example
Here is a complete example of the GEN52 generator. It uses the file gen52.csd.- +- Example 1314. Example of the GEN52 generator. + Example 1330. Example of the GEN52 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
diff --git a/GEN53.html b/GEN53.html index 9a3e953530a..c41e5623c21 100644 --- a/GEN53.html +++ b/GEN53.html @@ -41,7 +41,7 @@
- +Description
GEN53 creates an impulse response function table with either a @@ -52,7 +52,7 @@
Description
- +Example
Here is a complete example of the GEN53 generator. It uses the file gen53.csd.
- +- Example 1315. Example of the GEN53 generator. + Example 1331. Example of the GEN53 generator.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
diff --git a/GENexp.html b/GENexp.html index f909fd170c2..26a9e422ce5 100644 --- a/GENexp.html +++ b/GENexp.html @@ -39,19 +39,19 @@
- +Examples
Here is a simple example of the GENexp routine. It uses the file genexp.csd.
- +- Example 1317. Example of the GENexp routine. + Example 1333. Example of the GENexp routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +diff --git a/GENfarey.html b/GENfarey.html index 5a7e6460202..bfbdec70af2 100644 --- a/GENfarey.html +++ b/GENfarey.html @@ -39,7 +39,7 @@See Also
GENexp and @@ -155,7 +155,7 @@
See Also
More information on this routine: http://www.csoundjournal.com/issue11/distortionSynthesis.html, written by Victor Lazzarini
- +Examples
@@ -259,16 +259,16 @@
Examples
- +- Example 1320. A simple example of the GENfarey routine. + Example 1336. A simple example of the GENfarey routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +<CsoundSynthesizer> <CsOptions> @@ -307,14 +307,14 @@Examples
Here is a complete example of the GENfarey routine. It uses the files genfarey-2.csd.- +- Example 1321. Another example of the GENfarey routine. + Example 1337. Another example of the GENfarey routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
++Credits
diff --git a/GENpadsynth.html b/GENpadsynth.html index 33ba03d3fc3..284811e23ac 100644 --- a/GENpadsynth.html +++ b/GENpadsynth.html @@ -39,7 +39,7 @@
- +Syntax
f # score_time table_size "padsynth" fundamental_frequency partial_bandwidth partial_scale harmonic_stretch profile_shape profile_shape_parameter partial1_amplitude [partial2_amplitude ...]
- +Initialization
table_size -- Function table size. Should be large, @@ -130,19 +130,19 @@
Initialization
- +Examples
Here is an example of the GENpadsynth routine. It uses the files padsynth_gen.csd.
- +- Example 1323. An example of the GENpadsynth routine. + Example 1339. An example of the GENpadsynth routine.
- +Credits
Written by Michael Gogins
New in version 6.05
diff --git a/GENquadbezier.html b/GENquadbezier.html index 6bf74781b42..dc5bcb25fac 100644 --- a/GENquadbezier.html +++ b/GENquadbezier.html @@ -39,7 +39,7 @@
- +Initialization
x2, x3, etc. -- Locations in table at which to attain the following y value. Must be in increasing order. It is assumed that x1 equals 0. If the last value is less than size, then the rest will be set to zero. Should not be negative. @@ -70,20 +70,20 @@
Initialization
- +Examples
Here is a simple example of the GENquadbezier routine. It uses the file genquadbezier.csd.
- +- Example 1319. Example of the GENquadbezierroutine. + Example 1335. Example of the GENquadbezierroutine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- +Credits
Written by Guillermo Senna
2016
diff --git a/GENsone.html b/GENsone.html index 0537e312bb2..472f26e3988 100644 --- a/GENsone.html +++ b/GENsone.html @@ -39,19 +39,19 @@
- +Examples
Here is an example of the GENsone routine. It uses the files gensone.csd.
- +- Example 1318. An example of the GENsone routine. + Example 1334. An example of the GENsone routine.
diff --git a/GENtanh.html b/GENtanh.html index 96f867a30b2..0938fb0e305 100644 --- a/GENtanh.html +++ b/GENtanh.html @@ -39,19 +39,19 @@
- +Examples
Here is a simple example of the GENtanh routine. It uses the file gentanh.csd.
- +- Example 1316. Example of the GENtanh routine. + Example 1332. Example of the GENtanh routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
diff --git a/GENwave.html b/GENwave.html index dc79b795502..df5db370e31 100644 --- a/GENwave.html +++ b/GENwave.html @@ -39,7 +39,7 @@
- +Description
Creates a compactly supported wavelet, scaling function or wavelet @@ -62,12 +62,12 @@
Description
- +Examples
Here is an example of the GENwave routine. It uses the file genwave.csd.
- +- Example 1322. Example of the GENwave routine. + Example 1338. Example of the GENwave routine.
@@ -106,7 +106,7 @@
Examples
command line flags.- +Credits
Written by Gleb Rogozinsky
Saint-Petersburg University of Film and Television
diff --git a/ImageopcodesTop.html b/ImageopcodesTop.html index a0ade49cec1..145c996f7a7 100644 --- a/ImageopcodesTop.html +++ b/ImageopcodesTop.html @@ -8,8 +8,8 @@ - - + + @@ -19,8 +19,8 @@Image processing opcodes - Prev -Part II. Opcodes Overview +Prev +External Plugin Opcodes Next Image processing opcodes
@@ -30,7 +30,7 @@ @@ -60,14 +60,14 @@
- Prev +Prev - Up + Up Next - Orchestra Syntax +Faust Opcodes Home diff --git a/JackoAudioIn.html b/JackoAudioIn.html deleted file mode 100644 index 4aefbe63d6e..00000000000 --- a/JackoAudioIn.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - -JackoAudioIn - - - - - - - - - - -- - - -- - - diff --git a/JackoAudioInConnect.html b/JackoAudioInConnect.html deleted file mode 100644 index 44ebb691eee..00000000000 --- a/JackoAudioInConnect.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - ---- JackoAudioIn -
-JackoAudioIn — - Receives an audio signal from a Jack port. -
-- -- -Description
-- Plugin opcode in jacko. 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
-- Receives an audio signal from a Jack audio input port - inside this instance of Csound, which in turn has - received the signal from its connected external Jack - audio output port. -
-- --Initialization
-- ScsoundPortName -- The short name ("portname") - of the internal Jack audio input port. -
-- -- -Performance
-- asignal -- Audio received from the external Jack - output port to which ScsoundPortName is connected. -
-- -- -See Also
-- JackoInfo, - JackoInfo, - JackoFreewheel, - JackoAudioOutConnect, - JackoAudioOutConnect, - JackoMidiInConnect, - JackoMidiOutConnect, - JackoOn, - JackoAudioOut, - JackoMidiOut, - JackoNoteOut, - JackoTransport. -
-JackoAudioInConnect - - - - - - - - - - -- - - -- - - diff --git a/JackoAudioOut.html b/JackoAudioOut.html deleted file mode 100644 index cbd39c16aab..00000000000 --- a/JackoAudioOut.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - ---- JackoAudioInConnect -
-JackoAudioInConnect — - Creates an audio connection from a Jack port to Csound. -
-- -- -Description
-- Plugin opcode in jacko. 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
-- In the orchestra header, creates an audio connection - from an external Jack audio output port to a - Jack audio input port inside this instance of Csound. -
-- -- -Initialization
-- SexternalPortName -- The full name ("clientname:portname") - of an external Jack audio output port. -
-- ScsoundPortName -- The short name ("portname") - of the internal Jack audio input port. -
-- --Examples
-- Here is an example of the JackoAudioInConnect opcode. It uses the file jacko.csd. -
-- -- -See Also
-- JackoInfo, - JackoInfo, - JackoFreewheel, - JackoAudioOutConnect, - JackoMidiInConnect, - JackoMidiOutConnect, - JackoOn, - JackoAudioIn, - JackoAudioOut, - JackoMidiOut, - JackoNoteOut, - JackoTransport. -
-JackoAudioOut - - - - - - - - - - -- - - -- - - diff --git a/JackoAudioOutConnect.html b/JackoAudioOutConnect.html deleted file mode 100644 index 06fb58e9839..00000000000 --- a/JackoAudioOutConnect.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - ---- JackoAudioOut -
-JackoAudioOut — - Sends an audio signal to a Jack port. -
-- -- -Description
-- Plugin opcode in jacko. 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
-- Sends an audio signal to an internal Jack audio - output port, and in turn to its connected external - Jack audio input port. -
-- Note that it is possible to send audio out via Jack - to the system audio interface, while at the same time - rendering to a regular Csound output soundfile. -
-- --Initialization
-- ScsoundPortName -- The short name ("portname") - of the internal Jack audio output port. -
-- -- -Performance
-- asignal -- Audio to be sent to the external Jack audio - input port to which CsoundPortName is connected. -
-- Audio from multiple instances of the opcode sending - to the same Jack port is summed before sending. -
-- -- -See Also
-- JackoInfo, - JackoInfo, - JackoFreewheel, - JackoAudioOutConnect, - JackoMidiInConnect, - JackoMidiOutConnect, - JackoOn, - JackoAudioIn, - JackoMidiOut, - JackoMidiOut, - JackoTransport. -
-JackoAudioOutConnect - - - - - - - - - - -- - - -- - - diff --git a/JackoFreewheel.html b/JackoFreewheel.html deleted file mode 100644 index 169a954be66..00000000000 --- a/JackoFreewheel.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - ---- JackoAudioOutConnect -
-JackoAudioOutConnect — - Creates an audio connection from Csound to a Jack port. -
-- -- -Description
-- Plugin opcode in jacko. 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
-- In the orchestra header, creates an audio connection - from a Jack audio output port inside this instance - of Csound to an external Jack audio input port. -
-- -- -Initialization
-- ScsoundPortName -- The short name ("portname") - of the internal Jack audio output port. -
-- SexternalPortName -- The full name ("clientname:portname") - of an external Jack audio input port. -
-- --Examples
-- Here is an example of the JackoAudioOutConnect opcode. It uses the file jacko.csd. -
-- -- -See Also
-- The Jacko Opcodes, - JackoInfo, - JackoInfo, - JackoFreewheel, - JackoAudioOutConnect, - JackoMidiInConnect, - JackoMidiOutConnect, - JackoOn, - JackoAudioIn, - JackoAudioOut, - JackoMidiOut, - JackoNoteOut, - JackoTransport. -
-JackoFreewheel - - - - - - - - - - -- - - -- - - diff --git a/JackoInfo.html b/JackoInfo.html deleted file mode 100644 index 33799c04fad..00000000000 --- a/JackoInfo.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - ---- JackoFreewheel -
-JackoFreewheel — - Turns Jack's freewheeling mode on or off. -
-- -- - - -Description
-- Plugin opcode in jacko. 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
-- Turns Jack's freewheeling mode on or off. -
-- When freewheeling is on, if supported by the rest - of the Jack system, Csound will run as fast as possible, - which may be either faster or slower than real time. -
-- This is essential for rendering scores that are too - dense for real-time performance to a soundfile, - without xruns or dropouts. -
-- -- -See Also
-- JackoInit, - JackoInfo, - JackoAudioInConnect, - JackoAudioOutConnect, - JackoMidiInConnect, - JackoMidiOutConnect, - JackoOn, - JackoAudioIn, - JackoAudioOut, - JackoMidiOut, - JackoNoteOut, - JackoTransport. -
-JackoInfo - - - - - - - - - - -- - - -- - - diff --git a/JackoInit.html b/JackoInit.html deleted file mode 100644 index 7f2bbeee9c1..00000000000 --- a/JackoInit.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - ---- JackoInfo -
-JackoInfo — - Prints information about the Jack system. -
-- -- -Description
-- Plugin opcode in jacko. 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
-- Prints the Jack daemon and client names, the - sampling rate and frames per period, - and all active Jack port names, - types, states, and connections. -
-- --Initialization
-- May be called any number of times in the orchestra header, - for example both before and after creating Jack ports - in the Csound orchestra header. -
-- --Examples
-- Here is an example of the JackoInfo opcode. It uses the file JackInfo.csd. -
-- --- Example 485. Example of the JackoInfo opcode. -
---See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- --
-- -- -See Also
-- JackoInit, - JackoFreewheel, - JackoAudioInConnect, - JackoAudioOutConnect, - JackoMidiInConnect, - JackoMidiOutConnect, - JackoOn, - JackoAudioIn, - JackoAudioOut, - JackoMidiOut, - JackoNoteOut, - JackoTransport. -
-JackoInit - - - - - - - - - - -- - - -- - - diff --git a/JackoMidiInConnect.html b/JackoMidiInConnect.html deleted file mode 100644 index 3dacfb8be96..00000000000 --- a/JackoMidiInConnect.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - ---- JackoInit -
-JackoInit — - Initializes Csound as a Jack client. -
-- -- -Description
-- Plugin opcode in jacko. 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
-- Initializes this instance of Csound as a Jack client. -
-- Csound's sr must be equal to the Jack daemon's - frames per second. -
-- Csound's ksmps must be equal to the Jack daemon's - frames per period. -
-- Frames per period must not only (a) be a power of 2, - but also (b) go evenly into the frames per second, - e.g. 128 frames per period goes into 48000 - frames per second 375 times, for a latency or - MIDI time granularity of about 2.7 milliseconds - (as good as or better than the absolute best - human performers). -
-- The order of processing of all signals that pass - from Jack input ports, through Csound processing, - and to Jack output ports, must be properly - determined by sequence of instrument and - opcode definition within Csound. -
-- --Initialization
-- SclientName -- The name of the Jack client; - normally, should be "csound". -
-- ServerName -- The name of the Jack daemon; - normally, will be "default". -
-- This opcode must be called once and only once in the - orchestra header, and before any other Jack opcodes. - If more than one instance of Csound is using the Jack - opcodes at the same time, then each instance of Csound - must use a different client name. -
-- --Examples
-- Here is an example of the JackoInit opcode. It uses the file JackoInit.csd. -
-- --- Example 486. Example of the JackoInit opcode. -
---See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
- --
-- -- -See Also
-- JackoInfo, - JackoFreewheel, - JackoAudioInConnect, - JackoAudioOutConnect, - JackoMidiInConnect, - JackoMidiOutConnect, - JackoOn, - JackoAudioIn, - JackoAudioOut, - JackoMidiOut, - JackoNoteOut, - JackoTransport. -
-JackoMidiInConnect - - - - - - - - - - -- - - -- - - diff --git a/JackoMidiOut.html b/JackoMidiOut.html deleted file mode 100644 index bc1016b4ab8..00000000000 --- a/JackoMidiOut.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - ---- JackoMidiInConnect -
-JackoMidiInConnect — - Creates a MIDI connection from a Jack port to Csound. -
-- -- -Description
-- Plugin opcode in jacko. 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
-- In the orchestra header, creates a MIDI connection - from an external Jack MIDI output port to this instance of Csound. -
-- --Initialization
-- SexternalPortName -- The full name ("clientname:portname") - of an external Jack MIDI output port. -
-- ScsoundPortName -- The short name ("portname") - of the internal Jack MIDI input port. -
-- Must be used in conjunction with the - -M0 -+rtmidi=null Csound command-line options. - Can be used in with the MIDI inter-operability - command-line options and/or opcodes to enable the - use of ordinary Csound instrument definitions to - render external scores or MIDI sequences. -
-- Note that Csound can connect to ALSA ports through Jack, - but in that case you will have to identify the port by - its alias in the JackInfo printout. -
-- --Performance
-- The actual MIDI events will be received in the - regular Csound way, i.e. through a MIDI driver - and the sensevents mechanism, rather than through - a Jack input port opcode. -
-- The granularity of timing is Csound's kperiod. -
-- --Examples
-- Here is an example of the JackoMidiInConnect opcode. It uses the file jacko.csd. -
-- -- -See Also
-- JackoInfo, - JackoInfo, - JackoFreewheel, - JackoAudioOutConnect, - JackoAudioOutConnect, - JackoMidiOutConnect, - JackoOn, - JackoAudioIn, - JackoAudioOut, - JackoMidiOut, - JackoNoteOut, - JackoTransport. -
-JackoMidiOut - - - - - - - - - - -- - - -- - - diff --git a/JackoMidiOutConnect.html b/JackoMidiOutConnect.html deleted file mode 100644 index a5318149be1..00000000000 --- a/JackoMidiOutConnect.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - ---- JackoMidiOut -
-JackoMidiOut — - Sends a MIDI channel message to a Jack port. -
-- -- -Description
-- Plugin opcode in jacko. 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
-- Sends a MIDI channel message to a Jack MIDI output port - inside this instance of Csound, and in turn to its - connected external Jack MIDI input port. -
-- --Initialization
-- ScsoundPortName -- The short name ("portname") - of the internal Jack MIDI output port. -
-- -- -Performance
-- kstatus -- MIDI status byte; must indicate a MIDI channel - message. -
-- kchannel -- MIDI channel (from 0 through 15). -
-- kdata1 -- First data byte of a MIDI channel message. -
-- kdata2 -- Optional second data byte of a MIDI channel message. -
-- This opcode can be called any number of times - in the same kperiod. Messages from multiple instances - of the opcode sending to the same port are collected - before sending. -
-- Running status, system exclusive messages, and - real-time messages are not supported. -
-- The granularity of timing is Csound's kperiod. -
-- -- -See Also
-- JackoInfo, - JackoInfo, - JackoFreewheel, - JackoAudioOutConnect, - JackoMidiInConnect, - JackoMidiOutConnect, - JackoOn, - JackoAudioIn, - JackoNoteOut, - JackoTransport. -
-JackoMidiOutConnect - - - - - - - - - - -- - - -- - - diff --git a/JackoNoteOut.html b/JackoNoteOut.html deleted file mode 100644 index c0fe4add508..00000000000 --- a/JackoNoteOut.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - ---- JackoMidiOutConnect -
-JackoMidiOutConnect — - Creates a MIDI connection from Csound to a Jack port. -
-- -- -Description
-- Plugin opcode in jacko. 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
-- In the orchestra header, creates a connection - from a Jack MIDI output port inside this instance - of Csound to an external Jack MIDI input port. -
-- --Initialization
-- ScsoundPortName -- The short name ("portname") - of the internal Jack MIDI output port. -
-- SexternalPortName -- The full name ("clientname:portname") - of an external Jack MIDI input port. -
-- --Performance
-- The actual MIDI data must be written with the JackoMidiOut - or JackoNoteOut opcodes. -
-- --Examples
-- Here is an example of the JackoMidiOutConnect opcode. It uses the file jacko.csd. -
-- -- -See Also
-- JackoInfo - JackoInfo - JackoFreewheel - JackoAudioOutConnect - JackoMidiInConnect - JackoMidiOutConnect - JackoOn - JackoAudioIn - JackoAudioOut - JackoMidiOut - JackoNoteOut - JackoTransport -
-JackoNoteOut - - - - - - - - - - -- - - -- - - diff --git a/JackoOn.html b/JackoOn.html deleted file mode 100644 index 247c6447f6b..00000000000 --- a/JackoOn.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - ---- JackoNoteOut -
-JackoNoteOut — - Sends a MIDI channel message to a Jack port. -
-- -- -Description
-- Plugin opcode in jacko. 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
-- Sends a MIDI channel message to a Jack MIDI output port - inside this instance of Csound, and in turn to its - connected external Jack MIDI input port. -
-- --Initialization
-- ScsoundPortName -- The short name ("portname") - of the internal Jack MIDI output port. -
-- -- -Performance
-- kstatus -- MIDI status byte; must indicate a MIDI channel - message. -
-- kchannel -- MIDI channel (from 0 through 15). -
-- kdata1 -- First data byte of a MIDI channel message. -
-- kdata2 -- Optional second data byte of a MIDI channel message. -
-- This opcode can be called any number of times - in the same kperiod. Messages from multiple instances - of the opcode sending to the same port are collected - before sending. -
-- Running status, system exclusive messages, and - real-time messages are not supported. -
-- The granularity of timing is Csound's kperiod. -
-- -- -See Also
-- JackoInfo, - JackoInfo, - JackoFreewheel, - JackoAudioInConnect, - JackoAudioOutConnect, - JackoMidiInConnect, - JackoMidiOutConnect, - JackoOn, - JackoAudioIn, - JackoMidiOut, - The Jacko Opcodes. -
-JackoOn - - - - - - - - - - -- - - -- - - diff --git a/JackoOpcodes.html b/JackoOpcodes.html deleted file mode 100644 index 58203a35a04..00000000000 --- a/JackoOpcodes.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - ---- JackoOn -
-JackoOn — - Enables or disables all Jack ports. -
-- -- - - -Description
-- Plugin opcode in jacko. 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
-- In the orchestra header, after all Jack connections have been created, enables - or disables all Jack input and output opcodes - inside this instance of Csound to read or write data. -
-- -- -See Also
-- JackoInit, - JackoFreewheel, - JackoAudioInConnect, - JackoAudioOutConnect, - JackoMidiInConnect, - JackoMidiOutConnect, - JackoAudioIn, - JackoAudioOut, - JackoMidiOut, - JackoNoteOut, - JackoTransport. -
-Jacko Opcodes - - - - - - - - - - -- -- - - diff --git a/JackoTransport.html b/JackoTransport.html deleted file mode 100644 index 12ae2b8fd08..00000000000 --- a/JackoTransport.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - -- These opcodes enable the use of Jack ports from within Csound - orchestras and instruments. Ports can receive or send audio - or MIDI data, and send note data. -
-- The Jacko opcodes do not replace the Jack driver and Jack - command-line options for Csound, nor do the Jacko opcodes work - with them (hence the name "Jacko" instead of "Jack"). - The Jacko opcodes are an independent facility that offers - greater flexibility in signal routing. -
-- In addition, the Jacko opcodes can work with the Jack system - in "freewheeling" mode, which enables the use of Jack-enabled - external synthesizers, such as Aeolus or Pianoteq, to render - Csound pieces either faster or, even more importantly, slower - than real time. This is extremely useful for rendering complex - pieces without dropouts using instruments, such as Aeolus, - that may not be available except through Jack. -
-- The Jacko opcodes include: - - JackoInit, - for initializing the current instance of Csound as a Jack client. - - JackoInfo, - for printing information about the Jack daemon, its clients, their ports, - and their connections. - - JackoFreewheel, - for turning Jack's freewheeling mode on or off. - - JackoAudioInConnect, - for creating a connection from an external Jack audio output port to a Jack port in Csound. - - JackoAudioOutConnect, - for creating a connection from a Jack port in Csound to an external Jack audio input port. - - JackoMidiInConnect, - for creating a connection from an external Jack MIDI port. MIDI events from Jack - are received by Csound's regular MIDI opcodes and MIDI interop system. - - JackoMidiOutConnect, - for creating a connection from a Jack port in Csound to an external Jack MIDI input port. - - JackoOn, - for turning Jack ports in Csound on or off. - - JackoAudioIn, - for receiving audio from a Jack input port in Csound, which in turn has received the audio - from its connected external port. - - JackoAudioOut, - for sending audio to a Jack output port in Csound, which in turn will send the audio - on to its connected external port. - - JackoMidiOut, - for sending MIDI channel messages to a Jack output port in Csound, which in turn - will send the MIDI on to its connected external port. - - JackoNoteOut, - for sending a note (with duration) to a Jack output port in Csound, - which in turn will send the note on to its connected external port. - - JackoTransport, - for controlling the Jack transport. -
-- A typical scenario for the use of the Jacko opcodes would be something like this. -
-- -- -Example
-- Here is an example of the Jacko opcodes. It uses the file jacko.csd. -
-- --- Example 7. Example of the Jacko opcodes. -
---- ---<CsoundSynthesizer> -<CsOptions> -csound -m255 -M0 -+rtmidi=null -RWf --midi-key=4 --midi-velocity=5 -o jacko_test.wav -</CsOptions> -<CsInstruments> - -;;;; -;;;; NOTE: this csd must be run after starting "aeolus -t". -;;;; - -sr = 48000 - ; The control rate must be BOTH a power of 2 (for Jack) - ; AND go evenly into sr. This is about the only one that works! -ksmps = 128 -nchnls = 2 -0dbfs = 1 - - JackoInit "default", "csound" - - ; To use ALSA midi ports, use "jackd -Xseq" - ; and use "jack_lsp -A -c" or aliases from JackInfo, - ; probably together with information from the sequencer, - ; to figure out the damn port names. - - ; JackoMidiInConnect "alsa_pcm:in-131-0-Master", "midiin" - JackoAudioInConnect "aeolus:out.L", "leftin" - JackoAudioInConnect "aeolus:out.R", "rightin" - JackoMidiOutConnect "midiout", "aeolus:Midi/in" - - ; Note that Jack enables audio to be output to a regular - ; Csound soundfile and, at the same time, to a sound - ; card in real time to the system client via Jack. - - JackoAudioOutConnect "leftout", "system:playback_1" - JackoAudioOutConnect "rightout", "system:playback_2" - JackoInfo - - ; Turning freewheeling on seems automatically - ; to turn system playback off. This is good! - - JackoFreewheel 1 - JackoOn - - alwayson "jackin" - - instr 1 - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -ichannel = p1 - 1 -itime = p2 -iduration = p3 -ikey = p4 -ivelocity = p5 - JackoNoteOut "midiout", ichannel, ikey, ivelocity - print itime, iduration, ichannel, ikey, ivelocity - endin - - instr jackin - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - JackoTransport 3, 1.0 -aleft JackoAudioIn "leftin" -aright JackoAudioIn "rightin" - - ; Aeolus uses MIDI controller 98 to control stops. - ; Only 1 data value byte is used, not the 2 data - ; bytes often used with NRPNs. - ; The format for control mode is 01mm0ggg: - ; mm 10 to set stops, 0, ggg group (or Division, 0 based). - ; The format for stop selection is 000bbbbb: - ; bbbbb for button number (0 based). - - ; Mode to enable stops for Divison I: b1100010 (98 - ; [this controller VALUE is a pure coincidence]). - - JackoMidiOut "midiout", 176, 0, 98, 98 - - ; Stops: Principal 8 (0), Principal 4 (1) , Flote 8 (8) , Flote 2 (10) - - JackoMidiOut "midiout", 176, 0, 98, 0 - JackoMidiOut "midiout", 176, 0, 98, 1 - JackoMidiOut "midiout", 176, 0, 98, 8 - JackoMidiOut "midiout", 176, 0, 98, 10 - - ; Sends audio coming in from Aeolus out - ; not only to the Jack system out (sound card), - ; but also to the output soundfile. - ; Note that in freewheeling mode, "leftout" - ; and "rightout" simply go silent. - - JackoAudioOut "leftout", aleft - JackoAudioOut "rightout", aright - outs aright, aleft - endin - -</CsInstruments> -<CsScore> -f 0 30 -i 1 1 30 60 60 -i 1 2 30 64 60 -i 1 3 30 71 60 -e 2 -</CsScore> -</CsoundSynthesizer> ---
-JackoTransport - - - - - - - - - - -- - - -- - - diff --git a/MathArtLogic.html b/MathArtLogic.html index 3ab1ace5485..7645aa29ea4 100644 --- a/MathArtLogic.html +++ b/MathArtLogic.html @@ -30,22 +30,28 @@--- JackoTransport -
-JackoTransport — - Control the Jack transport. -
-- -- -Description
-- Plugin opcode in jacko. 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
-- Starts, stops, or repositions the Jack transport. - This is useful, e.g., for starting an external sequencer - playing to send MIDI messages to Csound. -
-- -- -Performance
-- kcommand -- 0 means "no action", 1 starts the transport, - 2 stops the transport, and 3 positions the transport - to kposition seconds from the beginning of performance - (i.e. time 0 in the score). -
-- kposition -- Time to position to the transport, - in seconds from the beginning of performance (i.e. time 0 in the score). -
-- This opcode can be used at init time or during performance. -
-- The granularity of timing is Csound's kperiod. -
-- -- -See Also
-- JackoInfo, - JackoInfo, - JackoFreewheel, - JackoAudioOutConnect, - JackoMidiInConnect, - JackoMidiOutConnect, - JackoOn, - JackoAudioIn, - JackoMidiOut, - JackoNoteOut. -
-Opcodes that perform arithmetic and logic operations are - -, - +, - &&, - ||, - *, - /, - ^, and - %. + -, + +, + &&, + !, + ||, + *, + /, + ^, + <<, + >>, + #, + &, + |, + ¬, + % and cmp. -
See the Conditional Values section and the if family of opcodes for usage of logical operators. diff --git a/MathMatfunc.html b/MathMatfunc.html index 628bc3306cb..1d9ce7c4fb1 100644 --- a/MathMatfunc.html +++ b/MathMatfunc.html @@ -30,7 +30,7 @@
@@ -88,6 +88,13 @@Mathematical Funct +
- +
+ + log2 + +
+- +
- +
++ + qinf + +
+- +
+ + qnan + +
+diff --git a/MathOpeqfunc.html b/MathOpeqfunc.html index 8137dbbb020..d33301c821b 100644 --- a/MathOpeqfunc.html +++ b/MathOpeqfunc.html @@ -30,7 +30,7 @@ diff --git a/MathRndfunc.html b/MathRndfunc.html index 15b0f87a501..f2ff168134e 100644 --- a/MathRndfunc.html +++ b/MathRndfunc.html @@ -30,7 +30,7 @@ diff --git a/MathTop.html b/MathTop.html index a4575e7deb9..867b79e6b47 100644 --- a/MathTop.html +++ b/MathTop.html @@ -38,7 +38,7 @@
Mathematical Operations
diff --git a/MathTrig.html b/MathTrig.html index 66432e793f1..706817e44dd 100644 --- a/MathTrig.html +++ b/MathTrig.html @@ -30,7 +30,7 @@ @@ -46,7 +46,14 @@Trigonometric Functio
- - + +
+- +
diff --git a/MidiConvert.html b/MidiConvert.html index 5486648028e..7c05e47b078 100644 --- a/MidiConvert.html +++ b/MidiConvert.html @@ -30,7 +30,7 @@ @@ -62,12 +62,14 @@+ + signum + +
Converters
- Pitch/frequency to MIDI note number converters: ftom, pchtome. + Pitch/frequency to MIDI note number converters: ftom, pchtom.
- MIDI velocity to amplitude converters: ampmidi and ampmidid. + MIDI velocity to amplitude converters: ampmidi, + ampmidid and + ampmidicurve
- diff --git a/MidiExtender.html b/MidiExtender.html index 8e29fed0088..2ff1be71f0d 100644 --- a/MidiExtender.html +++ b/MidiExtender.html @@ -30,7 +30,7 @@ @@ -39,6 +39,13 @@
Event Extenders
diff --git a/MidiInput.html b/MidiInput.html index 4884058ca67..8aabb479b7b 100644 --- a/MidiInput.html +++ b/MidiInput.html @@ -3,7 +3,7 @@ -MIDI input +MIDI input and Initialization @@ -16,7 +16,7 @@diff --git a/MiscAmp.html b/MiscAmp.html index f322c3e6888..f329f9109d9 100644 --- a/MiscAmp.html +++ b/MiscAmp.html @@ -35,7 +35,7 @@
- MIDI input +MIDI input and Initialization Prev @@ -30,7 +30,7 @@ @@ -53,7 +53,12 @@MIDI input
MIDI Controller input for MIDI-triggered instruments only: midic7, midic14 and midic21.
- -
+MIDI controller value initialization: initc7, initc14, initc21 and ctrlinit.
+MIDI controller value initialization: initc7, initc14, + initc21, ctrlinit, ctrlpreset, ctrlprint, + ctrlprintpresets, ctrlsave and ctrlselect.
+- +
MIDI file input information: midifilestatus.
Generic MIDI input: midiin.
diff --git a/MidiInterop.html b/MidiInterop.html index e700f641476..ea21e1baa65 100644 --- a/MidiInterop.html +++ b/MidiInterop.html @@ -30,7 +30,7 @@ diff --git a/MidiOnoff.html b/MidiOnoff.html index 831e76392e8..0916bbce31d 100644 --- a/MidiOnoff.html +++ b/MidiOnoff.html @@ -30,7 +30,7 @@ @@ -39,6 +39,13 @@Note-on/Note-off Out
@@ -160,7 +167,7 @@
MIDI Message Output
Next - MIDI input +MIDI input and Initialization Home diff --git a/MidiRealtime.html b/MidiRealtime.html index f3894cf2922..0440aa3954e 100644 --- a/MidiRealtime.html +++ b/MidiRealtime.html @@ -30,7 +30,7 @@ diff --git a/MidiSlidrbk.html b/MidiSlidrbk.html index d5fcdabf64d..b52e2d3b5a5 100644 --- a/MidiSlidrbk.html +++ b/MidiSlidrbk.html @@ -30,7 +30,7 @@ diff --git a/MidiTop.html b/MidiTop.html index aae7ab11a38..5d3948c213e 100644 --- a/MidiTop.html +++ b/MidiTop.html @@ -10,7 +10,7 @@ - +@@ -71,7 +71,7 @@Real-time MIDI Support
You can also load a MIDI file using the -F or --midifile=FILE command line flag. The MIDI file is read in realtime, and behaves as if it was being performed or received in realtime. So the csound program is not aware if MIDI input comes from a MIDI file or directly from a MIDI interface.- Once realtime MIDI input and/or output has been activated, opcodes like MIDI Input and MIDI Output will have effect. + Once realtime MIDI input and/or output has been activated, opcodes like MIDI Input and MIDI Output will have effect.
When MIDI input is enabled (with -M or -F), each incoming noteon message will generate a note event for an instrument which has the same number as the channel of the event (This means that MIDI controlled instruments are polyphonic by default, since each note will generate a new instance of the instrument.) @@ -133,7 +133,7 @@
Real-time MIDI Support
@@ -243,7 +243,7 @@Virtual MIDI Keybo The ASCII keyboard MIDI note values are given in the following table.
- +Table 5. ASCII Keyboard MIDI Note Values
@@ -385,7 +385,7 @@Virtual MIDI Keybo Here's an example of usage of the virtual MIDI keyboard. It uses the file virtual.csd.
- +<CsoundSynthesizer> <CsOptions>; Select audio/midi flags here according to platform @@ -455,7 +455,7 @@Virtual MIDI Keybo
Home -MIDI input +MIDI input and Initialization Appendix C. Sound Intensity Values
- +-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 + +
+ + +gendy.csd @@ -1236,12 +1254,24 @@
+Appendix A. List of examples
+ + poisson2.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
+ +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 + +
+ + @@ -1640,6 +1688,18 @@Appendix A. List of examples
++ + scanu2-2.csd + +
+ ++ + scanu2-3.csd + +
+xscanmap.csd @@ -1877,8 +1937,8 @@
@@ -3198,12 +3258,6 @@Appendix A. List of examples
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_gt.csd @@ -4122,6 +4188,12 @@
+Appendix A. List of examples
+ + tigoto2.csd + +
+timout.csd @@ -4180,12 +4252,6 @@
- -Appendix A. List of examples
maxalloc.csd @@ -4674,22 +4740,6 @@
-Appendix A. List of examples
- Jacko Opcodes. -
- - - - -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
OSCraw.csd @@ -8012,12 +8086,6 @@
- -Appendix A. List of examples
framebuffer.csd @@ -8030,6 +8098,12 @@
+ +Appendix A. List of examples
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, imodechn_S Sname, imodechn_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, icountmaxalloc 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.
- @@ -38,9 +38,14 @@Prev +Prev Part II. Opcodes Overview Next 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
- Prev +Prev Up Next - STK Opcodes +Ableton Link Opcodes Home diff --git a/MixerClear.html b/MixerClear.html index 553e7ab3957..2cc4d919ffc 100644 --- a/MixerClear.html +++ b/MixerClear.html @@ -39,7 +39,13 @@+ -
- +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.
+ diff --git a/MixerGetLevel.html b/MixerGetLevel.html index 1d40b86f7f3..0b7aaaf6307 100644 --- a/MixerGetLevel.html +++ b/MixerGetLevel.html @@ -39,12 +39,7 @@-
- ++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
+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.
+ diff --git a/MixerOpcodes.html b/MixerOpcodes.html index d7e45037ae2..2635adc7e10 100644 --- a/MixerOpcodes.html +++ b/MixerOpcodes.html @@ -9,8 +9,8 @@ - - + +@@ -19,9 +19,9 @@Mixer Opcodes - Prev +Prev Part II. Opcodes Overview -Next +Next
@@ -57,20 +57,20 @@Mixer Opcodes
diff --git a/MixerReceive.html b/MixerReceive.html index 0af7a5c55fb..5fa04409413 100644 --- a/MixerReceive.html +++ b/MixerReceive.html @@ -39,24 +39,24 @@
- Prev +Prev Up -Next +Next - Remote Opcodes ++ Signal Flow Graph Opcodes + Home -- Signal Flow Graph Opcodes - +External Plugin Opcodes - +
+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.
+ diff --git a/MixerSend.html b/MixerSend.html index a9ce0d619f7..476e113bde0 100644 --- a/MixerSend.html +++ b/MixerSend.html @@ -39,18 +39,18 @@- +
+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.
+ diff --git a/MixerSetLevel.html b/MixerSetLevel.html index eae45ea2aaa..7a41f43e274 100644 --- a/MixerSetLevel.html +++ b/MixerSetLevel.html @@ -39,12 +39,7 @@-
- ++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
+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.
+ 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 @@-
- ++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
+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
- +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 @@Examples
In the orchestra header, set the gain for the send from buss 3 to buss 4:
MixerSetLevel_i 3, 4, 0.76
+Network - Prev -OSC and Network +Prev +OSC, Network and non-MIDI Devices Next Network
- Prev +Prev Up Next - OSC +OSC, Network and non-MIDI Devices Home 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 - - - - - - - - - - -- -- - - diff --git a/OSCNetwork.html b/OSCNetwork.html index cc1c3f4f354..61e8fe423ca 100644 --- a/OSCNetwork.html +++ b/OSCNetwork.html @@ -3,25 +3,25 @@ -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.
-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 @@
- OSC and Network +OSC, Network and non-MIDI Devices - Prev +Prev Part II. Opcodes Overview -Next +Next
@@ -30,7 +30,7 @@ @@ -38,97 +38,75 @@OSC and Network
--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. +
OSC enables interaction between different + audio processes, and in particular between Csound and other synthesis + engines.
+Multiple OSC servers can be set up, separately or together + with the Csound (UDP server).
+The following opcodes are available:
+
- -
-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.
+OSCinit - Start + an OSC listener thread.
- -
link_tempo_set - Returns the tempo of the network's Ableton Link session.
+OSClisten - + Receive OSC messages.
- -
link_beat_get - Returns the beat, phase, and current time of Ableton Link for this session for a given quantum.
+OSCsend - Send + an OSC message.
- -
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.
+OSCinitM + - Start to list for multicast OSC messages. +
- -
link_beat_request - Requests a beat with a specific number at a specific time at a given quantum.
+OSCraw + - Listen for all OSC messages. +
- -
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.
+OSCcount + - Count of OSC messages currently unread. +
- -
link_peers - Returns the number of peers currently joined in the network Ableton Link session.
+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.
+UDP server supported added in Csound 7.0.
- +Description
Uses the OSC protocol to send one or more messages to other OSC listening @@ -50,13 +50,13 @@
Description
- +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.
- -See Also
+ +See also
+ + OSC (Open Sound Control) + + +More information on this opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y , made by Andrés Cabrera
- -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
- -See Also
+ +See also
+ + OSC (Open Sound Control) + +More information on this opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y , made by Andrés Cabrera
- -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:
CSD file to receive OSC messages:
+
+ 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
+ + 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 ffitch +Author: John ffitch Victor Lazzarini - 2005 +2005, 2024 - Examples by: David Akbari, Andrés Cabrera and Jonathan Murphy 2007 +Examples 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
- +-- +-- Example 694. Example. + Example 698. Example.
-The following CSD file demonstrates how a message is received by OSCraw:
- -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 @@
- +diff --git a/RealTimeLinux.html b/RealTimeLinux.html index a5d3d62aa89..c07b1166981 100644 --- a/RealTimeLinux.html +++ b/RealTimeLinux.html @@ -42,7 +42,28 @@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.
- -See Also
+ +See also
+ + 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
diff --git a/OrchNamedInstruments.html b/OrchNamedInstruments.html index 086e66e3cfa..229648587f1 100644 --- a/OrchNamedInstruments.html +++ b/OrchNamedInstruments.html @@ -43,7 +43,7 @@Named Ins @@ -133,7 +133,7 @@
Syntax
@@ -209,7 +209,7 @@Using Named Instruments
@@ -261,7 +261,7 @@Example
diff --git a/OrchUDO.html b/OrchUDO.html index 940cdc24709..088fdd0b3f9 100644 --- a/OrchUDO.html +++ b/OrchUDO.html @@ -62,7 +62,30 @@User Defined Opcodes (
See the entry for opcode for detailed information on UDO definition.
- You can find many ready-made UDO's (or contribute your own) at Csounds.com's User Defined Opcode Database. + Other opcodes that are to be used in a UDO are: +
++++
+- +
++ + oversample + +
+- +
++ + undersample + +
++
++ You can find many ready-made UDO's (or contribute your own) at Csound's User Defined Opcode Database.
diff --git a/Orchtab.html b/Orchtab.html index 58df7fe03db..70e3f9c03f1 100644 --- a/Orchtab.html +++ b/Orchtab.html @@ -10,7 +10,7 @@ - + diff --git a/OviewFrontEnds.html b/OviewFrontEnds.html index e30d5fb4e23..a8fbc03948e 100644 --- a/OviewFrontEnds.html +++ b/OviewFrontEnds.html @@ -40,25 +40,25 @@+Front Ends
Most often, you'll want to download and install Csound itself before downloading and installing a front end. Some front ends require particular versions of Csound, so if you plan to use a front end, it's recommended that you verify its compatibility before installing Csound.
-CsoundQt
+CsoundQt
CsoundQt is a versatile, cross-platform GUI (graphical user interface) which is bundled with the standard Csound distribution. Created and maintained by Andres Cabrera, QuteCsound provides a multi-tabbed editor, graphic widgets for real-time sound control, and an opcode help system that links to this manual. At this writing (2013) CsoundQt is in active development, so the version installed in your system when you install Csound may not be the most current. The most recent version can be found at https://csoundqt.github.io/.
-Blue
+Blue
A cross-platform composition-oriented front end written by Steven Yi in Java. The user interface provides a timeline structured somewhat like a digital multitrack, but differs in that timelines can be embedded within timelines (polyObjects). This allows for a compositional organization in time that many users will find intuitive, informative, and flexible. Each instrument and score section in a blue project has its own editing window, which makes organizing large projects easier. Blue can be downloaded at Blue Home Page.
-Cabbage
+Cabbage
Cabbage is a Csound frontend that provides users with the means to develop audio plugins and standalone software across the three major operating systems. While Cabbage makes use of underlying plugin technologies such as Steinberg's VST SDK, ASIO, etc, Csound is used to process all incoming and outgoing audio. Cabbage also provides a growing collection of GUI widgets ranging from simple sliders to automatable XY-pads. All GUI widgets in a Cabbage plugin can be controlled via host automation in a plugin host, thereby providing a quick and effective means of automating Csound instrument parameters in both commercial and non-commercial DAWs. Cabbage can be downloaded at https://github.com/rorywalsh/cabbage/.
-WinXound
+WinXound
WinXound is a free and open-source Front-End GUI Editor with syntax highlighting for CSound 6, CSoundAV, CSoundAC, with Python and Lua support, developed by Stefano Bonetti. -It runs on Microsoft Windows, Apple Mac OsX and Linux. You can get it at the WinXsound Front Page. +It runs on Microsoft Windows, Apple Mac OsX and Linux. You can get it at the WinXound Front Page.
-Visual Studio Code
+Visual Studio Code
Visual Studio Code is a tool that combines the simplicity of a code editor with what developers need for the core edit-build-debug cycle. Homepage: https://code.visualstudio.com/. diff --git a/PartOpcodesOverview.html b/PartOpcodesOverview.html index 83e0f54e2fb..a9f99342881 100644 --- a/PartOpcodesOverview.html +++ b/PartOpcodesOverview.html @@ -9,7 +9,7 @@ - +
@@ -19,7 +19,7 @@Part II. Opcodes Overview - @@ -267,40 +267,6 @@Prev +Prev Next Part II. Opcodes OverviewDuration Control Statements -
- - - FLTK Widgets and GUI controllers - -
-- -
-
-- - - FLTK Containers - -
-- - - FLTK Valuators - -
-- - - Other FLTK Widgets - -
-- - - Modifying FLTK Widget Appearance - -
-- - - General FLTK Widget-related Opcodes - -
-- Instrument Invocation @@ -458,7 +424,7 @@
Part II. Opcodes Overview
- - MIDI input + MIDI input and Initialization
- @@ -612,52 +578,33 @@
Part II. Opcodes Overview
- - Plugin Hosting - -
-- -
--
-- - - DSSI and LADSPA for Csound - -
-- - - OSC and Network + OSC, Network and non-MIDI Devices
- -
- - Ableton Link Opcodes + OSC
- - OSC + Network
- - Network + Remote Opcodes
- - Remote Opcodes + non-MIDI Devices
- - - Mixer Opcodes - -
- @@ -667,38 +614,57 @@
Part II. Opcodes Overview
- - Jacko Opcodes + Mixer Opcodes
- - Python Opcodes + External Plugin Opcodes
- -
- - Introduction + FLTK Widgets and GUI controllers
+- +
+
+- + + FLTK Containers + +
+- + + FLTK Valuators + +
+- + + Other FLTK Widgets + +
+- + + Modifying FLTK Widget Appearance + +
+- + + General FLTK Widget-related Opcodes + +
+- - Orchestra Syntax + Ableton Link Opcodes
- - - Image processing opcodes - -
-- - - STK Opcodes - -
- Miscellaneous opcodes @@ -706,17 +672,71 @@
Part II. Opcodes Overview
+ +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 ++ ++ +Currently only LADSPA plugins are supported, but DSSI support is planned.
+diff --git a/PrefaceTop.html b/PrefaceTop.html index 822963b126c..bb952139f26 100644 --- a/PrefaceTop.html +++ b/PrefaceTop.html @@ -61,7 +61,7 @@
- Prev +Prev Next - Strings in p-fields +Csound Links Home diff --git a/PartOverview.html b/PartOverview.html index c165c9d418d..7d1d23afd71 100644 --- a/PartOverview.html +++ b/PartOverview.html @@ -9,7 +9,7 @@ - + @@ -155,6 +155,15 @@Part I. Overview
Real-Time Audio +- +
+
+- + + Optimizing Audio I/O Latency + +
+- Realtime I/O on Linux @@ -175,11 +184,6 @@
-Part I. Overview
Realtime I/O with JACK Connection Kit- - - Optimizing Audio I/O Latency - -
- @@ -260,7 +264,7 @@
Part I. Overview
- - Function Syntax in Csound6 + Function Syntax
- @@ -365,7 +369,7 @@
Part I. Overview
Next - What's new in Csound 6.18.0 +What's new in Csound 7.0 Home diff --git a/PartReference.html b/PartReference.html index 3f03b1ba00c..55376e44478 100644 --- a/PartReference.html +++ b/PartReference.html @@ -4113,118 +4113,6 @@Part III. Reference
— Reads multi-channel audio samples into a ZAK array from an external device or stream. - - -- - - JackoAudioIn - - — - Receives an audio signal from a Jack port. - -
-- - - JackoAudioInConnect - - — - Creates an audio connection from a Jack port to Csound. - -
-- - - JackoAudioOut - - — - Sends an audio signal to a Jack port. - -
-- - - JackoAudioOutConnect - - — - Creates an audio connection from Csound to a Jack port. - -
-- - - JackoFreewheel - - — - Turns Jack's freewheeling mode on or off. - -
-- - - JackoInfo - - — - Prints information about the Jack system. - -
-- - - JackoInit - - — - Initializes Csound as a Jack client. - -
-- - - JackoMidiInConnect - - — - Creates a MIDI connection from a Jack port to Csound. - -
-- - - JackoMidiOutConnect - - — - Creates a MIDI connection from Csound to a Jack port. - -
-- - - JackoMidiOut - - — - Sends a MIDI channel message to a Jack port. - -
-- - - JackoNoteOut - - — - Sends a MIDI channel message to a Jack port. - -
-- - - JackoOn - - — - Enables or disables all Jack ports. - -
-- - - JackoTransport - - — - Control the Jack transport. - -
-- - - jacktransport - - — - Start/stop jack_transport and can optionally relocate the playback head.
- @@ -5837,7 +5725,7 @@
Part III. Reference
oscil — - A simple oscillator. + A simple oscillator without any interpolation.- @@ -5934,7 +5822,8 @@
Part III. Reference
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.- @@ -6239,6 +6128,14 @@
+Part III. Reference
— Writes multi-channel audio data from a ZAK array to an external device or stream. + +- + + oversample + + — + Sets a higher local sampling rate based on an oversampling factor.
- @@ -7326,6 +7223,14 @@
+Part III. Reference
— Generates a controlled random number series. +- + + randc + + — + Generates a controlled random number series with cubic interpolation between each new number. +
- @@ -9704,7 +9609,7 @@
Part III. Reference
trim — - Adjust size o a one-dimensional array. + Adjust size of a one-dimensional array.- @@ -9794,6 +9699,14 @@
+Part III. Reference
— A time-varying convolution (FIR filter) opcode. + +- + + undersample + + — + Sets a lower local sampling rate based on an undersampling factor.
- @@ -11577,32 +11490,31 @@
Part III. Reference
- - abetarand + array — Deprecated. -
- - abexprnd + bformdec — - Deprecated. + Deprecated. Decodes an ambisonic B format signal.
- - acauchy + bformenc — - Deprecated. - + Deprecated. Codes a signal into the ambisonic B format. +
- - aexprand + clock — Deprecated. @@ -11610,15 +11522,23 @@
Part III. Reference
- - agauss + fin — - Deprecated. - + Read signals from a file at a-rate. + +
+- + + hrtfer + + — + Creates 3D audio for two speakers. +
- - agogobel + instimek — Deprecated. @@ -11626,7 +11546,7 @@
Part III. Reference
- - alinrand + instimes — Deprecated. @@ -11634,7 +11554,7 @@
Part III. Reference
- - apcauchy + is16b14 — Deprecated. @@ -11642,7 +11562,7 @@
Part III. Reference
- - apoisson + is32b14 — Deprecated. @@ -11650,7 +11570,7 @@
Part III. Reference
- - apow + islider16 — Deprecated. @@ -11658,15 +11578,15 @@
Part III. Reference
- - array + islider32 — Deprecated. - +
- - atrirand + islider64 — Deprecated. @@ -11674,7 +11594,7 @@
Part III. Reference
- - aunirand + islider8 — Deprecated. @@ -11682,7 +11602,7 @@
Part III. Reference
- - aweibull + itablecopy — Deprecated. @@ -11690,23 +11610,23 @@
Part III. Reference
- - bformdec + itablegpw — - Deprecated. Decodes an ambisonic B format signal. - + Deprecated. +
- - bformenc + itablemix — - Deprecated. Codes a signal into the ambisonic B format. - + Deprecated. +
- - clock + itablew — Deprecated. @@ -11714,55 +11634,55 @@
Part III. Reference
- - fin + ktableseg — - Read signals from a file at a-rate. + Deprecated.
- - hrtfer + sc_lag — - Creates 3D audio for two speakers. + Exponential Lag (DEPRECATED)
- - ibetarand + sc_lagud — - Deprecated. - + Exponential Lag (Deprecated) +
- - ibexprnd + sc_phasor — - Deprecated. - + A resettable linear ramp between two levels (renamed as trigphasor) +
- - icauchy + sc_trig — - Deprecated. - + Timed trigger (Replaced by trighold) +
- - ictrl14 + sndload — - Deprecated. - + Loads a sound file into memory for use by loscilx +
- - ictrl21 + peakk — Deprecated. @@ -11770,683 +11690,123 @@
Part III. Reference
- - ictrl7 + specaddm — - Deprecated. + Perform a weighted add of two input spectra.
- - iexprand + specdiff — - Deprecated. - + Finds the positive difference values between consecutive spectral frames. +
- - igauss + specdisp — - Deprecated. - + Displays the magnitude values of the spectrum. +
- - ilinrand + specfilt — - Deprecated. - + Filters each channel of an input spectrum. +
- - imidic14 + spechist — - Deprecated. - + Accumulates the values of successive spectral frames. +
- - imidic21 + specptrk — - Deprecated. - + Estimates the pitch of the most prominent complex tone in the spectrum. +
- - imidic7 + specscal — - Deprecated. - + Scales an input spectral datablock with spectral envelopes. +
- - instimek + specsum — - Deprecated. - + Sums the magnitudes across all channels of the spectrum. +
- - instimes + spectrum — - Deprecated. - + Generate a constant-Q, exponentially-spaced DFT. +
- - ioff + pop — - Deprecated. - + Pops values from the global stack. Deprecated. +
- - ion + pop_f — - Deprecated. - + Pops an f-sig frame from the global stack. Deprecated. +
- - iondur2 + ptable — - Deprecated. - + Accesses table values by direct indexing. +
- - iondur + ptablei — - Deprecated. - + Accesses table values by direct indexing with linear interpolation. +
- - ioutat + ptable3 — - Deprecated. - + Accesses table values by direct indexing with cubic interpolation. +
- - ioutc14 + ptablew — - Deprecated. - -
-- - - ioutc - - — - Deprecated. - -
-- - - ioutpat - - — - Deprecated. - -
-- - - ioutpb - - — - Deprecated. - -
-- - - ioutpc - - — - Deprecated. - -
-- - - ipcauchy - - — - Deprecated. - -
-- - - ipoisson - - — - Deprecated. - -
-- - - ipow - - — - Deprecated. - -
-- - - is16b14 - - — - Deprecated. - -
-- - - is32b14 - - — - Deprecated. - -
-- - - islider16 - - — - Deprecated. - -
-- - - islider32 - - — - Deprecated. - -
-- - - islider64 - - — - Deprecated. - -
-- - - islider8 - - — - Deprecated. - -
-- - - itablecopy - - — - Deprecated. - -
-- - - itablegpw - - — - Deprecated. - -
-- - - itablemix - - — - Deprecated. - -
-- - - itablew - - — - Deprecated. - -
-- - - itrirand - - — - Deprecated. - -
-- - - iunirand - - — - Deprecated. - -
-- - - iweibull - - — - Deprecated. - -
-- - - kbetarand - - — - Deprecated. - -
-- - - kbexprnd - - — - Deprecated. - -
-- - - kcauchy - - — - Deprecated. - -
-- - - kdump2 - - — - Deprecated. - -
-- - - kdump3 - - — - Deprecated. - -
-- - - kdump4 - - — - Deprecated. - -
-- - - kdump - - — - Deprecated. - -
-- - - kexprand - - — - Deprecated. - -
-- - - kfilter2 - - — - Deprecated. - -
-- - - kgauss - - — - Deprecated. - -
-- - - klinrand - - — - Deprecated. - -
-- - - kon - - — - Deprecated. - -
-- - - koutat - - — - Deprecated. - -
-- - - koutc14 - - — - Deprecated. - -
-- - - koutc - - — - Deprecated. - -
-- - - koutpat - - — - Deprecated. - -
-- - - koutpb - - — - Deprecated. - -
-- - - koutpc - - — - Deprecated. - -
-- - - kpcauchy - - — - Deprecated. - -
-- - - kpoisson - - — - Deprecated. - -
-- - - kpow - - — - Deprecated. - -
-- - - kread2 - - — - Deprecated. - -
-- - - kread3 - - — - Deprecated. - -
-- - - kread4 - - — - Deprecated. - -
-- - - kread - - — - Deprecated. - -
-- - - ktableseg - - — - Deprecated. - -
-- - - ktrirand - - — - Deprecated. - -
-- - - kunirand - - — - Deprecated. - -
-- - - kweibull - - — - Deprecated. - -
-- - - sc_lag - - — - Exponential Lag (DEPRECATED) - -
-- - - sc_lagud - - — - Exponential Lag (Deprecated) - -
-- - - sc_phasor - - — - A resettable linear ramp between two levels (renamed as trigphasor) - -
-- - - sc_trig - - — - Timed trigger (Replaced by trighold) - -
-- - - sndload - - — - Loads a sound file into memory for use by loscilx - -
-- - - peakk - - — - Deprecated. - -
-- - - specaddm - - — - Perform a weighted add of two input spectra. - -
-- - - specdiff - - — - Finds the positive difference values between consecutive spectral frames. - -
-- - - specdisp - - — - Displays the magnitude values of the spectrum. - -
-- - - specfilt - - — - Filters each channel of an input spectrum. - -
-- - - spechist - - — - Accumulates the values of successive spectral frames. - -
-- - - specptrk - - — - Estimates the pitch of the most prominent complex tone in the spectrum. - -
-- - - specscal - - — - Scales an input spectral datablock with spectral envelopes. - -
-- - - specsum - - — - Sums the magnitudes across all channels of the spectrum. - -
-- - - spectrum - - — - Generate a constant-Q, exponentially-spaced DFT. - -
-- - - pop - - — - Pops values from the global stack. Deprecated. - -
-- - - pop_f - - — - Pops an f-sig frame from the global stack. Deprecated. - -
-- - - ptable - - — - Accesses table values by direct indexing. - -
-- - - ptablei - - — - Accesses table values by direct indexing with linear interpolation. - -
-- - - ptable3 - - — - Accesses table values by direct indexing with cubic interpolation. - -
-- - - ptablew - - — - Change the contents of existing function tables of any length. - + Change the contents of existing function tables of any length. +
- @@ -12642,35 +12002,6 @@
Part III. Reference
-- - - Cscore - -
-- -
-
-- - - Events, Lists, and Operations - -
-- - - Writing a Cscore Control Program - -
-- - - Compiling a Cscore Program - -
-- - - More Advanced Examples - -
-- Csbeats diff --git a/PitchTop.html b/PitchTop.html index 7f14392dea3..17569ce4183 100644 --- a/PitchTop.html +++ b/PitchTop.html @@ -38,7 +38,7 @@
Pitch Converters
@@ -77,92 +77,92 @@Functions
- diff --git a/PitchTuning.html b/PitchTuning.html index 6085a751f63..13237824191 100644 --- a/PitchTuning.html +++ b/PitchTuning.html @@ -30,7 +30,7 @@ diff --git a/PluginTop.html b/PluginTop.html index eb64aff504d..83770dcd531 100644 --- a/PluginTop.html +++ b/PluginTop.html @@ -3,25 +3,25 @@ -
Plugin Hosting +External Plugin Opcodes - - + +
- Plugin Hosting +External Plugin Opcodes - Prev +Prev Part II. Opcodes Overview -Next +Next
@@ -30,65 +30,759 @@- Csound currently hosts external plugins using dssi4cs (for LADSPA plugins) on Linux. + A number of external plugin opcodes are documented in this + manual, but they are not maintained as part of the main Csound system + code. These are instead available externally from a separate + repository.
+Available for 6.x and 7.x:
+Available for 6.x only:
-diff --git a/PrefaceGettingStarted.html b/PrefaceGettingStarted.html index 7bf29c8b621..1cc55741fb6 100644 --- a/PrefaceGettingStarted.html +++ b/PrefaceGettingStarted.html @@ -10,7 +10,7 @@ - +dssi4cs enables the use of DSSI and LADSPA plugin - effects and synthesizers within Csound on Linux. The following opcodes are - available:
--@@ -96,18 +790,18 @@-
- +
+ 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
+- dssiinit - Loads a plugin.
- -- + +
- + Valuators +
+- +
- dssiactivate - Activates or deactivates a plugin if it has this facility
- -- + 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
+- dssilist - Lists all available plugins found in the LADSPA_PATH and DSSI_PATH global variables.
-- + +
- + Other widgets +
+- +
- dssiaudio - Process audio using a Plugin.
- -- + There are other FTLK widgets + that are not valuators nor containers: + +
+ +++
+- Buttons
+- Button banks
+- Labels
+- Keyboard and Mouse sensing
+- dssictls - Send control information to a plugin's control port.
-+
++ 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
- See the entry for dssiinit for a usage example.
---
+- -- - -Note -- -- -Currently only LADSPA plugins are supported, but DSSI support is planned.
-+ 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. +
++ +++ The opcodes for FLTK containers are: +
++++
+- +
++ + FLgroup + +
+- +
++ + FLgroupEnd + +
+- +
++ + FLpack + +
+- +
++ + FLpackEnd + +
+- +
++ + FLpanel + +
+- +
++ + FLpanelEnd + +
+- +
++ + FLscroll + +
+- +
++ + FLscrollEnd + +
+- +
++ + FLtabs + +
+- +
++ + FLtabsEnd + +
++
++ +++ The opcodes for FLTK valuators are: +
++++
+- +
++ + FLcount + +
+- +
++ + FLjoy + +
+- +
++ + FLknob + +
+- +
++ + FLroller + +
+- +
++ + FLslider + +
+- +
++ + FLtext + +
++
++ +++ Other FLTK widget opcodes are: +
++++
+- +
++ + FLbox + +
+- +
++ + FLbutBank + +
+- +
++ + FLbutton + +
+- +
++ + FLexecButton + +
+- +
++ + FLkeyIn + +
+- +
++ + FLhvsBox + +
+- + +
+- +
++ + FLmouse + +
+- +
++ + FLprintk + +
+- +
++ + FLprintk2 + +
+- +
++ + FLslidBnk + +
+- +
++ + FLslidBnk2 + +
+- + +
+- +
++ + FLslidBnkSet + +
+- + +
+- + +
+- +
++ + FLvalue + +
+- +
++ + FLvkeybd + +
+- +
++ + FLvslidBnk + +
+- +
++ + FLvslidBnk2 + +
+- +
++ + FLxyin + +
++
++ ++The following opcodes modify FLTK widget appearance:
++++
+- +
++ + FLcolor + +
+- +
++ + FLcolor2 + +
+- +
++ + FLhide + +
+- +
++ + FLlabel + +
+- +
++ + FLsetAlign + +
+- +
++ + FLsetBox + +
+- +
++ + FLsetColor + +
+- +
++ + FLsetColor2 + +
+- +
++ + FLsetFont + +
+- + +
+- +
++ + FLsetSize + +
+- +
++ + FLsetText + +
+- + +
+- + +
+- + +
+- +
++ + FLsetVal_i + +
+- +
++ + FLsetVal + +
+- +
++ + FLshow + +
++ ++ The general FLTK widget-related opcodes are: +
++++
+- +
++ + FLgetsnap + +
+- +
++ + FLloadsnap + +
+- +
++ + FLrun + +
+- +
++ + FLsavesnap + +
+- +
++ + FLsetsnap + +
+- +
++ + FLupdate + +
+- + +
++
DSSI and LADSPA for Cs
- Prev +Prev Up -Next +Next - Zak Patch System +Mixer Opcodes Home -OSC and Network +Python Opcodes @@ -170,7 +170,7 @@Writing your own .csd files
Home -What's new in Csound 6.18.0 +What's new in Csound 7.0 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 @@diff --git a/RealTimeJack.html b/RealTimeJack.html index a1cbdeb3354..18a2f75f6c4 100644 --- a/RealTimeJack.html +++ b/RealTimeJack.html @@ -10,7 +10,7 @@ - +
- What's new in Csound 6.18.0 +What's new in Csound 7.0 Prev @@ -30,7581 +30,13 @@ -Release Notes for Csound 6.18 (2022 October)
-- Mainly a bug-fixing release. Major new facility is MP3 (MPEG) audio files - support is now implemented for both input and output with libsndfile. -
--
----
-- -
-New opcodes: -
----
-- - scanmap - reads internal state of scanu. -
-- - elapsedcycles, elapsedtime, eventcycles, and eventtime. See - under "bugs fixed" for details. -
--
-- -
-Modified Opcodes and Gens: -
----
-- - Fixed midi list printing to stdout part of the list. -
--
-- -
-Bug fixes and improvements: -
----
-- Fixed bug in sum.
-- - pitchamd opcode caused segmentation fault (macOS) (#1599) -
-- - Fixed crash on channel setting with empty channel name. -
-- Fixed bug in ftloadk (#1611).
-- - Now, qnan works even when compiled with fast arithmetic. -
-- - Fixed the flanger opcode for sample-accurate mode, where the - xdel input was not being correctly offset. -
-- - elapsedcycles, elapsedtime, eventcycles, and eventtime - (introduced as fixed versions of timek, times, timeinstk and - timeinsts) now return the correct values instead of being one - cycle late. This preserves backward compatability. -
-- Protect against types not given as strings.
-- - Fixed OSClisten and OSCsend_lo to work with zero-data messages. -
-- Changing OSCsend to match manual.
-- rifft segfaulted for non n^2+1 arrays. Fixed.
-- Fixed sum.
-- Calling csound via exec() in PHP hanged Apache.
-- - instr0 can't be freed and this won't be changed in 6.*. - Added comments to that effect. -
-- Channel issue fixed (#1631). -
--
-- -
-System Changes: -
----
-- - Fix for issue #1613: fixes the rtauhal module for all cases of - multichannel output. Previously the module would not work - correctly with some devices. -
-- - Csound now supports MP3 files for input and output. -
--
-- -
-Platform Specific: -
----
-- - Many changes to Bela csound. See bela web site for details. -
--
--
-Release Notes for Csound 6.17 (2022 February)
-- Mainly a bug-fixing release but also a major re-organisation of the - libraries to move all opcodes with dependencies into a separate plugins - repository. The only exception to this is the OSC opcodes (which - depend on liblo). This is in part a preparation for Csound7. This is - the last release using the current parser (v.2). -
--
----
-- -
-New opcodes: -
----
-- - scanmap and scansmap are like the xscanmap/xscansmap opcodes but - work with the mainstream scan opcodes. -
-- - trigexpseg, triglinseg are aliases for trigExpseg, trigLinseg. -
-- - xscan opcodes are deprecated as they add nothing to the scan - opcodes. -
-- - bformdec2 provides more ambisonic decoding of bformat audio. -
-- - metrobpm is like metro but the timing is in beats per minute - and the signal can be offset by a proportion of the cycle. -
-- - sequ is a csound version of an hardware sequencer. It has many - modes and options. -
-- - gtadsr implements a gated ADSR envelope. -
--
-- -
-- Orchestra: -
----
-- - Message printing has been revised so -m0 suppresses (nearly) - all messages. -
-- - add channel count to list_audio_devices (called when the flag - --devices is used so that it can be parsed by frontends. -
--
-- -
-Modified Opcodes and Gens: -
----
-- - Event opcode does not bail out if the instrument called does - not exist. -
-- - Added an optional prefix to soundfont instruments printed via - sfilist. -
-- - lpslots reworked with better control. -
--
-- -
-- Utilities: -
----
-- - cvanal now uses the SADIR environment to look for analysis - files. -
--
-- -
-- Bugs Fixed: -
----
-- - fareylen called a non-existent function leading to a crash. - Removed typo. -
-- - turnoff could cause clicks in some cases; fixed. -
-- turnoff3 improved.
-- - cntReset fixed; had a false initialisation code. -
-- binary search in bpf fixed.
-- pvscfs frame counting issue fixed.
-- - --sample-accurate fixed in a-rate form of tabsum. -
-- - Problem in atssinnoi fixed; did read outside allocated memory. -
-- - hrtfmove fixed; it could use the wrong value for sr. -
-- - Named instruments could use wrong structure in redefinition. -
-- - Fixes in the jack backend relating to --get-system-sr. -
-- - pvcross frequency warp mode fixed. -
-- - lpcfilter/lpcanal bug where processing could not be restarted - after a freeze fixed. -
-- - The emugens collection of opcode, a large group incorporation - mainly array operations were not made available due to a small - editing error. -
-- - If using a float build (rather than a double) array access - could be wrong. -
-- - In some cases instr0 code could ignore loops after an incorrect - warning. Now fixed. -
-- - Bugs in mp3len and similar fixed. -
-- - Crash in syncgrain issue #1773 fixed. -
-- - UDO Fsign output is fixed. -
--
-- -
-System Changes: -
----
-- - winsound has been removed. -
--
-- -
-API: -
----
-- - CreateThread2 is a new API function that allows threads to be - given a user-defined stack size. -
--
-- -
-External Plugin Code: -
----
-- - For a variety of reasons including licences, plugin opcodes - that allow csound to be a host for VST plugins is available - from - https://github.com/gogins/csound-vst3-opcodes.git - where installation instructions can be found. It has been shown - to work on Linux, MacOS and Windows. -
--
--
-Release Notes for Csound 6.16 (2021 June)
-- This delayed release was mainly a bug fixing release but there - are significant new opcodes, including support for simpler use of MIDI - controls and a new opcode to connect to an Arduino. Also there is an - optional limiter in the sound output chain. -
-- Also there are a number of new filters including the final - opcode written by the 'father of computer music' Max Mathews (with - Julius Smith)! ported by Joel Ross. -
--
----
-- -
-New opcodes: -
----
-- - cntDelete - deletes a counter object. -
-- - lfsr, - a linear feedback shift register opcode for pseudo random - number generation. -
-- - ctrlsave - stores the current values of MIDI controllers in an array. -
-- - turnoff3 - extends tuning off to remove instrument instances that are - queued via scheduling but not yet active. -
-- - ctrlprint - prints the result of a ctrlsave call in a form that can be - used in an orchestra. -
-- ctrlprintpresets - prints the MIDI controller preset. -
-- - ctrlselect - selects a preset for MIDI controller values. -
-- - ctrlpreset - defines a preset for MIDI controllers. -
-- - outall - writes a signal to all output channels. -
-- - scale2 - is similar to scale but has different argument order and has - an optional port filter. -
-- - arduinoRead - extends the arduino family to transfer floating point values. -
-- - triglinseg - and - trigexpseg - are triggered versions of linseg and expseg. -
-- - vclpf - is a 4-pole resonant lowpass linear filter based on a typical - analogue filter configuration. -
-- - spf - is a second-order multimode filter based on the Steiner-Parker - configuration with separate lowpass, highpass, and bandpass - inputs and a single output. -
-- - skf - is a second-order lowpass or highpass filter based on a - linear model of the Sallen-Key analogue filter. -
-- - svn - is a non-linear state variable filter with overdrive control - and optional user-defined non-linear map. -
-- - autocorr - computes the autocorrelation of a sequence stored in an array. -
-- - turnoff2_i - is init-time version of turnoff2. -
-- - scanu2 - is a revision of scanu to make it closer to the original - concept. Damping now a positive value and plucking - initialisation totally rewritten, plus various code - improvements. -
-- - st2ms and - ms2st - are stereo to MS and vice-versa conversion opcodes - with stereo width control. -
-- - mvmfilter - is a filter with pronounced resonance and controllable decay time. -
--
-- -
-- New gen: -
----
-- - gen44 - allows the writing of stiffness matrices for scanu/scanu2 in a - textual format. -
--
-- -
-Orchestra: -
----
-- - The operations += and -= now work for i and k arrays. -
-- - k-rate array operators are now only processed at k-rate. -
--
-- -
-Score: -
----
-- - An instance of a named instrument can have a decimal fraction - added to the name to allow for tied notes and other facilities - that were only avaliable for numbered instruments. -
--
-- -
-Options: -
----
-- - New options --limiter and --limiter=num (where num is in range - [0,1]) inserts a tanh limiter (see clip version2) at the end of - each k-cycle. This can be used when experimenting or trying - some alien inputs to save your ears or speakers. The default - value in the first form is 0.5. -
-- - A typing error meant that the tag <CsShortLicense> was - not recognised, although the English spelling (CsSortLicence) - was. Corrected. -
-- - New option --default-ksmps=num changes the default value from - the internal fixed number. -
-- - New environment variable `CS_USER_PLUGINDIR` has been added to - indicate a user plugin dir path (in addition to the system - plugin directory). This added search path defaults to standard - locations on different platforms (documented in the manual). -
--
-- -
-Modified Opcodes and Gens: -
----
-- - slicearray_i now works for string arrays. -
-- - OSCsend - always runs on the first call regardless of the value of kwhen. -
-- - pvadd - can access the internal ftable -1. -
-- - pan2 - efficiency improved in many cases. -
-- - Add version of pow for the case kout[] = kx ^ ivalues[] -
-- - expcurve - and - logcurve - now incorporate range checks and corrects end values. -
-- - Streaming LPC opcodes have had a major improvement in - performance (>10x speedup for some cases), due to a new - autocorrelation routine. -
-- - Restriction on size of directory name size in ftsamplebank - removed. -
-- - If a non string is passed to sprintf to be formatted as a %s - an error is signalled. -
-- - readk family of opcodes now support comments in the input which - is ignored. -
-- - Added iflag parameter to sflooper. -
-- - Opcodes beosc, beadsynt, tabrowl, and getrowlin removed. -
--
-- -
-General Usage: -
----
-- - Csound no longer supports Python2 opcodes following end of life - for Python 2. -
--
-- -
-Bug fixed: -
----
-- - The wterrain2 opcode was not correctly compiled on some - platforms. -
-- - fprintks opcode crashed when format contains one %s. -
-- - Bug in rtjack when number of outputs differed from the number - in inputs. -
-- - FLsetVal now works properly with "inverted range" FLsliders. -
-- - Conditional expressions with a-rate output now work correctly. -
-- - Bug in --opcode-dir option fixed. -
-- - sfpassign failed to remember the number of presets causing - confusion. This also affects sfplay ad sfinstrplay. -
-- midiarp opcode fixed (issue 1365).
-- - A bug in moogladder where the value of 0dbfs affected the - output is now fixed. -
-- - Bugs in several filters where istor was defaulting to 1 instead - of 0 as described in the manual have been fixed. -
-- - Bug in assigning numbers to named instruments fixed. This - particularly affected dynamic definitions of instruments. -
-- - Use of %s format in sprintf crashed if the corresponding item - was not a string. Thus now gives an error. -
-- - Fix bug in ftprint where trigger was not working as advertised. -
-- Asynchronous use of diskin2 fixed.
-- - pvs2tab does not crash in the sliding case but gives a error. -
-- - In some circumstances turnoff2 could cause the silencing of - another instrument for one k-cycle. This is now fixed. -
-- - timeinstk behaved differently in a UDO to normal use. This - has been corrected. -
-- - Fixed midiarp init method as it was causing an issue with one - of the arp modes. -
-- Fixed scaling of attack stage of xadsr.
-- - Fix printarray behaviour for string arrays (default is to print - at every cycle); added a variant without trigger. -
-- - Bug with named instrument merging in new compilations fixed. -
-- - ATSA opcode atsinnoi could cause memory problems. The 6.16 - release is better but not yet verified. -
--
-- -
-System Changes: -
----
-- - New autocorrelation routine can compute in the frequency or - in the time domain. Thanks to Patrick Ropohl for the improvement - suggestion. -
-- Minimum cmake version bumped to 3.5.
-- Image opcodes removed, now in plugin repo.
-- faust opcodes removed, now in plugin repo.
-- Python opcodes are now in plugin repo.
-- Ableton Link opcodes moved to plugins repo.
--
-- -
-Platform Specific: -
----
-- -
-MacOS: -
----
-- - Some opcode libs with dependencies have been removed from - release. Image opcodes, Python opcodes, Faust opcodes, and - FLTK Widget opcodes have been moved to a separate repository - and are not included anymore. -
--
--
--
-Release Notes for Csound 6.15 (2020 August)
-- Quite a few new opcodes are in this release as well as extensions of - existing opcodes. In particular there is the introduction of streamed - LPC which has long been requested. -
-- Another feature in this release is a large number of internal fixes to - incorrect data access, as well as the usual tweaks and changes. -
-- Starting from this release, no third-party graphic frontends are shipped - with the installation packages on MacOs and Windows. Users should - install their choice of frontend separately. -
--
----
-- -
-New opcodes: -
----
-- - ftset sets - multiple elements of a table to a given value. -
-- - lufs opcode - calculates a momentary, integrated and short-term loudness meter. -
-- - bob filter is - a numerical simulation of the Moog analog resonant filter. -
-- - sterrain - is an enhanced version of wterrain with - more possible orbits. -
-- - wterrain2 - is a alternative enhancement of wterrain - with less variation that sterrain. -
-- - count, count_i, cntCreate, cntRead, cntReset, cntCycles and - cntState together implement a new counter object that cycles - through a constant range, similar to in PD. -
-- - new alias for sc_ opcodes: sc_lag -> lag, sc_lagud -> lagud, - sc_trig -> trigholf, sc_phasor -> phasortrigo. -
-- - println - is similar to printf but without the - trigger. -
-- - rndseed - provides a seed for rnd and birnd functions. -
-- - arduinoStart, arduinoRead and arduinoStop provide a protocol for - transferring sensor data from an Arduino to Csound. -
-- - lpcfilter, lpcanal, allpole, pvslpc, pvscfs, apoleparams, - resonbnk: new streaming linear prediction opcodes. -
-- - gauss - - new version accepting mean and standard deviation as - parameters, implementing the Box-Muller algorithm. -
-- - pvsbandwidth - - returns spectral bandwidth. -
-- - vps - - vector phase shaping. -
--
-- -
-Orchestra: -
----
-- #include of a url now works again.
-- - The end of file case is better handled in the pre-lexer. -
-- - Corrections to reported line number in a few error cases. -
-- - Conditional expressions yielding strings fixed, and other cases. -
-- - The sequence //* no longer is misinterpreted as starting a - comment block. -
-- - When using sample-accurate mode a new score event that was - aligned to the ksmps could stop one cycle early. Now correct. -
-- - The maximum line length for various inputs has been increased - to 8192. -
-- - Now legal to set the number of input channels to zero. -
--
-- -
-Score: -
----
-- - New score opcode B is like b but is accumulative. -
-- - The end of file case is better handled in the pre-lexer. -
--
-- -
-Options: -
----
-- - keep-sorted-score and simple-sorted-score both can take a - filename in which to write the score after a =. -
-- - print_version option prints the version of Csound used at the - end of a rendering. -
-- - syntax-check-only return an error if syntax failed. -
-- - opcode-dir: loads all plugin opcodes from a given directory (in - addition to the plugins loaded from the opcode plugin path). -
--
-- -
-Modified Opcodes and Gens: -
----
-- cent, semitone, dB accuracy improved.
-- taninv2 now has an array version.
-- ftslice has more variations.
-- - ptable opcodes are now deprecated as they are identical to table - opcodes. -
-- - GEN20 case 9 (sinc function) now has an optional parameter to - the x range. -
-- fprint(k)s now has a %s format specifier.
-- lastcycle corrected and clarified.
-- - chn_k can now accept the mode as a string. r=1 (input), - w=2 (output), rw=3 (input+output). -
-- trim improved.
-- The HDF5 opcodes upgraded to v1.12.0.
-- GEN16 is more careful about lengths of data.
-- - scale has additional optional arguments to specify the input - range. -
-- - schedule/schedulek can take arguments from an array. -
-- GEN11 improved with respect to rounding errors.
-- - partials has an improved method of phase estimation. -
-- - ctrlinit checks that the values are in the range [0,127]. -
-- - fin as format argument changed, and is now deprecated. -
-- fink has the same argument change.
--
-- -
-Utilities: -
----
-- - lpanal now contains a new alternative algorithm based on the - Durbin method, in addition to the original Gauss method. -
--
-- -
-General Usage: -
----
-- - if using FLTK the widgets are reset on ending a run, which was - not always the case earlier. -
--
-- -
-Bugs Fixed: -
----
-- setcols was very broken; fixed.
-- - cps2pch and cpsxpc fixed in the case of a table of frequencies. -
-- - The 31 bit pseudo random number generator was seeded with zero - then it stayed on zero. That is now fixed. -
-- GEN 20 was wrong in the case of 8 (triangle).
-- - Turning off an instrument from inside a UDO now works. -
-- - Macro expansion in both orchestra and score had a bug related - to uninitialised variable. -
-- - If a UDO set a different value for ksmps any output to a - multichannel device was incorrectly calculated. -
-- - reshape array had a number of problems, now all fixed. -
-- - ftprint had problems not following the manual regarding - trig == -1 and could show the wrong index. -
-- - Part2txt/partials occasionally emitted the same track (including - same track ID) multiple times for a given time point. Fixed. -
-- - expsegr was incorrectly dependent on ksmps when sample-accurate - is in force. -
-- - table opcodes had an error when used with non power-of-two - lengths. -
-- A fencepost error in OSCraw fixed.
--
-- -
-System Changes: -
----
-- - A crash when csound.evalcode was called without csound.start - fixed. -
-- - Many fixes to memory problems, mainly invalid reads/writes. -
--
-- -
-API: -
----
-- New API to hard override default plugin dir.
-- New API function to load plugins.
--
-- -
-Platform Specific: -
----
-- -
-WebAudio: -
----
-- Built using Emscripten 1.39.13 (LLVM backend).
-- - New single-file release of CsoundObj.js with all classes and - webassembly files combined using npm and rollup. -
-- - Breaking: CsoundObj.importScripts() was removed and replaced - with CsoundObj.initialize(). -
-- - Paths for loading other files no longer relevant with - single-file -
-- - initialize takes in optional AudioContext, otherwise CsoundObj - will create one for use. -
-- - Breaking: CSOUND\_AUDIO\_CONTEXT moved from global namespace; - instead reference CsoundObj.CSOUND\_AUDIO\_CONTEXT. -
-- - Compile flags changed to -O3 and without debug information, - per recommendations for release builds by Emscripten. -
-- - Link-Time Optimization (LTO) enabled for reduced size. -
--
-- -
-MacOS: -
----
-- - coreaudio now checks the number of channels and fails if there - are insufficient. -
--
-- -
-Bela: -
----
-- Updated digiBelaOut and digiIOBela.
-- Added trill opcode.
--
--
--
-Release Notes for Csound 6.14 (2020 January)
-- A number of bug fixes and enhancements, but also potentially - significant changes are included. -
-- For live coders the orchestra macros are now remembered between calls - to compilerstr. This should not change the behaviour of current valid - orchestras but could be useful in live coding. -
-- MIDI devices now include mapping multiple devices to higher channels. - The details are in the manual MIDI section. -
--
----
-- -
-New Opcodes: -
----
-- randc is like randi but uses a cubic interpolation.
-- -
-- mp3out is an experimental implementation of writing an mp3 file. - It may be replaced by the current work in libsndfile to deal - with MPEG files. -
-- Simple example: -
--<CsoundSynthesizer> -<CsInstruments> -ksmps = 1000 -instr 1 - aa diskin "fox.wav", 1 - mp3out aa, aa, "test.mp3" -endin -</CsInstruments> -<CsScore> -i1 0 3 -e -</CsScore> -</CsoundSynthesizer> --- The syntax is "mp3out aleft, aright, Sfilename" with three optional arguments - "mode" (0=stereo, 1=Jointstereo (default), 3=Mono), "bitrate" defaulting to 256, - and "quality" (in range 1 to 7) defaulting to 2 (high quality). -
-- - metro2 is - like metro but with added controllable swing. -
-- - ftexists - reports whether a numbered ftable exists. -
-- - schedulek - is a k-time opcode just like schedule. -
-- - new array based channel opcodes: - - chngeti, chngetk, chngeta, chngets, - - chnseti, chnsetk, chnseta, chnsets. -
-- - lastcycle - identifies the last k-cycle of an instrument instance. -
-- - strstrip - removes whitespace from both ends of a string. -
--
-- -
-Orchestra: -
----
-- - The conditional expression syntax a?b:c incorrectly always - calculated b and c before selecting which to return. This could - give incorrect division by zero errors or cause unexpected multiple - evaluations of opcodes. It now implements the common C-like semantics. -
-- - Orchestra macros are now persistent, so they apply in every - compilation after they are defined until they are undefined. - It has been changed because of the need of live coding in - particular. A correct orchestra should not be affected. -
-- - Following a syntax error there were cases when Csound gave a - segmentation error. This is now fixed. -
--
-- -
-Options: -
----
-- - New option simple-sorted-score creates file score.srt in a more - user-friendly format. -
-- - Revise treatment of CsOptions wrt double quotes and spaces which - need escaping. -
-- - Setting the 1024 bit in -m suppresses printing of messages about - using deprecated opcodes. This option is itself deprecated. -
--
-- -
-Modified Opcodes and Gens: -
----
-- - squinewave now handles optional a or k rate argument. -
-- - pindex opcode handles string fields as well as numeric ones. -
-- - sflooper reworked to avoid a crash and provide warnings. -
-- event_i and schedule can take fractional p1.
-- - in soundfont opcodes better checking. Also no longer will load - multiple copies of a soundfont, but reuses existing load. -
-- - fluidControl has a new optional argument to control printing - messages. -
-- bpf has an audio version now.
-- stsend/stecv can work with unmatched k-rates.
-- pvstrace has new optional arguments.
-- lpfreson checks number of poles.
-- - syncloop had a small typing error that caused crashes. -
-- bpfcs has new array versions.
-- - zacl can omit second argument, defaults to clearing only the - given channel. -
-- - outvalue attempted to use a k-rate value which could be invalid - at the time. This is mainly a small performance problem, and - it is now eliminated. -
-- - Channel names for chnget and chnset opcodes can now be updated - at k-rate so they can be called within a loop. -
-- - copya2ftab now has an optional additional argument which is an - offset into the ftable for where to copy the array. -
--
-- -
-Utilities: -
----
-- - lpanal now checks that sufficient poles are requested. -
--
-- -
-Frontends: -
----
-- - CsoundQt: Released to coincide with Csound 6.14 there is CsoundQt 0.9.7. - See Release notes - - https://github.com/CsoundQt/CsoundQt/blob/master/release_notes/Release%20notes%200.9.7.md. -
--
-- -
-General Usage: -
----
-- - // comments at the start of a line now accepted in CsOptions - section of a csd file. -
-- - Option --orc has been corrected so it runs without a score; - that is for ever until an exit condition. -
--
-- -
-Bugs Fixed: -
----
-- shiftin fixed.
-- exitnow delivers the return code as documented.
-- - fixed bug in beosc, where gaussian noise generator was not being - initialised. -
-- OSCraw fixed.
-- - ftkloadk could select incorrect internal code causing a crash. -
-- - GEN01 when used to read a single channel of a multi-channel - file got the length incorrect. -
-- - ftgenonce had a fencepost problem so it could overwrite a table - in use. -
-- - a race condition in Jacko opcodes improved (issue #1182). -
-- - syncloop had a small typing error that caused crashes. -
-- - lowresx was incomplete and did not work as intended; rewritten - (issue #1199) -
-- - if outch was incorrectly given an odd number parameters it - would give a segmentation error. This now gives an error message. -
--
-- -
-System Changes: -
----
-- - New plugin class for opcodes with no outputs written. - perform time errors and init errors are also reported in the - return code of the command line system. The new API function - GetErrorCnt is available to do something similar in other - variants. -
--
-- -
-API: -
----
-- - Function GetErrorCnt gives the number of perf-time errors, and - adds in the init-time errors at the end of a rendering. -
-- - Function FTnp2Find no longer prints messages if the table is not - found, but just returns NULL. Previous behaviour is available as - FTnp2Finde. -
-- csoundGetInstrument() added.
--
-- -
-Platform Specific: -
----
-- -
-WebAudio: -
----
-- - added csoundCompile to CsoundObj that adds commandline args - so that one can override CsOptions values in CSDs. -
-- - added getPlayState(), addPlayStateListener(), and other - methods to CsoundObj for querying and listening to changes - of play state. -
--
-- -
-Windows: -
----
-- - stsend reworked for winsock library. -
--
--
--
-Release Notes for Csound 6.13 (2019 July)
-- Not many new opcodes but there are a significant number of opcodes being - extended to use arrays in a variety of ways, widening the options for - users. There have been many fixes to the core code as well as opcodes. -
--
----
-- -
-New opcodes: -
----
-- string2array is a variant of - fillarray with the data coming from a string of space separated - values. -
-- nstrstr - returns the name string of an instrument number or an empty - string if the number does not refer to a named instrument. -
-- ntof - converts notename to frequency at i- and k-time. -
-- - ampmidicurve - is a new opcode that maps an input MIDI velocity number to an - output gain factor with a maximum value of 1, modifying the - output gain by a dynamic range and a shaping exponent. -
--
-- -
-Orchestra: -
----
-- The consistency of kr, sr and ksmps reworked especially - when there is overriding. -
-- Corrected default 0bdfs usage.
-- Resolving the path for #include files reworked to be - more liberal. -
-- Reading and writing to multidimensional arrays was very - wrong. This is now correct. -
-- Better checking for unknown array types (issue #1124) -
-- In all array operations the size of an array is - determined at init time and no allocation happens at perf time. -
-- Array arithmetic now respects --sample-accurate. -
--
-- -
-- Score: -
----
-- The characters n and m could erroneously get ignored in - scores. -
-- Resolving the path for #include files reworked to be - more liberal. -
-- After an error the backtrace of files and macros - incorrectly read the information for orchestra rather than - scores; fixed. -
-- The end of an r (repeated) section was not always - correct. -
-- Nested {} parts of a score could lead to errors. -
-- After an s statement a newline was required; no longer - needed. -
-- The {} score loops have been reworked to allow macros - and expressions in the loop count. -
--
-- -
-- Options: -
----
-- The new option --use-system-sr set the sample rate to the - hardware/system value. -
--
-- -
-- Modified Opcodes and Gens: -
----
-- Sending failure in OSC is now a warning rather than an - error. -
-- passign can now have an array as the target.
-- Version of bpf/bpfcos added to allow points defined - via arrays. -
-- grain can now use tables of any size, which was only a - power of 2. -
-- Changing colours in FL widgets now works (it previously - did not redraw the colour). -
-- fillarray can read from a file of values overcoming the - argument limit. -
-- sumarray now works for audio arrays as well as for - scalar values. -
-- Assignment of an audio value to an audio array now works. -
-- monitor was broken in the array form.
-- gendyc now respects sample-accurate mode.
-- mtof and ftom now have array versions.
-- - sc_lag and sc_lagud now use the first k- or a-rate input - when no initial value is given. -
-- printarray now works for string arrays.
-- changed2 now works for strings.
-- diskgrain, syncgrain and syncloop now can do sample rate - scaling. -
-- GEN01 correctly reads raw audio files when requested. -
-- ftaudio can now take two additional optional arguments - for the start and end of the table data being written to file. -
-- sensekey recoded in the 'key down' mode.
-- loscilx can return an audio array.
-- schedule opcode reports undefined instruments in all - cases. -
-- event_i now accepts tagged instrument numbers.
-- printarray treats %d correctly.
-- beadsynt now works with i arrays as well as k arrays as - in the manual. -
--
-- -
-Utilities: -
----
-- hetro had a number of fixes and improvements.
--
-- -
-General Usage: -
----
-- There have been a number of improvements in the semantics - for multicore; most of these are corrections with a few - efficiency gains. -
-- There is a maximum number of arguments for an opcode - which was neither explicit nor policed. Attempts to use too many - arguments now gives a syntax error. -
--
-- -
-Bugs Fixed: -
----
-- FLgetsnap fixed.
-- directory fixed regarding file extensions.
-- FLsetText reused a string incorrectly which led to - incorrect values. -
-- fmb3 failed to initialise the lfo rate in some cases. -
-- ftaudio at i-rate was totally broken.
-- Following a reinit printks could be skipped; fixed. -
-- printks fixed so it prints at correct times.
-- tabrowlin and getrowlin would calculate wrong size under - certain conditions. -
--
-- -
-System Changes: -
----
-- Hash Table implementation modified to expand on load for - better performance when map contains large number of entries. -
-- Plugin GEN functions can have a zero length, but the - code must check for this and act accordingly. This allows for - deferred allocations. -
-- schedule reports undefined instr numbers/names and - continues, rather than causing an error. -
-- Allow multiple calls to midi out controls.
--
-- -
-API: -
----
-- find_opcode_new and find_opcode_exact now exposed in API. -
-- After a reset a default message string callback handle - is configured. -
-- New function csoundSystemSr added to the API to read - hardware-imposed sample rate. -
--
-- -
-Platform Specific: -
----
-- WebAudio: libsndfile now compiled with FLAC and OGG - support. -
-- In both orchestra and score the path tracking of - #include expects a \ separator. -
-- Haiku port now available.
-- Allow analog in and out with different channel numbers. -
--
--
-Release Notes for Csound 6.12 (2018 November)
-- Many changes including the removal of vst2cs functionality due to a - copyright issue. -
-- The changes made in 6.11 to raw format reading have been modified so - gen1 and diskin ignore positive file formats and use the file header, - unless the format is negative when it uses the absolute value in a raw - audio file. This should preserve most compatibility issues. -
-- There are a number of new and improved opcodes, new facilities in - scores and many bug fixes. -
--
----
-- -
-New opcodes: -
----
-- fluidInfo - retrieves program information from a currently loaded - soundfont. -
-- - New opcode ftaudio - writes a ftable to an audio file; irate and triggered k-rate - version exist and k-rate version supports sync or async writing. -
-- - Version of OSClisten - that writes the data to a k-rate array now exists. -
-- OSCcount - returns the number of OSC incoming messages - pending. -
-- and are new opcodes - splitting the faust DSP instantiation and performance. -
-- OSCbundle - sends a collection of similar OSC messages as a single - packet for efficiency. -
-- -
beosc
- andbeadsynt
are band enhanced - oscillator and oscillator bank. - is for breakpoint files with interpolation. Similarly- lincos -
adds cosine interpolation to . -- and act on - arrays. -
-- -
trim -
and adjust the size of - a 1 dimensional array, either bigger or smaller, preserving data - and/or padding with zeros. --
-- -
-- Orchestra: -
----
-- - New preprocessor option #includestr. This is like #include but - has macro expansion in the double-quote delimited string. -
-- Use of tied notes in subinstr fixed.
-- - Nesting macro calls more than about 10 caused a crash; now - unlimited nesting works. -
-- - Runtime error message now (usually) include a line number and a - file/macro trace. -
-- - Multiple assignments such as ka, kb = 1,2 are again supported - by the parser; it had inadvertently got lost. -
-- - The problematic use of i() with an array element directy is now - flagged as an error. -
-- - If an included file name has a "/" in it then any nested include - is relative to that directory. (Issue #973). -
-- - Redefinition of UDOs with zero output arguments fixed. -
-- - A very obscure bug in running sub-instruments, which has been - in the code for nearly a year, was fixed. -
--
-- -
-Score: -
----
-- - New preprocessor option #includestr. This is like #include but - has macro expansion in the double-quote delimited string. -
-- - 'd' score opcode for real-time performance. This was issue #966. -
-- Bug in np operation fixed.
-- - Use of [] syntax in a score could lead to a loss of precision - for numbers over about 1 million; older version restored. -
-- - Nesting macro calls more than about 10 caused a crash; now - unlimited nesting works. -
-- - The forms for delayed ending of sections (e 5 or s 5) now work - with fractional delays; previously only read the integer part. -
-- - If an included file name has a "/" in it then any nested include - is relative to that directory. (Issue #973). -
--
-- -
-Modified Opcodes and Gens: -
----
-- - Add optional argument to ftom for rounding answer to integer. -
-- - flooper2 and syncgrain etc now allow resampling. -
-- - chnclear can now take a list of channels to clear instead of - just one. -
-- - printf and printf_i now are like the manual: all arguments - beyond the format and trigger are optional. -
-- - prints and printks can take string arguments printed with %s. -
-- - GEN2 can now take a size of zero, which is interpreted as size - sufficient for the number of values provided. -
-- - faustcompile now includes a new optional parameter to allow it - to be run in a blocking mode. Defaults (as before) to - non-blocking. -
-- - fillarray can be run at k-rate if any of the argument/values - are k-rate. -
-- - slicearray for other than i-rate arrays runs at k-rate only. -
-- - pvstrace now has the option also to return an array containing - the bin numbers. -
--
-- -
-Utilities: -
----
-- - A coding error in mixer was fixed. It was very broken. -
--
-- -
-Bugs Fixed: -
----
-- - A typo in p5glove meant that the command to read the button - status as a bitmap only returned state of button A. -
-- - diskin to array fixed and also use with small ksmps. -
-- - In loscil it sometimes failed to deal with the ibas argument; - this has now been reworked to be correct. -
-- - madsr could overflow an internal counter when given a negative - p3. -
-- - Fixed mapping from threads to lua_States (issue #959). -
-- - The time calculation in flooper2, flooper, and syncgrain was - corrected. -
-- - Resampling and pitch fixed in pvstanal -
-- - Rare buffer overflow case in faust opcodes fixed. -
-- - pvsftw had an incorrect check for fft format which led to - incorrect claim of bad format; fixed. -
-- - If ksmps was 1 the opcode linenr at arate failed to work; fixed. -
-- window opcode fixed.
-- - The test for compatible subtypes of f-values in a number of pvs - opcodes was wrong, causing spurious error messages. -
-- - cosseg was broken for more than one segment; now OK. -
-- - monitor opcode did not work correctly when using multiple - processes; fixed. -
-- - in the linenr opcode if the release stage was entered before - the end of the rise the output value jumped to the end value - and then decayed, causing a glitch. This is fixed. (#1048) -
--
-- -
-System Changes: -
----
-- - The various -zN options now reports the number of opcodes for - the request, so differs with respect to deprecated and - polymorphic opcodes. -
-- - Recompilation of named instruments totally reworked to avoid - errors and memory leaks. -
-- - The allocation of instrument names to internal numbers has been - rewritten and should now be usable with replacements in live - coding. -
-- - Printing the number allocated to a named instrument now behaves - the manual, not just for debug. -
-- - If liblo version 0.29 is available csound can be built to use - it (with a compiler flag LIBLO29) and this fixes some bugs - related to heavy/complex use of OSClisten. Unfortunately the - older 0.28 version is being distributed by some Linux distros. -
-- - The orchestra compiler has a number of new optimisations, - avoiding unnecessary assignments and doing some more expression - optimisations. -
--
-- -
-API: -
----
-- - csound->ReadScore was changed so it behaves the same as a score - in a csd or sco file. This could incorrectly give an infinite - score or not in unexpected cases. -
--
-- -
-Platform Specific: -
----
-- - Bela: allow analog in and out with different channel numbers. -
--
--
-Release Notes for Csound 6.11 (2018 May)
-- There has been a great amount of internal reorganisation, which should not - affect most users. Some components are now independently managed and will - eventually be installable via a new package manager. The realtime option is - now considered stable and has the "experimental" tag removed. Special - support for the Bela platform has been introduced. There have - been more steps towards completing the arithmetic operations involving - a-arrays. -
----
-- -- - -Note -- -Note that changes to GEN01 and diskin2 may not be backward compatible - if a non zero value is given for the format. --
--
----
-- -
-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: -
-- ---
-- -
-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: -
-- 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. -
- - 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). -
- - 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: -
-- ---
-- -
-- 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: -
----
-- -
-csdebugger:
----
-- Some memory issues fixed.
-- -
-HTML5:
----
-- - CsoundQT has its own notes at - - https://github.com/CsoundQt/CsoundQt/blob/develop/release_notes/Release%20Notes%200.9.2.1.md. -
--
-- -
-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: -
--
areson atonex butterworth filters fofilter lowres lowresx lpf18 mode moogladder moogvcf reson resonr resonx resonz statevar tonex - 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: -
----
-- all opcode audio file reading/writing is handled asynchronously - by a separate thread.
-- all init-pass operations are also performed asynchronously.
--
-- 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): -
-- - 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.- 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- 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 -
----
-- use of atomic read/writing to control channels
-- spinlocks in audio and string channels
-- mutexes protecting compilation, score events and table - access.
--
-- -
-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.
--
----
-- combinv opcode.
--
-- -
-New Gen and Macros: -
- --
-- -
-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: -
----
-- Opcodes adapted from SuperCollider by Tito Latini: - dust, - dust2, - gausstrig, - gendy, - gendyc, and - gendyx. -
-- Fractal noise generator by Tito Latini: - fractalnoise. -
-- Opcodes for accessing table values by direct indexing, by John ffitch: - ptable, - ptablei, - ptable3, and - ptablew. These opcodes - are respectively like - table, - tablei, - table3, and - tablew, but they do not - require a power-of-2 table size. -
--
-- -
-- 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: -
----
-- mp3len - opcode.
-- qnan - opcode.
-- qinf - opcode.
-- - exprandi opcode.
-- cauchyi - opcode.
-- gaussi - opcode.
-- cpumeter - opcode.
-- linsegb - opcode.
-- expsegb - opcode.
-- transegb - opcode.
-- expsegba - opcode.
-- pvsgain - opcode.
-- - pvsbufread2 - opcode.
-- serial - opcodes.
-- lua opcodes.
-- plustab opcode.
-- multtab opcode.
-- maxarray - opcode.
-- minarray - opcode.
-- sumarray - opcode.
-- scalearray - opcode.
--
-- -
-- 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: -
----
-- mp3in - allows reading of mp3 files directly in the orchestra.
-- wiiconnect, wiidata, wiisend, wiirange opcodes by john ffitch to receive and send data to a wiimote controller.
-- New opcodes to receive data directly from a p5glove by john ffitch p5gdata
-- tabsum sums sections of ftables
-- MixerSetLevel_i an init-time only version of MixerSetLevel
-- doppler - implements a simulation of the doppler effect.
-- filebit reports the file depth of a file.
-- - The new Signal - Flow opcodes enable the usage of - signal flow graphs in Csound. -
--
-- -
-- 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: -
----
-- - New examples for pvs opcodes by Joachim Heintz: pvsarp, pvscent, pvsbandp, pvsbandr, pvsbufread, pvsadsyn, pvsynth, pvsblur, pvscale, pvscross, pvsfilter, pvsfreeze, pvshift, pvsmaska, pvsmorph -
-- Use of automatic numbering of ftables reuses table numbers -
-- seed with positive argument was wrong -
-- sprintf with an empty string printed wrong data -
-- mute now works with both numeric and named instruments -
-- Small fixes in diskin, and in tablexkt -
--
-- -
-- 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: -
-- ---
-- -
-- 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: -
----
-- - imagecreate, - imagesize, - imagegetpixel, - imagesetpixel, - imagesave, - imageload and - imagefree: New image file processing opcodes by Cesare Marilungo to read/write png images from Csound. -
-- pvsbandp and pvsbandr by John ffitch, which perform band-pass and band-reject filtering in the spectral domain on a pvs signal.
-- New HRTF opcodes by Brian Carty:hrtfmove, hrtfmove2 and hrtfstat.
-- New waveshaping opcodes: powershape, - polynomial, - chebyshevpoly, - pdclip, - pdhalf, - pdhalfy, and - syncphasor
-- New jack transport control opcode: jacktransport
--
-- -
-- 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: -
----
-- pan2: a stereo panning opcode
-- cpsmidinn, pchmidinn, octmidinn: converters for MIDI note numbers
-- fluidSetInterpMethod: interpolation in fluid sound fonts
-- sflooper: a soundfont version of flooper2
-- pvsbuffer and pvsbufread: buffering/reading of fsigs for delays/timescale changes.
--
-- -
-- 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)
--
--+-
-- -
-New granular opcodes: - partikkel, - partikkelsync and - diskgrain. -
-- -
-New opcode for event dispatch: - scoreline. -
-- -
-- Many new opcodes from Gabriel Maldonado's CsoundAV: - hvs1, - hvs2, - hvs3, - vphaseseg, - inrg, - outrg, - lposcila, - lposcilsa, - lposcilsa2, - tabmorph, - tabmorpha, - tabmorphi, - tabmorphak, - trandom, - vtable1k, - slider8table, - slider16table, - slider32table, - slider64table, - slider8tablef, - slider16tablef, - slider32tablef, - slider64tablef, - sliderKawai - and the a-rate version of - ctrl7. -
-- -
-- Also from CsoundAV, many new FLTK widget opcodes: - FLkeyIn, - FLslidBnk2, - FLvslidBnk, - FLvslidBnk2, - FLmouse, - FLxyin, - FLhvsBox, - FLslidBnkSet, - FLslidBnkSetk, - FLslidBnk2Set, - FLslidBnk2Setk, - FLslidBnkGetHandle, -
-- - -
-- -
-eqfil -
-- -
-New command line options (--m-warnings)to control messages -
-- -
-- csladspa: a CSD to LADSPA plugin kit. -
-- -
-- And many bug fixes including (but not limited to): fixed k-rate version of system; fixed scaling problems of vrandh and vrandi; fixed ocasional failure of turnoff; fixed OS X bug; fixed ATScross and fixed mod. -
-Csound5GUI now works properly on all platforms and csoundapi~ (pd object) has been updated. -
-Release Notes for Csound 7.
+ Major new version.
@@ -30,7 +30,7 @@ @@ -63,7 +63,7 @@Orchestra k2 pycall1 "get_number_from_pool", k1 + 2, p4 printk 0.01, k2 endin -
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 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
-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 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 ++ +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:
++-+
- 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).
+- 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.
+- Stream names: it is possible to label the streams generated by csound, by + using + -+output_stream=<stream-name> + and + -+input_stream=<stream-name>
+-
---
+- 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:0Remember 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:
-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:
----
-- 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).
-- 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.
-- Stream names: it is possible to label the streams generated by csound, by - using - -+output_stream=<stream-name> - and - -+input_stream=<stream-name>
-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:
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 @@ - + - +@@ -20,8 +20,8 @@diff --git a/STKBandedWG.html b/STKBandedWG.html index b61fe4dc7c7..def88f5a93c 100644 --- a/STKBandedWG.html +++ b/STKBandedWG.html @@ -39,7 +39,7 @@Prev -OSC and Network -Next +OSC, Network and non-MIDI Devices +Next
@@ -30,7 +30,7 @@ @@ -65,14 +65,14 @@Remote Opcodes
Up -Next +Next Network Home -Mixer Opcodes +non-MIDI Devices
- +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.
++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.
++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.
++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.
++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.
++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.
++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.
- +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
- +
@@ -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.
- +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.
- +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.
- +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.
- +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.
- +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.
++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.
++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.
++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
- +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.
- +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.
++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.
- +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