summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Sateler <fsateler@debian.org>2014-01-24 13:54:37 -0300
committerFelipe Sateler <fsateler@debian.org>2014-01-24 13:54:37 -0300
commitbcf06a42deb371baf3deb9f4addb474b08273120 (patch)
tree4a8c3fb811dd164d4486628d8eff6043ebe8a6c3
parent3a91171181113761a14bcc36a086a8dda144b77b (diff)
Imported Upstream version 6.02~dfsg
-rw-r--r--ChangeLog4843
-rw-r--r--Makefile79
-rw-r--r--STKopcodes/top.xml84
-rw-r--r--TODO8
-rw-r--r--XO/library.info12
-rw-r--r--beats/top.xml272
-rw-r--r--categories.py11
-rw-r--r--command/flags.xml109
-rw-r--r--command/flagscategory.xml61
-rw-r--r--compare_opcode_lists.py75
-rw-r--r--control/pgmctl.xml1
-rw-r--r--control/reinitn.xml10
-rw-r--r--credits.txt48
-rw-r--r--csbeats/example.xml128
-rw-r--r--csbeats/syntax.xml122
-rw-r--r--csbeats/top.xml22
-rw-r--r--csd2docbook.py6
-rw-r--r--csd2docbook2.py11
-rw-r--r--csound-bw.css90
-rw-r--r--csound5/cs5opcodes.xml1
-rw-r--r--csound5/extending.xml1
-rw-r--r--csound5/opcodes/lua.xml114
-rw-r--r--csound5/opcodes/signalflowgraph.xml203
-rwxr-xr-xcsound5/tclcsound.xml288
-rw-r--r--csoundXO.css305
-rw-r--r--cvsauthors14
-rw-r--r--deprecated.txt101
-rw-r--r--deprecated/top.xml116
-rw-r--r--examples-xml/ATSadd-2.csd.xml56
-rw-r--r--examples-xml/ATSaddnz-2.csd.xml46
-rw-r--r--examples-xml/ATSinfo-2.csd.xml42
-rw-r--r--examples-xml/ATSread-2.csd.xml120
-rw-r--r--examples-xml/ATSsinnoi-2.csd.xml81
-rw-r--r--examples-xml/FLsavesnap.csd.xml4
-rw-r--r--examples-xml/JackoInfo.csd.xml26
-rw-r--r--examples-xml/JackoInit.csd.xml26
-rw-r--r--examples-xml/Mixer.csd.xml55
-rw-r--r--examples-xml/PartikkelExample1.csd.xml4
-rw-r--r--examples-xml/STKBandedWG.csd.xml20
-rw-r--r--examples-xml/STKBeeThree.csd.xml14
-rw-r--r--examples-xml/STKBlowBotl.csd.xml14
-rw-r--r--examples-xml/STKBlowHole.csd.xml14
-rw-r--r--examples-xml/STKBowed.csd.xml22
-rw-r--r--examples-xml/STKBrass.csd.xml13
-rw-r--r--examples-xml/STKClarinet.csd.xml10
-rw-r--r--examples-xml/STKDrummer.csd.xml8
-rw-r--r--examples-xml/STKFMVoices.csd.xml12
-rw-r--r--examples-xml/STKFlute.csd.xml14
-rw-r--r--examples-xml/STKHevyMetl.csd.xml10
-rw-r--r--examples-xml/STKMandolin.csd.xml10
-rw-r--r--examples-xml/STKModalBar.csd.xml8
-rw-r--r--examples-xml/STKMoog.csd.xml8
-rw-r--r--examples-xml/STKPercFlut.csd.xml10
-rw-r--r--examples-xml/STKPlucked.csd.xml6
-rw-r--r--examples-xml/STKResonate.csd.xml16
-rw-r--r--examples-xml/STKRhodey.csd.xml20
-rw-r--r--examples-xml/STKSaxofony.csd.xml12
-rw-r--r--examples-xml/STKShakers.csd.xml8
-rw-r--r--examples-xml/STKSimple.csd.xml18
-rw-r--r--examples-xml/STKSitar.csd.xml10
-rw-r--r--examples-xml/STKStifKarp.csd.xml10
-rw-r--r--examples-xml/STKTubeBell.csd.xml10
-rw-r--r--examples-xml/STKVoicForm.csd.xml8
-rw-r--r--examples-xml/STKWhistle.csd.xml10
-rw-r--r--examples-xml/STKWurley.csd.xml10
-rw-r--r--examples-xml/a.csd.xml43
-rw-r--r--examples-xml/alpass.csd.xml15
-rw-r--r--examples-xml/array.csd.xml28
-rw-r--r--examples-xml/array_array_math.csd.xml82
-rw-r--r--examples-xml/array_scalar_math.csd.xml76
-rw-r--r--examples-xml/array_udo.csd.xml26
-rw-r--r--examples-xml/b.csd.xml67
-rw-r--r--examples-xml/bformenc1.csd.xml67
-rw-r--r--examples-xml/bitwise.csd.xml2
-rw-r--r--examples-xml/butterbr.csd.xml2
-rw-r--r--examples-xml/cauchyi.csd.xml34
-rw-r--r--examples-xml/cell.csd.xml77
-rw-r--r--examples-xml/centroid.csd.xml39
-rw-r--r--examples-xml/checkbox.csd.xml2
-rw-r--r--examples-xml/chnclear.csd.xml85
-rw-r--r--examples-xml/chnget.csd.xml85
-rw-r--r--examples-xml/chnmix.csd.xml85
-rw-r--r--examples-xml/chnset.csd.xml85
-rw-r--r--examples-xml/clear.csd.xml9
-rw-r--r--examples-xml/combinv.csd.xml36
-rw-r--r--examples-xml/compileorc.csd.xml25
-rw-r--r--examples-xml/compilestr.csd.xml43
-rw-r--r--examples-xml/copya2ftab.csd.xml64
-rw-r--r--examples-xml/copyf2array.csd.xml41
-rw-r--r--examples-xml/cosseg.csd.xml58
-rw-r--r--examples-xml/cossegb.csd.xml49
-rw-r--r--examples-xml/cossegr.csd.xml36
-rw-r--r--examples-xml/cpumeter.csd.xml44
-rw-r--r--examples-xml/csbeats.csd.xml112
-rw-r--r--examples-xml/cuserrnd.csd.xml44
-rw-r--r--examples-xml/deltapx.csd.xml4
-rw-r--r--examples-xml/deltapxw.csd.xml4
-rw-r--r--examples-xml/divides.csd.xml33
-rw-r--r--examples-xml/dripwater.csd.xml34
-rw-r--r--examples-xml/dssi4cs.csd.xml20
-rw-r--r--examples-xml/dssiactivate.csd.xml16
-rw-r--r--examples-xml/dssiaudio.csd.xml16
-rw-r--r--examples-xml/dssictls.csd.xml26
-rw-r--r--examples-xml/dssiinit.csd.xml20
-rw-r--r--examples-xml/dssilist.csd.xml2
-rw-r--r--examples-xml/dssiplay_mono.csd.xml16
-rw-r--r--examples-xml/dssiplay_stereo.csd.xml20
-rw-r--r--examples-xml/dumpk-2.csd.xml39
-rw-r--r--examples-xml/dumpk2.csd.xml43
-rw-r--r--examples-xml/dumpk3.csd.xml46
-rw-r--r--examples-xml/dumpk4.csd.xml50
-rw-r--r--examples-xml/duserrnd.csd.xml35
-rw-r--r--examples-xml/dust.csd.xml30
-rw-r--r--examples-xml/dust2.csd.xml30
-rw-r--r--examples-xml/e.csd.xml48
-rw-r--r--examples-xml/equals.csd.xml48
-rw-r--r--examples-xml/event_i.csd.xml52
-rw-r--r--examples-xml/exitnow.csd.xml55
-rw-r--r--examples-xml/exprandi.csd.xml34
-rw-r--r--examples-xml/expsegb.csd.xml51
-rw-r--r--examples-xml/expsegba.csd.xml48
-rw-r--r--examples-xml/fareyleni.csd.xml90
-rw-r--r--examples-xml/ficlose.csd.xml37
-rw-r--r--examples-xml/filelen.csd.xml47
-rw-r--r--examples-xml/filenchnls.csd.xml47
-rw-r--r--examples-xml/filepeak.csd.xml45
-rw-r--r--examples-xml/filesr.csd.xml44
-rw-r--r--examples-xml/filevalid.csd.xml34
-rw-r--r--examples-xml/fill.csd.xml28
-rw-r--r--examples-xml/fillarray.csd.xml28
-rw-r--r--examples-xml/filter2.csd.xml39
-rw-r--r--examples-xml/fin.csd.xml35
-rw-r--r--examples-xml/fiopen.csd.xml37
-rw-r--r--examples-xml/flanger.csd.xml39
-rw-r--r--examples-xml/flashtxt.csd.xml2
-rw-r--r--examples-xml/flooper.csd.xml32
-rw-r--r--examples-xml/flooper2.csd.xml30
-rw-r--r--examples-xml/floor.csd.xml30
-rw-r--r--examples-xml/fluid-2.csd.xml54
-rw-r--r--examples-xml/fluidAllOut.csd.xml62
-rw-r--r--examples-xml/fluidCCi.csd.xml50
-rw-r--r--examples-xml/fluidCCk.csd.xml54
-rw-r--r--examples-xml/fluidEngine.csd.xml88
-rw-r--r--examples-xml/fluidLoad.csd.xml48
-rw-r--r--examples-xml/fluidNote.csd.xml48
-rw-r--r--examples-xml/fluidOut.csd.xml74
-rw-r--r--examples-xml/fluidProgramSelect.csd.xml48
-rw-r--r--examples-xml/fluidSetInterpMethod.csd.xml54
-rw-r--r--examples-xml/fluidcomplex.csd.xml20
-rw-r--r--examples-xml/fmb3.csd.xml44
-rw-r--r--examples-xml/fmbell.csd.xml60
-rw-r--r--examples-xml/fmmetal.csd.xml51
-rw-r--r--examples-xml/fmpercfl.csd.xml45
-rw-r--r--examples-xml/fmrhode.csd.xml51
-rw-r--r--examples-xml/fmvoice.csd.xml71
-rw-r--r--examples-xml/fmwurlie.csd.xml53
-rw-r--r--examples-xml/fof.csd.xml62
-rw-r--r--examples-xml/fofilter.csd.xml31
-rw-r--r--examples-xml/fog.csd.xml27
-rw-r--r--examples-xml/fold.csd.xml35
-rw-r--r--examples-xml/follow.csd.xml49
-rw-r--r--examples-xml/follow2.csd.xml44
-rw-r--r--examples-xml/foscil.csd.xml39
-rw-r--r--examples-xml/foscili.csd.xml57
-rw-r--r--examples-xml/fout.csd.xml49
-rw-r--r--examples-xml/fouti.csd.xml37
-rw-r--r--examples-xml/foutir.csd.xml44
-rw-r--r--examples-xml/fractalnoise.csd.xml31
-rw-r--r--examples-xml/ftchnls.csd.xml40
-rw-r--r--examples-xml/ftfree.csd.xml39
-rw-r--r--examples-xml/ftgen.csd.xml36
-rw-r--r--examples-xml/ftgenonce.csd.xml37
-rw-r--r--examples-xml/ftlen.csd.xml33
-rw-r--r--examples-xml/ftlptim.csd.xml30
-rw-r--r--examples-xml/ftmorf.csd.xml24
-rw-r--r--examples-xml/ftsr.csd.xml49
-rw-r--r--examples-xml/gain.csd.xml22
-rw-r--r--examples-xml/gaussi.csd.xml34
-rw-r--r--examples-xml/gausstrig-2.csd.xml38
-rw-r--r--examples-xml/gausstrig.csd.xml35
-rw-r--r--examples-xml/gbuzz.csd.xml41
-rw-r--r--examples-xml/gen01.csd.xml61
-rw-r--r--examples-xml/gen02.csd.xml52
-rw-r--r--examples-xml/gen03.csd.xml77
-rw-r--r--examples-xml/gen04.csd.xml54
-rw-r--r--examples-xml/gen05.csd.xml48
-rw-r--r--examples-xml/gen06.csd.xml50
-rw-r--r--examples-xml/gen07.csd.xml53
-rw-r--r--examples-xml/gen08.csd.xml53
-rw-r--r--examples-xml/gen09.csd.xml42
-rw-r--r--examples-xml/gen10.csd.xml39
-rw-r--r--examples-xml/gen11.csd.xml38
-rw-r--r--examples-xml/gen12.csd.xml80
-rw-r--r--examples-xml/gen13.csd.xml128
-rw-r--r--examples-xml/gen14.csd.xml73
-rw-r--r--examples-xml/gen15.csd.xml89
-rw-r--r--examples-xml/gen17.csd.xml41
-rw-r--r--examples-xml/gen18.csd.xml46
-rw-r--r--examples-xml/gen19.csd.xml48
-rw-r--r--examples-xml/gen20.csd.xml49
-rw-r--r--examples-xml/gen21.csd.xml56
-rw-r--r--examples-xml/gen23.csd.xml48
-rw-r--r--examples-xml/gen24.csd.xml39
-rw-r--r--examples-xml/gen25.csd.xml40
-rw-r--r--examples-xml/gen27.csd.xml39
-rw-r--r--examples-xml/gen28.csd.xml62
-rw-r--r--examples-xml/gen30.csd.xml68
-rw-r--r--examples-xml/gen32.csd.xml60
-rw-r--r--examples-xml/gen33.csd.xml48
-rw-r--r--examples-xml/gen34.csd.xml48
-rw-r--r--examples-xml/gen40.csd.xml44
-rw-r--r--examples-xml/gen41.csd.xml35
-rw-r--r--examples-xml/gen42.csd.xml51
-rw-r--r--examples-xml/gen49.csd.xml35
-rw-r--r--examples-xml/gen51.csd.xml60
-rw-r--r--examples-xml/gen52.csd.xml93
-rw-r--r--examples-xml/genarray.csd.xml44
-rw-r--r--examples-xml/genarray_i.csd.xml44
-rw-r--r--examples-xml/gendy-2.csd.xml38
-rw-r--r--examples-xml/gendy.csd.xml29
-rw-r--r--examples-xml/gendyc.csd.xml29
-rw-r--r--examples-xml/gendyx-2.csd.xml32
-rw-r--r--examples-xml/gendyx.csd.xml29
-rw-r--r--examples-xml/genexp.csd.xml45
-rw-r--r--examples-xml/genfarey-2.csd.xml99
-rw-r--r--examples-xml/gensone.csd.xml71
-rw-r--r--examples-xml/gentanh.csd.xml47
-rw-r--r--examples-xml/genwave.csd.xml110
-rw-r--r--examples-xml/getcfg.csd.xml54
-rw-r--r--examples-xml/gogobel.csd.xml44
-rw-r--r--examples-xml/grain.csd.xml59
-rw-r--r--examples-xml/grain2.csd.xml2
-rw-r--r--examples-xml/guiro.csd.xml23
-rw-r--r--examples-xml/harmon.csd.xml54
-rw-r--r--examples-xml/harmon3.csd.xml36
-rw-r--r--examples-xml/hilbert.csd.xml22
-rw-r--r--examples-xml/hrtfearly.csd.xml74
-rw-r--r--examples-xml/hrtfstat-2.csd.xml41
-rw-r--r--examples-xml/hrtfstat.csd.xml59
-rw-r--r--examples-xml/hsboscil.csd.xml31
-rw-r--r--examples-xml/hsboscil_midi.csd.xml40
-rw-r--r--examples-xml/hvs2.csd.xml22
-rw-r--r--examples-xml/i_statement.csd.xml71
-rw-r--r--examples-xml/imageopcodes.csd.xml12
-rw-r--r--examples-xml/in.csd.xml32
-rw-r--r--examples-xml/inch.csd.xml33
-rw-r--r--examples-xml/init.csd.xml35
-rw-r--r--examples-xml/initc7.csd.xml36
-rw-r--r--examples-xml/inleta.csd.xml204
-rw-r--r--examples-xml/inletk.csd.xml46
-rw-r--r--examples-xml/inq.csd.xml39
-rw-r--r--examples-xml/ins.csd.xml33
-rw-r--r--examples-xml/instance.csd.xml51
-rw-r--r--examples-xml/int.csd.xml29
-rw-r--r--examples-xml/invalue.csd.xml29
-rw-r--r--examples-xml/jacko.csd.xml40
-rw-r--r--examples-xml/jacktransport.csd.xml4
-rw-r--r--examples-xml/jitter.csd.xml45
-rw-r--r--examples-xml/jitter2.csd.xml54
-rw-r--r--examples-xml/joystick-2.csd.xml69
-rw-r--r--examples-xml/joystick.csd.xml58
-rw-r--r--examples-xml/jspline.csd.xml45
-rw-r--r--examples-xml/kill.csd.xml35
-rw-r--r--examples-xml/lenarray.csd.xml55
-rw-r--r--examples-xml/lessequal.csd.xml43
-rw-r--r--examples-xml/lessthan.csd.xml41
-rw-r--r--examples-xml/lfo.csd.xml38
-rw-r--r--examples-xml/limit.csd.xml65
-rw-r--r--examples-xml/line.csd.xml57
-rw-r--r--examples-xml/linen.csd.xml48
-rw-r--r--examples-xml/lineto.csd.xml36
-rw-r--r--examples-xml/linrand.csd.xml49
-rw-r--r--examples-xml/linseg.csd.xml74
-rw-r--r--examples-xml/linsegb.csd.xml49
-rw-r--r--examples-xml/linsegr.csd.xml49
-rw-r--r--examples-xml/locsend_stereo.csd.xml49
-rw-r--r--examples-xml/locsig_quad.csd.xml66
-rw-r--r--examples-xml/log2.csd.xml35
-rw-r--r--examples-xml/logicOR.csd.xml34
-rw-r--r--examples-xml/loop_le.csd.xml50
-rw-r--r--examples-xml/loop_lt.csd.xml50
-rw-r--r--examples-xml/loopseg.csd.xml49
-rw-r--r--examples-xml/loopsegp.csd.xml63
-rw-r--r--examples-xml/looptseg.csd.xml41
-rw-r--r--examples-xml/loopxseg.csd.xml40
-rw-r--r--examples-xml/lorismorph.csd.xml69
-rw-r--r--examples-xml/lorisplay.csd.xml51
-rw-r--r--examples-xml/lorisread.csd.xml50
-rw-r--r--examples-xml/loscil.csd.xml51
-rw-r--r--examples-xml/loscil3.csd.xml51
-rw-r--r--examples-xml/lowres.csd.xml38
-rw-r--r--examples-xml/lowresx.csd.xml43
-rw-r--r--examples-xml/lpfreson.csd.xml43
-rw-r--r--examples-xml/lposcil.csd.xml31
-rw-r--r--examples-xml/lposcil3.csd.xml33
-rw-r--r--examples-xml/lposcila.csd.xml35
-rw-r--r--examples-xml/lposcilsa.csd.xml41
-rw-r--r--examples-xml/lposcilsa2.csd.xml41
-rw-r--r--examples-xml/lpread.csd.xml41
-rw-r--r--examples-xml/lpreson-2.csd.xml38
-rw-r--r--examples-xml/lpreson.csd.xml41
-rw-r--r--examples-xml/lpshold.csd.xml47
-rw-r--r--examples-xml/lpsholdp.csd.xml41
-rw-r--r--examples-xml/luamoog.csd.xml264
-rw-r--r--examples-xml/luaopcode.csd.xml60
-rw-r--r--examples-xml/m.csd.xml41
-rw-r--r--examples-xml/mac.csd.xml52
-rw-r--r--examples-xml/maca.csd.xml62
-rw-r--r--examples-xml/madsr-2.csd.xml35
-rw-r--r--examples-xml/mandel.csd.xml103
-rw-r--r--examples-xml/mandol.csd.xml44
-rw-r--r--examples-xml/maparray.csd.xml86
-rw-r--r--examples-xml/massign.csd.xml65
-rw-r--r--examples-xml/max.csd.xml40
-rw-r--r--examples-xml/max_k.csd.xml55
-rw-r--r--examples-xml/maxabs.csd.xml40
-rw-r--r--examples-xml/maxabsaccum.csd.xml56
-rw-r--r--examples-xml/maxaccum.csd.xml56
-rw-r--r--examples-xml/maxalloc.csd.xml39
-rw-r--r--examples-xml/maxarray.csd.xml36
-rw-r--r--examples-xml/maxtab.csd.xml17
-rw-r--r--examples-xml/mclock.csd.xml27
-rw-r--r--examples-xml/metro-2.csd.xml34
-rw-r--r--examples-xml/midic7.csd.xml41
-rw-r--r--examples-xml/midichannelaftertouch.csd.xml34
-rw-r--r--examples-xml/midichn.csd.xml27
-rw-r--r--examples-xml/midichn_advanced.csd.xml30
-rw-r--r--examples-xml/midicontrolchange.csd.xml32
-rw-r--r--examples-xml/midictrl.csd.xml36
-rw-r--r--examples-xml/mididefault.csd.xml39
-rw-r--r--examples-xml/midinoteoff.csd.xml33
-rw-r--r--examples-xml/midinoteoncps.csd.xml33
-rw-r--r--examples-xml/midinoteonkey.csd.xml33
-rw-r--r--examples-xml/midinoteonoct.csd.xml35
-rw-r--r--examples-xml/midinoteonpch.csd.xml35
-rw-r--r--examples-xml/midion2.csd.xml29
-rw-r--r--examples-xml/midiout.csd.xml31
-rw-r--r--examples-xml/midipitchbend.csd.xml36
-rw-r--r--examples-xml/midipolyaftertouch.csd.xml43
-rw-r--r--examples-xml/midiprogramchange.csd.xml36
-rw-r--r--examples-xml/miditempo.csd.xml40
-rw-r--r--examples-xml/min.csd.xml41
-rw-r--r--examples-xml/minabs.csd.xml40
-rw-r--r--examples-xml/minabsaccum.csd.xml56
-rw-r--r--examples-xml/minaccum.csd.xml56
-rw-r--r--examples-xml/minarray.csd.xml34
-rw-r--r--examples-xml/mincer.csd.xml41
-rw-r--r--examples-xml/mintab.csd.xml17
-rw-r--r--examples-xml/mirror.csd.xml55
-rw-r--r--examples-xml/mode.csd.xml2
-rw-r--r--examples-xml/modulus.csd.xml36
-rw-r--r--examples-xml/monitor.csd.xml56
-rw-r--r--examples-xml/moog.csd.xml49
-rw-r--r--examples-xml/moogladder.csd.xml28
-rw-r--r--examples-xml/moogvcf.csd.xml44
-rw-r--r--examples-xml/moogvcf2.csd.xml43
-rw-r--r--examples-xml/mp3in.csd.xml27
-rw-r--r--examples-xml/mp3len.csd.xml33
-rw-r--r--examples-xml/multiplies.csd.xml27
-rw-r--r--examples-xml/multitap.csd.xml32
-rw-r--r--examples-xml/mute.csd.xml38
-rw-r--r--examples-xml/mxadsr.csd.xml35
-rw-r--r--examples-xml/nchnls.csd.xml33
-rw-r--r--examples-xml/nchnls_i.csd.xml39
-rw-r--r--examples-xml/nlfilt.csd.xml54
-rw-r--r--examples-xml/nlfilt2.csd.xml49
-rw-r--r--examples-xml/noise.csd.xml29
-rw-r--r--examples-xml/notequal.csd.xml40
-rw-r--r--examples-xml/notnum.csd.xml33
-rw-r--r--examples-xml/nrpn.csd.xml33
-rw-r--r--examples-xml/nsamp.csd.xml40
-rw-r--r--examples-xml/ntrpol.csd.xml35
-rw-r--r--examples-xml/octave.csd.xml38
-rw-r--r--examples-xml/opand.csd.xml41
-rw-r--r--examples-xml/opcode_example.csd.xml18
-rw-r--r--examples-xml/oscbnk.csd.xml6
-rw-r--r--examples-xml/oscil.csd.xml37
-rw-r--r--examples-xml/oscil1.csd.xml36
-rw-r--r--examples-xml/oscil1i.csd.xml41
-rw-r--r--examples-xml/oscil3.csd.xml62
-rw-r--r--examples-xml/oscili.csd.xml62
-rw-r--r--examples-xml/osciln.csd.xml50
-rw-r--r--examples-xml/oscils.csd.xml29
-rw-r--r--examples-xml/out.csd.xml38
-rw-r--r--examples-xml/outc.csd.xml36
-rw-r--r--examples-xml/outch-2.csd.xml37
-rw-r--r--examples-xml/outch.csd.xml39
-rw-r--r--examples-xml/outiat.csd.xml34
-rw-r--r--examples-xml/outic.csd.xml32
-rw-r--r--examples-xml/outipb.csd.xml33
-rw-r--r--examples-xml/outipc.csd.xml31
-rw-r--r--examples-xml/outkat.csd.xml35
-rw-r--r--examples-xml/outkc.csd.xml34
-rw-r--r--examples-xml/outkpb.csd.xml34
-rw-r--r--examples-xml/outkpc.csd.xml2
-rw-r--r--examples-xml/outleta.csd.xml151
-rw-r--r--examples-xml/outletk.csd.xml46
-rw-r--r--examples-xml/outq.csd.xml57
-rw-r--r--examples-xml/outq1.csd.xml36
-rw-r--r--examples-xml/outq2.csd.xml36
-rw-r--r--examples-xml/outq3.csd.xml36
-rw-r--r--examples-xml/outq4.csd.xml36
-rw-r--r--examples-xml/outrg.csd.xml48
-rw-r--r--examples-xml/outs.csd.xml41
-rw-r--r--examples-xml/outs1.csd.xml34
-rw-r--r--examples-xml/outs2.csd.xml34
-rw-r--r--examples-xml/outvalue.csd.xml28
-rw-r--r--examples-xml/pan.csd.xml33
-rw-r--r--examples-xml/pan2.csd.xml17
-rw-r--r--examples-xml/partials.csd.xml30
-rw-r--r--examples-xml/partikkel-2.csd.xml152
-rw-r--r--examples-xml/partikkel.csd.xml8
-rw-r--r--examples-xml/partikkel_softsync.csd.xml2
-rw-r--r--examples-xml/partikkelsync.csd.xml171
-rw-r--r--examples-xml/passign.csd.xml27
-rw-r--r--examples-xml/pcauchy.csd.xml48
-rw-r--r--examples-xml/pchbend.csd.xml33
-rw-r--r--examples-xml/pconvolve.csd.xml76
-rw-r--r--examples-xml/pcount.csd.xml83
-rw-r--r--examples-xml/pdhalf.csd.xml39
-rw-r--r--examples-xml/pdhalfy.csd.xml19
-rw-r--r--examples-xml/pgmassign_advanced.csd.xml24
-rw-r--r--examples-xml/phasor.csd.xml45
-rw-r--r--examples-xml/pindex-2.csd.xml88
-rw-r--r--examples-xml/pitch.csd.xml73
-rw-r--r--examples-xml/pitchamdf.csd.xml57
-rw-r--r--examples-xml/plate.csd.xml34
-rw-r--r--examples-xml/plltrack.csd.xml38
-rw-r--r--examples-xml/pluck.csd.xml34
-rw-r--r--examples-xml/polynomial.csd.xml107
-rw-r--r--examples-xml/pop.csd.xml43
-rw-r--r--examples-xml/port.csd.xml37
-rw-r--r--examples-xml/poscil.csd.xml38
-rw-r--r--examples-xml/poscil3.csd.xml36
-rw-r--r--examples-xml/pow.csd.xml38
-rw-r--r--examples-xml/powoftwo.csd.xml38
-rw-r--r--examples-xml/prepiano.csd.xml25
-rw-r--r--examples-xml/print.csd.xml33
-rw-r--r--examples-xml/printf.csd.xml39
-rw-r--r--examples-xml/printk2.csd.xml38
-rw-r--r--examples-xml/product.csd.xml38
-rw-r--r--examples-xml/pset-midi.csd.xml45
-rw-r--r--examples-xml/pset.csd.xml37
-rw-r--r--examples-xml/ptable.csd.xml50
-rw-r--r--examples-xml/ptablei.csd.xml68
-rw-r--r--examples-xml/ptrack.csd.xml35
-rw-r--r--examples-xml/push.csd.xml43
-rw-r--r--examples-xml/puts.csd.xml36
-rw-r--r--examples-xml/pvadd.csd.xml31
-rw-r--r--examples-xml/pvbufread.csd.xml34
-rw-r--r--examples-xml/pvcross.csd.xml41
-rw-r--r--examples-xml/pvinterp.csd.xml34
-rw-r--r--examples-xml/pvoc.csd.xml30
-rw-r--r--examples-xml/pvread.csd.xml34
-rw-r--r--examples-xml/pvsanal.csd.xml45
-rw-r--r--examples-xml/pvsbufread2.csd.xml37
-rw-r--r--examples-xml/pvsdiskin.csd.xml26
-rw-r--r--examples-xml/pvsfread.csd.xml34
-rw-r--r--examples-xml/pvsftr.csd.xml54
-rw-r--r--examples-xml/pvsftw.csd.xml26
-rw-r--r--examples-xml/pvsgain.csd.xml36
-rw-r--r--examples-xml/pvsifd.csd.xml25
-rw-r--r--examples-xml/pvsinfo.csd.xml27
-rw-r--r--examples-xml/pvslock.csd.xml37
-rw-r--r--examples-xml/pvsmix.csd.xml37
-rw-r--r--examples-xml/pvsmooth.csd.xml38
-rw-r--r--examples-xml/pvstanal.csd.xml46
-rw-r--r--examples-xml/pvsvoc.csd.xml38
-rw-r--r--examples-xml/pvswarp.csd.xml37
-rw-r--r--examples-xml/pwd.csd.xml34
-rw-r--r--examples-xml/q.csd.xml43
-rw-r--r--examples-xml/qinf.csd.xml48
-rw-r--r--examples-xml/qnan.csd.xml48
-rw-r--r--examples-xml/raises.csd.xml36
-rw-r--r--examples-xml/rand.csd.xml42
-rw-r--r--examples-xml/randh.csd.xml52
-rw-r--r--examples-xml/randi.csd.xml49
-rw-r--r--examples-xml/random.csd.xml41
-rw-r--r--examples-xml/randomh.csd.xml28
-rw-r--r--examples-xml/randomi.csd.xml24
-rw-r--r--examples-xml/rbjeq.csd.xml34
-rw-r--r--examples-xml/readf.csd.xml26
-rw-r--r--examples-xml/readfi.csd.xml22
-rw-r--r--examples-xml/readk-2.csd.xml39
-rw-r--r--examples-xml/readk2.csd.xml43
-rw-r--r--examples-xml/readk3.csd.xml46
-rw-r--r--examples-xml/readk4.csd.xml50
-rw-r--r--examples-xml/readscore.csd.xml33
-rw-r--r--examples-xml/readscratch.csd.xml31
-rw-r--r--examples-xml/repluck.csd.xml56
-rw-r--r--examples-xml/reson.csd.xml44
-rw-r--r--examples-xml/resonk.csd.xml41
-rw-r--r--examples-xml/resonx.csd.xml44
-rw-r--r--examples-xml/resonxk.csd.xml46
-rw-r--r--examples-xml/resony.csd.xml56
-rw-r--r--examples-xml/resonz.csd.xml72
-rw-r--r--examples-xml/resyn.csd.xml30
-rw-r--r--examples-xml/reverb.csd.xml57
-rw-r--r--examples-xml/rewindscore.csd.xml47
-rw-r--r--examples-xml/rezzy.csd.xml42
-rw-r--r--examples-xml/round.csd.xml31
-rw-r--r--examples-xml/rspline.csd.xml48
-rw-r--r--examples-xml/rtclock.csd.xml52
-rw-r--r--examples-xml/s.csd.xml42
-rw-r--r--examples-xml/samphold.csd.xml35
-rw-r--r--examples-xml/sandpaper.csd.xml38
-rw-r--r--examples-xml/scalearray.csd.xml40
-rw-r--r--examples-xml/scans-2.csd.xml64
-rw-r--r--examples-xml/scantable.csd.xml58
-rw-r--r--examples-xml/schedwhen.csd.xml52
-rw-r--r--examples-xml/scoreline.csd.xml41
-rw-r--r--examples-xml/scoreline_i.csd.xml39
-rw-r--r--examples-xml/seed.csd.xml36
-rw-r--r--examples-xml/sekere.csd.xml32
-rw-r--r--examples-xml/semitone.csd.xml40
-rw-r--r--examples-xml/seqtime2.csd.xml54
-rw-r--r--examples-xml/serialBegin.csd.xml42
-rw-r--r--examples-xml/serialRead.csd.xml42
-rw-r--r--examples-xml/serialWrite.csd.xml42
-rw-r--r--examples-xml/setctrl.csd.xml6
-rw-r--r--examples-xml/setscorepos.csd.xml86
-rw-r--r--examples-xml/sfilist.csd.xml57
-rw-r--r--examples-xml/sfinstr.csd.xml48
-rw-r--r--examples-xml/sfinstr3.csd.xml55
-rw-r--r--examples-xml/sfinstr3m.csd.xml48
-rw-r--r--examples-xml/sfload.csd.xml48
-rw-r--r--examples-xml/sflooper.csd.xml48
-rw-r--r--examples-xml/sfpassign.csd.xml72
-rw-r--r--examples-xml/sfplay.csd.xml32
-rw-r--r--examples-xml/sfplay3.csd.xml86
-rw-r--r--examples-xml/sfplay3m.csd.xml42
-rw-r--r--examples-xml/sfplaym.csd.xml42
-rw-r--r--examples-xml/sfplist.csd.xml48
-rw-r--r--examples-xml/sfpreset.csd.xml57
-rw-r--r--examples-xml/signum.csd.xml41
-rw-r--r--examples-xml/sin.csd.xml39
-rw-r--r--examples-xml/sinsyn.csd.xml36
-rw-r--r--examples-xml/sleighbells.csd.xml29
-rw-r--r--examples-xml/slicearray.csd.xml58
-rw-r--r--examples-xml/sndloop.csd.xml36
-rw-r--r--examples-xml/sndwarp.csd.xml63
-rw-r--r--examples-xml/sndwarpst.csd.xml50
-rw-r--r--examples-xml/soundin.csd.xml37
-rw-r--r--examples-xml/space_quad.csd.xml52
-rw-r--r--examples-xml/space_stereo.csd.xml46
-rw-r--r--examples-xml/spat3d_UHJ.csd.xml2
-rw-r--r--examples-xml/spat3d_quad.csd.xml4
-rw-r--r--examples-xml/spat3d_stereo.csd.xml4
-rw-r--r--examples-xml/spat3dt.csd.xml94
-rw-r--r--examples-xml/spdist.csd.xml66
-rw-r--r--examples-xml/sprintf.csd.xml35
-rw-r--r--examples-xml/spsend.csd.xml66
-rw-r--r--examples-xml/sqrt.csd.xml29
-rw-r--r--examples-xml/sr.csd.xml36
-rw-r--r--examples-xml/stack.csd.xml43
-rw-r--r--examples-xml/statevar.csd.xml34
-rw-r--r--examples-xml/stix.csd.xml35
-rw-r--r--examples-xml/strcat.csd.xml32
-rw-r--r--examples-xml/strcatk.csd.xml41
-rw-r--r--examples-xml/strchar.csd.xml39
-rw-r--r--examples-xml/strcmp.csd.xml49
-rw-r--r--examples-xml/strcpyk.csd.xml87
-rw-r--r--examples-xml/streson.csd.xml46
-rw-r--r--examples-xml/strfromurl.csd.xml32
-rw-r--r--examples-xml/strget.csd.xml35
-rw-r--r--examples-xml/strindexk.csd.xml87
-rw-r--r--examples-xml/strlower.csd.xml37
-rw-r--r--examples-xml/strrindex.csd.xml31
-rw-r--r--examples-xml/subtracts.csd.xml36
-rw-r--r--examples-xml/sum.csd.xml38
-rw-r--r--examples-xml/sumarray.csd.xml34
-rw-r--r--examples-xml/syncgrain.csd.xml29
-rw-r--r--examples-xml/syncloop.csd.xml22
-rw-r--r--examples-xml/system.csd.xml4
-rw-r--r--examples-xml/t.csd.xml41
-rw-r--r--examples-xml/tab.csd.xml37
-rw-r--r--examples-xml/tablecopy.csd.xml69
-rw-r--r--examples-xml/tablefilter.csd.xml46
-rw-r--r--examples-xml/tablei.csd.xml68
-rw-r--r--examples-xml/tableikt.csd.xml53
-rw-r--r--examples-xml/tableimix.csd.xml35
-rw-r--r--examples-xml/tableiw.csd.xml68
-rw-r--r--examples-xml/tablekt.csd.xml45
-rw-r--r--examples-xml/tablemix.csd.xml37
-rw-r--r--examples-xml/tableng.csd.xml35
-rw-r--r--examples-xml/tableseg.csd.xml35
-rw-r--r--examples-xml/tablexseg.csd.xml35
-rw-r--r--examples-xml/tabmap.csd.xml33
-rw-r--r--examples-xml/tabmorph.csd.xml43
-rw-r--r--examples-xml/tabmorpha.csd.xml42
-rw-r--r--examples-xml/tabmorphak.csd.xml42
-rw-r--r--examples-xml/tabmorphi.csd.xml43
-rw-r--r--examples-xml/tabslice.csd.xml32
-rw-r--r--examples-xml/tabsum.csd.xml44
-rw-r--r--examples-xml/tambourine.csd.xml29
-rw-r--r--examples-xml/tanh.csd.xml10
-rw-r--r--examples-xml/temposcal.csd.xml37
-rw-r--r--examples-xml/tigoto.csd.xml47
-rw-r--r--examples-xml/timedseq.csd.xml59
-rw-r--r--examples-xml/timeinsts.csd.xml33
-rw-r--r--examples-xml/times_complex.csd.xml73
-rw-r--r--examples-xml/timout.csd.xml54
-rw-r--r--examples-xml/tival.csd.xml47
-rw-r--r--examples-xml/tlineto.csd.xml40
-rw-r--r--examples-xml/tone.csd.xml23
-rw-r--r--examples-xml/tonek.csd.xml43
-rw-r--r--examples-xml/tonex.csd.xml31
-rw-r--r--examples-xml/tradsyn.csd.xml28
-rw-r--r--examples-xml/trandom.csd.xml42
-rw-r--r--examples-xml/transegb.csd.xml41
-rw-r--r--examples-xml/transegr.csd.xml36
-rw-r--r--examples-xml/trcross.csd.xml38
-rw-r--r--examples-xml/trfilter.csd.xml39
-rw-r--r--examples-xml/trhighest.csd.xml25
-rw-r--r--examples-xml/trigger.csd.xml46
-rw-r--r--examples-xml/trigseq.csd.xml112
-rw-r--r--examples-xml/trirand.csd.xml48
-rw-r--r--examples-xml/trlowest.csd.xml26
-rw-r--r--examples-xml/trmix.csd.xml30
-rw-r--r--examples-xml/trscale.csd.xml29
-rw-r--r--examples-xml/trshift.csd.xml37
-rw-r--r--examples-xml/trsplit.csd.xml27
-rw-r--r--examples-xml/unirand.csd.xml48
-rw-r--r--examples-xml/until.csd.xml40
-rw-r--r--examples-xml/upsamp.csd.xml69
-rw-r--r--examples-xml/urandom.csd.xml2
-rw-r--r--examples-xml/urandom_krate.csd.xml2
-rw-r--r--examples-xml/urd.csd.xml51
-rw-r--r--examples-xml/v.csd.xml40
-rw-r--r--examples-xml/valpass-2.csd.xml39
-rw-r--r--examples-xml/valpass.csd.xml22
-rw-r--r--examples-xml/vbap.csd.xml36
-rw-r--r--examples-xml/vbap4.csd.xml36
-rw-r--r--examples-xml/vbap4move.csd.xml34
-rw-r--r--examples-xml/vbap8.csd.xml6
-rw-r--r--examples-xml/vbapg.csd.xml36
-rw-r--r--examples-xml/vbapgmove.csd.xml35
-rw-r--r--examples-xml/vbaplsinit.csd.xml41
-rw-r--r--examples-xml/vbapmove.csd.xml34
-rw-r--r--examples-xml/vco2ift.csd.xml66
-rw-r--r--examples-xml/vco2init.csd.xml68
-rw-r--r--examples-xml/vdelay.csd.xml27
-rw-r--r--examples-xml/vdelay3.csd.xml21
-rw-r--r--examples-xml/vdelayx.csd.xml38
-rw-r--r--examples-xml/vdelayxq.csd.xml41
-rw-r--r--examples-xml/vdelayxs.csd.xml38
-rw-r--r--examples-xml/vdelayxw.csd.xml38
-rw-r--r--examples-xml/vdelayxwq.csd.xml41
-rw-r--r--examples-xml/vdelayxws.csd.xml38
-rw-r--r--examples-xml/veloc.csd.xml31
-rw-r--r--examples-xml/vibr.csd.xml37
-rw-r--r--examples-xml/vibrato.csd.xml51
-rw-r--r--examples-xml/vincr-complex.csd.xml51
-rw-r--r--examples-xml/vincr.csd.xml29
-rw-r--r--examples-xml/vlowres.csd.xml48
-rw-r--r--examples-xml/voice.csd.xml61
-rw-r--r--examples-xml/vpow-2.csd.xml41
-rw-r--r--examples-xml/vpow_i-2.csd.xml38
-rw-r--r--examples-xml/vpvoc.csd.xml36
-rw-r--r--examples-xml/vst4cs.csd.xml12
-rw-r--r--examples-xml/vtablewa.csd.xml14
-rw-r--r--examples-xml/vtablewk.csd.xml4
-rw-r--r--examples-xml/waveset.csd.xml39
-rw-r--r--examples-xml/weibull.csd.xml57
-rw-r--r--examples-xml/wgbow.csd.xml43
-rw-r--r--examples-xml/wgbowedbar.csd.xml47
-rw-r--r--examples-xml/wgclar.csd.xml46
-rw-r--r--examples-xml/wgflute.csd.xml44
-rw-r--r--examples-xml/wguide2.csd.xml34
-rw-r--r--examples-xml/wrap.csd.xml55
-rw-r--r--examples-xml/x.csd.xml47
-rw-r--r--examples-xml/xadsr.csd.xml42
-rw-r--r--examples-xml/xscanmap.csd.xml75
-rw-r--r--examples-xml/xscans.csd.xml109
-rw-r--r--examples-xml/xscanu.csd.xml99
-rw-r--r--[-rwxr-xr-x]examples/07AcousticGuitar.sf2bin144240 -> 144240 bytes
-rwxr-xr-xexamples/128,8-cylinderX482
-rwxr-xr-xexamples/128,8-gridX466
-rwxr-xr-xexamples/128,8-torus1
-rwxr-xr-xexamples/128,8-torusX514
-rwxr-xr-xexamples/128-left_rightX258
-rwxr-xr-xexamples/128-spiral-8,16,128,2,1over21
-rwxr-xr-xexamples/128-stringX256
-rwxr-xr-xexamples/128-stringcircular1
-rwxr-xr-xexamples/128-stringcircularX258
-rw-r--r--[-rwxr-xr-x]examples/19Trumpet.sf2bin211382 -> 211382 bytes
-rw-r--r--examples/ATSadd-2.csd54
-rw-r--r--[-rwxr-xr-x]examples/ATSadd.csd0
-rw-r--r--examples/ATSaddnz-2.csd44
-rw-r--r--[-rwxr-xr-x]examples/ATSaddnz.csd0
-rw-r--r--[-rwxr-xr-x]examples/ATSbufread.csd0
-rw-r--r--[-rwxr-xr-x]examples/ATScross.csd0
-rw-r--r--examples/ATSinfo-2.csd40
-rw-r--r--[-rwxr-xr-x]examples/ATSinfo.csd0
-rw-r--r--[-rwxr-xr-x]examples/ATSinterpread.csd0
-rw-r--r--[-rwxr-xr-x]examples/ATSpartialtap.csd0
-rw-r--r--examples/ATSread-2.csd118
-rw-r--r--[-rwxr-xr-x]examples/ATSread.csd0
-rw-r--r--[-rwxr-xr-x]examples/ATSreadnz.csd0
-rw-r--r--examples/ATSsinnoi-2.csd79
-rw-r--r--[-rwxr-xr-x]examples/ATSsinnoi.csd0
-rw-r--r--examples/Church.wavbin0 -> 9952 bytes
-rw-r--r--examples/FLsavesnap.csd4
-rw-r--r--examples/JackoInfo.csd24
-rw-r--r--examples/JackoInit.csd24
-rw-r--r--examples/Mixer.csd54
-rw-r--r--[-rwxr-xr-x]examples/STKBandedWG.csd20
-rw-r--r--[-rwxr-xr-x]examples/STKBeeThree.csd14
-rw-r--r--[-rwxr-xr-x]examples/STKBlowBotl.csd14
-rw-r--r--[-rwxr-xr-x]examples/STKBlowHole.csd14
-rw-r--r--[-rwxr-xr-x]examples/STKBowed.csd22
-rw-r--r--[-rwxr-xr-x]examples/STKBrass.csd13
-rw-r--r--[-rwxr-xr-x]examples/STKClarinet.csd10
-rw-r--r--[-rwxr-xr-x]examples/STKDrummer.csd6
-rw-r--r--[-rwxr-xr-x]examples/STKFMVoices.csd12
-rw-r--r--[-rwxr-xr-x]examples/STKFlute.csd14
-rw-r--r--[-rwxr-xr-x]examples/STKHevyMetl.csd10
-rw-r--r--[-rwxr-xr-x]examples/STKMandolin.csd10
-rw-r--r--[-rwxr-xr-x]examples/STKModalBar.csd8
-rw-r--r--[-rwxr-xr-x]examples/STKMoog.csd8
-rw-r--r--[-rwxr-xr-x]examples/STKPercFlut.csd10
-rw-r--r--[-rwxr-xr-x]examples/STKPlucked.csd4
-rw-r--r--[-rwxr-xr-x]examples/STKResonate.csd16
-rw-r--r--[-rwxr-xr-x]examples/STKRhodey.csd20
-rw-r--r--[-rwxr-xr-x]examples/STKSaxofony.csd12
-rw-r--r--[-rwxr-xr-x]examples/STKShakers.csd6
-rw-r--r--[-rwxr-xr-x]examples/STKSimple.csd18
-rw-r--r--[-rwxr-xr-x]examples/STKSitar.csd8
-rw-r--r--[-rwxr-xr-x]examples/STKStifKarp.csd10
-rw-r--r--[-rwxr-xr-x]examples/STKTubeBell.csd10
-rw-r--r--[-rwxr-xr-x]examples/STKVoicForm.csd8
-rw-r--r--[-rwxr-xr-x]examples/STKWhistle.csd10
-rw-r--r--[-rwxr-xr-x]examples/STKWurley.csd10
-rw-r--r--examples/a.csd42
-rw-r--r--[-rwxr-xr-x]examples/adsynt2.csd0
-rw-r--r--examples/alpass.csd15
-rw-r--r--[-rwxr-xr-x]examples/alwayson.csd0
-rw-r--r--examples/array.csd26
-rw-r--r--examples/array_array_math.csd80
-rw-r--r--examples/array_scalar_math.csd74
-rw-r--r--examples/array_udo.csd24
-rw-r--r--[-rwxr-xr-x]examples/atonex.csd0
-rw-r--r--examples/b.csd66
-rw-r--r--[-rwxr-xr-x]examples/bbcuts.csd0
-rw-r--r--examples/beats.atsbin0 -> 243680 bytes
-rw-r--r--examples/bformenc1.csd68
-rw-r--r--[-rwxr-xr-x]examples/binit.csd0
-rw-r--r--examples/bitwise.csd2
-rw-r--r--examples/butterbr.csd2
-rw-r--r--examples/cauchyi.csd32
-rw-r--r--[-rwxr-xr-x]examples/ceil.csd0
-rw-r--r--examples/cell.csd75
-rw-r--r--examples/centroid.csd38
-rw-r--r--[-rwxr-xr-x]examples/chanctrl.csd0
-rw-r--r--examples/chnclear.csd83
-rw-r--r--examples/chnget.csd83
-rw-r--r--examples/chnmix.csd83
-rw-r--r--examples/chnset.csd83
-rw-r--r--[-rwxr-xr-x]examples/clarinet.sdifbin3426152 -> 3426152 bytes
-rw-r--r--examples/clear.csd9
-rw-r--r--examples/combinv.csd34
-rw-r--r--examples/compileorc.csd24
-rw-r--r--examples/compilestr.csd42
-rw-r--r--[-rwxr-xr-x]examples/compress.csd0
-rw-r--r--[-rwxr-xr-x]examples/connect.csd0
-rw-r--r--examples/copya2ftab.csd62
-rw-r--r--examples/copyf2array.csd39
-rw-r--r--examples/cosseg.csd56
-rw-r--r--examples/cossegb.csd47
-rw-r--r--examples/cossegr.csd34
-rw-r--r--examples/cpumeter.csd42
-rw-r--r--[-rwxr-xr-x]examples/crossfm.csd0
-rw-r--r--examples/csbeats.csd111
-rw-r--r--[-rwxr-xr-x]examples/ctrl7.csd0
-rw-r--r--examples/cuserrnd.csd42
-rw-r--r--[-rwxr-xr-x]examples/dcblock2.csd0
-rw-r--r--[-rwxr-xr-x]examples/deltap.csd0
-rw-r--r--[-rwxr-xr-x]examples/deltap3.csd0
-rw-r--r--[-rwxr-xr-x]examples/deltapi.csd0
-rw-r--r--examples/deltapx.csd4
-rw-r--r--examples/deltapxw.csd4
-rw-r--r--[-rwxr-xr-x]examples/distort.csd0
-rw-r--r--examples/divides.csd34
-rw-r--r--examples/dripwater.csd34
-rw-r--r--[-rwxr-xr-x]examples/dssiactivate.csd0
-rw-r--r--[-rwxr-xr-x]examples/dssictls.csd0
-rw-r--r--[-rwxr-xr-x]examples/dssiinit.csd0
-rw-r--r--[-rwxr-xr-x]examples/dssilist.csd0
-rw-r--r--[-rwxr-xr-x]examples/dssiplay_mono.csd0
-rw-r--r--[-rwxr-xr-x]examples/dssiplay_stereo.csd0
-rw-r--r--examples/dumpk-2.csd37
-rw-r--r--examples/dumpk2.csd42
-rw-r--r--examples/dumpk3.csd45
-rw-r--r--examples/dumpk4.csd48
-rw-r--r--examples/duserrnd.csd33
-rw-r--r--examples/dust.csd28
-rw-r--r--examples/dust2.csd28
-rw-r--r--examples/e.csd47
-rw-r--r--[-rwxr-xr-x]examples/eqfil.csd0
-rw-r--r--[-rwxr-xr-x]examples/equal.csd0
-rw-r--r--examples/equals.csd48
-rw-r--r--examples/event_i.csd50
-rw-r--r--examples/exitnow.csd53
-rw-r--r--examples/exprandi.csd32
-rw-r--r--examples/expsegb.csd49
-rw-r--r--examples/expsegba.csd46
-rw-r--r--examples/fareyleni.csd89
-rw-r--r--examples/ficlose.csd32
-rw-r--r--examples/filelen.csd47
-rw-r--r--examples/filenchnls.csd47
-rw-r--r--examples/filepeak.csd45
-rw-r--r--examples/filesr.csd54
-rw-r--r--examples/filevalid.csd34
-rw-r--r--examples/fillarray.csd26
-rw-r--r--examples/filter2.csd37
-rw-r--r--examples/fin.csd33
-rw-r--r--examples/fiopen.csd32
-rw-r--r--examples/flanger.csd39
-rw-r--r--[-rwxr-xr-x]examples/flooper.csd32
-rw-r--r--[-rwxr-xr-x]examples/flooper2.csd30
-rw-r--r--[-rwxr-xr-x]examples/floor.csd30
-rw-r--r--[-rwxr-xr-x]examples/fluid-2.csd58
-rw-r--r--[-rwxr-xr-x]examples/fluid.csd0
-rw-r--r--examples/fluidAllOut.csd60
-rw-r--r--examples/fluidCCi.csd48
-rw-r--r--examples/fluidCCk.csd52
-rw-r--r--examples/fluidEngine.csd87
-rw-r--r--examples/fluidLoad.csd46
-rw-r--r--examples/fluidNote.csd46
-rw-r--r--examples/fluidOut.csd72
-rw-r--r--examples/fluidProgramSelect.csd46
-rw-r--r--examples/fluidSetInterpMethod.csd52
-rw-r--r--examples/fluidcomplex.csd20
-rw-r--r--examples/flute.aiffbin0 -> 231144 bytes
-rw-r--r--examples/fmb3.csd44
-rw-r--r--examples/fmbell.csd60
-rw-r--r--examples/fmmetal.csd51
-rw-r--r--examples/fmpercfl.csd45
-rw-r--r--examples/fmrhode.csd51
-rw-r--r--examples/fmvoice.csd71
-rw-r--r--examples/fmwurlie.csd53
-rw-r--r--examples/fof.csd62
-rw-r--r--[-rwxr-xr-x]examples/fofilter.csd33
-rw-r--r--[-rwxr-xr-x]examples/fog.csd27
-rw-r--r--examples/fold.csd35
-rw-r--r--examples/follow.csd49
-rw-r--r--examples/follow2.csd44
-rw-r--r--examples/foscil.csd39
-rw-r--r--examples/foscili.csd57
-rw-r--r--examples/fout.csd49
-rw-r--r--examples/fouti.csd32
-rw-r--r--examples/foutir.csd39
-rw-r--r--examples/fox.atsbin0 -> 985312 bytes
-rw-r--r--examples/fractalnoise.csd29
-rw-r--r--examples/ftchnls.csd40
-rw-r--r--examples/ftfree.csd37
-rw-r--r--examples/ftgen.csd36
-rw-r--r--examples/ftgenonce.csd33
-rw-r--r--examples/ftlen.csd38
-rw-r--r--examples/ftlptim.csd30
-rw-r--r--examples/ftmorf.csd24
-rw-r--r--examples/ftsr.csd57
-rw-r--r--examples/gain.csd22
-rw-r--r--examples/gaussi.csd32
-rw-r--r--examples/gausstrig-2.csd36
-rw-r--r--examples/gausstrig.csd33
-rw-r--r--examples/gbuzz.csd41
-rw-r--r--examples/gen01.csd70
-rw-r--r--examples/gen02.csd53
-rw-r--r--examples/gen03.csd78
-rw-r--r--examples/gen04.csd53
-rw-r--r--examples/gen05.csd51
-rw-r--r--examples/gen06.csd50
-rw-r--r--examples/gen07.csd53
-rw-r--r--examples/gen08.csd54
-rw-r--r--examples/gen09.csd43
-rw-r--r--examples/gen10.csd39
-rw-r--r--examples/gen11.csd38
-rw-r--r--examples/gen12.csd81
-rw-r--r--examples/gen13.csd129
-rw-r--r--examples/gen14.csd74
-rw-r--r--examples/gen15.csd87
-rw-r--r--examples/gen17.csd40
-rw-r--r--examples/gen18.csd45
-rw-r--r--examples/gen19.csd48
-rw-r--r--examples/gen20.csd45
-rw-r--r--examples/gen21.csd55
-rw-r--r--examples/gen23.csd47
-rw-r--r--examples/gen24.csd37
-rw-r--r--examples/gen25.csd39
-rw-r--r--examples/gen27.csd39
-rw-r--r--examples/gen28.csd60
-rw-r--r--examples/gen30.csd67
-rw-r--r--examples/gen32.csd59
-rw-r--r--examples/gen33.csd47
-rw-r--r--examples/gen34.csd47
-rw-r--r--examples/gen40.csd42
-rw-r--r--examples/gen41.csd33
-rw-r--r--examples/gen42.csd49
-rw-r--r--examples/gen49.csd35
-rw-r--r--examples/gen51.csd57
-rw-r--r--examples/gen52.csd92
-rw-r--r--examples/genarray.csd43
-rw-r--r--examples/genarray_i.csd43
-rw-r--r--examples/gendy-2.csd36
-rw-r--r--examples/gendy.csd27
-rw-r--r--examples/gendyc.csd27
-rw-r--r--examples/gendyx-2.csd30
-rw-r--r--examples/gendyx.csd27
-rw-r--r--examples/genexp.csd46
-rw-r--r--examples/genfarey-2.csd98
-rw-r--r--examples/gensone.csd87
-rw-r--r--examples/gentanh.csd48
-rw-r--r--examples/genwave.csd108
-rw-r--r--examples/getcfg.csd49
-rw-r--r--examples/gogobel.csd44
-rw-r--r--examples/grain.csd86
-rw-r--r--examples/grain2.csd2
-rw-r--r--examples/guiro.csd23
-rw-r--r--examples/harmon.csd54
-rw-r--r--examples/harmon3.csd35
-rw-r--r--examples/hilbert.csd22
-rw-r--r--examples/hrtfearly.csd74
-rw-r--r--examples/hrtfstat-2.csd39
-rw-r--r--examples/hrtfstat.csd68
-rw-r--r--examples/hsboscil.csd31
-rw-r--r--examples/hsboscil_midi.csd40
-rw-r--r--[-rwxr-xr-x]examples/hvs2.csd0
-rw-r--r--examples/i_statement.csd70
-rw-r--r--examples/imageopcodes.csd15
-rw-r--r--examples/in.csd30
-rw-r--r--examples/inch.csd31
-rw-r--r--examples/init.csd31
-rw-r--r--examples/initc7.csd36
-rw-r--r--[-rwxr-xr-x]examples/inleta.csd204
-rw-r--r--examples/inletk.csd42
-rw-r--r--examples/inq.csd37
-rw-r--r--examples/ins.csd31
-rw-r--r--examples/int.csd29
-rw-r--r--examples/invalue.csd28
-rw-r--r--examples/jitter.csd45
-rw-r--r--examples/jitter2.csd54
-rw-r--r--examples/joystick-2.csd67
-rw-r--r--examples/joystick.csd56
-rw-r--r--[-rwxr-xr-x]examples/jspline.csd45
-rw-r--r--[-rwxr-xr-x]examples/kickroll.wavbin151212 -> 151212 bytes
-rw-r--r--examples/lenarray.csd53
-rw-r--r--examples/lessequal.csd44
-rw-r--r--examples/lessthan.csd42
-rw-r--r--examples/lfo.csd38
-rw-r--r--[-rwxr-xr-x]examples/limit.csd65
-rw-r--r--examples/line.csd72
-rw-r--r--[-rwxr-xr-x]examples/linen.csd48
-rw-r--r--examples/lineto.csd34
-rw-r--r--examples/linrand.csd91
-rw-r--r--examples/linseg.csd74
-rw-r--r--examples/linsegb.csd47
-rw-r--r--examples/linsegr.csd51
-rw-r--r--[-rwxr-xr-x]examples/locsend_quad.csd0
-rw-r--r--[-rwxr-xr-x]examples/locsend_stereo.csd49
-rw-r--r--[-rwxr-xr-x]examples/locsig_quad.csd68
-rw-r--r--[-rwxr-xr-x]examples/locsig_stereo.csd0
-rw-r--r--examples/log2.csd33
-rw-r--r--examples/logicOR.csd32
-rw-r--r--examples/loop_le.csd48
-rw-r--r--examples/loop_lt.csd48
-rw-r--r--examples/loopseg.csd49
-rw-r--r--examples/loopsegp.csd66
-rw-r--r--examples/looptseg.csd41
-rw-r--r--examples/loopxseg.csd40
-rw-r--r--[-rwxr-xr-x]examples/lorismorph.csd73
-rw-r--r--[-rwxr-xr-x]examples/lorisplay.csd51
-rw-r--r--[-rwxr-xr-x]examples/lorisread.csd50
-rw-r--r--examples/loscil.csd51
-rw-r--r--examples/loscil3.csd51
-rw-r--r--examples/lowres.csd38
-rw-r--r--examples/lowresx.csd43
-rw-r--r--[-rwxr-xr-x]examples/lpfreson.csd43
-rw-r--r--[-rwxr-xr-x]examples/lposcil.csd31
-rw-r--r--[-rwxr-xr-x]examples/lposcil3.csd33
-rw-r--r--[-rwxr-xr-x]examples/lposcila.csd35
-rw-r--r--examples/lposcilsa.csd40
-rw-r--r--examples/lposcilsa2.csd40
-rw-r--r--[-rwxr-xr-x]examples/lpread.csd41
-rw-r--r--examples/lpreson-2.csd36
-rw-r--r--[-rwxr-xr-x]examples/lpreson.csd41
-rw-r--r--examples/lpshold.csd47
-rw-r--r--examples/lpsholdp.csd39
-rw-r--r--examples/luamoog.csd264
-rw-r--r--examples/luaopcode.csd61
-rw-r--r--examples/m.csd40
-rw-r--r--examples/mac.csd51
-rw-r--r--examples/maca.csd61
-rw-r--r--examples/madsr-2.csd33
-rw-r--r--examples/mandel.csd102
-rw-r--r--examples/mandol.csd44
-rw-r--r--examples/maparray.csd84
-rw-r--r--examples/massign.csd63
-rw-r--r--examples/max.csd38
-rw-r--r--examples/max_k.csd54
-rw-r--r--examples/maxabs.csd38
-rw-r--r--examples/maxabsaccum.csd55
-rw-r--r--examples/maxaccum.csd54
-rw-r--r--examples/maxalloc.csd39
-rw-r--r--examples/maxarray.csd34
-rw-r--r--examples/mclock.csd25
-rw-r--r--[-rwxr-xr-x]examples/meow.sdifbin312704 -> 312704 bytes
-rw-r--r--examples/metro-2.csd32
-rw-r--r--examples/midic7.csd39
-rw-r--r--examples/midichannelaftertouch.csd34
-rw-r--r--examples/midichn.csd27
-rw-r--r--examples/midichn_advanced.csd30
-rw-r--r--examples/midichn_advanced.midbin105 -> 372 bytes
-rw-r--r--[-rwxr-xr-x]examples/midicontrolchange.csd32
-rw-r--r--examples/midictrl.csd34
-rw-r--r--examples/mididefault.csd37
-rw-r--r--examples/midinoteoff.csd34
-rw-r--r--examples/midinoteoncps.csd33
-rw-r--r--examples/midinoteonkey.csd33
-rw-r--r--examples/midinoteonoct.csd35
-rw-r--r--examples/midinoteonpch.csd35
-rw-r--r--examples/midion2.csd27
-rw-r--r--examples/midiout.csd30
-rw-r--r--examples/midipitchbend.csd37
-rw-r--r--examples/midipolyaftertouch.csd41
-rw-r--r--examples/midiprogramchange.csd34
-rw-r--r--examples/miditempo.csd38
-rw-r--r--examples/min.csd39
-rw-r--r--examples/minabs.csd38
-rw-r--r--examples/minabsaccum.csd54
-rw-r--r--examples/minaccum.csd54
-rw-r--r--examples/minarray.csd32
-rw-r--r--examples/mincer.csd39
-rw-r--r--examples/mirror.csd53
-rw-r--r--examples/modulus.csd37
-rw-r--r--examples/monitor.csd54
-rw-r--r--examples/moog.csd49
-rw-r--r--[-rwxr-xr-x]examples/moogladder.csd32
-rw-r--r--examples/moogvcf.csd44
-rw-r--r--examples/moogvcf2.csd43
-rw-r--r--examples/move6
-rw-r--r--examples/move23
-rw-r--r--[-rwxr-xr-x]examples/mp3in.csd27
-rw-r--r--examples/mp3len.csd31
-rw-r--r--examples/multiplies.csd27
-rw-r--r--[-rwxr-xr-x]examples/multitap.csd32
-rw-r--r--examples/mute.csd38
-rw-r--r--examples/mxadsr.csd33
-rw-r--r--examples/my.orc5
-rw-r--r--examples/nchnls.csd31
-rw-r--r--examples/nchnls_i.csd37
-rw-r--r--[-rwxr-xr-x]examples/nlfilt.csd54
-rw-r--r--examples/nlfilt2.csd47
-rw-r--r--examples/noise.csd29
-rw-r--r--examples/notequal.csd40
-rw-r--r--examples/notnum.csd33
-rw-r--r--examples/nrpn.csd30
-rw-r--r--examples/nsamp.csd42
-rw-r--r--examples/ntrpol.csd33
-rw-r--r--examples/octave.csd38
-rw-r--r--examples/opand.csd39
-rw-r--r--examples/opcode_example.csd18
-rw-r--r--examples/oscbnk.csd4
-rw-r--r--examples/oscil.csd37
-rw-r--r--examples/oscil1.csd33
-rw-r--r--examples/oscil1i.csd38
-rw-r--r--examples/oscil3.csd62
-rw-r--r--examples/oscili.csd62
-rw-r--r--examples/osciln.csd48
-rw-r--r--examples/oscils.csd29
-rw-r--r--examples/out.csd36
-rw-r--r--examples/outc.csd34
-rw-r--r--examples/outch-2.csd36
-rw-r--r--examples/outch.csd37
-rw-r--r--examples/outiat.csd32
-rw-r--r--examples/outic.csd30
-rw-r--r--examples/outipb.csd31
-rw-r--r--examples/outipc.csd29
-rw-r--r--examples/outkat.csd33
-rw-r--r--examples/outkc.csd32
-rw-r--r--examples/outkpb.csd32
-rw-r--r--examples/outkpc.csd2
-rw-r--r--[-rwxr-xr-x]examples/outleta.csd184
-rw-r--r--examples/outletk.csd42
-rw-r--r--examples/outq.csd55
-rw-r--r--examples/outq1.csd34
-rw-r--r--examples/outq2.csd34
-rw-r--r--examples/outq3.csd34
-rw-r--r--examples/outq4.csd34
-rw-r--r--examples/outrg.csd47
-rw-r--r--examples/outs.csd39
-rw-r--r--examples/outs1.csd32
-rw-r--r--examples/outs2.csd32
-rw-r--r--examples/outvalue.csd26
-rw-r--r--[-rwxr-xr-x]examples/pan.csd33
-rw-r--r--[-rwxr-xr-x]examples/pan2.csd18
-rw-r--r--[-rwxr-xr-x]examples/partials.csd30
-rw-r--r--examples/partikkel-2.csd151
-rw-r--r--examples/partikkel.csd9
-rw-r--r--examples/partikkelsync.csd170
-rw-r--r--examples/passign.csd27
-rw-r--r--examples/pcauchy.csd92
-rw-r--r--examples/pchbend.csd51
-rw-r--r--examples/pconvolve.csd74
-rw-r--r--examples/pcount.csd109
-rw-r--r--examples/pdhalf.csd39
-rw-r--r--examples/pdhalfy.csd19
-rw-r--r--examples/pgmassign_advanced.csd24
-rw-r--r--examples/phasor.csd45
-rw-r--r--examples/pindex-2.csd86
-rw-r--r--examples/pitch.csd73
-rw-r--r--examples/pitchamdf.csd57
-rw-r--r--examples/plate.csd32
-rw-r--r--examples/plltrack.csd36
-rw-r--r--examples/pluck.csd34
-rw-r--r--examples/polynomial.csd107
-rw-r--r--examples/pop.csd39
-rw-r--r--examples/port.csd35
-rw-r--r--examples/poscil.csd38
-rw-r--r--examples/poscil3.csd36
-rw-r--r--examples/pow.csd39
-rw-r--r--examples/powoftwo.csd39
-rw-r--r--examples/prepiano.csd26
-rw-r--r--examples/print.csd33
-rw-r--r--examples/printf.csd37
-rw-r--r--examples/printk2.csd38
-rw-r--r--examples/product.csd36
-rw-r--r--examples/pset-midi.csd41
-rw-r--r--examples/pset.csd32
-rw-r--r--examples/ptable.csd48
-rw-r--r--examples/ptablei.csd66
-rw-r--r--examples/ptrack.csd35
-rw-r--r--examples/push.csd39
-rw-r--r--examples/puts.csd35
-rw-r--r--[-rwxr-xr-x]examples/pvadd.csd31
-rw-r--r--[-rwxr-xr-x]examples/pvbufread.csd35
-rw-r--r--[-rwxr-xr-x]examples/pvcross.csd42
-rw-r--r--[-rwxr-xr-x]examples/pvinterp.csd35
-rw-r--r--[-rwxr-xr-x]examples/pvoc.csd30
-rw-r--r--[-rwxr-xr-x]examples/pvread.csd34
-rw-r--r--[-rwxr-xr-x]examples/pvsanal.csd45
-rw-r--r--[-rwxr-xr-x]examples/pvsbuffer.csd0
-rw-r--r--examples/pvsbufread2.csd36
-rw-r--r--[-rwxr-xr-x]examples/pvsdiskin.csd26
-rw-r--r--examples/pvsfread.csd32
-rw-r--r--[-rwxr-xr-x]examples/pvsftr.csd54
-rw-r--r--[-rwxr-xr-x]examples/pvsftw.csd26
-rw-r--r--examples/pvsgain.csd34
-rw-r--r--[-rwxr-xr-x]examples/pvsifd.csd25
-rw-r--r--[-rwxr-xr-x]examples/pvsinfo.csd27
-rw-r--r--examples/pvslock.csd35
-rw-r--r--examples/pvsmix.csd35
-rw-r--r--examples/pvsmooth.csd36
-rw-r--r--examples/pvstanal.csd44
-rw-r--r--examples/pvsvoc.csd36
-rw-r--r--examples/pvswarp.csd35
-rw-r--r--examples/pwd.csd32
-rw-r--r--examples/q.csd42
-rw-r--r--examples/qinf.csd48
-rw-r--r--examples/qnan.csd48
-rw-r--r--examples/raises.csd37
-rw-r--r--examples/rand.csd42
-rw-r--r--examples/randh.csd52
-rw-r--r--examples/randi.csd49
-rw-r--r--examples/random.csd41
-rw-r--r--examples/randomh.csd29
-rw-r--r--examples/randomi.csd25
-rw-r--r--examples/rbjeq.csd34
-rw-r--r--examples/readf.csd27
-rw-r--r--examples/readfi.csd23
-rw-r--r--examples/readk-2.csd37
-rw-r--r--examples/readk2.csd42
-rw-r--r--examples/readk3.csd45
-rw-r--r--examples/readk4.csd48
-rw-r--r--examples/readscore.csd31
-rw-r--r--examples/readscratch.csd30
-rw-r--r--examples/repluck.csd56
-rw-r--r--examples/reson.csd44
-rw-r--r--examples/resonk.csd39
-rw-r--r--examples/resonx.csd42
-rw-r--r--examples/resonxk.csd44
-rw-r--r--examples/resony.csd56
-rw-r--r--examples/resonz.csd70
-rw-r--r--[-rwxr-xr-x]examples/resyn.csd30
-rw-r--r--examples/reverb.csd57
-rw-r--r--examples/rewindscore.csd46
-rw-r--r--examples/rezzy.csd42
-rw-r--r--[-rwxr-xr-x]examples/round.csd31
-rw-r--r--[-rwxr-xr-x]examples/rspline.csd48
-rw-r--r--examples/rtclock.csd52
-rw-r--r--examples/s.csd41
-rw-r--r--examples/samphold.csd32
-rw-r--r--examples/sandpaper.csd38
-rw-r--r--examples/scalearray.csd38
-rw-r--r--examples/scans-2.csd62
-rw-r--r--examples/scantable.csd58
-rw-r--r--examples/schedwhen.csd52
-rw-r--r--examples/scoreline.csd39
-rw-r--r--examples/scoreline_i.csd37
-rw-r--r--[-rwxr-xr-x]examples/seed.csd37
-rw-r--r--examples/sekere.csd32
-rw-r--r--examples/semitone.csd40
-rw-r--r--examples/seqtime2.csd53
-rw-r--r--examples/serialBegin.csd41
-rw-r--r--examples/serialRead.csd41
-rw-r--r--examples/serialWrite.csd41
-rw-r--r--[-rwxr-xr-x]examples/setscorepos.csd86
-rw-r--r--[-rwxr-xr-x]examples/sfilist.csd57
-rw-r--r--examples/sfinstr.csd46
-rw-r--r--examples/sfinstr3.csd50
-rw-r--r--examples/sfinstr3m.csd46
-rw-r--r--[-rwxr-xr-x]examples/sfload.csd48
-rw-r--r--[-rwxr-xr-x]examples/sflooper.csd48
-rw-r--r--examples/sfpassign.csd70
-rw-r--r--[-rwxr-xr-x]examples/sfplay.csd32
-rw-r--r--[-rwxr-xr-x]examples/sfplay3.csd101
-rw-r--r--[-rwxr-xr-x]examples/sfplay3m.csd42
-rw-r--r--[-rwxr-xr-x]examples/sfplaym.csd42
-rw-r--r--examples/sfplist.csd46
-rw-r--r--examples/sfpreset.csd55
-rw-r--r--examples/signum.csd39
-rw-r--r--examples/sin.csd39
-rw-r--r--examples/sinsyn.csd34
-rw-r--r--examples/sleighbells.csd29
-rw-r--r--examples/slicearray.csd56
-rw-r--r--[-rwxr-xr-x]examples/sndloop.csd36
-rw-r--r--examples/sndwarp.csd63
-rw-r--r--[-rwxr-xr-x]examples/sndwarpst.csd52
-rw-r--r--examples/soundin.csd37
-rw-r--r--[-rwxr-xr-x]examples/space_quad.csd54
-rw-r--r--[-rwxr-xr-x]examples/space_stereo.csd48
-rw-r--r--examples/spat3dt.csd90
-rw-r--r--examples/spdist.csd64
-rw-r--r--examples/spectrum.txt64
-rw-r--r--examples/sprintf.csd33
-rw-r--r--examples/spsend.csd64
-rw-r--r--[-rwxr-xr-x]examples/spsend_quad.csd0
-rw-r--r--[-rwxr-xr-x]examples/spsend_stereo.csd0
-rw-r--r--examples/sqrt.csd31
-rw-r--r--examples/sr.csd35
-rw-r--r--examples/stack.csd39
-rw-r--r--examples/statevar.csd32
-rw-r--r--[-rwxr-xr-x]examples/statvar.csd0
-rw-r--r--examples/stix.csd35
-rw-r--r--examples/strcat.csd30
-rw-r--r--examples/strcatk.csd39
-rw-r--r--examples/strchar.csd37
-rw-r--r--examples/strcmp.csd48
-rw-r--r--examples/strcpyk.csd85
-rw-r--r--examples/streson.csd46
-rw-r--r--examples/strfromurl.csd30
-rw-r--r--examples/strget.csd33
-rw-r--r--examples/strindexk.csd85
-rw-r--r--examples/strlower.csd36
-rw-r--r--examples/strrindex.csd30
-rw-r--r--examples/subtracts.csd37
-rw-r--r--examples/sum.csd36
-rw-r--r--examples/sumarray.csd32
-rw-r--r--examples/sym10.txt21
-rw-r--r--[-rwxr-xr-x]examples/syncgrain.csd29
-rw-r--r--[-rwxr-xr-x]examples/syncloop.csd22
-rw-r--r--examples/t.csd40
-rw-r--r--examples/tab.csd34
-rw-r--r--examples/tablecopy.csd68
-rw-r--r--examples/tablefilter.csd47
-rw-r--r--examples/tablei.csd66
-rw-r--r--examples/tableikt.csd52
-rw-r--r--examples/tableimix.csd33
-rw-r--r--examples/tableiw.csd66
-rw-r--r--examples/tablekt.csd44
-rw-r--r--examples/tablemix.csd35
-rw-r--r--examples/tableng.csd40
-rw-r--r--examples/tableseg.csd33
-rw-r--r--examples/tablexseg.csd33
-rw-r--r--examples/tabmorph.csd41
-rw-r--r--examples/tabmorpha.csd41
-rw-r--r--examples/tabmorphak.csd41
-rw-r--r--examples/tabmorphi.csd41
-rw-r--r--examples/tabsum.csd44
-rw-r--r--examples/tambourine.csd29
-rw-r--r--examples/tanh.csd10
-rw-r--r--examples/temposcal.csd35
-rw-r--r--examples/tigoto.csd45
-rw-r--r--examples/timedseq.csd58
-rw-r--r--examples/timeinsts.csd71
-rw-r--r--examples/times_complex.csd69
-rw-r--r--examples/timout.csd52
-rw-r--r--examples/tival.csd45
-rw-r--r--examples/tlineto.csd38
-rw-r--r--[-rwxr-xr-x]examples/tone.csd25
-rw-r--r--examples/tonek.csd41
-rw-r--r--[-rwxr-xr-x]examples/tonex.csd33
-rw-r--r--[-rwxr-xr-x]examples/tradsyn.csd30
-rw-r--r--[-rwxr-xr-x]examples/trandom.csd44
-rw-r--r--examples/transegb.csd41
-rw-r--r--examples/transegr.csd34
-rw-r--r--[-rwxr-xr-x]examples/trcross.csd38
-rw-r--r--examples/trfilter.csd37
-rw-r--r--[-rwxr-xr-x]examples/trhighest.csd27
-rw-r--r--examples/trigger.csd46
-rw-r--r--examples/trigseq.csd111
-rw-r--r--examples/trirand.csd48
-rw-r--r--[-rwxr-xr-x]examples/trlowest.csd28
-rw-r--r--[-rwxr-xr-x]examples/trmix.csd32
-rw-r--r--[-rwxr-xr-x]examples/trscale.csd31
-rw-r--r--examples/trshift.csd35
-rw-r--r--[-rwxr-xr-x]examples/trsplit.csd29
-rw-r--r--examples/unirand.csd48
-rw-r--r--examples/until.csd38
-rw-r--r--examples/upsamp.csd67
-rw-r--r--examples/urd.csd49
-rw-r--r--examples/v.csd39
-rw-r--r--examples/valpass-2.csd39
-rw-r--r--examples/valpass.csd24
-rw-r--r--examples/vbap.csd34
-rw-r--r--examples/vbap4.csd34
-rw-r--r--examples/vbap4move.csd33
-rw-r--r--examples/vbap8.csd6
-rw-r--r--examples/vbapg.csd34
-rw-r--r--examples/vbapgmove.csd34
-rw-r--r--examples/vbaplsinit.csd39
-rw-r--r--examples/vbapmove.csd33
-rw-r--r--examples/vco2ift.csd67
-rw-r--r--[-rwxr-xr-x]examples/vco2init.csd68
-rw-r--r--examples/vdelay.csd30
-rw-r--r--examples/vdelay3.csd23
-rw-r--r--examples/vdelayx.csd36
-rw-r--r--examples/vdelayxq.csd39
-rw-r--r--examples/vdelayxs.csd36
-rw-r--r--examples/vdelayxw.csd36
-rw-r--r--examples/vdelayxwq.csd40
-rw-r--r--examples/vdelayxws.csd36
-rw-r--r--examples/veloc.csd32
-rw-r--r--examples/vibr.csd38
-rw-r--r--examples/vibrato.csd52
-rw-r--r--examples/vincr-complex.csd50
-rw-r--r--examples/vincr.csd30
-rw-r--r--examples/vlowres.csd49
-rw-r--r--examples/voice.csd62
-rw-r--r--examples/vpow-2.csd39
-rw-r--r--examples/vpow_i-2.csd36
-rw-r--r--examples/vpvoc.csd36
-rw-r--r--examples/vtablewa.csd15
-rw-r--r--examples/vtablewk.csd4
-rw-r--r--examples/waveset.csd39
-rw-r--r--examples/weibull.csd104
-rw-r--r--examples/wgbow.csd46
-rw-r--r--examples/wgbowedbar.csd48
-rw-r--r--examples/wgclar.csd46
-rw-r--r--examples/wgflute.csd44
-rw-r--r--examples/wguide2.csd36
-rw-r--r--examples/wrap.csd53
-rw-r--r--examples/x.csd46
-rw-r--r--examples/xadsr.csd40
-rw-r--r--examples/xscanmap.csd74
-rw-r--r--examples/xscans.csd108
-rw-r--r--examples/xscanu.csd98
-rw-r--r--images/gen01_1.pngbin0 -> 6060 bytes
-rw-r--r--images/gen01_2.pngbin0 -> 10584 bytes
-rw-r--r--images/gen01_3.pngbin0 -> 7611 bytes
-rw-r--r--images/gen02_1.pngbin0 -> 4189 bytes
-rw-r--r--images/gen02_2.pngbin0 -> 4427 bytes
-rw-r--r--images/gen02_3.pngbin0 -> 4110 bytes
-rw-r--r--images/gen03_1.pngbin0 -> 4264 bytes
-rw-r--r--images/gen03_2.pngbin0 -> 4944 bytes
-rw-r--r--images/gen03_3.pngbin0 -> 5226 bytes
-rw-r--r--images/gen03_4.pngbin0 -> 3894 bytes
-rw-r--r--images/gen03_5.pngbin0 -> 3816 bytes
-rw-r--r--images/gen04_1.pngbin0 -> 8227 bytes
-rw-r--r--images/gen04_2.pngbin0 -> 3175 bytes
-rw-r--r--images/gen04_3.pngbin0 -> 4979 bytes
-rw-r--r--images/gen04_4.pngbin0 -> 3317 bytes
-rw-r--r--images/gen05_1.pngbin0 -> 3564 bytes
-rw-r--r--images/gen05_2.pngbin0 -> 4548 bytes
-rw-r--r--images/gen06_1.pngbin0 -> 6829 bytes
-rw-r--r--images/gen06_2.pngbin0 -> 4661 bytes
-rw-r--r--images/gen07_1.pngbin0 -> 4703 bytes
-rw-r--r--images/gen07_2.pngbin0 -> 3449 bytes
-rw-r--r--images/gen07_3.pngbin0 -> 4421 bytes
-rw-r--r--images/gen08_1.pngbin0 -> 4862 bytes
-rw-r--r--images/gen08_2.pngbin0 -> 5107 bytes
-rw-r--r--images/gen09_1.pngbin0 -> 5193 bytes
-rw-r--r--images/gen09_2.pngbin0 -> 5171 bytes
-rw-r--r--images/gen09_3.pngbin0 -> 5841 bytes
-rw-r--r--images/gen09_4.pngbin0 -> 12503 bytes
-rw-r--r--images/gen10_1.pngbin0 -> 5001 bytes
-rw-r--r--images/gen10_2.pngbin0 -> 4919 bytes
-rw-r--r--images/gen10_3.pngbin0 -> 5074 bytes
-rw-r--r--images/gen10_4.pngbin0 -> 4792 bytes
-rw-r--r--images/gen11_1.pngbin0 -> 5012 bytes
-rw-r--r--images/gen11_2.pngbin0 -> 4698 bytes
-rw-r--r--images/gen11_3.pngbin0 -> 8720 bytes
-rw-r--r--images/gen12.pngbin935 -> 4023 bytes
-rw-r--r--images/gen13_1.pngbin0 -> 4883 bytes
-rw-r--r--images/gen13_2.pngbin0 -> 4661 bytes
-rw-r--r--images/gen13_3.pngbin0 -> 4333 bytes
-rw-r--r--images/gen13_4.pngbin0 -> 5623 bytes
-rw-r--r--images/gen13_5.pngbin0 -> 5749 bytes
-rw-r--r--images/gen13_6.pngbin0 -> 6202 bytes
-rw-r--r--images/gen13_7.pngbin0 -> 4137 bytes
-rw-r--r--images/gen14_1.pngbin0 -> 4304 bytes
-rw-r--r--images/gen14_2.pngbin0 -> 4418 bytes
-rw-r--r--images/gen14_3.pngbin0 -> 4184 bytes
-rw-r--r--images/gen14_4.pngbin0 -> 4106 bytes
-rw-r--r--images/gen15-1.pngbin0 -> 7330 bytes
-rw-r--r--images/gen15-2.pngbin0 -> 7852 bytes
-rw-r--r--images/gen15-3.pngbin0 -> 9532 bytes
-rw-r--r--images/gen15-4.pngbin0 -> 7230 bytes
-rw-r--r--images/gen15-5.pngbin0 -> 7359 bytes
-rw-r--r--images/gen17.pngbin0 -> 3476 bytes
-rw-r--r--images/gen18_1.pngbin0 -> 5721 bytes
-rw-r--r--images/gen18_2.pngbin0 -> 8582 bytes
-rw-r--r--images/gen18_3.pngbin0 -> 7370 bytes
-rw-r--r--images/gen19_1.pngbin0 -> 3981 bytes
-rw-r--r--images/gen20_1.pngbin0 -> 4588 bytes
-rw-r--r--images/gen20_2.pngbin0 -> 4608 bytes
-rw-r--r--images/gen21_1.pngbin0 -> 7583 bytes
-rw-r--r--images/gen21_2.pngbin0 -> 7127 bytes
-rw-r--r--images/gen21_3.pngbin0 -> 7621 bytes
-rw-r--r--images/gen21_4.pngbin0 -> 7761 bytes
-rw-r--r--images/gen21_5.pngbin0 -> 6426 bytes
-rw-r--r--images/gen23.pngbin0 -> 11013 bytes
-rw-r--r--images/gen25.pngbin0 -> 4028 bytes
-rw-r--r--images/gen27.pngbin0 -> 4696 bytes
-rw-r--r--images/gen33.pngbin0 -> 12904 bytes
-rw-r--r--images/gen34.pngbin0 -> 13024 bytes
-rw-r--r--images/gen40.pngbin0 -> 3358 bytes
-rw-r--r--images/gen41.pngbin0 -> 3542 bytes
-rw-r--r--images/gen42.pngbin0 -> 3700 bytes
-rw-r--r--images/gen49.pngbin0 -> 6353 bytes
-rw-r--r--images/gen51_1.pngbin0 -> 3936 bytes
-rw-r--r--images/gen51_2.pngbin0 -> 3960 bytes
-rw-r--r--images/gen51_3.pngbin0 -> 4227 bytes
-rw-r--r--images/gen52.pngbin0 -> 3941 bytes
-rw-r--r--images/gendy.pngbin0 -> 35267 bytes
-rw-r--r--images/gendyx.pngbin0 -> 33844 bytes
-rw-r--r--images/genexp_1.pngbin0 -> 3745 bytes
-rw-r--r--images/genexp_2.pngbin0 -> 4191 bytes
-rw-r--r--images/genfarey-2_1.pngbin0 -> 3877 bytes
-rw-r--r--images/genfarey-2_2.pngbin0 -> 4823 bytes
-rw-r--r--images/gensone.pngbin0 -> 3948 bytes
-rw-r--r--images/gentanh_1.pngbin0 -> 3642 bytes
-rw-r--r--images/gentanh_2.pngbin0 -> 4006 bytes
-rw-r--r--images/gentanh_3.pngbin0 -> 3514 bytes
-rw-r--r--imagesXO/editorXO.jpgbin25339 -> 0 bytes
-rw-r--r--macinstall-cp.sh1
-rw-r--r--makeframes.py46
-rw-r--r--manpages.xml1531
-rw-r--r--manual.xml128
-rw-r--r--manualXO.xml1656
-rw-r--r--math/array.xml338
-rw-r--r--math/top.xml1
-rw-r--r--midi/top.xml5
-rw-r--r--misc/csound64.xml7
-rw-r--r--misc/examples.xml434
-rw-r--r--misc/quickref.xml465
-rw-r--r--misc/quickrefXO.xml1773
-rw-r--r--misc/topXO.xml12
-rw-r--r--miscopcodes/top.xml7
-rw-r--r--news.txt119
-rw-r--r--opcode_list.txt514
-rw-r--r--opcode_listXO.txt226
-rw-r--r--opcodeparser.py11
-rw-r--r--opcodes.xml407
-rw-r--r--opcodes/ATSadd.xml11
-rw-r--r--opcodes/ATSaddnz.xml15
-rw-r--r--opcodes/ATSinfo.xml9
-rw-r--r--opcodes/ATSread.xml10
-rw-r--r--opcodes/ATSsinnoi.xml12
-rw-r--r--opcodes/JackoInfo.xml12
-rw-r--r--opcodes/JackoInit.xml14
-rw-r--r--opcodes/JackoMidiOut.xml2
-rw-r--r--opcodes/JackoNoteOut.xml2
-rw-r--r--opcodes/OSCinit.xml10
-rw-r--r--opcodes/OSClisten.xml9
-rw-r--r--opcodes/OSCsend.xml1
-rw-r--r--[-rwxr-xr-x]opcodes/STKBandedWG.xml35
-rw-r--r--[-rwxr-xr-x]opcodes/STKBeeThree.xml41
-rw-r--r--[-rwxr-xr-x]opcodes/STKBlowBotl.xml28
-rw-r--r--[-rwxr-xr-x]opcodes/STKBlowHole.xml33
-rw-r--r--[-rwxr-xr-x]opcodes/STKBowed.xml26
-rw-r--r--[-rwxr-xr-x]opcodes/STKBrass.xml27
-rw-r--r--[-rwxr-xr-x]opcodes/STKClarinet.xml30
-rw-r--r--[-rwxr-xr-x]opcodes/STKDrummer.xml16
-rw-r--r--[-rwxr-xr-x]opcodes/STKFMVoices.xml35
-rw-r--r--[-rwxr-xr-x]opcodes/STKFlute.xml31
-rw-r--r--[-rwxr-xr-x]opcodes/STKHevyMetl.xml28
-rw-r--r--[-rwxr-xr-x]opcodes/STKMandolin.xml29
-rw-r--r--[-rwxr-xr-x]opcodes/STKModalBar.xml29
-rw-r--r--[-rwxr-xr-x]opcodes/STKMoog.xml25
-rw-r--r--[-rwxr-xr-x]opcodes/STKPercFlut.xml25
-rw-r--r--[-rwxr-xr-x]opcodes/STKPlucked.xml17
-rw-r--r--[-rwxr-xr-x]opcodes/STKResonate.xml30
-rw-r--r--[-rwxr-xr-x]opcodes/STKRhodey.xml27
-rw-r--r--[-rwxr-xr-x]opcodes/STKSaxofony.xml31
-rw-r--r--[-rwxr-xr-x]opcodes/STKShakers.xml30
-rw-r--r--[-rwxr-xr-x]opcodes/STKSimple.xml30
-rw-r--r--[-rwxr-xr-x]opcodes/STKSitar.xml15
-rw-r--r--[-rwxr-xr-x]opcodes/STKStifKarp.xml20
-rw-r--r--[-rwxr-xr-x]opcodes/STKTubeBell.xml26
-rw-r--r--[-rwxr-xr-x]opcodes/STKVoicForm.xml28
-rw-r--r--[-rwxr-xr-x]opcodes/STKWhistle.xml23
-rw-r--r--[-rwxr-xr-x]opcodes/STKWurley.xml29
-rw-r--r--opcodes/active.xml27
-rw-r--r--opcodes/adds.xml227
-rw-r--r--opcodes/alpass.xml24
-rw-r--r--opcodes/areson.xml60
-rw-r--r--opcodes/array.xml67
-rw-r--r--opcodes/assign.xml5
-rw-r--r--opcodes/atonex.xml8
-rw-r--r--opcodes/barmodel.xml242
-rw-r--r--opcodes/bformdec1.xml4
-rw-r--r--opcodes/bformenc1.xml8
-rw-r--r--opcodes/buthp.xml5
-rw-r--r--opcodes/butlp.xml1
-rw-r--r--opcodes/butterbp.xml8
-rw-r--r--opcodes/butterbr.xml8
-rw-r--r--opcodes/butterhp.xml5
-rw-r--r--opcodes/butterlp.xml7
-rw-r--r--opcodes/cauchyi.xml97
-rw-r--r--opcodes/ceil.xml6
-rw-r--r--opcodes/cell.xml119
-rw-r--r--opcodes/centroid.xml74
-rw-r--r--opcodes/chn.xml19
-rw-r--r--opcodes/chnclear.xml13
-rw-r--r--opcodes/chnget.xml12
-rw-r--r--opcodes/chnmix.xml13
-rw-r--r--opcodes/chnrecv.xml5
-rw-r--r--opcodes/chnsend.xml6
-rw-r--r--opcodes/chnset.xml8
-rw-r--r--opcodes/comb.xml20
-rw-r--r--opcodes/combinv.xml110
-rw-r--r--opcodes/compileorc.xml69
-rw-r--r--opcodes/compilestr.xml70
-rw-r--r--opcodes/copya2ftab.xml74
-rw-r--r--opcodes/copyf2array.xml73
-rw-r--r--opcodes/cosseg.xml110
-rw-r--r--opcodes/cossegb.xml102
-rw-r--r--opcodes/cossegr.xml110
-rw-r--r--opcodes/cpumeter.xml81
-rw-r--r--[-rwxr-xr-x]opcodes/crossfm.xml0
-rw-r--r--opcodes/ctrl7.xml6
-rw-r--r--opcodes/cuserrnd.xml40
-rw-r--r--opcodes/date.xml15
-rw-r--r--opcodes/diskin.xml32
-rw-r--r--opcodes/diskin2.xml31
-rw-r--r--opcodes/divides.xml23
-rw-r--r--opcodes/divz.xml2
-rw-r--r--opcodes/dssiaudio.xml2
-rw-r--r--opcodes/dumpk.xml25
-rw-r--r--opcodes/dumpk2.xml38
-rw-r--r--opcodes/dumpk3.xml40
-rw-r--r--opcodes/dumpk4.xml42
-rw-r--r--opcodes/duserrnd.xml24
-rw-r--r--opcodes/dust.xml73
-rw-r--r--opcodes/dust2.xml73
-rw-r--r--opcodes/equals.xml16
-rw-r--r--opcodes/evalstr.xml64
-rw-r--r--opcodes/event.xml2
-rw-r--r--opcodes/event_i.xml16
-rw-r--r--opcodes/exitnow.xml15
-rw-r--r--opcodes/exprandi.xml100
-rw-r--r--opcodes/expsegb.xml105
-rw-r--r--opcodes/expsegba.xml92
-rw-r--r--opcodes/fareylen.xml114
-rw-r--r--opcodes/fareyleni.xml126
-rw-r--r--opcodes/faustaudio.xml67
-rw-r--r--opcodes/faustcompile.xml56
-rw-r--r--opcodes/faustctl.xml67
-rw-r--r--opcodes/faustgen.xml66
-rw-r--r--opcodes/ficlose.xml15
-rw-r--r--opcodes/filebit.xml2
-rw-r--r--opcodes/filelen.xml11
-rw-r--r--opcodes/filenchnls.xml10
-rw-r--r--opcodes/filepeak.xml8
-rw-r--r--opcodes/filesr.xml7
-rw-r--r--opcodes/filevalid.xml14
-rw-r--r--opcodes/fillarray.xml68
-rw-r--r--opcodes/filter2.xml8
-rw-r--r--opcodes/fin.xml18
-rw-r--r--opcodes/fiopen.xml14
-rw-r--r--opcodes/flanger.xml161
-rw-r--r--opcodes/flooper.xml15
-rw-r--r--opcodes/flooper2.xml9
-rw-r--r--opcodes/floor.xml31
-rw-r--r--opcodes/fluidAllOut.xml14
-rw-r--r--opcodes/fluidCCi.xml13
-rw-r--r--opcodes/fluidCCk.xml13
-rw-r--r--opcodes/fluidControl.xml15
-rw-r--r--opcodes/fluidEngine.xml19
-rw-r--r--opcodes/fluidLoad.xml21
-rw-r--r--opcodes/fluidNote.xml19
-rw-r--r--opcodes/fluidOut.xml24
-rw-r--r--opcodes/fluidProgramSelect.xml15
-rw-r--r--opcodes/fluidSetInterpMethod.xml17
-rw-r--r--opcodes/fmb3.xml10
-rw-r--r--opcodes/fmbell.xml17
-rw-r--r--opcodes/fmmetal.xml1
-rw-r--r--opcodes/fmpercfl.xml10
-rw-r--r--opcodes/fmrhode.xml1
-rw-r--r--opcodes/fmvoice.xml7
-rw-r--r--opcodes/fmwurlie.xml1
-rw-r--r--opcodes/fofilter.xml26
-rw-r--r--opcodes/fog.xml21
-rw-r--r--opcodes/follow2.xml1
-rw-r--r--opcodes/foscil.xml6
-rw-r--r--opcodes/foscili.xml9
-rw-r--r--opcodes/fout.xml17
-rw-r--r--opcodes/fouti.xml12
-rw-r--r--opcodes/foutir.xml12
-rw-r--r--opcodes/fractalnoise.xml97
-rw-r--r--opcodes/ftchnls.xml153
-rw-r--r--opcodes/ftfree.xml25
-rw-r--r--opcodes/ftgen.xml1
-rw-r--r--opcodes/ftgenonce.xml14
-rw-r--r--opcodes/ftlen.xml8
-rw-r--r--opcodes/ftlptim.xml162
-rw-r--r--opcodes/ftmorf.xml2
-rw-r--r--opcodes/ftsr.xml15
-rw-r--r--opcodes/gaussi.xml102
-rw-r--r--opcodes/gausstrig.xml99
-rw-r--r--opcodes/gbuzz.xml1
-rw-r--r--opcodes/genarray.xml75
-rw-r--r--opcodes/genarray_i.xml77
-rw-r--r--opcodes/gendy.xml171
-rw-r--r--opcodes/gendyc.xml150
-rw-r--r--opcodes/gendyx.xml192
-rw-r--r--opcodes/getcfg.xml29
-rw-r--r--opcodes/grain.xml2
-rw-r--r--opcodes/guiro.xml4
-rw-r--r--opcodes/harmon.xml1
-rw-r--r--opcodes/harmon234.xml8
-rw-r--r--opcodes/hilbert.xml4
-rw-r--r--opcodes/hrtfearly.xml171
-rw-r--r--opcodes/hrtfmove.xml12
-rw-r--r--opcodes/hrtfmove2.xml12
-rw-r--r--opcodes/hrtfreverb.xml110
-rw-r--r--opcodes/hrtfstat.xml28
-rw-r--r--opcodes/hvs2.xml10
-rw-r--r--opcodes/hvs3.xml6
-rw-r--r--opcodes/imagesetpixel.xml4
-rw-r--r--opcodes/imagesize.xml6
-rw-r--r--opcodes/in.xml37
-rw-r--r--opcodes/inch.xml11
-rw-r--r--opcodes/include.xml8
-rw-r--r--opcodes/init.xml53
-rw-r--r--opcodes/initc7.xml12
-rw-r--r--opcodes/inleta.xml17
-rw-r--r--opcodes/inletf.xml2
-rw-r--r--opcodes/inletk.xml16
-rw-r--r--opcodes/inletkid.xml81
-rw-r--r--opcodes/inq.xml11
-rw-r--r--opcodes/ins.xml11
-rw-r--r--opcodes/insglobal.xml47
-rw-r--r--opcodes/insremot.xml45
-rw-r--r--opcodes/instance.xml116
-rw-r--r--opcodes/int.xml18
-rw-r--r--opcodes/interp.xml5
-rw-r--r--opcodes/invalue.xml12
-rw-r--r--opcodes/jitter.xml1
-rw-r--r--opcodes/jitter2.xml1
-rw-r--r--opcodes/joystick.xml75
-rw-r--r--opcodes/jspline.xml12
-rw-r--r--opcodes/kgoto.xml2
-rw-r--r--opcodes/kill.xml61
-rw-r--r--opcodes/kr.xml2
-rw-r--r--opcodes/lenarray.xml71
-rw-r--r--opcodes/lessequal.xml15
-rw-r--r--opcodes/lessthan.xml9
-rw-r--r--opcodes/limit.xml12
-rw-r--r--opcodes/line.xml1
-rw-r--r--opcodes/linen.xml13
-rw-r--r--opcodes/linenr.xml12
-rw-r--r--opcodes/lineto.xml12
-rw-r--r--opcodes/linrand.xml28
-rw-r--r--opcodes/linseg.xml198
-rw-r--r--opcodes/linsegb.xml98
-rw-r--r--opcodes/linsegr.xml1
-rw-r--r--opcodes/locsend.xml28
-rw-r--r--opcodes/locsig.xml32
-rw-r--r--opcodes/log10.xml1
-rw-r--r--opcodes/log2.xml72
-rw-r--r--opcodes/loop_ge.xml2
-rw-r--r--opcodes/loop_gt.xml3
-rw-r--r--opcodes/loop_le.xml26
-rw-r--r--opcodes/loop_lt.xml25
-rw-r--r--opcodes/loopseg.xml201
-rw-r--r--opcodes/looptseg.xml19
-rw-r--r--opcodes/loopxseg.xml199
-rw-r--r--opcodes/lorismorph.xml12
-rw-r--r--opcodes/lorisplay.xml12
-rw-r--r--opcodes/lorisread.xml12
-rw-r--r--opcodes/loscil.xml3
-rw-r--r--opcodes/loscil3.xml3
-rw-r--r--opcodes/lowres.xml4
-rw-r--r--opcodes/lowresx.xml31
-rw-r--r--opcodes/lpf18.xml19
-rw-r--r--opcodes/lpfreson.xml29
-rw-r--r--opcodes/lpinterp.xml31
-rw-r--r--opcodes/lposcil.xml14
-rw-r--r--opcodes/lposcil3.xml13
-rw-r--r--opcodes/lposcila.xml5
-rw-r--r--opcodes/lposcilsa.xml6
-rw-r--r--opcodes/lposcilsa2.xml6
-rw-r--r--opcodes/lpread.xml16
-rw-r--r--opcodes/lpreson.xml43
-rw-r--r--opcodes/lpshold.xml11
-rw-r--r--opcodes/lpsholdp.xml10
-rw-r--r--opcodes/lpslot.xml31
-rw-r--r--opcodes/lua_exec.xml101
-rw-r--r--opcodes/lua_opcall.xml137
-rw-r--r--opcodes/lua_opdef.xml157
-rw-r--r--opcodes/mac.xml14
-rw-r--r--opcodes/maca.xml13
-rw-r--r--opcodes/madsr.xml9
-rw-r--r--opcodes/mandel.xml20
-rw-r--r--opcodes/mandol.xml1
-rw-r--r--opcodes/maparray.xml79
-rw-r--r--opcodes/massign.xml12
-rw-r--r--opcodes/max.xml16
-rw-r--r--opcodes/max_k.xml27
-rw-r--r--opcodes/maxabs.xml16
-rw-r--r--opcodes/maxabsaccum.xml12
-rw-r--r--opcodes/maxaccum.xml12
-rw-r--r--opcodes/maxalloc.xml3
-rw-r--r--opcodes/maxarray.xml76
-rw-r--r--opcodes/mclock.xml12
-rw-r--r--opcodes/median.xml4
-rw-r--r--opcodes/mediank.xml4
-rw-r--r--opcodes/metro.xml17
-rw-r--r--opcodes/midic7.xml11
-rw-r--r--opcodes/midichannelaftertouch.xml6
-rw-r--r--opcodes/midichn.xml8
-rw-r--r--opcodes/midicontrolchange.xml12
-rw-r--r--opcodes/midictrl.xml11
-rw-r--r--opcodes/mididefault.xml12
-rw-r--r--opcodes/midifilestatus.xml44
-rw-r--r--opcodes/midiin.xml2
-rw-r--r--opcodes/midinoteoff.xml6
-rw-r--r--opcodes/midinoteoncps.xml6
-rw-r--r--opcodes/midinoteonkey.xml6
-rw-r--r--opcodes/midinoteonoct.xml7
-rw-r--r--opcodes/midinoteonpch.xml6
-rw-r--r--opcodes/midion2.xml15
-rw-r--r--opcodes/midiout.xml14
-rw-r--r--opcodes/midipitchbend.xml5
-rw-r--r--opcodes/midipolyaftertouch.xml18
-rw-r--r--opcodes/midiprogramchange.xml12
-rw-r--r--opcodes/miditempo.xml16
-rw-r--r--opcodes/min.xml18
-rw-r--r--opcodes/minabs.xml16
-rw-r--r--opcodes/minabsaccum.xml12
-rw-r--r--opcodes/minaccum.xml12
-rw-r--r--opcodes/minarray.xml76
-rw-r--r--opcodes/mincer.xml35
-rw-r--r--opcodes/mirror.xml12
-rw-r--r--opcodes/mixerclear.xml8
-rw-r--r--opcodes/mixergetlevel.xml11
-rw-r--r--opcodes/mixerreceive.xml7
-rw-r--r--opcodes/mixersend.xml7
-rw-r--r--opcodes/mixersetlevel.xml7
-rw-r--r--opcodes/mode.xml18
-rw-r--r--opcodes/modulus.xml20
-rw-r--r--opcodes/monitor.xml12
-rw-r--r--opcodes/moog.xml2
-rw-r--r--opcodes/moogladder.xml40
-rw-r--r--opcodes/moogvcf.xml4
-rw-r--r--opcodes/moogvcf2.xml1
-rw-r--r--opcodes/mp3in.xml18
-rw-r--r--opcodes/mp3len.xml75
-rw-r--r--opcodes/mpulse.xml8
-rw-r--r--opcodes/multiplies.xml19
-rw-r--r--opcodes/multitap.xml20
-rw-r--r--opcodes/mute.xml1
-rw-r--r--opcodes/mxadsr.xml12
-rw-r--r--opcodes/nchnls.xml12
-rw-r--r--opcodes/nchnls_i.xml22
-rw-r--r--opcodes/nlfilt.xml14
-rw-r--r--opcodes/nlfilt2.xml126
-rw-r--r--opcodes/noise.xml5
-rw-r--r--opcodes/notequal.xml13
-rw-r--r--opcodes/notnum.xml9
-rw-r--r--opcodes/nrpn.xml13
-rw-r--r--opcodes/nsamp.xml10
-rw-r--r--opcodes/ntrpol.xml12
-rw-r--r--opcodes/octave.xml18
-rw-r--r--opcodes/opand.xml23
-rw-r--r--opcodes/opcode.xml23
-rw-r--r--opcodes/opi.xml13
-rw-r--r--opcodes/opk.xml15
-rw-r--r--opcodes/opor.xml31
-rw-r--r--opcodes/oscil.xml8
-rw-r--r--opcodes/oscil1.xml32
-rw-r--r--opcodes/oscil1i.xml18
-rw-r--r--opcodes/oscil3.xml9
-rw-r--r--opcodes/oscili.xml1
-rw-r--r--opcodes/osciln.xml12
-rw-r--r--opcodes/oscils.xml2
-rw-r--r--opcodes/out.xml29
-rw-r--r--opcodes/outc.xml12
-rw-r--r--opcodes/outch.xml34
-rw-r--r--opcodes/outiat.xml14
-rw-r--r--opcodes/outic.xml12
-rw-r--r--opcodes/outipb.xml12
-rw-r--r--opcodes/outipc.xml12
-rw-r--r--opcodes/outkat.xml14
-rw-r--r--opcodes/outkc.xml12
-rw-r--r--opcodes/outkpb.xml12
-rw-r--r--opcodes/outleta.xml15
-rw-r--r--opcodes/outletf.xml2
-rw-r--r--opcodes/outletk.xml15
-rw-r--r--opcodes/outletkid.xml81
-rw-r--r--opcodes/outq.xml12
-rw-r--r--opcodes/outq1.xml12
-rw-r--r--opcodes/outq2.xml12
-rw-r--r--opcodes/outq3.xml12
-rw-r--r--opcodes/outq4.xml12
-rw-r--r--opcodes/outrg.xml30
-rw-r--r--opcodes/outs.xml12
-rw-r--r--opcodes/outs1.xml12
-rw-r--r--opcodes/outs2.xml12
-rw-r--r--opcodes/outvalue.xml16
-rw-r--r--opcodes/pan.xml23
-rw-r--r--opcodes/pan2.xml21
-rw-r--r--opcodes/partials.xml26
-rw-r--r--opcodes/partikkel.xml13
-rw-r--r--opcodes/partikkelsync.xml18
-rw-r--r--opcodes/pcauchy.xml29
-rw-r--r--opcodes/pchbend.xml5
-rw-r--r--opcodes/pconvolve.xml83
-rw-r--r--opcodes/pcount.xml22
-rw-r--r--opcodes/pdhalf.xml27
-rw-r--r--opcodes/pdhalfy.xml26
-rw-r--r--opcodes/phaser1.xml1
-rw-r--r--opcodes/phaser2.xml8
-rw-r--r--opcodes/phasor.xml4
-rw-r--r--opcodes/pindex.xml26
-rw-r--r--opcodes/pitch.xml3
-rw-r--r--opcodes/pitchamdf.xml2
-rw-r--r--opcodes/planet.xml13
-rw-r--r--opcodes/platerev.xml113
-rw-r--r--opcodes/plltrack.xml95
-rw-r--r--opcodes/pluck.xml9
-rw-r--r--opcodes/plusbecomes.xml76
-rw-r--r--opcodes/poisson.xml1
-rw-r--r--opcodes/pop.xml15
-rw-r--r--opcodes/port.xml12
-rw-r--r--opcodes/poscil.xml64
-rw-r--r--opcodes/poscil3.xml50
-rw-r--r--opcodes/pow.xml16
-rw-r--r--opcodes/powoftwo.xml15
-rw-r--r--opcodes/print.xml15
-rw-r--r--opcodes/printf.xml30
-rw-r--r--opcodes/printk2.xml14
-rw-r--r--opcodes/product.xml12
-rw-r--r--opcodes/pset.xml21
-rw-r--r--opcodes/ptable.xml108
-rw-r--r--opcodes/ptable3.xml97
-rw-r--r--opcodes/ptablei.xml115
-rw-r--r--opcodes/ptablew.xml209
-rw-r--r--opcodes/push.xml15
-rw-r--r--opcodes/puts.xml22
-rw-r--r--opcodes/pvadd.xml8
-rw-r--r--opcodes/pvbufread.xml38
-rw-r--r--opcodes/pvcross.xml27
-rw-r--r--opcodes/pvinterp.xml29
-rw-r--r--opcodes/pvoc.xml14
-rw-r--r--opcodes/pvread.xml31
-rw-r--r--opcodes/pvs2tab.xml73
-rw-r--r--opcodes/pvsanal.xml28
-rw-r--r--opcodes/pvsbandp.xml9
-rw-r--r--opcodes/pvsbandr.xml11
-rw-r--r--[-rwxr-xr-x]opcodes/pvsbuffer.xml0
-rw-r--r--[-rwxr-xr-x]opcodes/pvsbufread.xml267
-rw-r--r--opcodes/pvsbufread2.xml109
-rw-r--r--opcodes/pvscale.xml29
-rw-r--r--opcodes/pvsdemix.xml58
-rw-r--r--opcodes/pvsdiskin.xml16
-rw-r--r--opcodes/pvsfread.xml17
-rw-r--r--[-rwxr-xr-x]opcodes/pvsfreeze.xml217
-rw-r--r--opcodes/pvsftr.xml28
-rw-r--r--opcodes/pvsftw.xml26
-rw-r--r--opcodes/pvsgain.xml81
-rw-r--r--opcodes/pvshift.xml30
-rw-r--r--opcodes/pvsifd.xml22
-rw-r--r--opcodes/pvsin.xml40
-rw-r--r--opcodes/pvsinfo.xml20
-rw-r--r--opcodes/pvsinit.xml157
-rw-r--r--opcodes/pvslock.xml30
-rw-r--r--opcodes/pvsmix.xml29
-rw-r--r--[-rwxr-xr-x]opcodes/pvsmooth.xml66
-rw-r--r--opcodes/pvsmorph.xml183
-rw-r--r--opcodes/pvsout.xml19
-rw-r--r--opcodes/pvstanal.xml39
-rw-r--r--opcodes/pvstencil.xml38
-rw-r--r--opcodes/pvsvoc.xml28
-rw-r--r--opcodes/pvswarp.xml25
-rw-r--r--opcodes/pvsynth.xml19
-rw-r--r--opcodes/pwd.xml65
-rw-r--r--opcodes/qinf.xml54
-rw-r--r--opcodes/qnan.xml53
-rw-r--r--opcodes/raises.xml231
-rw-r--r--opcodes/rand.xml19
-rw-r--r--opcodes/randh.xml36
-rw-r--r--opcodes/randi.xml22
-rw-r--r--opcodes/random.xml13
-rw-r--r--opcodes/randomh.xml224
-rw-r--r--opcodes/randomi.xml241
-rw-r--r--opcodes/readf.xml80
-rw-r--r--opcodes/readfi.xml69
-rw-r--r--opcodes/readk.xml26
-rw-r--r--opcodes/readk2.xml38
-rw-r--r--opcodes/readk3.xml40
-rw-r--r--opcodes/readk4.xml42
-rw-r--r--opcodes/readscore.xml76
-rw-r--r--opcodes/readscratch.xml74
-rw-r--r--opcodes/reson.xml10
-rw-r--r--opcodes/resonk.xml12
-rw-r--r--opcodes/resonr.xml8
-rw-r--r--opcodes/resonx.xml26
-rw-r--r--opcodes/resonxk.xml13
-rw-r--r--opcodes/resony.xml4
-rw-r--r--opcodes/resonz.xml20
-rw-r--r--opcodes/resyn.xml29
-rw-r--r--opcodes/return.xml57
-rw-r--r--[-rwxr-xr-x]opcodes/rewindscore.xml11
-rw-r--r--opcodes/rezzy.xml2
-rw-r--r--opcodes/round.xml24
-rw-r--r--opcodes/rspline.xml12
-rw-r--r--opcodes/rtclock.xml11
-rw-r--r--opcodes/samphold.xml8
-rw-r--r--opcodes/scalearray.xml80
-rw-r--r--opcodes/scans.xml22
-rw-r--r--opcodes/scantable.xml7
-rw-r--r--opcodes/scanu.xml7
-rw-r--r--opcodes/schedule.xml7
-rw-r--r--opcodes/schedwhen.xml3
-rw-r--r--opcodes/scoreline.xml28
-rw-r--r--opcodes/scoreline_i.xml25
-rw-r--r--opcodes/seed.xml26
-rw-r--r--opcodes/semitone.xml37
-rw-r--r--opcodes/seqtime2.xml12
-rw-r--r--opcodes/serialBegin.xml97
-rw-r--r--opcodes/serialEnd.xml59
-rw-r--r--opcodes/serialFlush.xml64
-rw-r--r--opcodes/serialPrint.xml64
-rw-r--r--opcodes/serialRead.xml97
-rw-r--r--opcodes/serialWrite.xml99
-rw-r--r--opcodes/serialWrite_i.xml63
-rw-r--r--opcodes/setksmps.xml16
-rw-r--r--[-rwxr-xr-x]opcodes/setscorepos.xml15
-rw-r--r--opcodes/sfilist.xml26
-rw-r--r--opcodes/sfinstr.xml14
-rw-r--r--opcodes/sfinstr3.xml14
-rw-r--r--opcodes/sfinstr3m.xml14
-rw-r--r--opcodes/sfload.xml12
-rw-r--r--[-rwxr-xr-x]opcodes/sflooper.xml19
-rw-r--r--opcodes/sfpassign.xml12
-rw-r--r--opcodes/sfplay3.xml14
-rw-r--r--opcodes/sfplay3m.xml14
-rw-r--r--opcodes/sfplaym.xml14
-rw-r--r--opcodes/sfplist.xml26
-rw-r--r--opcodes/sfpreset.xml14
-rw-r--r--opcodes/signum.xml58
-rw-r--r--opcodes/sin.xml10
-rw-r--r--opcodes/sinsyn.xml52
-rw-r--r--opcodes/slicearray.xml69
-rw-r--r--opcodes/sndloop.xml14
-rw-r--r--opcodes/sndwarp.xml8
-rw-r--r--opcodes/sndwarpst.xml16
-rw-r--r--opcodes/soundin.xml7
-rw-r--r--opcodes/space.xml94
-rw-r--r--opcodes/spat3dt.xml9
-rw-r--r--opcodes/spdist.xml93
-rw-r--r--opcodes/specaddm.xml19
-rw-r--r--opcodes/specdiff.xml13
-rw-r--r--opcodes/specdisp.xml19
-rw-r--r--opcodes/specfilt.xml12
-rw-r--r--opcodes/spechist.xml13
-rw-r--r--opcodes/specptrk.xml27
-rw-r--r--opcodes/specscal.xml13
-rw-r--r--opcodes/specsum.xml19
-rw-r--r--opcodes/spectrum.xml12
-rw-r--r--opcodes/sprintf.xml20
-rw-r--r--opcodes/sprintfk.xml14
-rw-r--r--opcodes/spsend.xml94
-rw-r--r--opcodes/sqrt.xml24
-rw-r--r--opcodes/sr.xml14
-rw-r--r--opcodes/stack.xml17
-rw-r--r--opcodes/statevar.xml27
-rw-r--r--opcodes/strcat.xml16
-rw-r--r--opcodes/strcatk.xml27
-rw-r--r--opcodes/strchar.xml14
-rw-r--r--opcodes/strcmp.xml13
-rw-r--r--opcodes/strcpyk.xml12
-rw-r--r--opcodes/streson.xml6
-rw-r--r--opcodes/strfromurl.xml65
-rw-r--r--opcodes/strget.xml12
-rw-r--r--opcodes/strindexk.xml12
-rw-r--r--opcodes/strlower.xml13
-rw-r--r--opcodes/strrindex.xml13
-rw-r--r--opcodes/subtracts.xml24
-rw-r--r--opcodes/sum.xml14
-rw-r--r--opcodes/sumarray.xml76
-rw-r--r--opcodes/syncgrain.xml24
-rw-r--r--opcodes/syncloop.xml23
-rw-r--r--opcodes/tab.xml12
-rw-r--r--opcodes/tab2pvs.xml79
-rw-r--r--opcodes/tablecopy.xml21
-rw-r--r--opcodes/tablefilter.xml203
-rw-r--r--opcodes/tablefilteri.xml203
-rw-r--r--opcodes/tablei.xml13
-rw-r--r--opcodes/tableikt.xml21
-rw-r--r--opcodes/tableimix.xml12
-rw-r--r--opcodes/tableiw.xml15
-rw-r--r--opcodes/tablekt.xml23
-rw-r--r--opcodes/tablemix.xml12
-rw-r--r--opcodes/tableng.xml9
-rw-r--r--opcodes/tableseg.xml12
-rw-r--r--opcodes/tablexseg.xml12
-rw-r--r--opcodes/tabmorph.xml7
-rw-r--r--opcodes/tabmorpha.xml7
-rw-r--r--opcodes/tabmorphak.xml7
-rw-r--r--opcodes/tabmorphi.xml7
-rw-r--r--opcodes/tabsum.xml12
-rw-r--r--opcodes/tanh.xml23
-rw-r--r--opcodes/taninv2.xml2
-rw-r--r--opcodes/temposcal.xml210
-rw-r--r--opcodes/tigoto.xml13
-rw-r--r--opcodes/timedseq.xml22
-rw-r--r--opcodes/timeinsts.xml14
-rw-r--r--opcodes/times.xml22
-rw-r--r--opcodes/timout.xml12
-rw-r--r--opcodes/tival.xml13
-rw-r--r--opcodes/tlineto.xml12
-rw-r--r--opcodes/tone.xml12
-rw-r--r--opcodes/tonek.xml12
-rw-r--r--opcodes/tonex.xml20
-rw-r--r--opcodes/top.xml246
-rw-r--r--opcodes/topXO.xml7
-rw-r--r--opcodes/tradsyn.xml54
-rw-r--r--opcodes/trandom.xml13
-rw-r--r--opcodes/transegb.xml117
-rw-r--r--opcodes/transegr.xml35
-rw-r--r--opcodes/trcross.xml84
-rw-r--r--opcodes/trfilter.xml60
-rw-r--r--opcodes/trhighest.xml59
-rw-r--r--opcodes/trigger.xml20
-rw-r--r--opcodes/trigseq.xml12
-rw-r--r--opcodes/trirand.xml27
-rw-r--r--opcodes/trlowest.xml61
-rw-r--r--opcodes/trmix.xml54
-rw-r--r--opcodes/trscale.xml50
-rw-r--r--opcodes/trshift.xml52
-rw-r--r--opcodes/trsplit.xml65
-rw-r--r--opcodes/unirand.xml39
-rw-r--r--opcodes/until.xml84
-rw-r--r--opcodes/upsamp.xml18
-rw-r--r--opcodes/urd.xml30
-rw-r--r--opcodes/vadd.xml209
-rw-r--r--opcodes/vaddv.xml209
-rw-r--r--opcodes/vaget.xml176
-rw-r--r--opcodes/valpass.xml19
-rw-r--r--opcodes/vaset.xml176
-rw-r--r--opcodes/vbap.xml160
-rw-r--r--opcodes/vbap4.xml28
-rw-r--r--opcodes/vbap4move.xml12
-rw-r--r--opcodes/vbapg.xml154
-rw-r--r--opcodes/vbapgmove.xml131
-rw-r--r--opcodes/vbaplsinit.xml62
-rw-r--r--opcodes/vbapmove.xml132
-rw-r--r--opcodes/vco2ift.xml21
-rw-r--r--opcodes/vco2init.xml24
-rw-r--r--opcodes/vcopy.xml207
-rw-r--r--opcodes/vcopy_i.xml15
-rw-r--r--opcodes/vdelay.xml21
-rw-r--r--opcodes/vdelay3.xml25
-rw-r--r--opcodes/vdelayk.xml4
-rw-r--r--opcodes/vdelayx.xml12
-rw-r--r--opcodes/vdelayxq.xml15
-rw-r--r--opcodes/vdelayxs.xml12
-rw-r--r--opcodes/vdelayxw.xml12
-rw-r--r--opcodes/vdelayxwq.xml12
-rw-r--r--opcodes/vdelayxws.xml12
-rw-r--r--opcodes/vdivv.xml213
-rw-r--r--opcodes/veloc.xml5
-rw-r--r--opcodes/vexp.xml195
-rw-r--r--opcodes/vexp_i.xml168
-rw-r--r--opcodes/vexpseg.xml162
-rw-r--r--opcodes/vexpv.xml212
-rw-r--r--opcodes/vibes.xml19
-rw-r--r--opcodes/vibr.xml1
-rw-r--r--opcodes/vibrato.xml9
-rw-r--r--opcodes/vincr.xml13
-rw-r--r--opcodes/vlinseg.xml162
-rw-r--r--opcodes/vlowres.xml8
-rw-r--r--opcodes/vmap.xml152
-rw-r--r--opcodes/vmult.xml233
-rw-r--r--opcodes/vmult_i.xml172
-rw-r--r--opcodes/vmultv.xml212
-rw-r--r--opcodes/voice.xml294
-rw-r--r--opcodes/vport.xml23
-rw-r--r--opcodes/vpow.xml215
-rw-r--r--opcodes/vpow_i.xml15
-rw-r--r--opcodes/vpowv.xml211
-rw-r--r--opcodes/vpvoc.xml8
-rw-r--r--opcodes/vrandh.xml17
-rw-r--r--opcodes/vrandi.xml16
-rw-r--r--opcodes/vstbankload.xml67
-rw-r--r--opcodes/vstedit.xml106
-rw-r--r--opcodes/vstmidiout.xml103
-rw-r--r--opcodes/vstprogset.xml63
-rw-r--r--opcodes/vsubv.xml212
-rw-r--r--opcodes/vtaba.xml19
-rw-r--r--opcodes/vtabi.xml15
-rw-r--r--opcodes/vtabk.xml15
-rw-r--r--opcodes/vtablewi.xml31
-rw-r--r--opcodes/vtablewk.xml151
-rw-r--r--opcodes/vtabwa.xml15
-rw-r--r--opcodes/vtabwi.xml14
-rw-r--r--opcodes/vtabwk.xml17
-rw-r--r--opcodes/waveset.xml4
-rw-r--r--opcodes/weibull.xml41
-rw-r--r--opcodes/wguide2.xml7
-rw-r--r--opcodes/wiiconnect.xml9
-rw-r--r--opcodes/wrap.xml12
-rw-r--r--opcodes/writescratch.xml74
-rw-r--r--opcodes/xadsr.xml16
-rw-r--r--opcodes/xscanmap.xml20
-rw-r--r--opcodes/xscans.xml25
-rw-r--r--opcodes/xscansmap.xml8
-rw-r--r--opcodes/xscanu.xml25
-rw-r--r--orch/kvar.xml8
-rw-r--r--orch/top.xml3
-rw-r--r--orch/tvars.xml15
-rw-r--r--overview/building.xml645
-rw-r--r--overview/design.xml2
-rw-r--r--overview/frontends.xml47
-rw-r--r--overview/functional.xml53
-rw-r--r--preface/history.xml5
-rw-r--r--preface/whatsnew.xml2162
-rw-r--r--quickref.py17
-rw-r--r--readme.txt10
-rw-r--r--removed_opcodesXO.txt59
-rw-r--r--score/strings.xml10
-rw-r--r--scoregens/a.xml12
-rw-r--r--scoregens/b.xml23
-rw-r--r--scoregens/e.xml12
-rw-r--r--scoregens/gen01.xml60
-rw-r--r--scoregens/gen02.xml49
-rw-r--r--scoregens/gen03.xml77
-rw-r--r--scoregens/gen04.xml71
-rw-r--r--scoregens/gen05.xml38
-rw-r--r--scoregens/gen06.xml36
-rw-r--r--scoregens/gen07.xml52
-rw-r--r--scoregens/gen08.xml38
-rw-r--r--scoregens/gen09.xml69
-rw-r--r--scoregens/gen10.xml69
-rw-r--r--scoregens/gen11.xml56
-rw-r--r--scoregens/gen12.xml33
-rw-r--r--scoregens/gen13.xml112
-rw-r--r--scoregens/gen14.xml76
-rw-r--r--scoregens/gen15.xml98
-rw-r--r--scoregens/gen16.xml12
-rw-r--r--scoregens/gen17.xml26
-rw-r--r--scoregens/gen18.xml60
-rw-r--r--scoregens/gen19.xml31
-rw-r--r--scoregens/gen20.xml47
-rw-r--r--scoregens/gen21.xml83
-rw-r--r--scoregens/gen23.xml29
-rw-r--r--scoregens/gen24.xml12
-rw-r--r--scoregens/gen25.xml30
-rw-r--r--scoregens/gen27.xml29
-rw-r--r--scoregens/gen28.xml10
-rw-r--r--scoregens/gen30.xml12
-rw-r--r--scoregens/gen32.xml61
-rw-r--r--scoregens/gen33.xml53
-rw-r--r--scoregens/gen34.xml53
-rw-r--r--scoregens/gen40.xml60
-rw-r--r--scoregens/gen41.xml44
-rw-r--r--scoregens/gen42.xml49
-rw-r--r--scoregens/gen49.xml27
-rw-r--r--scoregens/gen51.xml57
-rw-r--r--scoregens/gen52.xml27
-rw-r--r--scoregens/genexp.xml54
-rw-r--r--scoregens/genfarey.xml43
-rw-r--r--scoregens/gensone.xml41
-rw-r--r--scoregens/gentanh.xml69
-rw-r--r--scoregens/genwave.xml107
-rw-r--r--scoregens/i.xml68
-rw-r--r--scoregens/m.xml11
-rw-r--r--scoregens/n.xml7
-rw-r--r--scoregens/q.xml12
-rw-r--r--scoregens/r.xml2
-rw-r--r--scoregens/s.xml12
-rw-r--r--scoregens/t.xml12
-rw-r--r--scoregens/top.xml6
-rw-r--r--scoregens/v.xml31
-rw-r--r--scoregens/x.xml12
-rw-r--r--siggen/models.xml6
-rw-r--r--siggen/random.xml8
-rw-r--r--sigmod/sample.xml2
-rw-r--r--spectral/realtime.xml221
-rwxr-xr-xsrcrelease.sh21
-rw-r--r--utility/cvanal.xml6
-rw-r--r--utility/hetro.xml2
-rw-r--r--utility/lpanal.xml5
-rw-r--r--utility/makecsd.xml63
-rw-r--r--utility/mkdb.xml38
-rw-r--r--utility/other.xml11
2210 files changed, 70283 insertions, 32871 deletions
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index 9900307..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,4843 +0,0 @@
-2010-12-12 Menno Knevel <nabob_cd@yahoo.com>
-
- * added 27 STK opcodes: examples/STKxxx.csd, examples-xml/STKxxx.csd.xml,
- opcodes/STKxxx; STK entries in manual.xml and opcodes/top.xml
-
-2010-04-11 john ffitch <jpff@codemist.co.uk>
-
- * opcodes/JackoOn.xml: Correct XML syntax
-
-2010-01-18 11:45 Andrés Cabrera <mantaraya36@gmail.com>
-
- * preface/whatsnew.xml: typo
-
- * opcodes/instr.xml, preface/whatsnew.xml: subinstr can be used in
- Csound 5. small fix for what's new section
-
-2010-01-16 10:14 Andrés Cabrera <mantaraya36@gmail.com>
-
- * control/reinitn.xml, misc/examples.xml, misc/quickref.xml,
- categories.py, opcodes/alwayson.xml, opcodes/connect.xml,
- opcodes/ftgenonce.xml, opcodes/inleta.xml, opcodes/inletf.xml,
- opcodes/inletk.xml, opcodes/outleta.xml, opcodes/outletf.xml,
- opcodes/outletk.xml, opcodes/passign.xml, opcodes/tabsum.xml,
- opcodes/template.xml, table/top.xml, opcodeparser.py,
- quickref.py: Added references for new opcodes and fixed issues
- with missing categories. Recreated quickref and opcodes.xml
-
-2010-01-15 19:16 Michael Gogins <michael.gogins@gmail.com>
-
- * Makefile, cvsauthors, manual.xml, misc/examples.xml,
- misc/quickref.xml, opcodes/doppler.xml: no message
- * examples-xml/doppler.csd.xml: no message
- * examples/doppler.csd: no message
-
-2010-01-15 09:27 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manual.xml, examples/bitwise.csd, examples-xml/bitwise.csd.xml,
- opcodes/opbitand.xml, opcodes/opbitor.xml: Added example for
- bitwise operators
- * examples/modmatrix.csd, examples-xml/looptseg.csd.xml,
- examples-xml/loopxseg.csd.xml, examples-xml/modmatrix.csd.xml,
- examples-xml/signalflowgraph.csd.xml, miscopcodes/top.xml,
- opcodes/linsegr.xml, opcodes/modmatrix.xml, opcodes/template.xml,
- opcodes/top.xml, opcodes/transeg.xml, opcodes/transegr.xml: Added
- docs for modmatrix, information supplied by Oeyvind Brandstegg
- Added docs for transegr Added formatted versions of missing
- examples
-
-2010-01-14 15:56 jpff <jpff@codemist.co.uk>
-
- * opcodes/linsegr.xml: error in references
-
-2010-01-11 10:50 Andrés Cabrera <mantaraya36@gmail.com>
-
- * ChangeLog, Makefile, manual.xml, misc/examples.xml,
- misc/quickref.xml, opcodes/tabsum.xml, preface/whatsnew.xml,
- scoregens/i.xml, scoregens/n.xml: Updated what's new for 5.12
- Added example code for n score statement Added see also for
- tabsum Added note about negative instrument numbers for i score
- statement Updated quickref and example listing files Bumped
- version to 5.12
-
-2010-01-09 10:42 François Pinot <fggpinot@gmail.com>
-
- * examples/: looptseg.csd, loopxseg.csd, looptseg.xml,
- loopxseg.xml: Changed suffix from xml to csd
-
-2010-01-08 21:22 François Pinot <fggpinot@gmail.com>
-
- * control/fltkother.xml: Deleted duplicated link
- * opcodes/flmouse.xml: Minor fix
-
-2010-01-05 11:09 jpff <jpff@codemist.co.uk>
-
- * manual.xml, examples/looptseg.xml, examples-xml/looptseg.csd.xml,
- examples-xml/loopxseg.csd.xml, opcodes/looptseg.xml,
- opcodes/top.xml: looptseg opcode
-
-2010-01-04 20:39 François Pinot <fggpinot@gmail.com>
-
- * opcodes/fltext.xml: Minor fix
-
-2010-01-03 09:57 jpff <jpff@codemist.co.uk>
-
- * opcodes/: loopxseg.xml, sfload.xml: more on loopxseg
-
-2010-01-02 22:09 jpff <jpff@codemist.co.uk>
-
- * opcodes/loopxseg.xml: Adding loopxseg
- * manual.xml, examples/loopxseg.xml, examples-xml/loopxseg.csd.xml,
- opcodes/loopseg.xml, opcodes/loopxseg.xml, opcodes/top.xml:
- Adding loopxseg
-
-2010-01-02 21:59 François Pinot <fggpinot@gmail.com>
-
- * opcodes/fltabs.xml: Syntax highlighting
- * opcodes/flscroll.xml: Syntax highlighting
- * opcodes/flpack_end.xml: Corrected link
- * opcodes/flpanel.xml: Syntax highlighting
- * opcodes/flpack.xml: Syntax highlighting
-
-2010-01-01 17:48 François Pinot <fggpinot@gmail.com>
-
- * opcodes/flcolor2.xml: Typo
- * opcodes/flcolor.xml: Typo
-
-2009-12-29 20:33 François Pinot <fggpinot@gmail.com>
-
- * opcodes/OSCsend.xml: Typo
- * opcodes/crossfm.xml: Minor fix
- * opcodes/ATSsinnoi.xml: Syntax highlighting
-
-2009-12-27 15:12 François Pinot <fggpinot@gmail.com>
-
- * opcodes/ATSreadnz.xml: Syntax highlighting
- * opcodes/ATSread.xml: Syntax highlighting
- * opcodes/ATSpartialtap.xml: Syntax highlighting
- * opcodes/ATSinterpread.xml: Syntax highlighting
-
-2009-12-26 07:58 François Pinot <fggpinot@gmail.com>
-
- * opcodes/crossfm.xml: Typo
- * opcodes/crossfm.xml, examples/crossfm.csd,
- examples-xml/crossfm.csd.xml: Initial commit
- * manual.xml, siggen/fmsynth.xml, opcodes/top.xml,
- misc/examples.xml, misc/quickref.xml: Added crossfm
-
-2009-12-24 09:07 François Pinot <fggpinot@gmail.com>
-
- * opcodes/ATSinfo.xml: Syntax highlighting
- * opcodes/: ATSadd.xml, ATSaddnz.xml: Uppercases for opcodename in
- example
-
-2009-12-24 08:10 François Pinot <fggpinot@gmail.com>
-
- * opcodes/ATScross.xml: Syntax highlighting
-
-2009-12-23 10:18 François Pinot <fggpinot@gmail.com>
-
- * opcodes/ATSaddnz.xml: Syntax highlighting
-
-2009-12-22 20:00 François Pinot <fggpinot@gmail.com>
-
- * opcodes/ATSadd.xml: Syntax highlighting
-
-2009-12-21 17:20 François Pinot <fggpinot@gmail.com>
-
- * opcodes/passign.xml: Minor fix
-
-2009-12-18 05:49 jpff <jpff@codemist.co.uk>
-
- * opcodes/passign.xml: version
-
-2009-12-15 15:31 jpff <jpff@codemist.co.uk>
-
- * misc/examples.xml, opcodes/passign.xml: strings in passign
-
-2009-12-14 19:08 jpff <jpff@codemist.co.uk>
-
- * opcodes/: assign.xml, passign.xml, top.xml: passign again
-
-2009-12-14 10:10 jpff <jpff@codemist.co.uk>
-
- * examples/passign.csd, examples-xml/passign.csd.xml,
- opcodes/passign.xml: revised passsign
-
-2009-12-13 09:32 jpff <jpff@codemist.co.uk>
-
- * ChangeLog, manual.xml, examples/cross2.csd, examples/fox.wav,
- examples/passign.csd, examples-xml/passign.csd.xml,
- misc/examples.xml, opcodes/top.xml, opcodes/passign.xml: Adding
- pasign
-
-2009-12-10 06:30 François Pinot <fggpinot@gmail.com>
-
- * misc/: examples.xml, quickref.xml: Updated
-
-2009-11-24 17:34 jpff <jpff@codemist.co.uk>
-
- * examples/: tempo.csd, tempoval.csd: tempo/tempoval need -t60
-
-2009-11-21 11:27 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/partikkel.xml: Minor change
-
-2009-11-19 21:57 Oeyvind Brandtsegg <obrandts@gmail.com>
-
- * opcodes/partikkel.xml: partikkel manpage changes related to
- optimization when amp is zero, and also the disabling of
- kdistribution at 0Hz grainrates
- * examples/fox.wav: fix for distorted fox.wav
-
-2009-11-17 13:42 Andrés Cabrera <mantaraya36@gmail.com>
-
- * scoregens/gen23.xml: Added note about '#' character counted as
- comment
-
-2009-11-14 17:40 jpff <jpff@codemist.co.uk>
-
- * opcodes/doppler.xml, opcodes/doppler2.xml, opcodes/top.xml,
- manual.xml: removing doppler2
-
-2009-11-10 18:06 jpff <jpff@codemist.co.uk>
-
- * opcodes/: doppler2.xml, doppler.xml: Skeleton for doppler and
- doppler2
- * manual.xml, opcodes/doppler.xml, opcodes/doppler2.xml,
- opcodes/mixerclear.xml, opcodes/top.xml: Skeleton for doppler and
- doppler2
-
-2009-11-05 10:02 jpff <jpff@codemist.co.uk>
-
- * opcodes/filebit.xml: Fixed author of filebit
-
-2009-11-04 19:51 jpff <jpff@codemist.co.uk>
-
- * examples/p5g.csd, examples-xml/p5g.csd.xml: examples
- * examples-xml/filebit.csd.xml: examples
- * manual.xml, examples/filebit.csd, opcodes/filebit.xml,
- opcodes/filelen.xml, opcodes/filenchnls.xml, opcodes/filesr.xml,
- opcodes/top.xml: Documented filebit
- * manual.xml, opcodes/p5gconnect.xml, opcodes/p5gdata.xml,
- opcodes/top.xml, opcodes/wiidata.xml: Added documentatoon od
- p5glove
-
-2009-10-30 00:40 Michael Gogins <michael.gogins@gmail.com>
-
- * manual.xml, csound5/opcodes/mixer.xml, opcodes/top.xml,
- opcodes/mixersetlevel_i.xml: Added MixerSetLevel_i.
-
-2009-10-25 00:53 Michael Gogins <michael.gogins@gmail.com>
-
- * csound5/opcodes/signalflowgraph.xml: no message
-
-2009-10-24 23:53 Michael Gogins <michael.gogins@gmail.com>
-
- * examples/signalflowgraph.csd: no message
- * opcodes/: alwayson.xml, connect.xml, inleta.xml, inletf.xml,
- inletk.xml, outleta.xml, outletf.xml, outletk.xml: no message
- * opcodes/: alwayson.xml, connect.xml, ftgenonce.xml, inleta.xml,
- inletf.xml, inletk.xml, outleta.xml, outletf.xml, outletk.xml: no
- message
- * manual.xml, opcodes/top.xml: no message
-
-2009-10-22 16:29 Andrés Cabrera <mantaraya36@gmail.com>
-
- * orch/kvar.xml: Text to expand the explanation of signals and
- variables
- * Makefile, quickref.py: Bumped version to 5.11
- * opcodes/chnrecv.xml, opcodes/chnsend.xml, opcodes/instr.xml,
- opcodes/template.xml, opcodes/top.xml, preface/whatsnew.xml:
- Final version of what's new for 5.11. Added chnsend and chnrecv
- but not included in manual as these appear to be deprecated.
- Improved template.xml Added note about named instruments not
- being usable as opcodesin csound 5
-
-2009-10-21 22:05 François Pinot <fggpinot@gmail.com>
-
- * misc/: examples.xml, quickref.xml: Minor fix to avoid examples
- path display in quickref
-
-2009-10-21 21:41 François Pinot <fggpinot@gmail.com>
-
- * quickref.py: Minor fix to avoid examples path display in quickref
-
-2009-10-18 08:36 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manual.xml, quickref.py, misc/examples.xml, misc/quickref.xml,
- misc/top.xml: Added example csd list page at the end. It is
- generated automatically by the quickref.py script
-
-2009-09-28 17:54 François Pinot <fggpinot@gmail.com>
-
- * opcodes/hrtfer.xml: Added link
- * opcodes/bformenc.xml: Typo
-
-2009-09-27 16:21 François Pinot <fggpinot@gmail.com>
-
- * opcodes/: vosim.xml: Minor fix
-
-2009-09-22 06:16 François Pinot <fggpinot@gmail.com>
-
- * opcodes/vdelayxws.xml: Moved avars to Performance section
- * opcodes/vdelayxwq.xml: Moved avars to Performance section
- * opcodes/vdelayxw.xml: Moved avars to Performance section
-
-2009-09-21 21:54 François Pinot <fggpinot@gmail.com>
-
- * opcodes/vdelayxs.xml: Moved avars to Performance section
- * opcodes/vdelayxq.xml: Moved avars in Performance section
- * opcodes/vdelayx.xml: Moved avars in Performance section
-
-2009-09-20 16:40 François Pinot <fggpinot@gmail.com>
-
- * opcodes/vdelay3.xml: Syntax highlighting
-
-2009-09-18 12:48 jpff <jpff@codemist.co.uk>
-
- * opcodes/: deltapi.xml, deltapxw.xml: correct tags
-
-2009-09-17 06:56 François Pinot <fggpinot@gmail.com>
-
- * opcodes/vdelay.xml: Syntax highlighting
-
-2009-09-09 22:11 François Pinot <fggpinot@gmail.com>
-
- * opcodes/multitap.xml: Syntax highlighting
- * opcodes/deltapxw.xml: Syntax highlighting
- * opcodes/deltapx.xml: Syntax highlighting
- * opcodes/deltapn.xml: Syntax highlighting
- * opcodes/deltapi.xml: Syntax highlighting
-
-2009-09-04 20:43 François Pinot <fggpinot@gmail.com>
-
- * opcodes/clip.xml: Corrected formula
-
-2009-09-01 21:05 François Pinot <fggpinot@gmail.com>
-
- * opcodes/deltap3.xml: Syntax highlighting
- * opcodes/deltap.xml: Syntax highlighting
-
-2009-08-30 19:43 François Pinot <fggpinot@gmail.com>
-
- * opcodes/pconvolve.xml: Syntax highlighting
- * opcodes/convolve.xml: [no log message]
- * opcodes/: ftconv.xml, dconv.xml: Typo
- * opcodes/ftconv.xml: Added link
-
-2009-08-29 21:54 François Pinot <fggpinot@gmail.com>
-
- * opcodes/dconv.xml: Minor fix
- * opcodes/convolve.xml: Syntax highlighting
- * opcodes/compress.xml: Syntax highlighting
- * opcodes/clip.xml: Typos
-
-2009-08-28 07:27 François Pinot <fggpinot@gmail.com>
-
- * opcodes/rms.xml: Syntax highlighting
- * examples/gain.csd, examples-xml/gain.csd.xml: Initial commit
- * opcodes/gain.xml: Syntax highlighting
-
-2009-08-25 20:52 François Pinot <fggpinot@gmail.com>
-
- * opcodes/printk.xml: Typo
- * opcodes/printf.xml: Layout
- * opcodes/print.xml: Deleted off topic comment
-
-2009-08-24 09:47 François Pinot <fggpinot@gmail.com>
-
- * opcodes/display.xml: Layout
- * opcodes/dispfft.xml: Commented out some credits
-
-2009-08-23 20:05 François Pinot <fggpinot@gmail.com>
-
- * opcodes/: chani.xml, chano.xml, chn.xml, chnclear.xml,
- chnexport.xml, chnget.xml, chnmix.xml, chnparams.xml, chnset.xml,
- setksmps.xml, xin.xml, xout.xml: Syntax highlighting and links
- added
-
-2009-08-22 13:07 François Pinot <fggpinot@gmail.com>
-
- * opcodes/: chuap.xml, lorenz.xml: Added note about audio result
- depending on sr in chuap and lorenz opcodes
-
-2009-08-21 16:16 François Pinot <fggpinot@gmail.com>
-
- * opcodes/outz.xml: Minor fix
- * opcodes/outx.xml: Minor fix
- * opcodes/outrg.xml: Minor fix
- * opcodes/outch.xml: Minor fix
- * opcodes/outc.xml: Minor fix
-
-2009-08-20 18:24 François Pinot <fggpinot@gmail.com>
-
- * opcodes/out32.xml: Minor fix
-
-2009-08-19 14:11 François Pinot <fggpinot@gmail.com>
-
- * opcodes/mp3in.xml: Typo
- * opcodes/inz.xml: Minor fix
- * opcodes/inx.xml: Minor fix
- * opcodes/inch.xml: Minor fix
- * opcodes/in32.xml: Minor fix
-
-2009-08-18 17:00 François Pinot <fggpinot@gmail.com>
-
- * opcodes/diskin2.xml: Added links
-
-2009-08-18 12:53 Andrés Cabrera <mantaraya36@gmail.com>
-
- * table/queries.xml: Added tabsum to table opcodes
- * opcodes/cpspch.xml: Added note about cps2pch and cpsxpch
-
-2009-08-18 09:38 François Pinot <fggpinot@gmail.com>
-
- * opcodes/diskin.xml: Typo
-
-2009-08-16 14:48 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/cross2.csd, examples/hrtfmove.csd,
- examples-xml/cross2.csd.xml, examples-xml/hrtfmove.csd.xml: Two
- minor changes. Thanks to francibal
- * deprecated.txt, examples/bformenc.csd, examples/bformenc1.csd,
- examples/biquad-2.csd, examples/checkbox.csd,
- examples/cross2.csd, examples/expcurve.csd,
- examples/gainslider.csd, examples/hvs1.csd,
- examples/logcurve.csd, examples/mute.csd, examples/tbvcf.csd,
- examples/vtablewa.csd, examples/vtablewk.csd,
- examples/wgbrass.csd, examples-xml/FLpanel-sensekey2.csd.xml,
- examples-xml/FLsavesnap.csd.xml, examples-xml/bformenc.csd.xml,
- examples-xml/bformenc1.csd.xml, examples-xml/biquad-2.csd.xml,
- examples-xml/checkbox.csd.xml, examples-xml/chuap.csd.xml,
- examples-xml/cross2.csd.xml, examples-xml/dssi4cs.csd.xml,
- examples-xml/expcurve.csd.xml, examples-xml/fluidcomplex.csd.xml,
- examples-xml/fprintks-2.csd.xml, examples-xml/gainslider.csd.xml,
- examples-xml/hvs1.csd.xml, examples-xml/jacktransport.csd.xml,
- examples-xml/logcurve.csd.xml, examples-xml/midiin.csd.xml,
- examples-xml/mute.csd.xml, examples-xml/pvadsyn.csd.xml,
- examples-xml/pvsbufread.csd.xml, examples-xml/pvscent.csd.xml,
- examples-xml/pvscross.csd.xml, examples-xml/pvsfilter.csd.xml,
- examples-xml/rms.csd.xml, examples-xml/schedkwhennamed.csd.xml,
- examples-xml/scogen.csd.xml, examples-xml/sprintfk.csd.xml,
- examples-xml/tbvcf.csd.xml, examples-xml/vadd.csd.xml,
- examples-xml/vadd_i.csd.xml, examples-xml/vaddv.csd.xml,
- examples-xml/vaget.csd.xml, examples-xml/vdivv.csd.xml,
- examples-xml/vexp.csd.xml, examples-xml/vexpseg.csd.xml,
- examples-xml/vexpv.csd.xml, examples-xml/vlinseg.csd.xml,
- examples-xml/vmult-2.csd.xml, examples-xml/vmult_i.csd.xml,
- examples-xml/vosim.csd.xml, examples-xml/vpow.csd.xml,
- examples-xml/vpowv.csd.xml, examples-xml/vst4cs.csd.xml,
- examples-xml/vsubv.csd.xml, examples-xml/vtablewa.csd.xml,
- examples-xml/vtablewk.csd.xml, examples-xml/wgbrass.csd.xml,
- opcodes/diskin.xml, opcodes/imageload.xml, opcodes/vtablewa.xml:
- Added suggestions for examples by francibal in the Csound mailing
- list. Updated some xml for examples.
-
-2009-08-10 11:56 jpff <jpff@codemist.co.uk>
-
- * ChangeLog, manual.xml, opcodes/tabsum.xml, opcodes/top.xml:
- documented tabsum
-
-2009-08-08 01:51 jpff <jpff@codemist.co.uk>
-
- * opcodes/: chani.xml, chano.xml: Improved chani/o documentation
-
-2009-07-25 21:45 François Pinot <fggpinot@gmail.com>
-
- * opcodes/fout.xml: Typo
- * opcodes/fink.xml: Added link
- * opcodes/fin.xml: Added link
- * opcodes/ficlose.xml: Typo
- * opcodes/readk4.xml: Commented out interpolation
- * opcodes/readk3.xml: Commented out interpolation
- * opcodes/: readk.xml, readk2.xml: Commented out interpolation
- * opcodes/readk.xml: Commented out interpolation
-
-2009-07-24 12:28 François Pinot <fggpinot@gmail.com>
-
- * opcodes/dumpk4.xml: Typo
- * opcodes/dumpk3.xml: Typo
- * opcodes/dumpk2.xml: Typo
- * opcodes/dumpk.xml: Typo
-
-2009-07-22 21:24 François Pinot <fggpinot@gmail.com>
-
- * opcodes/wgbowedbar.xml: Typo
-
-2009-07-21 22:26 François Pinot <fggpinot@gmail.com>
-
- * opcodes/wgpluck.xml: Typo
- * opcodes/pluck.xml: Layout
-
-2009-07-19 21:58 François Pinot <fggpinot@gmail.com>
-
- * opcodes/tablei.xml: Minor fix
- * opcodes/table3.xml: Minor fix
- * opcodes/table.xml: Minor fix
- * opcodes/tab.xml: Added links
- * opcodes/oscil1i.xml: Minor fix
- * opcodes/wiirange.xml: Macro names
- * opcodes/: wiiconnect.xml, wiidata.xml, wiirange.xml, wiisend.xml:
- Typo
-
-2009-07-18 15:26 Joachim Heintz <jh@joachimheintz.de>
-
- * opcodes/oscil.xml: added some "see also" links
-
-2009-07-11 15:39 Andrés Cabrera <mantaraya36@gmail.com>
-
- * csd2docbook.py, manpages.xml, manual.xml, manualXO.xml,
- examples/expcurve.csd, opcodes/binit.xml, opcodes/dcblock2.xml,
- opcodes/diskgrain.xml, opcodes/ephasor.xml, opcodes/eqfil.xml,
- opcodes/flooper.xml, opcodes/flooper2.xml, opcodes/fofilter.xml,
- opcodes/moogladder.xml, opcodes/partials.xml,
- opcodes/partikkel.xml, opcodes/partikkelsync.xml,
- opcodes/ptrack.xml, opcodes/pvsbuffer.xml, opcodes/pvsdemix.xml,
- opcodes/pvsdiskin.xml, opcodes/pvsifd.xml, opcodes/pvsin.xml,
- opcodes/pvsinit.xml, opcodes/pvsmix.xml, opcodes/pvsmooth.xml,
- opcodes/pvsout.xml, opcodes/pvstencil.xml, opcodes/pvsvoc.xml,
- opcodes/resyn.xml, opcodes/rewindscore.xml,
- opcodes/scoreline.xml, opcodes/scoreline_i.xml,
- opcodes/setscorepos.xml, opcodes/sflooper.xml,
- opcodes/sinsyn.xml, opcodes/sndloop.xml, opcodes/statevar.xml,
- opcodes/streson.xml, opcodes/syncgrain.xml, opcodes/syncloop.xml,
- opcodes/tradsyn.xml, opcodes/trcross.xml, opcodes/trhighest.xml,
- opcodes/trlowest.xml, opcodes/trmix.xml, opcodes/trscale.xml,
- opcodes/trshift.xml, opcodes/trsplit.xml, preface/history.xml,
- preface/historyXO.xml, preface/whatsnew.xml, scoregens/gen43.xml:
- Made &namevictor; entity, and used it throughout. Updated what's
- new section. Changed Oeyvind's name to use O-slash character.
-
-2009-07-11 15:32 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/cngoto.csd, examples/hvs2.csd, examples/linrand.csd,
- examples/mute.csd, examples/oscil.csd, examples/pcauchy.csd,
- examples/polynomial.csd, examples/poscil3-file.csd,
- examples/trirand.csd, examples/unirand.csd, examples/weibull.csd,
- examples-xml/FLbutton.csd.xml,
- examples-xml/FLpanel-sensekey2.csd.xml,
- examples-xml/FLsavesnap.csd.xml,
- examples-xml/FLslidBnk2Setk.csd.xml, examples-xml/adsyn.csd.xml,
- examples-xml/betarand.csd.xml, examples-xml/bexprnd.csd.xml,
- examples-xml/bformenc1.csd.xml, examples-xml/butterhp.csd.xml,
- examples-xml/cauchy.csd.xml, examples-xml/cggoto.csd.xml,
- examples-xml/chuap.csd.xml, examples-xml/clip.csd.xml,
- examples-xml/cngoto.csd.xml, examples-xml/cpsmidinn.csd.xml,
- examples-xml/diskin.csd.xml, examples-xml/dssi4cs.csd.xml,
- examples-xml/expcurve.csd.xml, examples-xml/exprand.csd.xml,
- examples-xml/fluidcomplex.csd.xml,
- examples-xml/fout_ftable.csd.xml,
- examples-xml/fprintks-2.csd.xml, examples-xml/gainslider.csd.xml,
- examples-xml/gauss.csd.xml, examples-xml/gen49.csd.xml,
- examples-xml/hilbert.csd.xml, examples-xml/hrtfmove.csd.xml,
- examples-xml/hvs2.csd.xml, examples-xml/jacktransport.csd.xml,
- examples-xml/linrand.csd.xml, examples-xml/logcurve.csd.xml,
- examples-xml/mandol.csd.xml, examples-xml/midiin.csd.xml,
- examples-xml/moog.csd.xml, examples-xml/mute.csd.xml,
- examples-xml/nestedap.csd.xml, examples-xml/oscil.csd.xml,
- examples-xml/pcauchy.csd.xml, examples-xml/polynomial.csd.xml,
- examples-xml/poscil3-file.csd.xml, examples-xml/pvsarp2.csd.xml,
- examples-xml/pvsbufread.csd.xml, examples-xml/rms.csd.xml,
- examples-xml/scale.csd.xml, examples-xml/schedkwhennamed.csd.xml,
- examples-xml/scogen.csd.xml, examples-xml/sprintfk.csd.xml,
- examples-xml/toot2.csd.xml, examples-xml/trirand.csd.xml,
- examples-xml/unirand.csd.xml, examples-xml/vadd.csd.xml,
- examples-xml/vadd_i.csd.xml, examples-xml/vaddv.csd.xml,
- examples-xml/vaget.csd.xml, examples-xml/vdivv.csd.xml,
- examples-xml/vexp.csd.xml, examples-xml/vexpseg.csd.xml,
- examples-xml/vexpv.csd.xml, examples-xml/vlinseg.csd.xml,
- examples-xml/vmult-2.csd.xml, examples-xml/vmult.csd.xml,
- examples-xml/vmult_i.csd.xml, examples-xml/voice.csd.xml,
- examples-xml/vosim.csd.xml, examples-xml/vpow.csd.xml,
- examples-xml/vpowv.csd.xml, examples-xml/vsubv.csd.xml,
- examples-xml/vtablewa.csd.xml, examples-xml/weibull.csd.xml,
- examples-xml/wii.csd.xml, examples-xml/xtratim-2.csd.xml,
- examples-xml/xtratim.csd.xml: Updated some examples and
- example-xml files
-
-2009-07-11 15:27 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/pvadsyn.csd, examples/pvsblur.csd, examples/pvscale.csd,
- examples/pvscent.csd, examples/pvscross.csd,
- examples/pvsfilter.csd, examples/pvsfreeze.csd,
- examples/pvshift.csd, examples/pvsmaska.csd,
- examples/pvsmorph2.csd, examples-xml/pvadsyn.csd.xml,
- examples-xml/pvsblur.csd.xml, examples-xml/pvscale.csd.xml,
- examples-xml/pvscent.csd.xml, examples-xml/pvscross.csd.xml,
- examples-xml/pvsfilter.csd.xml, examples-xml/pvsfreeze.csd.xml,
- examples-xml/pvshift.csd.xml, examples-xml/pvsmaska.csd.xml,
- examples-xml/pvsmorph2.csd.xml, opcodes/pvadd.xml,
- opcodes/pvsadsyn.xml, opcodes/pvsarp.xml, opcodes/pvsbandp.xml,
- opcodes/pvsbandr.xml, opcodes/pvsbin.xml, opcodes/pvsblur.xml,
- opcodes/pvsbufread.xml, opcodes/pvscale.xml, opcodes/pvscent.xml,
- opcodes/pvscross.xml, opcodes/pvsdisp.xml, opcodes/pvsfilter.xml,
- opcodes/pvsfreeze.xml, opcodes/pvsfwrite.xml,
- opcodes/pvshift.xml, opcodes/pvsmaska.xml, opcodes/pvsmorph.xml,
- opcodes/pvsosc.xml, opcodes/pvspitch.xml, opcodes/pvsynth.xml:
- Added new pvs examplesby Joachim Heintz and other minor
- improvements to pvs opcode entries.
-
-2009-07-09 14:00 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/: adsyn.csd, FLslidBnk2Setk.csd, betarand.csd,
- bexprnd.csd, cauchy.csd, cggoto.csd, clip.csd, diskin.csd,
- exprand.csd, gauss.csd, hrtfmove.csd: Example improvements by
- Francesco "ilterzouomo@fastwebnet.it" and Andrés Cabrera
-
-2009-07-08 05:53 François Pinot <fggpinot@gmail.com>
-
- * opcodes/schedkwhennamed.xml: Minor fix
-
-2009-07-08 02:24 jpff <jpff@codemist.co.uk>
-
- * ChangeLog, examples/FLbutton.csd, examples/butterhp.csd,
- examples/expcurve.csd, examples/fout_ftable.csd,
- examples/gainslider.csd, examples/logcurve.csd,
- examples/nestedap.csd, examples/xtratim-2.csd,
- examples/xtratim.csd, examples-xml/FLbutton.csd.xml,
- examples-xml/butterhp.csd.xml, examples-xml/expcurve.csd.xml,
- examples-xml/fout_ftable.csd.xml,
- examples-xml/gainslider.csd.xml, examples-xml/logcurve.csd.xml,
- examples-xml/nestedap.csd.xml, examples-xml/xtratim-2.csd.xml,
- examples-xml/xtratim.csd.xml, opcodes/diskin2.xml: examples fixed
-
-2009-07-07 21:31 François Pinot <fggpinot@gmail.com>
-
- * opcodes/oscil3.xml: Typo
-
-2009-07-07 21:26 François Pinot <fggpinot@gmail.com>
-
- * opcodes/: oscili.xml, oscil.xml: Typo
-
-2009-07-07 21:17 François Pinot <fggpinot@gmail.com>
-
- * opcodes/oscil3.xml: Minor fix
-
-2009-07-07 19:01 François Pinot <fggpinot@gmail.com>
-
- * opcodes/flooper2.xml: Typo
-
-2009-07-05 21:11 François Pinot <fggpinot@gmail.com>
-
- * opcodes/xscansmap.xml: Typo
-
-2009-07-05 20:22 jpff <jpff@codemist.co.uk>
-
- * examples/expcurve.csd, opcodes/bformenc.xml: examples
-
-2009-07-05 11:24 François Pinot <fggpinot@gmail.com>
-
- * opcodes/xscans.xml: Typo
-
-2009-06-14 17:10 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples-xml/vst4cs.csd.xml: Added xml highlighted version for
- new vst4cs example
-
-2009-06-14 17:09 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/usingXO.xml: Updated what's new section. Added section
- about console output in Using Csound section
-
-2009-06-14 17:04 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: event_i.xml, event.xml, schedkwhen.xml,
- schedkwhennamed.xml, schedule.xml, schedwhen.xml, scoreline.xml,
- scoreline_i.xml: Added note about string p-fields. Added cross
- references.
-
-2009-06-08 20:35 Michael Gogins <michael.gogins@gmail.com>
-
- * examples/vst4cs.csd: [no log message]
-
-2009-06-08 14:36 Michael Gogins <michael.gogins@gmail.com>
-
- * opcodes/: vstaudio.xml, vstbankload.xml, vstedit.xml,
- vstinfo.xml, vstinit.xml, vstnote.xml, vstparamset.xml: Improved
- documentation with tested example, corrected some errors.
-
-2009-06-07 14:57 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/using.xml, preface/whatsnew.xml: Updated what's new
- section. Added section about console output in Using Csound
- section
-
-2009-06-07 14:05 Andrés Cabrera <mantaraya36@gmail.com>
-
- * scoregens/gen42.xml: Clarified entry for gen42, thanks to Andy
- Fillebrown
-
-2009-06-07 13:34 Andrés Cabrera <mantaraya36@gmail.com>
-
- * ChangeLog, examples/pvsbin.csd, examples-xml/pvsarp.csd.xml,
- examples-xml/pvsbin.csd.xml: Corrected pvsbin example. Updated
- ChangeLog
-
-2009-06-06 14:17 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/pvsadsyn.csd, examples/pvsarp2.csd,
- examples/pvsbandp.csd, examples/pvsbandr.csd,
- examples/pvsbufread.csd, examples/pvsmorph.csd,
- examples/pvsynth.csd, examples-xml/pvsadsyn.csd.xml,
- examples-xml/pvsarp2.csd.xml, examples-xml/pvsbandp.csd.xml,
- examples-xml/pvsbandr.csd.xml, examples-xml/pvsbufread.csd.xml,
- examples-xml/pvsmorph.csd.xml, examples-xml/pvsynth.csd.xml,
- opcodes/pvsadsyn.xml, opcodes/pvsarp.xml, opcodes/pvsbandp.xml,
- opcodes/pvsbandr.xml, opcodes/pvsbuffer.xml,
- opcodes/pvsbufread.xml, opcodes/pvsmorph.xml: Added new pvs
- examples by Joachim Heintz
-
-2009-05-23 06:55 Andrés Cabrera <mantaraya36@gmail.com>
-
- * midi/input.xml, opcodes/oscil.xml, opcodes/oscil1.xml,
- opcodes/oscil3.xml, opcodes/oscili.xml, opcodes/oscilikt.xml,
- opcodes/osciliktp.xml, opcodes/oscilikts.xml, opcodes/osciln.xml,
- opcodes/oscilx.xml, opcodes/pvsbuffer.xml,
- opcodes/pvsbufread.xml, preface/whatsnew.xml, csd2docbook.py,
- sigio/input.xml: Fixed Main MIDI page which was confusing midic
- and ctrl7. Improved documentation and cross references for oscil
- familiy of opcodes. Improved documentation for pvsbufread and
- pvsbuffer. Added mp3input opcodeto whatsnew and sigio/input.xml
-
-2009-05-17 09:51 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/ftgentmp.xml: Minor format change
-
-2009-05-17 09:39 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/ftgentmp.csd, examples-xml/ftgentmp.csd.xml,
- opcodes/ftgen.xml, opcodes/ftgentmp.xml: Added example for
- ftgentmp. Added link to ftgentmp from ftgen.
-
-2009-05-11 03:10 jpff <jpff@codemist.co.uk>
-
- * opcodes/pan2.xml: New option in pan2
-
-2009-05-03 20:36 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: loop_ge.xml, loop_gt.xml, loop_le.xml, loop_lt.xml:
- Fixed syntax of loop opcodes/loop_ge.xml (no spaces allowed in
- synopsis)
-
-2009-04-22 01:05 jpff <jpff@codemist.co.uk>
-
- * examples/wii.csd: wii example added
-
-2009-04-20 14:04 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/mp3in.xml: Fixed typo
-
-2009-04-20 12:42 jpff <jpff@codemist.co.uk>
-
- * examples-xml/wii.csd.xml, opcodes/mp3in.xml, scoregens/gen49.xml:
- typos
-
-2009-04-17 21:03 Andrés Cabrera <mantaraya36@gmail.com>
-
- * command/flags.xml, command/flagscategory.xml,
- command/flagscategoryXO.xml, opcodes/diskin2.xml,
- opcodes/flooper2.xml, opcodes/inch.xml, opcodes/madsr.xml,
- opcodes/metro.xml, opcodes/outch.xml, opcodes/poscil.xml,
- opcodes/poscil3.xml, utility/sdif2ad.xml: Many small changes
-
-2009-04-11 10:12 Felipe Sateler <fsateler@gmail.com>
-
- * manpages.xml: Update manpages version
-
-2009-04-07 07:35 jpff <jpff@codemist.co.uk>
-
- * examples-xml/wii.csd.xml, opcodes/wiidata.xml,
- opcodes/wiisend.xml: revised wii opcodes
-
-2009-04-07 04:13 jpff <jpff@codemist.co.uk>
-
- * opcodes/: wiidata.xml, wiirange.xml: tweaking wii opcodes
-
-2009-04-07 03:48 jpff <jpff@codemist.co.uk>
-
- * opcodes/wiiconnect.xml: tweaking wii opcodes
-
-2009-04-06 05:43 jpff <jpff@codemist.co.uk>
-
- * opcodes/wiiconnect.xml: Added wii example
-
-2009-04-06 04:32 jpff <jpff@codemist.co.uk>
-
- * examples-xml/wii.csd.xml, opcodes/wiiconnect.xml: Added wii
- example
-
-2009-04-05 14:06 jpff <jpff@codemist.co.uk>
-
- * manual.xml, opcodes/top.xml, opcodes/wiiconnect.xml,
- opcodes/wiidata.xml, opcodes/wiirange.xml, opcodes/wiisend.xml:
- document wii opcodes
-
-2009-03-27 06:47 jpff <jpff@codemist.co.uk>
-
- * manual.xml, opcodes/ins.xml, opcodes/mp3in.xml, opcodes/top.xml:
- document mps3in
-
-2009-03-24 12:44 jpff <jpff@codemist.co.uk>
-
- * manpages.xml, manual.xml, examples/beats.mp3, examples/gen49.csd,
- examples-xml/gen49.csd.xml, scoregens/gen49.xml,
- scoregens/top.xml: Adding gen49
-
-2009-03-17 09:37 jpff <jpff@codemist.co.uk>
-
- * command/unifile.xml, misc/quickref.xml: document revised CsScore
-
-2009-03-15 16:09 François Pinot <fggpinot@gmail.com>
-
- * opcodes/sndloop.xml: Syntax highlighting
-
-2009-03-15 16:08 François Pinot <fggpinot@gmail.com>
-
- * opcodes/waveset.xml: Minor change
-
-2009-03-15 13:12 jpff <jpff@codemist.co.uk>
-
- * command/unifile.xml: added CsExScore tag
-
-2009-03-15 07:32 François Pinot <fggpinot@gmail.com>
-
- * opcodes/: sfplay.xml, sfplay3.xml, sfplay3m.xml, sfplaym.xml:
- Minor fix
-
-2009-03-14 04:51 François Pinot <fggpinot@gmail.com>
-
- * opcodes/sflooper.xml: Added link
-
-2009-03-14 04:17 François Pinot <fggpinot@gmail.com>
-
- * opcodes/sfload.xml: Added link
-
-2009-03-14 03:50 François Pinot <fggpinot@gmail.com>
-
- * opcodes/sfinstrm.xml: Typo
-
-2009-03-13 16:26 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/tigoto.xml: Removed unnecessary link.
-
-2009-03-05 15:40 François Pinot <fggpinot@gmail.com>
-
- * opcodes/: loscil.xml, loscil3.xml, lposcil.xml, lposcil3.xml,
- lposcila.xml, lposcilsa.xml, lposcilsa2.xml: Syntax highlighting
-
-2009-03-02 21:34 Andrés Cabrera <mantaraya36@gmail.com>
-
- * command/: flags.xml, flagscategory.xml: Added note about -Ma for
- PortMIDI
-
-2009-02-27 16:43 François Pinot <fggpinot@gmail.com>
-
- * opcodes/: flooper.xml, flooper2.xml: Syntax highlighting
-
-2009-02-21 04:31 François Pinot <fggpinot@gmail.com>
-
- * opcodes/timek.xml: Syntax highlighting
-
-2009-02-21 04:22 François Pinot <fggpinot@gmail.com>
-
- * opcodes/timeinstk.xml: Minor fix
-
-2009-02-21 03:58 François Pinot <fggpinot@gmail.com>
-
- * opcodes/timeinstk.xml: Syntax highlighting
-
-2009-02-21 03:31 François Pinot <fggpinot@gmail.com>
-
- * opcodes/dates.xml: Typo
-
-2009-02-19 16:22 François Pinot <fggpinot@gmail.com>
-
- * opcodes/scoreline_i.xml: Syntax highlighting
-
-2009-02-19 15:54 François Pinot <fggpinot@gmail.com>
-
- * opcodes/scoreline.xml: Typo
-
-2009-02-19 15:14 François Pinot <fggpinot@gmail.com>
-
- * opcodes/schedkwhennamed.xml: Typo
-
-2009-02-19 14:24 François Pinot <fggpinot@gmail.com>
-
- * opcodes/schedkwhen.xml: Typo
-
-2009-02-19 13:27 François Pinot <fggpinot@gmail.com>
-
- * opcodes/schedwhen.xml: Minor fix
-
-2009-02-18 13:38 François Pinot <fggpinot@gmail.com>
-
- * opcodes/pset.xml: Syntax highlighting
-
-2009-02-18 12:45 François Pinot <fggpinot@gmail.com>
-
- * opcodes/exitnow.xml: Typo
-
-2009-02-14 10:54 François Pinot <fggpinot@gmail.com>
-
- * opcodes/: cggoto.xml, cigoto.xml, ckgoto.xml, goto.xml,
- igoto.xml, kgoto.xml, tigoto.xml, timout.xml, cngoto.xml:
- Cleaning
-
-2009-02-14 10:50 François Pinot <fggpinot@gmail.com>
-
- * opcodes/if.xml: Uncommented ifthen example
-
-2009-02-14 10:43 François Pinot <fggpinot@gmail.com>
-
- * opcodes/: loop_ge.xml, loop_gt.xml, loop_le.xml, loop_lt.xml:
- Syntax highlighting
-
-2009-01-30 08:29 Andrés Cabrera <mantaraya36@gmail.com>
-
- * srcrelease.sh, examples/diskgrain.csd,
- examples-xml/diskgrain.csd.xml, opcodes/diskgrain.xml,
- opcodes/goto.xml: Added script for source release. Minor
- corrections to diskgrain and diskgrain example (Thanks to
- Victor). Added note to goto entry (Thanks to Art Hunkins)
-
-2009-01-10 16:57 François Pinot <fggpinot@gmail.com>
-
- * csound.css, csoundXO.css, xsl/customPDF.xsl.in: Corrected for the
- new quickref structure
-
-2009-01-09 11:42 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile, misc/quickref.xml: Fixed Makefile dist target. Now
- works. Added script to generate src package
-
-2009-01-08 17:08 Andrés Cabrera <mantaraya36@gmail.com>
-
- * ChangeLog: Updated ChangeLog
-
-2009-01-08 16:59 Andrés Cabrera <mantaraya36@gmail.com>
-
- * command/: flagscategory.xml, flagscategoryXO.xml: Fixed duplicate
- id to correct pdf building
-
-2009-01-08 15:16 François Pinot <fggpinot@gmail.com>
-
- * quickref.py: Typo
-
-2009-01-05 09:30 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/ephasor.xml, preface/whatsnew.xml: Removed ephasor and
- sone gen from what's new since they aren't yet ready. Updated
- ChangeLog
-
-2009-01-04 13:49 Michael Gogins <gogins@pipeline.com>
-
- * overview/introduction.xml: no message
-
-2009-01-04 12:12 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/ephasor.xml, opcodes/template.xml, preface/whatsnew.xml:
- Corrected errors in ephasor and template entries. Fixed links for
- Whats new section
-
-2009-01-04 12:05 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/zakinit.csd, examples-xml/zakinit.csd.xml,
- opcodes/if.xml, opcodes/zakinit.xml, scoregens/gen20.xml,
- zak/top.xml: Added note about zak channels counting from 0. Added
- clarification on variable types for if.
-
-2009-01-04 09:39 Andrés Cabrera <mantaraya36@gmail.com>
-
- * vectorial/top.xml: Removed credit here for consistency
-
-2009-01-04 09:38 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile, manual.xml, manualXO.xml, opcodes/topXO.xml: Bumped
- version to 5.10. Removed babo and ambisonic opcodes from OLPC
- manual.
-
-2009-01-04 09:09 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/0dbfs.xml, overview/design.xml: Improved documentation
- for 0dbFS
-
-2009-01-04 09:07 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manual.xml, manualXO.xml, opcodes/ephasor.xml,
- opcodes/fluidEngine.xml, opcodes/template.xml, opcodes/top.xml,
- opcodes/topXO.xml, readme.txt: Added ephasor template and generic
- template for opcode entries. Added note about new parameters for
- fluidEngine
-
-2009-01-03 08:18 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/pvsfwrite.csd, examples-xml/pvsfwrite.csd.xml,
- opcodes/pvsfwrite.xml: Improved example for pvsfwrite.
-
-2009-01-02 20:49 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: dcblock2.xml, ksmps.xml: Minor changes
-
-2009-01-02 20:48 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/active_scale.csd, examples-xml/active_scale.csd.xml,
- opcodes/active.xml: Added new example for active by Victor
- Lazzarini
-
-2009-01-02 20:47 Andrés Cabrera <mantaraya36@gmail.com>
-
- * quickref.py, misc/quickref.xml: Fixed quickref.py for pdf
- compilation
-
-2009-01-02 20:21 Andrés Cabrera <mantaraya36@gmail.com>
-
- * images/600px-Chua's_circuit.svg.png, opcodes/chuap.xml: Fixed
- image for chuap opcode. The image comes from Wikipedia, and is in
- the public domain.
-
-2008-12-30 14:29 Andrés Cabrera <mantaraya36@gmail.com>
-
- * score/preproc.xml, score/statemnt.xml, scoregens/leftbrace.xml:
- Added links to left and right brace score statements in score
- section
-
-2008-12-22 15:42 François Pinot <fggpinot@gmail.com>
-
- * command/: flagscategory.xml, flagscategoryXO.xml: Minor fix
-
-2008-12-22 04:19 jpff <jpff@codemist.co.uk>
-
- * scoregens/gen20.xml: Adding note on versions
-
-2008-12-18 07:00 jpff <jpff@codemist.co.uk>
-
- * command/: flags.xml, flagscategory.xml, flagscategoryXO.xml:
- dither
-
-2008-12-18 05:45 jpff <jpff@codemist.co.uk>
-
- * scoregens/gen20.xml: Updating GEN20/6 documentation
-
-2008-12-10 16:26 François Pinot <fggpinot@gmail.com>
-
- * csound-bw.css, csound.css, csoundXO.css: Changed GPL to GFDL
-
-2008-12-09 16:37 Andrés Cabrera <mantaraya36@gmail.com>
-
- * makeframes.py, opcodeparser.py, quickref.py: Added GPL version 3
- licence text to scripts
-
-2008-12-08 22:34 Felipe Sateler <fsateler@gmail.com>
-
- * Makefile: Use $(MAKE) variable instead of calling make directly
-
-2008-12-07 10:21 Felipe Sateler <fsateler@gmail.com>
-
- * Makefile: Make xsl files phony targets (force rebuild always)
-
-2008-12-06 05:06 François Pinot <fggpinot@gmail.com>
-
- * cvsauthors: Typo
-
-2008-12-05 16:13 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: envlpx.xml, envlpxr.xml, event_i.xml, linenr.xml: Minor
- corrections, thanks to Kanata Motohashi
-
-2008-12-05 08:51 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/transeg.xml: Added note about skipping initialization.
- Thanks to Kanata Motohashi.
-
-2008-12-04 14:20 Felipe Sateler <fsateler@gmail.com>
-
- * Makefile: Try to use latest XSL installed. Correct ifneq
- condition
-
-2008-12-04 09:51 Felipe Sateler <fsateler@gmail.com>
-
- * Makefile: Try to find versioned docbook xsl installations
-
-2008-12-03 16:35 Felipe Sateler <fsateler@gmail.com>
-
- * Makefile: Remove OLPC stuff on clean
-
-2008-12-03 16:33 Felipe Sateler <fsateler@gmail.com>
-
- * Makefile: Fail when XSL_BASE_PATH is not a directory
-
-2008-12-02 15:48 Andrés Cabrera <mantaraya36@gmail.com>
-
- * ChangeLog: typo
-
-2008-12-02 15:46 Andrés Cabrera <mantaraya36@gmail.com>
-
- * cvsauthors: Added Felipe Sateler to list
-
-2008-12-02 15:43 Andrés Cabrera <mantaraya36@gmail.com>
-
- * ChangeLog: Updated ChangeLog
-
-2008-12-02 15:12 Andrés Cabrera <mantaraya36@gmail.com>
-
- * misc/quickref.xml: Updated misc/quickref.xml
-
-2008-12-02 15:07 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile: typo. Fixed html-dist target
-
-2008-12-01 23:35 Felipe Sateler <fsateler@gmail.com>
-
- * Makefile: Remove bashism from clean rules
-
-2008-12-01 18:13 Felipe Sateler <fsateler@gmail.com>
-
- * Makefile, readme.txt, xsl/customHTMLHelp.xsl.in,
- xsl/customPDF.xsl.in, xsl/customXHTMLOneChunk.xsl.in,
- xsl/customXHTMLchunk.xsl.in: Use system-installed XSL
- stylesheets, document in readme.txt
-
-2008-12-01 11:56 Felipe Sateler <fsateler@gmail.com>
-
- * readme.txt: Update build instructions
-
-2008-12-01 11:37 Felipe Sateler <fsateler@gmail.com>
-
- * manpages.xml, manual.xml, manualXO.xml: Use system-wide XML DTDs
- for building the manual and manpages
-
-2008-11-29 07:35 Andrés Cabrera <mantaraya36@gmail.com>
-
- * command/flags.xml: Fixed building of manpage for csound
- executable
-
-2008-11-29 07:33 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manpages.xml: Fixed building of manpages target
-
-2008-11-29 07:33 Andrés Cabrera <mantaraya36@gmail.com>
-
- * orch/header.xml: Moved 0dbfs to header section
-
-2008-11-29 07:23 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: 0dbfs.xml, button.xml: Moved 0dbfs to header section
-
-2008-11-29 07:22 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile, manualXO.xml, opcodeparser.py, XO/library.info: Minor
- improvements to to fix XO build
-
-2008-11-18 13:18 jpff <jpff@codemist.co.uk>
-
- * examples/pvsarp.csd, examples-xml/pvsarp.csd.xml: table and kr in
- pvsarp examples
-
-2008-11-17 09:10 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/lineto.xml: Added note by Art Hunkins
-
-2008-11-17 08:16 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/pvsarp.csd: Fixed kr/sr issue, thanks to jpff
-
-2008-10-12 03:46 Francois Pinot <fggpinot@gmail.com>
-
- * opcodes/bbcutm.xml: Syntax highlighting
-
-2008-10-10 16:43 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/transeg.csd, examples-xml/transeg.csd.xml,
- images/transeg.png, opcodes/transeg.xml, scoregens/gen16.xml:
- Fixed text about envelope shape, thanks to Kanata Motohashi.
- Added new example and image to transeg entry.
-
-2008-09-30 15:55 Francois Pinot <fggpinot@gmail.com>
-
- * cvsauthors: mail address modified
-
-2008-09-30 15:53 Francois Pinot <fggpinot@gmail.com>
-
- * manual.xml, manualXO.xml: docbook syntax correction
-
-2008-09-20 12:35 Michael Gogins <gogins@pipeline.com>
-
- * overview/recentdev.xml: no message
-
-2008-09-19 09:07 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile, opcodes/dcblock2.xml, preface/copy.xml: Fixed pdf
- build. Bumped version to 5.09 in Makefile
-
-2008-09-19 08:34 Andrés Cabrera <mantaraya36@gmail.com>
-
- * ChangeLog, cvsauthors: Updated ChangeLog and added cvsauthors
- file for use with cvs2cl to generate ChangeLog changes with
- proper names.
-
-2008-09-18 21:08 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manual.xml, manualXO.xml, control/sensing.xml,
- control/sensingXO.xml, opcodes/rewindscore.xml,
- opcodes/setscorepos.xml, opcodes/top.xml, opcodes/topXO.xml,
- preface/whatsnew.xml, sigmod/speciali.xml: Finished integrating
- rewindscore and setcorepos in manual. Added dcblock2 to the
- Specialized filters section.
-
-2008-09-18 08:14 Victor Lazzarini <victor.lazzarini@nuim.ie>
-
- * opcodes/dcblock2.xml: filled in the dcblock2 man page
-
-2008-09-17 08:43 Victor Lazzarini <victor.lazzarini@nuim.ie>
-
- * opcodes/: rewindscore.xml, setscorepos.xml: added rewindscore &
- setscorepos pages
-
-2008-09-11 18:49 Michael Gogins <gogins@pipeline.com>
-
- * overview/building.xml: Updated to reflect recent Windows build
- experience.
-
-2008-09-11 18:40 Michael Gogins <gogins@pipeline.com>
-
- * math/linearalgebra.xml: Corrected typo.
-
-2008-09-07 15:44 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * overview/configuring.xml: Fixed spelling mistake, removed stray
- punctuation and changed default directory for Windows
- installation
-
-2008-09-07 15:42 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * orch/macros.xml: Re-punctuated cross-reference to Score Macros
-
-2008-09-07 15:40 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * orch/header.xml: Improved introduction to header example
-
-2008-09-07 09:05 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manual.xml, manualXO.xml, opcodes/dcblock.xml,
- opcodes/dcblock2.xml, opcodes/top.xml, opcodes/topXO.xml: Added
- dcblock2 opcode entry and added note to dcblock opcode.
-
-2008-09-07 08:41 Andrés Cabrera <mantaraya36@gmail.com>
-
- * command/: flags.xml, flagscategoryXO.xml, unifile.xml: Minor
- changes
-
-2008-09-06 14:44 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * overview/realtimelinux.xml: removed mid-para break
-
-2008-09-06 14:40 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * overview/realtimelinux.xml: added link type to URL for
- consistency
-
-2008-09-06 14:05 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * overview/design.xml: corrected error in -6dB description
-
-2008-09-06 03:09 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * csound.css: Added a caption style for figures
-
-2008-09-05 15:21 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * command/unifile.xml: hyphenation
-
-2008-09-05 15:19 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * command/top.xml: minor grammar fixes
-
-2008-09-04 13:51 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * command/preproc.xml: capitalization
-
-2008-09-04 13:50 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * command/flagscategory.xml: punctuation
-
-2008-09-03 14:50 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/trandom.xml: Minor fix
-
-2008-09-03 11:32 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: bformdec1.xml, bformenc1.xml: Fixed example, credits
- and added "see also" sections
-
-2008-09-03 11:21 Andrés Cabrera <mantaraya36@gmail.com>
-
- * preface/whatsnew.xml: Fixed note about dcblock2
-
-2008-09-03 11:20 Andrés Cabrera <mantaraya36@gmail.com>
-
- * preface/whatsnew.xml: corrected spelling
-
-2008-09-03 11:16 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/bformdec.xml, opcodes/bformenc.xml, opcodes/dcblock.xml,
- opcodes/soundout.xml, opcodes/soundouts.xml,
- preface/whatsnew.xml: Completed "what's new" with input from John
- and Victor. Deprecated bformdec, bformenc, soundout and
- soundouts.
-
-2008-09-02 21:53 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manual.xml, math/linearalgebra.xml, opcodes/top.xml,
- overview/realtimelinux.xml, preface/whatsnew.xml: Completed
- what's new section for 5.09. Other small corrections
-
-2008-09-02 21:51 Andrés Cabrera <mantaraya36@gmail.com>
-
- * command/: flags.xml, flagscategory.xml, flagscategoryXO.xml:
- Added flags for new pulseaudio I/O module
-
-2008-09-02 15:30 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * command/environment.xml: Clarified earlier windows versions
- explicitly
-
-2008-09-02 14:38 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * command/desc.xml: Minor improvements
-
-2008-08-31 17:53 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: rand.xml: Removed paragraph about xcps
-
-2008-08-31 04:19 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/poisson.xml: Typos
-
-2008-08-30 14:44 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * preface/gettingstarted.xml: edits for grammar and readability
-
-2008-08-30 14:38 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * readme.txt: fixed up line lengths and periods at end of
- sentences.
-
-2008-08-30 14:36 Gareth Edwards <gdedwards@blueyonder.co.uk>
-
- * overview/building.xml: Fixed hyperlinks
-
-2008-08-29 10:22 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/chuap.xml: Typos
-
-2008-08-15 11:37 jpff <jpff@codemist.co.uk>
-
- * opcodes/space.xml: missing endin
-
-2008-08-13 17:12 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manualXO.xml, opcodes/top.xml, opcodes/topXO.xml: Added new
- bformat decoder and encoder plugins to XO version.
-
-2008-08-13 17:11 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/setksmps.xml: Added that local ksmps can't be larger that
- gloabl ksmps
-
-2008-08-13 17:11 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/printf.xml: Added note that there's no a-rate printing
-
-2008-08-13 17:10 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: sfplay.xml, sfplay3.xml, sfplay3m.xml, sfplaym.xml:
- Added new optional parameter ienv
-
-2008-08-13 17:10 Andrés Cabrera <mantaraya36@gmail.com>
-
- * scoregens/: top.xml, topXO.xml: Added note about named GEN
- routines
-
-2008-08-07 05:52 Francois Pinot <francois.pinot@numericable.fr>
-
- * siggen/basic.xml: Typo
-
-2008-08-07 05:51 Francois Pinot <francois.pinot@numericable.fr>
-
- * scoregens/f.xml: Minor fix
-
-2008-07-31 21:45 Andrés Cabrera <mantaraya36@gmail.com>
-
- * misc/: quickref.xml, quickrefXO.xml: updated quickrefs after
- bugfix to generator script
-
-2008-07-31 21:41 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/chuap.xml: fixed category
-
-2008-07-31 21:41 Andrés Cabrera <mantaraya36@gmail.com>
-
- * control/invocat.xml, opcodes/remove.xml: Added references to
- remove and fixed category
-
-2008-07-31 21:39 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/insglobal.xml, opcodes/insremot.xml,
- opcodes/midglobal.xml, opcodes/midremot.xml,
- opcodes/remoteport.xml, oscnetwork/Remote.xml: Fixed category for
- remoteport and added references to it
-
-2008-07-31 21:38 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodeparser.py, quickref.py: Bug fixes and warnings when
- category is not matched
-
-2008-07-24 12:26 jpff <jpff@codemist.co.uk>
-
- * Makefile, opcodes/bformdec1.xml, opcodes/bformenc1.xml: ambisonic
- opcodes
-
-2008-07-24 08:23 jpff <jpff@codemist.co.uk>
-
- * opcodes/bformenc1.xml: ambisonic opcodes
-
-2008-07-24 08:01 jpff <jpff@codemist.co.uk>
-
- * ChangeLog, manual.xml, examples/bformenc1.csd,
- examples-xml/bformenc1.csd.xml, opcodes/bformdec.xml,
- opcodes/bformdec1.xml, opcodes/bformenc.xml,
- opcodes/bformenc1.xml, opcodes/top.xml: ambisonic opcodes
-
-2008-07-22 20:36 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/ftgen.xml, opcodes/ftgentmp.xml, scoregens/f.xml,
- siggen/tableacc.xml, table/top.xml: Added information about non
- power of two tables
-
-2008-07-20 12:34 Michael Gogins <gogins@pipeline.com>
-
- * manual.xml, math/linearalgebra.xml, opcodes/top.xml: Updated
- linear algebra opcodes documentation, added to main opcodes list.
-
-2008-07-18 15:40 Andrés Cabrera <mantaraya36@gmail.com>
-
- * csoundXO.css: Made text font larger
-
-2008-07-16 16:48 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/line.xml: Fixed description to mention only one segment.
-
-2008-07-16 16:43 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manual.xml, manualXO.xml, examples/bitshift.csd,
- examples-xml/bitshift.csd.xml, opcodes/opbitshl.xml,
- opcodes/opbitshr.xml, opcodes/top.xml, opcodes/topXO.xml: Added
- entries and example for bitshift operators
-
-2008-07-16 16:23 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/poscil3.xml: typo
-
-2008-07-16 16:23 Andrés Cabrera <mantaraya36@gmail.com>
-
- * scoregens/f.xml: Added note about pmax (maximum number of
- p-fields)
-
-2008-07-16 16:11 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodeparser.py: Added opcode parser script
-
-2008-07-16 13:46 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/line.csd, examples-xml/line.csd.xml, opcodes/line.xml:
- The example had a mistake. Pointed out by rasputin
- <tims45@aol.com>
-
-2008-07-14 12:15 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/configuring.xml, preface/copy.xml, preface/whatsnew.xml,
- siggen/basic.xml, table/readwrit.xml: Added note about
- oscillators in table chapter and about tables in oscillator
- chapter. Other minor corrections
-
-2008-07-14 12:10 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/topXO.xml: Corrected scan synthesis included opcodes
-
-2008-07-14 12:09 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/poscil3-file.csd, examples-xml/poscil3-file.csd.xml,
- opcodes/poscil.xml, opcodes/poscil3.xml: Corrections and new
- example for poscil opcodes (by Joachim Heintz)
-
-2008-07-14 12:06 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manualXO.xml: Corrected scan synthesis included opcodes
-
-2008-06-27 18:25 Andrés Cabrera <mantaraya36@gmail.com>
-
- * scoregens/i.xml: Minor additions
-
-2008-06-27 17:04 Andrés Cabrera <mantaraya36@gmail.com>
-
- * math/linearalgebra.xml, preface/whatsnew.xml: Added some elements
- to Wht's new section. Cosmetic changes to Linear Algebra opcodes
- page.
-
-2008-06-27 16:39 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/chuap.xml, siggen/models.xml: Cleaned up chuap entry and
- Models section
-
-2008-06-27 16:38 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/strset.csd, examples-xml/strset.csd.xml,
- opcodes/printf.xml, opcodes/strget.xml, opcodes/strset.xml,
- score/strings.xml, score/top.xml, manual.xml, manualXO.xml: Added
- Score Strings section. Added example for strset.
-
-2008-06-27 15:59 Andrés Cabrera <mantaraya36@gmail.com>
-
- * misc/csound64.xml, opcodes/print.xml: Added note about precision
- in print. Added info provided M. Gogins to the 32-bit vs. 64-bit
- section.
-
-2008-06-27 15:58 Andrés Cabrera <mantaraya36@gmail.com>
-
- * midi/top.xml, scoregens/f.xml: Added note about dummy f-statement
- in Real-TIme MIDI section
-
-2008-06-16 16:20 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/syncphasor-CZresonance.csd,
- examples-xml/syncphasor-CZresonance.csd.xml,
- opcodes/syncphasor.xml: Added example by Anthony Kozar to
- syncphasor
-
-2008-06-15 09:15 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile: Added target for b&w html and added target for XO
- bundle
-
-2008-06-15 09:09 Andrés Cabrera <mantaraya36@gmail.com>
-
- * csound-bw.css, csound.css: Put previous css as an option. Made
- font bigger, removed indentations and hanged brwon to blue
-
-2008-06-14 16:28 Michael Gogins <gogins@pipeline.com>
-
- * manual.xml, math/linearalgebra.xml, math/top.xml: Documentation
- for linear algebra opcodes -- many similar opcodes on one man
- page.
-
-2008-06-01 08:59 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manualXO.xml, opcodes/topXO.xml: Removed scans, scanu and
- scanhammer from XO version
-
-2008-05-29 14:53 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: vbap16.xml, vbap4.xml, vbap8.xml, vbapz.xml: Changed
- parameters to k-rate
-
-2008-05-29 14:52 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: soundout.xml, soundouts.xml: Note recommending fout
- instead of soundout
-
-2008-05-24 14:19 Michael Gogins <gogins@pipeline.com>
-
- * overview/frontends.xml: Another update for CsoundVST guide.
-
-2008-05-24 10:38 Michael Gogins <gogins@pipeline.com>
-
- * overview/frontends.xml: Updated CsoundVST guide.
-
-2008-05-21 21:12 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/ampdbfs.xml: Clarified text
-
-2008-05-21 21:04 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/eqfil.xml: Fixed typo, thanks to Jonatan Liljedahl
-
-2008-05-21 20:33 Andrés Cabrera <mantaraya36@gmail.com>
-
- * csound.css, csoundXO.css, manualXO.xml, readme.txt: Added color
- to csound manual and csoundXO.
-
-2008-05-21 20:21 Andrés Cabrera <mantaraya36@gmail.com>
-
- * misc/topXO.xml, preface/copy.xml, preface/historyXO.xml: Finished
- licence and history information
-
-2008-05-21 20:12 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/scoreline_i.xml: Removed extra parameter. Thanks to
- Joachim Heintz
-
-2008-05-19 00:55 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/chuap.csd.xml: Minor fix
-
-2008-05-18 17:12 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/chuap.csd.xml: Initial commit
-
-2008-05-18 17:11 Francois Pinot <francois.pinot@numericable.fr>
-
- * score/top.xml: Minor fix
-
-2008-05-18 17:11 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples/chuap.csd, preface/gettingstartedXO.xml: typo
-
-2008-05-12 06:18 Andrés Cabrera <mantaraya36@gmail.com>
-
- * XO/library.info: fixed links
-
-2008-05-12 06:08 Andrés Cabrera <mantaraya36@gmail.com>
-
- * preface/: toot1XO.xml, toot7XO.xml, toot8XO.xml, toot9XO.xml:
- fixed links to images
-
-2008-05-07 20:32 Michael Gogins <gogins@pipeline.com>
-
- * siggen/models.xml, opcodes/chuap.xml, opcodes/top.xml,
- manual.xml: Added chuap
-
-2008-05-07 17:47 Michael Gogins <gogins@pipeline.com>
-
- * examples/chuap.csd: no message
-
-2008-05-07 17:02 Michael Gogins <gogins@pipeline.com>
-
- * opcodes/chuap.xml: no message
-
-2008-04-20 09:38 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile, manual.xml, preface/gettingstartedXO.xml: Improved
- getting started section for XO. Added et. al. to authors list in
- title.
-
-2008-04-20 08:12 Andrés Cabrera <mantaraya36@gmail.com>
-
- * preface/history.xml: Changed Richard Dobson for Richard Boulanger
-
-2008-04-19 11:35 Andrés Cabrera <mantaraya36@gmail.com>
-
- * imagesXO/editorXO.jpg: Added Csound Editor Activity image
-
-2008-04-19 11:21 Andrés Cabrera <mantaraya36@gmail.com>
-
- * attic/images/blank.png, attic/images/draft.png, images/blank.png,
- images/draft.png: Removed unused images
-
-2008-04-19 11:21 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile, manual.xml, manualXO.xml, preface/acknowledgements.xml,
- preface/history.xml, preface/top.xml: Moved acknowledgement
- section to History. Removed editors and added "et al" to shorten
- title. Other small changes.
-
-2008-04-19 11:16 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: top.xml, topXO.xml: Corrected alphabetical order of pvs
- opcodes
-
-2008-04-19 11:15 Andrés Cabrera <mantaraya36@gmail.com>
-
- * score/top.xml: Added note for maximum score duration
-
-2008-04-19 11:07 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/fout_poly.csd, examples-xml/fout_poly.csd.xml,
- opcodes/fout.xml, opcodes/monitor.xml, opcodes/soundout.xml,
- opcodes/soundouts.xml: Added references for monitor in soundout
- and fout. Changed example in fout to use monitor.
-
-2008-04-19 09:49 Andrés Cabrera <mantaraya36@gmail.com>
-
- * orch/kvar.xml, overview/configuring.xml: Minor fix
-
-2008-04-19 08:38 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/granule.csd, examples-xml/granule.csd.xml: Fixed
- filename in comment
-
-2008-04-13 05:05 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/phasorbnk.xml, opcodes/planet.xml, opcodes/prepiano.xml,
- opcodes/shaker.xml, examples-xml/moog.csd.xml,
- examples-xml/voice.csd.xml: Minor fix
-
-2008-04-06 13:07 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile, compare_opcode_lists.py, manualXO.xml,
- opcode_listXO.txt, removed_opcodesXO.txt, misc/quickrefXO.xml,
- opcodes/topXO.xml: Corrected included opcodes list for OLPCsound
-
-2008-04-06 11:42 Andrés Cabrera <mantaraya36@gmail.com>
-
- * XO/library.info: Fixed path to manual
-
-2008-04-05 18:15 Francois Pinot <francois.pinot@numericable.fr>
-
- * manualXO.xml: Corrections for XO
-
-2008-04-05 15:35 Francois Pinot <francois.pinot@numericable.fr>
-
- * csoundXO.css: Updated ro reflect quickref.py changes
-
-2008-04-05 12:59 Andrés Cabrera <mantaraya36@gmail.com>
-
- * orch/dirfiles.xml: Corrected note about precedence
-
-2008-04-05 12:59 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manual.xml, manualXO.xml, overview/design.xml,
- overview/using.xml, overview/usingXO.xml,
- preface/gettingstartedXO.xml, utility/analysisXO.xml,
- utility/convertXO.xml: Many minor changes
-
-2008-04-05 12:53 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: hrtfmove.xml, hrtfmove2.xml, hrtfstat.xml: Added link
- to Environment variable page
-
-2008-04-05 04:32 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/bamboo.xml: Minor fix
-
-2008-04-05 04:01 Francois Pinot <francois.pinot@numericable.fr>
-
- * quickref.py: Minor fix
-
-2008-04-05 03:26 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/mandol.csd.xml: Minor fix
-
-2008-04-05 03:17 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/loopsegp.xml, overview/building.xml, utility/convert.xml,
- utility/convertXO.xml, utility/top.xml, utility/topXO.xml: Minor
- fix
-
-2008-04-05 03:14 Francois Pinot <francois.pinot@numericable.fr>
-
- * csoundXO.css: Added copyright
-
-2008-04-04 20:53 Andrés Cabrera <mantaraya36@gmail.com>
-
- * attic/images/caution.gif, attic/images/caution.png,
- attic/images/important.gif, attic/images/important.png,
- attic/images/note.gif, attic/images/note.png,
- attic/images/tip.gif, attic/images/tip.png,
- attic/images/warning.gif, attic/images/warning.png,
- images/caution.gif, images/caution.png, images/important.gif,
- images/important.png, images/note.gif, images/note.png,
- images/tip.gif, images/tip.png, images/warning.gif,
- images/warning.png: Restored png images and removed unused gif
- images.
-
-2008-04-04 18:59 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: hrtfmove.xml, hrtfmove2.xml, hrtfstat.xml: Two small
- corrections
-
-2008-04-02 23:59 Francois Pinot <francois.pinot@numericable.fr>
-
- * overview/frontends.xml: Typo
-
-2008-04-02 21:13 Andrés Cabrera <mantaraya36@gmail.com>
-
- * preface/gettingstartedXO.xml, preface/prefaceXO.xml,
- manualXO.xml, command/flagscategoryXO.xml: Changed csoundXO for
- OLPCsound
-
-2008-04-02 21:12 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/exprand.xml: Changed name of parameter to klambda and
- changed its description
-
-2008-04-02 21:12 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: hrtfmove.xml, hrtfmove2.xml, hrtfstat.xml: Corrections
- by Brian Carty
-
-2008-03-31 14:08 Andrés Cabrera <mantaraya36@gmail.com>
-
- * siggen/granular.xml: Added vosim
-
-2008-03-31 14:06 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/linen.xml: Added image
-
-2008-03-31 13:27 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/building.xml: Refactored building.xml
-
-2008-03-31 13:23 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile, manualXO.xml, examples/toot10.csd, examples/toot2.csd,
- examples/toot6.csd, examples/toot7.csd, examples/toot8.csd,
- examples/toot9.csd, examples-xml/toot10.csd.xml,
- examples-xml/toot6.csd.xml, examples-xml/toot7.csd.xml,
- examples-xml/toot8.csd.xml, examples-xml/toot9.csd.xml,
- images/linen.jpg, images/toot07.gif, images/toot08.gif,
- images/toot09.gif, preface/gettingstartedXO.xml,
- preface/prefaceXO.xml, preface/toot1XO.xml, preface/toot2XO.xml,
- XO/library.info, preface/toot3XO.xml, preface/toot5XO.xml,
- preface/topXO.xml, preface/toot10XO.xml, preface/toot6XO.xml,
- preface/toot7XO.xml, preface/toot8XO.xml, preface/toot9XO.xml,
- preface/tootorialsXO.xml: More changes to XO version. Added
- toots6-10
-
-2008-03-30 21:59 Andrés Cabrera <mantaraya36@gmail.com>
-
- * misc/quickref.xml: Commited complete file
-
-2008-03-29 09:39 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manual.xml, manualXO.xml, examples/vosim.csd,
- examples-xml/vosim.csd.xml, opcodes/top.xml, opcodes/topXO.xml,
- opcodes/vosim.xml, preface/whatsnew.xml: Added new vosim opcode.
- Bumped version to 5.09
-
-2008-03-29 09:30 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/building.xml: Minor changes suggested by Rory Walsh
-
-2008-03-29 07:40 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manualXO.xml: Removed Extending Csound section
-
-2008-03-29 07:39 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/building.xml: Added changes proposed by DavidW
-
-2008-03-28 20:02 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/building.xml: Added changes proposed by David Worral
-
-2008-03-28 17:28 Andrés Cabrera <mantaraya36@gmail.com>
-
- * scoregens/f.xml: Added notes by Art Hunkins
-
-2008-03-28 17:18 Andrés Cabrera <mantaraya36@gmail.com>
-
- * quickref.py: fixed non XO quickref.py
-
-2008-03-28 17:15 Andrés Cabrera <mantaraya36@gmail.com>
-
- * preface/whatsnew.xml: Added note about new hrtf opcodes
-
-2008-03-26 03:22 jpff <jpff@codemist.co.uk>
-
- * ChangeLog, opcodes/vbap16.xml, opcodes/vbap4.xml,
- opcodes/vbap8.xml, opcodes/vbapz.xml: changes in vbap
-
-2008-03-20 13:45 Andrés Cabrera <mantaraya36@gmail.com>
-
- * misc/quickref.xml, misc/quickrefXO.xml, misc/top.xml,
- misc/topXO.xml, opcodes/topXO.xml, sigio/inputXO.xml: Many
- changes to XO version and other minor changes
-
-2008-03-20 13:36 Andrés Cabrera <mantaraya36@gmail.com>
-
- * bugs.txt, compare_opcode_lists.py, deprecated.txt, manualXO.xml,
- opcode_listXO.txt, quickref.py, readme.txt,
- removed_opcodesXO.txt, command/flagscategoryXO.xml,
- siggen/sampleXO.xml, utility/convert.xml, utility/convertXO.xml,
- utility/topXO.xml: Many changes to XO version and other minor
- changes
-
-2008-03-17 12:54 Andrés Cabrera <mantaraya36@gmail.com>
-
- * attic/images/caution.png, attic/images/home.gif,
- attic/images/home.png, attic/images/important.png,
- attic/images/next.gif, attic/images/next.png,
- attic/images/note.png, attic/images/prev.gif,
- attic/images/prev.png, attic/images/tip.png,
- attic/images/toc-blank.gif, attic/images/toc-blank.png,
- attic/images/toc-minus.gif, attic/images/toc-minus.png,
- attic/images/toc-plus.gif, attic/images/toc-plus.png,
- attic/images/up.gif, attic/images/up.png, attic/images/v5_0.png,
- attic/images/warning.png, images/caution.png, images/home.gif,
- images/home.png, images/important.png, images/next.gif,
- images/next.png, images/note.png, images/prev.gif,
- images/prev.png, images/tip.png, images/toc-blank.gif,
- images/toc-blank.png, images/toc-minus.gif, images/toc-minus.png,
- images/toc-plus.gif, images/toc-plus.png, images/up.gif,
- images/up.png, images/v5_0.png, images/warning.png: Removed
- unused images
-
-2008-03-17 11:51 Andrés Cabrera <mantaraya36@gmail.com>
-
- * readme.txt: Calrifications by DavidW
-
-2008-03-16 12:12 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/opcode.xml: Small syntax fix thanks to Joachim Heinz
-
-2008-03-12 14:53 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/usingXO.xml: minor change
-
-2008-03-12 14:50 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/links.xml: Removed mention of the sourceforge bug
- tracked since it is not being checked.
-
-2008-03-12 10:55 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/eqfil.xml: Small fix by Cortaigne
-
-2008-03-12 10:54 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/loopsegp.csd, examples-xml/loopsegp.csd.xml,
- opcodes/loopsegp.xml: Small fix and added example by Mark Van
- Peteghem
-
-2008-03-10 21:57 Andrés Cabrera <mantaraya36@gmail.com>
-
- * control/sensingXO.xml, examples/toot1.csd, examples/toot2.csd,
- examples/toot3.csd, examples/toot4.csd, examples/toot5.csd,
- examples-xml/toot1.csd.xml, examples-xml/toot2.csd.xml,
- examples-xml/toot3.csd.xml, manualXO.xml,
- examples-xml/toot4.csd.xml, examples-xml/toot5.csd.xml,
- opcodes/topXO.xml, preface/gettingstartedXO.xml,
- preface/prefaceXO.xml, preface/toot1XO.xml, preface/toot2XO.xml,
- preface/toot3XO.xml, preface/toot4XO.xml, preface/toot5XO.xml,
- sigio/inputXO.xml, sigio/outputXO.xml, sigmod/panspatlXO.xml,
- spectral/realtimeXO.xml, utility/analysisXO.xml,
- utility/convert.xml: Large reorganization of XO manual.
-
-2008-03-10 21:52 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/rspline.xml: Removed nonexistent xamp parameter. Thanks
- to Art Hunkins.
-
-2008-03-10 13:56 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/loopsegp.xml: Changes to loopsegp docs, suggested by Mark
- Van Peteghem
-
-2008-03-10 12:41 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/imageopcodesdemo2.csd,
- examples-xml/imageopcodesdemo2.csd.xml,
- opcodes/imagegetpixel.xml, opcodes/imageload.xml: Changes to
- image opcodes example.
-
-2008-03-10 11:53 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/imageopcodesdemo2.csd, examples/test1.png,
- examples/test2.png, examples-xml/imageopcodesdemo2.csd.xml,
- opcodes/imageload.xml: Added new example for image opcodes by
- Cesare Marilungo
-
-2008-03-01 21:25 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manual.xml, manualXO.xml, command/descXO.xml,
- command/environmentXO.xml, misc/topXO.xml, opcodes/topXO.xml,
- preface/gettingstartedXO.xml, preface/prefaceXO.xml,
- preface/topXO.xml: Shortened Preface and Overview, removed
- tclcsound, tcl widget opcodes, csound64 and other things from XO
- version. Moved csound5 opcodes to main opcode list.
-
-2008-03-01 20:31 Michael Gogins <gogins@pipeline.com>
-
- * overview/: building.xml, frontends.xml: Updated material about
- CsoundVST. Corrected build instructions.
-
-2008-02-26 22:39 Michael Gogins <gogins@pipeline.com>
-
- * overview/building.xml: Updated build instructions for Windows.
-
-2008-02-26 21:46 Michael Gogins <gogins@pipeline.com>
-
- * overview/building.xml: no message
-
-2008-02-23 20:16 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manualXO.xml, midi/topXO.xml, opcodes/topXO.xml,
- spectral/topXO.xml: Removed ATSA and Loris. Removed references to
- Virtual Keyboard
-
-2008-02-23 11:07 Andrés Cabrera <mantaraya36@gmail.com>
-
- * csoundXO.css, overview/using.xml, overview/usingXO.xml: Small
- improvements to css and fixed unfinfished line in using.xml
-
-2008-02-23 03:26 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/: hvs2-2.csd.xml, hvs2.csd.xml: Initial commit
-
-2008-02-20 21:55 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manualXO.xml, command/topXO.xml, opcodes/slider16table.xml,
- opcodes/topXO.xml, overview/usingXO.xml,
- preface/gettingstartedXO.xml, scoregens/topXO.xml: Removed more
- unnecesary things for XO docs like cscore
-
-2008-02-20 21:10 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manual.xml, manualXO.xml, control/topXO.xml, midi/sliderbkXO.xml,
- opcodes/tableseg.xml, opcodes/topXO.xml,
- overview/introduction.xml, preface/topXO.xml, siggen/hvsXO.xml:
- Added missing files and corrected errors
-
-2008-02-20 20:21 Andrés Cabrera <mantaraya36@gmail.com>
-
- * csoundXO.css, manual.xml, manualXO.xml, opcodes/ktableseg.xml,
- spectral/stft.xml: Deprecated ktableseg opcode. Removed
- deprecated opcodes from CsoundXO docs
-
-2008-02-20 15:35 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile, csoundXO.css, manualXO.xml: Intial version of XO manual
- target
-
-2008-02-17 12:28 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile, csound.css, examples/hvs2-2.csd, examples/hvs2.csd,
- opcodes/hvs2.xml: Added old and new example for hvs2
-
-2008-02-15 13:29 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/ctrl14.xml: Typo
-
-2008-02-15 13:29 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: ctrl21.xml, initc21.xml, massign.xml, midic14.xml,
- midic21.xml, midic7.xml, midictrl.xml: Minor fix
-
-2008-02-11 12:24 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/barmodel.xml: Minor fixes
-
-2008-02-07 13:16 Andrés Cabrera <mantaraya36@gmail.com>
-
- * makeframes.py: Fixed to compensate changes in markup
-
-2008-02-06 16:27 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/betarand.xml, opcodes/bexprnd.xml, opcodes/trirand.xml,
- opcodes/unirand.xml, opcodes/weibull.xml, sigmod/wavshape.xml:
- minor fixes
-
-2008-02-06 12:58 Andrés Cabrera <mantaraya36@gmail.com>
-
- * docbook-xsl-1.73.2/fo/: admon.xsl, annotations.xsl,
- autoidx-kimber.xsl, autoidx-kosek.xsl, autoidx-ng.xsl,
- autoidx.xsl, autotoc.xsl, axf.xsl, biblio-iso690.xsl, biblio.xsl,
- block.xsl, callout.xsl, component.xsl, division.xsl, docbook.xsl,
- ebnf.xsl, fo-rtf.xsl, fo.xsl, footnote.xsl, fop.xsl, fop1.xsl,
- formal.xsl, glossary.xsl, graphics.xsl, highlight.xsl,
- htmltbl.xsl, index.xsl, info.xsl, inline.xsl, keywords.xsl,
- lists.xsl, math.xsl, pagesetup.xsl, param.xml, param.xsl,
- passivetex.xsl, pdf2index, pi.xml, pi.xsl, profile-docbook.xsl,
- ptc.xsl, qandaset.xsl, refentry.xsl, sections.xsl, spaces.xsl,
- synop.xsl, table.xml, table.xsl, task.xsl,
- titlepage.templates.xml, titlepage.templates.xsl, titlepage.xsl,
- toc.xsl, verbatim.xsl, xep.xsl, xref.xsl: Added missing
- stylesheets to build pdf
-
-2008-02-06 11:20 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/readk.csd, examples-xml/readk.csd.xml,
- opcodes/dumpk2.xml, opcodes/dumpk.xml, opcodes/dumpk3.xml,
- opcodes/dumpk4.xml, opcodes/readk.xml, opcodes/readk2.xml,
- opcodes/readk3.xml, opcodes/readk4.xml: Small fix en example.
- FIxed credits for readk/dumpk
-
-2008-02-06 00:16 Anthony Kozar <anthonykozar@sbcglobal.net>
-
- * opcodes/readk.xml: Minor correction.
-
-2008-02-03 10:15 Francois Pinot <francois.pinot@numericable.fr>
-
- * command/flagscategory.xml: Minor fix
-
-2008-02-03 08:10 Francois Pinot <francois.pinot@numericable.fr>
-
- * overview/recentdev.xml: Minor fix
-
-2008-02-02 16:26 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/xadsr.xml: Minor fix
-
-2008-02-02 16:16 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/partikkel.xml: Typos
-
-2008-02-02 11:27 Andrés Cabrera <mantaraya36@gmail.com>
-
- * ChangeLog: minor change
-
-2008-02-02 09:24 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/sndloop.xml: Fixed typo in sndloop
-
-2008-02-01 18:09 Andrés Cabrera <mantaraya36@gmail.com>
-
- * ChangeLog: Updated ChangeLog for release
-
-2008-02-01 17:44 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcode_list.txt, quickref.py: updated quickref
-
-2008-02-01 05:31 Anthony Kozar <anthonykozar@sbcglobal.net>
-
- * ChangeLog, manual.xml: Added entries for new opcodes for 5.08,
- etc.
- * opcodes/top.xml, scoregens/top.xml, opcodes/phasor.xml,
- math/opeqfunc.xml, math/mathfunc.xml, sigmod/top.xml,
- siggen/phasors.xml, examples/chebyshevpoly.csd,
- opcodes/chebyshevpoly.xml, examples/leftbrace.csd,
- scoregens/leftbrace.xml, examples/pdclip.csd, opcodes/pdclip.xml,
- examples/pdhalf.csd, images/pdhalf.png, opcodes/pdhalf.xml,
- examples/pdhalfy.csd, images/pdhalfy.png, opcodes/pdhalfy.xml,
- examples/polynomial.csd, opcodes/polynomial.xml,
- examples/powershape.csd, opcodes/powershape.xml,
- scoregens/rightbrace.xml, examples/syncphasor.csd,
- opcodes/syncphasor.xml, sigmod/wavshape.xml: Added entries for new
- opcodes for 5.08 plus new documentation for the
- { and } score statements. Also, new section "Signal Modifiers -
- Waveshaping and Phase Distortion".
- * scoregens/: e.xml, s.xml: Fixed info about p1 time.
- * score/ramp.xml: Removed obsolete note about { and } for expon
- ramp.
- * score/eval.xml: Documented the &, |, #, and ~ score expression
- operators.
-
-2008-02-01 01:00 jpff <jpff@codemist.co.uk>
-
- * preface/whatsnew.xml: balance tags
-
-2008-01-31 17:59 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/xadsr.xml: minor fix
- * opcodes/hrtfstat.xml: change to fix quickref generation
- * preface/whatsnew.xml: small corrections
- * opcodes/hrtfstat.xml: small reorganization
- * sigmod/panspatl.xml: minor change
- * command/: flags.xml, unifile.xml: small fixes
- * opcodes/: hrtfer.xml, hrtfmove.xml, hrtfmove2.xml, hrtfstat.xml:
- Added See Also sections
- * Makefile, manual.xml: Updated version number to 5.08 and changed
- names for hrtfmove filenames and other fixes
- * preface/whatsnew.xml: Updated what's new section
- * examples/hrtfmov.csd, examples/hrtfmove.csd,
- examples/hrtfmove2.csd, examples-xml/hrtfmov.csd.xml,
- examples-xml/hrtfmove.csd.xml, examples-xml/hrtfmove2.csd.xml,
- examples-xml/hrtfstat.csd.xml, opcodes/hrtfmov.xml,
- opcodes/hrtfmov2.xml, opcodes/hrtfmove.xml,
- opcodes/hrtfmove2.xml: changed names for hrtfmove filenames and
- other fixes
-
-2008-01-31 04:44 jpff <jpff@codemist.co.uk>
-
- * opcodes/hrtfstat.xml: examples of hrtfmov
- * Makefile, examples/hrtfmov.csd, examples-xml/hrtfmov.csd.xml,
- opcodes/hrtfmov.xml, opcodes/hrtfstat.xml: examples of hrtfmov
- * ChangeLog, examples/hrtfstat.csd,
- examples-xml/hrtferstat.csd.xml, opcodes/hrtfstat.xml,
- sigmod/panspatl.xml: example pf hrtfstat
- * sigmod/panspatl.xml: Added pan2 to list
-
-2008-01-30 12:22 Victor Lazzarini <victor.lazzarini@nuim.ie>
-
- * manual.xml, opcodes/hrtfmov.xml, opcodes/hrtfmov2.xml,
- opcodes/hrtfstat.xml, opcodes/top.xml, sigmod/panspatl.xml: added
- new hrtf opcodes docs
-
-2008-01-30 00:44 jpff <jpff@codemist.co.uk>
-
- * command/flags.xml: typo
-
-2008-01-29 19:43 Andrés Cabrera <mantaraya36@gmail.com>
-
- * command/: flags.xml, flagscategory.xml: Minor fixes
- * opcodes/readk.xml, opcodes/readk2.xml, opcodes/readk3.xml,
- opcodes/readk4.xml, preface/copy.xml: Fixed typos
-
-2008-01-29 17:02 jpff <jpff@codemist.co.uk>
-
- * command/flags.xml, overview/design.xml, overview/recentdev.xml:
- various
- * ChangeLog, opcodes/readk.xml, opcodes/readk2.xml,
- opcodes/readk3.xml, opcodes/readk4.xml, preface/copy.xml: fix
- errors -- not allowed in comments, apparent.y
- * preface/copy.xml: Close <title> and open para on line 42
-
-2008-01-29 01:25 Anthony Kozar <anthonykozar@sbcglobal.net>
-
- * ChangeLog: Documenting new features and some corrections.
- * command/unifile.xml: Corrections and documented <CsLicence> tag.
- * command/: flags.xml, flagscategory.xml: Added new --csd-line-nums
- and --syntax-check-only flags.
- * score/preproc.xml: Fixed ^+ info and added ! no-carry info.
-
-2008-01-28 21:56 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/opcode.xml: Added string in type
- * command/: flags.xml, flagscategory.xml: added null option for -O
- and --logfile
- * siggen/sample.xml: Minor change
- * opcodes/pyexec.xml, opcodes/pyinit.xml, opcodes/pyrun.xml,
- overview/building.xml, overview/configuring.xml,
- overview/frontends.xml, overview/introduction.xml,
- overview/recentdev.xml, preface/copy.xml, spectral/loris.xml:
- Changed references to CsoundVST to CsoundAC and removed some VST
- text
- * opcodes/: readk.xml, readk2.xml, readk3.xml, readk4.xml: Removed
- unused interp argument
-
-2008-01-28 16:44 Anthony Kozar <anthonykozar@sbcglobal.net>
-
- * ChangeLog, opcodes/readk.xml, opcodes/readk2.xml,
- opcodes/readk3.xml, opcodes/readk4.xml: Further corrections to
- readk* entries.
-
-2008-01-28 12:20 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/vmap.xml: Small clarification
-
-2008-01-28 05:41 brandtsegg
-
- * opcodes/partikkel.xml: Changed wording for imax_grains in the
- partikkel manpage
- * opcodes/partikkel.xml: small changes to partikkel manpage, and
- replaced one example, and revised one example
- * examples-xml/: PartikkelExample1.csd.xml,
- partikkel_softsync.csd.xml: Revised example and new example
- * examples/PartikkelExample1.csd: New partikkel example
- * examples/partikkel_softsync.csd: Revised example
-
-2008-01-27 10:58 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/dumpk.csd, examples/fibonacci.txt, examples/readk.csd,
- examples-xml/dumpk.csd.xml, examples-xml/readk.csd.xml,
- opcodes/dumpk.xml, opcodes/dumpk2.xml, opcodes/dumpk3.xml,
- opcodes/dumpk4.xml, opcodes/mpulse.xml, opcodes/readk.xml,
- opcodes/readk2.xml, opcodes/readk3.xml, opcodes/readk4.xml:
- Corrected dumpk/readk entries, added better example
-
-2008-01-26 11:51 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/diskin2.csd, examples/fox.wav, examples/loscil.csd,
- examples/loscil3.csd, examples/vcopy.csd, examples/vmult.csd,
- examples/vtablewk.csd, examples-xml/diskin2.csd.xml,
- examples-xml/loscil.csd.xml, examples-xml/loscil3.csd.xml,
- examples-xml/vcopy.csd.xml, examples-xml/vmult.csd.xml,
- examples-xml/vtablewa.csd.xml, examples-xml/vtablewk.csd.xml,
- misc/glossary.xml, misc/quickref.xml, opcodes/babo.xml,
- opcodes/bbcutm.xml, opcodes/cross2.xml, opcodes/dam.xml,
- opcodes/dcblock.xml, opcodes/diskin.xml, opcodes/dispfft.xml,
- opcodes/flanger.xml, opcodes/flbutton.xml, opcodes/follow.xml,
- opcodes/follow2.xml, opcodes/hrtfer.xml, opcodes/loscil.xml,
- opcodes/loscil3.xml, opcodes/lowres.xml, opcodes/lowresx.xml,
- opcodes/nestedap.xml, opcodes/nreverb.xml, opcodes/peak.xml,
- opcodes/resony.xml, opcodes/soundin.xml, opcodes/tempest.xml,
- opcodes/vlowres.xml, opcodes/waveset.xml, preface/whatsnew.xml,
- examples/beats.aiff: Removed beats.aiff file (there is an
- identical file called beats.wav) and added fox.wav
- * stylesheets/common/: af.xml, ar.xml, autoidx-ng.xsl, ChangeLog,
- bg.xml, bn.xml, bs.xml, ca.xml, common.xsl, cs.xml, da.xml,
- de.xml, el.xml, en.xml, es.xml, et.xml, eu.xml, fi.xml, fr.xml,
- gentext.xsl, he.xml, hr.xml, hu.xml, id.xml, it.xml, ja.xml,
- ko.xml, l10n.dtd, l10n.xml, l10n.xsl, la.xml, labels.xsl, lt.xml,
- nl.xml, nn.xml, no.xml, olink.xsl, pi.xsl, pl.xml, pt.xml,
- pt_br.xml, ro.xml, ru.xml, sk.xml, sl.xml, sr.xml, sr_Latn.xml,
- subtitles.xsl, sv.xml, table.xsl, targetdatabase.dtd,
- targets.xsl, th.xml, titles.xsl, tr.xml, uk.xml, vi.xml, xh.xml,
- zh_cn.xml, zh_tw.xml: Removde old stylesheets
- * stylesheets/: customHTMLHelp.xsl, customPDF.xsl,
- customXHTMLOneChunk.xsl, customXHTMLchunk.xsl, VERSION: Removde
- old stylesheets
-
-2008-01-25 07:59 jpff <jpff@codemist.co.uk>
-
- * opcodes/: betarand.xml, birnd.xml, butterbp.xml, butterbr.xml,
- butterhp.xml, butterlp.xml, cauchy.xml, dam.xml,
- fluidControl.xml, fluidLoad.xml, fluidOut.xml, gauss.xml,
- harmon.xml, harmon234.xml, in.xml, log.xml, out.xml, outo.xml,
- outz.xml: more version numbers
-
-2008-01-25 06:32 Victor Lazzarini <victor.lazzarini@nuim.ie>
-
- * examples/hilbert.csd, examples-xml/hilbert.csd.xml: fixed hilbert
- example in the manual
-
-2008-01-24 06:50 jpff <jpff@codemist.co.uk>
-
- * opcodes/: chani.xml, chano.xml, tableigpw.xml, tableikt.xml,
- tableimix.xml, tableiw.xml, tablekt.xml, tablemix.xml, timek.xml:
- More version numbers
- * opcodes/: binit.xml, strcatk.xml, tablecopy.xml, tablegpw.xml,
- tableicopy.xml, trcross.xml, trfilter.xml, trhighest.xml,
- trlowest.xml, trmix.xml, trscale.xml, trshift.xml, trsplit.xml,
- turnoff2.xml: more version numbers
-
-2008-01-23 16:53 jpff <jpff@codemist.co.uk>
-
- * opcodes/: getcfg.xml, strcat.xml, strchark.xml, strindex.xml,
- strindexk.xml, strlen.xml, strlenk.xml, strlower.xml,
- strlowerk.xml, strrindex.xml, strrindexk.xml, strupper.xml,
- strupperk.xml: more version numbers
- * opcodes/: filter2.xml, kfilter2.xml, lpslot.xml, repluck.xml,
- wgpluck.xml: more version numbers
- * opcodes/: bformdec.xml, bformenc.xml, diskin.xml, diskin2.xml,
- zfilter2.xml: more version numbers
-
-2008-01-22 20:54 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/fof.xml: Added csound version number, provided by Rasmus
- Ekman
- * opcodes/: convolve.xml, granule.xml: Added csound version number,
- provided by Rasmus Ekman
-
-2008-01-22 17:19 jpff <jpff@codemist.co.uk>
-
- * opcodes/: nlfilt.xml, pvread.xml, system.xml, tableseg.xml,
- vpvoc.xml: more version numbers
- * opcodes/: 0dbfs.xml, compress.xml, cosinv.xml, outh.xml,
- pvcross.xml, sininv.xml, taninv.xml, xscans.xml, xscanu.xml: More
- version numbers
- * opcodes/: adsr.xml, agogobel.xml, cosh.xml, fof2.xml, log10.xml,
- loop_ge.xml, loop_gt.xml, loop_le.xml, loop_lt.xml, mpulse.xml,
- sinh.xml, tan.xml, tanh.xml, vbap4.xml, zacl.xml, zakinit.xml,
- zamod.xml, zar.xml, zarg.xml, zaw.xml, zawm.xml, zir.xml,
- ziw.xml, ziwm.xml, zkcl.xml, zkmod.xml, zkr.xml, zkw.xml,
- zkwm.xml: added versions
-
-2008-01-22 02:02 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/zkwm.xml: Minor fix
-
-2008-01-06 11:55 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/pvsarp.csd, examples-xml/pvsarp.csd.xml,
- opcodes/butterbp.xml, opcodes/hilbert.xml, opcodes/pvsarp.xml,
- overview/building.xml, preface/whatsnew.xml: Moved pvsarp example
- to its own file, created what's new for 5.08 and other small
- fixes
- * manual.xml, quickref.py, imageopcodes/top.xml,
- opcodes/imagecreate.xml, opcodes/imagefree.xml,
- opcodes/imagegetpixel.xml, opcodes/imageload.xml,
- opcodes/imagesave.xml, opcodes/imagesetpixel.xml,
- opcodes/imagesize.xml: Integrated image opcodes into manual and
- quickref
- * Makefile, readme.txt, command/desc.xml, command/flags.xml,
- utility/atsa.xml, utility/cvanal.xml, utility/hetro.xml,
- utility/lpanal.xml, utility/pvanal.xml, utility/pvlook.xml,
- utility/sndinfo.xml: Updated stylesheets version and added
- manpages target to build man pages for the csound command and the
- utilities
- * docbook-xsl-1.73.2/: htmlhelp/htmlhelp-common.xsl,
- htmlhelp/htmlhelp.xsl, htmlhelp/profile-htmlhelp-common.xsl,
- htmlhelp/profile-htmlhelp.xsl, lib/lib.xsl,
- manpages/ChangeLog.20020917, manpages/block.xsl,
- manpages/charmap.groff.xsl, manpages/docbook.xsl,
- manpages/endnotes.xsl, manpages/html-synop.xsl,
- manpages/info.xsl, manpages/inline.xsl, manpages/lists.xsl,
- manpages/other.xsl, manpages/param.xml, manpages/param.xsl,
- manpages/profile-docbook.xsl, manpages/refentry.xsl,
- manpages/synop.xsl, manpages/table.xsl, manpages/utility.xsl,
- params/abstract.notitle.enabled.xml,
- params/abstract.properties.xml,
- params/abstract.title.properties.xml, params/active.toc.xml,
- params/admon.graphics.extension.xml,
- params/admon.graphics.path.xml, params/admon.graphics.xml,
- params/admon.style.xml, params/admon.textlabel.xml,
- params/admonition.properties.xml,
- params/admonition.title.properties.xml, params/alignment.xml,
- params/annotate.toc.xml, params/annotation.css.xml,
- params/annotation.graphic.close.xml,
- params/annotation.graphic.open.xml, params/annotation.js.xml,
- params/annotation.support.xml, params/appendix.autolabel.xml,
- params/arbortext.extensions.xml,
- params/article.appendix.title.properties.xml,
- params/author.othername.in.middle.xml,
- params/autolayout-file.xml,
- params/autotoc.label.in.hyperlink.xml,
- params/autotoc.label.separator.xml, params/axf.extensions.xml,
- params/banner.before.navigation.xml, params/base.dir.xml,
- params/biblioentry.item.separator.xml,
- params/biblioentry.properties.xml,
- params/bibliography.collection.xml,
- params/bibliography.numbered.xml, params/bibliography.style.xml,
- params/blockquote.properties.xml,
- params/blurb.on.titlepage.enabled.xml,
- params/body.attributes.xml, params/body.bg.color.xml,
- params/body.end.indent.xml, params/body.font.family.xml,
- params/body.font.master.xml, params/body.font.size.xml,
- params/body.margin.bottom.xml, params/body.margin.top.xml,
- params/body.start.indent.xml, params/bridgehead.in.toc.xml,
- params/bullet.image.xml, params/callout.defaultcolumn.xml,
- params/callout.graphics.extension.xml,
- params/callout.graphics.number.limit.xml,
- params/callout.graphics.path.xml, params/callout.graphics.xml,
- params/callout.icon.size.xml, params/callout.list.table.xml,
- params/callout.unicode.font.xml,
- params/callout.unicode.number.limit.xml,
- params/callout.unicode.start.character.xml,
- params/callout.unicode.xml, params/callouts.extension.xml,
- params/chapter.autolabel.xml, params/chunk.append.xml,
- params/chunk.first.sections.xml, params/chunk.quietly.xml,
- params/chunk.section.depth.xml, params/chunk.sections.xml,
- params/chunk.separate.lots.xml, params/chunk.toc.xml,
- params/chunk.tocs.and.lots.has.title.xml,
- params/chunk.tocs.and.lots.xml,
- params/chunker.output.cdata-section-elements.xml,
- params/chunker.output.doctype-public.xml,
- params/chunker.output.doctype-system.xml,
- params/chunker.output.encoding.xml,
- params/chunker.output.indent.xml,
- params/chunker.output.media-type.xml,
- params/chunker.output.method.xml,
- params/chunker.output.omit-xml-declaration.xml,
- params/chunker.output.standalone.xml,
- params/citerefentry.link.xml, params/collect.xref.targets.xml,
- params/column.count.back.xml, params/column.count.body.xml,
- params/column.count.front.xml, params/column.count.index.xml,
- params/column.count.lot.xml, params/column.count.titlepage.xml,
- params/column.gap.back.xml, params/column.gap.body.xml,
- params/column.gap.front.xml, params/column.gap.index.xml,
- params/column.gap.lot.xml, params/column.gap.titlepage.xml,
- params/compact.list.item.spacing.xml,
- params/component.label.includes.part.label.xml,
- params/component.title.properties.xml,
- params/component.titlepage.properties.xml,
- params/contrib.inline.enabled.xml, params/crop.mark.bleed.xml,
- params/crop.mark.offset.xml, params/crop.mark.width.xml,
- params/crop.marks.xml, params/css.decoration.xml,
- params/css.stylesheet.dir.xml, params/css.stylesheet.xml,
- params/current.docid.xml, params/currentpage.marker.xml,
- params/default.float.class.xml, params/default.image.width.xml,
- params/default.table.frame.xml, params/default.table.width.xml,
- params/default.units.xml, params/dingbat.font.family.xml,
- params/double.sided.xml, params/draft.mode.xml,
- params/draft.watermark.image.xml, params/dry-run.xml,
- params/dynamic.toc.xml, params/ebnf.assignment.xml,
- params/ebnf.statement.terminator.xml,
- params/ebnf.table.bgcolor.xml, params/ebnf.table.border.xml,
- params/eclipse.autolabel.xml, params/eclipse.plugin.id.xml,
- params/eclipse.plugin.name.xml,
- params/eclipse.plugin.provider.xml, params/editedby.enabled.xml,
- params/email.delimiters.enabled.xml,
- params/emphasis.propagates.style.xml,
- params/entry.propagates.style.xml,
- params/equation.properties.xml, params/example.properties.xml,
- params/feedback.href.xml, params/feedback.link.text.xml,
- params/feedback.with.ids.xml, params/figure.properties.xml,
- params/filename-prefix.xml, params/firstterm.only.link.xml,
- params/foil.properties.xml, params/foil.subtitle.properties.xml,
- params/foil.title.master.xml, params/foil.title.size.xml,
- params/foilgroup.properties.xml, params/foilgroup.toc.xml,
- params/footer.column.widths.xml,
- params/footer.content.properties.xml, params/footer.hr.xml,
- params/footer.rule.xml, params/footer.table.height.xml,
- params/footer.table.properties.xml,
- params/footers.on.blank.pages.xml, params/footnote.font.size.xml,
- params/footnote.mark.properties.xml,
- params/footnote.number.format.xml,
- params/footnote.number.symbols.xml,
- params/footnote.properties.xml,
- params/footnote.sep.leader.properties.xml,
- params/fop1.extensions.xml, params/fop.extensions.xml,
- params/formal.object.properties.xml,
- params/formal.procedures.xml, params/formal.title.placement.xml,
- params/formal.title.properties.xml,
- params/funcsynopsis.decoration.xml,
- params/funcsynopsis.style.xml,
- params/funcsynopsis.tabular.threshold.xml,
- params/function.parens.xml, params/generate.id.attributes.xml,
- params/generate.index.xml, params/generate.legalnotice.link.xml,
- params/generate.manifest.xml, params/generate.meta.abstract.xml,
- params/generate.revhistory.link.xml,
- params/generate.section.toc.level.xml, params/generate.toc.xml,
- params/glossary.as.blocks.xml, params/glossary.collection.xml,
- params/glossary.sort.xml, params/glossentry.show.acronym.xml,
- params/glosslist.as.blocks.xml, params/glossterm.auto.link.xml,
- params/glossterm.separation.xml, params/glossterm.width.xml,
- params/graphic.default.extension.xml,
- params/graphical.admonition.properties.xml,
- params/graphics.dir.xml, params/graphicsize.extension.xml,
- params/graphicsize.use.img.src.path.xml,
- params/header.column.widths.xml,
- params/header.content.properties.xml, params/header.hr.xml,
- params/header.rule.xml, params/header.table.height.xml,
- params/header.table.properties.xml,
- params/headers.on.blank.pages.xml, params/hidetoc.image.xml,
- params/highlight.default.language.xml,
- params/highlight.source.xml, params/home.image.xml,
- params/html.append.xml, params/html.base.xml,
- params/html.cellpadding.xml, params/html.cellspacing.xml,
- params/html.cleanup.xml, params/html.ext.xml,
- params/html.extra.head.links.xml,
- params/html.head.legalnotice.link.multiple.xml,
- params/html.head.legalnotice.link.types.xml,
- params/htmlhelp.alias.file.xml, params/htmlhelp.autolabel.xml,
- params/htmlhelp.button.back.xml,
- params/htmlhelp.button.forward.xml,
- params/htmlhelp.button.hideshow.xml,
- params/htmlhelp.button.home.url.xml,
- params/htmlhelp.button.home.xml,
- params/htmlhelp.button.jump1.title.xml,
- params/htmlhelp.button.jump1.url.xml,
- params/htmlhelp.button.jump1.xml,
- params/htmlhelp.button.jump2.title.xml,
- params/htmlhelp.button.jump2.url.xml,
- params/htmlhelp.button.jump2.xml,
- params/htmlhelp.button.locate.xml,
- params/htmlhelp.button.next.xml,
- params/htmlhelp.button.options.xml,
- params/htmlhelp.button.prev.xml,
- params/htmlhelp.button.print.xml,
- params/htmlhelp.button.refresh.xml,
- params/htmlhelp.button.stop.xml, params/htmlhelp.button.zoom.xml,
- params/htmlhelp.chm.xml, params/htmlhelp.default.topic.xml,
- params/htmlhelp.display.progress.xml,
- params/htmlhelp.encoding.xml,
- params/htmlhelp.enhanced.decompilation.xml,
- params/htmlhelp.enumerate.images.xml,
- params/htmlhelp.force.map.and.alias.xml,
- params/html.longdesc.link.xml, params/html.longdesc.xml,
- params/html.stylesheet.type.xml, params/html.stylesheet.xml,
- params/htmlhelp.hhc.binary.xml,
- params/htmlhelp.hhc.folders.instead.books.xml,
- params/htmlhelp.hhc.section.depth.xml,
- params/htmlhelp.hhc.show.root.xml, params/htmlhelp.hhc.width.xml,
- params/htmlhelp.hhc.xml, params/htmlhelp.hhk.xml,
- params/htmlhelp.hhp.tail.xml, params/htmlhelp.hhp.window.xml,
- params/htmlhelp.hhp.windows.xml, params/htmlhelp.hhp.xml,
- params/htmlhelp.map.file.xml, params/htmlhelp.only.xml,
- params/htmlhelp.remember.window.position.xml,
- params/htmlhelp.show.advanced.search.xml,
- params/htmlhelp.show.favorities.xml,
- params/htmlhelp.show.menu.xml,
- params/htmlhelp.show.toolbar.text.xml, params/htmlhelp.title.xml,
- params/htmlhelp.use.hhk.xml, params/htmlhelp.window.geometry.xml,
- params/hyphenate.verbatim.characters.xml,
- params/hyphenate.verbatim.xml, params/hyphenate.xml,
- params/id.warnings.xml, params/ignore.image.scaling.xml,
- params/img.src.path.xml, params/index.div.title.properties.xml,
- params/index.entry.properties.xml, params/index.method.xml,
- params/index.number.separator.xml, params/index.on.role.xml,
- params/index.on.type.xml,
- params/index.page.number.properties.xml,
- params/index.prefer.titleabbrev.xml,
- params/index.preferred.page.properties.xml,
- params/index.range.separator.xml,
- params/index.term.separator.xml,
- params/informal.object.properties.xml,
- params/informalequation.properties.xml,
- params/informalexample.properties.xml,
- params/informalfigure.properties.xml,
- params/informaltable.properties.xml, params/inherit.keywords.xml,
- params/insert.link.page.number.xml,
- params/insert.olink.page.number.xml,
- params/insert.olink.pdf.frag.xml,
- params/insert.xref.page.number.xml,
- params/itemizedlist.label.properties.xml,
- params/itemizedlist.label.width.xml,
- params/itemizedlist.properties.xml, params/javahelp.encoding.xml,
- params/keep.relative.image.uris.xml, params/keyboard.nav.xml,
- params/l10n.gentext.default.language.xml,
- params/l10n.gentext.language.xml,
- params/l10n.gentext.use.xref.language.xml,
- params/l10n.lang.value.rfc.compliant.xml,
- params/label.from.part.xml, params/line-height.xml,
- params/linenumbering.everyNth.xml,
- params/linenumbering.extension.xml,
- params/linenumbering.separator.xml,
- params/linenumbering.width.xml, params/link.mailto.url.xml,
- params/list.block.properties.xml, params/list.block.spacing.xml,
- params/list.item.spacing.xml, params/make.graphic.viewport.xml,
- params/make.index.markup.xml, params/make.single.year.ranges.xml,
- params/make.valid.html.xml, params/make.year.ranges.xml,
- params/man.authors.section.enabled.xml,
- params/man.break.after.slash.xml, params/man.charmap.enabled.xml,
- params/man.charmap.subset.profile.xml,
- params/man.charmap.uri.xml, params/man.charmap.use.subset.xml,
- params/man.copyright.section.enabled.xml,
- params/man.endnotes.are.numbered.xml,
- params/man.endnotes.list.enabled.xml,
- params/man.endnotes.list.heading.xml,
- params/man.font.funcprototype.xml,
- params/man.font.funcsynopsisinfo.xml,
- params/man.font.table.headings.xml,
- params/man.font.table.title.xml,
- params/man.hyphenate.computer.inlines.xml,
- params/man.hyphenate.filenames.xml,
- params/man.hyphenate.urls.xml, params/man.hyphenate.xml,
- params/man.indent.blurbs.xml, params/man.indent.lists.xml,
- params/man.indent.refsect.xml, params/man.indent.verbatims.xml,
- params/man.indent.width.xml, params/man.justify.xml,
- params/man.links.are.underlined.xml,
- params/man.output.base.dir.xml, params/man.output.encoding.xml,
- params/man.output.in.separate.dir.xml,
- params/man.output.lang.in.name.enabled.xml,
- params/man.output.manifest.enabled.xml,
- params/man.output.manifest.filename.xml,
- params/man.output.quietly.xml,
- params/man.output.subdirs.enabled.xml,
- params/man.segtitle.suppress.xml,
- params/manifest.in.base.dir.xml, params/manifest.xml,
- params/man.string.subst.map.local.post.xml,
- params/man.string.subst.map.local.pre.xml,
- params/man.string.subst.map.xml,
- params/man.subheading.divider.enabled.xml,
- params/man.subheading.divider.xml,
- params/man.table.footnotes.divider.xml,
- params/man.th.extra1.suppress.xml,
- params/man.th.extra2.max.length.xml,
- params/man.th.extra2.suppress.xml,
- params/man.th.extra3.max.length.xml,
- params/man.th.extra3.suppress.xml,
- params/man.th.title.max.length.xml, params/manual.toc.xml,
- params/margin.note.float.type.xml,
- params/margin.note.properties.xml,
- params/margin.note.title.properties.xml,
- params/margin.note.width.xml, params/marker.section.level.xml,
- params/menuchoice.menu.separator.xml,
- params/menuchoice.separator.xml, params/minus.image.xml,
- params/monospace.font.family.xml,
- params/monospace.properties.xml,
- params/monospace.verbatim.properties.xml,
- params/multiframe.bottom.bgcolor.xml,
- params/multiframe.navigation.height.xml,
- params/multiframe.top.bgcolor.xml, params/multiframe.xml,
- params/nav.separator.xml, params/nav.table.summary.xml,
- params/navbgcolor.xml, params/navbodywidth.xml,
- params/navig.graphics.extension.xml,
- params/navig.graphics.path.xml, params/navig.graphics.xml,
- params/navig.showtitles.xml, params/navtocwidth.xml,
- params/next.image.xml, params/no.home.image.xml,
- params/no.next.image.xml, params/no.prev.image.xml,
- params/no.toc.image.xml, params/no.up.image.xml,
- params/nominal.image.depth.xml, params/nominal.image.width.xml,
- params/nominal.table.width.xml,
- params/nongraphical.admonition.properties.xml,
- params/normal.para.spacing.xml, params/olink.base.uri.xml,
- params/olink.debug.xml, params/olink.doctitle.xml,
- params/olink.fragid.xml, params/olink.lang.fallback.sequence.xml,
- params/olink.outline.ext.xml, params/olink.properties.xml,
- params/olink.pubid.xml, params/olink.resolver.xml,
- params/olink.sysid.xml, params/orderedlist.label.properties.xml,
- params/orderedlist.label.width.xml,
- params/orderedlist.properties.xml,
- params/othercredit.like.author.enabled.xml,
- params/output-root.xml, params/output.indent.xml,
- params/overlay.js.xml, params/overlay.logo.xml,
- params/overlay.xml, params/page.height.portrait.xml,
- params/page.height.xml, params/page.margin.bottom.xml,
- params/page.margin.inner.xml, params/page.margin.outer.xml,
- params/page.margin.top.xml, params/page.orientation.xml,
- params/page.width.portrait.xml, params/pages.template.xml,
- params/page.width.xml, params/paper.type.xml,
- params/para.propagates.style.xml, params/part.autolabel.xml,
- params/passivetex.extensions.xml, params/pgwide.properties.xml,
- params/phrase.propagates.style.xml, params/pixels.per.inch.xml,
- params/plus.image.xml, params/points.per.em.xml,
- params/preface.autolabel.xml, params/prefer.internal.olink.xml,
- params/preferred.mediaobject.role.xml, params/prev.image.xml,
- params/procedure.properties.xml,
- params/process.empty.source.toc.xml,
- params/process.source.toc.xml, params/profile.arch.xml,
- params/profile.attribute.xml, params/profile.audience.xml,
- params/profile.condition.xml, params/profile.conformance.xml,
- params/profile.lang.xml, params/profile.os.xml,
- params/profile.revision.xml, params/profile.revisionflag.xml,
- params/profile.role.xml, params/profile.security.xml,
- params/profile.separator.xml, params/profile.status.xml,
- params/profile.userlevel.xml, params/profile.value.xml,
- params/profile.vendor.xml, params/profile.wordsize.xml,
- params/punct.honorific.xml, params/qanda.defaultlabel.xml,
- params/qanda.in.toc.xml, params/qanda.inherit.numeration.xml,
- params/qanda.nested.in.toc.xml,
- params/qanda.title.level1.properties.xml,
- params/qanda.title.level2.properties.xml,
- params/qanda.title.level3.properties.xml,
- params/qanda.title.level4.properties.xml,
- params/qanda.title.level5.properties.xml,
- params/qanda.title.level6.properties.xml,
- params/qanda.title.properties.xml, params/qandadiv.autolabel.xml,
- params/rebuild-all.xml, params/refclass.suppress.xml,
- params/refentry.date.profile.enabled.xml,
- params/refentry.date.profile.xml,
- params/refentry.generate.name.xml,
- params/refentry.generate.title.xml,
- params/refentry.manual.fallback.profile.xml,
- params/refentry.manual.profile.enabled.xml,
- params/refentry.manual.profile.xml,
- params/refentry.meta.get.quietly.xml,
- params/refentry.pagebreak.xml, params/refentry.separator.xml,
- params/refentry.source.fallback.profile.xml,
- params/refentry.source.name.profile.enabled.xml,
- params/refentry.source.name.profile.xml,
- params/refentry.source.name.suppress.xml,
- params/refentry.title.properties.xml,
- params/refentry.version.profile.enabled.xml,
- params/refentry.version.profile.xml,
- params/refentry.version.suppress.xml,
- params/refentry.xref.manvolnum.xml,
- params/reference.autolabel.xml, params/region.after.extent.xml,
- params/region.before.extent.xml,
- params/revhistory.table.cell.properties.xml,
- params/revhistory.table.properties.xml,
- params/revhistory.title.properties.xml, params/root.filename.xml,
- params/root.properties.xml, params/rootid.xml,
- params/runinhead.default.title.end.punct.xml,
- params/runinhead.title.end.punct.xml,
- params/running.foot.properties.xml, params/sans.font.family.xml,
- params/saxon.callouts.xml,
- params/saxon.character.representation.xml,
- params/saxon.linenumbering.xml, params/saxon.tablecolumns.xml,
- params/script.dir.xml, params/section.autolabel.max.depth.xml,
- params/section.autolabel.xml,
- params/section.container.element.xml,
- params/section.label.includes.component.label.xml,
- params/section.level1.properties.xml,
- params/section.level2.properties.xml,
- params/section.level3.properties.xml,
- params/section.level4.properties.xml,
- params/section.level5.properties.xml,
- params/section.level6.properties.xml,
- params/section.properties.xml,
- params/section.title.level1.properties.xml,
- params/section.title.level2.properties.xml,
- params/section.title.level3.properties.xml,
- params/section.title.level4.properties.xml,
- params/section.title.level5.properties.xml,
- params/section.title.level6.properties.xml,
- params/section.title.properties.xml,
- params/segmentedlist.as.table.xml, params/sequential.links.xml,
- params/shade.verbatim.style.xml, params/shade.verbatim.xml,
- params/show.comments.xml, params/show.foil.number.xml,
- params/show.revisionflag.xml, params/showtoc.image.xml,
- params/side.float.properties.xml, params/sidebar.float.type.xml,
- params/sidebar.float.width.xml, params/sidebar.properties.xml,
- params/sidebar.title.properties.xml,
- params/simplesect.in.toc.xml, params/slide.font.family.xml,
- params/slide.title.font.family.xml, params/slides.js.xml,
- params/slides.properties.xml, params/spacing.paras.xml,
- params/speakernote.properties.xml,
- params/subscript.properties.xml,
- params/superscript.properties.xml,
- params/suppress.footer.navigation.xml,
- params/suppress.header.navigation.xml,
- params/suppress.homepage.title.xml,
- params/suppress.navigation.xml, params/symbol.font.family.xml,
- params/table.borders.with.css.xml,
- params/table.cell.border.color.xml,
- params/table.cell.border.style.xml,
- params/table.cell.border.thickness.xml,
- params/table.cell.padding.xml, params/table.entry.padding.xml,
- params/table.footnote.number.format.xml,
- params/table.footnote.number.symbols.xml,
- params/table.footnote.properties.xml,
- params/table.frame.border.color.xml,
- params/table.frame.border.style.xml,
- params/table.frame.border.thickness.xml,
- params/table.properties.xml, params/table.spacer.image.xml,
- params/table.table.properties.xml,
- params/tablecolumns.extension.xml,
- params/target.database.document.xml, params/targets.filename.xml,
- params/template.xml, params/tex.math.delims.xml,
- params/tex.math.file.xml, params/tex.math.in.alt.xml,
- params/text.home.xml, params/text.next.xml, params/text.prev.xml,
- params/text.toc.xml, params/text.up.xml, params/textbgcolor.xml,
- params/textdata.default.encoding.xml,
- params/textinsert.extension.xml, params/title.font.family.xml,
- params/title.margin.left.xml, params/titlefoil.html.xml,
- params/toc.bg.color.xml, params/toc.blank.graphic.xml,
- params/toc.blank.image.xml, params/toc.blank.text.xml,
- params/toc.hide.show.xml, params/toc.html.xml,
- params/toc.image.xml, params/toc.indent.width.xml,
- params/toc.line.properties.xml, params/toc.list.type.xml,
- params/toc.margin.properties.xml, params/toc.max.depth.xml,
- params/toc.pointer.graphic.xml, params/toc.pointer.image.xml,
- params/toc.pointer.text.xml, params/toc.row.height.xml,
- params/toc.section.depth.xml, params/toc.spacer.graphic.xml,
- params/toc.spacer.image.xml, params/toc.spacer.text.xml,
- params/toc.width.xml, params/ua.js.xml,
- params/ulink.footnotes.xml, params/ulink.hyphenate.chars.xml,
- params/ulink.hyphenate.xml, params/ulink.show.xml,
- params/ulink.target.xml, params/up.image.xml,
- params/use.embed.for.svg.xml, params/use.extensions.xml,
- params/use.id.as.filename.xml, params/use.id.function.xml,
- params/use.local.olink.style.xml,
- params/use.role.as.xrefstyle.xml,
- params/use.role.for.mediaobject.xml, params/use.svg.xml,
- params/variablelist.as.blocks.xml,
- params/variablelist.as.table.xml,
- params/variablelist.max.termlength.xml,
- params/variablelist.term.break.after.xml,
- params/variablelist.term.separator.xml,
- params/verbatim.properties.xml, params/wordml.template.xml,
- params/xbCollapsibleLists.js.xml, params/xbDOM.js.xml,
- params/xbLibrary.js.xml, params/xbStyle.js.xml,
- params/xep.extensions.xml, params/xep.index.item.properties.xml,
- params/xref.label-page.separator.xml,
- params/xref.label-title.separator.xml,
- params/xref.properties.xml, params/xref.title-page.separator.xml,
- params/xref.with.number.and.title.xml,
- profiling/profile-mode.xsl, profiling/profile.xsl,
- profiling/strip-attributes.xsl, profiling/xsl2profile.xsl,
- roundtrip/blocks-spec.xml, roundtrip/blocks2dbk.dtd,
- roundtrip/blocks2dbk.xsl, roundtrip/dbk2ooo.xsl,
- roundtrip/dbk2pages.xsl, roundtrip/dbk2wordml.xsl,
- roundtrip/dbk2wp.xsl, roundtrip/docbook-pages.xsl,
- roundtrip/docbook.xsl, roundtrip/normalise2sections.xsl,
- roundtrip/pages-normalise.xsl, roundtrip/pages2normalise.xsl,
- roundtrip/param.xml, roundtrip/param.xsl,
- roundtrip/sections-spec.xml, roundtrip/sections2blocks.xsl,
- roundtrip/specifications.xml, roundtrip/supported.xml,
- roundtrip/template-pages.xml, roundtrip/template.dot,
- roundtrip/template.xml, roundtrip/wordml-blocks.xsl,
- roundtrip/wordml-final.xsl, roundtrip/wordml-normalise.xsl,
- roundtrip/wordml-sections.xsl, roundtrip/wordml.xsl,
- roundtrip/wordml2normalise.xsl: Updated stylesheets version and
- added manpages target to build man pages for the csound command
- and the utilities
- * docbook-xsl-1.73.2/: common/af.xml, common/am.xml, common/ar.xml,
- common/autoidx-kimber.xsl, common/autoidx-kosek.xsl,
- common/az.xml, common/bg.xml, common/bn.xml, common/bs.xml,
- common/ca.xml, common/charmap.xml, common/charmap.xsl,
- common/common.xml, common/common.xsl, common/cs.xml,
- common/cy.xml, common/da.xml, common/de.xml, common/el.xml,
- common/en.xml, common/entities.ent, common/eo.xml, common/es.xml,
- common/et.xml, common/eu.xml, common/fa.xml, common/fi.xml,
- common/fr.xml, common/ga.xml, common/gentext.xsl, common/gu.xml,
- common/he.xml, common/hi.xml, common/hr.xml, common/hu.xml,
- common/id.xml, common/insertfile.xsl, common/it.xml,
- common/ja.xml, common/kn.xml, common/ko.xml, common/l10n.dtd,
- common/l10n.xml, common/l10n.xsl, common/la.xml,
- common/labels.xsl, common/lt.xml, common/lv.xml, common/mn.xml,
- common/nl.xml, common/nn.xml, common/no.xml, common/olink.xsl,
- common/or.xml, common/pa.xml, common/pi.xml, common/pi.xsl,
- common/pl.xml, common/pt.xml, common/pt_br.xml,
- common/refentry.xml, common/refentry.xsl, common/ro.xml,
- common/ru.xml, common/sk.xml, common/sl.xml, common/sq.xml,
- common/sr.xml, common/sr_Latn.xml, common/stripns.xsl,
- common/subtitles.xsl, common/sv.xml, common/ta.xml,
- common/table.xsl, common/targetdatabase.dtd, common/targets.xsl,
- common/th.xml, common/titles.xsl, common/tl.xml, common/tr.xml,
- common/uk.xml, common/utility.xml, common/utility.xsl,
- common/vi.xml, common/xh.xml, common/zh_cn.xml, common/zh_tw.xml,
- highlighting/c-hl.xml, highlighting/common.xsl,
- highlighting/delphi-hl.xml, highlighting/ini-hl.xml,
- highlighting/java-hl.xml, highlighting/m2-hl.xml,
- highlighting/myxml-hl.xml, highlighting/php-hl.xml,
- highlighting/xslthl-config.xml, html/admon.xsl,
- html/annotations.xsl, html/autoidx-kimber.xsl,
- html/autoidx-kosek.xsl, html/autoidx-ng.xsl, html/autoidx.xsl,
- html/autotoc.xsl, html/biblio-iso690.xsl, html/biblio.xsl,
- html/block.xsl, html/callout.xsl, html/changebars.xsl,
- html/chunk-code.xsl, html/chunk-common.xsl, html/chunk.xsl,
- html/chunker.xsl, html/chunkfast.xsl, html/chunktoc.xsl,
- html/component.xsl, html/division.xsl, html/docbook.xsl,
- html/ebnf.xsl, html/footnote.xsl, html/formal.xsl,
- html/glossary.xsl, html/graphics.xsl, html/highlight.xsl,
- html/html-rtf.xsl, html/htmltbl.xsl, html/html.xsl,
- html/index.xsl, html/info.xsl, html/inline.xsl,
- html/keywords.xsl, html/lists.xsl, html/maketoc.xsl,
- html/manifest.xsl, html/math.xsl, html/oldchunker.xsl,
- html/onechunk.xsl, html/param.xml, html/param.xsl, html/pi.xml,
- html/pi.xsl, html/profile-chunk-code.xsl, html/profile-chunk.xsl,
- html/profile-docbook.xsl, html/profile-onechunk.xsl,
- html/qandaset.xsl, html/refentry.xsl, html/sections.xsl,
- html/synop.xsl, html/table.xsl, html/task.xsl,
- html/titlepage.templates.xml, html/titlepage.templates.xsl,
- html/titlepage.xsl, html/toc.xsl, html/verbatim.xsl,
- html/xref.xsl: Updated stylesheets version and added manpages
- target to build man pages for the csound command and the
- utilities
-
-2008-01-05 23:14 Andrés Cabrera <mantaraya36@gmail.com>
-
- * manpages.xml, docbook-xsl-1.73.2/AUTHORS,
- docbook-xsl-1.73.2/BUGS, docbook-xsl-1.73.2/COPYING,
- docbook-xsl-1.73.2/VERSION, docbook-xsl-1.73.2/catalog.xml,
- docbook-xsl-1.73.2/customHTMLHelp.xsl,
- docbook-xsl-1.73.2/customPDF.xsl,
- docbook-xsl-1.73.2/customXHTMLOneChunk.xsl,
- docbook-xsl-1.73.2/customXHTMLchunk.xsl,
- docbook-xsl-1.73.2/xhtml/admon.xsl,
- docbook-xsl-1.73.2/xhtml/annotations.xsl,
- docbook-xsl-1.73.2/xhtml/autoidx-kimber.xsl,
- docbook-xsl-1.73.2/xhtml/autoidx-kosek.xsl,
- docbook-xsl-1.73.2/xhtml/autoidx-ng.xsl,
- docbook-xsl-1.73.2/xhtml/autoidx.xsl,
- docbook-xsl-1.73.2/xhtml/autotoc.xsl,
- docbook-xsl-1.73.2/xhtml/biblio-iso690.xsl,
- docbook-xsl-1.73.2/xhtml/biblio.xsl,
- docbook-xsl-1.73.2/xhtml/block.xsl,
- docbook-xsl-1.73.2/xhtml/callout.xsl,
- docbook-xsl-1.73.2/xhtml/changebars.xsl,
- docbook-xsl-1.73.2/xhtml/chunk-code.xsl,
- docbook-xsl-1.73.2/xhtml/chunk-common.xsl,
- docbook-xsl-1.73.2/xhtml/chunk.xsl,
- docbook-xsl-1.73.2/xhtml/chunker.xsl,
- docbook-xsl-1.73.2/xhtml/chunkfast.xsl,
- docbook-xsl-1.73.2/xhtml/chunktoc.xsl,
- docbook-xsl-1.73.2/xhtml/component.xsl,
- docbook-xsl-1.73.2/xhtml/division.xsl,
- docbook-xsl-1.73.2/xhtml/docbook.xsl,
- docbook-xsl-1.73.2/xhtml/ebnf.xsl,
- docbook-xsl-1.73.2/xhtml/footnote.xsl,
- docbook-xsl-1.73.2/xhtml/formal.xsl,
- docbook-xsl-1.73.2/xhtml/glossary.xsl,
- docbook-xsl-1.73.2/xhtml/graphics.xsl,
- docbook-xsl-1.73.2/xhtml/highlight.xsl,
- docbook-xsl-1.73.2/xhtml/html-rtf.xsl,
- docbook-xsl-1.73.2/xhtml/html.xsl,
- docbook-xsl-1.73.2/xhtml/htmltbl.xsl,
- docbook-xsl-1.73.2/xhtml/index.xsl,
- docbook-xsl-1.73.2/xhtml/info.xsl,
- docbook-xsl-1.73.2/xhtml/inline.xsl,
- docbook-xsl-1.73.2/xhtml/keywords.xsl,
- docbook-xsl-1.73.2/xhtml/lists.xsl,
- docbook-xsl-1.73.2/xhtml/maketoc.xsl,
- docbook-xsl-1.73.2/xhtml/manifest.xsl,
- docbook-xsl-1.73.2/xhtml/math.xsl,
- docbook-xsl-1.73.2/xhtml/oldchunker.xsl,
- docbook-xsl-1.73.2/xhtml/onechunk.xsl,
- docbook-xsl-1.73.2/xhtml/param.xsl,
- docbook-xsl-1.73.2/xhtml/pi.xsl,
- docbook-xsl-1.73.2/xhtml/profile-chunk-code.xsl,
- docbook-xsl-1.73.2/xhtml/profile-chunk.xsl,
- docbook-xsl-1.73.2/xhtml/profile-docbook.xsl,
- docbook-xsl-1.73.2/xhtml/profile-onechunk.xsl,
- docbook-xsl-1.73.2/xhtml/qandaset.xsl,
- docbook-xsl-1.73.2/xhtml/refentry.xsl,
- docbook-xsl-1.73.2/xhtml/sections.xsl,
- docbook-xsl-1.73.2/xhtml/synop.xsl,
- docbook-xsl-1.73.2/xhtml/table.xsl,
- docbook-xsl-1.73.2/xhtml/task.xsl,
- docbook-xsl-1.73.2/xhtml/titlepage.templates.xsl,
- docbook-xsl-1.73.2/xhtml/titlepage.xsl,
- docbook-xsl-1.73.2/xhtml/toc.xsl,
- docbook-xsl-1.73.2/xhtml/verbatim.xsl,
- docbook-xsl-1.73.2/xhtml/xref.xsl: Updated stylesheets version
- and added manpages target to build man pages for the csound
- command and the utilities
-
-2008-01-05 06:40 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: mxadsr.xml, xadsr.xml: Minor fix
- * opcodes/: envlpxr.xml, linenr.xml, madsr.xml: Minor fix
-
-2008-01-04 21:28 gogins
-
- * csound5/extending.xml: no message
-
-2008-01-04 06:25 jpff <jpff@codemist.co.uk>
-
- * opcodes/imagesize.xml: typo in imagesize
- * examples/imageopcodes.csd: image opcodes
- * examples-xml/imageopcodes.csd.xml, opcodes/top.xml: image opcodes
- * manual.xml, examples/imageopcodes.csd, opcodes/imagecreate.xml,
- opcodes/imagefree.xml, opcodes/imagegetpixel.xml,
- opcodes/imageload.xml, opcodes/imagesave.xml,
- opcodes/imagesetpixel.xml, opcodes/imagesize.xml,
- opcodes/top.xml: image opcodes
-
-2007-12-20 14:57 jpff <jpff@codemist.co.uk>
-
- * opcodes/: pvsbandp.xml, pvsbandr.xml: krate rolloff shape
-
-2007-12-19 02:05 jpff <jpff@codemist.co.uk>
-
- * opcodes/: pvsbandp.xml, pvsbandr.xml: added shape parameter to
- pvsbandp/r
- * opcodes/: pvsbandp.xml, pvsbandr.xml: added shape parameter to
- pvsbandp/r
-
-2007-12-15 08:07 jpff <jpff@codemist.co.uk>
-
- * ChangeLog, Makefile, manual.xml, opcodes/pvsbandp.xml,
- opcodes/pvsbandr.xml, opcodes/top.xml, spectral/realtime.xml:
- pvsband[pr].xml - Added new pvsbandp and pvsbandr opcodes
-
-2007-12-13 16:16 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/loopseg.xml, opcodes/loopsegp.xml, opcodes/lpshold.xml,
- opcodes/lpsholdp.xml, opcodes/rspline.xml, examples/scale.csd,
- examples-xml/scale.csd.xml: Minor fix
-
-2007-11-30 01:15 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: linseg.xml, linsegr.xml, logcurve.xml: Minor fix
- * examples-xml/logcurve.csd.xml: Minor fix
-
-2007-11-28 01:49 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: expon.xml, line.xml: Minor fix
-
-2007-11-14 15:42 jpff <jpff@codemist.co.uk>
-
- * opcodes/pvsarp.xml: pvsarp example did not work
-
-2007-11-04 05:28 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: cps2pch.xml, cpstun.xml, cpstuni.xml, cpsxpch.xml:
- Minor layout fix
-
-2007-11-03 15:25 Francois Pinot <francois.pinot@numericable.fr>
-
- * overview/building.xml: Typo
-
-2007-11-03 15:14 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/cpsmidinn.csd.xml: Minor fix
- * opcodes/: cent.xml, cpsoct.xml, cpspch.xml, octave.xml,
- octcps.xml, octmidinn.xml, octpch.xml, pchmidinn.xml, pchoct.xml,
- semitone.xml: Minor layout fix
-
-2007-11-01 19:01 gogins
-
- * overview/building.xml: no message
-
-2007-10-26 01:08 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: birnd.xml, rnd.xml, taninv2.xml: Minor layout fix
-
-2007-10-24 16:59 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: ampdb.xml, ampdbfs.xml, cos.xml, cosh.xml, cosinv.xml,
- db.xml, dbamp.xml, dbfsamp.xml, sin.xml, sinh.xml, sininv.xml,
- tan.xml, tanh.xml, taninv.xml: Minor layout fix
-
-2007-10-22 01:01 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: logbtwo.xml, powoftwo.xml: Minot layout fix
-
-2007-10-21 09:33 Francois Pinot <francois.pinot@numericable.fr>
-
- * misc/quickref.xml: Updated
- * opcodes/gainslider.xml: Typo
-
-2007-10-20 03:31 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/fluidEngine.xml: Typo
-
-2007-10-15 15:43 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/jspline.xml: Added some links
-
-2007-10-11 06:32 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/expcurve.xml, opcodes/expon.xml, opcodes/expseg.xml,
- opcodes/expsega.xml, opcodes/gainslider.xml,
- examples-xml/expcurve.csd.xml, examples-xml/gainslider.csd.xml:
- Minor fix
-
-2007-10-10 15:24 Francois Pinot <francois.pinot@numericable.fr>
-
- * stylesheets/customPDF.xsl: Improved quickref layout rules
-
-2007-10-09 15:00 Francois Pinot <francois.pinot@numericable.fr>
-
- * manual.xml, opcodes/syncloop.xml: Minor fix
-
-2007-10-08 14:16 Francois Pinot <francois.pinot@numericable.fr>
-
- * Makefile: VERSION variable fixed to 5.07
- * opcodes/syncloop.xml: Syntax highlighting and typos
-
-2007-10-08 09:09 Andrés Cabrera <mantaraya36@gmail.com>
-
- * preface/whatsnew.xml: Finished what's new
-
-2007-10-07 23:58 Andrés Cabrera <mantaraya36@gmail.com>
-
- * misc/quickref.xml: Updated quickref.xml for release
- * ChangeLog, manual.xml, preface/whatsnew.xml: Bumped version to
- 5.07. Added what's new section for 5.07. Updated changelog from
- cvs (using cvs2cl)
-
-2007-10-06 06:13 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/syncgrain.xml: Syntax highlighting and typos
-
-2007-10-05 01:47 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: sndwarp.xml, sndwarpst.xml: Syntax highlighting and
- typos
-
-2007-10-04 22:56 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples-xml/cpsmidinn.csd.xml, opcodes/clear.xml,
- opcodes/cpsmidi.xml, opcodes/cpsmidinn.xml, opcodes/maca.xml,
- opcodes/pvsosc.xml, opcodes/vincr.xml, sigmod/compaccum.xml:
- Added Anthony Kozar's suggestions for accumulator opcodes, and a
- fixed syntax definition for pvsosc
-
-2007-10-03 23:34 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/partikkelsync.xml: Minor fix
- * opcodes/: partikkel.xml, partikkelsync.xml: Typos
-
-2007-10-02 23:51 Anthony Kozar <anthonykozar@sbcglobal.net>
-
- * opcodes/: db.xml, maxabsaccum.xml, maxaccum.xml, top.xml: Minor
- corrections.
- * opcodes/: mac.xml, maca.xml: Changed Quick Ref group to
- "Mathematical Operations:Opcode Equivalents of Functions".
- * math/top.xml, sigmod/top.xml: Moved "Comparators and
- Accumulators" section from "Signal Modifiers" to "Mathematical
- Operations".
- * opcodes/: clear.xml, vincr.xml: Tried to generalize and clarify
- the discussion of these opcodes.
- * math/amp.xml, sigmod/compaccum.xml, math/opeqfunc.xml: Added more
- classifications for "mac", "maca", and "vincr". Reclassified "db"
- under "Amplitude Converters".
- * preface/acknowledgements.xml, credits.txt: Added some names
- (including my own) to the list of Csound contributors.
- * opcodes/: cpsmidi.xml, cpsoct.xml, cpspch.xml, octcps.xml,
- octmidi.xml, octpch.xml, pchmidi.xml, pchoct.xml: Added
- information about and references new *midinn opcodes. Expanded
- note about cps conversion table and its tuning issues.
- * ChangeLog, pitch/funcs.xml, manual.xml, examples/cpsmidinn.csd,
- opcodes/cpsmidinn.xml, opcodes/octmidinn.xml,
- opcodes/pchmidinn.xml: Added new opcode entries.
-
-2007-09-30 12:15 jpff <jpff@codemist.co.uk>
-
- * ChangeLog, opcodes/pvscent.xml, opcodes/pvsmooth.xml: More typos
- in examples
- * ChangeLog, Makefile: another typo
-
-2007-09-30 09:25 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/pvsfilter.xml: Syntax highlighting
- * opcodes/pan2.xml: Syntax highlighting
-
-2007-09-30 07:55 jpff <jpff@codemist.co.uk>
-
- * ChangeLog, opcodes/pvsfilter.xml: fixed exampel error
-
-2007-09-30 02:18 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/diskgrain.csd.xml: Minor fix
-
-2007-09-29 06:08 jpff <jpff@codemist.co.uk>
-
- * manual.xml, opcodes/pan2.xml, opcodes/top.xml, Makefile: pan2
- opcode
-
-2007-09-28 01:26 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/granule.xml: Reorganized sections
-
-2007-09-26 21:37 Andrés Cabrera <mantaraya36@gmail.com>
-
- * csd2docbook2.py, opcode_list.txt: Added csd2docbook2.py script
- which is not dependent on the python csnd module, but on the
- opcode_list.txt text file
- * examples/virtual.csd, examples-xml/virtual.csd.xml,
- midi/virtual.xml: Added example for virtual keyboard
- * orch/macros.xml: Added note about command line macros
- * examples/strsub.csd, examples-xml/strsub.csd.xml,
- opcodes/strsub.xml: Added example by Jonathan Murphy
- * examples-xml/: dam.csd.xml, diskgrain.csd.xml, tempo.csd.xml,
- vbap8.csd.xml, vbap8move.csd.xml: Updated syntax highlight files
- * examples-xml/fout_ftable.csd.xml, opcodes/fout.xml: Corrected
- fout and added syntax highlight for its new example
- * examples/fout_ftable.csd, opcodes/fout.xml: Added example by
- Jonathan Murphy
- * opcodes/scoreline.xml: Added example suggestion by Joachim Heintz
- * examples/tempo.csd: Added changes suggested by Greg Thompson
- * opcodes/wguide2.xml: Added feedback note by Steven Yi
-
-2007-09-21 00:03 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/grain3.xml: Minor fixes
-
-2007-09-19 00:02 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/grain2.xml: Deleted diagram pasted from grain3
-
-2007-09-18 23:27 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/grain2.xml: Minor fixes
-
-2007-09-16 23:05 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/tone.xml: Minor fix
- * opcodes/aresonk.xml: Minor fix
-
-2007-09-12 00:45 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/aftouch.xml: Minor fix
-
-2007-09-11 14:47 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/round.xml: Minor fix
- * opcodes/: assign.xml, divz.xml: Minor layout fix
-
-2007-09-10 13:12 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: equals.xml, greaterequal.xml, greaterthan.xml,
- lessequal.xml, lessthan.xml, notequal.xml: Minor fixes
- * opcodes/: adds.xml, divides.xml, multiplies.xml, pow.xml,
- raises.xml, subtracts.xml: Minor layout fix
-
-2007-09-09 15:38 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: adds.xml, divides.xml, multiplies.xml, opor.xml,
- raises.xml, subtracts.xml: Typo
-
-2007-09-06 11:19 Francois Pinot <francois.pinot@numericable.fr>
-
- * quickref.py, misc/quickref.xml: Bug fix (Spectral Processing
- opcodes display)
-
-2007-09-05 02:03 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/: vbap8.csd.xml, vbap8move.csd.xml: Initial commit
- * examples/vbap8move.csd: Added closing tag
- * opcodes/vbap8move.xml: Minor fix
-
-2007-09-04 15:34 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/dam.csd.xml: Updated
- * examples/dam.csd: minor fix
-
-2007-09-04 10:53 jpff <jpff@codemist.co.uk>
-
- * opcodes/sflooper.xml: fix typo
- * opcodes/: pvsfilter.xml, pvsfreeze.xml, pvsinfo.xml,
- pvsmooth.xml: remove false fin variables
- * opcodes/: pvsfilter.xml, pvsfreeze.xml, pvsmooth.xml: remove
- false fout variables
-
-2007-09-04 09:44 Victor Lazzarini <victor.lazzarini@nuim.ie>
-
- * manual.xml, opcodes/top.xml, siggen/sample.xml,
- spectral/realtime.xml: added pvsbuffer, pvsbufread and sflooper
- links
-
-2007-09-03 17:20 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/vbap8.csd: Changed channels to 8
- * scoregens/top.xml: Added note about f statement and negative
- fgens.
-
-2007-08-28 21:54 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/vbap4move.csd, examples/vbap8move.csd,
- opcodes/vbap16move.xml, opcodes/vbap4move.xml,
- opcodes/vbap8move.xml, opcodes/vbapzmove.xml: Small corrections,
- added example for vbap8move by Hector Centeno, and removed
- example for vbap4move
- * examples/vbap4move.csd, examples/vbap8.csd, opcodes/vbap16.xml,
- opcodes/vbap16move.xml, opcodes/vbap4.xml, opcodes/vbap4move.xml,
- opcodes/vbap8.xml, opcodes/vbap8move.xml, opcodes/vbaplsinit.xml,
- opcodes/vbapz.xml, opcodes/vbapzmove.xml: Added note about
- vbaplsinit, moved examples to csd files and other minor fixes
-
-2007-08-28 14:33 Steven Yi <stevenyi@gmail.com>
-
- * opcodes/fluidEngine.xml: updated info on optional numChannels and
- polyphony
-
-2007-08-26 17:26 Andrés Cabrera <mantaraya36@gmail.com>
-
- * scoregens/gen52.xml: Small improvement in wording
-
-2007-08-25 10:32 Andrés Cabrera <mantaraya36@gmail.com>
-
- * scoregens/: gen52.xml, top.xml: Added GEN15 and GEN52 to the
- F-gen list and expanded GEN52 docuementation.
-
-2007-08-22 23:42 Steven Yi <stevenyi@gmail.com>
-
- * Makefile, manual.xml, opcodes/fluidSetInterpMethod.xml,
- opcodes/top.xml, siggen/sample.xml: added fluidSetInterpMethod
- opcode entry
-
-2007-08-22 05:04 Victor Lazzarini <victor.lazzarini@nuim.ie>
-
- * opcodes/sflooper.xml: added sflooper page
-
-2007-08-17 10:42 Victor Lazzarini <victor.lazzarini@nuim.ie>
-
- * opcodes/: pvsbuffer.xml, pvsbufread.xml: pvsbufread etc pages
-
-2007-07-12 05:04 jpff <jpff@codemist.co.uk>
-
- * opcodes/ATSaddnz.xml: correcting ATSaddnz
-
-2007-07-06 09:02 jpff <jpff@codemist.co.uk>
-
- * ChangeLog, examples/dam.csd, opcodes/ATSaddnz.xml: Corrected
- ATSaddnz. Removed references to the cosine table as
- this is not in the code.
-
-2007-07-04 09:01 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/building.xml, ChangeLog, Makefile: Added note about getting sources from
- tarball
-
-2007-07-03 15:29 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/building.xml: Updated building instructions
-
-2007-06-17 09:53 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: log.xml, log10.xml, opk.xml, sqrt.xml: Added links
-
-2007-06-16 16:01 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/0dbfs.xml: Minor fixes
- * examples-xml/diskgrain.csd.xml: Minor fix
-
-2007-06-10 22:48 Andrés Cabrera <mantaraya36@gmail.com>
-
- * misc/quickref.xml: Updated quickref.xml
-
-2007-06-10 22:30 Andrés Cabrera <mantaraya36@gmail.com>
-
- * preface/whatsnew.xml: minor fixes
- * examples/FLslidBnk2.csd, examples/FLslidBnk2Setk.csd,
- examples-xml/FLslidBnk2Setk.csd.xml: Fixed line endings
- * spectral/realtime.xml: indentation
- * overview/frontends.xml: minor changes
- * siggen/granular.xml: alphabetical order
- * examples/partikkel_softsync.csd,
- examples-xml/partikkel_softsync.csd.xml, opcodes/partikkel.xml:
- Added new example for partikkel
- * examples/vtable1k.csd, examples-xml/vtable1k.csd.xml,
- opcodes/vtable1k.xml: Added example for vtable1k
- * opcodes/flslidbnksetk.xml: Commented out example
- * opcodes/: eqfil.xml, pvsdiskin.xml, pvsmorph.xml: Cosmetic
- * opcodes/ctrl7.xml: Added information about a-rate version
- * examples/diskgrain.csd, examples-xml/diskgrain.csd.xml,
- opcodes/diskgrain.xml: Moved example to a separate file and other
- cosmetic changes
- * control/fltkother.xml: Added reference to the FLslidBnkSet
- opcodes
- * manual.xml: Better place for the version number
- * manual.xml, preface/top.xml, preface/whatsnew.xml: Added what's
- new section
- * examples/FLslidBnk2Setk.csd, examples-xml/FLslidBnk2Setk.csd.xml,
- opcodes/flslidbnk2set.xml, opcodes/flslidbnk2setk.xml,
- opcodes/flslidbnkgethandle.xml, opcodes/flslidbnkset.xml,
- opcodes/flslidbnksetk.xml, opcodes/top.xml: Added FslidBnk
- opcodes
- * opcodes/: flgetsnap.xml, flloadsnap.xml, flsavesnap.xml,
- flsetsnap.xml, flsetsnapgroup.xml: Added note about igroup
- parameter not working yet.
- * Tagged release and updated Quick Reference page using quickref.py.
-
-2007-06-03 12:30 gogins
-
- * overview/building.xml: Updated for OSC.
-
-2007-06-01 17:01 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: vtaba.xml, vtabi.xml, vtabk.xml, vtable1k.xml,
- vtablea.xml, vtablei.xml, vtablek.xml, vtablewa.xml,
- vtablewi.xml, vtablewk.xml, vtabwa.xml, vtabwi.xml, vtabwk.xml:
- Added clarification and note about arguments and other small
- additions
-
-2007-05-31 21:54 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/linen.xml: Small addition
-
-2007-05-28 18:45 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/filepeak.xml: Removed obsolete warning
- * opcodes/: filenchnls.xml, filesr.xml: Added missing optional
- parameter
-
-2007-05-26 07:22 brandtsegg
-
- * opcodes/: partikkel.xml, partikkelsync.xml: [no log message]
-
-2007-05-18 19:34 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/fluidcomplex.csd, examples-xml/fluidcomplex.csd.xml:
- Fixed fluidsynth example
-
-2007-05-17 21:45 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/FLslidBnk2.csd, examples-xml/FLslidBnk2.csd.xml,
- opcodes/flslidbnk2.xml, opcodes/flvslidbnk2.xml: Added example to
- FlslidBnk2 and fixed FLvslidBnk2
- * manual.xml, examples/FLvslidBnk.csd,
- examples-xml/FLvslidBnk.csd.xml, opcodes/flslidbnk.xml,
- opcodes/flslidbnk2.xml, opcodes/flvslidbnk.xml,
- opcodes/flvslidbnk2.xml, opcodes/top.xml, control/fltkother.xml:
- Added entries for FlslidBnk2, FlvslidBnk, FlvslidBnk2
- * examples/vcomb.csd, examples-xml/vcomb.csd.xml,
- opcodes/vcomb.xml: Added example to vcomb by Jonathan Murphy and
- Charles Gran
- * manual.xml, midi/sliderbk.xml, opcodes/sliderkawai.xml,
- opcodes/top.xml: Added sliderKawai entry
-
-2007-05-15 20:50 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/FLhvsBox.csd: Had been added by mistake
- * misc/quickref.xml: Updated quickref
-
-2007-05-14 20:21 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/slider32table.xml: typo
- * control/fltkintro.xml: small addition
- * opcodes/vstnote.xml: small additions
- * opcodes/random.xml: cosmetic
- * quickref.py: Added HVS
- * manual.xml, midi/sliderbk.xml, opcodes/slider16.xml,
- opcodes/slider16f.xml, opcodes/slider16table.xml,
- opcodes/slider16tablef.xml, opcodes/slider32.xml,
- opcodes/slider32f.xml, opcodes/slider32table.xml,
- opcodes/slider32tablef.xml, opcodes/slider64.xml,
- opcodes/slider64f.xml, opcodes/slider64table.xml,
- opcodes/slider64tablef.xml, opcodes/slider8table.xml,
- opcodes/slider8tablef.xml, opcodes/top.xml: Added docs for
- sliderNtable(f) opcodes
- * opcodes/vphaseseg.xml: Typos
- * vectorial/tables.xml: Added FLhvsBox, FLhvsBoxSetValue, FLkeyin,
- removed FLkeyb, FLmouse, FLsetSnapGroup, FLxyin, hvs1, hvs2,
- hvs3, vphaseseg, inrg, outrg, lposcila, lposcilsa, lposcilsa2,
- tabmorph, tabmorpha, tabmorphak, tabmorphi, trandom, vtable1k
- * table/readwrit.xml: Added tabmorph opcodes
- * sigio/: input.xml, output.xml: Added inrg and outrg
- * siggen/top.xml: Added HVS opcodes: hvs1, hvs2, hvs3 and vphaseseg
- * siggen/sample.xml: Added new lposcil opcodes and formatting
- * siggen/random.xml: Added trandom
- * opcodes/top.xml: Added FLhvsBox, FLhvsBoxSetValue, FLkeyin,
- removed FLkeyb, FLmouse, FLsetSnapGroup, FLxyin, hvs1, hvs2,
- hvs3, vphaseseg, inrg, outrg, lposcila, lposcilsa, lposcilsa2,
- tabmorph, tabmorpha, tabmorphak, tabmorphi, trandom, vtable1k
- * opcodes/sensekey.xml: Added references
- * opcodes/lposcil.xml: Added references to new poscil opcodes
- * opcodes/: flgetsnap.xml, flloadsnap.xml, flsavesnap.xml,
- flsetsnap.xml: Added new optional igroup parameter
- * opcodes/: flcount.xml, fljoy.xml, flknob.xml, flpanel.xml,
- flroller.xml, flslider.xml, fltext.xml: Removed FLkeyb which was
- never functional and marked experimental. Replaced by FLkeyin
- * manual.xml: Fixed typo
- * Makefile: Removed FLkeyb which was never functional and marked
- experimental. Replaced by FLkeyin
- * examples-xml/FLsetText.csd.xml: Updated xml version of examples
- * examples/ftgen-2.csd, examples-xml/ftgen-2.csd.xml,
- opcodes/ftgen.xml: Added another example for ftgen
- * examples-xml/: FLsavesnap.csd.xml, FLsavesnap_simple.csd.xml:
- Added examples for FLsavesnap
- * opcodes/: inrg.xml, lposcila.xml, lposcilsa.xml, lposcilsa2.xml,
- outrg.xml, tabmorphak.xml, tabmorph.xml, tabmorpha.xml,
- tabmorphi.xml, trandom.xml, vtable1k.xml: Added new opcodes inrg,
- new lposcil family, new tabmorph family, outrg and vtable1k
- * opcodes/hvs1.xml, opcodes/hvs2.xml, opcodes/hvs3.xml,
- opcodes/vphaseseg.xml, siggen/hvs.xml, examples/hvs1.csd,
- examples-xml/hvs1.csd.xml: Added HVS opcodes: hvs1, hvs2, hvs3
- and vphaseseg
- * control/fltkother.xml: Added FLkeyin, FLhvsBox, FLhvsBoxSetValue,
- Fl mouse, FLxyin
- * control/fltkgeneral.xml, control/fltkintro.xml,
- opcodes/FLhvsBox.csd: Added FLhvsSetBox
- * control/fltkvaluators.xml, opcodes/flkeyb.xml: Removed FLkeyb
- which was never functional and marked experimental. Replaced by
- FLkeyin
- * examples/FLhvsBox.csd, examples/FLkeyIn.csd,
- examples/FLmouse.csd, examples/FLsavesnap.csd,
- examples/FLsavesnap_simple.csd, examples/FLxyin-2.csd,
- examples/FLxyin.csd, examples-xml/FLhvsBox.csd.xml,
- examples-xml/FLkeyIn.csd.xml, examples-xml/FLmouse.csd.xml,
- examples-xml/FLxyin-2.csd.xml, examples-xml/FLxyin.csd.xml,
- opcodes/flhvsbox.xml, opcodes/flhvsboxsetvalue.xml,
- opcodes/flkeyin.xml, opcodes/flmouse.xml,
- opcodes/flsetsnapgroup.xml, opcodes/flxyin.xml: Added new opcodes
- FLhvsBox, FLhvsBoxSetValue, FLkeyin, FLmouse, FLsetSnapGroup,
- FLxyin
- * examples/vrandh.csd, examples/vrandi.csd,
- examples-xml/vrandh.csd.xml, examples-xml/vrandi.csd.xml,
- opcodes/vrandh.xml, opcodes/vrandi.xml: Added optional argument
- isize
- * examples-xml/: prepiano.csd.xml, ptrack.csd.xml, rms.csd.xml,
- schedkwhennamed.csd.xml, scogen.csd.xml, system.csd.xml: Updated
- xml version of examples
- * examples/fof2-2.csd, examples-xml/fof2-2.csd.xml: Small
- correction in example
- * manual.xml: Added FLhvsBox, FLhvsBoxSetValue, FLkeyin, removed
- FLkeyb, FLmouse, FLsetSnapGroup, FLxyin, hvs1, hvs2, hvs3,
- vphaseseg, inrg, outrg, lposcila, lposcilsa, lposcilsa2,
- tabmorph, tabmorpha, tabmorphak, tabmorphi, trandom, vtable1k
-
-2007-05-14 06:53 Victor Lazzarini <victor.lazzarini@nuim.ie>
-
- * manual.xml, opcodes/diskgrain.xml, opcodes/pvsdiskin.xml,
- opcodes/pvsmorph.xml, opcodes/syncgrain.xml, opcodes/top.xml,
- siggen/granular.xml, spectral/realtime.xml: added manual pages
- for pvsdiskin pvsmorph diskgrain
-
-2007-05-10 20:18 Andrés Cabrera <mantaraya36@gmail.com>
-
- * table/readwrit.xml: Added ftmorf
- * opcodes/: dconv.xml, ftconv.xml: Minor additions
- * opcodes/: partikkel.xml, partikkelsync.xml: [no log message]
-
-2007-05-07 07:01 Andrés Cabrera <mantaraya36@gmail.com>
-
- * TODO, opcodes/tabplay.xml: Small correction to tabplay and
- removed fixed things from TODO
-
-2007-05-03 10:05 Andrés Cabrera <mantaraya36@gmail.com>
-
- * scoregens/gen40.xml: Small change
- * strings/manipulate.xml: Added examples to sprintfk by Jonathan
- Murphy, separated sprintfk from sprintf and other small fixes
- * scoregens/gen40.xml: Added small clarification for cuserrnd
- * manual.xml, examples/sprintfk.csd, examples-xml/sprintfk.csd.xml,
- opcodes/sprintf.xml, opcodes/sprintfk.xml, opcodes/top.xml: Added
- examples to sprintfk by Jonathan Murphy, separated sprintfk from
- sprintf and other small fixes
- * examples/mpulse.csd, examples-xml/mpulse.csd.xml: Improved mpulse
- example
- * opcodes/: mpulse.xml, partials.xml, pvscross.xml: Incorporated
- corrections by Joachim Heintz
-
-2007-05-02 10:15 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/mdelay.csd, examples/midion_scale.csd,
- examples/midion_simple.csd, examples/moscil.csd,
- examples/noteondur.csd, examples/noteondur2.csd,
- examples/outkpc.csd, examples/outkpc_fltk.csd,
- examples-xml/mdelay.csd.xml, examples-xml/midion_scale.csd.xml,
- examples-xml/midion_simple.csd.xml, examples-xml/moscil.csd.xml,
- examples-xml/noteondur.csd.xml, examples-xml/noteondur2.csd.xml,
- examples-xml/outkpc.csd.xml, examples-xml/outkpc_fltk.csd.xml:
- Removed flag to use virtual keyboard MIDI in, since this disables
- MIDI out
-
-2007-05-01 04:41 Francois Pinot <francois.pinot@numericable.fr>
-
- * command/flagscategory.xml: Modified some ids
- * examples-xml/: partikkel.csd.xml, schedkwhennamed.csd.xml: Minor
- fix
-
-2007-04-28 09:36 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/mdelay.csd, examples/noteondur.csd,
- examples/noteondur2.csd, examples/outkpc.csd,
- examples/outkpc_fltk.csd, examples-xml/mdelay.csd.xml,
- examples-xml/noteondur.csd.xml, examples-xml/noteondur2.csd.xml,
- examples-xml/outkpc.csd.xml, examples-xml/outkpc_fltk.csd.xml:
- Added missing flag to examples.
- * sigmod/speciali.xml: Minor fix
- * siggen/granular.xml: Finished entry for partikkel and separated
- partikklesyn
- * manual.xml, examples/partikkel.csd,
- examples-xml/partikkel.csd.xml, opcodes/partikkel.xml,
- opcodes/partikkelsync.xml, opcodes/top.xml: Finished entry for
- partikkel and separated partikklesyn
- * examples/outkpc_fltk.csd, examples-xml/outkpc_fltk.csd.xml:
- Removed unnecessary init in example.
- * examples/scans.csd, examples-xml/scans.csd.xml: Removed
- unnecessary MIDI input flag
- * examples/mdelay.csd, examples/midion_scale.csd,
- examples/midion_simple.csd, examples/moscil.csd,
- examples/noteondur.csd, examples/noteondur2.csd,
- examples/outkpc.csd, examples/outkpc_fltk.csd,
- examples-xml/mdelay.csd.xml, examples-xml/midion_scale.csd.xml,
- examples-xml/midion_simple.csd.xml, examples-xml/moscil.csd.xml,
- examples-xml/noteondur.csd.xml, examples-xml/noteondur2.csd.xml,
- examples-xml/outkpc.csd.xml, examples-xml/outkpc_fltk.csd.xml,
- opcodes/mdelay.xml, opcodes/midion.xml, opcodes/midion2.xml,
- opcodes/moscil.xml, opcodes/noteondur.xml,
- opcodes/noteondur2.xml, opcodes/outkpc.xml: Added examples by
- Giorgio Zucco to mdelay, midion, moscil, noteondur, noteondur2
- and outkpc, and other minor changes to these entries
- * examples/schedkwhennamed.csd,
- examples-xml/schedkwhennamed.csd.xml,
- opcodes/schedkwhennamed.xml: Added example by Jonathan Murphy to
- schedkwhennamed
- * opcodes/flbutbank.xml: minor fix
- * opcodes/bformdec.xml: removed "counter-clockwise"
- * opcodes/fluidEngine.xml: made arguments optional
- * command/flagscategory.xml: individual messages options
-
-2007-04-26 10:11 Victor Lazzarini <victor.lazzarini@nuim.ie>
-
- * manual.xml, control/invocat.xml, opcodes/scoreline.xml,
- opcodes/scoreline_i.xml, opcodes/top.xml: scoreline and _i man
- pages
-
-2007-04-25 11:02 Victor Lazzarini <victor.lazzarini@nuim.ie>
-
- * manual.xml, opcodes/eqfil.xml, opcodes/top.xml,
- sigmod/speciali.xml: added eqfil manual page
-
-2007-04-22 14:46 gogins
-
- * opcodes/fluidEngine.xml: no message
-
-2007-04-22 08:29 John ffitch <jpff@codemist.co.uk>
-
- * manual.xml, opcodes/partikkel.xml, opcodes/top.xml: added
- partikkel opcode
-
-2007-04-15 12:33 John ffitch <jpff@codemist.co.uk>
-
- * command/flags.xml: individual messages options
-
-2007-04-09 10:25 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/flvalue.xml: Small correction
- * opcodes/flvalue.xml: Added note about not setting FLvalue with
- FLsetVal
-
-2007-04-02 22:01 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/OSCmidisend.csd, examples-xml/OSCmidisend.csd.xml,
- opcodes/OSClisten.xml: Corrected example author
-
-2007-03-28 11:50 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/grain.xml: Minor fixes
-
-2007-03-26 01:46 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: fof2.xml, fog.xml: Minor fixes
-
-2007-03-21 01:43 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/: vrandh.csd.xml, vrandi.csd.xml: Initial commit
-
-2007-03-21 01:41 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples/: vrandh.csd, vrandi.csd: Added CsOptions section
-
-2007-03-20 07:26 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: pvsfreeze.xml, pvsmaska.xml, pvsynth.xml: Small
- corrections. Thanks to Alex Weiss
-
-2007-03-19 09:11 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile: Small fix to delete backup files from the examples
- directory when packaging
- * examples/randh.csd, examples/vrandh.csd, examples/vrandi.csd,
- opcodes/randh.xml, opcodes/randi.xml, opcodes/vrandh.xml,
- opcodes/vrandi.xml: Corrected iseed parameter for randh and
- randi. Added information about new functionality for vrandh and
- vrandi
-
-2007-03-18 21:29 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples-xml/: 0dbfs-1.csd.xml, abs.csd.xml, adsr.csd.xml,
- alpass.csd.xml, ampdb.csd.xml, ampdbfs.csd.xml, areson.csd.xml,
- atone.csd.xml, biquad-2.csd.xml, biquad.csd.xml, birnd.csd.xml,
- cent.csd.xml, changed.csd.xml, checkbox.csd.xml, comb.csd.xml,
- cos.csd.xml, cosh.csd.xml, cosinv.csd.xml, cpsoct.csd.xml,
- cpspch.csd.xml, date.csd.xml, db.csd.xml, dbamp.csd.xml,
- FLcount.csd.xml, dbfsamp.csd.xml, dconv.csd.xml,
- distort1.csd.xml, envlpx.csd.xml, exp.csd.xml, expseg.csd.xml,
- expsegr.csd.xml, flashtxt.csd.xml, fmmetal.csd.xml,
- fmrhode.csd.xml, fmwurlie.csd.xml, fof.csd.xml, frac.csd.xml,
- ftchnls.csd.xml, ftlen.csd.xml, ftlptim.csd.xml, ftsr.csd.xml,
- grain.csd.xml, grain2.csd.xml, grain3.csd.xml, harmon.csd.xml,
- hsboscil_midi.csd.xml, int.csd.xml, linseg.csd.xml,
- linsegr.csd.xml, log.csd.xml, log10.csd.xml, logbtwo.csd.xml,
- lowpass2.csd.xml, lphasor.csd.xml, mode.csd.xml,
- notnum_complex.csd.xml, nsamp.csd.xml, octave.csd.xml,
- octcps.csd.xml, octpch.csd.xml, opa.csd.xml,
- opcode_example.csd.xml, oscbnk.csd.xml, p.csd.xml, pareq.csd.xml,
- pchoct.csd.xml, phaser1.csd.xml, phaser2.csd.xml, pitch.csd.xml,
- poisson.csd.xml, polyaft.csd.xml, powoftwo.csd.xml,
- randh.csd.xml, resonr.csd.xml, reverb.csd.xml, rnd.csd.xml,
- scans.csd.xml, semitone.csd.xml, setctrl.csd.xml, sin.csd.xml,
- sinh.csd.xml, sininv.csd.xml, spat3d_UHJ.csd.xml,
- spat3d_quad.csd.xml, spat3d_stereo.csd.xml, sqrt.csd.xml,
- svfilter.csd.xml, tablexkt.csd.xml, tan.csd.xml, tanh.csd.xml,
- taninv.csd.xml, tbvcf.csd.xml, vadd.csd.xml, vadd_i.csd.xml,
- vaddv.csd.xml, vaget.csd.xml, vaset.csd.xml, vcella.csd.xml,
- vco.csd.xml, vdivv.csd.xml, vexp.csd.xml, vexp_i.csd.xml,
- vexpv.csd.xml, vmult-2.csd.xml, vmult_i.csd.xml, vmultv.csd.xml,
- vpow.csd.xml, vpow_i.csd.xml, vpowv.csd.xml, vsubv.csd.xml,
- wgbowedbar.csd.xml, wterrain.csd.xml: Updated examples-xml
-
-2007-03-12 09:42 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/FLbutBank.csd, examples/FLbutton.csd,
- examples/FLslidBnk.csd, examples/FLslider-2.csd,
- examples/FLslider.csd, examples-xml/FLbutBank.csd.xml,
- examples-xml/FLbutton.csd.xml, examples-xml/FLslidBnk.csd.xml,
- examples-xml/FLslider-2.csd.xml, examples-xml/FLslider.csd.xml,
- images/flbutton.png, opcodes/flbutbank.xml, opcodes/flbutton.xml,
- opcodes/flslidbnk.xml, opcodes/flslider.xml: Added information
- about plastic slider types, improved examples and other minor
- corrections
- * command/unifile.xml: Minor corrections
-
-2007-03-09 12:29 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/: ptrack.csd.xml, system.csd.xml: Minor fixes
-
-2007-03-07 08:47 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/system.csd: small fix
- * ChangeLog: updated changelog
-
-2007-03-07 08:18 Andrés Cabrera <mantaraya36@gmail.com>
-
- * misc/quickref.xml: updated quickref.xml
- * opcodes/ptrack.xml: Fixed refentryinfo tag
- * opcodes/ptrack.xml: Fixed refentryinfo tag
- * opcodes/top.xml: Fixed alphabetical order of pvs opcodes in list
- * opcodes/: prepiano.xml, ptrack.xml: minor changes
-
-2007-03-05 16:47 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples/prepiano.csd: Minor fixes
- * examples-xml/prepiano.csd.xml: Initial commit
- * opcodes/: foscil.xml, foscili.xml: Mior fixes
- * examples-xml/: fmmetal.csd.xml, fmrhode.csd.xml,
- fmwurlie.csd.xml: Mior fix
-
-2007-03-05 12:42 John ffitch <jpff@codemist.co.uk>
-
- * examples/prepiano.csd, opcodes/prepiano.xml, opcodes/top.xml,
- siggen/models.xml, manual.xml: prepared piano
-
-2007-03-05 10:37 Andrés Cabrera <mantaraya36@gmail.com>
-
- * ChangeLog: Updated changelog
- * scoregens/gen01.xml: Fixed typo
- * examples/ptrack.csd, examples-xml/ptrack.csd.xml,
- opcodes/ptrack.xml: Moved example to a separate file and other
- minor corrections for ptrack
- * examples/ptrack.csd, examples-xml/ptrack.csd.xml,
- opcodes/ptrack.xml: Moved example to a separate file and other
- minor corrections for ptrack
-
-2007-03-05 06:54 Victor Lazzarini <victor.lazzarini@nuim.ie>
-
- * manual.xml, control/sensing.xml, opcodes/ptrack.xml,
- opcodes/top.xml: added ptrack page
-
-2007-03-02 17:22 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/marimba.csd, examples-xml/marimba.csd.xml: Improved
- marimba example
-
-2007-03-02 14:35 Francois Pinot <francois.pinot@numericable.fr>
-
- * Makefile: Updated VERSION variable
- * makeframes.py: Added correct display of scoregens entries
-
-2007-03-02 09:15 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/gen16.csd, examples-xml/gen16.csd.xml,
- images/gen16_types.png, scoregens/gen16.xml: Added image and
- improved examples for gen 16
-
-2007-03-01 15:02 Francois Pinot <francois.pinot@numericable.fr>
-
- * cscore/: advancd.xml, compile.xml, events.xml, main.xml, top.xml:
- Minor fixes
-
-2007-02-28 20:07 Anthony Kozar <anthonykozar@sbcglobal.net>
-
- * ChangeLog: Log entry for Cscore changes.
- * cscore/: compile.xml, events.xml: Fixes for errors in the Cscore
- revisions.
-
-2007-02-27 15:11 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: vco.xml, vco2.xml, vco2ft.xml, vco2ift.xml,
- vco2init.xml: Minor fixes
-
-2007-02-26 22:12 Anthony Kozar <anthonykozar@sbcglobal.net>
-
- * cscore/: advancd.xml, compile.xml, events.xml, main.xml, top.xml:
- Updated Cscore documentation for Csound 5.
-
-2007-02-26 12:14 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: fof2.xml, fog.xml: Minor corrections to fog and fof2
-
-2007-02-25 19:55 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/fof2-2.csd, examples/fof2.csd,
- examples-xml/fof2-2.csd.xml, examples-xml/fof2.csd.xml,
- opcodes/fof2.xml: Minor corrections and added two examples to
- fof2
-
-2007-02-25 16:27 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: buzz.xml, gbuzz.xml: Minor fix
-
-2007-02-25 10:34 Andrés Cabrera <mantaraya36@gmail.com>
-
- * Makefile: Added target to make winhelp package
-
-2007-02-24 18:11 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/pvspitch.csd, examples-xml/pvspitch.csd.xml,
- opcodes/pvspitch.xml: Improvements to pvspitch and its example
-
-2007-02-24 08:19 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: oscils.xml, vibrato.xml: Minor fix
-
-2007-02-23 20:34 Andrés Cabrera <mantaraya36@gmail.com>
-
- * ChangeLog: Updated changelog
-
-2007-02-23 16:27 Francois Pinot <francois.pinot@numericable.fr>
-
- * csound.css: Added rule for links in appendix (quickref)
-
-2007-02-21 17:57 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/oscbnk.csd.xml: Minor fix
- * csound.css, stylesheets/customPDF.xsl: Added C style comment rule
- * opcodes/oscbnk.xml, csd2docbook.py: Minor fix
-
-2007-02-17 12:03 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/adsynt2.xml, opcodes/hsboscil.xml,
- examples/hsboscil_midi.csd, examples-xml/hsboscil_midi.csd.xml:
- Minor fix
-
-2007-02-16 13:29 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples/fluid-2.orc, examples/fluid.orc,
- examples/fluidAllOut.orc, examples/fluidcomplex.csd,
- examples-xml/fluid-2.orc.xml, examples-xml/fluid.orc.xml,
- examples-xml/fluidAllOut.orc.xml,
- examples-xml/fluidcomplex.csd.xml: Layout
- * opcodes/: fluidAllOut.xml, fluidControl.xml, fluidEngine.xml,
- fluidLoad.xml, fluidNote.xml, fluidOut.xml,
- fluidProgramSelect.xml: Minor fix
- * opcodes/: modulus.xml, opand.xml: Layout fix
-
-2007-02-14 13:39 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/notequal.xml, opcodes/vcella.xml, examples/vcella.csd,
- examples-xml/opcode_example.csd.xml, examples-xml/vcella.csd.xml:
- Layout fixes
-
-2007-02-13 08:47 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples-xml/xyin.csd.xml, examples/xyin.csd, opcodes/xyin.xml:
- added --displays flag to examples and a note in xyin.xml
-
-2007-02-12 17:02 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/seqtime.csd, examples-xml/seqtime.csd.xml,
- opcodes/seqtime.xml: Added examples and other fixes to seqtime
- * opcodes/flexecbutton.xml: Removed unnecessary line
- * examples/OSCmidircv.csd, examples/OSCmidisend.csd,
- examples-xml/OSCmidircv.csd.xml,
- examples-xml/OSCmidisend.csd.xml, opcodes/OSCinit.xml,
- opcodes/OSClisten.xml, opcodes/OSCsend.xml: Added examples,
- syntax highlight and other fixes to the OSC opcodes
-
-2007-02-12 16:08 Francois Pinot <francois.pinot@numericable.fr>
-
- * stylesheets/customPDF.xsl, csound.css: Minor style change
- * opcodes/: define.xml, dollar.xml, ifdef.xml, ifndef.xml,
- include.xml, undef.xml: Minor fixes
- * examples-xml/table1.inc.xml: Initial commit
- * stylesheets/customPDF.xsl: Improved layout and syntax
- highlighting
- * quickref.py, misc/quickref.xml: Changes for layout improvement
- and OS independance
-
-2007-02-09 16:04 Francois Pinot <francois.pinot@numericable.fr>
-
- * command/environment.xml, command/flags.xml,
- command/flagscategory.xml, overview/realtimelinux.xml: Minor
- layout fixes
-
-2007-02-09 08:12 Andrés Cabrera <mantaraya36@gmail.com>
-
- * command/: flags.xml, flagscategory.xml: Added -+ignore_csopts
- flag
-
-2007-02-09 07:43 Francois Pinot <francois.pinot@numericable.fr>
-
- * misc/quickref.xml: Updated
- * examples-xml/: 0dbfs-1.csd.xml, 0dbfs.csd.xml, FLbox.csd.xml,
- FLbutton.csd.xml, FLcount.csd.xml, FLjoy.csd.xml,
- FLknob-2.csd.xml, FLknob.csd.xml, FLpanel-sensekey.csd.xml,
- FLpanel-sensekey2.csd.xml, FLpanel.csd.xml, FLroller.csd.xml,
- FLscroll.csd.xml, FLsetText.csd.xml, FLsetVal.csd.xml,
- FLsetcolor.csd.xml, FLslider-2.csd.xml, FLslider.csd.xml,
- FLtabs.csd.xml, FLtext.csd.xml, FLvalue.csd.xml, abs.csd.xml,
- active.csd.xml, active_k.csd.xml, adds.csd.xml, adsr.csd.xml,
- adsyn.csd.xml, adsynt.csd.xml, aftouch.csd.xml, alpass.csd.xml,
- ampdb.csd.xml, ampdbfs.csd.xml, ampmidi.csd.xml, areson.csd.xml,
- assign.csd.xml, atone.csd.xml, babo.csd.xml, babo_expert.csd.xml,
- balance.csd.xml, bamboo.csd.xml, barmodel.csd.xml,
- bbcutm.csd.xml, betarand.csd.xml, bexprnd.csd.xml,
- bformenc.csd.xml, biquad-2.csd.xml, biquad.csd.xml,
- birnd.csd.xml, bqrez.csd.xml, butterbp.csd.xml, butterbr.csd.xml,
- butterhp.csd.xml, butterlp.csd.xml, buzz.csd.xml, cabasa.csd.xml,
- cauchy.csd.xml, cent.csd.xml, cggoto.csd.xml, changed.csd.xml,
- checkbox.csd.xml, cigoto.csd.xml, ckgoto.csd.xml,
- clfilt_highpass.csd.xml, clfilt_lowpass.csd.xml, clip.csd.xml,
- cngoto.csd.xml, comb.csd.xml, cos.csd.xml, cosh.csd.xml,
- cosinv.csd.xml, cps2pch.csd.xml, cps2pch_19et.csd.xml,
- cps2pch_ftable.csd.xml, cpsmidi.csd.xml, cpsmidib.csd.xml,
- cpsoct.csd.xml, cpspch.csd.xml, cpstmid.csd.xml, cpstun.csd.xml,
- cpstuni.csd.xml, cpsxpch.csd.xml, cpsxpch_105et.csd.xml,
- cpsxpch_pierce.csd.xml, cpuprc.csd.xml, cross2.csd.xml,
- crunch.csd.xml, dam.csd.xml, dam_expanded.csd.xml, date.csd.xml,
- db.csd.xml, dbamp.csd.xml, dbfsamp.csd.xml, dcblock.csd.xml,
- dconv.csd.xml, define.csd.xml, define_args.csd.xml,
- delay.csd.xml, delayw.csd.xml, diff.csd.xml, diskin.csd.xml,
- diskin2.csd.xml, dispfft.csd.xml, display.csd.xml,
- distort1.csd.xml, divides.csd.xml, divz.csd.xml,
- downsamp.csd.xml, dripwater.csd.xml, dssi4cs.csd.xml,
- endin.csd.xml, envlpx.csd.xml, equals.csd.xml, event.csd.xml,
- event_named.csd.xml, exp.csd.xml, expcurve.csd.xml,
- expon.csd.xml, exprand.csd.xml, expseg.csd.xml, expsega.csd.xml,
- expsegr.csd.xml, filelen.csd.xml, filenchnls.csd.xml,
- filepeak.csd.xml, filesr.csd.xml, flanger.csd.xml,
- flashtxt.csd.xml, fluid-2.orc.xml, fluid.orc.xml,
- fluidAllOut.orc.xml, fluidcomplex.csd.xml, fmb3.csd.xml,
- fmbell.csd.xml, fmmetal.csd.xml, fmpercfl.csd.xml,
- fmrhode.csd.xml, fmvoice.csd.xml, fmwurlie.csd.xml, fof.csd.xml,
- fold.csd.xml, follow.csd.xml, follow2.csd.xml, foscil.csd.xml,
- foscili.csd.xml, fout.csd.xml, fout_poly.csd.xml,
- fprintks-2.csd.xml, fprintks.csd.xml, fprints.csd.xml,
- frac.csd.xml, freeverb.csd.xml, ftchnls.csd.xml, ftconv.csd.xml,
- ftgen.csd.xml, ftlen.csd.xml, ftlptim.csd.xml, ftmorf.csd.xml,
- ftsave.csd.xml, ftsr.csd.xml, gainslider.csd.xml, gauss.csd.xml,
- gbuzz.csd.xml, gen01.csd.xml, gen01computed.csd.xml,
- gen02.csd.xml, gen03.csd.xml, gen05.csd.xml, gen06.csd.xml,
- gen07.csd.xml, gen08.csd.xml, gen09.csd.xml, gen09square.csd.xml,
- gen10.csd.xml, gen11.csd.xml, gen12.csd.xml, gen13.csd.xml,
- gen14.csd.xml, gen19.csd.xml, gogobel.csd.xml, goto.csd.xml,
- grain.csd.xml, grain2.csd.xml, grain3.csd.xml, granule.csd.xml,
- greaterequal.csd.xml, greaterthan.csd.xml, guiro.csd.xml,
- harmon.csd.xml, hilbert.csd.xml, hilbert_barberpole.csd.xml,
- hrtfer.csd.xml, hsboscil.csd.xml, hsboscil_midi.csd.xml,
- ifthen.csd.xml, igoto.csd.xml, ihold.csd.xml, include.csd.xml,
- insremot.csd.xml, insremotM.csd.xml, instr.csd.xml, int.csd.xml,
- integ.csd.xml, interp.csd.xml, jitter.csd.xml, jitter2.csd.xml,
- kgoto.csd.xml, lessequal.csd.xml, lessthan.csd.xml, lfo.csd.xml,
- line.csd.xml, linrand.csd.xml, linseg.csd.xml, linsegr.csd.xml,
- log.csd.xml, log10.csd.xml, logbtwo.csd.xml, logcurve.csd.xml,
- loopseg.csd.xml, lorenz.csd.xml, loscil.csd.xml, loscil3.csd.xml,
- lowpass2.csd.xml, lowres.csd.xml, lowresx.csd.xml, lpf18.csd.xml,
- lphasor.csd.xml, lpshold.csd.xml, madsr.csd.xml, mandol.csd.xml,
- marimba.csd.xml, maxalloc.csd.xml, metro.csd.xml,
- midichannelaftertouch.csd.xml, midichn.csd.xml,
- midichn_advanced.csd.xml, midiin.csd.xml, midinoteoff.csd.xml,
- midinoteoncps.csd.xml, midinoteonkey.csd.xml,
- midinoteonoct.csd.xml, midinoteonpch.csd.xml,
- midipitchbend.csd.xml, midremot.csd.xml, mode.csd.xml,
- modulus.csd.xml, moog.csd.xml, moogvcf.csd.xml, moogvcf2.csd.xml,
- mpulse.csd.xml, multiplies.csd.xml, mute.csd.xml,
- nestedap.csd.xml, noise-2.csd.xml, noise.csd.xml,
- notequal.csd.xml, notnum.csd.xml, notnum_complex.csd.xml,
- nreverb.csd.xml, nreverb_ftable.csd.xml, nsamp.csd.xml,
- octave.csd.xml, octcps.csd.xml, octmidi.csd.xml,
- octmidib.csd.xml, octpch.csd.xml, opa.csd.xml,
- opcode_example.csd.xml, oscbnk.csd.xml, oscil.csd.xml,
- oscil3.csd.xml, oscili.csd.xml, oscilikt.csd.xml,
- osciliktp.csd.xml, oscilikts.csd.xml, oscils.csd.xml, p.csd.xml,
- pareq.csd.xml, pcauchy.csd.xml, pchbend.csd.xml, pchmidi.csd.xml,
- pchmidib.csd.xml, pchoct.csd.xml, pcount.csd.xml, peak.csd.xml,
- pgmassign.csd.xml, pgmassign_advanced.csd.xml,
- pgmassign_ignore.csd.xml, phaser1.csd.xml, phaser2.csd.xml,
- phasor.csd.xml, phasorbnk.csd.xml, pindex.csd.xml,
- pinkish.csd.xml, pitch.csd.xml, pitchamdf.csd.xml,
- planet.csd.xml, pluck.csd.xml, poisson.csd.xml, polyaft.csd.xml,
- portk.csd.xml, poscil.csd.xml, poscil3.csd.xml, pow.csd.xml,
- powoftwo.csd.xml, prealloc.csd.xml, print.csd.xml,
- printk.csd.xml, printk2.csd.xml, printks.csd.xml, prints.csd.xml,
- pvsbin.csd.xml, pvsdisp.csd.xml, pvsfwrite.csd.xml,
- pvsosc.csd.xml, pvspitch.csd.xml, r.csd.xml, raises.csd.xml,
- rand.csd.xml, randh.csd.xml, randi.csd.xml, random.csd.xml,
- randomh.csd.xml, randomi.csd.xml, rbjeq.csd.xml,
- readclock.csd.xml, reinit.csd.xml, repluck.csd.xml,
- reson.csd.xml, resonr.csd.xml, resony.csd.xml, reverb.csd.xml,
- reverbsc.csd.xml, rezzy.csd.xml, rms.csd.xml, rnd.csd.xml,
- rnd31.csd.xml, rnd31_krate.csd.xml, rnd31_seed7.csd.xml,
- rnd31_time.csd.xml, rtclock.csd.xml, sandpaper.csd.xml,
- scale.csd.xml, scans.csd.xml, scantable.csd.xml,
- schedkwhen.csd.xml, schedule.csd.xml, schedwhen.csd.xml,
- scogen.csd.xml, sekere.csd.xml, semitone.csd.xml,
- sensekey.csd.xml, setctrl.csd.xml, shaker.csd.xml, sin.csd.xml,
- sinh.csd.xml, sininv.csd.xml, sleighbells.csd.xml,
- sndwarp.csd.xml, soundin.csd.xml, spat3d_UHJ.csd.xml,
- spat3d_quad.csd.xml, spat3d_stereo.csd.xml, sqrt.csd.xml,
- stix.csd.xml, streson.csd.xml, subinstr.csd.xml,
- subinstr_named.csd.xml, subtracts.csd.xml, svfilter.csd.xml,
- system.csd.xml, table.csd.xml, tableng.csd.xml, tablexkt.csd.xml,
- tambourine.csd.xml, tan.csd.xml, tanh.csd.xml, taninv.csd.xml,
- taninv2.csd.xml, tbvcf.csd.xml, tempest.csd.xml, tempo.csd.xml,
- tempoval.csd.xml, timeinstk.csd.xml, timeinsts.csd.xml,
- timek.csd.xml, times.csd.xml, trigger.csd.xml, trirand.csd.xml,
- turnoff.csd.xml, unirand.csd.xml, vadd.csd.xml, vadd_i.csd.xml,
- vaddv.csd.xml, vaget.csd.xml, vaset.csd.xml, vcella.csd.xml,
- vco.csd.xml, vco2.csd.xml, vcopy.csd.xml, vdivv.csd.xml,
- veloc.csd.xml, vexp.csd.xml, vexp_i.csd.xml, vexpseg.csd.xml,
- vexpv.csd.xml, vibes.csd.xml, vibr.csd.xml, vibrato.csd.xml,
- vlinseg.csd.xml, vlowres.csd.xml, vmap.csd.xml, vmult-2.csd.xml,
- vmult.csd.xml, vmult_i.csd.xml, vmultv.csd.xml, voice.csd.xml,
- vpow.csd.xml, vpow_i.csd.xml, vpowv.csd.xml, vsubv.csd.xml,
- vtablei.csd.xml, vtablek.csd.xml, vtablewa.csd.xml,
- vtablewk.csd.xml, waveset.csd.xml, weibull.csd.xml,
- wgbow.csd.xml, wgbowedbar.csd.xml, wgbrass.csd.xml,
- wgclar.csd.xml, wgflute.csd.xml, wgpluck.csd.xml,
- wgpluck2.csd.xml, wgpluck_brighter.csd.xml, wguide1.csd.xml,
- wguide2.csd.xml, wterrain.csd.xml, xtratim-2.csd.xml,
- xtratim.csd.xml, xyin.csd.xml, zacl.csd.xml, zakinit.csd.xml,
- zamod.csd.xml, zar.csd.xml, zarg.csd.xml, zaw.csd.xml,
- zawm.csd.xml, zir.csd.xml, ziw.csd.xml, ziwm.csd.xml,
- zkcl.csd.xml, zkmod.csd.xml, zkr.csd.xml, zkw.csd.xml,
- zkwm.csd.xml: CRLF to LF
-
-2007-02-08 17:03 Francois Pinot <francois.pinot@numericable.fr>
-
- * control/fltkintro.xml: Minor fix
- * Makefile: Updated version number
- * opcodes/poisson.xml: Fixed docbook problem
-
-2007-02-07 07:04 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/: endop.xml, instr.xml, kr.xml, ksmps.xml, opcode.xml,
- sr.xml: Display layout and colour changes
-
-2007-02-06 13:25 Francois Pinot <francois.pinot@numericable.fr>
-
- * command/environment.xml: Minor style fix
- * utility/atsa.xml, utility/cs.xml, utility/csb64enc.xml,
- utility/cvanal.xml, utility/extractor.xml, utility/hetro.xml,
- utility/lpanal.xml, utility/makecsd.xml, cscore/advancd.xml,
- cscore/compile.xml, cscore/events.xml, cscore/main.xml,
- csound5/extending.xml, misc/windows.xml, utility/mixer.xml,
- utility/pvanal.xml, utility/pvlook.xml, utility/scale.xml,
- utility/sndinfo.xml: Display layout and colour changes
-
-2007-02-06 09:51 Andrés Cabrera <mantaraya36@gmail.com>
-
- * command/environment.xml: added CSDOCDIR environment variable
-
-2007-02-05 15:47 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/FLexecButton.csd, examples-xml/FLexecButton.csd.xml,
- opcodes/flexecbutton.xml: Fixed error and added example by
- Jonathan Murphy
-
-2007-02-05 15:22 Francois Pinot <francois.pinot@numericable.fr>
-
- * scoregens/: gen32.xml, gen33.xml, gen34.xml: Display layout and
- colour changes
- * scoregens/: gen04.xml, gen17.xml, gen18.xml, gen20.xml,
- gen21.xml, gen27.xml, gen28.xml, gen43.xml, gen51.xml, gen52.xml:
- Display layout and colour changes
-
-2007-02-04 13:17 Francois Pinot <francois.pinot@numericable.fr>
-
- * scoregens/: b.xml, i.xml, v.xml: Display layout and colours
- changes
-
-2007-02-03 16:41 Francois Pinot <francois.pinot@numericable.fr>
-
- * control/fltkintro.xml, midi/interop.xml, spectral/loris.xml,
- csound5/opcodes/py.xml, strings/top.xml: Display layout and
- colours changes
- * command/desc.xml, command/environment.xml, command/flags.xml,
- command/flagscategory.xml, command/preproc.xml,
- command/unifile.xml, orch/UDO.xml, orch/express.xml,
- orch/header.xml, orch/iblock.xml, orch/namedInstruments.xml,
- orch/top.xml, overview/building.xml, overview/frontends.xml,
- overview/realtimelinux.xml, preface/gettingstarted.xml,
- score/eval.xml, score/macros.xml, score/mult.xml,
- score/nextp.xml, score/preproc.xml, score/ramp.xml: Display
- layout and colours changes
-
-2007-02-02 02:37 Francois Pinot <francois.pinot@numericable.fr>
-
- * csound.css: Changed syntax colours by Andres Cabrera
-
-2007-01-31 17:32 Francois Pinot <francois.pinot@numericable.fr>
-
- * csd2docbook.py: Initial commit
- * scoregens/: gen01.xml, gen02.xml, gen03.xml, gen05.xml,
- gen06.xml, gen07.xml, gen08.xml, gen09.xml, gen10.xml, gen11.xml,
- gen12.xml, gen13.xml, gen14.xml, gen19.xml, r.xml: Modified for
- syntax highlighting
-
-2007-01-31 16:49 Andrés Cabrera <mantaraya36@gmail.com>
-
- * preface/history.xml: Removed dead link note about David's Manual
-
-2007-01-31 13:39 Francois Pinot <francois.pinot@numericable.fr>
-
- * opcodes/0dbfs.xml, opcodes/abs.xml, opcodes/active.xml,
- opcodes/adds.xml, opcodes/adsr.xml, opcodes/adsyn.xml,
- opcodes/adsynt.xml, opcodes/aftouch.xml, opcodes/alpass.xml,
- opcodes/ampdb.xml, opcodes/ampdbfs.xml, opcodes/ampmidi.xml,
- opcodes/areson.xml, opcodes/assign.xml, opcodes/atone.xml,
- opcodes/babo.xml, opcodes/balance.xml, opcodes/bamboo.xml,
- opcodes/barmodel.xml, opcodes/bbcutm.xml, opcodes/betarand.xml,
- opcodes/bexprnd.xml, opcodes/bformdec.xml, opcodes/bformenc.xml,
- opcodes/biquad.xml, opcodes/birnd.xml, opcodes/bqrez.xml,
- opcodes/butterbp.xml, opcodes/butterbr.xml, opcodes/butterhp.xml,
- opcodes/butterlp.xml, opcodes/buzz.xml, opcodes/cabasa.xml,
- opcodes/cauchy.xml, opcodes/cent.xml, opcodes/cggoto.xml,
- opcodes/changed.xml, opcodes/checkbox.xml, opcodes/cigoto.xml,
- opcodes/ckgoto.xml, opcodes/clfilt.xml, opcodes/clip.xml,
- opcodes/cngoto.xml, opcodes/comb.xml, opcodes/cos.xml,
- opcodes/cosh.xml, opcodes/cosinv.xml, opcodes/cps2pch.xml,
- opcodes/cpsmidi.xml, opcodes/cpsmidib.xml, opcodes/cpsoct.xml,
- opcodes/cpspch.xml, opcodes/cpstmid.xml, opcodes/cpstun.xml,
- opcodes/cpstuni.xml, opcodes/cpsxpch.xml, opcodes/cpuprc.xml,
- opcodes/cross2.xml, opcodes/crunch.xml, opcodes/dam.xml,
- opcodes/date.xml, opcodes/dates.xml, opcodes/db.xml,
- opcodes/dbamp.xml, opcodes/dbfsamp.xml, opcodes/dcblock.xml,
- opcodes/dconv.xml, opcodes/define.xml, opcodes/delay.xml,
- opcodes/delayw.xml, opcodes/denorm.xml, opcodes/diff.xml,
- opcodes/diskin.xml, opcodes/diskin2.xml, opcodes/dispfft.xml,
- opcodes/display.xml, opcodes/distort1.xml, opcodes/divides.xml,
- opcodes/divz.xml, opcodes/dollar.xml, opcodes/downsamp.xml,
- opcodes/dripwater.xml, opcodes/dssiinit.xml, opcodes/endin.xml,
- opcodes/envlpx.xml, opcodes/equals.xml, opcodes/event.xml,
- opcodes/exp.xml, opcodes/expcurve.xml, opcodes/expon.xml,
- opcodes/exprand.xml, opcodes/expseg.xml, opcodes/expsega.xml,
- opcodes/expsegr.xml, opcodes/filelen.xml, opcodes/filenchnls.xml,
- opcodes/filepeak.xml, opcodes/filesr.xml, opcodes/flanger.xml,
- opcodes/flashtxt.xml, opcodes/flbox.xml, opcodes/flbutton.xml,
- opcodes/flcount.xml, opcodes/fljoy.xml, opcodes/flknob.xml,
- opcodes/flpanel.xml, opcodes/flroller.xml, opcodes/flscroll.xml,
- opcodes/flsetcolor.xml, opcodes/flsettext.xml,
- opcodes/flslider.xml, opcodes/fltabs.xml, opcodes/fltext.xml,
- opcodes/fluidAllOut.xml, opcodes/fluidControl.xml,
- opcodes/fluidEngine.xml, opcodes/fluidLoad.xml,
- opcodes/fluidNote.xml, opcodes/fluidOut.xml,
- opcodes/fluidProgramSelect.xml, opcodes/flvalue.xml,
- opcodes/fmb3.xml, opcodes/fmbell.xml, opcodes/fmmetal.xml,
- opcodes/fmpercfl.xml, opcodes/fmrhode.xml, opcodes/fmvoice.xml,
- opcodes/fmwurlie.xml, opcodes/fof.xml, opcodes/fold.xml,
- opcodes/follow.xml, opcodes/follow2.xml, opcodes/foscil.xml,
- opcodes/foscili.xml, opcodes/fout.xml, opcodes/fprintks.xml,
- opcodes/fprints.xml, opcodes/frac.xml, opcodes/freeverb.xml,
- opcodes/ftchnls.xml, opcodes/ftconv.xml, opcodes/ftgen.xml,
- opcodes/ftlen.xml, opcodes/ftlptim.xml, opcodes/ftmorf.xml,
- opcodes/ftsave.xml, opcodes/ftsr.xml, opcodes/gainslider.xml,
- opcodes/gauss.xml, opcodes/gbuzz.xml, opcodes/gogobel.xml,
- opcodes/goto.xml, opcodes/grain.xml, opcodes/grain2.xml,
- opcodes/grain3.xml, opcodes/granule.xml,
- opcodes/greaterequal.xml, opcodes/greaterthan.xml,
- opcodes/guiro.xml, opcodes/harmon.xml, opcodes/hilbert.xml,
- opcodes/hrtfer.xml, opcodes/hsboscil.xml, opcodes/if.xml,
- opcodes/igoto.xml, opcodes/ihold.xml, opcodes/include.xml,
- opcodes/insremot.xml, opcodes/instr.xml, opcodes/int.xml,
- opcodes/integ.xml, opcodes/interp.xml, opcodes/jitter.xml,
- opcodes/jitter2.xml, opcodes/kgoto.xml, opcodes/lessequal.xml,
- opcodes/lessthan.xml, opcodes/lfo.xml, opcodes/line.xml,
- opcodes/linrand.xml, opcodes/linseg.xml, opcodes/linsegr.xml,
- opcodes/log.xml, opcodes/log10.xml, opcodes/logbtwo.xml,
- opcodes/logcurve.xml, opcodes/loopseg.xml, opcodes/lorenz.xml,
- opcodes/loscil.xml, opcodes/loscil3.xml, opcodes/lowpass2.xml,
- opcodes/lowres.xml, opcodes/lowresx.xml, opcodes/lpf18.xml,
- opcodes/lphasor.xml, opcodes/lpshold.xml, opcodes/madsr.xml,
- opcodes/mandol.xml, opcodes/marimba.xml, opcodes/maxalloc.xml,
- opcodes/metro.xml, opcodes/midichannelaftertouch.xml,
- opcodes/midichn.xml, opcodes/midiin.xml, opcodes/midinoteoff.xml,
- opcodes/midinoteoncps.xml, opcodes/midinoteonkey.xml,
- opcodes/midinoteonoct.xml, opcodes/midinoteonpch.xml,
- opcodes/midipitchbend.xml, opcodes/midremot.xml,
- opcodes/mode.xml, opcodes/modulus.xml, opcodes/moog.xml,
- opcodes/moogvcf.xml, opcodes/moogvcf2.xml, opcodes/mpulse.xml,
- opcodes/multiplies.xml, opcodes/mute.xml, opcodes/nestedap.xml,
- opcodes/noise.xml, opcodes/notequal.xml, opcodes/notnum.xml,
- opcodes/nreverb.xml, opcodes/nsamp.xml, opcodes/octave.xml,
- opcodes/octcps.xml, opcodes/octmidi.xml, opcodes/octmidib.xml,
- opcodes/octpch.xml, opcodes/opa.xml, opcodes/opcode.xml,
- opcodes/oscbnk.xml, opcodes/oscil.xml, opcodes/oscil3.xml,
- opcodes/oscili.xml, opcodes/oscilikt.xml, opcodes/osciliktp.xml,
- opcodes/oscilikts.xml, opcodes/oscils.xml, opcodes/p.xml,
- opcodes/pareq.xml, opcodes/pcauchy.xml, opcodes/pchbend.xml,
- opcodes/pchmidi.xml, opcodes/pchmidib.xml, opcodes/pchoct.xml,
- opcodes/pcount.xml, opcodes/peak.xml, opcodes/pgmassign.xml,
- opcodes/phaser1.xml, opcodes/phaser2.xml, opcodes/phasor.xml,
- opcodes/phasorbnk.xml, opcodes/pindex.xml, opcodes/pinkish.xml,
- opcodes/pitch.xml, opcodes/pitchamdf.xml, opcodes/planet.xml,
- opcodes/pluck.xml, opcodes/poisson.xml, opcodes/polyaft.xml,
- opcodes/portk.xml, opcodes/poscil.xml, opcodes/poscil3.xml,
- opcodes/pow.xml, opcodes/powoftwo.xml, opcodes/prealloc.xml,
- opcodes/print.xml, opcodes/printk.xml, opcodes/printk2.xml,
- opcodes/printks.xml, opcodes/prints.xml, opcodes/pvsbin.xml,
- opcodes/pvsdisp.xml, opcodes/pvsfwrite.xml, opcodes/pvsosc.xml,
- opcodes/pvspitch.xml, opcodes/raises.xml, opcodes/rand.xml,
- opcodes/randh.xml, opcodes/randi.xml, opcodes/random.xml,
- opcodes/randomh.xml, opcodes/randomi.xml, opcodes/rbjeq.xml,
- opcodes/readclock.xml, opcodes/reinit.xml, opcodes/repluck.xml,
- opcodes/reson.xml, opcodes/resonr.xml, opcodes/resony.xml,
- opcodes/reverb.xml, opcodes/reverbsc.xml, opcodes/rezzy.xml,
- opcodes/rireturn.xml, opcodes/rms.xml, opcodes/rnd.xml,
- opcodes/rnd31.xml, opcodes/rtclock.xml, opcodes/sandpaper.xml,
- opcodes/scale.xml, opcodes/scans.xml, opcodes/scantable.xml,
- opcodes/schedkwhen.xml, opcodes/schedule.xml,
- opcodes/schedwhen.xml, opcodes/sekere.xml, opcodes/semitone.xml,
- opcodes/sensekey.xml, opcodes/setctrl.xml, opcodes/shaker.xml,
- opcodes/sin.xml, opcodes/sinh.xml, opcodes/sininv.xml,
- opcodes/sleighbells.xml, opcodes/sndwarp.xml,
- opcodes/soundin.xml, opcodes/spat3d.xml, opcodes/sqrt.xml,
- opcodes/stix.xml, opcodes/streson.xml, opcodes/strtod.xml,
- opcodes/strtodk.xml, opcodes/strtol.xml, opcodes/strtolk.xml,
- opcodes/subinstr.xml, opcodes/subtracts.xml,
- opcodes/svfilter.xml, opcodes/system.xml, opcodes/table.xml,
- opcodes/tableng.xml, opcodes/tablexkt.xml,
- opcodes/tambourine.xml, opcodes/tan.xml, opcodes/tanh.xml,
- opcodes/taninv.xml, opcodes/taninv2.xml, opcodes/tbvcf.xml,
- opcodes/tempest.xml, opcodes/tempo.xml, opcodes/tempoval.xml,
- opcodes/timeinstk.xml, opcodes/timeinsts.xml, opcodes/timek.xml,
- opcodes/times.xml, opcodes/trigger.xml, opcodes/trirand.xml,
- opcodes/turnoff.xml, opcodes/unirand.xml, opcodes/vadd.xml,
- opcodes/vadd_i.xml, opcodes/vaddv.xml, opcodes/vaget.xml,
- opcodes/vaset.xml, opcodes/vcella.xml, opcodes/vco.xml,
- opcodes/vco2.xml, opcodes/vcopy.xml, opcodes/vdivv.xml,
- opcodes/veloc.xml, opcodes/vexp.xml, opcodes/vexp_i.xml,
- opcodes/vexpseg.xml, opcodes/vexpv.xml, opcodes/vibes.xml,
- opcodes/vibr.xml, opcodes/vibrato.xml, opcodes/vlinseg.xml,
- opcodes/vlowres.xml, opcodes/vmap.xml, opcodes/vmult.xml,
- opcodes/vmult_i.xml, opcodes/vmultv.xml, opcodes/voice.xml,
- opcodes/vpow.xml, opcodes/vpow_i.xml, opcodes/vpowv.xml,
- opcodes/vsubv.xml, opcodes/vtablei.xml, opcodes/vtablek.xml,
- opcodes/vtablewa.xml, opcodes/vtablewk.xml, opcodes/waveset.xml,
- opcodes/weibull.xml, opcodes/wgbow.xml, opcodes/wgbowedbar.xml,
- opcodes/wgbrass.xml, opcodes/wgclar.xml, opcodes/wgflute.xml,
- opcodes/wgpluck.xml, opcodes/wgpluck2.xml, opcodes/wguide1.xml,
- opcodes/wguide2.xml, opcodes/wterrain.xml, opcodes/xtratim.xml,
- opcodes/xyin.xml, opcodes/zacl.xml, opcodes/zakinit.xml,
- opcodes/zamod.xml, opcodes/zar.xml, opcodes/zarg.xml,
- opcodes/zaw.xml, opcodes/zawm.xml, opcodes/zir.xml,
- opcodes/ziw.xml, opcodes/ziwm.xml, opcodes/zkcl.xml,
- opcodes/zkmod.xml, opcodes/zkr.xml, opcodes/zkw.xml,
- opcodes/zkwm.xml, csound.css: Modified for syntax highlighting
-
-2007-01-31 13:35 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples-xml/: 0dbfs-1.csd.xml, 0dbfs.csd.xml, FLbox.csd.xml,
- FLbutton.csd.xml, FLcount.csd.xml, FLjoy.csd.xml,
- FLknob-2.csd.xml, FLknob.csd.xml, FLpanel-sensekey.csd.xml,
- FLpanel-sensekey2.csd.xml, FLpanel.csd.xml, FLroller.csd.xml,
- FLscroll.csd.xml, FLsetText.csd.xml, FLsetVal.csd.xml,
- FLsetcolor.csd.xml, FLslider-2.csd.xml, FLslider.csd.xml,
- FLtabs.csd.xml, FLtext.csd.xml, FLvalue.csd.xml, abs.csd.xml,
- active.csd.xml, active_k.csd.xml, adds.csd.xml, adsr.csd.xml,
- adsyn.csd.xml, adsynt.csd.xml, aftouch.csd.xml, alpass.csd.xml,
- ampdb.csd.xml, ampdbfs.csd.xml, ampmidi.csd.xml, areson.csd.xml,
- assign.csd.xml, atone.csd.xml, babo.csd.xml, babo_expert.csd.xml,
- balance.csd.xml, bamboo.csd.xml, barmodel.csd.xml,
- bbcutm.csd.xml, betarand.csd.xml, bexprnd.csd.xml,
- bformenc.csd.xml, biquad-2.csd.xml, biquad.csd.xml,
- birnd.csd.xml, bqrez.csd.xml, butterbp.csd.xml, butterbr.csd.xml,
- butterhp.csd.xml, butterlp.csd.xml, buzz.csd.xml, cabasa.csd.xml,
- cauchy.csd.xml, cent.csd.xml, cggoto.csd.xml, changed.csd.xml,
- checkbox.csd.xml, cigoto.csd.xml, ckgoto.csd.xml,
- clfilt_highpass.csd.xml, clfilt_lowpass.csd.xml, clip.csd.xml,
- cngoto.csd.xml, comb.csd.xml, cos.csd.xml, cosh.csd.xml,
- cosinv.csd.xml, cps2pch.csd.xml, cps2pch_19et.csd.xml,
- cps2pch_ftable.csd.xml, cpsmidi.csd.xml, cpsmidib.csd.xml,
- cpsoct.csd.xml, cpspch.csd.xml, cpstmid.csd.xml, cpstun.csd.xml,
- cpstuni.csd.xml, cpsxpch.csd.xml, cpsxpch_105et.csd.xml,
- cpsxpch_pierce.csd.xml, cpuprc.csd.xml, cross2.csd.xml,
- crunch.csd.xml, dam.csd.xml, dam_expanded.csd.xml, date.csd.xml,
- db.csd.xml, dbamp.csd.xml, dbfsamp.csd.xml, dcblock.csd.xml,
- dconv.csd.xml, define.csd.xml, define_args.csd.xml,
- delay.csd.xml, delayw.csd.xml, diff.csd.xml, diskin.csd.xml,
- diskin2.csd.xml, dispfft.csd.xml, display.csd.xml,
- distort1.csd.xml, divides.csd.xml, divz.csd.xml,
- downsamp.csd.xml, dripwater.csd.xml, dssi4cs.csd.xml,
- endin.csd.xml, envlpx.csd.xml, equals.csd.xml, event.csd.xml,
- event_named.csd.xml, exp.csd.xml, expcurve.csd.xml,
- expon.csd.xml, exprand.csd.xml, expseg.csd.xml, expsega.csd.xml,
- expsegr.csd.xml, filelen.csd.xml, filenchnls.csd.xml,
- filepeak.csd.xml, filesr.csd.xml, flanger.csd.xml,
- flashtxt.csd.xml, fluid-2.orc.xml, fluid.orc.xml,
- fluidAllOut.orc.xml, fluidcomplex.csd.xml, fmb3.csd.xml,
- fmbell.csd.xml, fmmetal.csd.xml, fmpercfl.csd.xml,
- fmrhode.csd.xml, fmvoice.csd.xml, fmwurlie.csd.xml, fof.csd.xml,
- fold.csd.xml, follow.csd.xml, follow2.csd.xml, foscil.csd.xml,
- foscili.csd.xml, fout.csd.xml, fout_poly.csd.xml,
- fprintks-2.csd.xml, fprintks.csd.xml, fprints.csd.xml,
- frac.csd.xml, freeverb.csd.xml, ftchnls.csd.xml, ftconv.csd.xml,
- ftgen.csd.xml, ftlen.csd.xml, ftlptim.csd.xml, ftmorf.csd.xml,
- ftsave.csd.xml, ftsr.csd.xml, gainslider.csd.xml, gauss.csd.xml,
- gbuzz.csd.xml, gen01.csd.xml, gen01computed.csd.xml,
- gen02.csd.xml, gen03.csd.xml, gen05.csd.xml, gen06.csd.xml,
- gen07.csd.xml, gen08.csd.xml, gen09.csd.xml, gen09square.csd.xml,
- gen10.csd.xml, gen11.csd.xml, gen12.csd.xml, gen13.csd.xml,
- gen14.csd.xml, gen19.csd.xml, gogobel.csd.xml, goto.csd.xml,
- grain.csd.xml, grain2.csd.xml, grain3.csd.xml, granule.csd.xml,
- greaterequal.csd.xml, greaterthan.csd.xml, guiro.csd.xml,
- harmon.csd.xml, hilbert.csd.xml, hilbert_barberpole.csd.xml,
- hrtfer.csd.xml, hsboscil.csd.xml, hsboscil_midi.csd.xml,
- ifthen.csd.xml, igoto.csd.xml, ihold.csd.xml, include.csd.xml,
- insremot.csd.xml, insremotM.csd.xml, instr.csd.xml, int.csd.xml,
- integ.csd.xml, interp.csd.xml, jitter.csd.xml, jitter2.csd.xml,
- kgoto.csd.xml, lessequal.csd.xml, lessthan.csd.xml, lfo.csd.xml,
- line.csd.xml, linrand.csd.xml, linseg.csd.xml, linsegr.csd.xml,
- log.csd.xml, log10.csd.xml, logbtwo.csd.xml, logcurve.csd.xml,
- loopseg.csd.xml, lorenz.csd.xml, loscil.csd.xml, loscil3.csd.xml,
- lowpass2.csd.xml, lowres.csd.xml, lowresx.csd.xml, lpf18.csd.xml,
- lphasor.csd.xml, lpshold.csd.xml, madsr.csd.xml, mandol.csd.xml,
- marimba.csd.xml, maxalloc.csd.xml, metro.csd.xml,
- midichannelaftertouch.csd.xml, midichn.csd.xml,
- midichn_advanced.csd.xml, midiin.csd.xml, midinoteoff.csd.xml,
- midinoteoncps.csd.xml, midinoteonkey.csd.xml,
- midinoteonoct.csd.xml, midinoteonpch.csd.xml,
- midipitchbend.csd.xml, midremot.csd.xml, mode.csd.xml,
- modulus.csd.xml, moog.csd.xml, moogvcf.csd.xml, moogvcf2.csd.xml,
- mpulse.csd.xml, multiplies.csd.xml, mute.csd.xml,
- nestedap.csd.xml, noise-2.csd.xml, noise.csd.xml,
- notequal.csd.xml, notnum.csd.xml, notnum_complex.csd.xml,
- nreverb.csd.xml, nreverb_ftable.csd.xml, nsamp.csd.xml,
- octave.csd.xml, octcps.csd.xml, octmidi.csd.xml,
- octmidib.csd.xml, octpch.csd.xml, opa.csd.xml,
- opcode_example.csd.xml, oscbnk.csd.xml, oscil.csd.xml,
- oscil3.csd.xml, oscili.csd.xml, oscilikt.csd.xml,
- osciliktp.csd.xml, oscilikts.csd.xml, oscils.csd.xml, p.csd.xml,
- pareq.csd.xml, pcauchy.csd.xml, pchbend.csd.xml, pchmidi.csd.xml,
- pchmidib.csd.xml, pchoct.csd.xml, pcount.csd.xml, peak.csd.xml,
- pgmassign.csd.xml, pgmassign_advanced.csd.xml,
- pgmassign_ignore.csd.xml, phaser1.csd.xml, phaser2.csd.xml,
- phasor.csd.xml, phasorbnk.csd.xml, pindex.csd.xml,
- pinkish.csd.xml, pitch.csd.xml, pitchamdf.csd.xml,
- planet.csd.xml, pluck.csd.xml, poisson.csd.xml, polyaft.csd.xml,
- portk.csd.xml, poscil.csd.xml, poscil3.csd.xml, pow.csd.xml,
- powoftwo.csd.xml, prealloc.csd.xml, print.csd.xml,
- printk.csd.xml, printk2.csd.xml, printks.csd.xml, prints.csd.xml,
- pvsbin.csd.xml, pvsdisp.csd.xml, pvsfwrite.csd.xml,
- pvsosc.csd.xml, pvspitch.csd.xml, r.csd.xml, raises.csd.xml,
- rand.csd.xml, randh.csd.xml, randi.csd.xml, random.csd.xml,
- randomh.csd.xml, randomi.csd.xml, rbjeq.csd.xml,
- readclock.csd.xml, reinit.csd.xml, repluck.csd.xml,
- reson.csd.xml, resonr.csd.xml, resony.csd.xml, reverb.csd.xml,
- reverbsc.csd.xml, rezzy.csd.xml, rms.csd.xml, rnd.csd.xml,
- rnd31.csd.xml, rnd31_krate.csd.xml, rnd31_seed7.csd.xml,
- rnd31_time.csd.xml, rtclock.csd.xml, sandpaper.csd.xml,
- scale.csd.xml, scans.csd.xml, scantable.csd.xml,
- schedkwhen.csd.xml, schedule.csd.xml, schedwhen.csd.xml,
- scogen.csd.xml, sekere.csd.xml, semitone.csd.xml,
- sensekey.csd.xml, setctrl.csd.xml, shaker.csd.xml, sin.csd.xml,
- sinh.csd.xml, sininv.csd.xml, sleighbells.csd.xml,
- sndwarp.csd.xml, soundin.csd.xml, spat3d_UHJ.csd.xml,
- spat3d_quad.csd.xml, spat3d_stereo.csd.xml, sqrt.csd.xml,
- stix.csd.xml, streson.csd.xml, subinstr.csd.xml,
- subinstr_named.csd.xml, subtracts.csd.xml, svfilter.csd.xml,
- system.csd.xml, table.csd.xml, tableng.csd.xml, tablexkt.csd.xml,
- tambourine.csd.xml, tan.csd.xml, tanh.csd.xml, taninv.csd.xml,
- taninv2.csd.xml, tbvcf.csd.xml, tempest.csd.xml, tempo.csd.xml,
- tempoval.csd.xml, timeinstk.csd.xml, timeinsts.csd.xml,
- timek.csd.xml, times.csd.xml, trigger.csd.xml, trirand.csd.xml,
- turnoff.csd.xml, unirand.csd.xml, vadd.csd.xml, vadd_i.csd.xml,
- vaddv.csd.xml, vaget.csd.xml, vaset.csd.xml, vcella.csd.xml,
- vco.csd.xml, vco2.csd.xml, vcopy.csd.xml, vdivv.csd.xml,
- veloc.csd.xml, vexp.csd.xml, vexp_i.csd.xml, vexpseg.csd.xml,
- vexpv.csd.xml, vibes.csd.xml, vibr.csd.xml, vibrato.csd.xml,
- vlinseg.csd.xml, vlowres.csd.xml, vmap.csd.xml, vmult-2.csd.xml,
- vmult.csd.xml, vmult_i.csd.xml, vmultv.csd.xml, voice.csd.xml,
- vpow.csd.xml, vpow_i.csd.xml, vpowv.csd.xml, vsubv.csd.xml,
- vtablei.csd.xml, vtablek.csd.xml, vtablewa.csd.xml,
- vtablewk.csd.xml, waveset.csd.xml, weibull.csd.xml,
- wgbow.csd.xml, wgbowedbar.csd.xml, wgbrass.csd.xml,
- wgclar.csd.xml, wgflute.csd.xml, wgpluck.csd.xml,
- wgpluck2.csd.xml, wgpluck_brighter.csd.xml, wguide1.csd.xml,
- wguide2.csd.xml, wterrain.csd.xml, xtratim-2.csd.xml,
- xtratim.csd.xml, xyin.csd.xml, zacl.csd.xml, zakinit.csd.xml,
- zamod.csd.xml, zar.csd.xml, zarg.csd.xml, zaw.csd.xml,
- zawm.csd.xml, zir.csd.xml, ziw.csd.xml, ziwm.csd.xml,
- zkcl.csd.xml, zkmod.csd.xml, zkr.csd.xml, zkw.csd.xml,
- zkwm.csd.xml: Initial commit
-
-2007-01-29 17:32 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples/ifthen.csd: File was empty
-
-2007-01-29 17:32 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples/FLpanel-sensekey2.csd: Closed CsOptions tag
-
-2007-01-29 17:31 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples/: date.csd, ftconv.csd: Added CsOptions
-
-2007-01-29 17:30 Francois Pinot <francois.pinot@numericable.fr>
-
- * examples/biquad-2.csd: Last closing tag was missing
-
-2007-01-27 11:43 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/vmap.csd: Small improvement
- * overview/building.xml: fixed cvs server name
-
-2007-01-25 15:45 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/pcount.xml: typo
-
-2007-01-24 08:45 Andrés Cabrera <mantaraya36@gmail.com>
-
- * quickref.py, csound.css: Added improvements by Francois Pinot
- * command/: flags.xml, flagscategory.xml: Added missing jack flags
-
-2007-01-22 10:17 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/realtimelinux.xml: typo
- * csound5/extending.xml, misc/modalfreq.xml: Added corrections by
- Francois Pinot
-
-2007-01-19 11:05 Andrés Cabrera <mantaraya36@gmail.com>
-
- * examples/FLsetText.csd, opcodes/flsettext.xml: Added example for
- FLsetText
- * cscore/main.xml: typo
-
-2007-01-19 07:37 Steven Yi <stevenyi@gmail.com>
-
- * overview/realtimelinux.xml: added information about dmix
-
-2007-01-18 10:10 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/fprintks.xml: typo
- * opcodes/fprintks.xml: typo
- * examples/FLsetVal.csd, opcodes/flsetval.xml,
- opcodes/flsetvali.xml: Added example and corrections to FLsetVal
- and FLsetVal_i
- * examples/fprintks-2.csd, examples/schottstaedt.orc,
- examples/scogen.csd, opcodes/fprintks.xml: Added more examples to
- fprintks
- * cscore/: advancd.xml, compile.xml, events.xml, main.xml: Added
- corrections by Francois Pinot
-
-2007-01-15 17:24 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/massign.xml: Small addition
- * examples/FLknob-2.csd, examples/FLknob.csd,
- examples/FLslider-2.csd, examples/FLslider.csd,
- opcodes/flknob.xml, opcodes/flslider.xml: Added new examples to
- FLknob and FLslider
- * utility/srconv.xml: Added corrections by Francois Pinot
- * overview/design.xml: typos, noted by Francois Pinot
-
-2007-01-13 09:38 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: massign.xml, midiin.xml: Added note about massign 0,0
-
-2007-01-12 20:02 Andrés Cabrera <mantaraya36@gmail.com>
-
- * images/noise-filter.png: improved noise entry and added example
- * examples/rms.csd, opcodes/rms.xml: Improved rms and added
- example.
- * opcodes/fluidEngine.xml: improvements in the fluid opcodes and
- examples
- * examples/noise-2.csd, opcodes/noise.xml: improved noise entry and
- added example
- * opcodes/fluidControl.xml: improvements in the fluid opcodes and
- examples
- * examples/: line.csd, linseg.csd: Improved examples for line and
- linseg
- * examples/portk.csd, opcodes/portk.xml: added example to portk
- * examples/midiin.csd, opcodes/midiin.xml: Added example to midiiin
- * examples/fluid-2.orc, examples/fluid.orc,
- opcodes/fluidAllOut.xml, opcodes/fluidCCi.xml,
- opcodes/fluidCCk.xml, opcodes/fluidEngine.xml,
- opcodes/fluidLoad.xml, opcodes/fluidNote.xml,
- opcodes/fluidOut.xml, opcodes/fluidProgramSelect.xml:
- improvements in the fluid opcodes and examples
- * images/engine.png: Added new design section
- * manual.xml, overview/design.xml, overview/using.xml: Added new
- design section
-
-2007-01-11 21:27 Andrés Cabrera <mantaraya36@gmail.com>
-
- * utility/: analysis.xml, convert.xml, csb64enc.xml, lpanal.xml,
- mixer.xml, other.xml, pvanal.xml, pvlook.xml, sndinfo.xml,
- srconv.xml, top.xml: Added corrections by Francois Pinot
- * opcodes/vmap.xml: Fixes to vmap
- * overview/using.xml: Added notes on buffers in new Csound Engine
- section
- * examples/biquad-2.csd, misc/modalfreq.xml, opcodes/biquad.xml:
- Added modal example to biquad
- * overview/: building.xml, using.xml: Corrected docbook issues
- * misc/modalfreq.xml, misc/top.xml, opcodes/mode.xml,
- opcodes/streson.xml, manual.xml: Added Modal frequency ratios
- appendix and references to it.
- * csound5/opcodes/py.xml: Added corrections by Francois Pinot
- * control/: fltkintro.xml: improved and updated information for
- FLTK opcodes
- * control/: fltkcontainers.xml, fltkgeneral.xml, fltkintro.xml,
- fltkother.xml, fltkvaluators.xml: improved and updated
- information for FLTK opcodes
- * miscopcodes/top.xml: Improved system opcode entry and added
- example.
- * examples/system.csd, manual.xml, opcodes/system.xml,
- strings/top.xml: Improved system opcode entry and added example.
- * examples/poisson.csd, images/Poisson_distribution_PMF.png,
- images/poisson_equation.png, opcodes/poisson.xml: Improved
- information and examples for the poisson opcode
-
-2007-01-10 05:59 John ffitch <jpff@codemist.co.uk>
-
- * Makefile: system
-
-2007-01-09 17:35 John ffitch <jpff@codemist.co.uk>
-
- * manual.xml, opcodes/top.xml, opcodes/system.xml: system call
-
-2007-01-09 09:31 Andrés Cabrera <mantaraya36@gmail.com>
-
- * sigmod/envelope.xml: No longer used. moved to siggen/envelope.xml
- * vectorial/: envelopeGenerators.xml, limiting.xml: Small fix.
- * opcodes/: linsegr.xml, release.xml: Fixed typos
- * examples/FLpanel-sensekey2.csd, opcodes/sensekey.xml: Added new
- example to sensekey
-
-2007-01-09 02:29 John ffitch <jpff@codemist.co.uk>
-
- * opcodes/printf.xml: typo in printf
-
-2007-01-04 21:37 gogins
-
- * overview/building.xml: Expanded "Building" for MinGW.
-
-2007-01-01 07:42 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: seqtime2.xml, timedseq.xml: Added and expanded "See
- also" section
- * opcodes/top.xml: Moved timedseq to correct place
- * csound5/opcodes/mixer.xml, opcodes/monitor.xml: Fixed "mixer"
- name confilct thanks to Francois Pinot
- * scoregens/q.xml: Moved indexterm to correct place
- * scoregens/: gen03.xml, gen12.xml, gen18.xml, gen28.xml,
- gen33.xml, gen42.xml, gen51.xml, gen52.xml, v.xml: Added
- corrections by Francois Pinot
-
-2006-12-27 18:47 gogins
-
- * overview/building.xml: A bit of clarification on installing
- MinGW.
-
-2006-12-20 08:07 Andrés Cabrera <mantaraya36@gmail.com>
-
- * score/: macros.xml, mult.xml, nextp.xml, preproc.xml,
- statemnt.xml: Incorporated suggestions by Francois Pinot
-
-2006-12-16 23:28 Andrés Cabrera <mantaraya36@gmail.com>
-
- * scoregens/top.xml: Fixed incorrect links
- * orch/statemnt.xml, scoregens/top.xml: Moved score statements to a
- better place
- * opcodes/linsegr.xml: Changed note on maximum duration thanks to
- Jonathan Murphy and Istvan Varga
- * Makefile, csound.css: Added css by Francois Pinot and modified
- Makefile to copy it appropriately
-
-2006-12-15 09:43 Andrés Cabrera <mantaraya36@gmail.com>
-
- * overview/using.xml: Added optimizing performance section
- * examples/pcount.csd, examples/pindex.csd, opcodes/pcount.xml,
- opcodes/pindex.xml, opcodes/top.xml, manual.xml: Added pcount and
- pindex entries and examples
-
-2006-12-14 10:54 Andrés Cabrera <mantaraya36@gmail.com>
-
- * preface/copy.xml: Removed repeated line
- * Makefile, manual.xml, csound5/licenses.xml, preface/copy.xml,
- preface/preface.xml, preface/top.xml: Removed redundant license
- information from csound5/licenses.xml
- * preface/: csoundav.xml, name.xml, scope.xml: Removed, Not used
- * orch/iblock.xml, orch/kvar.xml, orch/namedInstruments.xml,
- command/unifile.xml: Minor corrections suggested by Francois
- Pinot
- * opcodes/: moogvcf.xml, moogvcf2.xml: Expanded explanation
- * opcodes/sr.xml: Typo
- * opcodes/sr.xml: Expanded explanation
- * opcodes/moogvcf2.xml: Added note about amplitude and 0dbfs
- * opcodes/moogvcf.xml: Fixed layout
- * sigmod/ampmod.xml: Typo
-
-2006-12-12 10:40 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: kr.xml, ksmps.xml: Corrected and expanded information
- on kr/ksmps relation
-
-2006-12-11 17:25 Andrés Cabrera <mantaraya36@gmail.com>
-
- * opcodes/: envlpxr.xml, expsegr.xml, linenr.xml, linsegr.xml,
- madsr.xml, mxadsr.xml, release.xml: Added more crossreferences
- and information about xtratim
- * examples/xtratim-2.csd, examples/xtratim.csd,
- opcodes/xtratim.xml: Added examples and improved xtratim (thanks
- to Jonathan Murphy)
- * opcodes/vcella.xml, examples/vcella.csd: Corrected vcella syntax
- and added example by Anthony Kozar
- * opcodes/: vpow.xml, vpow_i.xml, vpowv.xml, vpowv_i.xml: Changed
- "elevated" for "raised". Thanks to Anthony Kozar
- * opcodes/: vrandh.xml, vrandi.xml: Fixed second description.
- Reported By Anthony Kozar
-
-2006-12-09 12:22 Andrés Cabrera <mantaraya36@gmail.com>
-
- * control/timeread.xml: Added date and dates
- * opcodes/denorm.xml: Added notes on usage
- * opcodes/: dates.xml, date.xml: Fixed refentry id and category
- * opcodes/insglobal.xml, opcodes/insremot.xml,
- opcodes/midglobal.xml, opcodes/midremot.xml,
- examples/midremot.csd: Made layout consistent and added links
- * examples/lphasor.csd, examples/tablexkt.csd, opcodes/lphasor.xml,
- opcodes/tablexkt.xml: Added examples to lphasor and tablexkt by
- Jonathan Murphy
- * examples/: 01hpschd.sf2, 07AcousticGuitar.sf2, 19Trumpet.sf2,
- 22Bassoon.sf2: Trimmed down soundfonts
-
-2006-12-09 07:31 John ffitch <jpff@codemist.co.uk>
-
- * Makefile, manual.xml, examples/date.csd, opcodes/date.xml,
- opcodes/dates.xml, opcodes/top.xml: date and dates
-
-2006-12-05 08:03 Andrés Cabrera <mantaraya36@gmail.com>
-
- * command/top.xml: Added hyperlinks to the list in this section
- * command/top.xml: Small clarification for overrides
-
-2006-12-04 15:25 Andrés Cabrera <mantaraya36@gmail.com>
-
- * oscnetwork/Remote.xml: Fixed links
- * opcodes/: insglobal.xml, insremot.xml, midglobal.xml,
- midremot.xml: Minor formatting fixes
- * csound5/licenses.xml: Corrected link for copying.txt
- * examples/insremot.csd, examples/insremotM.csd, manual.xml,
- quickref.py, examples/midremot.csd, opcodes/insglobal.xml,
- opcodes/insremot.xml, opcodes/midglobal.xml,
- opcodes/midremot.xml, oscnetwork/Remote.xml, oscnetwork/top.xml:
- Added chapter, references and quickref.py information for the
- remote opcodes
- * Makefile: Corrected link for copying.txt
- * overview/building.xml: Corrected some hyper links.
- * opcodes/: in.xml, ino.xml, inq.xml, ins.xml: Added link to inch
-
-2006-12-04 John ffitch <jpff@codemist.co.uk>
-
- * Added documentation for insremot, insglobal, midremote and
- midglobal opcodes
-
-2006-12-02 Andrés Cabrera <mantaraya36@gmail.com>
- * Added examples/vmap.xml
- * Added new parameters for vmap
-
-2006-11-27 Steven Yi <stevenyi@gmail.com>
- * Added documentation for FLcloseButton, FLexecButton, and FLvkeybd
-
-2006-11-26 Andrés Cabrera <mantaraya36@gmail.com>
- * Major section reorganization
- * Many small corrections
- * References vaget, vaset, flooper2 and syncloop to the corresponding
- sections
- * Added csb64enc utility
- * Modified synopsis tag (by splitting in several lines) in many files
- to correct pdf output
-
-2006-11-23 Andrés Cabrera <mantaraya36@gmail.com>
- * Added realtime section for windows
- * Many small corrections
-
-2006-09-12 Steven Yi <stevenyi@gmail.com>
- * Renamed avar_get and avar_set opcodes to vaget and vaset
-
-2006-09-04 Steven Yi <stevenyi@gmail.com>
- * Added avar_get and avar_set opcodes
-
-2006-08-11 Andrés Cabrera <mantaraya36@gmail.com>
- * Vectorial opcodes: Documented new features and added new examples
- * Added 'See also' references to convolve, pconvolve and dconv.
-
-2006-08-07 Andrés Cabrera <mantaraya36@gmail.com>
- * preface/gettingstarted.xml: Updated Getting Started section
- * examples/wguide2.csd: Added example for wguide2 by John ffitch
-
-2006-07-20 Andrés Cabrera <mantaraya36@gmail.com>
- * Added notnum example by David Akbari (examples/notnum_complex.csd)
- * Unified flags from Csound4 and Csound5 into a single list, and
- created section of flags by category (command/flagscategory.xml)
-
-2006-07-19 Victor Lazzarini <victor.lazzarini@nuim.ie>
- * Added flooper2 and syncloop opcodes
-
-2006-07-17 Andrés Cabrera <mantaraya36@gmail.com>
- * Converted all .orc and .sco files to .csd and moved old files
- to attic/examples
- * Added section for Real-time Audio configuration for Linux
- written mostly by Jonathan Murphy
- * Started writing a getting started section
-
-2006-07-08 Andrés Cabrera <mantaraya36@gmail.com>
- * Many small corrections and improvements
- * Added stack opcodes (stack, push, pop, push_f, pop_f)
-
-2006-07-05 Andrés Cabrera <mantaraya36@gmail.com>
- * Added opcodes/sndinfo.xml and stub at opcodes/loscilx.xml
- * Minor improvements in categorization
-
-2006-07-05 jpff <jpff@codemist.co.uk>
-
- * opcodes/socksend.xml:
- * opcodes/sockrecv.xml: New documentation
-
-2006-06-30 Andrés Cabrera <mantaraya36@gmail.com>
- * Added UDO chapter orch (orch/UDO.xml)
- * Added info tag for more opcodes (about 90% done now)
- * Many small fixes
-
-2006-06-30 Andrés Cabrera <mantaraya36@gmail.com>
- * Many small corrections
- * Reorganized plugin hosting section
- * Added info tag for most opcode to generate the Quick Reference
-
-2006-06-22 Andrés Cabrera <mantaraya36@gmail.com>
- * Created script quickref.py which parses all entries and generates
- a categorized quick reference.
- (Still many opcodes need the info tag for this to work properly)
- * Created script makeframes.py which generates a frames version of
- the manual from the html version
- * Added new vectorial opcodes vadd_i, vmult_i, v_exp_i and vpow_i
- * Many small fixes
-
-2006-06-02 Andrés Cabrera <mantaraya36@gmail.com>
- * Reorgranized MIDI section
- * Added monitor opcode
- * Wrapped most link tags within listitem with para for safety
-
-2006-06-01 jpff <jpff@codemist.co.uk>
-
- * utility/extractor.xml: Added new desciption of old utility
-
-2006-05-31 jpff <jpff@codemist.co.uk>
-
- * utility/sndinfo.xml: Added documentation of options -i and -b
-
-2006-05-28 jpff <jpff@codemist.co.uk>
-
- * Added mixer utility
-
- * Added description of scale utility
-
-2006-05-25 Andrés Cabrera <mantaraya36@gmail.com>
- * Updated fluid synth opcodes examples for new syntax
- * Small typo fix in vdelayk
- * Updated mailing list and bug tracker information
-
-2006-05-24 Steven Yi <stevenyi@gmail.com>
- * Fixed doc regarding old limitation on 20 depth for #includes
- * Added q to score statements page
- * fixed spacing of ^+ and ^- in Score Preprocessing section (can not have
- spaces)
-
-2006-05-16 Andrés Cabrera <mantaraya36@gmail.com>
- * Started large redesign of Overview section
-
-2006-05-13 Andrés Cabrera <mantaraya36@gmail.com>
- * Added chapter on ATS opcodes on the spectral processing section
-
-2006-04-18 Andrés Cabrera <mantaraya36@gmail.com>
- * Added chapter on environment variables, and other minor fixes (Thanks
- to Istvan Varga, Art Hunkins, David Akbari, Matt Ingalls, Victor Lazzarini
- and others)
-
-2006-03-19 Andrés Cabrera <mantaraya36@gmail.com>
- * fixed capitalization issues on all FL opcodes.
- * Added entries for ATS opcodes (ATSinfo, ATSread, ATSreadnz, etc.)
-
-2006-03-11 Anthony Kozar <anthonykozar@sbcglobal.net>
- * Added documentation for max, maxabs, maxaccum, maxabsaccum, min,
- minabs, minaccum, minabsaccum.
-
-2006-01-13 Istvan Varga <ivarga@csounds.com>
- * added documentation for chnmix and chnclear
-
-2005-08-10 John <jpff@codemist.co.uk>
-
- * control/macros.xml: Add #ifdef
-
-2005-07-31 Andres Cabrera <andres@geminiflux.com>
- * Corrected dssi4cs entries and linking
- * Added vcopy_i, vrandh, vrandi
-
-2005-07-30 Andres Cabrera <andres@geminiflux.com>
- * Added entries for dssi4cs opcodes dssiinit, dssiaudio, dssilist, dssictls.
-
-2005-07-26 Andres Cabrera <andres@geminiflux.com>
- * Capitalized FL opcode entries to make them compatible with blue
-
-2005-07-06 John ffitch <jpff@cs.bath.ac.uk>
-
- * opcodes/fprints.xml: Arguments are irate not krate
-
-2005-06-30 Victor Lazzarini <Victor.Lazzarini@nuim.ie>
- * added opcodes/fid.xml, partials.xml, tradsyn.xml, sinsyn.xml and
- resyn.xml new streaming spectral analysis, partial tracking and
- resynthesis opcodes.
-
-2005-06-18 Andres Cabrera <andres@geminiflux.com>
- * added more vectorial opcodes
- * added gen menu in scoregens/top.
-
-2005-06-17 Steven Yi <stevenyi@gmail.com>
- * Pushed new release of manual to Csounds.com
-
-2005-06-09 John ffitch <jpff@codemist.co.uk>
-
- * opcodes/pvsanal.xml: Changed variables in example to avoid
- opcode names
-
-2005-06-07 Steven Yi <stevenyi@gmail.com>
- * rnd: added note about running at different rates and updated
- examples from John Harrison
- * int, frac: added note that runs at audio rate with Csound5 from Istvan
- Varga
- * ceil, round, floor: added entries from Istvan Varga, added links in
- mathematical functions section
- * k(): added k function entry from Istvan Varga
-
-2005-06-06 Andres Cabrera <andres@geminiflux.com>
- * Added docs for vaddv,vsubv,vmultv,vdivv,vexpv,vpowv
- * Added miditempo
-
-2005-06-06 Steven Yi <stevenyi@gmail.com>
- * timeinstk: added note "Called at both i-time as well as k-time."
- from John Harrison
- * port: added note about negative value for skipping
- intiialization from John Harrison
-
-2005-05-27 Steven Yi <stevenyi@gmail.com>
- * Fix for reverbsc.xml (link instead of ulink)
- * Pushed New Release to Csounds.com
-
-2005-05-25 Steven Yi <stevenyi@gmail.com>
- * Added turnoff2 entry
- * Added entries for makecsd and cs utilities
- * Integrated Victor's manual entries for pvsarp, pvsvoc, flooper, and
- sndloop
-
-2005-05-25 Steven Yi <stevenyi@gmail.com>
- * Added denorm entry
- * Added extended commandline flags for CS5
- * Added rbjeq entry
-
-2005-05-09 Steven Yi <stevenyi@gmail.com>
- * Added ChangeLog
- * Added documentation for Istvan's strtod, strtodk, strtol, strtolk to
- Csound5 opcodes
- * Added --strset to command-line options
diff --git a/Makefile b/Makefile
index 8370780..20a2718 100644
--- a/Makefile
+++ b/Makefile
@@ -6,15 +6,13 @@
# on your system.
# *************************************************************************
BASENAME=Csound
-BASENAMEOLPC=OLPCsound
-VERSION=5.13
+VERSION=6.02
# export PATH=$PATH:/home/andres/bin/fop-0.20.5/
# export JAVA_HOME=/usr/lib/jvm/java-6-sun/
# Output Directories
HTML_DIR=html
-HTMLXO_DIR=manualOLPC
HTML_ONE_DIR=singleHTML
HTMLHELP_DIR=htmlhelp
MANPAGES_DIR=manpages
@@ -93,7 +91,8 @@ OPCODES = opcodes/0dbfs.xml opcodes/abetarand.xml \
opcodes/clfilt.xml opcodes/clip.xml opcodes/clock.xml \
opcodes/clockoff.xml opcodes/clockon.xml opcodes/cngoto.xml \
opcodes/comb.xml opcodes/control.xml opcodes/convle.xml \
- opcodes/convolve.xml opcodes/cos.xml opcodes/cosh.xml \
+ opcodes/convolve.xml opcodes/copya2ftab.xml opcodes/copyf2array.xml \
+ opcodes/cos.xml opcodes/cosh.xml \
opcodes/cosinv.xml opcodes/cps2pch.xml opcodes/cpsmidi.xml \
opcodes/cpsmidib.xml opcodes/cpsoct.xml opcodes/cpspch.xml \
opcodes/cpstmid.xml opcodes/cpstun.xml opcodes/cpstuni.xml \
@@ -110,7 +109,8 @@ OPCODES = opcodes/0dbfs.xml opcodes/abetarand.xml \
opcodes/distort1.xml opcodes/divides.xml opcodes/divz.xml \
opcodes/dollar.xml opcodes/downsamp.xml opcodes/dripwater.xml \
opcodes/dumpk.xml opcodes/dumpk2.xml opcodes/dumpk3.xml \
- opcodes/dumpk4.xml opcodes/duserrnd.xml opcodes/else.xml \
+ opcodes/dumpk4.xml opcodes/duserrnd.xml opcodes/dust.xml \
+ opcodes/dust2.xml opcodes/else.xml \
opcodes/elseif.xml opcodes/endif.xml opcodes/endin.xml \
opcodes/endop.xml opcodes/envlpx.xml opcodes/envlpxr.xml \
opcodes/equals.xml opcodes/event.xml opcodes/exitnow.xml \
@@ -149,11 +149,14 @@ OPCODES = opcodes/0dbfs.xml opcodes/abetarand.xml \
opcodes/follow.xml opcodes/follow2.xml opcodes/foscil.xml \
opcodes/foscili.xml opcodes/fout.xml opcodes/fouti.xml \
opcodes/foutir.xml opcodes/foutk.xml opcodes/fprintks.xml \
- opcodes/fprints.xml opcodes/frac.xml opcodes/ftchnls.xml \
+ opcodes/fprints.xml opcodes/frac.xml opcodes/fractalnoise.xml \
+ opcodes/ftchnls.xml \
opcodes/ftgen.xml opcodes/ftlen.xml opcodes/ftload.xml \
opcodes/ftloadk.xml opcodes/ftlptim.xml opcodes/ftmorf.xml \
opcodes/ftsave.xml opcodes/ftsavek.xml opcodes/ftsr.xml \
- opcodes/gain.xml opcodes/gauss.xml opcodes/gbuzz.xml \
+ opcodes/gain.xml opcodes/gauss.xml opcodes/gausstrig.xml \
+ opcodes/gbuzz.xml opcodes/gendy.xml opcodes/gendyc.xml \
+ opcodes/gendyx.xml \
opcodes/gogobel.xml opcodes/goto.xml opcodes/grain.xml \
opcodes/grain2.xml opcodes/grain3.xml opcodes/granule.xml \
opcodes/greaterequal.xml opcodes/greaterthan.xml opcodes/guiro.xml \
@@ -257,6 +260,8 @@ OPCODES = opcodes/0dbfs.xml opcodes/abetarand.xml \
opcodes/powoftwo.xml opcodes/prealloc.xml opcodes/print.xml \
opcodes/printk.xml opcodes/printk2.xml opcodes/printks.xml \
opcodes/prints.xml opcodes/product.xml opcodes/pset.xml \
+ opcodes/ptable.xml opcodes/ptable3.xml opcodes/ptablei.xml \
+ opcodes/ptablew.xml \
opcodes/pvadd.xml opcodes/pvbufread.xml opcodes/pvcross.xml \
opcodes/pvinterp.xml opcodes/pvoc.xml opcodes/pvread.xml \
opcodes/pvsadsyn.xml opcodes/pvsanal.xml opcodes/pvsarp.xml \
@@ -489,48 +494,6 @@ html-bw: $(XSL_HTML) manual.xml $(SRCS) Makefile
rm -rf ${HTML_DIR}/images/callouts/CVS
rm -rf ${HTML_DIR}/examples/CVS
-htmlXO: $(XSL_HTML) manualXO.xml $(SRCS) Makefile
- -mkdir -p ${HTMLXO_DIR}
- xsltproc --xinclude -o ${HTMLXO_DIR}/ ${XSL_HTML} manualXO.xml
- cp -R images ${HTMLXO_DIR}/
- cp -R imagesXO ${HTMLXO_DIR}/
- cp -R examples ${HTMLXO_DIR}/
- cp copying.txt ${HTMLXO_DIR}/
- cp csoundXO.css ${HTMLXO_DIR}/csound.css
- rm -rf ${HTMLXO_DIR}/flbutbank.png
- rm -rf ${HTMLXO_DIR}/flbutton.png
- rm -rf ${HTMLXO_DIR}/flcount.png
- rm -rf ${HTMLXO_DIR}/flknob_3d.png
- rm -rf ${HTMLXO_DIR}/flknob_clock.png
- rm -rf ${HTMLXO_DIR}/flknob_flat.png
- rm -rf ${HTMLXO_DIR}/flknob_pie.png
- rm -rf ${HTMLXO_DIR}/flpack.png
- rm -rf ${HTMLXO_DIR}/flpanel.png
- rm -rf ${HTMLXO_DIR}/flroller.png
- rm -rf ${HTMLXO_DIR}/flscroll.png
- rm -rf ${HTMLXO_DIR}/flslider_horizontal-engraved.png
- rm -rf ${HTMLXO_DIR}/flslider_horizontal-fill.png
- rm -rf ${HTMLXO_DIR}/flslider_horizontal-nice.png
- rm -rf ${HTMLXO_DIR}/fltabs.png
- rm -rf ${HTMLXO_DIR}/fltabs_joysticks-tab.png
- rm -rf ${HTMLXO_DIR}/fltabs_rollers-tab.png
- rm -rf ${HTMLXO_DIR}/fltabs_sliders-tab.png
- rm -rf ${HTMLXO_DIR}/fltext.png
- rm -rf ${HTMLXO_DIR}/symbols.png
- rm -rf ${HTMLXO_DIR}/virtualkeyboard.png
- rm -rf ${HTMLXO_DIR}/images/CVS
- rm -rf ${HTMLXO_DIR}/images/callouts/CVS
- rm -rf ${HTMLXO_DIR}/examples/CVS
-
-bundleXO: htmlXO
- cp -R ${HTMLXO_DIR} ${BASENAMEOLPC}${VERSION}_manual
- mkdir $(BASENAMEOLPC)$(VERSION)_manual/library
- cp XO/library.info $(BASENAMEOLPC)$(VERSION)_manual/library
- rm -Rd $(BASENAMEOLPC)$(VERSION)_manual.xol
- zip -r /tmp/$(BASENAMEOLPC)$(VERSION)_manual.xol ${BASENAMEOLPC}${VERSION}_manual
- mv /tmp/$(BASENAMEOLPC)$(VERSION)_manual.xol ./
- rm -Rd $(BASENAMEOLPC)$(VERSION)_manual
-
html-onechunk: $(XSL_HTML_ONECHUNK) manual.xml $(SRCS) Makefile
-mkdir -p ${HTML_ONE_DIR}
xsltproc --xinclude -o ${HTML_ONE_DIR}/ ${XSL_HTML_ONECHUNK} manual.xml
@@ -547,23 +510,12 @@ pdf: $(XSL_PRINT) manual.xml $(SRCS) Makefile
fop.sh -fo $(BASENAME)$(VERSION)_manual.fo -pdf $(BASENAME)$(VERSION)_manual.pdf
rm $(BASENAME)$(VERSION)_manual.fo
-pdfXO: $(XSL_PRINT) manualXO.xml $(SRCS) Makefile
- xsltproc --xinclude -o $(BASENAMEOLPC)$(VERSION)_manual.fo ${XSL_PRINT} manualXO.xml
- fop.sh -fo $(BASENAMEOLPC)$(VERSION)_manual.fo -pdf $(BASENAMEOLPC)$(VERSION)_manual.pdf
- rm $(BASENAMEOLPC)$(VERSION)_manual.fo
-
pdfA4: $(XSL_PRINT) manual.xml $(SRCS) Makefile
xsltproc --stringparam paper.type A4 --xinclude \
-o $(BASENAME)$(VERSION)_manual_A4.fo ${XSL_PRINT} manual.xml
fop.sh -fo $(BASENAME)$(VERSION)_manual_A4.fo -pdf $(BASENAME)$(VERSION)_manual_A4.pdf
rm $(BASENAME)$(VERSION)_manual_A4.fo
-pdfA4XO: $(XSL_PRINT) manualXO.xml $(SRCS) Makefile
- xsltproc --stringparam paper.type A4 --xinclude \
- -o $(BASENAMEOLPC)$(VERSION)_manual_A4.fo ${XSL_PRINT} manualXO.xml
- fop.sh -fo $(BASENAMEOLPC)$(VERSION)_manual_A4.fo -pdf $(BASENAMEOLPC)$(VERSION)_manual_A4.pdf
- rm $(BASENAMEOLPC)$(VERSION)_manual_A4.fo
-
htmlhelp: ${XSL_HTMLHELP} manual.xml $(SRCS)
-mkdir -p ${HTMLHELP_DIR}
xsltproc --xinclude -o ${HTMLHELP_DIR}/ ${XSL_HTMLHELP} manual.xml
@@ -584,11 +536,6 @@ html-clean:
rm -rf html
rm -f examples/*.csd~
-xo-clean:
- rm -rf htmlXO
- rm -rf ${HTMLXO_DIR}
- rm -f *.xol
-
pdf-clean:
rm -f *.pdf *.fo
@@ -599,7 +546,7 @@ htmlhelp-clean:
manpages-clean:
rm -rf manpages
-clean: html-clean pdf-clean htmlhelp-clean manpages-clean xo-clean
+clean: html-clean pdf-clean htmlhelp-clean manpages-clean
rm -f $(XSL_HTML) $(XSL_HTML_ONECHUNK) $(XSL_PRINT) $(XSL_HTMLHELP)
distclean: clean
diff --git a/STKopcodes/top.xml b/STKopcodes/top.xml
new file mode 100644
index 0000000..168eb47
--- /dev/null
+++ b/STKopcodes/top.xml
@@ -0,0 +1,84 @@
+<chapter id="STKTop">
+ <title>STK Opcodes</title>
+ <note>
+ <para>
+ These opcodes are an optional component of Csound5. You can check if
+ they are installed by using the command 'csound -z' which lists all
+ available opcodes.
+ </para>
+ </note>
+
+ <para>
+ The STK opcodes can be built in several ways. If you are already building
+ Csound, simply follow the directions at the top of the Opcodes/stk/stkOpcodes.cpp
+ file.
+ </para>
+ <para>
+ If you do not wish to build all of Csound, you can still build the STK
+ opcodes as an opcode plugin (shared library). You can adapt the example from
+ the Csound GIT repository in the pluginSDK directory. Replace the
+ pluginSDK/examplePlugin.c file with the opcodes/stk/stkOpcodes.cpp file, and
+ change the name of this file in the SConstruct build file. Then use scons to
+ build the opcodes. Be sure to use the scons command-line option useDouble=0
+ if you have single-precision (32 bit) Csound, and useDouble=1 if you have
+ double-precision (64 bit) Csound.
+ </para>
+ <para>
+ You must also either add all the STK source code files and include path to
+ the SConstruct file, or you must add a prebuilt STK library and include path
+ to the SConstruct file. The STK source files would go near line 296 in the
+ SConstruct file:
+
+<programlisting>makePlugin(pluginEnvironment, 'stkOpcodes', Split('''
+ stkOpcodes.cpp
+ ... STK source files ...
+'''))</programlisting>
+ </para>
+
+ <para>The STK family of opcodes wraps:
+ <itemizedlist>
+ <listitem><link linkend="STKBandedWG"><citetitle>STKBandedWG</citetitle></link></listitem>
+ <listitem><link linkend="STKBeeThree"><citetitle>STKBeeThree</citetitle></link></listitem>
+ <listitem><link linkend="STKBlowBotl"><citetitle>STKBlowBotl</citetitle></link></listitem>
+ <listitem><link linkend="STKBlowHole"><citetitle>STKBlowHole</citetitle></link></listitem>
+ <listitem><link linkend="STKBowed"><citetitle>STKBowed</citetitle></link></listitem>
+ <listitem><link linkend="STKBrass"><citetitle>STKBrass</citetitle></link></listitem>
+ <listitem><link linkend="STKClarinet"><citetitle>STKClarinet</citetitle></link></listitem>
+ <listitem><link linkend="STKDrummer"><citetitle>STKDrummer</citetitle></link></listitem>
+ <listitem><link linkend="STKFlute"><citetitle>STKFlute</citetitle></link></listitem>
+ <listitem><link linkend="STKFMVoices"><citetitle>STKFMVoices</citetitle></link></listitem>
+ <listitem><link linkend="STKHevyMetl"><citetitle>STKHevyMetl</citetitle></link></listitem>
+ <listitem><link linkend="STKMandolin"><citetitle>STKMandolin</citetitle></link></listitem>
+ <listitem><link linkend="STKModalBar"><citetitle>STKModalBar</citetitle></link></listitem>
+ <listitem><link linkend="STKMoog"><citetitle>STKMoog</citetitle></link></listitem>
+ <listitem><link linkend="STKPercFlut"><citetitle>STKPercFlut</citetitle></link></listitem>
+ <listitem><link linkend="STKPlucked"><citetitle>STKPlucked</citetitle></link></listitem>
+ <listitem><link linkend="STKResonate"><citetitle>STKResonate</citetitle></link></listitem>
+ <listitem><link linkend="STKRhodey"><citetitle>STKRhodey</citetitle></link></listitem>
+ <listitem><link linkend="STKSaxofony"><citetitle>STKSaxofony</citetitle></link></listitem>
+ <listitem><link linkend="STKShakers"><citetitle>STKShakers</citetitle></link></listitem>
+ <listitem><link linkend="STKSimple"><citetitle>STKSimple</citetitle></link></listitem>
+ <listitem><link linkend="STKSitar"><citetitle>STKSitar</citetitle></link></listitem>
+ <listitem><link linkend="STKStifKarp"><citetitle>STKStifKarp</citetitle></link></listitem>
+ <listitem><link linkend="STKTubeBell"><citetitle>STKTubeBell</citetitle></link></listitem>
+ <listitem><link linkend="STKVoicForm"><citetitle>STKVoicForm</citetitle></link></listitem>
+ <listitem><link linkend="STKWhistle"><citetitle>STKWhistle</citetitle></link></listitem>
+ <listitem><link linkend="STKWurley"><citetitle>STKWurley</citetitle></link></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ For more information about the STK opcodes, visit The Synthesis ToolKit in
+ C++ (STK) web site at <ulink
+ url="https://ccrma.stanford.edu/software/stk">https://ccrma.stanford.edu/software/stk</ulink>.
+ </para>
+
+ <bridgehead>Credits</bridgehead>
+ <para>
+ This implementation of the STK unit generators was written by Perry R. Cook
+ and Gary P. Scavone.
+ </para>
+ <para>
+ The opcodes were further adapted as a plugin for Csound 5 by Michael Gogins.
+ </para>
+</chapter>
diff --git a/TODO b/TODO
deleted file mode 100644
index 55c79a9..0000000
--- a/TODO
+++ /dev/null
@@ -1,8 +0,0 @@
-Opcodes to be Documented:
-
-Move: tab_i (drafted by JPff)
- tabw (drafted by JPff)
- tabw_i (drafted by JPff)
-From the tab entry to their own entry.
-
- cogoto (is this necessary?) \ No newline at end of file
diff --git a/XO/library.info b/XO/library.info
deleted file mode 100644
index 8b73329..0000000
--- a/XO/library.info
+++ /dev/null
@@ -1,12 +0,0 @@
-[Library]
-name = CsoundXO Manual
-global_name = org.csounds.com
-long_name = CsoundXO Manual
-library_version = 1
-host_version = 1
-l10n = false
-locale = en
-category = media
-subcategory = sound
-activity = Browse
-activity_start = index.html \ No newline at end of file
diff --git a/beats/top.xml b/beats/top.xml
deleted file mode 100644
index f7f3641..0000000
--- a/beats/top.xml
+++ /dev/null
@@ -1,272 +0,0 @@
-<chapter id="BeatsTop">
- <title>Beats</title>
-
- <para>
- <indexterm id="IndexBeats"><primary>Beats</primary></indexterm>
- <emphasis>Beats</emphasis> is an alternative score language that is aimed at
- specifying simple scores in standard western tunings and
- rhythms. <emphasis>Beats</emphasis> can be invoked via the
- CsScore component of a standard .csd score with
- <emphasis>bin="beats"</emphasis> or as stand-alone
- program which generates a standard numeric score.
- </para>
-
- <para>
- As a stand-alone the program reads standard input and writes to
- standard output.
- </para>
-
- <section id="Syntax">
-
- <para>
- The <emphasis>beats</emphasis> language is very simple, having
- only 5 kinds of statement, and only one of them has any
- complexity. In general the introductory word for each statement
- type is case insensitive, so "QUIT", "quit", "QuIt"... are all
- the same. Comments can be introduced in either ANSI C89 format
- or C++ (that is either /* ... */ or // to the end of line) or
- Csound's semicolo.
- </para>
- <itemizedlist>
- <listitem><emphasis>QUIT</emphasis>
- <para>
- Causes beats to exit. For
- flexibility the command <emphasis>END</emphasis> is also
- accepted for the identical action.
- </para>
- </listitem>
- <listitem><emphasis>BEATS</emphasis>=integer
- <para>
- Sets the number of beats
- per minute for the following score until the end or until it is
- reset. The default value is 60bpm. The token
- <emphasis>BPS</emphasis> is also acceptable instead of BEATS.
- </para>
- </listitem>
- <listitem><emphasis>PERMEASURE</emphasis>=integer
- <para>
- Sets the number of
- beats in a bar. The default value is 4.
- </para>
- </listitem>
- <listitem><emphasis>BAR</emphasis>
- <para>
- Start a new bar.
- </para>
- </listitem>
- <listitem><emphasis>BAR</emphasis> integer
- <para>
- Start the bar whose number is
- given.
- </para>
- </listitem>
- <listitem>
- <emphasis>i</emphasis> integer attributes
- <para>
- Specified a note event for the numbered instrument. The
- attributes may be any of a pitch, duration or dynamic, or a
- positioning of the note to a beat or measure, and can be in
- any order.
- </para>
- <para>
- Pitches are specified with a conventional note name (English
- form) in upper case optionally followed by a #, x (for
- double sharp), b (for flat) or bb (for double flat).
- A note of Z is a rest (think zzzz). All notes except rests
- must be followed by an octave number, with A4 being
- international A (440Hz). Pitches are passed to Csound in
- Hertz in the parameter p4, and are twelve tone equal temprament.
- </para>
- <para>
- Durations are coded in lower case with the initial letter of the
- name.
- <itemizedlist>
- <listitem>
- <emphasis>ed</emphasis> Dotted eighth note (three
- quarters of a beat)
- </listitem>
- <listitem>
- <emphasis>et</emphasis> Triplet eighth note (third of a beat)
- </listitem>
- <listitem>
- <emphasis>e</emphasis> Eighth note (half a beat)
- </listitem>
- <listitem>
- <emphasis>hd</emphasis> Dotted half note (three beats)
- </listitem>
- <listitem>
- <emphasis>ht</emphasis> Triplet half note (one and a third beats)
- </listitem>
- <listitem>
- <emphasis>h</emphasis> Half note (two beats)
- </listitem>
- <listitem>
- <emphasis>qd</emphasis> Dotted quarter note (one and a half beats)
- </listitem>
- <listitem>
- <emphasis>qt</emphasis> Triplet quarter note (two thirds of a
- beat)
- </listitem>
- <listitem>
- <emphasis>q</emphasis> Quarter note (one beat)
- </listitem>
- <listitem>
- <emphasis>sd</emphasis> Dotted sixteenth note (Three eighths
- of a beat)
- </listitem>
- <listitem>
- <emphasis>st</emphasis> Triplet sixteenth note (sixth
- of a beat)
- </listitem>
- <listitem>
- <emphasis>s</emphasis> Sixteenth note (quarter of a beat)
- </listitem>
- <listitem>
- <emphasis>th</emphasis> Thirty-second note (an eighth of a beat)
- </listitem>
- <listitem>
- <emphasis>w</emphasis> Whole note (four beats)
- </listitem>
- </itemizedlist>
- Durations can be added together by giving more that one
- duration. To make this more intuitive a + sign can be used
- instead of white space.
- </para>
- <para>
- The dynamics are written in conventional notation, that is fff,
- ff, f, mf, mp, p, pp, ppp. These are passed to the instrument
- as p5 as 0 for fff, and one less dB for each step below. The
- default dynamic is fortissimo.
- </para>
- <para>
- If any of these attributes is missing it carried forward from the
- previous note, with beat position being incremented to the end
- of the previous note.
- </para>
- <para>
- In addition an event can be directed to a particular measure with
- an m attribute or a particular beat with a b.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="Example">
- <para>
- The opening of Bach's Goldberg variation number 3 can be coded
- as:
- <programlisting>
-; Bach - Goldberg Variations - Variato 3
-; by Brian Baughn 3-14-05
-; bbaughn@berklee.net
-beats = 120
-permeasure = 6
-
-i101 m1 b1 B4 mp qd+s
-i101 C5 s
-i101 D5
-i101 C5
-i101 D5
-i101 E5
-i101 A4 qd+s
-i101 B4 s
-i101 C5
-i101 B4
-i101 C5
-i101 D5
-
-i101 m2 b1 G4 qd
-i101 G5 qd+e
-i101 A5 s
-i101 G5
-i101 F#5
-i101 G5
-i101 A5 e
-
-i101 m3 b1.5 D5 s
-i101 C5
-i101 B4
-i101 A4
-i101 B4 e
-i101 C5 s
-i101 B4
-i101 A4
-i101 B4
-i101 G4 e
-i101 E5
-i101 D5
-i101 C5
-i101 F#5
-i101 A5
-
-i101 m4 b1 B4 q
-i101 G5 e
-i101 G5 q
-i101 F#5 e
-i101 Z e // Z is a rest (zzzzz..)
-i101 e
-i101 B5 e
-i101 A5 q
-i101 D5 e
-
-quit
-
- </programlisting>
-This produces output
- <programlisting>
-;;;setting bpm=120.000000
-;;;setting permeasure=6
-i101 0.000000 0.875000 493.883621 -4
-i101 0.875000 0.125000 523.251131 -4
-i101 1.000000 0.125000 587.329536 -4
-i101 1.125000 0.125000 523.251131 -4
-i101 1.250000 0.125000 587.329536 -4
-i101 1.375000 0.125000 659.255114 -4
-i101 1.500000 0.875000 440.000000 -4
-i101 2.375000 0.125000 493.883621 -4
-i101 2.500000 0.125000 523.251131 -4
-i101 2.625000 0.125000 493.883621 -4
-i101 2.750000 0.125000 523.251131 -4
-i101 2.875000 0.125000 587.329536 -4
-i101 3.000000 0.750000 391.995436 -4
-i101 3.750000 1.000000 783.990872 -4
-i101 4.750000 0.125000 880.000000 -4
-i101 4.875000 0.125000 783.990872 -4
-i101 5.000000 0.125000 739.988845 -4
-i101 5.125000 0.125000 783.990872 -4
-i101 5.250000 0.250000 880.000000 -4
-i101 6.250000 0.125000 587.329536 -4
-i101 6.375000 0.125000 523.251131 -4
-i101 6.500000 0.125000 493.883621 -4
-i101 6.625000 0.125000 440.000000 -4
-i101 6.750000 0.250000 493.883621 -4
-i101 7.000000 0.125000 523.251131 -4
-i101 7.125000 0.125000 493.883621 -4
-i101 7.250000 0.125000 440.000000 -4
-i101 7.375000 0.125000 493.883621 -4
-i101 7.500000 0.250000 391.995436 -4
-i101 7.750000 0.250000 659.255114 -4
-i101 8.000000 0.250000 587.329536 -4
-i101 8.250000 0.250000 523.251131 -4
-i101 8.500000 0.250000 739.988845 -4
-i101 8.750000 0.250000 880.000000 -4
-i101 9.000000 0.500000 493.883621 -4
-i101 9.500000 0.250000 783.990872 -4
-i101 9.750000 0.500000 783.990872 -4
-i101 10.250000 0.250000 739.988845 -4
-;;rest at 10.500000 for 0.250000
-;;rest at 10.750000 for 0.250000
-i101 11.000000 0.250000 987.767243 -4
-i101 11.250000 0.500000 880.000000 -4
-i101 11.750000 0.250000 587.329536 -4
-e
- </programlisting>
- </para>
- </section>
-
-
-
-
-
-
-</chapter>
diff --git a/categories.py b/categories.py
index f1a74ee..5e56f54 100644
--- a/categories.py
+++ b/categories.py
@@ -15,6 +15,7 @@ categories = ['Orchestra Syntax:Header',
'Signal Generators:Random (Noise) Generators',
'Signal Generators:Sample Playback',
'Signal Generators:Scanned Synthesis',
+ 'Signal Generators:STK Opcodes',
'Signal Generators:Table Access',
'Signal Generators:Wave Terrain Synthesis',
'Signal Generators:Waveguide Physical Modeling',
@@ -41,6 +42,7 @@ categories = ['Orchestra Syntax:Header',
'Signal Modifiers:Comparators and Accumulators',
'Instrument Control:Clock Control',
'Instrument Control:Conditional Values',
+ 'Instrument Control:Compilation',
'Instrument Control:Duration Control',
'Instrument Control:Invocation',
'Instrument Control:Program Flow Control',
@@ -50,6 +52,9 @@ categories = ['Orchestra Syntax:Header',
'Instrument Control:Stacks',
'Instrument Control:Subinstrument Control',
'Instrument Control:Time Reading',
+ 'Jacko Opcodes',
+ 'Lua Opcodes',
+ 'Serial I/O',
'Table Control',
'Table Control:Table Queries',
'Table Control:Dynamic Selection',
@@ -65,6 +70,7 @@ categories = ['Orchestra Syntax:Header',
'Mathematical Operations:Amplitude Functions',
'Mathematical Operations:Random Functions',
'Mathematical Operations:Opcode Equivalents of Functions',
+ 'Mathematical Operations:Vectors',
'Pitch Converters:Functions',
'Pitch Converters:Tuning Opcodes',
'Real-time MIDI:Input',
@@ -76,13 +82,14 @@ categories = ['Orchestra Syntax:Header',
'Real-time MIDI:MIDI/Score Interoperability',
'Real-time MIDI:System Realtime',
'Real-time MIDI:Slider Banks',
- 'Signal Flow Graph',
+ 'Signal Flow Graph Opcodes',
'Spectral Processing:STFT',
'Spectral Processing:LPC',
'Spectral Processing:Non-Standard',
'Spectral Processing:Streaming',
'Spectral Processing:ATS',
'Spectral Processing:Loris',
+ 'Spectral Processing:Other',
'Strings:Definition',
'Strings:Manipulation',
'Strings:Conversion',
@@ -98,11 +105,13 @@ categories = ['Orchestra Syntax:Header',
'Plugin Hosting:DSSI and LADSPA',
'Plugin Hosting:VST',
'OSC',
+ 'Faust Opcodes',
'Network',
'Remote Opcodes',
'Mixer Opcodes',
'Python Opcodes',
'Image Processing Opcodes',
+ 'Array Opcodes',
'Miscellaneous',
'Testing',
'Utilities']
diff --git a/command/flags.xml b/command/flags.xml
index cf531bd..5936b44 100644
--- a/command/flags.xml
+++ b/command/flags.xml
@@ -29,7 +29,7 @@
<refsect1>
<title>Csound command line flags</title>
<para>
- Listed below are the command line flags available in Csound5 in alphabetical order. Various platform
+ Listed below are the command line flags available in Csound6 in alphabetical order. Various platform
implementations may not react the same way to different flags! You can view the command line flags organized by category in <link linkend="CommandFlagsCategory"><citetitle>Command-line Flags (by Category)</citetitle></link>.
</para>
<para>
@@ -68,8 +68,9 @@
<para>
Set the audio file output format to one of the formats
available in libsndfile. At present the list is
- aiff, au, avr, caf, flac, htk, ircam, mat4, mat5, nis, paf, pvf,
- raw, sd2, sds, svx, voc, w64, wav, wavex and xi.
+ aiff, au, avr, caf, flac, htk, ircam, mat4, mat5, MPC,
+ nist, ogg, paf, pvf, raw, sd2, sds, svx, voc, w64, W64,
+ wav, wavex, WVE, xi.
Can also be used as --format=type:format or --format=format:type
to set both the file type (wav, aiff, etc.) and sample format
(short, long, float, etc.) at the same time.
@@ -160,6 +161,16 @@
</listitem>
</varlistentry>
+ <varlistentry id="FlagsDaemon">
+ <term>-d<indexterm id="IndexDaemon"><primary>--daemon</primary></indexterm></term>
+ <listitem>
+ <para>
+ Run in daemon mode: do not exit if CSD/orchestra is not given, is empty or does not compile.
+ </para>
+ </listitem>
+ </varlistentry>
+
+
<varlistentry id="FlagsMinusDisplays">
<term>--displays<indexterm id="IndexMinusDisplays"><primary>--displays</primary></indexterm></term>
<listitem>
@@ -823,38 +834,78 @@
</listitem>
</varlistentry>
- <varlistentry id="FlagsMinusOpcodeLib">
- <term>--opcode-lib=LIBNAME<indexterm id="IndexMinusOpcodeLib"><primary>--opcode-lib</primary></indexterm></term>
- <listitem>
- <para>
- Load plugin library <emphasis>LIBNAME</emphasis>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="FlagsMinusOmacro">
- <term>--omacro:XXX=YYY<indexterm id="IndexMinusOmacro"><primary>--omacro</primary></indexterm></term>
+ <varlistentry id="FlagsMinusMinusOgg">
+ <term>--ogg<indexterm id="IndexMinusMinusOgg"><primary>--ogg</primary></indexterm></term>
<listitem>
<para>
- Set orchestra macro XXX to value YYY
+ Set output file format to ogg. (csound 5.18 and later)
</para>
</listitem>
</varlistentry>
- <varlistentry id="FlagsMinusPlusOutputStream">
- <term>-+output_stream=string<indexterm id="IndexMinusPlusOutputStream"><primary>-+output_stream</primary></indexterm></term>
+ <varlistentry id="FlagsMinusOmacro">
+ <term>--omacro:XXX=YYY<indexterm id="IndexMinusOmacro"><primary>--omacro</primary></indexterm></term>
<listitem>
<para>
- Pulseaudio output stream name.
+ Set orchestra macro XXX to value YYY
</para>
</listitem>
</varlistentry>
- <varlistentry id="FlagsMinusUpperQ">
- <term>-Q DEVICE<indexterm id="IndexMinusUpperQ"><primary>-Q</primary></indexterm></term>
- <listitem>
- <para>
- Enables MIDI OUT operations to device id <emphasis>DEVICE</emphasis>. This flag allows parallel MIDI OUT and DAC performance. Unfortunately the real-time timing implemented in Csound is completely managed by DAC buffer sample flow. So MIDI OUT operations can present some time irregularities. These irregularities can be reduced by using a lower value for the <link linkend="FlagsMinusLowerB"><citetitle>-b</citetitle></link> flag.
+ <varlistentry id="FlagsMinusOpcodeLib">
+ <term>--opcode-lib=LIBNAME<indexterm id="IndexMinusOpcodeLib"><primary>--opcode-lib</primary></indexterm></term>
+ <listitem>
+ <para>
+ Load plugin library <emphasis>LIBNAME</emphasis>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="FlagMinuMinusOrc">
+ <term>--orc orcname<indexterm id="IndexMinusMinusOrc"><primary>--orc</primary></indexterm></term>
+ <listitem>
+ <para>
+ Set the argument as the orchestrra file. Used when not
+ score is required>. (Csound 5.18 and later).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="FlagsMinusPlusOutputStream">
+ <term>-+output_stream=string<indexterm id="IndexMinusPlusOutputStream"><primary>-+output_stream</primary></indexterm></term>
+ <listitem>
+ <para>
+ Pulseaudio output stream name.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="FlagsMinusPort">
+ <term>--port=N<indexterm
+ id="IndexMinusPprt"><primary>--port</primary></indexterm></term>
+ <listitem>
+ <para>
+ Set UDP port on which to listen instruments/orchestra code
+ (implies --daemon)
+ </para>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry id="FlagsMinusUpperQ">
+ <term>-Q DEVICE<indexterm
+ id="IndexMinusUpperQ"><primary>-Q</primary></indexterm></term>
+ <listitem>
+ <para>
+ Enables MIDI OUT operations to device id
+ <emphasis>DEVICE</emphasis>. This flag allows parallel
+ MIDI OUT and DAC performance. Unfortunately the real-time
+ timing implemented in Csound is completely managed by DAC
+ buffer sample flow. So MIDI OUT operations can present
+ some time irregularities. These irregularities can be
+ reduced by using a lower value for the <link
+ linkend="FlagsMinusLowerB"><citetitle>-b</citetitle></link>
+ flag.
</para>
<para>
If using ALSA MIDI (-+rtmidi=alsa), devices are selected by name and not number. So, you need to use an option like -Q hw:CARD,DEVICE where CARD and DEVICE are the card and device numbers (e.g. -Q hw:1,0). In the case of PortMidi and MME, DEVICE should be a number, and if it is out of range, an error occurs and the valid device numbers are printed.
@@ -925,6 +976,18 @@
</listitem>
</varlistentry>
+ <varlistentry id="FlagsSampleAccurate">
+ <term>--sample-accurate<indexterm id="IndexSampleAccurate"><primary>--sample-accurate</primary></indexterm></term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="FlagsMinusSched">
<term>--sched<indexterm id="IndexMinusSched"><primary>--sched</primary></indexterm></term>
<listitem>
diff --git a/command/flagscategory.xml b/command/flagscategory.xml
index 7ec0eb5..913dd04 100644
--- a/command/flagscategory.xml
+++ b/command/flagscategory.xml
@@ -173,6 +173,15 @@
</listitem>
</varlistentry>
+ <varlistentry id="FlagsCatMinusMinusOgg">
+ <term>--ogg<indexterm id="IndexCatMinusMinusOgg"><primary>--ogg</primary></indexterm></term>
+ <listitem>
+ <para>
+ Set output file format to ogg. (Csound 5.18 and later).
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="FlagsCatMinusUpperR">
<term>-R<indexterm id="IndexCatMinusUpperR"><primary>-R</primary></indexterm>, --rewrite<indexterm id="IndexCatMinusRewrite"><primary>--rewrite</primary></indexterm></term>
<listitem>
@@ -798,8 +807,20 @@ csound5:output2 (playback right)</screen>
</listitem>
</varlistentry>
- <varlistentry id="FlagsCatMinusLowerK">
- <term>-k NUM<indexterm id="IndexCatMinusLowerK"><primary>-k</primary></indexterm>, --control-rate=NUM<indexterm id="IndexCatMinusControlrate"><primary>--control-rate</primary></indexterm></term>
+ <varlistentry id="FlagsDaemon">
+ <term>-d<indexterm id="IndexDaemon"><primary>--daemon</primary></indexterm></term>
+ <listitem>
+ <para>
+ Run in daemon mode: do not exit if CSD/orchestra is not given, is empty or does not compile.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="FlagsCatMinusLowerK">
+ <term>-k NUM<indexterm
+ id="IndexCatMinusLowerK"><primary>-k</primary></indexterm>,
+ --control-rate=NUM<indexterm
+ id="IndexCatMinusControlrate"><primary>--control-rate</primary></indexterm></term>
<listitem>
<para>
Override the control rate (<link linkend="kr"><citetitle>KR</citetitle></link>) supplied by the orchestra.
@@ -821,7 +842,6 @@ csound5:output2 (playback right)</screen>
</listitem>
</varlistentry>
-
<varlistentry id="FlagsCatMinusOmacro">
<term>--omacro:XXX=YYY<indexterm id="IndexCatMinusOmacro"><primary>--omacro</primary></indexterm></term>
<listitem>
@@ -831,6 +851,15 @@ csound5:output2 (playback right)</screen>
</listitem>
</varlistentry>
+ <varlistentry id="FlagsMinusPort">
+ <term>--port=N<indexterm id="IndexMinusPprt"><primary>--port</primary></indexterm></term>
+ <listitem>
+ <para>
+ Set UDP port on which to listen instruments/orchestra code
+ (implies --daemon)
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry id="FlagsCatMinusLowerR">
<term>-r NUM<indexterm id="IndexCatMinusLowerR"><primary>-r</primary></indexterm>, --sample-rate=NUM<indexterm id="IndexCatMinusSamplerate"><primary>--sample-rate</primary></indexterm></term>
@@ -841,11 +870,23 @@ csound5:output2 (playback right)</screen>
</listitem>
</varlistentry>
- <varlistentry id="FlagsCatMinusSched">
+ <varlistentry id="FlagsCatSampleAccurate">
+ <term>--sample-accurate<indexterm id="IndexCatSampleAccurate"><primary>--sample-accurate</primary></indexterm></term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="FlagsMinusSched">
<term>--sched<indexterm id="IndexCatMinusSched"><primary>--sched</primary></indexterm></term>
<listitem>
<para>
- <emphasis>Linux only.</emphasis> Use real-time scheduling and lock memory. (Also requires <link linkend="FlagsMinusLowerD"><citetitle>-d</citetitle></link> and either <link linkend="FlagsMinusLowerO"><citetitle>-o dac</citetitle></link> or <link linkend="FlagsMinusLowerO"><citetitle>-o devaudio</citetitle></link>).
+ <emphasis>Linux only.</emphasis> Use real-time scheduling and lock memory. (Also requires <link linkend="FlagsCatMinusLowerD"><citetitle>-d</citetitle></link> and either <link linkend="FlagsCatMinusLowerO"><citetitle>-o dac</citetitle></link> or <link linkend="FlagsCatMinusLowerO"><citetitle>-o devaudio</citetitle></link>).
See also --sched=N below.
</para>
</listitem>
@@ -1138,6 +1179,16 @@ csound5:output2 (playback right)</screen>
</listitem>
</varlistentry>
+ <varlistentry id="FlagCatMinuMinusOrc">
+ <term>--orc orcname<indexterm id="IndexCatMinusMinusOrc"><primary>--orc</primary></indexterm></term>
+ <listitem>
+ <para>
+ Set the argument as the orchestra file. Used when not
+ score is required>. (Csound 5.18 and later).
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="FlagsCatMinusSyntaxCheckOnly">
<term>--syntax-check-only<indexterm id="IndexCatMinusSyntaxCheckOnly"><primary>--syntax-check-only</primary></indexterm></term>
<listitem>
diff --git a/compare_opcode_lists.py b/compare_opcode_lists.py
deleted file mode 100644
index 2e9d644..0000000
--- a/compare_opcode_lists.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# By Andres Cabrera - mantaraya36@gmail.com
-# Under GPL licence
-
-# This script compares the two opcode lists to generate
-# a new list with the differences called "removed_opcodesXO.txt"
-# This list is used in quickref.py to exclude removed opcodes
-import sys
-
-outputname = ""
-
-if len(sys.argv) == 1:
- input1name = "opcode_list.txt"
- input2name = "opcode_listXO.txt"
- outputname = "removed_opcodesXO.txt"
-else:
- input1name = sys.argv[1]
- input2name = sys.argv[2]
-
-
-infile1 = open(input1name,"r")
-infile2 = open(input2name,"r")
-
-opcodelist = []
-opcodelistXO = []
-excludedopcodes = []
-missingopcodes = []
-
-opcodelist = infile1.read().split()
-opcodelistXO = infile2.read().split()
-
-print "File", input1name, "has", len(opcodelist),"opcodes"
-print "File", input2name, "has", len(opcodelistXO),"opcodes"
-
-for opcode in opcodelist:
- if opcodelistXO.count(opcode) == 0:
- excludedopcodes.append(opcode)
-
-for opcode in opcodelistXO:
- if opcodelist.count(opcode) == 0:
- missingopcodes.append(opcode)
-
-infile1.close()
-infile2.close()
-
-print len(excludedopcodes), "excluded opcodes"
-
-outtext = ""
-
-for opcodenum in range(len(excludedopcodes)):
- outtext += excludedopcodes[opcodenum]
- if opcodenum%4 == 3:
- outtext += "\n"
- else:
- outtext += " "
-
-
-if outputname != "":
- outfile = open(outputname,"w")
- outfile.write(outtext)
- outfile.close()
-
-
-print outtext
-print len(missingopcodes), "missing opcodes"
-
-outtext = ""
-
-for opcodenum in range(len(missingopcodes)):
- outtext += missingopcodes[opcodenum]
- if opcodenum%4 == 3:
- outtext += "\n"
- else:
- outtext += " "
-
-print outtext \ No newline at end of file
diff --git a/control/pgmctl.xml b/control/pgmctl.xml
index 83422c8..47553a8 100644
--- a/control/pgmctl.xml
+++ b/control/pgmctl.xml
@@ -28,6 +28,7 @@
<listitem><para><link linkend="loop_gt"><citetitle>loop_gt</citetitle></link></para></listitem>
<listitem><para><link linkend="loop_le"><citetitle>loop_le</citetitle></link></para></listitem>
<listitem><para><link linkend="loop_lt"><citetitle>loop_lt</citetitle></link></para></listitem>
+<listitem><para><link linkend="until"><citetitle>until</citetitle></link></para></listitem>
</itemizedlist>
<warning>
<simpara>Some of these opcodes work at i-rate even if they contain k- or a- rate comparisons. See the <link linkend="ControlReinitn"><citetitle>Reinitialization</citetitle></link> section.</simpara>
diff --git a/control/reinitn.xml b/control/reinitn.xml
index 77c5099..1fe3a76 100644
--- a/control/reinitn.xml
+++ b/control/reinitn.xml
@@ -27,5 +27,13 @@
</para>
<para>The opcode <link linkend="p"><citetitle>p</citetitle></link> can be used to find score p-fields at i- or k-rate.</para>
<para><link linkend="nstrnum"><citetitle>nstrnum</citetitle></link> returns the instrument number for a named instrument.</para>
-
+ <para><note>Note that a instrument may modify the p3 (duration) parameter
+ at initialisation time. For example statements like
+<screen>
+iattack = 0.02
+irelease = 0.04
+isustain = p3
+p3 = iattack + isustain + irelease
+</screen>
+are valid.</note></para>
</section>
diff --git a/credits.txt b/credits.txt
deleted file mode 100644
index f0064f9..0000000
--- a/credits.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-In addition to the core code developed by Barry Vercoe at M.I.T., a large part
-of the Csound code was modified, developed and extended by an independent
-group of programmers, composers and scientists. Copyright to this code is
-held by the respective authors:
-
-Mike Berry
-Eli Breder
-Andres Cabrera
-Michael Casey
-Michael Clark
-Perry Cook
-Sean Costello
-Richard Dobson
-Mark Dolson
-Rasmus Ekman
-Dan Ellis
-Tom Erbe
-John ffitch
-Bill Gardner
-Michael Gogins
-Matt Ingalls
-Richard Karpen
-Anthony Kozar
-Victor Lazzarini
-Allan Lee
-David Macintyre
-Gabriel Maldonado
-Max Mathews
-Hans Mikelson
-Peter Neubacker
-Peter Nix
-Jean Piche
-Ville Pulkki
-Maurizio Umberto Puxeddu
-John Ramsdell
-Marc Resibois
-Rob Shaw
-Paris Smaragdis
-Greg Sullivan
-Istvan Varga
-Bill Verplank
-Robin Whittle
-Steven Yi
-
-The previous version of this manual was compiled from the canonical Csound
-Manual sources maintained by John ffitch, Richard Boulanger, Jean Piche, and
-David Boothe. The Alternative Csound Reference Manual is maintained by
-Kevin Conder.
diff --git a/csbeats/example.xml b/csbeats/example.xml
new file mode 100644
index 0000000..3e66b5a
--- /dev/null
+++ b/csbeats/example.xml
@@ -0,0 +1,128 @@
+<refsect1>
+ <para>
+ The opening of Bach's Goldberg variation number 3 can be coded
+ as:
+ <programlisting>
+; Bach - Goldberg Variations - Variato 3
+; by Brian Baughn 3-14-05
+; bbaughn@berklee.net
+beats = 120
+permeasure = 6
+
+i101 m1 b1 B4 mp qd+s
+i101 C5 s
+i101 D5
+i101 C5
+i101 D5
+i101 E5
+i101 A4 qd+s
+i101 B4 s
+i101 C5
+i101 B4
+i101 C5
+i101 D5
+
+i101 m2 b1 G4 qd
+i101 G5 qd+e
+i101 A5 s
+i101 G5
+i101 F#5
+i101 G5
+i101 A5 e
+
+i101 m3 b1.5 D5 s
+i101 C5
+i101 B4
+i101 A4
+i101 B4 e
+i101 C5 s
+i101 B4
+i101 A4
+i101 B4
+i101 G4 e
+i101 E5
+i101 D5
+i101 C5
+i101 F#5
+i101 A5
+
+i101 m4 b1 B4 q
+i101 G5 e
+i101 G5 q
+i101 F#5 e
+i101 Z e // Z is a rest (zzzzz..)
+i101 e
+i101 B5 e
+i101 A5 q
+i101 D5 e
+
+quit
+
+ </programlisting>
+ This produces output
+ <programlisting>
+<emphasis role="comment">;;;setting bpm=120.000000</emphasis>
+<emphasis role="comment">;;;setting permeasure=6</emphasis>
+<emphasis role="stamnt">i</emphasis>101 0.000000 0.875000 493.883621 -4
+<emphasis role="stamnt">i</emphasis>101 0.875000 0.125000 523.251131 -4
+<emphasis role="stamnt">i</emphasis>101 1.000000 0.125000 587.329536 -4
+<emphasis role="stamnt">i</emphasis>101 1.125000 0.125000 523.251131 -4
+<emphasis role="stamnt">i</emphasis>101 1.250000 0.125000 587.329536 -4
+<emphasis role="stamnt">i</emphasis>101 1.375000 0.125000 659.255114 -4
+<emphasis role="stamnt">i</emphasis>101 1.500000 0.875000 440.000000 -4
+<emphasis role="stamnt">i</emphasis>101 2.375000 0.125000 493.883621 -4
+<emphasis role="stamnt">i</emphasis>101 2.500000 0.125000 523.251131 -4
+<emphasis role="stamnt">i</emphasis>101 2.625000 0.125000 493.883621 -4
+<emphasis role="stamnt">i</emphasis>101 2.750000 0.125000 523.251131 -4
+<emphasis role="stamnt">i</emphasis>101 2.875000 0.125000 587.329536 -4
+<emphasis role="stamnt">i</emphasis>101 3.000000 0.750000 391.995436 -4
+<emphasis role="stamnt">i</emphasis>101 3.750000 1.000000 783.990872 -4
+<emphasis role="stamnt">i</emphasis>101 4.750000 0.125000 880.000000 -4
+<emphasis role="stamnt">i</emphasis>101 4.875000 0.125000 783.990872 -4
+<emphasis role="stamnt">i</emphasis>101 5.000000 0.125000 739.988845 -4
+<emphasis role="stamnt">i</emphasis>101 5.125000 0.125000 783.990872 -4
+<emphasis role="stamnt">i</emphasis>101 5.250000 0.250000 880.000000 -4
+<emphasis role="stamnt">i</emphasis>101 6.250000 0.125000 587.329536 -4
+<emphasis role="stamnt">i</emphasis>101 6.375000 0.125000 523.251131 -4
+<emphasis role="stamnt">i</emphasis>101 6.500000 0.125000 493.883621 -4
+<emphasis role="stamnt">i</emphasis>101 6.625000 0.125000 440.000000 -4
+<emphasis role="stamnt">i</emphasis>101 6.750000 0.250000 493.883621 -4
+<emphasis role="stamnt">i</emphasis>101 7.000000 0.125000 523.251131 -4
+<emphasis role="stamnt">i</emphasis>101 7.125000 0.125000 493.883621 -4
+<emphasis role="stamnt">i</emphasis>101 7.250000 0.125000 440.000000 -4
+<emphasis role="stamnt">i</emphasis>101 7.375000 0.125000 493.883621 -4
+<emphasis role="stamnt">i</emphasis>101 7.500000 0.250000 391.995436 -4
+<emphasis role="stamnt">i</emphasis>101 7.750000 0.250000 659.255114 -4
+<emphasis role="stamnt">i</emphasis>101 8.000000 0.250000 587.329536 -4
+<emphasis role="stamnt">i</emphasis>101 8.250000 0.250000 523.251131 -4
+<emphasis role="stamnt">i</emphasis>101 8.500000 0.250000 739.988845 -4
+<emphasis role="stamnt">i</emphasis>101 8.750000 0.250000 880.000000 -4
+<emphasis role="stamnt">i</emphasis>101 9.000000 0.500000 493.883621 -4
+<emphasis role="stamnt">i</emphasis>101 9.500000 0.250000 783.990872 -4
+<emphasis role="stamnt">i</emphasis>101 9.750000 0.500000 783.990872 -4
+<emphasis role="stamnt">i</emphasis>101 10.250000 0.250000 739.988845 -4
+<emphasis role="comment">;;rest at 10.500000 for 0.250000</emphasis>
+<emphasis role="comment">;;rest at 10.750000 for 0.250000</emphasis>
+<emphasis role="stamnt">i</emphasis>101 11.000000 0.250000 987.767243 -4
+<emphasis role="stamnt">i</emphasis>101 11.250000 0.500000 880.000000 -4
+<emphasis role="stamnt">i</emphasis>101 11.750000 0.250000 587.329536 -4
+<emphasis role="stamnt">e</emphasis>
+ </programlisting>
+ </para>
+</refsect1>
+
+ <refsect1>
+ <title>A Complete Example</title>
+ <para>
+ Here is a simple example of the <emphasis>csbeats</emphasis>
+ score generator. It uses the file <ulink url="examples/csbeats.csd"><citetitle>csbeats.csd</citetitle></ulink>.
+ <example>
+ <title>A simple example of csbeats.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/csbeats.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+
+ </refsect1>
+
+
diff --git a/csbeats/syntax.xml b/csbeats/syntax.xml
new file mode 100644
index 0000000..61593a8
--- /dev/null
+++ b/csbeats/syntax.xml
@@ -0,0 +1,122 @@
+<refsect1>
+ <para>
+ The <emphasis>csbeats</emphasis> language is very simple, having
+ only 5 kinds of statement, and only one of them has any
+ complexity. In general the introductory word for each statement
+ type is case insensitive, so "QUIT", "quit", "QuIt"... are all
+ the same. Comments can be introduced in either ANSI C89 format
+ or C++ (that is either /* ... */ or // to the end of line) or
+ Csound's semicolon.
+ </para>
+ <itemizedlist>
+ <listitem><emphasis>QUIT</emphasis>
+ <para>
+ Causes csbeats to exit. For
+ flexibility the command <emphasis>END</emphasis> is also
+ accepted for the identical action.
+ </para>
+ </listitem>
+ <listitem><emphasis>BEATS</emphasis>=integer
+ <para>
+ Sets the number of beats
+ per minute for the following score until the end or until it is
+ reset. The default value is 60bpm. The token
+ <emphasis>BPS</emphasis> is also acceptable instead of BEATS.
+ </para>
+ </listitem>
+ <listitem><emphasis>PERMEASURE</emphasis>=integer
+ <para>
+ Sets the number of
+ beats in a bar. The default value is 4.
+ </para>
+ </listitem>
+ <listitem><emphasis>BAR</emphasis>
+ <para>
+ Start a new bar.
+ </para>
+ </listitem>
+ <listitem><emphasis>BAR</emphasis> integer
+ <para>
+ Start the bar whose number is
+ given.
+ </para>
+ </listitem>
+ <listitem>
+ <emphasis>i</emphasis> integer attributes
+ <para>
+ Specified a note event for the numbered instrument. The
+ attributes may be any of a pitch, duration or dynamic, or a
+ positioning of the note to a beat or measure, and can be in
+ any order.
+ </para>
+ <para>
+ Pitches are specified with a conventional note name (English
+ form) in upper case optionally followed by a #, x (for
+ double sharp), b (for flat) or bb (for double flat).
+ A note of Z is a rest (think zzzz). All notes except rests
+ must be followed by an octave number, with A4 being
+ international A (440Hz). Pitches are passed to Csound in
+ Hertz in the parameter p4, and are twelve tone equal temprament.
+ </para>
+ <para>
+ Durations are coded in lower case with the initial letter of
+ the name for <emphasis>w</emphasis>hole,
+ <emphasis>h</emphasis>alf, <emphasis>q</emphasis>uarter,
+ <emphasis>e</emphasis>igth and <emphasis>s</emphasis>ixteeth
+ notes, or <emphasis>th</emphasis> for thirtysecondth notes.
+ Except for <emphasis>w</emphasis> these can be moderated by
+ appending as suffix:
+ <itemizedlist>
+ <listitem>
+ <emphasis>d</emphasis> or <emphasis>.</emphasis> Dotted
+ note (half as long again)
+ </listitem>
+ <listitem>
+ <emphasis>dd</emphasis> or <emphasis>..</emphasis> Dotted
+ note (three quarters as long again)
+ </listitem>
+ <listitem>
+ <emphasis>t</emphasis> Triplet note (third notes in
+ two)
+ </listitem>
+ <listitem>
+ <emphasis>t.</emphasis> Dotted triplet note
+ </listitem>
+ <listitem>
+ <emphasis>q</emphasis> Quintuplet (Five notes in four)
+ </listitem>
+ <listitem>
+ <emphasis>s</emphasis> Septuplet (Seven notes in eight)
+ </listitem>
+ </itemizedlist>
+ Durations can be added together by giving more that one
+ duration. To make this more intuitive a + sign can be used
+ instead of white space.
+ </para>
+ <para>
+ The dynamics are written in conventional notation, that is fff,
+ ff, f, mf, mp, p, pp, ppp, pppp. These are passed to the instrument
+ as p5 as 0 for fff, and one less dB for each step below. The
+ default dynamic is fortissimo.
+ </para>
+ <para>
+ Additional parameters (p-fields) can be specified in an
+ instrument statement by giving statements like
+ <emphasis>p6=42</emphasis> which would set the p6 field to 42
+ until it is changed. The number must be 6 or greater as the
+ first 5 fields are taken with fixed information. Each
+ instrument number has its own additional parameters.
+ </para>
+ <para>
+ If any of these attributes is missing it carried forward from the
+ previous note, with beat position being incremented to the end
+ of the previous note.
+ </para>
+ <para>
+ In addition an event can be directed to a particular measure with
+ an m attribute or a particular beat with a b.
+ </para>
+ </listitem>
+ </itemizedlist>
+</refsect1>
+
diff --git a/csbeats/top.xml b/csbeats/top.xml
new file mode 100644
index 0000000..fe6ac2c
--- /dev/null
+++ b/csbeats/top.xml
@@ -0,0 +1,22 @@
+<chapter id="CsBeats">
+ <title>Csbeats</title>
+
+ <para>
+ <indexterm id="IndexBeats"><primary>Csbeats</primary></indexterm>
+ <emphasis>Csbeats</emphasis> is an alternative score language that is aimed at
+ specifying simple scores in standard western tunings and
+ rhythms. <emphasis>Csbeats</emphasis> can be invoked via the
+ CsScore component of a standard .csd score with
+ <emphasis>bin="csbeats"</emphasis> or as stand-alone
+ program which generates a standard numeric score.
+ </para>
+
+ <para>
+ As a stand-alone the program reads standard input and writes to
+ standard output.
+ </para>
+
+ &csbeatssyntax;
+ &csbeatsexample;
+
+</chapter>
diff --git a/csd2docbook.py b/csd2docbook.py
index 7391f61..d2553c8 100644
--- a/csd2docbook.py
+++ b/csd2docbook.py
@@ -20,7 +20,7 @@
# http://www.fsf.org/licensing/licenses/lgpl.html
#
-import csnd
+import csnd6
import getopt, sys, os, glob, re
from xml.dom import minidom
@@ -43,7 +43,7 @@ class OrchestraDict(dict):
CsoundOpcodeList() in order to get the opcode list. So we use a dummy
csd file for that purpose (tricky isn't it?)
'''
- csound = csnd.CppSound()
+ csound = csnd6.CppSound()
dummy = '''<CsoundSynthesizer>
<CsOptions>
-dodac
@@ -62,7 +62,7 @@ class OrchestraDict(dict):
f.write(dummy)
f.close()
csound.Compile("dummy.csd")
- lo = csnd.CsoundOpcodeList(csound.GetCsound())
+ lo = csnd6.CsoundOpcodeList(csound.GetCsound())
n = lo.Count()
print n, "Opcodes registered"
for i in xrange(n):
diff --git a/csd2docbook2.py b/csd2docbook2.py
index 994115a..9f84b81 100644
--- a/csd2docbook2.py
+++ b/csd2docbook2.py
@@ -249,15 +249,18 @@ class CsdTransform(object):
s = s.replace('LeSsThAnCs', '<Cs')
s = s.replace('LeSsThAn/Cs', '</Cs')
csddoc = minidom.parseString(s)
- options = csddoc.getElementsByTagName("CsOptions")[0]
+ options_elem = csddoc.getElementsByTagName("CsOptions")
+ if len(options_elem) > 0:
+ options = options_elem[0]
orchestra = csddoc.getElementsByTagName("CsInstruments")[0]
score = csddoc.getElementsByTagName("CsScore")[0]
outLines = []
outLines.append('<programlisting>')
outLines.append(tag("CsoundSynthesizer"))
- outLines.append(tag("CsOptions"))
- outLines.extend(self.optTransform(self.text(options)))
- outLines.append(tag("/CsOptions"))
+ if len(options_elem) > 0:
+ outLines.append(tag("CsOptions"))
+ outLines.extend(self.optTransform(self.text(options)))
+ outLines.append(tag("/CsOptions"))
outLines.append(tag("CsInstruments"))
outLines.extend(self.orc_t.transformLines(self.text(orchestra)))
outLines.append(tag("/CsInstruments"))
diff --git a/csound-bw.css b/csound-bw.css
deleted file mode 100644
index b288e3e..0000000
--- a/csound-bw.css
+++ /dev/null
@@ -1,90 +0,0 @@
-/* csound-bw.css - for Csound5 html manual(black and white) */
-/* (c) Francois Pinot, 2007 */
-/* Free software, licensed by GNU Free Documentation License */
-
-pre.programlisting {
- background-color: #f0f0f0; padding: 10px 2em;
-}
-
-pre.screen {
- background-color: #f0f0f0; padding: 10px 2em;
-}
-
-div.literallayout {
- font-family: monospace;
-}
-
-span.strong {
- font-weight: 700;
-}
-
-div.table table, div.informaltable table {
- border-collapse: collapse;
-}
-
-div.table thead {
- border-bottom: solid;
-}
-
-div.table td, div.table th, div.informaltable table td {
- padding: 2px 6px;
-}
-
-div.appendix pre {
- margin-bottom: 0; margin-top: 0;
-}
-
-div.appendix a {
- color: blue; font-weight: bolder; text-decoration: none;
-}
-
-div.appendix p b {
- font-size: 1.17em; font-weight: bolder;
- display: block; margin-top: 40px; padding-top: 5px; border-top: 1px solid;
-}
-
-/* Syntax highlighting rules */
-pre.programlisting span.csdtag {
- color: brown;
-}
-
-pre.programlisting span.comment {
- color: green; font-style: italic;
-}
-
-pre.programlisting span.Ccomment {
- color: peru; font-style: italic;
-}
-
-pre.programlisting span.ohdr {
- color: darkred; font-weight: bold;
-}
-
-pre.programlisting span.oblock {
- color: purple; font-weight: bold;
-}
-
-pre.programlisting span.opc {
- color: blue; font-weight: bold;
-}
-
-pre.programlisting span.op {
- font-weight: bolder;
-}
-
-pre.programlisting span.octrl {
- color: green; font-weight: bold;
-}
-
-pre.programlisting span.olabel {
- color: indianred; font-weight: bold;
-}
-
-pre.programlisting span.omacro {
- color: mediumorchid; font-weight: bold;
-}
-
-pre.programlisting span.stamnt {
- color: blue; font-weight: bold;
-}
-
diff --git a/csound5/cs5opcodes.xml b/csound5/cs5opcodes.xml
index 38aa55e..45f9252 100644
--- a/csound5/cs5opcodes.xml
+++ b/csound5/cs5opcodes.xml
@@ -5,6 +5,7 @@
&vst4cs;
&loris;
&OSC;
+ &lua;
&py;
&mixer;
&stringconvert;
diff --git a/csound5/extending.xml b/csound5/extending.xml
index 120ae6c..191b3c3 100644
--- a/csound5/extending.xml
+++ b/csound5/extending.xml
@@ -313,7 +313,6 @@ can have as many unit generators in one plugin as you like):</para>
#define S sizeof
static OENTRY localops[] = {
-{
{ "rampt", S(RMP), 5, "a", "iiio", (SUBR) rampset, (SUBR) NULL, (SUBR)ramp },
};
diff --git a/csound5/opcodes/lua.xml b/csound5/opcodes/lua.xml
new file mode 100644
index 0000000..1cdff6e
--- /dev/null
+++ b/csound5/opcodes/lua.xml
@@ -0,0 +1,114 @@
+<chapter id="lua">
+ <title>
+ Lua Opcodes
+ </title>
+ <para>
+ The purposes of the Lua opcodes are:
+ </para>
+ <orderedlist>
+ <listitem><simpara>
+ Make it possible to write Csound code in a user-friendly,
+ high-level language with full lexical scoping, structures and
+ classes, and support for functional programming, using
+ LuaJIT (the Lua programming language, implemented with a
+ just-in-time compiler and foreign function interface).
+ </simpara></listitem>
+ <listitem><simpara>
+ Require the installation of no third party software packages,
+ or at least a minimum installation; also, require no build
+ system or external compilation.
+ </simpara></listitem>
+ <listitem><simpara>
+ Run <emphasis>really fast</emphasis>; typically, almost as
+ fast as compiled C code, and several times faster than
+ user-defined opcodes.
+ </simpara></listitem>
+ </orderedlist>
+ <para>
+ Using the Lua opcode family, you can interact with the Lua
+ interpreter and just-in-time compiler (luajit) embedded in Csound
+ as follows:
+ </para>
+ <orderedlist>
+ <listitem>
+ <simpara>
+ Execute any arbitrary block of Lua code (the <link
+ linkend="lua_exec"><citetitle>lua_exec</citetitle></link> opcode),
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Define an opcode in Lua taking any number or type of
+ parameters, and returning any number or type of parameters
+ (the <link linkend="lua_opdef"><citetitle>lua_opdef</citetitle>
+ </link> opcode),
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Call a Lua opcode at i-rate (the <link linkend="lua_opcall">
+ <citetitle>lua_iopcall</citetitle></link> opcode),
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Call a Lua opcode at i-rate and k-rate (the <link linkend="lua_opcall">
+ <citetitle>lua_ikopcall</citetitle></link> opcods), or
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Call a Lua opcode at i-rate and a-rate (the <link linkend="lua_opcall">
+ <citetitle>lua_iaopcall</citetitle></link> opcode).
+ </simpara></listitem>
+ </orderedlist>
+ <para>
+ Lua is Portuguese for "moon." And Lua
+ (<ulink url="http://www.lua.org"><citetitle>http://www.lua.org</citetitle></ulink>) is a
+ lightweight, efficient dynamic programming language, designed for
+ embedding in C/C++ and extending with C/C++. Lua has a
+ stack-based calling mechanism and provides a toolkit of features
+ (tables, metatables, anonymous functions, and closures) with
+ which many styles of object-oriented and functional programming
+ may be implemented. Lua's syntax is only slightly harder than Python's.
+ </para>
+ <para>
+ Lua is already one of the fastest dynamic languages; yet LuaJIT
+ by Mike Pall (<ulink url="http://luajit.org"><citetitle>http://luajit.org</citetitle></ulink>)
+ goes much further,
+ giving Lua a just-in-time optimizing trace compiler for Intel
+ architectures. LuaJIT includes an efficient foreign function
+ interface (FFI) with the ability to define C arrays, structures,
+ and other types in Lua. The speed of LuaJIT/FFI ranges from
+ several times as fast as Lua, to faster (in some contexts) than
+ optimized C.
+ </para>
+ <refsect1>
+ <!--To add examples, create the csd file in the examples directory, then run:-->
+ <!--python csd2docbook.py -f newopcodename.csd-->
+ <!--to generate the xml highlighted version used below-->
+ <title>
+ Example
+ </title>
+ <para>
+ Here is an example of a Lua opcode, implementing a Moog
+ ladder filter. For purposes of comparison, a user-defined
+ opcode and the native Csound opcode that compute the same
+ sound using the same algorithm also are shown, and timed..
+ The example uses the file <ulink url="examples/luamoog.csd">
+ <citetitle>luamoog.csd</citetitle></ulink>.
+ <example>
+ <title>
+ Example of a Lua opcode.
+ </title>
+ <xi:include href="examples-xml/luamoog.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+ <bridgehead>
+ Credits
+ </bridgehead>
+ <para>
+ Copyright (c) 2011 by Michael Gogins. All rights reserved.
+ </para>
+</chapter>
diff --git a/csound5/opcodes/signalflowgraph.xml b/csound5/opcodes/signalflowgraph.xml
index a713bae..fdbaa48 100644
--- a/csound5/opcodes/signalflowgraph.xml
+++ b/csound5/opcodes/signalflowgraph.xml
@@ -1,98 +1,107 @@
-<chapter id="SignalFlowGraphOpcodes">
- <title>Signal Flow Graph Opcodes</title>
-
- <para>
- These opcodes enable the use of signal flow graphs
- (AKA asynchronous data flow graphs) in Csound orchestras.
- Signals flow from the outlets of source instruments
- and are summed in the inlets of sink instruments.
- Signals may be krate, arate, or frate.
- Any number of outlets may be connected to any number of inlets.
- When a new instance of an instrument is instantiated during performance,
- the declared connections also are automatically instantiated.
- </para>
-
- <para>
- Signal flow graphs simplify the construction of complex mixers,
- signal processing chains, and the like. They also simplify the re-use
- of "plug and play" instrument definitions and even entire sub-orchestras,
- which can simply be #included and then "plugged in" to existing orchestras.
- </para>
-
- <para>
- Note that inlets and outlets are defined in instruments without reference
- to how they are connected. Connections are defined in the orchestra header.
- It is this separation that enables plug-in instruments.
- </para>
-
- <para>
- Inlets must be named. Instruments may be named or numbered, but in
- either case each source instrument must be defined
- in the orchestra before any of its sinks. Naming instruments makes
- it easier to connect outlets and inlets in any higher-level orchestra
- to inlets and outlets in any lower-level #included orchestra.
- </para>
-
- <para>
- The signal flow graph opcodes include:
-
- <link linkend="outleta"><citetitle>outleta</citetitle></link>, for
- sending an arate signal from any instrument out a named port.
-
- <link linkend="outletk"><citetitle>outletk</citetitle></link>, for
- sending a krate signal from any instrument out a named port.
-
- <link linkend="outletf"><citetitle>outletf</citetitle></link>, for
- sending an frate signal from any instrument out a named port.
-
- <link linkend="inleta"><citetitle>inleta</citetitle></link>, for
- receiving an arate signal through a named port.
-
- <link linkend="inletk"><citetitle>inletk</citetitle></link>, for
- receiving a krate signal through a named port.
-
- <link linkend="inletf"><citetitle>inletf</citetitle></link>, for
- receiving an frate signal through a named port.
-
- <link linkend="connect"><citetitle>connect</citetitle></link>, for
- routing the signal from a named outlet in a source instrument
- to a named inlet in a sink instrument.
-
- <link linkend="alwayson"><citetitle>alwayson</citetitle></link> for
- permanently activating an instrument from the orchestra header,
- without need of a score statement, e.g. for use as an effect processor
- receiving inputs from a number of sources.
-
- <link linkend="ftgenonce"><citetitle>ftgenonce</citetitle></link> for
- instantiating function tables from within instrument definitions, without
- need for f-statements in the score or ftgen opcodes in the orchestra header.
- </para>
-
- <para>
- A typical scenario for the use of these opcodes would be something like this.
- A set of instruments would be defined, each in its own orchestra file, and
- each instrument would define inlet ports, outlet ports, and function tables within itself. Such
- instruments are completely self-contained. Then, a set of effects processors, such
- as equalizers, reverbs, compressors, and so on, would also be defined, each in its
- own file. Then, a customized master orchestra would #include the instruments
- and effects to be used, route the outputs of some instruments into one equalizer
- and the outputs of other effects into another equalizer, then route the outputs of
- both equalizers into a reverb, the output of the reverb into a compressor, and
- the output of the compressor into a stereo output soundfile.
- </para>
-
- <refsect1>
- <!--To add examples, create the csd file in the examples directory, then run:-->
- <!--python csd2docbook.py -f newopcodename.csd-->
- <!--to generate the xml highlighted version used below-->
- <title>Example</title>
- <para>
- Here is an example of the signal flow graph opcodes. It uses the file <ulink url="examples/signalflowgraph.csd"><citetitle>signalflowgraph.csd</citetitle></ulink>.
- <example>
- <title>Example of the signal flow graph opcodes.</title>
+<chapter id="SignalFlowGraphOpcodes">
+
+ <title>
+ Signal Flow Graph Opcodes
+</title>
+
+ <para>
+ These opcodes enable the use of signal flow graphs
+ (AKA asynchronous data flow graphs) in Csound orchestras.
+ Signals flow from the outlets of source instruments
+ and are summed in the inlets of sink instruments.
+ Signals may be krate, arate, or frate.
+ Any number of outlets may be connected to any number of inlets.
+ When a new instance of an instrument is instantiated during performance,
+ the declared connections also are automatically instantiated.
+ </para>
+
+ <para>
+ Signal flow graphs simplify the construction of complex mixers,
+ signal processing chains, and the like. They also simplify the re-use
+ of "plug and play" instrument definitions and even entire sub-orchestras,
+ which can simply be #included and then "plugged in" to existing orchestras.
+ </para>
+
+ <para>
+ Note that inlets and outlets are defined in instruments without reference
+ to how they are connected. Connections are defined in the orchestra header.
+ It is this separation that enables plug-in instruments.
+ </para>
+
+ <para>
+ Inlets must be named. Instruments may be named or numbered, but in
+ either case each source instrument must be defined
+ in the orchestra before any of its sinks. Naming instruments makes
+ it easier to connect outlets and inlets in any higher-level orchestra
+ to inlets and outlets in any lower-level #included orchestra.
+ </para>
+
+ <para>
+ The signal flow graph opcodes include:
+
+ <link linkend="outleta"><citetitle>outleta</citetitle></link>, for
+ sending an arate signal from any instrument out a named port.
+
+ <link linkend="outletk"><citetitle>outletk</citetitle></link>, for
+ sending a krate signal from any instrument out a named port.
+
+ <link linkend="outletkid"><citetitle>outletkid</citetitle></link>,
+ similar to outletk, but receiving a krate signal only from an identified instance of a port.
+
+ <link linkend="outletf"><citetitle>outletf</citetitle></link>, for
+ sending an frate signal from any instrument out a named port.
+
+ <link linkend="inleta"><citetitle>inleta</citetitle></link>, for
+ receiving an arate signal through a named port.
+
+ <link linkend="inletk"><citetitle>inletk</citetitle></link>, for
+ receiving a krate signal through a named port.
+
+ <link linkend="inletkid"><citetitle>inletkid</citetitle></link>,
+ similiar to inletk, but transmitting a signal only between inlet and outlet opcodes
+ .
+ <link linkend="inletf"><citetitle>inletf</citetitle></link>, for
+ receiving an frate signal through a named port.
+
+ <link linkend="connect"><citetitle>connect</citetitle></link>, for
+ routing the signal from a named outlet in a source instrument
+ to a named inlet in a sink instrument.
+
+ <link linkend="alwayson"><citetitle>alwayson</citetitle></link> for
+ permanently activating an instrument from the orchestra header,
+ without need of a score statement, e.g. for use as an effect processor
+ receiving inputs from a number of sources.
+
+ <link linkend="ftgenonce"><citetitle>ftgenonce</citetitle></link> for
+ instantiating function tables from within instrument definitions, without
+ need for f-statements in the score or ftgen opcodes in the orchestra header.
+ </para>
+
+ <para>
+ A typical scenario for the use of these opcodes would be something like this.
+ A set of instruments would be defined, each in its own orchestra file, and
+ each instrument would define inlet ports, outlet ports, and function tables within itself. Such
+ instruments are completely self-contained. Then, a set of effects processors, such
+ as equalizers, reverbs, compressors, and so on, would also be defined, each in its
+ own file. Then, a customized master orchestra would #include the instruments
+ and effects to be used, route the outputs of some instruments into one equalizer
+ and the outputs of other effects into another equalizer, then route the outputs of
+ both equalizers into a reverb, the output of the reverb into a compressor, and
+ the output of the compressor into a stereo output soundfile.
+ </para>
+
+ <refsect1>
+ <!--To add examples, create the csd file in the examples directory, then run:-->
+ <!--python csd2docbook.py -f newopcodename.csd-->
+ <!--to generate the xml highlighted version used below-->
+ <title>Example</title>
+ <para>
+ Here is an example of the signal flow graph opcodes. It uses the file <ulink url="examples/signalflowgraph.csd"><citetitle>signalflowgraph.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the signal flow graph opcodes.</title>
<xi:include href="examples-xml/signalflowgraph.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
-</chapter>
+ </example>
+ </para>
+ </refsect1>
+
+</chapter>
diff --git a/csound5/tclcsound.xml b/csound5/tclcsound.xml
deleted file mode 100755
index 7db9b8f..0000000
--- a/csound5/tclcsound.xml
+++ /dev/null
@@ -1,288 +0,0 @@
-<chapter id="tclcsound">
-<title>TclCsound</title>
-<para>
-TclCsound was introduced to provide a simple scripting interface to Csound.
-Tcl is a simple language that is easy to extend and provide nice facilities such as easy file
-access and TCP networking. With its Tk component, it can also handle a graphic and event interface.
-TclCsound provides three ‘points of contact' with Tcl: </para>
-<para>1. a csound-aware tcl interpreter (cstclsh) </para>
-<para>2. a csound-aware windowing shell (cswish) </para>
-<para>3. a csound commands module for Tcl/Tk (tclcsound dynamic lib) </para>
-<section id="tclcsh">
-<title>The Tcl interpreter: cstclsh </title>
-<para>With cstclsh, it is possible to have interactive control over a csound performance.
- The command starts an interactive shell, which holds an instance of Csound.
- A number of commands can then be used to control it. For instance, the following
- command can compile csound code and load it in memory ready for performance: </para>
-<programlisting>csCompile -odac <emphasis>orchestra</emphasis> <emphasis>score</emphasis> -m0 </programlisting>
-<para>Once this is done, performance can be started in two ways: using csPlay or csPerform . The command </para>
-<programlisting>csPlay </programlisting>
-<para>will start the Csound performance in a separate thread and return to the cstclsh prompt.
-A number of commands can then be used to control Csound. For instance, </para>
-<programlisting>csPause </programlisting>
-<para>will pause performance; and </para>
-<programlisting>csRewind </programlisting>
-<para>will rewind to the beginning of the note-list. The csNote, csTable and
-csEvent commands can be used to add Csound score events to the performance, on-the-fly.
-The csPerform command, as opposed to csPlay , will not launch a separate thread, but will run Csound in
-the same thread, returning only when the performance is finished. A variety of other commands exist,
-providing full control of Csound. </para>
-</section>
-<section id="cswish">
-<title>Cswish: the windowing shell </title>
-<para>With Cswish, Tk widgets and commands can be used to provide graphical
-interface and event handling. As with cstclsh, running the cswish command also opens an
-interactive shell. For instance, the following commands can be used to create a transport
-control panel for Csound: </para>
-<programlisting>frame .fr
-button .fr.play -text play -command csPlay
-button .fr.pause -text pause -command csPause
-button .fr.rew -text rew -command csRewind
-pack .fr .fr.play .fr.pause .fr.rew </programlisting>
-<para>Similarly, it is possible to bind keys to commands so that the computer keyboard can be
-used to play Csound. </para>
-<para>Particularly useful are the control channel commands that TclCsound provides.
-For instance, named IO channels can be registered with TclCsound and these can be used with the
-invalue, outvalue opcodes. In addition, the Csound API also provides a complete software bus for audio,
-control and string channels. It is possible in TclCsound to access control and string bus channels
-(the audio bus is not implemented, as Tcl is not able to handle such data).
-With these TclCsound commands, Tk widgets can be easily connected to synthesis parameters. </para>
-</section>
-<section id="csserver">
-<title>A Csound server </title>
-<para>In Tcl, setting up TCP network connections is very simple. With a few lines of code a csound server can be built.
-This can accept connections from the local machine or from remote clients. Not only Tcl/Tk clients can send
-commands to it, but TCP connections can be made from other sofware, such as, for instance, Pure Data (PD).
-A Tcl script that can be run under the standard tclsh interpreter is shown below. It uses the Tclcsound module,
-a dynamic library that adds the Csound API commands to Tcl. </para>
-<programlisting>
-# load tclcsound.so
-#(OSX: tclcsound.dylib, Windows: tclcsound.dll)
-load tclcsound.so Tclcsound
-set forever 0
-
-# This arranges for commands to be evaluated
-proc ChanEval { chan client } {
-if { [catch { set rtn [eval [gets $chan]]} err] } {
-puts &quot;Error: $err&quot;
-} else {
-puts $client $rtn
-flush $client
-}
-}
-</programlisting>
-<programlisting>
-# this arranges for connections to be made
-</programlisting>
-<programlisting>
-proc NewChan { chan host port } {
-puts &quot;Csound server: connected to $host on port $port ($chan)&quot;
-fileevent $chan readable [list ChanEval $chan $host]
-}
-</programlisting>
-<programlisting>
-# this sets up a server to listen for
-# connections
-</programlisting>
-<programlisting>
-set server [socket -server NewChan 40001]
-set sinfo [fconfigure $server -sockname]
-puts &quot;Csound server: ready for connections on port [lindex $sinfo 2]&quot;
-vwait forever
-</programlisting>
-<para>With the server running, it is then possible to set up clients to control the Csound server.
-Such clients can be run from standard Tcl/Tk interpreters, as they do not evaluate the Csound commands themselves. Here is an example of client connections to a Csound server, using Tcl: </para>
-<programlisting>
-# connect to server
-set sock [socket localhost 40001]
-
-# compile Csound code
-puts $sock &quot;csCompile -odac <emphasis>orchestra</emphasis> <emphasis>score</emphasis>&quot;
-flush $sock
-</programlisting>
-<programlisting>
-# start performance
-puts $sock &quot;csPlay&quot;
-flush $sock
-</programlisting>
-<programlisting>
-# stop performance
-puts $sock &quot;csStop&quot;
-flush $sock
-</programlisting>
-<para>As mentioned before, it is possible to set up clients using other software systems, such as PD.
-Such clients need only to connect to the server (using a netsend object) and send messages to it. The first
-item of each message is taken to be a command. Further items can optionally be added to it as arguments to that command. </para>
-</section>
-<section id="tclscripting">
-<title>A Scripting Environment </title>
-<para>With TclCsound, it is possible to transform the popular text editor e-macs into a Csound scripting/performing
-environment. When in Tcl mode, the editor allows for Tcl expressions to be evaluated by selection and use of a simple
-escape sequence (Ctrl-C Ctrl-X). This facility allows the integrated editing and performance of Csound and Tcl/Tk code. </para>
-<para>In Tcl it is possible to write score and orchestra files that can be saved, compiled and run by the same script,
-under the e-macs environment. The following example shows a Tcl script that builds a csound instrument and then
-proceeds to run a csound performance. It creates 10 slightly detuned parallel oscillators, generating sounds similar
-to those found in Risset's <emphasis>Inharmonique</emphasis>. </para>
-<programlisting>load tclcsound.so Tclcsound </programlisting>
-<programlisting># set up some intermediary files </programlisting>
-<programlisting>
-set orcfile &quot;tcl.orc&quot;
-set scofile &quot;tcl.sco&quot;
-set orc [open $orcfile w]
-set sco [open $scofile w]
-</programlisting>
-<programlisting># This Tcl procedure builds an instrument
-proc MakeIns { no code } {
-global orc sco
-puts $orc &quot;instr $no&quot;
-puts $orc $code
-puts $orc &quot;endin&quot;
-}
-</programlisting>
-<programlisting>
-# Here is the instrument code
-append ins &quot;asum init 0 \n&quot;
-append ins &quot;ifreq = p5 \n&quot;
-append ins &quot;iamp = p4 \n&quot;
-</programlisting>
-<programlisting>
-for { set i 0 } { $i &lt; 10 } { incr i } {
-append ins &quot;a$i oscili iamp,
-ifreq+ifreq*[expr $i * 0.002], 1\n&quot;
-}
-</programlisting>
-<programlisting>for { set i 0 } {$i &lt; 10 } { incr i } {
-if { $i } {
-append ins &quot; + a$i&quot;
-} else {
-append ins &quot;asum = a$i &quot;
-}
-}
-</programlisting>
-<programlisting>
-append ins &quot;\nk1 linen 1, 0.01, p3, 0.1 \n&quot;
-append ins &quot;out asum*k1&quot;
-</programlisting>
-<programlisting>
-# build the instrument and a dummy score
-</programlisting>
-<programlisting>
-MakeIns 1 $ins
-puts $sco &quot;f0 10&quot;
-close $orc
-close $sco
-</programlisting>
-<programlisting>
-# compile
-csCompile $orcfile $scofile -odac -d -m0
-</programlisting>
-<programlisting>
-# set a wavetable
-csTable 1 0 16384 10 1 .5 .25 .2 .17 .15 .12 .1
-</programlisting>
-<programlisting>
-# send in a sequence of events and perform it
-for {set i 0} { $i &lt; 60 } { incr i } {
-csNote 1 [expr $i * 0.1] .5 \
-[expr ($i * 10) + 500] [expr 100 + $i * 10]
-}
-csPerform
-</programlisting>
-<programlisting>
-# it is possible to run it interactively as
-# well
-csNote 1 0 10 1000 200
-csPlay
-</programlisting>
-<para>The use of such facilities as provided by e-macs can emulate an environment not
-unlike the one found under the so-called ‘modern synthesis systems', such as SuperCollider (SC).
-In fact, it is possible to run Csound in a client-server set-up, which is one of the features of SC3.
-A major advantage is that Csound provides about three or four times the number of unit generators
-found in that language (as well as providing a lower-level approach to signal processing, in fact
-these are but a few advantages of Csound). </para>
-</section>
-<section id="tclwrapper">
-<title> TclCsound as a language wrapper </title>
-<para>It is possible to use TclCsound at a slightly lower level, as many of the
-C API functions have been wrapped as Tcl commands. For instance it is possible to create a ‘classic'
-Csound command-line frontend completely written in Tcl. The following script demonstrates this: </para>
-<programlisting>#!/usr/local/bin/cstclsh </programlisting>
-<programlisting>
-set result 1
-csCompileList $argv
-while { $result != 0 } {
-set result csPerformKsmps
-}
-</programlisting>
-</section>
-<section id="tclrefe">
-<title> TclCsound Command Reference</title>
-
-<para> Performance control commands: </para>
-<para> <command>
-csCompile [csound command-line] : </command> compiles an orc/sco/csd + any options
-</para> <para> <command>
-csCompileList arglist : </command> compiles an orc/sco/csd + options given as a Tcl list 'arglist'
-</para> <para> <command>
-csPerform : </command> plays the score, returning when finished
-</para> <para> <command>
-csPerformKsmps : </command> performs one ksmps block of audio samples, returning when finished
-</para> <para> <command>
-csPerformBuffer : </command> performs one buffersize block of audio samples, returning when finished
-</para> <para> <command>
-csPlay : </command> starts asynchronous performance in a separate thread, returning immediately
-</para> <para> <command>
-csPause : </command> pauses playback
-</para> <para> <command>
-csStop : </command> stops performance and resets csound
-</para> <para> <command>
-csRewind : </command> rewinds the score
-</para> <para> <command>
-csOffset secs : </command> offsets score playback by secs
-</para> <para> <command>
-csGetoffset : </command> returns the score offset in secs
-</para> <para> <command>
-csGetScoreTime : </command> returns the score time in secs
-</para>
-
-<para>Event commands:</para>
-<para> <command> csNote [p-fields] : </command> sends in a i-statement event
-</para> <para> <command> csTable [p-fields] : </command> sends in a f-statement event
-</para> <para> <command> csEvent opcode [p-fields] : </command> sends in a score event defined by 'opcode' plus p-fields
-</para> <para> <command> csNoteList arglist : </command> sends in a i-statement event with p-fields as a Tcl list 'arglist'
-</para> <para> <command> csTableList arglist : </command> sends in a f-statement event with p-fields as a Tcl list 'arglist'
-</para> <para> <command> csEventList arglist : </command> sends in a score event defined by 'opcode' plus p-fields as a Tcl list 'arglist'
-</para>
-<para>Invalue, outvalue, pvsin, pvsout control and string channel commands:</para>
-<para> <command> csInChannel name : </command> registers a csound invalue channel
-</para> <para> <command> csOutChannel name : </command> registers a csound outvalue channel and creates tcl global variable 'name'
-</para> <para> <command> csInValue channel value : </command> sets the value of a csound invalue channel
-</para> <para> <command> csOutValue channel : </command> returns the value of a csound outvalue channel
-</para> <para> <command> csPvsIn number [size olaps wsize wtype]: </command> registers a pvs in bus channel, optionally initialising fsig
-values for fftsize to 'size' (default:1024), overlaps to 'olaps' (def.: size/4), window size to 'wsize' (def.: size) and window type
-to 'wtype' (def.: 1, Hanning window, see manual page for pvsanal). Works with pvsin opcode (PVS_AMP_FREQ format only).
-</para> <para> <command> csPvsOut number [size olaps wsize wtype]: </command> registers a pvs out bus channel. Works with opcode pvsout (PVS_AMP_FREQ format only).
-</para> <para> <command> csPvsInSet channel bin amp freq: </command> sets the amp and freq of a bin of the pvs in channel number.
-</para> <para> <command> csPvsOutGet channel bin [isFreq]: </command> returns the amp or freq of a bin of the pvs out channel number. The optional
-argument 'isFreq' (default: 0) controls whether the returned value is the bin amp (0) or freq (1).
-</para> <para> <command> csSetControlChannel channel value : </command> sets the value of control channel 'channel', creating it if it does not exist
-</para> <para> <command> csGetControlChannel channel : </command> returns the value of control channel 'channel'; creates the channel it if it does not exist
-</para> <para> <command> csSetStringChannel channel string : </command> sets the string channel 'channel', creating it if it does not exist
-</para> <para> <command> csGetStringChannel channel : </command> returns the string in channel 'channel'; creates the channel it if it does not exist
-</para>
-<para> Message commands: </para>
-<para> <command>csMessageOutput var: </command>appends all csound messages to the tcl variable var. </para>
-
-<para>Table commands:</para>
-<para> <command> csGetTableSize ftn : </command> returns the size of function table ftn (-1 if non-existent)
-</para> <para> <command> csSetTable ftn index value : </command> sets the value of position 'index' to 'value' in function table 'ftn'
-</para> <para> <command> csGetTable ftn index : </command> returns the value of position 'index' in function table 'ftn'
-</para>
-<para>Environment variable commands:
-</para>
-<para> <command> csOpcodedir opcodedir : </command> sets the opcode directory
-</para> <para> <command> csSetenv envvar value : </command> sets any environment variable (eg. SFDIR, SADIR)
-</para>
-</section>
-</chapter>
-
diff --git a/csoundXO.css b/csoundXO.css
deleted file mode 100644
index 7a992e2..0000000
--- a/csoundXO.css
+++ /dev/null
@@ -1,305 +0,0 @@
-/* csoundXO.css - for Csound5 html manual */
-/* (c) Francois Pinot, 2007 */
-/* (c) Andres Cabrera, 2008 */
-/* Free software, licensed by GNU Free Documentation License */
-
-pre.programlisting {
- background-color: #e5e5e5;
- padding: 10px 2em;
- border-style: solid;
- border-width: 1px;
- border-color: #003300;
-}
-
-pre.screen {
- background-color: #f0f0f0; padding: 10px 2em;
-}
-
-div.literallayout {
- font-family: monospace;
- padding-left: 1.5cm;
-}
-
-span.strong {
- font-weight: 700;
-}
-
-div.table table, div.informaltable table {
- border-collapse: collapse;
-}
-
-div.table thead {
- border-bottom: solid;
-}
-
-div.table td, div.table th, div.informaltable table td {
- padding: 2px 6px;
-}
-
-div.chapter pre {
- margin-bottom: 0; margin-top: 0;
-}
-
-div.chapter pre.synopsis {
- background-color: #e0e0e0; padding: 0px 2em;
-}
-
-div.chapter a {
- color: blue; font-weight: bolder; text-decoration: none;
-}
-
-div.chapter p b {
- font-size: 1.17em; font-weight: bolder;
- display: block; margin-top: 40px; padding-top: 5px; border-top: 1px solid;
-}
-
-div.navheader {
- font-family: sans-serif;
-}
-
-div.navheader th{
- color: #33CC00;
-}
-
-div.navheader tr td a{
- font-size: small;
- color: #33CC00;
- font-family: sans-serif;
-}
-
-div.toc b{
-/* Table of contents Title */
- font-size: large;
- color: #33CC00;
- font-family: sans-serif;
- font-weight: bold;
- padding-left: 1.5cm;
-}
-
-div.navfooter {
- color: #33CC00;
- font-family: sans-serif;
- font-size: small;
-}
-
-div.navfooter tr td{
- font-size: small;
- color: #000000;
- font-family: sans-serif;
-}
-
-div.navfooter tr td a{
- font-size: small;
- color: #33CC00;
- font-family: sans-serif;
-}
-
-h1.title {
-/* Main title */
- font-family: sans-serif;
- padding-left: 1.5cm;
- color: #33CC00;
- font-size: xx-large;
-}
-
-h2.title {
- font-family: sans-serif;
-/* padding-left: 0.5cm; */
- color: #003300;
-/* font-size: x-large; */
-}
-
-div.section h2.title {
- font-family: sans-serif;
- padding-left: 0.5cm;
- color: #669933;
- font-size: large;
-}
-
-h2 {
- font-family: sans-serif;
-/* padding-left: 1cm; */
-/* font-size: x-small; */
- color: #003300;
-}
-
-h2.subtitle {
- font-family: sans-serif;
- padding-left: 1.5cm;
- color: #003300;
- font-size: x-large;
-}
-
-h3.author {
- font-family: sans-serif;
- padding-left: 2cm;
- font-size: medium;
- color: #003300;
-}
-
-h3 {
- font-family: sans-serif;
-/* padding-left: 1cm; */
-/* font-size: x-small; */
- color: #996633;
-}
-
-h3.editor {
- font-family: sans-serif;
- padding-left: 2cm;
- font-size: x-small;
- color: #003300;
-}
-
-h4 {
- font-family: sans-serif;
-/* padding-left: 1cm; */
-/* font-size: x-small; */
- color: #996633;
-}
-
-span.orgname {
- font-family: serif;
- padding-left: 2cm;
- font-size: medium;
-}
-
-p {
- text-align: justify;
-/* Most text */
-/* font-size: 11px; */
-/* padding-left: 1cm; */
-}
-
-h2 span.refentrytitle {
- font-family: sans-serif;
- padding-left: 0.5cm;
- color: #669933;
- font-size: xx-large;
-}
-
-/*dt span.refentrytitle {
- font-family: sans-serif;
- font-size: small;
- color: #669933;
-}*/
-
-span.refentrytitle a {
- font-family: sans-serif;
- font-size: small;
- color: #669933;
-}
-
-div.refsect1 h2 {
- font-family: sans-serif;
-/* padding-left: 1cm; */
- color: #996633;
- font-size: large;
-}
-
-span.preface a {
- font-family: sans-serif;
- color: #003300;
- font-weight: bold;
-}
-
-span.part a {
- font-family: sans-serif;
- color: #003300;
- font-weight: bold;
-}
-
-span.chapter a {
- font-family: sans-serif;
- color: #669933;
-}
-
-div.toc span.refentrytitle a {
-/* Csound command line entry */
- font-family: sans-serif;
- font-size: medium;
- color: #669933;
-}
-
-span.section a {
- font-family: sans-serif;
- color: #669933;
-}
-
-span.appendix a {
- font-family: sans-serif;
- color: #003300;
- font-weight: bold;
-}
-
-span.glossary a {
- font-family: sans-serif;
- color: #003300;
- font-weight: bold;
-}
-
-span.term {
- font-family: sans-serif;
- font-size: small;
- font-weight: bold;
-}
-
-div.note th {
- font-family: sans-serif;
-}
-
-p.title b {
- font-family: sans-serif;
-/* padding-left: 1cm; */
- color: #996633;
-}
-
-pre.synopsis {
- background-color: #e0e0e0; padding: 10px 2em;
-}
-
-/* Syntax highlighting rules */
-pre.programlisting span.csdtag {
- color: brown;
-}
-
-pre.programlisting span.comment {
- color: green; font-style: italic;
-}
-
-pre.programlisting span.Ccomment {
- color: peru; font-style: italic;
-}
-
-pre.programlisting span.ohdr {
- color: darkred; font-weight: bold;
-}
-
-pre.programlisting span.oblock {
- color: purple; font-weight: bold;
-}
-
-pre.programlisting span.opc {
- color: blue; font-weight: bold;
-}
-
-pre.programlisting span.op {
- font-weight: bolder;
-}
-
-pre.programlisting span.octrl {
- color: green; font-weight: bold;
-}
-
-pre.programlisting span.olabel {
- color: indianred; font-weight: bold;
-}
-
-pre.programlisting span.omacro {
- color: mediumorchid; font-weight: bold;
-}
-
-pre.programlisting span.stamnt {
- color: blue; font-weight: bold;
-}
-
diff --git a/cvsauthors b/cvsauthors
deleted file mode 100644
index 6275d0b..0000000
--- a/cvsauthors
+++ /dev/null
@@ -1,14 +0,0 @@
-usethisfile:'cvs2cl --accum -U cvsauthors'
-mantaraya36:'Andrés Cabrera <mantaraya36@gmail.com>'
-fggpinot:'François Pinot <fggpinot@gmail.com>'
-jpff:'jpff <jpff@codemist.co.uk>'
-veplaini:'Victor Lazzarini <victor.lazzarini@nuim.ie>'
-akozar:'Anthony Kozar <anthonykozar@sbcglobal.net>'
-brandtsegg:'Oeyvind Brandtsegg <obrandts@gmail.com>'
-gogins:'Michael Gogins <michael.gogins@gmail.com>'
-stevenyi:'Steven Yi <stevenyi@gmail.com>'
-gareth_uk:'Gareth Edwards <gdedwards@blueyonder.co.uk>'
-fsateler:'Felipe Sateler <fsateler@gmail.com>'
-brinkmann:'Peter Brinkmann <brinkman@sci.ccny.cuny.edu>'
-joachimheintz:'Joachim Heintz <jh@joachimheintz.de>'
-menno0:'Menno Knevel <nabob_cd@yahoo.com>'
diff --git a/deprecated.txt b/deprecated.txt
deleted file mode 100644
index 40030a8..0000000
--- a/deprecated.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-abetarand
-abexprnd
-acauchy
-aexprand
-agauss
-agogobel
-alinrand
-apcauchy
-apoisson
-apow
-atrirand
-aunirand
-aweibull
-clock
-diskin
-ibetarand
-ibexprnd
-icauchy
-ictrl14
-ictrl21
-ictrl7
-iexprand
-igauss
-ilinrand
-imidic14
-imidic21
-imidic7
-instimek
-instimes
-ioff
-ion
-iondur
-iondur2
-ioutat
-ioutc
-ioutc14
-ioutpat
-ioutpb
-ioutpc
-ipcauchy
-ipoisson
-ipow
-is16b14
-is32b14
-islider16
-islider32
-islider64
-islider8
-itablecopy
-itablegpw
-itablemix
-itablew
-itrirand
-iunirand
-iweibull
-kbetarand
-kbexprnd
-kcauchy
-kdump
-kdump2
-kdump3
-kdump4
-kexprand
-kfilter2
-kgauss
-klinrand
-kon
-koutat
-koutc
-koutc14
-koutpat
-koutpb
-koutpc
-kpcauchy
-kpoisson
-kpow
-kread
-kread2
-kread3
-kread4
-ktableseg
-ktrirand
-kunirand
-kweibull
-peakk
-
-gen22
-
----------------------------------
-Removed from XO docs:
-slider8table
-slider8tablef
-slider16table
-slider16tablef
-slider32table
-slider32tablef
-slider64table
-slider64tablef
-sliderkawai
-ALL FL opcodes and references
-ATSA opcodes
diff --git a/deprecated/top.xml b/deprecated/top.xml
new file mode 100644
index 0000000..2a51698
--- /dev/null
+++ b/deprecated/top.xml
@@ -0,0 +1,116 @@
+
+<chapter id="DeprecatedTop">
+ <title>Deprecated Orchestra Opcodes and GEN Routines</title>
+
+ <section id="DeprecatedOpcodesRef">
+ <title>Deprecated Orchestra Opcodes</title>
+ <para>
+ The following opcodes are deprecated. They are still distributed with
+ Csound for backward compatibility. The new opcodes which are to be used
+ in place of the deprecated ones are indicated within each of the following
+ entries.
+ </para>
+ </section>
+
+ &opcodesabetarand;
+ &opcodesabexprnd;
+ &opcodesacauchy;
+ &opcodesaexprand;
+ &opcodesagauss;
+ &opcodesagogobel;
+ &opcodesalinrand;
+ &opcodesapcauchy;
+ &opcodesapoisson;
+ &opcodesapow;
+ &opcodesatrirand;
+ &opcodesaunirand;
+ &opcodesaweibull;
+ &opcodesbformenc;
+ &opcodesbformdec;
+ &opcodesclock;
+ &opcodesdiskin;
+ &opcodesibetarand;
+ &opcodesibexprnd;
+ &opcodesicauchy;
+ &opcodesictrl14;
+ &opcodesictrl21;
+ &opcodesictrl7;
+ &opcodesiexprand;
+ &opcodesigauss;
+ &opcodesilinrand;
+ &opcodesimidic14;
+ &opcodesimidic21;
+ &opcodesimidic7;
+ &opcodesinstimek;
+ &opcodesinstimes;
+ &opcodesioff;
+ &opcodesion;
+ &opcodesiondur;
+ &opcodesiondur2;
+ &opcodesioutat;
+ &opcodesioutc;
+ &opcodesioutc14;
+ &opcodesioutpat;
+ &opcodesioutpb;
+ &opcodesioutpc;
+ &opcodesipcauchy;
+ &opcodesipoisson;
+ &opcodesipow;
+ &opcodesis16b14;
+ &opcodesis32b14;
+ &opcodesislider16;
+ &opcodesislider32;
+ &opcodesislider64;
+ &opcodesislider8;
+ &opcodesitablecopy;
+ &opcodesitablegpw;
+ &opcodesitablemix;
+ &opcodesitablew;
+ &opcodesitrirand;
+ &opcodesiunirand;
+ &opcodesiweibull;
+ &opcodeskbetarand;
+ &opcodeskbexprnd;
+ &opcodeskcauchy;
+ &opcodeskdump;
+ &opcodeskdump2;
+ &opcodeskdump3;
+ &opcodeskdump4;
+ &opcodeskexprand;
+ &opcodeskfilter2;
+ &opcodeskgauss;
+ &opcodesklinrand;
+ &opcodeskon;
+ &opcodeskoutat;
+ &opcodeskoutc;
+ &opcodeskoutc14;
+ &opcodeskoutpat;
+ &opcodeskoutpb;
+ &opcodeskoutpc;
+ &opcodeskpcauchy;
+ &opcodeskpoisson;
+ &opcodeskpow;
+ &opcodeskread;
+ &opcodeskread2;
+ &opcodeskread3;
+ &opcodeskread4;
+ &opcodesktableseg;
+ &opcodesktrirand;
+ &opcodeskunirand;
+ &opcodeskweibull;
+ &opcodespeakk;
+ &opcodessoundout;
+ &opcodessoundouts;
+
+ <section id="DeprecatedGensRef">
+ <title>Deprecated Gen Routines</title>
+ <para>
+ The following GEN routine is deprecated. It is still distributed with
+ Csound for backward compatibility. The new GEN routine which is to be used
+ in place of the deprecated one is indicated within the following
+ entry.
+ </para>
+ </section>
+
+ &scoregensgen22;
+</chapter>
diff --git a/examples-xml/ATSadd-2.csd.xml b/examples-xml/ATSadd-2.csd.xml
new file mode 100644
index 0000000..1e9cc91
--- /dev/null
+++ b/examples-xml/ATSadd-2.csd.xml
@@ -0,0 +1,56 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-odac -d -m1
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by joachim heintz</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 1024, 10, 1
+
+ <emphasis role="oblock">instr</emphasis> AllTheTones
+Sfile <emphasis role="op">=</emphasis> "fox.ats"
+ <emphasis role="opc">prints</emphasis> "Resynthesizing with all the tones.\n"
+iDur <emphasis role="opc">ATSinfo</emphasis> Sfile, 7
+p3 <emphasis role="op">=</emphasis> iDur
+iNumParts <emphasis role="opc">ATSinfo</emphasis> Sfile, 3
+ <emphasis role="opc">prints</emphasis> "Overall number of <emphasis role="opc">partials</emphasis> <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\n", iNumParts
+ktime <emphasis role="opc">line</emphasis> 0, iDur, iDur
+asig <emphasis role="opc">ATSadd</emphasis> ktime, 1, Sfile, giSine, iNumParts
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="comment">;start next instr</emphasis>
+ <emphasis role="opc">event_i</emphasis> "i", "TonesInBandsOfTen", iDur<emphasis role="op">+</emphasis>1, iDur, 0, iNumParts
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> TonesInBandsOfTen
+Sfile <emphasis role="op">=</emphasis> "fox.ats"
+iOffset <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;start at this partial</emphasis>
+iNumParts <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;overall number of partials</emphasis>
+ <emphasis role="opc">prints</emphasis> "Resynthesizing with <emphasis role="opc">partials</emphasis> <emphasis role="op">%</emphasis>d <emphasis role="op">-</emphasis> <emphasis role="op">%</emphasis>d.\n", iOffset<emphasis role="op">+</emphasis>1, iOffset<emphasis role="op">+</emphasis>10
+ktime <emphasis role="opc">line</emphasis> 0, p3, p3
+asig <emphasis role="opc">ATSadd</emphasis> ktime, 1, Sfile, giSine, 10, iOffset
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="comment">;start next instance until there are enough partials left</emphasis>
+ <emphasis role="octrl">if</emphasis> iOffset<emphasis role="op">+</emphasis>20 <emphasis role="op">&lt;</emphasis> iNumParts then
+ <emphasis role="opc">event_i</emphasis> "i", "TonesInBandsOfTen", p3<emphasis role="op">+</emphasis>1, p3, iOffset<emphasis role="op">+</emphasis>10, iNumParts
+ <emphasis role="octrl">else</emphasis>
+ <emphasis role="opc">event_i</emphasis> "i", "End", p3, 1
+ <emphasis role="octrl">endif</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> End
+ <emphasis role="opc">exitnow</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> "AllTheTones" 0 1
+<emphasis role="stamnt">e</emphasis> 999
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ATSaddnz-2.csd.xml b/examples-xml/ATSaddnz-2.csd.xml
new file mode 100644
index 0000000..8ff4405
--- /dev/null
+++ b/examples-xml/ATSaddnz-2.csd.xml
@@ -0,0 +1,46 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-odac -d -m1
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by joachim heintz</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> AllTheNoise
+Sfile <emphasis role="op">=</emphasis> "fox.ats"
+ <emphasis role="opc">prints</emphasis> "Resynthesizing with all the noise.\n"
+iDur <emphasis role="opc">ATSinfo</emphasis> Sfile, 7
+p3 <emphasis role="op">=</emphasis> iDur
+ktime <emphasis role="opc">line</emphasis> 0, iDur, iDur
+asig <emphasis role="opc">ATSaddnz</emphasis> ktime, Sfile, 25
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="comment">;start next instr</emphasis>
+ <emphasis role="opc">event_i</emphasis> "i", "NoiseInBandsOfFive", iDur<emphasis role="op">+</emphasis>1, 1, 0
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> NoiseInBandsOfFive
+Sfile <emphasis role="op">=</emphasis> "fox.ats"
+ <emphasis role="opc">prints</emphasis> "Resynthesizing with <emphasis role="opc">noise</emphasis> bands <emphasis role="op">%</emphasis>d <emphasis role="op">-</emphasis> <emphasis role="op">%</emphasis>d.\n", p4, p4<emphasis role="op">+</emphasis>5
+iDur <emphasis role="opc">ATSinfo</emphasis> Sfile, 7
+p3 <emphasis role="op">=</emphasis> iDur
+ktime <emphasis role="opc">line</emphasis> 0, iDur, iDur
+asig <emphasis role="opc">ATSaddnz</emphasis> ktime, Sfile, 5, p4
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="comment">;start next instr</emphasis>
+<emphasis role="octrl">if</emphasis> p4 <emphasis role="op">&lt;</emphasis> 20 then
+ <emphasis role="opc">event_i</emphasis> "i", "NoiseInBandsOfFive", iDur<emphasis role="op">+</emphasis>1, 1, p4<emphasis role="op">+</emphasis>5
+<emphasis role="octrl">endif</emphasis>
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> "AllTheNo<emphasis role="stamnt">i</emphasis>se" 0 1
+<emphasis role="stamnt">e</emphasis> 25
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ATSinfo-2.csd.xml b/examples-xml/ATSinfo-2.csd.xml
new file mode 100644
index 0000000..eb7ea77
--- /dev/null
+++ b/examples-xml/ATSinfo-2.csd.xml
@@ -0,0 +1,42 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n <emphasis role="comment">;;;no audio out</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by joachim heintz</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; "fox.ats" has been created by ATSanal</emphasis>
+Sfile <emphasis role="op">=</emphasis> "fox.ats"
+isr <emphasis role="opc">ATSinfo</emphasis> Sfile, 0
+ifs <emphasis role="opc">ATSinfo</emphasis> Sfile, 1
+iws <emphasis role="opc">ATSinfo</emphasis> Sfile, 2
+inp <emphasis role="opc">ATSinfo</emphasis> Sfile, 3
+inf <emphasis role="opc">ATSinfo</emphasis> Sfile, 4
+ima <emphasis role="opc">ATSinfo</emphasis> Sfile, 5
+imf <emphasis role="opc">ATSinfo</emphasis> Sfile, 6
+id <emphasis role="opc">ATSinfo</emphasis> Sfile, 7
+ift <emphasis role="opc">ATSinfo</emphasis> Sfile, 8
+ <emphasis role="opc">prints</emphasis> {{
+Sample rate <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d Hz
+Frame Size <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d samples
+Window Size <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d samples
+Number of Partials <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d
+Number of Frames <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d
+Maximum Amplitude <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f
+Maximum Frequency <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f Hz
+Duration <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f seconds
+ATS file Type <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d
+}}, isr, ifs, iws, inp, inf, ima, imf, id, ift
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ATSread-2.csd.xml b/examples-xml/ATSread-2.csd.xml
new file mode 100644
index 0000000..8744d4e
--- /dev/null
+++ b/examples-xml/ATSread-2.csd.xml
@@ -0,0 +1,120 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-odac -d -m128
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by joachim heintz</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 1024, 10, 1
+gSfile <emphasis role="op">=</emphasis> "fox.ats"
+giNumParts <emphasis role="opc">ATSinfo</emphasis> gSfile, 3 <emphasis role="comment">;overall number of partials</emphasis>
+giDur <emphasis role="opc">ATSinfo</emphasis> gSfile, 7 <emphasis role="comment">;duration </emphasis>
+ <emphasis role="ohdr">seed</emphasis> 0
+
+
+ <emphasis role="oblock">instr</emphasis> ReadOnePartial
+iPartial <emphasis role="op">=</emphasis> p4
+p3 <emphasis role="op">=</emphasis> giDur
+ktime <emphasis role="opc">line</emphasis> 0, giDur, giDur
+ <emphasis role="opc">prints</emphasis> "Resynthesizing partial number <emphasis role="op">%</emphasis>d.\n", iPartial
+kFq,kAmp <emphasis role="opc">ATSread</emphasis> ktime, gSfile, iPartial
+kAmp <emphasis role="opc">port</emphasis> kAmp, .1 <emphasis role="comment">;smooth amplitudes - still not satisfactoring</emphasis>
+aOut <emphasis role="opc">poscil</emphasis> kAmp, kFq, giSine
+aOut <emphasis role="opc">linen</emphasis> aOut, 0, p3, .01 <emphasis role="comment">;anti-click</emphasis>
+ <emphasis role="opc">outs</emphasis> aOut<emphasis role="op">*</emphasis>10, aOut<emphasis role="op">*</emphasis>10
+
+<emphasis role="comment">;start next instr: normal speed, three loops, pause between loops one second</emphasis>
+ <emphasis role="opc">event_i</emphasis> "i", "MasterRand", giDur<emphasis role="op">+</emphasis>3, 1, 1, 3, 2
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> MasterRand
+ <emphasis role="comment">;random selections of 10 partials per second, overlapping</emphasis>
+iSpeed <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;speed of reading / playing</emphasis>
+iNumLoops <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;number of loops</emphasis>
+iPause <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;length of pause between loops</emphasis>
+ <emphasis role="opc">prints</emphasis> "Resynthesizing <emphasis role="opc">random</emphasis> partials.\n"
+p3 <emphasis role="op">=</emphasis> (giDur<emphasis role="op">/</emphasis>iSpeed<emphasis role="op">+</emphasis>iPause) <emphasis role="op">*</emphasis> iNumLoops
+<emphasis role="comment">;start next instr: half speed, three loops, three seonds pause between loops</emphasis>
+ <emphasis role="opc">event_i</emphasis> "i", "MasterArp", p3<emphasis role="op">+</emphasis>3, 1, .5, 3, 3
+<emphasis role="comment">;loop over duration plus pause</emphasis>
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="octrl">timout</emphasis> 0, giDur<emphasis role="op">/</emphasis>iSpeed<emphasis role="op">+</emphasis>iPause, <emphasis role="olabel">play</emphasis>
+ <emphasis role="opc">reinit</emphasis> <emphasis role="olabel">loop</emphasis>
+<emphasis role="olabel">play</emphasis><emphasis role="op">:</emphasis>
+gkTime <emphasis role="opc">line</emphasis> 0, giDur<emphasis role="op">/</emphasis>iSpeed, giDur <emphasis role="comment">;start time from 0 in each loop</emphasis>
+kTrig <emphasis role="opc">metro</emphasis> 10 <emphasis role="comment">;10 new partials per second</emphasis>
+ <emphasis role="comment">;call subinstrument if trigger and no pause</emphasis>
+ <emphasis role="octrl">if</emphasis> kTrig <emphasis role="op">==</emphasis> 1 <emphasis role="op">&amp;&amp;</emphasis> gkTime <emphasis role="op">&lt;</emphasis> giDur then
+kPart <emphasis role="opc">random</emphasis> 1, giNumParts<emphasis role="op">+</emphasis>.999
+ <emphasis role="opc">event</emphasis> "i", "PlayRand", 0, 1, <emphasis role="opc">int</emphasis>(kPart)
+ <emphasis role="octrl">endif</emphasis>
+
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> MasterArp
+ <emphasis role="comment">;argeggio-like reading and playing of partials </emphasis>
+iSpeed <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;speed of reading / playing</emphasis>
+iNumLoops <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;number of loops</emphasis>
+iPause <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;length of pause between loops</emphasis>
+ <emphasis role="opc">prints</emphasis> "Arpeggiating partials.\n"
+p3 <emphasis role="op">=</emphasis> (giDur<emphasis role="op">/</emphasis>iSpeed<emphasis role="op">+</emphasis>iPause) <emphasis role="op">*</emphasis> iNumLoops
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="octrl">timout</emphasis> 0, giDur<emphasis role="op">/</emphasis>iSpeed<emphasis role="op">+</emphasis>iPause, <emphasis role="olabel">play</emphasis>
+ <emphasis role="opc">reinit</emphasis> <emphasis role="olabel">loop</emphasis>
+<emphasis role="olabel">play</emphasis><emphasis role="op">:</emphasis>
+gkTime <emphasis role="opc">line</emphasis> 0, giDur<emphasis role="op">/</emphasis>iSpeed, giDur
+kArp <emphasis role="opc">linseg</emphasis> 1, (giDur<emphasis role="op">/</emphasis>iSpeed)<emphasis role="op">/</emphasis>2, giNumParts, (giDur<emphasis role="op">/</emphasis>iSpeed)<emphasis role="op">/</emphasis>2, 1 <emphasis role="comment">;arp up and down</emphasis>
+kTrig <emphasis role="opc">metro</emphasis> 10 <emphasis role="comment">;10 new partials per second</emphasis>
+ <emphasis role="octrl">if</emphasis> kTrig <emphasis role="op">==</emphasis> 1 <emphasis role="op">&amp;&amp;</emphasis> gkTime <emphasis role="op">&lt;</emphasis> giDur then
+ <emphasis role="opc">event</emphasis> "i", "PlayArp", 0, 5, <emphasis role="opc">int</emphasis>(kArp)
+ <emphasis role="octrl">endif</emphasis>
+
+<emphasis role="comment">;exit csound when finished</emphasis>
+ <emphasis role="opc">event_i</emphasis> "i", "End", p3<emphasis role="op">+</emphasis>5, 1
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> PlayRand
+iPartial <emphasis role="op">=</emphasis> p4
+kFq,kAmp <emphasis role="opc">ATSread</emphasis> gkTime, gSfile, iPartial
+kamp <emphasis role="opc">port</emphasis> kAmp, .15 <emphasis role="comment">;smooth amplitudes</emphasis>
+aOut <emphasis role="opc">poscil</emphasis> kAmp, kFq, giSine
+aOut <emphasis role="opc">linen</emphasis> aOut, .01, p3, .01
+ <emphasis role="opc">outs</emphasis> aOut, aOut
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> PlayArp
+kCount <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;k-cycle</emphasis>
+iPartial <emphasis role="op">=</emphasis> p4
+kFq,kAmp <emphasis role="opc">ATSread</emphasis> gkTime, gSfile, iPartial
+ <emphasis role="octrl">if</emphasis> kCount <emphasis role="op">==</emphasis> 1 then <emphasis role="comment">;get freq from first k-cycle</emphasis>
+kModFq <emphasis role="op">=</emphasis> kFq
+ <emphasis role="comment">;avoid to go with 0 Hz as this blocks the mode filter</emphasis>
+ <emphasis role="octrl">if</emphasis> kModFq <emphasis role="op">==</emphasis> 0 then
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="octrl">endif</emphasis>
+ <emphasis role="octrl">endif</emphasis>
+iVol <emphasis role="opc">random</emphasis> <emphasis role="op">-</emphasis>42, <emphasis role="op">-</emphasis>12 <emphasis role="comment">;db</emphasis>
+iOffset <emphasis role="opc">random</emphasis> .01, .1 <emphasis role="comment">;no too regularily ...</emphasis>
+aImp <emphasis role="opc">mpulse</emphasis> <emphasis role="opc">ampdb</emphasis>(iVol), p3, iOffset
+iQ <emphasis role="opc">random</emphasis> 500, 5000
+aOut <emphasis role="opc">mode</emphasis> aImp, kModFq, iQ
+aOut <emphasis role="opc">linen</emphasis> aOut, 0, p3, p3<emphasis role="op">/</emphasis>3
+ <emphasis role="opc">outs</emphasis> aOut, aOut
+kCount <emphasis role="op">=</emphasis> 2
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> End
+ <emphasis role="opc">exitnow</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> "ReadOnePart<emphasis role="stamnt">i</emphasis>al" 0 1 10
+<emphasis role="stamnt">e</emphasis> 999
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ATSsinnoi-2.csd.xml b/examples-xml/ATSsinnoi-2.csd.xml
new file mode 100644
index 0000000..97bbfdd
--- /dev/null
+++ b/examples-xml/ATSsinnoi-2.csd.xml
@@ -0,0 +1,81 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-odac -d -m128
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by joachim heintz</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 1024, 10, 1
+gSfile <emphasis role="op">=</emphasis> "fox.ats"
+giNumParts <emphasis role="opc">ATSinfo</emphasis> gSfile, 3 <emphasis role="comment">;overall number of partials</emphasis>
+giDur <emphasis role="opc">ATSinfo</emphasis> gSfile, 7 <emphasis role="comment">;duration </emphasis>
+ <emphasis role="ohdr">seed</emphasis> 0
+
+
+ <emphasis role="oblock">instr</emphasis> PlayList
+<emphasis role="opc">event_i</emphasis> "i", "PlayAll", 0, 1, 1, 0, .5 <emphasis role="comment">;sine only, half speed</emphasis>
+<emphasis role="opc">event_i</emphasis> "i", "PlayAll", giDur<emphasis role="op">*</emphasis>2<emphasis role="op">+</emphasis>1, 1, 0, 1, .5 <emphasis role="comment">;noise only</emphasis>
+<emphasis role="opc">event_i</emphasis> "i", "PlayAll", giDur<emphasis role="op">*</emphasis>4<emphasis role="op">+</emphasis>2, 1, .5, .5, .5 <emphasis role="comment">;half sine, half noise</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> PlayAll
+iSinAmnt <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;sinee amount (0-1)</emphasis>
+iNzAmnt <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;noise amount (0-1)</emphasis>
+iSpeed <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;speed</emphasis>
+p3 <emphasis role="op">=</emphasis> giDur<emphasis role="op">/</emphasis>iSpeed
+ktime <emphasis role="opc">line</emphasis> 0, giDur<emphasis role="op">/</emphasis>iSpeed, giDur
+ <emphasis role="opc">prints</emphasis> "Resynthesizing all <emphasis role="opc">partials</emphasis> with <emphasis role="opc">tone</emphasis> <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.1f and <emphasis role="opc">noise</emphasis> <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.1f.\n", iSinAmnt, iNzAmnt
+aOut <emphasis role="opc">ATSsinnoi</emphasis> ktime, iSinAmnt, iNzAmnt, 1, gSfile, giNumParts
+ <emphasis role="opc">outs</emphasis> aOut, aOut
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> PlayBand
+iOffset <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;offset in partials</emphasis>
+iSpeed <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;speed</emphasis>
+p3 <emphasis role="op">=</emphasis> giDur<emphasis role="op">/</emphasis>iSpeed
+ktime <emphasis role="opc">line</emphasis> 0, giDur<emphasis role="op">/</emphasis>iSpeed, giDur
+ <emphasis role="opc">prints</emphasis> "Resynthesizing <emphasis role="opc">partials</emphasis> <emphasis role="op">%</emphasis>d to <emphasis role="op">%</emphasis>d with related noise.\n", iOffset<emphasis role="op">+</emphasis>1, iOffset<emphasis role="op">+</emphasis>10
+aOut <emphasis role="opc">ATSsinnoi</emphasis> ktime, 1, 1, 1, gSfile, 10, iOffset, 1
+ <emphasis role="opc">outs</emphasis> aOut, aOut
+<emphasis role="comment">;call itself again</emphasis>
+ <emphasis role="octrl">if</emphasis> iOffset <emphasis role="op">&lt;</emphasis> giNumParts <emphasis role="op">-</emphasis> 20 then
+ <emphasis role="opc">event_i</emphasis> "i", "PlayBand", giDur<emphasis role="op">/</emphasis>iSpeed<emphasis role="op">+</emphasis>1, 1, iOffset<emphasis role="op">+</emphasis>10, iSpeed
+ <emphasis role="octrl">endif</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> PlayWeighted
+ <emphasis role="comment">;sine amount, noise amount and speeed are varying</emphasis>
+kSinAmnt <emphasis role="opc">randomi</emphasis> 0, 1, 1, 3
+kNzAmnt <emphasis role="op">=</emphasis> 1<emphasis role="op">-</emphasis>kSinAmnt
+kSpeed <emphasis role="opc">randomi</emphasis> .01, .3, 1, 3
+async <emphasis role="opc">init</emphasis> 0
+atime, aEnd <emphasis role="opc">syncphasor</emphasis> kSpeed<emphasis role="op">/</emphasis>giDur, async
+kTrig <emphasis role="opc">metro</emphasis> 100
+kEnd <emphasis role="opc">max_k</emphasis> aEnd, kTrig, 1 <emphasis role="comment">;1 if phasor signal crosses zero</emphasis>
+ktime <emphasis role="opc">downsamp</emphasis> atime
+aOut <emphasis role="opc">ATSsinnoi</emphasis> ktime<emphasis role="op">*</emphasis>giDur, kSinAmnt, kNzAmnt, 1, gSfile, giNumParts
+ <emphasis role="opc">outs</emphasis> aOut, aOut
+ <emphasis role="comment">;exit if file is at the end </emphasis>
+ <emphasis role="octrl">if</emphasis> kEnd <emphasis role="op">==</emphasis> 1 then
+ <emphasis role="opc">event</emphasis> "i", "End", 0, 1
+ <emphasis role="octrl">endif</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> End
+ <emphasis role="opc">exitnow</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> "PlayL<emphasis role="stamnt">i</emphasis>st" 0 1
+<emphasis role="stamnt">i</emphasis> "PlayBand" 20 1 0 .5
+<emphasis role="stamnt">i</emphasis> "PlayWe<emphasis role="stamnt">i</emphasis>ghted" 110 100
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/FLsavesnap.csd.xml b/examples-xml/FLsavesnap.csd.xml
index 7c52c4a..cc3c106 100644
--- a/examples-xml/FLsavesnap.csd.xml
+++ b/examples-xml/FLsavesnap.csd.xml
@@ -29,7 +29,7 @@
gksliderD, gislidSM4 <emphasis role="opc">FLslider</emphasis> "Slider D", 0, 1, 0, 3, ivalSM4, 250, 20, 20, 140
itext1 <emphasis role="opc">FLbox</emphasis> "store", 1, 1, 14, 50, 25, 355, 15
itext2 <emphasis role="opc">FLbox</emphasis> "load", 1, 1, 14, 50, 25, 415, 15
- itext3 <emphasis role="opc">FLbox</emphasis> "G\nr\no\nu\np\n \n1", 1, 1, 14, 30, 145, 485, 15
+ itext3 <emphasis role="opc">FLbox</emphasis> "Group 1", 1, 1, 14, 30, 145, 485, 15
gksnap, ibuttn1 <emphasis role="opc">FLbutton</emphasis> "1", 1, 0, 11, 25, 25, 364, 45, 0, 3, 0, 3, 1
gksnap, ibuttn2 <emphasis role="opc">FLbutton</emphasis> "2", 1, 0, 11, 25, 25, 364, 75, 0, 3, 0, 3, 2
gksnap, ibuttn3 <emphasis role="opc">FLbutton</emphasis> "3", 1, 0, 11, 25, 25, 364, 105, 0, 3, 0, 3, 3
@@ -51,7 +51,7 @@
gkknobD, gislidSM8 <emphasis role="opc">FLknob</emphasis> "Knob D", 0, 1, 0, 3, ivalSM8, 45, 205, 230
itext4 <emphasis role="opc">FLbox</emphasis> "store", 1, 1, 14, 50, 25, 355, 185
itext5 <emphasis role="opc">FLbox</emphasis> "load", 1, 1, 14, 50, 25, 415, 185
- itext6 <emphasis role="opc">FLbox</emphasis> "G\nr\no\nu\np\n \n2", 1, 1, 14, 30, 145, 485, 185
+ itext6 <emphasis role="opc">FLbox</emphasis> "Group 2", 1, 1, 14, 30, 145, 485, 185
gksnap, ibuttn1 <emphasis role="opc">FLbutton</emphasis> "5", 1, 0, 11, 25, 25, 364, 215, 0, 3, 0, 3, 5
gksnap, ibuttn2 <emphasis role="opc">FLbutton</emphasis> "6", 1, 0, 11, 25, 25, 364, 245, 0, 3, 0, 3, 6
gksnap, ibuttn3 <emphasis role="opc">FLbutton</emphasis> "7", 1, 0, 11, 25, 25, 364, 275, 0, 3, 0, 3, 7
diff --git a/examples-xml/JackoInfo.csd.xml b/examples-xml/JackoInfo.csd.xml
new file mode 100644
index 0000000..b777fb4
--- /dev/null
+++ b/examples-xml/JackoInfo.csd.xml
@@ -0,0 +1,26 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 48000
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 128
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+JackoInit "default", "csound"
+JackoInfo
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+ <emphasis role="stamnt">i</emphasis> 1 0 0
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/JackoInit.csd.xml b/examples-xml/JackoInit.csd.xml
new file mode 100644
index 0000000..b777fb4
--- /dev/null
+++ b/examples-xml/JackoInit.csd.xml
@@ -0,0 +1,26 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 48000
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 128
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+JackoInit "default", "csound"
+JackoInfo
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+ <emphasis role="stamnt">i</emphasis> 1 0 0
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/Mixer.csd.xml b/examples-xml/Mixer.csd.xml
new file mode 100644
index 0000000..a10ec19
--- /dev/null
+++ b/examples-xml/Mixer.csd.xml
@@ -0,0 +1,55 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in</emphasis>
+-odac <emphasis role="comment">; -iadc ;;;RT audio out</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o Mixer.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+katt <emphasis role="opc">expon</emphasis> 0.01, p3, 1 <emphasis role="comment">;create an attack</emphasis>
+aout <emphasis role="opc">poscil</emphasis> .7, 440,1
+ <emphasis role="opc">MixerSetLevel</emphasis> 1, 3, katt <emphasis role="comment">;impose attack on the gain level</emphasis>
+ <emphasis role="opc">MixerSend</emphasis> aout, 1, 3, 0 <emphasis role="comment">;send to channel 0</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+aout <emphasis role="opc">vco2</emphasis> .5, 110 <emphasis role="comment">;saw wave</emphasis>
+ <emphasis role="opc">MixerSetLevel</emphasis> 2, 3, .25 <emphasis role="comment">;set level to .25 of vco2</emphasis>
+ <emphasis role="opc">MixerSend</emphasis> aout, 2, 3, 1 <emphasis role="comment">;send to channel 1</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 3 <emphasis role="comment">;mix instr.1 and 2 with reverb</emphasis>
+
+kgain1 <emphasis role="opc">MixerGetLevel</emphasis> 1,3 <emphasis role="comment">;get level form buss 3</emphasis>
+kgain2 <emphasis role="opc">MixerGetLevel</emphasis> 2,3 <emphasis role="comment">;get level form buss 3</emphasis>
+a1 <emphasis role="opc">MixerReceive</emphasis> 3,0 <emphasis role="comment">;receive channel 0</emphasis>
+a2 <emphasis role="opc">MixerReceive</emphasis> 3,1 <emphasis role="comment">;receive channel 1</emphasis>
+aout <emphasis role="op">=</emphasis> a1<emphasis role="op">*</emphasis>kgain1<emphasis role="op">+</emphasis>a2<emphasis role="op">*</emphasis>kgain2 <emphasis role="comment">;mix them</emphasis>
+aoutL, aoutR <emphasis role="opc">reverbsc</emphasis> aout, aout, 0.85, 12000 <emphasis role="comment">;add a nice reverb</emphasis>
+ <emphasis role="opc">outs</emphasis> aoutL, aoutR
+ <emphasis role="opc">MixerClear</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
+
+<emphasis role="stamnt">i</emphasis>1 0 2
+<emphasis role="stamnt">i</emphasis>2 0 2
+<emphasis role="stamnt">i</emphasis>3 0 8 <emphasis role="comment">;reverb stays on for 8 sec.</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/PartikkelExample1.csd.xml b/examples-xml/PartikkelExample1.csd.xml
index 14e21f3..2ad84aa 100644
--- a/examples-xml/PartikkelExample1.csd.xml
+++ b/examples-xml/PartikkelExample1.csd.xml
@@ -38,7 +38,7 @@ icentrand <emphasis role="op">=</emphasis> p9 <emphasis role="comment">; trans
ipan <emphasis role="op">=</emphasis> p10 <emphasis role="comment">; panning narrow (0) to wide (1)</emphasis>
idist <emphasis role="op">=</emphasis> p11 <emphasis role="comment">; grain distribution (0=periodic, 1=scattered)</emphasis>
-<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>get length of source wave file, needed for both transposition <emphasis role="opc">and</emphasis> time pointer<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>get length of source wave file, needed for both transposition and time pointer<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
ifilen <emphasis role="opc">tableng</emphasis> giFile
ifildur <emphasis role="op">=</emphasis> ifilen <emphasis role="op">/</emphasis> <emphasis role="ohdr">sr</emphasis>
@@ -101,7 +101,7 @@ afilposphas <emphasis role="opc">phasor</emphasis> ispeed <emphasis role="op">/
iposrandsec <emphasis role="op">=</emphasis> iposrand <emphasis role="op">/</emphasis> 1000 <emphasis role="comment">; ms -> sec</emphasis>
iposrand <emphasis role="op">=</emphasis> iposrandsec <emphasis role="op">/</emphasis> ifildur <emphasis role="comment">; phase values (0-1)</emphasis>
krndpos <emphasis role="opc">linrand</emphasis> iposrand <emphasis role="comment">; random offset in phase values</emphasis>
-<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis><emphasis role="opc">add</emphasis> <emphasis role="opc">random</emphasis> deviation to the time pointer<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>add <emphasis role="opc">random</emphasis> deviation to the time pointer<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
asamplepos1 <emphasis role="op">=</emphasis> afilposphas <emphasis role="op">+</emphasis> krndpos<emphasis role="comment">; resulting phase values (0-1)</emphasis>
asamplepos2 <emphasis role="op">=</emphasis> asamplepos1
asamplepos3 <emphasis role="op">=</emphasis> asamplepos1
diff --git a/examples-xml/STKBandedWG.csd.xml b/examples-xml/STKBandedWG.csd.xml
index 8fec724..3b8e902 100644
--- a/examples-xml/STKBandedWG.csd.xml
+++ b/examples-xml/STKBandedWG.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKBandedWG.wav -W ;;; for file output any platform</emphasis>
@@ -12,25 +12,25 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ifrq <emphasis role="op">=</emphasis> p4
-kblw <emphasis role="opc">line</emphasis> p5, p3, p6
-kenv <emphasis role="opc">line</emphasis> 1, p3, 0
+ifrq <emphasis role="op">=</emphasis> p4
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;pressure of bow</emphasis>
+kenv <emphasis role="opc">line</emphasis> 1, p3, 0
-asig STKBandedWG <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, p5, 4, 100, 11, 0, 1, 0, 64, 100, 128, 120, 16, 2
-asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> kenv <emphasis role="comment">;envelope</emphasis>
- <emphasis role="opc">outs</emphasis> asig, asig
+asig <emphasis role="opc">STKBandedWG</emphasis> <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kv1, 4, 100, 11, 0, 1, 0, 64, 100, 128, 120, 16, 2
+asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> kenv <emphasis role="comment">;simple envelope</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 10 5.00 100 0
-<emphasis role="stamnt">i</emphasis> 1 2 8 6.03 10 .
-<emphasis role="stamnt">i</emphasis> 1 5 5 7.05 50 127
+<emphasis role="stamnt">i</emphasis> 1 10 8 6.03 10 .
+<emphasis role="stamnt">i</emphasis> 1 20 5 7.05 50 127
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/STKBeeThree.csd.xml b/examples-xml/STKBeeThree.csd.xml
index a03569e..810c194 100644
--- a/examples-xml/STKBeeThree.csd.xml
+++ b/examples-xml/STKBeeThree.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKBeeThree.wav -W ;;; for file output any platform</emphasis>
@@ -12,16 +12,16 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-kfdb <emphasis role="op">=</emphasis> p6
-kop3 <emphasis role="opc">line</emphasis> p4, p3, p5
-kvol <emphasis role="opc">line</emphasis> 0, p3, 100
+kv1 <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;feedback of operator 4</emphasis>
+kv2 <emphasis role="opc">line</emphasis> p4, p3, p5 <emphasis role="comment">;gain of operator 3</emphasis>
+kv5 <emphasis role="opc">line</emphasis> 0, p3, 100
ipch <emphasis role="op">=</emphasis> p7
-asig STKBeeThree <emphasis role="opc">cpspch</emphasis>(ipch), 1, 2, kfdb, 4, kop3, 11, 50, 1, 0, 128, kvol
+asig <emphasis role="opc">STKBeeThree</emphasis> <emphasis role="opc">cpspch</emphasis>(ipch), 1, 2, kv1, 4, kv2, 11, 50, 1, 0, 128, kv5
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
@@ -29,7 +29,7 @@ asig STKBeeThree <emphasis role="opc">cpspch</emphasis>(ipch), 1, 2, kfdb, 4, ko
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 2 20 100 127 8.00
-<emphasis role="stamnt">i</emphasis> 1 + 3 120 0 0 6.09
+<emphasis role="stamnt">i</emphasis> 1 + 8 120 0 0 6.09
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/STKBlowBotl.csd.xml b/examples-xml/STKBlowBotl.csd.xml
index b740d43..73805b9 100644
--- a/examples-xml/STKBlowBotl.csd.xml
+++ b/examples-xml/STKBlowBotl.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKBlowBotl.wav -W ;;; for file output any platform</emphasis>
@@ -12,16 +12,16 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ipch <emphasis role="op">=</emphasis> p4
-knoise <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;noise</emphasis>
-kvol <emphasis role="opc">line</emphasis> 100, p3, 70 <emphasis role="comment">;volume</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;gain of noise</emphasis>
+kv4 <emphasis role="opc">line</emphasis> 100, p3, 70 <emphasis role="comment">;volume</emphasis>
-asig STKBlowBotl <emphasis role="opc">cpspch</emphasis>(ipch), 1, 4, knoise, 11, 10, 1, 50, 128, kvol
-asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> .7 <emphasis role="comment">;too loud</emphasis>
+asig <emphasis role="opc">STKBlowBotl</emphasis> <emphasis role="opc">cpspch</emphasis>(ipch), 1, 4, kv1, 11, 10, 1, 50, 128, kv4
+asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> .5 <emphasis role="comment">;too loud</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
@@ -29,7 +29,7 @@ asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> .7
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 2 9.00 20 100
-<emphasis role="stamnt">i</emphasis> 1 + 3 8.03 120 0
+<emphasis role="stamnt">i</emphasis> 1 + 5 8.03 120 0
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/STKBlowHole.csd.xml b/examples-xml/STKBlowHole.csd.xml
index e2de7b3..f662c76 100644
--- a/examples-xml/STKBlowHole.csd.xml
+++ b/examples-xml/STKBlowHole.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKBlowHole.wav -W ;;; for file output any platform</emphasis>
@@ -12,15 +12,15 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ipch <emphasis role="op">=</emphasis> p4
-kstiff <emphasis role="op">=</emphasis> p7
-khole <emphasis role="opc">line</emphasis> p5, p3, p6
+ipch <emphasis role="op">=</emphasis> p4
+kv1 <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;stiffness of reed</emphasis>
+kv3 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;state of tonehole</emphasis>
-asig STKBlowHole <emphasis role="opc">cpspch</emphasis>(ipch), 1, 2, kstiff, 4, 100, 11, khole, 1, 10, 128, 100
+asig <emphasis role="opc">STKBlowHole</emphasis> <emphasis role="opc">cpspch</emphasis>(ipch), 1, 2, kv1, 4, 100, 11, kv3, 1, 10, 128, 100
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
@@ -28,7 +28,7 @@ asig STKBlowHole <emphasis role="opc">cpspch</emphasis>(ipch), 1, 2, kstiff, 4,
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 4 10.00 20 127 100
-<emphasis role="stamnt">i</emphasis> 1 + 3 6.09 120 0 10
+<emphasis role="stamnt">i</emphasis> 1 + 7 6.09 120 0 10
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/STKBowed.csd.xml b/examples-xml/STKBowed.csd.xml
index c260baa..518ea14 100644
--- a/examples-xml/STKBowed.csd.xml
+++ b/examples-xml/STKBowed.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKBowed.wav -W ;;; for file output any platform</emphasis>
@@ -12,27 +12,27 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ipch <emphasis role="op">=</emphasis> p4
-kpos <emphasis role="op">=</emphasis> p7
-kpres <emphasis role="opc">line</emphasis> p5, p3, p6
-kvib <emphasis role="opc">line</emphasis> 0, p3, 7
+kv2 <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;position on bow</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;bow pressure</emphasis>
+kv4 <emphasis role="opc">line</emphasis> 0, p3, 7 <emphasis role="comment">;depth of low-frequency oscillator</emphasis>
-asig STKBowed <emphasis role="opc">cpspch</emphasis>(ipch), 1, 2, kpres, 4, kpos, 11, 40, 1, kvib, 128, 100
-asig <emphasis role="op">=</emphasis> asig<emphasis role="op">*</emphasis>4 <emphasis role="comment">;amplify</emphasis>
+asig <emphasis role="opc">STKBowed</emphasis> <emphasis role="opc">cpspch</emphasis>(ipch), 1, 2, kv1, 4, kv2, 11, 40, 1, kv4, 128, 100
+asig <emphasis role="op">=</emphasis> asig<emphasis role="op">*</emphasis>2 <emphasis role="comment">;amplify</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 5 6.00 20 100 127
-<emphasis role="stamnt">i</emphasis> 1 + 3 7.00 120 0 0
-<emphasis role="stamnt">i</emphasis> 1 8 3 7.05 120 0 30
-<emphasis role="stamnt">i</emphasis> 1 8 4 7.03 50 0 0
+<emphasis role="stamnt">i</emphasis> 1 0 15 6.00 20 100 115
+<emphasis role="stamnt">i</emphasis> 1 17 3 7.00 120 0 0
+<emphasis role="stamnt">i</emphasis> 1 21 3 7.09 120 0 30
+<emphasis role="stamnt">i</emphasis> 1 21 4 7.03 50 0 0
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/STKBrass.csd.xml b/examples-xml/STKBrass.csd.xml
index 0197555..c6341a0 100644
--- a/examples-xml/STKBrass.csd.xml
+++ b/examples-xml/STKBrass.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKBrass.wav -W ;;; for file output any platform</emphasis>
@@ -12,15 +12,16 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
+
ifrq <emphasis role="op">=</emphasis> p4
-kjet <emphasis role="opc">line</emphasis> p5, p3, p6
-ktrl <emphasis role="opc">line</emphasis> p7, p3, p8
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;lip tension</emphasis>
+kv3 <emphasis role="opc">line</emphasis> p7, p3, p8 <emphasis role="comment">;speed of low-frequency oscillator</emphasis>
-asig STKBrass <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kjet, 4, 100, 11, ktrl, 1, 10, 128, 50
-asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> 3 <emphasis role="comment">;amplify</emphasis>
+asig <emphasis role="opc">STKBrass</emphasis> <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kv1, 4, 100, 11, kv3, 1, 10, 128, 40
+asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis>3 <emphasis role="comment">;amplify</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKClarinet.csd.xml b/examples-xml/STKClarinet.csd.xml
index 421fdab..e0a38ea 100644
--- a/examples-xml/STKClarinet.csd.xml
+++ b/examples-xml/STKClarinet.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKclarinet.wav -W ;;; for file output any platform</emphasis>
@@ -12,14 +12,14 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kpress <emphasis role="op">=</emphasis> p5
-kstiff <emphasis role="opc">line</emphasis> p6, p3, p7
-asig STKClarinet <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, kstiff, 4, 100, 11, 60, 1, 10, 128, kpress
+kv5 <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;breath pressure</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p6, p3, p7 <emphasis role="comment">;reed stiffness</emphasis>
+asig <emphasis role="opc">STKClarinet</emphasis> <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, kv1, 4, 100, 11, 60, 1, 10, 128, kv5
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKDrummer.csd.xml b/examples-xml/STKDrummer.csd.xml
index 2d70899..044c7be 100644
--- a/examples-xml/STKDrummer.csd.xml
+++ b/examples-xml/STKDrummer.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac -M0 <emphasis role="comment">;;;RT audio out and midi in</emphasis>
+-odac -M0 <emphasis role="comment">;;;realtime audio out and midi in</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKDrummer.wav -W ;;; for file output any platform</emphasis>
@@ -12,13 +12,13 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;STK Drummer - has no controllers but plays samples</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;STK Drummer - has no controllers but plays samples (11)</emphasis>
icps <emphasis role="opc">cpsmidi</emphasis>
iamp <emphasis role="opc">ampmidi</emphasis> 1
-asig STKDrummer icps, iamp
+asig <emphasis role="opc">STKDrummer</emphasis> icps, iamp
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKFMVoices.csd.xml b/examples-xml/STKFMVoices.csd.xml
index a46c453..07c6525 100644
--- a/examples-xml/STKFMVoices.csd.xml
+++ b/examples-xml/STKFMVoices.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKFMVoices.wav -W ;;; for file output any platform</emphasis>
@@ -12,16 +12,16 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kjet <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;vowel</emphasis>
-ktlt <emphasis role="opc">line</emphasis> p7, p3, p8 <emphasis role="comment">;specral tilt</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;vowel</emphasis>
+kv2 <emphasis role="opc">line</emphasis> p7, p3, p8 <emphasis role="comment">;specral tilt</emphasis>
-asig STKFMVoices <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kjet, 4, ktlt, 11, 10, 1, 10, 128, 50
-asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> 4 <emphasis role="comment">;amplify</emphasis>
+asig <emphasis role="opc">STKFMVoices</emphasis> <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kv1, 4, kv2, 11, 10, 1, 10, 128, 50
+asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> 4 <emphasis role="comment">;amplify</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKFlute.csd.xml b/examples-xml/STKFlute.csd.xml
index 2188796..9e747a8 100644
--- a/examples-xml/STKFlute.csd.xml
+++ b/examples-xml/STKFlute.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKFlute.wav -W ;;; for file output any platform</emphasis>
@@ -12,22 +12,22 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kjet <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;jet delay</emphasis>
-kvib <emphasis role="opc">line</emphasis> 0, p3, 100 <emphasis role="comment">;vibrato depth</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;jet delay</emphasis>
+kv4 <emphasis role="opc">line</emphasis> 0, p3, 100 <emphasis role="comment">;vibrato depth</emphasis>
-asig STKFlute <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kjet, 4, 100, 11, 100, 1, kvib, 128, 100
+asig <emphasis role="opc">STKFlute</emphasis> <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kv1, 4, 100, 11, 100, 1, kv4, 128, 100
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2 8.00 0 0
-<emphasis role="stamnt">i</emphasis> 1 3 3 9.00 20 120
+<emphasis role="stamnt">i</emphasis> 1 0 5 8.00 0 0
+<emphasis role="stamnt">i</emphasis> 1 7 3 9.00 20 120
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/STKHevyMetl.csd.xml b/examples-xml/STKHevyMetl.csd.xml
index af2ce83..1ef0000 100644
--- a/examples-xml/STKHevyMetl.csd.xml
+++ b/examples-xml/STKHevyMetl.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKHevyMetl.wav -W ;;; for file output any platform</emphasis>
@@ -12,15 +12,15 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kndx <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;Total Modulator Index</emphasis>
-kfad <emphasis role="opc">line</emphasis> p7, p3, 0 <emphasis role="comment">;Modulator Crossfade</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;Total Modulator Index</emphasis>
+kv2 <emphasis role="opc">line</emphasis> p7, p3, 0 <emphasis role="comment">;Modulator Crossfade</emphasis>
-asig STKHevyMetl <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kndx, 4, kfad, 11, 0, 1, 100, 128, 40
+asig <emphasis role="opc">STKHevyMetl</emphasis> <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kv1, 4, kv2, 11, 0, 1, 100, 128, 40
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKMandolin.csd.xml b/examples-xml/STKMandolin.csd.xml
index 6d4c160..6c19726 100644
--- a/examples-xml/STKMandolin.csd.xml
+++ b/examples-xml/STKMandolin.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKMandolin.wav -W ;;; for file output any platform</emphasis>
@@ -12,15 +12,15 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kbody <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;body size</emphasis>
-ksus <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;sustain</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;body size</emphasis>
+kv3 <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;sustain</emphasis>
-asig STKMandolin <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kbody, 4, 10, 11, ksus, 1, 100, 128, 100
+asig <emphasis role="opc">STKMandolin</emphasis> <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kv1, 4, 10, 11, kv3, 1, 100, 128, 100
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKModalBar.csd.xml b/examples-xml/STKModalBar.csd.xml
index 9182b16..c3bf893 100644
--- a/examples-xml/STKModalBar.csd.xml
+++ b/examples-xml/STKModalBar.csd.xml
@@ -12,15 +12,15 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-khard <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;stick hardness ;</emphasis>
+kv1 <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;stick hardness ;</emphasis>
-asig STKModalBar <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, khard, 4, 120, 11, 0, 1, 0, 8, 10, 16, 1
-asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> 3 <emphasis role="comment">;amplify</emphasis>
+asig <emphasis role="opc">STKModalBar</emphasis> <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kv1, 4, 120, 11, 0, 1, 0, 8, 10, 16, 1
+asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> 3 <emphasis role="comment">;amplify</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKMoog.csd.xml b/examples-xml/STKMoog.csd.xml
index f076e72..62c6d68 100644
--- a/examples-xml/STKMoog.csd.xml
+++ b/examples-xml/STKMoog.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKMoog.wav -W ;;; for file output any platform</emphasis>
@@ -12,14 +12,14 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kfil <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;filter Q</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;filter Q</emphasis>
-asig STKMoog <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2,kfil, 4, 120, 11, 40, 1, 1, 128, 120
+asig <emphasis role="opc">STKMoog</emphasis> <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2,kv1, 4, 120, 11, 40, 1, 1, 128, 120
asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> .3 <emphasis role="comment">;too loud</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKPercFlut.csd.xml b/examples-xml/STKPercFlut.csd.xml
index e936452..b53217f 100644
--- a/examples-xml/STKPercFlut.csd.xml
+++ b/examples-xml/STKPercFlut.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKPercFlut.wav -W ;;; for file output any platform</emphasis>
@@ -12,15 +12,15 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kndx <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;Total Modulator Index</emphasis>
-kfad <emphasis role="opc">line</emphasis> p7, p3, 0 <emphasis role="comment">;Modulator Crossfade</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;Total Modulator Index</emphasis>
+kv2 <emphasis role="opc">line</emphasis> p7, p3, 0 <emphasis role="comment">;Modulator Crossfade</emphasis>
-asig STKPercFlut <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kndx, 4, kfad, 11, 0, 1, 100, 128, 40
+asig <emphasis role="opc">STKPercFlut</emphasis> <emphasis role="opc">cpspch</emphasis>(ifrq), 1, 2, kv1, 4, kv2, 11, 0, 1, 100, 128, 40
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKPlucked.csd.xml b/examples-xml/STKPlucked.csd.xml
index fa77c3f..bd5c84d 100644
--- a/examples-xml/STKPlucked.csd.xml
+++ b/examples-xml/STKPlucked.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKPlucked.wav -W ;;; for file output any platform</emphasis>
@@ -12,13 +12,13 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;STKPlucked - has no controllers</emphasis>
ifrq <emphasis role="op">=</emphasis> p4
-asig STKPlucked <emphasis role="opc">cpspch</emphasis>(ifrq), 1
+asig <emphasis role="opc">STKPlucked</emphasis> <emphasis role="opc">cpspch</emphasis>(ifrq), 1
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKResonate.csd.xml b/examples-xml/STKResonate.csd.xml
index 1085cd8..d6c8a6f 100644
--- a/examples-xml/STKResonate.csd.xml
+++ b/examples-xml/STKResonate.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKResonate.wav -W ;;; for file output any platform</emphasis>
@@ -12,15 +12,15 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; frequency of STKResonate has no effect on sound</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; frequency and amplitude of STKResonate have no effect</emphasis>
-kpol <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;pole radii</emphasis>
-kfrq <emphasis role="opc">line</emphasis> 100, p3, 0 <emphasis role="comment">;resonance freq + notch freq</emphasis>
-
-asig STKResonate 1, 1, 2, kfrq, 4, kpol, 1, 10, 11, kfrq, 128, 127
-asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> .7 <emphasis role="comment">;too loud</emphasis>
+kv2 <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;pole radii</emphasis>
+kv1 <emphasis role="opc">line</emphasis> 100, p3, 0 <emphasis role="comment">;resonance freq + notch freq</emphasis>
+kv3 <emphasis role="op">=</emphasis> kv1
+asig <emphasis role="opc">STKResonate</emphasis> 1, 1, 2, kv1, 4, kv2, 1, 10, 11, kv3, 128, 100
+asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> .3 <emphasis role="comment">;too loud</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKRhodey.csd.xml b/examples-xml/STKRhodey.csd.xml
index 4b6d5a6..e268423 100644
--- a/examples-xml/STKRhodey.csd.xml
+++ b/examples-xml/STKRhodey.csd.xml
@@ -2,34 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o STKWurley.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o STKRhodey.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kndx <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;(FM) Modulator Index One</emphasis>
-
-asig STKRhodey <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, kndx, 4, 10, 11, 100, 1, 3, 128, 75
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;(FM) Modulator Index One</emphasis>
+kv5 <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;ADSR 2 and 4 target</emphasis>
+asig <emphasis role="opc">STKRhodey</emphasis> <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, kv1, 4, 10, 11, 100, 1, 3, 128, kv5
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 .5 7.00 75 0 20
-<emphasis role="stamnt">i</emphasis> 1 + . 8.00 120 0 20
-<emphasis role="stamnt">i</emphasis> 1 + 1 6.00 50 120 20
-<emphasis role="stamnt">i</emphasis> 1 + 4 8.00 10 10 127
+<emphasis role="stamnt">i</emphasis> 1 0 .5 7.00 75 0 0
+<emphasis role="stamnt">i</emphasis> 1 + . 8.00 120 0 120
+<emphasis role="stamnt">i</emphasis> 1 + 1 6.00 50 120 50
+<emphasis role="stamnt">i</emphasis> 1 + 4 8.00 10 120 100
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/STKSaxofony.csd.xml b/examples-xml/STKSaxofony.csd.xml
index ca2b81e..1b4974e 100644
--- a/examples-xml/STKSaxofony.csd.xml
+++ b/examples-xml/STKSaxofony.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKSaxofony.wav -W ;;; for file output any platform</emphasis>
@@ -12,16 +12,16 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifreq <emphasis role="op">=</emphasis> p4
-kstiff <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;reed stiffness</emphasis>
-kblw <emphasis role="opc">line</emphasis> p6, p3, p7 <emphasis role="comment">;blow position</emphasis>
-kvib <emphasis role="opc">line</emphasis> 0, p3, 127 <emphasis role="comment">;vibrato speed</emphasis>
+kv1 <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;reed stiffness</emphasis>
+kv3 <emphasis role="opc">line</emphasis> p6, p3, p7 <emphasis role="comment">;blow position</emphasis>
+kv6 <emphasis role="opc">line</emphasis> 0, p3, 127 <emphasis role="comment">;depth of low-frequency oscillator</emphasis>
-asig STKSaxofony <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, kstiff, 4, 100, 26, 70, 11, kblw, 1, kvib, 29, 100
+asig <emphasis role="opc">STKSaxofony</emphasis> <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, kv1, 4, 100, 26, 70, 11, kv3, 1, kv6, 29, 100
asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> .5 <emphasis role="comment">;too loud</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKShakers.csd.xml b/examples-xml/STKShakers.csd.xml
index 9b7c87b..cf226b6 100644
--- a/examples-xml/STKShakers.csd.xml
+++ b/examples-xml/STKShakers.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKShakers.wav -W ;;; for file output any platform</emphasis>
@@ -12,14 +12,14 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-asig STKShakers <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, 10, 4, 10, 11, 10, 1, 112, 128, 80, 1071, 5
-asig <emphasis role="op">=</emphasis> asig <emphasis role="comment">;amplify</emphasis>
+asig <emphasis role="opc">STKShakers</emphasis> <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, 10, 4, 10, 11, 10, 1, 112, 128, 80, 1071, 5
+asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis>2 <emphasis role="comment">;amplify</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKSimple.csd.xml b/examples-xml/STKSimple.csd.xml
index 4bae02a..0648080 100644
--- a/examples-xml/STKSimple.csd.xml
+++ b/examples-xml/STKSimple.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKSimple.wav -W ;;; for file output any platform</emphasis>
@@ -12,25 +12,25 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kfil <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;Filter Pole Position</emphasis>
-knois <emphasis role="opc">line</emphasis> 20, p3, 90 <emphasis role="comment">;Noise/Pitched Cross-Fade</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;Filter Pole Position</emphasis>
+kv2 <emphasis role="opc">line</emphasis> 20, p3, 90 <emphasis role="comment">;Noise/Pitched Cross-Fade</emphasis>
-asig STKSimple <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, kfil, 4, knois, 11, 100, 128, 120
+asig <emphasis role="opc">STKSimple</emphasis> <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, kv1, 4, kv2, 11, 10, 128, 120
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 .5 7.00 100 0 120
-<emphasis role="stamnt">i</emphasis> 1 + . 7.05 10 127 220
-<emphasis role="stamnt">i</emphasis> 1 + . 8.03 100 0 320
-<emphasis role="stamnt">i</emphasis> 1 + 5 5.00 10 10 127
+<emphasis role="stamnt">i</emphasis> 1 0 5 7.00 100 0
+<emphasis role="stamnt">i</emphasis> 1 + . 7.05 10 127
+<emphasis role="stamnt">i</emphasis> 1 + . 8.03 100 0
+<emphasis role="stamnt">i</emphasis> 1 + . 5.00 10 10
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/STKSitar.csd.xml b/examples-xml/STKSitar.csd.xml
index 2e6ff73..e7ff635 100644
--- a/examples-xml/STKSitar.csd.xml
+++ b/examples-xml/STKSitar.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKSitar.wav -W ;;; for file output any platform</emphasis>
@@ -12,14 +12,14 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;STKSitar - has no controllers</emphasis>
ifrq <emphasis role="op">=</emphasis> p4
-asig STKSitar <emphasis role="opc">cpspch</emphasis>(p4), 1
-asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> 3 <emphasis role="comment">;amplify</emphasis>
+asig <emphasis role="opc">STKSitar</emphasis> <emphasis role="opc">cpspch</emphasis>(p4), 1
+asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> 2 <emphasis role="comment">;amplify</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
@@ -28,7 +28,7 @@ asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> 3
<emphasis role="stamnt">i</emphasis> 1 0 4 6.00
<emphasis role="stamnt">i</emphasis> 1 + 2 7.05
-<emphasis role="stamnt">i</emphasis> 1 + 4 5.05
+<emphasis role="stamnt">i</emphasis> 1 + 7 5.05
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/STKStifKarp.csd.xml b/examples-xml/STKStifKarp.csd.xml
index fe303ea..f7f1dcb 100644
--- a/examples-xml/STKStifKarp.csd.xml
+++ b/examples-xml/STKStifKarp.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKStifKarp.wav -W ;;; for file output any platform</emphasis>
@@ -12,15 +12,15 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kpos <emphasis role="opc">line</emphasis> p6, p3, p7 <emphasis role="comment">;Pickup Position</emphasis>
-ksus <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;String Sustain</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p6, p3, p7 <emphasis role="comment">;Pickup Position</emphasis>
+kv2 <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;String Sustain</emphasis>
-asig STKStifKarp <emphasis role="opc">cpspch</emphasis>(p4), 1, 4, kpos, 11, ksus, 1, 10
+asig <emphasis role="opc">STKStifKarp</emphasis> <emphasis role="opc">cpspch</emphasis>(p4), 1, 4, kv1, 11, kv2, 1, 10
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKTubeBell.csd.xml b/examples-xml/STKTubeBell.csd.xml
index c21f759..2ae374e 100644
--- a/examples-xml/STKTubeBell.csd.xml
+++ b/examples-xml/STKTubeBell.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKTubeBell.wav -W ;;; for file output any platform</emphasis>
@@ -12,15 +12,15 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kfad <emphasis role="opc">line</emphasis> p6, p3, p7 <emphasis role="comment">;Crossfade of Outputs</emphasis>
-kindx <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;(FM) Modulator Index One</emphasis>
+kv2 <emphasis role="opc">line</emphasis> p6, p3, p7 <emphasis role="comment">;Crossfade of Outputs</emphasis>
+kv1 <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;(FM) Modulator Index One</emphasis>
-asig STKTubeBell <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, kindx, 4, kfad, 11, 10, 1, 70, 128,50
+asig <emphasis role="opc">STKTubeBell</emphasis> <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, kv1, 4, kv2, 11, 10, 1, 70, 128,50
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKVoicForm.csd.xml b/examples-xml/STKVoicForm.csd.xml
index dd98754..2b9982e 100644
--- a/examples-xml/STKVoicForm.csd.xml
+++ b/examples-xml/STKVoicForm.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKVoicForm.wav -W ;;; for file output any platform</emphasis>
@@ -12,14 +12,14 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-ksel <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;Vowel/Phoneme Selection</emphasis>
+kv2 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;Vowel/Phoneme Selection</emphasis>
-asig STKVoicForm <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, 1, 4, ksel, 128, 100, 1, 10, 11, 100
+asig <emphasis role="opc">STKVoicForm</emphasis> <emphasis role="opc">cpspch</emphasis>(p4), 1, 2, 1, 4, kv2, 128, 100, 1, 10, 11, 100
asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> .5 <emphasis role="comment">;too loud</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKWhistle.csd.xml b/examples-xml/STKWhistle.csd.xml
index 85b25ce..3d6b866 100644
--- a/examples-xml/STKWhistle.csd.xml
+++ b/examples-xml/STKWhistle.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKWhistle.wav -W ;;; for file output any platform</emphasis>
@@ -12,15 +12,15 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kblw <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;Blowing Frequency Modulation</emphasis>
-kflp <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;Fipple Modulation Frequency</emphasis>
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;Blowing Frequency Modulation</emphasis>
+kv3 <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;Fipple Modulation Frequency</emphasis>
-asig STKWhistle <emphasis role="opc">cpspch</emphasis>(p4), 1, 4, 20, 11, kflp, 1, 100, 2, kblw, 128, 127
+asig <emphasis role="opc">STKWhistle</emphasis> <emphasis role="opc">cpspch</emphasis>(p4), 1, 4, 20, 11, kv3, 1, 100, 2, kv1, 128, 127
asig <emphasis role="op">=</emphasis> asig<emphasis role="op">*</emphasis>.7 <emphasis role="comment">;too loud</emphasis>
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/STKWurley.csd.xml b/examples-xml/STKWurley.csd.xml
index e993c1d..8324c48 100644
--- a/examples-xml/STKWurley.csd.xml
+++ b/examples-xml/STKWurley.csd.xml
@@ -2,7 +2,7 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o STKWurley.wav -W ;;; for file output any platform</emphasis>
@@ -12,15 +12,15 @@
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ifrq <emphasis role="op">=</emphasis> p4
-kndx <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;(FM) Modulator Index One</emphasis>
-kspd <emphasis role="op">=</emphasis> p7
+kv1 <emphasis role="opc">line</emphasis> p5, p3, p6 <emphasis role="comment">;(FM) Modulator Index One</emphasis>
+kv3 <emphasis role="op">=</emphasis> p7
-asig STKWurley <emphasis role="opc">cpspch</emphasis>(p4), 1, 2,kndx, 4, 10, 11, kspd, 1, 30, 128, 75
+asig <emphasis role="opc">STKWurley</emphasis> <emphasis role="opc">cpspch</emphasis>(p4), 1, 2,kv1, 4, 10, 11, kv3, 1, 30, 128, 75
<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/a.csd.xml b/examples-xml/a.csd.xml
new file mode 100644
index 0000000..61788a1
--- /dev/null
+++ b/examples-xml/a.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o a.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aenv <emphasis role="opc">expseg</emphasis> .01, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0.01
+asig <emphasis role="opc">poscil3</emphasis> .8<emphasis role="op">*</emphasis>aenv, p4, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="comment">;two sections</emphasis>
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">a</emphasis> 0 0 6 <emphasis role="comment">;advance score 6 seconds</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 110 <emphasis role="comment">;these first 2 notes</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 2 220 <emphasis role="comment">;will not sound</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 6 2 440
+<emphasis role="stamnt">i</emphasis> 1 9 2 880
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">a</emphasis> 0 3 6 <emphasis role="comment">;advance score 6 seconds, but do this after 3 seconds</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 110 <emphasis role="comment">;this will sound, because action time (p2) from a statement = 3</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 2 220 <emphasis role="comment">;so these 2 notes</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 6 2 440 <emphasis role="comment">;will not sound</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 9 2 880 <emphasis role="comment">;and this one will</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/alpass.csd.xml b/examples-xml/alpass.csd.xml
index f060416..808d290 100644
--- a/examples-xml/alpass.csd.xml
+++ b/examples-xml/alpass.csd.xml
@@ -10,7 +10,7 @@
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
@@ -18,8 +18,8 @@ gamix <emphasis role="opc">init</emphasis> 0
<emphasis role="oblock">instr</emphasis> 1
-kcps <emphasis role="opc">expon</emphasis> p4, p3, p5
-asig <emphasis role="opc">vco2</emphasis> 0.6, kcps
+acps <emphasis role="opc">expon</emphasis> p4, p3, p5
+asig <emphasis role="opc">vco</emphasis> 0.6, acps, 1
<emphasis role="opc">outs</emphasis> asig, asig
gamix <emphasis role="op">=</emphasis> gamix <emphasis role="op">+</emphasis> asig
@@ -28,10 +28,11 @@ gamix <emphasis role="op">=</emphasis> gamix <emphasis role="op">+</emphasis> as
<emphasis role="oblock">instr</emphasis> 99
-krvt <emphasis role="op">=</emphasis> 3.5
+arvt1 <emphasis role="opc">line</emphasis> 3.5<emphasis role="op">*</emphasis>1.5, p3, 6
+arvt2 <emphasis role="opc">line</emphasis> 3.5, p3, 4
ilpt <emphasis role="op">=</emphasis> 0.1
-aleft <emphasis role="opc">alpass</emphasis> gamix, krvt<emphasis role="op">*</emphasis>1.5, ilpt
-aright <emphasis role="opc">alpass</emphasis> gamix, krvt, ilpt<emphasis role="op">*</emphasis>2
+aleft <emphasis role="opc">alpass</emphasis> gamix, arvt1, ilpt
+aright <emphasis role="opc">alpass</emphasis> gamix, arvt2, ilpt<emphasis role="op">*</emphasis>2
<emphasis role="opc">outs</emphasis> aleft, aright
gamix <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; clear mixer</emphasis>
@@ -40,7 +41,7 @@ gamix <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; clear mixer<
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
<emphasis role="stamnt">i</emphasis> 1 0 3 20 2000
<emphasis role="stamnt">i</emphasis> 99 0 8
diff --git a/examples-xml/array.csd.xml b/examples-xml/array.csd.xml
new file mode 100644
index 0000000..ea46d7c
--- /dev/null
+++ b/examples-xml/array.csd.xml
@@ -0,0 +1,28 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ kS[] <emphasis role="op">=</emphasis> <emphasis role="opc">array</emphasis>(1,7,5)
+ <emphasis role="opc">printk2</emphasis> kS[0]
+ <emphasis role="opc">printk2</emphasis> kS[1]
+ <emphasis role="opc">printk2</emphasis> kS[2]
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/array_array_math.csd.xml b/examples-xml/array_array_math.csd.xml
new file mode 100644
index 0000000..16dd77c
--- /dev/null
+++ b/examples-xml/array_array_math.csd.xml
@@ -0,0 +1,82 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-n -m128
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="comment">;create array and fill with numbers 1..10 resp .1..1</emphasis>
+kArr1[] <emphasis role="opc">fillarray</emphasis> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
+kArr2[] <emphasis role="opc">fillarray</emphasis> 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
+
+<emphasis role="comment">;print contents</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nkArr1<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr1) do
+ <emphasis role="opc">printf</emphasis> "kArr1[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr1[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nkArr2<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr2) do
+ <emphasis role="opc">printf</emphasis> "kArr2[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr2[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;add arrays</emphasis>
+kArr3[] <emphasis role="op">=</emphasis> kArr1 <emphasis role="op">+</emphasis> kArr2
+
+<emphasis role="comment">;print content</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nkArr1 <emphasis role="op">+</emphasis> kArr2<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr3) do
+ <emphasis role="opc">printf</emphasis> "kArr3[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr3[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;subtract arrays</emphasis>
+kArr4[] <emphasis role="op">=</emphasis> kArr1 <emphasis role="op">-</emphasis> kArr2
+
+<emphasis role="comment">;print content</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nkArr1 <emphasis role="op">-</emphasis> kArr2<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr4) do
+ <emphasis role="opc">printf</emphasis> "kArr4[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr4[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;multiply arrays</emphasis>
+kArr5[] <emphasis role="op">=</emphasis> kArr1 <emphasis role="op">*</emphasis> kArr2
+
+<emphasis role="comment">;print content</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nkArr1 <emphasis role="op">*</emphasis> kArr2<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr5) do
+ <emphasis role="opc">printf</emphasis> "kArr5[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr5[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;divide arrays</emphasis>
+kArr6[] <emphasis role="op">=</emphasis> kArr1 <emphasis role="op">/</emphasis> kArr2
+
+<emphasis role="comment">;print content</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nkArr1 <emphasis role="op">/</emphasis> kArr2<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr6) do
+ <emphasis role="opc">printf</emphasis> "kArr5[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr6[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;turnoff</emphasis>
+ <emphasis role="opc">turnoff</emphasis>
+
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 .1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/array_scalar_math.csd.xml b/examples-xml/array_scalar_math.csd.xml
new file mode 100644
index 0000000..085194e
--- /dev/null
+++ b/examples-xml/array_scalar_math.csd.xml
@@ -0,0 +1,76 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-n -m128
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+ <emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="comment">;create array and fill with numbers 1..10</emphasis>
+kArr1[] <emphasis role="opc">fillarray</emphasis> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
+
+<emphasis role="comment">;print content</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nInitial content<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr1) do
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr1[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;add 10</emphasis>
+kArr2[] <emphasis role="op">=</emphasis> kArr1 <emphasis role="op">+</emphasis> 10
+
+<emphasis role="comment">;print content</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nAfter adding 10<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr2) do
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr2[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;subtract 5</emphasis>
+kArr3[] <emphasis role="op">=</emphasis> kArr2 <emphasis role="op">-</emphasis> 5
+
+<emphasis role="comment">;print content</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nAfter subtracting 5<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr3) do
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr3[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;multiply by -1.5</emphasis>
+kArr4[] <emphasis role="op">=</emphasis> kArr3 <emphasis role="op">*</emphasis> <emphasis role="op">-</emphasis>1.5
+
+<emphasis role="comment">;print content</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nAfter multiplying by <emphasis role="op">-</emphasis>1.5<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr4) do
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr4[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;divide by -3/2</emphasis>
+kArr5[] <emphasis role="op">=</emphasis> kArr4 <emphasis role="op">/</emphasis> <emphasis role="op">-</emphasis>(3<emphasis role="op">/</emphasis>2)
+
+<emphasis role="comment">;print content</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nAfter dividing by <emphasis role="op">-</emphasis>3<emphasis role="op">/</emphasis>2<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr5) do
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr5[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;turnoff</emphasis>
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 .1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/array_udo.csd.xml b/examples-xml/array_udo.csd.xml
new file mode 100644
index 0000000..439b698
--- /dev/null
+++ b/examples-xml/array_udo.csd.xml
@@ -0,0 +1,26 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-nm128
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+ <emphasis role="oblock">opcode</emphasis> FirstEl, k, k[]
+ <emphasis role="comment">;returns the first element of vector kArr</emphasis>
+kArr[] <emphasis role="opc">xin</emphasis>
+<emphasis role="opc">xout</emphasis> kArr[0]
+ <emphasis role="oblock">endop</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 1
+kArr[] <emphasis role="opc">fillarray</emphasis> 6, 3, 9, 5, 1
+kFirst FirstEl kArr
+<emphasis role="opc">printf</emphasis> "kFirst <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\n", 1, kFirst
+<emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 .1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/b.csd.xml b/examples-xml/b.csd.xml
new file mode 100644
index 0000000..f4d374e
--- /dev/null
+++ b/examples-xml/b.csd.xml
@@ -0,0 +1,67 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o b.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aenv <emphasis role="opc">expseg</emphasis> .01, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0.01
+asig <emphasis role="opc">poscil3</emphasis> .4<emphasis role="op">*</emphasis>aenv, 220, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+asig <emphasis role="opc">pluck</emphasis> 0.7, p4, 220, 0, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 3
+
+asig <emphasis role="opc">loscil</emphasis> .8, 1, 2, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 4
+asig <emphasis role="opc">bamboo</emphasis> .8, 0.01
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 0 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 0 <emphasis role="comment">;sample</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 2
+<emphasis role="stamnt">i</emphasis>1 10 2
+
+<emphasis role="stamnt">b</emphasis> 5 <emphasis role="comment">; set the clock "forward"</emphasis>
+<emphasis role="stamnt">i</emphasis>2 1 2 220 <emphasis role="comment">; start time = 6</emphasis>
+<emphasis role="stamnt">i</emphasis>2 2 2 110 <emphasis role="comment">; start time = 7</emphasis>
+
+<emphasis role="stamnt">b</emphasis> -1
+<emphasis role="stamnt">i</emphasis>3 3 2 <emphasis role="comment">; start time = 2</emphasis>
+<emphasis role="stamnt">i</emphasis>3 5.5 1 <emphasis role="comment">; start time = 4.5</emphasis>
+
+
+<emphasis role="stamnt">b</emphasis> 0 <emphasis role="comment">; reset clock to normal</emphasis>
+<emphasis role="stamnt">i</emphasis>4 10 2 <emphasis role="comment">; start time = 10</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/bformenc1.csd.xml b/examples-xml/bformenc1.csd.xml
index 96c212d..6f1d9d1 100644
--- a/examples-xml/bformenc1.csd.xml
+++ b/examples-xml/bformenc1.csd.xml
@@ -9,36 +9,65 @@
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 8
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; generate pink noise</emphasis>
- anoise <emphasis role="opc">pinkish</emphasis> 1000
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;without arrays</emphasis>
+<emphasis role="comment">; generate pink noise</emphasis>
+anoise <emphasis role="opc">pinkish</emphasis> 1
- <emphasis role="comment">; two full turns</emphasis>
- kalpha <emphasis role="opc">line</emphasis> 0, p3, 720
- kbeta <emphasis role="op">=</emphasis> 0
+<emphasis role="comment">; two full turns</emphasis>
+kalpha <emphasis role="opc">line</emphasis> 0, p3, 720
+kbeta <emphasis role="op">=</emphasis> 0
- <emphasis role="comment">; generate B format</emphasis>
- aw, ax, ay, az, ar, as, at, au, av <emphasis role="opc">bformenc1</emphasis> anoise, kalpha, kbeta
+<emphasis role="comment">; generate B format</emphasis>
+aw, ax, ay, az, ar, as, at, au, av <emphasis role="opc">bformenc1</emphasis> anoise, kalpha, kbeta
- <emphasis role="comment">; decode B format for 8 channel circle loudspeaker setup</emphasis>
- a1, a2, a3, a4, a5, a6, a7, a8 <emphasis role="opc">bformdec1</emphasis> 4, aw, ax, ay, az, ar, as, at, au, av
+<emphasis role="comment">; decode B format for 8 channel circle loudspeaker setup</emphasis>
+a1, a2, a3, a4, a5, a6, a7, a8 <emphasis role="opc">bformdec1</emphasis> 4, aw, ax, ay, az, ar, as, at, au, av
+
+<emphasis role="comment">; write audio out</emphasis>
+<emphasis role="opc">outo</emphasis> a1, a2, a3, a4, a5, a6, a7, a8
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;with arrays (csound6)</emphasis>
+<emphasis role="comment">;set file names for:</emphasis>
+S_bform <emphasis role="op">=</emphasis> "bform_out.wav" <emphasis role="comment">;b-format (2nd order) output</emphasis>
+S_sound <emphasis role="op">=</emphasis> "sound_out.wav" <emphasis role="comment">;sound output</emphasis>
+
+<emphasis role="comment">; generate pink noise</emphasis>
+anoise <emphasis role="opc">pinkish</emphasis> 1
+
+<emphasis role="comment">; two full turns</emphasis>
+kalpha <emphasis role="opc">line</emphasis> 0, p3, 720
+kbeta <emphasis role="op">=</emphasis> 0
+
+<emphasis role="comment">;create array for B-format 2nd order (9 chnls)</emphasis>
+aBform[] <emphasis role="opc">init</emphasis> 9
+
+<emphasis role="comment">; generate B-format</emphasis>
+aBform <emphasis role="opc">bformenc1</emphasis> anoise, kalpha, kbeta
+
+<emphasis role="comment">;write out b-format</emphasis>
+<emphasis role="opc">fout</emphasis> "fout.wav", 18, aBform
+
+<emphasis role="comment">;create array for audio output (8 channels)</emphasis>
+aAudio[] <emphasis role="opc">init</emphasis> 8
- <emphasis role="comment">; write audio out</emphasis>
- <emphasis role="opc">outo</emphasis> a1, a2, a3, a4, a5, a6, a7, a8
+<emphasis role="comment">;decode B format for 8 channel circle loudspeaker setup</emphasis>
+aAudio <emphasis role="opc">bformdec1</emphasis> 4, aBform
+
+<emphasis role="comment">; write audio out</emphasis>
+<emphasis role="opc">fout</emphasis> S_sound, 18, aAudio
<emphasis role="oblock">endin</emphasis>
+
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Play Instrument #1 for 20 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 20
+<emphasis role="stamnt">i</emphasis> 1 0 8
+<emphasis role="stamnt">i</emphasis> 2 8 8
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/bitwise.csd.xml b/examples-xml/bitwise.csd.xml
index ab3cf23..250d5ce 100644
--- a/examples-xml/bitwise.csd.xml
+++ b/examples-xml/bitwise.csd.xml
@@ -45,7 +45,7 @@ Stext <emphasis role="opc">sprintf</emphasis> "<emphasis role="op">%</emphasis><
<emphasis role="stamnt">i</emphasis> 1 + . 2 4
<emphasis role="stamnt">i</emphasis> 1 + . 3 10
-<emphasis role="stamnt">i</emphasis> 2 2 . 12
+<emphasis role="stamnt">i</emphasis> 2 2 0.1 12
<emphasis role="stamnt">i</emphasis> 2 + . 9
<emphasis role="stamnt">i</emphasis> 2 + . 15
<emphasis role="stamnt">i</emphasis> 2 + . 49
diff --git a/examples-xml/butterbr.csd.xml b/examples-xml/butterbr.csd.xml
index 74bb911..3da6b6b 100644
--- a/examples-xml/butterbr.csd.xml
+++ b/examples-xml/butterbr.csd.xml
@@ -24,7 +24,7 @@ asig <emphasis role="opc">rand</emphasis> 0.5
<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; filtered noise</emphasis>
asig <emphasis role="opc">rand</emphasis> 0.7
-abr <emphasis role="opc">butterbr</emphasis> asig, 3000, 2000 <emphasis role="comment">;cutting 2000 to 5000 Hz</emphasis>
+abr <emphasis role="opc">butterbr</emphasis> asig, 3000, 2000 <emphasis role="comment">;center frequency = 3000, bandwidth = +/- (2000)/2, so 2000-4000 </emphasis>
<emphasis role="opc">outs</emphasis> abr, abr
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/cauchyi.csd.xml b/examples-xml/cauchyi.csd.xml
new file mode 100644
index 0000000..1d6a3fa
--- /dev/null
+++ b/examples-xml/cauchyi.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o exprand.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+klambda <emphasis role="opc">cauchyi</emphasis> 100, 1, 3
+ <emphasis role="opc">printk2</emphasis> klambda <emphasis role="comment">; look</emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>klambda, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 4
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/cell.csd.xml b/examples-xml/cell.csd.xml
new file mode 100644
index 0000000..2e171fe
--- /dev/null
+++ b/examples-xml/cell.csd.xml
@@ -0,0 +1,77 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">;-odac -iadc ;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o cell.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">; cell.csd by Gleb Rogozinsky</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">; Cellular automaton-driven synthesis in spectral domain</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+
+ iatt <emphasis role="op">=</emphasis> p4 <emphasis role="comment">; envelope attack time</emphasis>
+ isus <emphasis role="op">=</emphasis> p5 <emphasis role="comment">; envelope sustain time</emphasis>
+ irel <emphasis role="op">=</emphasis> p6 <emphasis role="comment">; envelope release time</emphasis>
+ ivol <emphasis role="op">=</emphasis> p7 <emphasis role="comment">; overall volume</emphasis>
+
+ <emphasis role="comment">; create some white noise</emphasis>
+ asig <emphasis role="opc">rand</emphasis> 0.8
+
+ <emphasis role="comment">; spectral analysis of asig</emphasis>
+ fsig <emphasis role="opc">pvsanal</emphasis> asig, 2048, 1024, 2048, 0 <emphasis role="comment">; get a vector of magnitudes</emphasis>
+
+ <emphasis role="comment">; calculate cellular automaton state</emphasis>
+ kfreq <emphasis role="opc">line</emphasis> 50, 5, 1 <emphasis role="comment">; variable CA triggering frequency</emphasis>
+ ktrig <emphasis role="opc">metro</emphasis> kfreq <emphasis role="comment">; trigger the CA to update cells</emphasis>
+ <emphasis role="opc">cell</emphasis> ktrig, 0, 3, 1, 2, 2048 <emphasis role="comment">; cells are written into ftable 3 </emphasis>
+
+
+ <emphasis role="comment">; use current row of cells in spectral domain</emphasis>
+ fmas <emphasis role="opc">pvstencil</emphasis> fsig, 0, 1, 3 <emphasis role="comment">; apply spectral mask </emphasis>
+ aout <emphasis role="opc">pvsynth</emphasis> fmas <emphasis role="comment">; reconstruct time signal </emphasis>
+
+ <emphasis role="comment">; apply envelope and out signal</emphasis>
+ kenv <emphasis role="opc">expseg</emphasis> .001, iatt, 1, isus, 1, irel, .001
+ <emphasis role="opc">out</emphasis> aout<emphasis role="op">*</emphasis>kenv<emphasis role="op">*</emphasis>ivol
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; This example uses one-dimensional cellular automaton</emphasis>
+<emphasis role="comment">; to produce structures in spectral domain</emphasis>
+
+<emphasis role="comment">; We have to prepare initial row of cells.</emphasis>
+<emphasis role="comment">; One alive cell is enough to produce a simple fractal,</emphasis>
+<emphasis role="comment">; so two alivee cells will make structure more sophisticated</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 2048 7 0 150 0 0 1 1 1 0 0 45 0 0 1 1 1 0 0
+
+<emphasis role="comment">; The CA rule is used as follows:</emphasis>
+<emphasis role="comment">; the states (values) of each cell are summed with their neighboring cells.</emphasis>
+<emphasis role="comment">; Each sum is used as an index to read a next state of cell</emphasis>
+<emphasis role="comment">; from the rule table.</emphasis>
+<emphasis role="comment">; Let us try rule # 129 (LSB binary 1 0 0 0 0 0 0 1).</emphasis>
+<emphasis role="comment">; This rule will produce a fractal structure for single active cell</emphasis>
+<emphasis role="comment">; For more rules see http://mathworld.wolfram.com/ElementaryCellularAutomaton.html</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 8 -2 1 0 0 0 0 0 0 1
+<emphasis role="comment">; Try some different rules i.E. 254 (0 1 1 1 1 1 1 1) or 169 (1 0 0 1 0 1 0 1)</emphasis>
+
+<emphasis role="comment">; Prepare the output table of ielements size</emphasis>
+<emphasis role="stamnt">f</emphasis>3 0 2048 10 0
+
+<emphasis role="comment">; Time to make it sound!</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 13 0.3 7 3 1
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/centroid.csd.xml b/examples-xml/centroid.csd.xml
new file mode 100644
index 0000000..6a17108
--- /dev/null
+++ b/examples-xml/centroid.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o centroid.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 16384, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ktrig <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;calculate centroid</emphasis>
+a1 <emphasis role="opc">oscil3</emphasis> 0.5, p4, giSine <emphasis role="comment">;of the sine wave</emphasis>
+k1 <emphasis role="opc">centroid</emphasis> a1, ktrig, 16384
+asig <emphasis role="opc">oscil3</emphasis> 0.5, k1, giSine
+ <emphasis role="opc">printk2</emphasis> k1 <emphasis role="comment">;print &amp; compare:</emphasis>
+ <emphasis role="opc">outs</emphasis> a1, asig <emphasis role="comment">;left = original, right = centroid signal</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 2 20
+<emphasis role="stamnt">i</emphasis>1 + 2 200
+<emphasis role="stamnt">i</emphasis>1 + 2 2000
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/checkbox.csd.xml b/examples-xml/checkbox.csd.xml
index 30e190b..8c52cae 100644
--- a/examples-xml/checkbox.csd.xml
+++ b/examples-xml/checkbox.csd.xml
@@ -15,7 +15,7 @@
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; Get the value from the checkbox.</emphasis>
- k1 <emphasis role="opc">checkbox</emphasis> 1
+ k1 checkbox 1
<emphasis role="comment">; If the checkbox is selected then k2=440, otherwise k2=880.</emphasis>
k2 <emphasis role="op">=</emphasis> (k1 <emphasis role="op">==</emphasis> 0 <emphasis role="op">?</emphasis> 440 <emphasis role="op">:</emphasis> 880)
diff --git a/examples-xml/chnclear.csd.xml b/examples-xml/chnclear.csd.xml
new file mode 100644
index 0000000..2764a66
--- /dev/null
+++ b/examples-xml/chnclear.csd.xml
@@ -0,0 +1,85 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o chnclear.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;Example by Joachim Heintz</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+ <emphasis role="oblock">instr</emphasis> 1<emphasis role="comment">; send i-values</emphasis>
+ <emphasis role="opc">chnset</emphasis> 1, "sio"
+ <emphasis role="opc">chnset</emphasis> <emphasis role="op">-</emphasis>1, "non"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 2<emphasis role="comment">; send k-values</emphasis>
+kfreq <emphasis role="opc">randomi</emphasis> 100, 300, 1
+ <emphasis role="opc">chnset</emphasis> kfreq, "cntrfreq"
+kbw <emphasis role="op">=</emphasis> kfreq<emphasis role="op">/</emphasis>10
+ <emphasis role="opc">chnset</emphasis> kbw, "bandw"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 3<emphasis role="comment">; send a-values</emphasis>
+anois <emphasis role="opc">rand</emphasis> .1
+ <emphasis role="opc">chnset</emphasis> anois, "noise"
+ loop<emphasis role="op">:</emphasis>
+idur <emphasis role="opc">random</emphasis> .3, 1.5
+ <emphasis role="octrl">timout</emphasis> 0, idur, do
+ <emphasis role="opc">reinit</emphasis> loop
+ do<emphasis role="op">:</emphasis>
+ifreq <emphasis role="opc">random</emphasis> 400, 1200
+iamp <emphasis role="opc">random</emphasis> .1, .3
+asig <emphasis role="opc">oscils</emphasis> iamp, ifreq, 0
+aenv <emphasis role="opc">transeg</emphasis> 1, idur, <emphasis role="op">-</emphasis>10, 0
+asine <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> aenv
+ <emphasis role="opc">chnset</emphasis> asine, "sine"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 11<emphasis role="comment">; receive some chn values and send again</emphasis>
+ival1 <emphasis role="opc">chnget</emphasis> "sio"
+ival2 <emphasis role="opc">chnget</emphasis> "non"
+ <emphasis role="opc">print</emphasis> ival1, ival2
+kcntfreq <emphasis role="opc">chnget</emphasis> "cntrfreq"
+kbandw <emphasis role="opc">chnget</emphasis> "bandw"
+anoise <emphasis role="opc">chnget</emphasis> "noise"
+afilt <emphasis role="opc">reson</emphasis> anoise, kcntfreq, kbandw
+afilt <emphasis role="opc">balance</emphasis> afilt, anoise
+ <emphasis role="opc">chnset</emphasis> afilt, "filtered"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 12<emphasis role="comment">; mix the two audio signals</emphasis>
+amix1 <emphasis role="opc">chnget</emphasis> "sine"
+amix2 <emphasis role="opc">chnget</emphasis> "filtered"
+ <emphasis role="opc">chnmix</emphasis> amix1, "mix"
+ <emphasis role="opc">chnmix</emphasis> amix2, "mix"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 20<emphasis role="comment">; receive and reverb</emphasis>
+amix <emphasis role="opc">chnget</emphasis> "mix"
+aL, aR <emphasis role="opc">freeverb</emphasis> amix, amix, .8, .5
+ <emphasis role="opc">outs</emphasis> aL, aR
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 100<emphasis role="comment">; clear</emphasis>
+ <emphasis role="opc">chnclear</emphasis> "mix"
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 20
+<emphasis role="stamnt">i</emphasis> 2 0 20
+<emphasis role="stamnt">i</emphasis> 3 0 20
+<emphasis role="stamnt">i</emphasis> 11 0 20
+<emphasis role="stamnt">i</emphasis> 12 0 20
+<emphasis role="stamnt">i</emphasis> 20 0 20
+<emphasis role="stamnt">i</emphasis> 100 0 20
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/chnget.csd.xml b/examples-xml/chnget.csd.xml
new file mode 100644
index 0000000..7184824
--- /dev/null
+++ b/examples-xml/chnget.csd.xml
@@ -0,0 +1,85 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o chnget.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;Example by Joachim Heintz</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+ <emphasis role="oblock">instr</emphasis> 1<emphasis role="comment">; send i-values</emphasis>
+ <emphasis role="opc">chnset</emphasis> 1, "sio"
+ <emphasis role="opc">chnset</emphasis> <emphasis role="op">-</emphasis>1, "non"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 2<emphasis role="comment">; send k-values</emphasis>
+kfreq <emphasis role="opc">randomi</emphasis> 100, 300, 1
+ <emphasis role="opc">chnset</emphasis> kfreq, "cntrfreq"
+kbw <emphasis role="op">=</emphasis> kfreq<emphasis role="op">/</emphasis>10
+ <emphasis role="opc">chnset</emphasis> kbw, "bandw"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 3<emphasis role="comment">; send a-values</emphasis>
+anois <emphasis role="opc">rand</emphasis> .1
+ <emphasis role="opc">chnset</emphasis> anois, "noise"
+ loop<emphasis role="op">:</emphasis>
+idur <emphasis role="opc">random</emphasis> .3, 1.5
+ <emphasis role="octrl">timout</emphasis> 0, idur, do
+ <emphasis role="opc">reinit</emphasis> loop
+ do<emphasis role="op">:</emphasis>
+ifreq <emphasis role="opc">random</emphasis> 400, 1200
+iamp <emphasis role="opc">random</emphasis> .1, .3
+asig <emphasis role="opc">oscils</emphasis> iamp, ifreq, 0
+aenv <emphasis role="opc">transeg</emphasis> 1, idur, <emphasis role="op">-</emphasis>10, 0
+asine <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> aenv
+ <emphasis role="opc">chnset</emphasis> asine, "sine"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 11<emphasis role="comment">; receive some chn values and send again</emphasis>
+ival1 <emphasis role="opc">chnget</emphasis> "sio"
+ival2 <emphasis role="opc">chnget</emphasis> "non"
+ <emphasis role="opc">print</emphasis> ival1, ival2
+kcntfreq <emphasis role="opc">chnget</emphasis> "cntrfreq"
+kbandw <emphasis role="opc">chnget</emphasis> "bandw"
+anoise <emphasis role="opc">chnget</emphasis> "noise"
+afilt <emphasis role="opc">reson</emphasis> anoise, kcntfreq, kbandw
+afilt <emphasis role="opc">balance</emphasis> afilt, anoise
+ <emphasis role="opc">chnset</emphasis> afilt, "filtered"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 12<emphasis role="comment">; mix the two audio signals</emphasis>
+amix1 <emphasis role="opc">chnget</emphasis> "sine"
+amix2 <emphasis role="opc">chnget</emphasis> "filtered"
+ <emphasis role="opc">chnmix</emphasis> amix1, "mix"
+ <emphasis role="opc">chnmix</emphasis> amix2, "mix"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 20<emphasis role="comment">; receive and reverb</emphasis>
+amix <emphasis role="opc">chnget</emphasis> "mix"
+aL, aR <emphasis role="opc">freeverb</emphasis> amix, amix, .8, .5
+ <emphasis role="opc">outs</emphasis> aL, aR
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 100<emphasis role="comment">; clear</emphasis>
+ <emphasis role="opc">chnclear</emphasis> "mix"
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 20
+<emphasis role="stamnt">i</emphasis> 2 0 20
+<emphasis role="stamnt">i</emphasis> 3 0 20
+<emphasis role="stamnt">i</emphasis> 11 0 20
+<emphasis role="stamnt">i</emphasis> 12 0 20
+<emphasis role="stamnt">i</emphasis> 20 0 20
+<emphasis role="stamnt">i</emphasis> 100 0 20
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/chnmix.csd.xml b/examples-xml/chnmix.csd.xml
new file mode 100644
index 0000000..f98444f
--- /dev/null
+++ b/examples-xml/chnmix.csd.xml
@@ -0,0 +1,85 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o chnmix.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;Example by Joachim Heintz</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+ <emphasis role="oblock">instr</emphasis> 1<emphasis role="comment">; send i-values</emphasis>
+ <emphasis role="opc">chnset</emphasis> 1, "sio"
+ <emphasis role="opc">chnset</emphasis> <emphasis role="op">-</emphasis>1, "non"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 2<emphasis role="comment">; send k-values</emphasis>
+kfreq <emphasis role="opc">randomi</emphasis> 100, 300, 1
+ <emphasis role="opc">chnset</emphasis> kfreq, "cntrfreq"
+kbw <emphasis role="op">=</emphasis> kfreq<emphasis role="op">/</emphasis>10
+ <emphasis role="opc">chnset</emphasis> kbw, "bandw"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 3<emphasis role="comment">; send a-values</emphasis>
+anois <emphasis role="opc">rand</emphasis> .1
+ <emphasis role="opc">chnset</emphasis> anois, "noise"
+ loop<emphasis role="op">:</emphasis>
+idur <emphasis role="opc">random</emphasis> .3, 1.5
+ <emphasis role="octrl">timout</emphasis> 0, idur, do
+ <emphasis role="opc">reinit</emphasis> loop
+ do<emphasis role="op">:</emphasis>
+ifreq <emphasis role="opc">random</emphasis> 400, 1200
+iamp <emphasis role="opc">random</emphasis> .1, .3
+asig <emphasis role="opc">oscils</emphasis> iamp, ifreq, 0
+aenv <emphasis role="opc">transeg</emphasis> 1, idur, <emphasis role="op">-</emphasis>10, 0
+asine <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> aenv
+ <emphasis role="opc">chnset</emphasis> asine, "sine"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 11<emphasis role="comment">; receive some chn values and send again</emphasis>
+ival1 <emphasis role="opc">chnget</emphasis> "sio"
+ival2 <emphasis role="opc">chnget</emphasis> "non"
+ <emphasis role="opc">print</emphasis> ival1, ival2
+kcntfreq <emphasis role="opc">chnget</emphasis> "cntrfreq"
+kbandw <emphasis role="opc">chnget</emphasis> "bandw"
+anoise <emphasis role="opc">chnget</emphasis> "noise"
+afilt <emphasis role="opc">reson</emphasis> anoise, kcntfreq, kbandw
+afilt <emphasis role="opc">balance</emphasis> afilt, anoise
+ <emphasis role="opc">chnset</emphasis> afilt, "filtered"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 12<emphasis role="comment">; mix the two audio signals</emphasis>
+amix1 <emphasis role="opc">chnget</emphasis> "sine"
+amix2 <emphasis role="opc">chnget</emphasis> "filtered"
+ <emphasis role="opc">chnmix</emphasis> amix1, "mix"
+ <emphasis role="opc">chnmix</emphasis> amix2, "mix"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 20<emphasis role="comment">; receive and reverb</emphasis>
+amix <emphasis role="opc">chnget</emphasis> "mix"
+aL, aR <emphasis role="opc">freeverb</emphasis> amix, amix, .8, .5
+ <emphasis role="opc">outs</emphasis> aL, aR
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 100<emphasis role="comment">; clear</emphasis>
+ <emphasis role="opc">chnclear</emphasis> "mix"
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 20
+<emphasis role="stamnt">i</emphasis> 2 0 20
+<emphasis role="stamnt">i</emphasis> 3 0 20
+<emphasis role="stamnt">i</emphasis> 11 0 20
+<emphasis role="stamnt">i</emphasis> 12 0 20
+<emphasis role="stamnt">i</emphasis> 20 0 20
+<emphasis role="stamnt">i</emphasis> 100 0 20
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/chnset.csd.xml b/examples-xml/chnset.csd.xml
new file mode 100644
index 0000000..91b18c6
--- /dev/null
+++ b/examples-xml/chnset.csd.xml
@@ -0,0 +1,85 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o chnset.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;Example by Joachim Heintz</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+ <emphasis role="oblock">instr</emphasis> 1<emphasis role="comment">; send i-values</emphasis>
+ <emphasis role="opc">chnset</emphasis> 1, "sio"
+ <emphasis role="opc">chnset</emphasis> <emphasis role="op">-</emphasis>1, "non"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 2<emphasis role="comment">; send k-values</emphasis>
+kfreq <emphasis role="opc">randomi</emphasis> 100, 300, 1
+ <emphasis role="opc">chnset</emphasis> kfreq, "cntrfreq"
+kbw <emphasis role="op">=</emphasis> kfreq<emphasis role="op">/</emphasis>10
+ <emphasis role="opc">chnset</emphasis> kbw, "bandw"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 3<emphasis role="comment">; send a-values</emphasis>
+anois <emphasis role="opc">rand</emphasis> .1
+ <emphasis role="opc">chnset</emphasis> anois, "noise"
+ loop<emphasis role="op">:</emphasis>
+idur <emphasis role="opc">random</emphasis> .3, 1.5
+ <emphasis role="octrl">timout</emphasis> 0, idur, do
+ <emphasis role="opc">reinit</emphasis> loop
+ do<emphasis role="op">:</emphasis>
+ifreq <emphasis role="opc">random</emphasis> 400, 1200
+iamp <emphasis role="opc">random</emphasis> .1, .3
+asig <emphasis role="opc">oscils</emphasis> iamp, ifreq, 0
+aenv <emphasis role="opc">transeg</emphasis> 1, idur, <emphasis role="op">-</emphasis>10, 0
+asine <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> aenv
+ <emphasis role="opc">chnset</emphasis> asine, "sine"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 11<emphasis role="comment">; receive some chn values and send again</emphasis>
+ival1 <emphasis role="opc">chnget</emphasis> "sio"
+ival2 <emphasis role="opc">chnget</emphasis> "non"
+ <emphasis role="opc">print</emphasis> ival1, ival2
+kcntfreq <emphasis role="opc">chnget</emphasis> "cntrfreq"
+kbandw <emphasis role="opc">chnget</emphasis> "bandw"
+anoise <emphasis role="opc">chnget</emphasis> "noise"
+afilt <emphasis role="opc">reson</emphasis> anoise, kcntfreq, kbandw
+afilt <emphasis role="opc">balance</emphasis> afilt, anoise
+ <emphasis role="opc">chnset</emphasis> afilt, "filtered"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 12<emphasis role="comment">; mix the two audio signals</emphasis>
+amix1 <emphasis role="opc">chnget</emphasis> "sine"
+amix2 <emphasis role="opc">chnget</emphasis> "filtered"
+ <emphasis role="opc">chnmix</emphasis> amix1, "mix"
+ <emphasis role="opc">chnmix</emphasis> amix2, "mix"
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 20<emphasis role="comment">; receive and reverb</emphasis>
+amix <emphasis role="opc">chnget</emphasis> "mix"
+aL, aR <emphasis role="opc">freeverb</emphasis> amix, amix, .8, .5
+ <emphasis role="opc">outs</emphasis> aL, aR
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 100<emphasis role="comment">; clear</emphasis>
+ <emphasis role="opc">chnclear</emphasis> "mix"
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 20
+<emphasis role="stamnt">i</emphasis> 2 0 20
+<emphasis role="stamnt">i</emphasis> 3 0 20
+<emphasis role="stamnt">i</emphasis> 11 0 20
+<emphasis role="stamnt">i</emphasis> 12 0 20
+<emphasis role="stamnt">i</emphasis> 20 0 20
+<emphasis role="stamnt">i</emphasis> 100 0 20
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/clear.csd.xml b/examples-xml/clear.csd.xml
index 58488a7..75a5b68 100644
--- a/examples-xml/clear.csd.xml
+++ b/examples-xml/clear.csd.xml
@@ -2,16 +2,17 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
--odac <emphasis role="comment">;;;RT audio out</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o clear.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
gaReverb <emphasis role="opc">init</emphasis> 0
diff --git a/examples-xml/combinv.csd.xml b/examples-xml/combinv.csd.xml
new file mode 100644
index 0000000..a26df65
--- /dev/null
+++ b/examples-xml/combinv.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;RT audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o comb.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="opc">expon</emphasis> p5, p3, p4
+asig <emphasis role="opc">oscil3</emphasis> 0.3, kcps, 1
+krvt <emphasis role="op">=</emphasis> 3.5
+ilpt <emphasis role="op">=</emphasis> 0.1
+aleft <emphasis role="opc">combinv</emphasis> asig, krvt, ilpt
+ <emphasis role="opc">outs</emphasis> aleft, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
+<emphasis role="stamnt">i</emphasis> 1 0 3 20 2000
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/compileorc.csd.xml b/examples-xml/compileorc.csd.xml
new file mode 100644
index 0000000..f2c2360
--- /dev/null
+++ b/examples-xml/compileorc.csd.xml
@@ -0,0 +1,25 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-o dac -d
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+ires <emphasis role="opc">compileorc</emphasis> "does_not_exist.orc"
+<emphasis role="opc">print</emphasis> ires <emphasis role="comment">; -1 as could not compile</emphasis>
+ires <emphasis role="opc">compileorc</emphasis> "my.orc"
+<emphasis role="opc">print</emphasis> ires <emphasis role="comment">; 0 as compiled successfully</emphasis>
+<emphasis role="opc">event_i</emphasis> "i", 2, 0, 3, .2, 465 <emphasis role="comment">;send event </emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/compilestr.csd.xml b/examples-xml/compilestr.csd.xml
new file mode 100644
index 0000000..f5a16a3
--- /dev/null
+++ b/examples-xml/compilestr.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-o dac -d
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="comment">;will fail because of wrong code</emphasis>
+ires <emphasis role="opc">compilestr</emphasis> {{
+<emphasis role="oblock">instr</emphasis> 2
+a1 oscilb p4, p5, 0
+<emphasis role="opc">out</emphasis> a1
+<emphasis role="oblock">endin</emphasis>
+}}
+<emphasis role="opc">print</emphasis> ires <emphasis role="comment">; returns -1 because not successfull</emphasis>
+
+ <emphasis role="comment">;will compile ...</emphasis>
+ires <emphasis role="opc">compilestr</emphasis> {{
+<emphasis role="oblock">instr</emphasis> 2
+a1 <emphasis role="opc">oscils</emphasis> p4, p5, 0
+<emphasis role="opc">out</emphasis> a1
+<emphasis role="oblock">endin</emphasis>
+}}
+<emphasis role="opc">print</emphasis> ires <emphasis role="comment">; ... and returns 0</emphasis>
+
+ <emphasis role="comment">;call the new instrument</emphasis>
+ <emphasis role="comment">;(note that the overall performance is extended)</emphasis>
+<emphasis role="opc">scoreline_i</emphasis> "i 2 0 3 .2 415"
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/copya2ftab.csd.xml b/examples-xml/copya2ftab.csd.xml
new file mode 100644
index 0000000..a06aa2d
--- /dev/null
+++ b/examples-xml/copya2ftab.csd.xml
@@ -0,0 +1,64 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">;an 'empty' function table with 10 points</emphasis>
+giTable <emphasis role="ohdr">ftgen</emphasis> 0, 0, <emphasis role="op">-</emphasis>10, 2, 0
+
+
+ <emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="comment">;print inital values of giTable</emphasis>
+ <emphasis role="opc">puts</emphasis> "\nInitial <emphasis role="opc">table</emphasis> content<emphasis role="op">:</emphasis>", 1
+indx <emphasis role="op">=</emphasis> 0
+ until indx <emphasis role="op">==</emphasis> <emphasis role="opc">ftlen</emphasis>(giTable) do
+iVal <emphasis role="opc">table</emphasis> indx, giTable
+ <emphasis role="opc">printf_i</emphasis> "Table index <emphasis role="op">%</emphasis>d <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, indx, iVal
+indx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;create array</emphasis>
+kArr[] <emphasis role="opc">init</emphasis> 10
+
+<emphasis role="comment">;fill in values</emphasis>
+kArr <emphasis role="opc">genarray</emphasis> 1, 10
+
+<emphasis role="comment">;print array values</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nArray content<emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr) do
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;copy array values to table</emphasis>
+ <emphasis role="opc">copya2ftab</emphasis> kArr, giTable
+
+<emphasis role="comment">;print modified values of giTable</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nModified <emphasis role="opc">table</emphasis> content after <emphasis role="opc">copya2ftab</emphasis><emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">ftlen</emphasis>(giTable) do
+kVal <emphasis role="opc">table</emphasis> kndx, giTable
+ <emphasis role="opc">printf</emphasis> "Table index <emphasis role="op">%</emphasis>d <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kVal
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;turn instrument off</emphasis>
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0.1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/copyf2array.csd.xml b/examples-xml/copyf2array.csd.xml
new file mode 100644
index 0000000..3520e0a
--- /dev/null
+++ b/examples-xml/copyf2array.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">;8 points sine wave function table</emphasis>
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8, 10, 1
+
+
+ <emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">;create array</emphasis>
+kArr[] <emphasis role="opc">init</emphasis> 8
+
+<emphasis role="comment">;copy table values in it</emphasis>
+ <emphasis role="opc">copyf2array</emphasis> kArr, giSine
+
+<emphasis role="comment">;print values</emphasis>
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr) do
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;turn instrument off</emphasis>
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0.1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/cosseg.csd.xml b/examples-xml/cosseg.csd.xml
new file mode 100644
index 0000000..7c6cb44
--- /dev/null
+++ b/examples-xml/cosseg.csd.xml
@@ -0,0 +1,58 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o linseg.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+kenv <emphasis role="opc">cosseg</emphasis> 0, 0.25, 1, 0.75, 0 <emphasis role="comment">; together = 1 sec</emphasis>
+asig <emphasis role="opc">poscil</emphasis> kenv, kcps, giSine
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; scaling to duration</emphasis>
+
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+kenv <emphasis role="opc">cosseg</emphasis> 0, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0
+asig <emphasis role="opc">poscil</emphasis> kenv, kcps, giSine
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 3 <emphasis role="comment">; with negative value</emphasis>
+
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+aenv <emphasis role="opc">cosseg</emphasis> 0, 0.1, 1, 0.5, <emphasis role="op">-</emphasis>0.9, 0.4, 0
+asig <emphasis role="opc">poscil</emphasis> aenv, kcps, giSine
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 1 7.00 <emphasis role="comment">; = 1 sec, p3 fits exactly</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 2 2 7.00 <emphasis role="comment">; = 2 sec, p3 truncated at 1 sec</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 2 4 1 7.00 <emphasis role="comment">; scales to duration</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 6 2 7.00 <emphasis role="comment">; of p3</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 3 9 2 7.00
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/cossegb.csd.xml b/examples-xml/cossegb.csd.xml
new file mode 100644
index 0000000..caea25d
--- /dev/null
+++ b/examples-xml/cossegb.csd.xml
@@ -0,0 +1,49 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o linseg.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+kenv <emphasis role="opc">cossegb</emphasis> 0, 0.25, 1, 1, 0
+asig <emphasis role="opc">poscil</emphasis> kenv, kcps, giSine
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; scaling to duration</emphasis>
+
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+kenv <emphasis role="opc">cossegb</emphasis> 0, p3<emphasis role="op">*</emphasis>0.25, 1, p3, 0
+asig <emphasis role="opc">poscil</emphasis> kenv, kcps, giSine
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 1 7.00 <emphasis role="comment">; = 1 sec, p3 fits exactly</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 2 2 7.00 <emphasis role="comment">; = 2 sec, p3 truncated at 1 sec</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 2 4 1 7.00 <emphasis role="comment">; scales to duration</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 6 2 7.00 <emphasis role="comment">; of p3</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/cossegr.csd.xml b/examples-xml/cossegr.csd.xml
new file mode 100644
index 0000000..1a75a49
--- /dev/null
+++ b/examples-xml/cossegr.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o linsegr.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+
+icps <emphasis role="opc">cpsmidi</emphasis>
+iamp <emphasis role="opc">ampmidi</emphasis> .3
+
+kenv <emphasis role="opc">cossegr</emphasis> 1, .05, 0.5, 1, 0
+asig <emphasis role="opc">pluck</emphasis> kenv, icps, 200, 1, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">f</emphasis>0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/cpumeter.csd.xml b/examples-xml/cpumeter.csd.xml
new file mode 100644
index 0000000..2e03f70
--- /dev/null
+++ b/examples-xml/cpumeter.csd.xml
@@ -0,0 +1,44 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o cpumeter.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;cpu metering; stop when too large</emphasis>
+k0 cpumeter 0.1
+ <emphasis role="opc">printk2</emphasis> k0
+ <emphasis role="octrl">if</emphasis> k0<emphasis role="op">></emphasis>70 then
+ <emphasis role="opc">event</emphasis> "i", 3, 0.1, 1
+ <emphasis role="octrl">endif</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+ <emphasis role="opc">event_i</emphasis> "i", 2, 1, 1000
+ asig <emphasis role="opc">oscil</emphasis> 0.2, 440, 1
+ <emphasis role="opc">out</emphasis> asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 3
+ <emphasis role="opc">exitnow</emphasis>
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 32768 10 1 <emphasis role="comment">; sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 1000
+<emphasis role="stamnt">i</emphasis> 2 0 1000
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/csbeats.csd.xml b/examples-xml/csbeats.csd.xml
new file mode 100644
index 0000000..adac098
--- /dev/null
+++ b/examples-xml/csbeats.csd.xml
@@ -0,0 +1,112 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+gi1 <emphasis role="ohdr">ftgen</emphasis> 1, 0, 4096, 10, 1
+gi2 <emphasis role="ohdr">ftgen</emphasis> 2, 0, 4096, 7, <emphasis role="op">-</emphasis>1, 4096, 1 <emphasis role="comment">; sawtooth</emphasis>
+gi3 <emphasis role="ohdr">ftgen</emphasis> 3, 0, 4096, 7, 0, 1024, 1, 2048, <emphasis role="op">-</emphasis>1, 1024, 0 <emphasis role="comment">;triangle</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 101,102,103
+ iamp <emphasis role="op">=</emphasis> <emphasis role="opc">ampdbfs</emphasis>(p5)
+ a1 <emphasis role="opc">oscil</emphasis> iamp, p4, p1<emphasis role="op">-</emphasis>100
+ kenv <emphasis role="opc">expseg</emphasis> 1, p3, .01
+ a1 <emphasis role="op">=</emphasis> a1 <emphasis role="op">*</emphasis> kenv
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; by Brian Baughn 3-14-05</emphasis>
+<emphasis role="comment">; bbaughn@berklee.net</emphasis>
+
+<emphasis role="stamnt">b</emphasis>eats = 100
+permeasure = 4
+
+<emphasis role="stamnt">i</emphasis>101 m1 b1 q mp D3
+<emphasis role="stamnt">i</emphasis>101 F3
+<emphasis role="stamnt">i</emphasis>101 D3
+
+<emphasis role="stamnt">i</emphasis>101 m2 b1 D3
+<emphasis role="stamnt">i</emphasis>101 b3 D3
+
+<emphasis role="stamnt">i</emphasis>101 m3 b1 D3
+<emphasis role="stamnt">i</emphasis>101 F3
+<emphasis role="stamnt">i</emphasis>101 D3
+
+<emphasis role="stamnt">i</emphasis>101 m4 b1 D3
+<emphasis role="stamnt">i</emphasis>101 b3 D3
+
+<emphasis role="stamnt">i</emphasis>101 m5 b1 D3
+<emphasis role="stamnt">i</emphasis>101 b4 G5
+
+<emphasis role="stamnt">i</emphasis>101 m6 b1 E5
+<emphasis role="stamnt">i</emphasis>101 b2 F5
+<emphasis role="stamnt">i</emphasis>101 b3 e Eb5
+<emphasis role="stamnt">i</emphasis>101 b3.5 e
+<emphasis role="stamnt">i</emphasis>101 b4 q
+
+<emphasis role="stamnt">i</emphasis>101 m7 b1 e D5
+<emphasis role="stamnt">i</emphasis>101
+<emphasis role="stamnt">i</emphasis>101 q
+<emphasis role="stamnt">i</emphasis>101 e Db5
+<emphasis role="stamnt">i</emphasis>101
+<emphasis role="stamnt">i</emphasis>101 q
+
+<emphasis role="stamnt">i</emphasis>101 m8 b1 q D5
+<emphasis role="stamnt">i</emphasis>101 E5
+<emphasis role="stamnt">i</emphasis>101 D5
+
+<emphasis role="stamnt">i</emphasis>102 m1 b2 q D4
+<emphasis role="stamnt">i</emphasis>102 b4 E4
+<emphasis role="stamnt">i</emphasis>102 b4 Bb3
+
+<emphasis role="stamnt">i</emphasis>102 m2 b2 F4
+<emphasis role="stamnt">i</emphasis>102 b2 B3
+<emphasis role="stamnt">i</emphasis>102 b4 C#4
+<emphasis role="stamnt">i</emphasis>102 b4 Bb3
+
+<emphasis role="stamnt">i</emphasis>102 m3 b2 q D4
+<emphasis role="stamnt">i</emphasis>102 b4 E4
+<emphasis role="stamnt">i</emphasis>102 b4 Bb3
+
+<emphasis role="stamnt">i</emphasis>102 m4 b2 F4
+<emphasis role="stamnt">i</emphasis>102 b2 B3
+<emphasis role="stamnt">i</emphasis>102 b4 C#4
+<emphasis role="stamnt">i</emphasis>102 b4 Bb3
+
+<emphasis role="stamnt">i</emphasis>103 m5 b2 e F6
+<emphasis role="stamnt">i</emphasis>103 b2 e A5
+<emphasis role="stamnt">i</emphasis>103 b2.5 e D6
+<emphasis role="stamnt">i</emphasis>103 b3 e F6
+<emphasis role="stamnt">i</emphasis>103 b3 e A5
+<emphasis role="stamnt">i</emphasis>103 b4 e E6
+
+<emphasis role="stamnt">i</emphasis>103 m6 b1 q C#6
+<emphasis role="stamnt">i</emphasis>103 q D6
+<emphasis role="stamnt">i</emphasis>103 e C6
+<emphasis role="stamnt">i</emphasis>103
+<emphasis role="stamnt">i</emphasis>103 q
+
+<emphasis role="stamnt">i</emphasis>103 m7 b1 e B5
+<emphasis role="stamnt">i</emphasis>103
+<emphasis role="stamnt">i</emphasis>103 q
+<emphasis role="stamnt">i</emphasis>103 e Bb5
+<emphasis role="stamnt">i</emphasis>103
+<emphasis role="stamnt">i</emphasis>103 q
+
+<emphasis role="stamnt">i</emphasis>103 m8 b1 e F5
+<emphasis role="stamnt">i</emphasis>103 b1 e A5
+<emphasis role="stamnt">i</emphasis>103 b1.5 e D6
+<emphasis role="stamnt">i</emphasis>103 b2 e Bb5
+<emphasis role="stamnt">i</emphasis>103 b2.5 e D6
+<emphasis role="stamnt">i</emphasis>103 b3 q F5
+<emphasis role="stamnt">i</emphasis>103 b3 A5
+<emphasis role="stamnt">e</emphasis>nd
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/cuserrnd.csd.xml b/examples-xml/cuserrnd.csd.xml
new file mode 100644
index 0000000..0c005e5
--- /dev/null
+++ b/examples-xml/cuserrnd.csd.xml
@@ -0,0 +1,44 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o cuserrnd.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; every run time same values</emphasis>
+
+kuser <emphasis role="opc">cuserrnd</emphasis> 0, 100, 1
+ <emphasis role="opc">printk</emphasis> .2, kuser
+asig <emphasis role="opc">poscil</emphasis> .5, 220<emphasis role="op">+</emphasis>kuser, 3
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; every run time different values</emphasis>
+
+ <emphasis role="ohdr">seed</emphasis> 0
+kuser <emphasis role="opc">cuserrnd</emphasis> 0, 100, 1
+ <emphasis role="opc">printk</emphasis> .2, kuser
+asig <emphasis role="opc">poscil</emphasis> .5, 220<emphasis role="op">+</emphasis>kuser, 3
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16 -7 1 4 0 8 0 4 1 <emphasis role="comment">;distrubution using GEN07</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 16384 40 1 <emphasis role="comment">;GEN40 is to be used with cuserrnd</emphasis>
+<emphasis role="stamnt">f</emphasis> 3 0 8192 10 1 <emphasis role="comment">;sine</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 2 3 2
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/deltapx.csd.xml b/examples-xml/deltapx.csd.xml
index efbd12c..c227657 100644
--- a/examples-xml/deltapx.csd.xml
+++ b/examples-xml/deltapx.csd.xml
@@ -20,10 +20,10 @@ a1 <emphasis role="opc">phasor</emphasis> 300
a1 <emphasis role="op">=</emphasis> a1 <emphasis role="op">-</emphasis> 0.5
a_ <emphasis role="opc">delayr</emphasis> 1
adel <emphasis role="opc">phasor</emphasis> 4
-adel <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis> (2 <emphasis role="op">*</emphasis> 3.14159265 <emphasis role="op">*</emphasis> adel) <emphasis role="op">*</emphasis> 0.01 <emphasis role="op">+</emphasis> 0.2
+adel <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>(2 <emphasis role="op">*</emphasis> 3.14159265 <emphasis role="op">*</emphasis> adel) <emphasis role="op">*</emphasis> 0.01 <emphasis role="op">+</emphasis> 0.2
<emphasis role="opc">deltapxw</emphasis> a1, adel, 32
adel <emphasis role="opc">phasor</emphasis> 2
-adel <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis> (2 <emphasis role="op">*</emphasis> 3.14159265 <emphasis role="op">*</emphasis> adel) <emphasis role="op">*</emphasis> 0.01 <emphasis role="op">+</emphasis> 0.2
+adel <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>(2 <emphasis role="op">*</emphasis> 3.14159265 <emphasis role="op">*</emphasis> adel) <emphasis role="op">*</emphasis> 0.01 <emphasis role="op">+</emphasis> 0.2
<emphasis role="opc">deltapxw</emphasis> a1, adel, 32
adel <emphasis role="op">=</emphasis> 0.3
a2 <emphasis role="opc">deltapx</emphasis> adel, 32
diff --git a/examples-xml/deltapxw.csd.xml b/examples-xml/deltapxw.csd.xml
index 3a8bab0..0ebc120 100644
--- a/examples-xml/deltapxw.csd.xml
+++ b/examples-xml/deltapxw.csd.xml
@@ -20,10 +20,10 @@ a1 <emphasis role="opc">phasor</emphasis> 300
a1 <emphasis role="op">=</emphasis> a1 <emphasis role="op">-</emphasis> 0.5
a_ <emphasis role="opc">delayr</emphasis> 1
adel <emphasis role="opc">phasor</emphasis> 4
-adel <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis> (2 <emphasis role="op">*</emphasis> 3.14159265 <emphasis role="op">*</emphasis> adel) <emphasis role="op">*</emphasis> 0.01 <emphasis role="op">+</emphasis> 0.2
+adel <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>(2 <emphasis role="op">*</emphasis> 3.14159265 <emphasis role="op">*</emphasis> adel) <emphasis role="op">*</emphasis> 0.01 <emphasis role="op">+</emphasis> 0.2
<emphasis role="opc">deltapxw</emphasis> a1, adel, 32
adel <emphasis role="opc">phasor</emphasis> 2
-adel <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis> (2 <emphasis role="op">*</emphasis> 3.14159265 <emphasis role="op">*</emphasis> adel) <emphasis role="op">*</emphasis> 0.01 <emphasis role="op">+</emphasis> 0.2
+adel <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>(2 <emphasis role="op">*</emphasis> 3.14159265 <emphasis role="op">*</emphasis> adel) <emphasis role="op">*</emphasis> 0.01 <emphasis role="op">+</emphasis> 0.2
<emphasis role="opc">deltapxw</emphasis> a1, adel, 32
adel <emphasis role="op">=</emphasis> 0.3
a2 <emphasis role="opc">deltapx</emphasis> adel, 32
diff --git a/examples-xml/divides.csd.xml b/examples-xml/divides.csd.xml
index 7cfeed9..bf84d2c 100644
--- a/examples-xml/divides.csd.xml
+++ b/examples-xml/divides.csd.xml
@@ -2,34 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o divides.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o /.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="op">=</emphasis> 24 <emphasis role="op">/</emphasis> 8
- <emphasis role="opc">print</emphasis> i1
-<emphasis role="oblock">endin</emphasis>
+idiv <emphasis role="op">=</emphasis> 1<emphasis role="op">/</emphasis>p3 <emphasis role="op">*</emphasis> p4
+ktrm <emphasis role="opc">oscil</emphasis> 1, idiv, 1 <emphasis role="comment">;use oscil as an envelope</emphasis>
+<emphasis role="opc">printf</emphasis> "retrigger rate per note duration <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n",1, idiv
+kndx <emphasis role="opc">line</emphasis> 5, p3, 1 <emphasis role="comment">;vary index of FM</emphasis>
+asig <emphasis role="opc">foscil</emphasis> ktrm, 200, 1, 1.4, kndx, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 3 10
+<emphasis role="stamnt">i</emphasis> 1 4 3 15
+<emphasis role="stamnt">i</emphasis> 1 8 3 2
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/dripwater.csd.xml b/examples-xml/dripwater.csd.xml
index dd544df..a16bcca 100644
--- a/examples-xml/dripwater.csd.xml
+++ b/examples-xml/dripwater.csd.xml
@@ -2,33 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o dripwater.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="oblock">instr</emphasis> 01 <emphasis role="comment">;example of a water drip</emphasis>
-a1 <emphasis role="opc">line</emphasis> 5, p3, 5 <emphasis role="comment">;preset an amplitude boost</emphasis>
-a2 <emphasis role="opc">dripwater</emphasis> p4, 0.01, 0, .9 <emphasis role="comment">;dripwater needs a little amplitude help at these values</emphasis>
-a3 <emphasis role="opc">product</emphasis> a1, a2 <emphasis role="comment">;increase amplitude</emphasis>
- <emphasis role="opc">out</emphasis> a3
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+imaxshake <emphasis role="op">=</emphasis> p4
+ifreq <emphasis role="op">=</emphasis> p5
+ifreq1 <emphasis role="op">=</emphasis> p6
+ifreq2 <emphasis role="op">=</emphasis> p7
+<emphasis role="comment">;low amplitude</emphasis>
+adrp <emphasis role="opc">dripwater</emphasis> .1, 0.09, 10, .9, imaxshake, ifreq, ifreq1, ifreq2
+asig <emphasis role="opc">clip</emphasis> adrp, 2, 0.9 <emphasis role="comment">; avoid drips that drip too loud</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis>1 0 1 20000
-<emphasis role="stamnt">e</emphasis>
+{100 CNT
+<emphasis role="stamnt">i</emphasis>1 [0.1 * $CNT] 0.5 0.5 430 1000 800
+}
+
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/dssi4cs.csd.xml b/examples-xml/dssi4cs.csd.xml
index 5b02c82..c462b98 100644
--- a/examples-xml/dssi4cs.csd.xml
+++ b/examples-xml/dssi4cs.csd.xml
@@ -7,27 +7,27 @@
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 256
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="opc">dssilist</emphasis>
+dssilist
-gihandle <emphasis role="opc">dssiinit</emphasis> "amp.so", 0, 1
+gihandle dssiinit "amp.so", 0, 1
<emphasis role="comment">;gihandle dssiinit "cmt.so", 30 , 2</emphasis>
<emphasis role="comment">;gihandle2 dssiinit "cmt.so", 8 , 1</emphasis>
<emphasis role="comment">;gihandle dssiinit "delayorama_1402", 0</emphasis>
-gihandle2 <emphasis role="opc">dssiinit</emphasis> "cmt.so", 49 , 1
+gihandle2 dssiinit "cmt.so", 49 , 1
<emphasis role="comment">;gihandle dssiinit "freq_tracker_1418.so", 0 , 1, 1 </emphasis>
<emphasis role="comment">;gihandle dssiinit "g2reverb.so", 0, 1</emphasis>
<emphasis role="comment">;gihandle2 dssiinit "declip_1195.so", 0, 1</emphasis>
<emphasis role="comment">;gihandle2 dssiinit "revdelay_1605.so", 0, 1</emphasis>
<emphasis role="comment">;gihandle2 dssiinit "tap_chorusflanger.so", 0, 1</emphasis>
<emphasis role="comment">;gihandle2 dssiinit "plate_1423.so", 0, 1</emphasis>
-gihandle3 <emphasis role="opc">dssiinit</emphasis> "gate_1410.so", 0, 1
+gihandle3 dssiinit "gate_1410.so", 0, 1
<emphasis role="comment">;gihandle3 dssiinit "hexter.so", 0, 1</emphasis>
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="opc">print</emphasis> p4
-<emphasis role="opc">dssiactivate</emphasis> gihandle, p4
-<emphasis role="opc">dssiactivate</emphasis> gihandle2, p4
-<emphasis role="opc">dssiactivate</emphasis> gihandle3, p4
+dssiactivate gihandle, p4
+dssiactivate gihandle2, p4
+dssiactivate gihandle3, p4
<emphasis role="oblock">endin</emphasis>
@@ -35,18 +35,18 @@ gihandle3 <emphasis role="opc">dssiinit</emphasis> "gate_1410.so", 0, 1
ain1 <emphasis role="opc">inch</emphasis> 1
ain2 <emphasis role="opc">inch</emphasis> 2
<emphasis role="comment">;aout1,aout2 dssiaudio gihandle, ain1, ain2</emphasis>
-aout1 <emphasis role="opc">dssiaudio</emphasis> gihandle, ain1
+aout1 dssiaudio gihandle, ain1
<emphasis role="opc">outs</emphasis> aout1,aout1
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 3
kval <emphasis role="opc">linen</emphasis> 1, p3 <emphasis role="op">/</emphasis>3, p3, p3<emphasis role="op">/</emphasis> 3
-<emphasis role="opc">dssictls</emphasis> gihandle, p4, kval, 1
+dssictls gihandle, p4, kval, 1
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 4
ain1 <emphasis role="opc">inch</emphasis> 1
-aout1 <emphasis role="opc">dssiaudio</emphasis> gihandle2, ain1
+aout1 dssiaudio gihandle2, ain1
<emphasis role="opc">outs</emphasis> aout1,aout1
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/dssiactivate.csd.xml b/examples-xml/dssiactivate.csd.xml
index 4f8c4e8..bf68570 100644
--- a/examples-xml/dssiactivate.csd.xml
+++ b/examples-xml/dssiactivate.csd.xml
@@ -13,13 +13,13 @@
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-gihandle <emphasis role="opc">dssiinit</emphasis> "caps.so", 19, 1 <emphasis role="comment">; = mono phaser and</emphasis>
+gihandle dssiinit "caps.so", 19, 1 <emphasis role="comment">; = mono phaser and</emphasis>
gaout <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">; verbose about all ports</emphasis>
<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; activate DSSI</emphasis>
ktoggle <emphasis role="op">=</emphasis> p4
-<emphasis role="opc">dssiactivate</emphasis> gihandle, ktoggle
+dssiactivate gihandle, ktoggle
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2
@@ -32,17 +32,17 @@ gaout <emphasis role="op">=</emphasis> gaout<emphasis role="op">+</emphasis>ain1
<emphasis role="oblock">instr</emphasis> 3
-<emphasis role="opc">dssictls</emphasis> gihandle, 0, 1, 1 <emphasis role="comment">; range -1 to 1</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 1, 2, 1 <emphasis role="comment">; rate 0 to 10</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 2, .8, 1 <emphasis role="comment">; depth 0 to 1</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 3, 3, 1 <emphasis role="comment">; spread 0 to 3.14</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 4, .9, 1 <emphasis role="comment">; feedback 0 to 0.999</emphasis>
+dssictls gihandle, 0, 1, 1 <emphasis role="comment">; range -1 to 1</emphasis>
+dssictls gihandle, 1, 2, 1 <emphasis role="comment">; rate 0 to 10</emphasis>
+dssictls gihandle, 2, .8, 1 <emphasis role="comment">; depth 0 to 1</emphasis>
+dssictls gihandle, 3, 3, 1 <emphasis role="comment">; spread 0 to 3.14</emphasis>
+dssictls gihandle, 4, .9, 1 <emphasis role="comment">; feedback 0 to 0.999</emphasis>
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 4
-aout1 <emphasis role="opc">dssiaudio</emphasis> gihandle, gaout <emphasis role="comment">;get beats.wav, mono out</emphasis>
+aout1 dssiaudio gihandle, gaout <emphasis role="comment">;get beats.wav, mono out</emphasis>
<emphasis role="opc">outs</emphasis> aout1,aout1
gaout <emphasis role="op">=</emphasis> 0
diff --git a/examples-xml/dssiaudio.csd.xml b/examples-xml/dssiaudio.csd.xml
index 9118784..4dd55be 100644
--- a/examples-xml/dssiaudio.csd.xml
+++ b/examples-xml/dssiaudio.csd.xml
@@ -13,12 +13,12 @@
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-gihandle <emphasis role="opc">dssiinit</emphasis> "caps.so", 19, 1 <emphasis role="comment">; = mono phaser and</emphasis>
+gihandle dssiinit "caps.so", 19, 1 <emphasis role="comment">; = mono phaser and</emphasis>
gaout <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">; verbose about all ports</emphasis>
<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; activate DSSI</emphasis>
-<emphasis role="opc">dssiactivate</emphasis> gihandle, 1
+dssiactivate gihandle, 1
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2
@@ -29,17 +29,17 @@ gaout <emphasis role="op">=</emphasis> gaout<emphasis role="op">+</emphasis>(ain
<emphasis role="oblock">instr</emphasis> 3
-<emphasis role="opc">dssictls</emphasis> gihandle, 0, .8, 1 <emphasis role="comment">; range -1 to 1</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 1, .05, 1 <emphasis role="comment">; rate 0 to 10</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 2, .8, 1 <emphasis role="comment">; depth 0 to 1</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 3, 2, 1 <emphasis role="comment">; spread 0 to 3.14</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 4, .7, 1 <emphasis role="comment">; feedback 0 to 0.999</emphasis>
+dssictls gihandle, 0, .8, 1 <emphasis role="comment">; range -1 to 1</emphasis>
+dssictls gihandle, 1, .05, 1 <emphasis role="comment">; rate 0 to 10</emphasis>
+dssictls gihandle, 2, .8, 1 <emphasis role="comment">; depth 0 to 1</emphasis>
+dssictls gihandle, 3, 2, 1 <emphasis role="comment">; spread 0 to 3.14</emphasis>
+dssictls gihandle, 4, .7, 1 <emphasis role="comment">; feedback 0 to 0.999</emphasis>
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 4
-aout1 <emphasis role="opc">dssiaudio</emphasis> gihandle, gaout <emphasis role="comment">;get beats.wav, mono out</emphasis>
+aout1 dssiaudio gihandle, gaout <emphasis role="comment">;get beats.wav, mono out</emphasis>
<emphasis role="opc">outs</emphasis> aout1,aout1
gaout <emphasis role="op">=</emphasis> 0
diff --git a/examples-xml/dssictls.csd.xml b/examples-xml/dssictls.csd.xml
index 721ddb1..546138b 100644
--- a/examples-xml/dssictls.csd.xml
+++ b/examples-xml/dssictls.csd.xml
@@ -13,13 +13,13 @@
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-gihandle <emphasis role="opc">dssiinit</emphasis> "caps.so", 1, 1 <emphasis role="comment">; = equaliser and</emphasis>
+gihandle dssiinit "caps.so", 1, 1 <emphasis role="comment">; = equaliser and</emphasis>
gaoutl <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">; verbose about all ports</emphasis>
gaoutr <emphasis role="opc">init</emphasis> 0
<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; activate DSSI</emphasis>
-<emphasis role="opc">dssiactivate</emphasis> gihandle, 1
+dssiactivate gihandle, 1
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2
@@ -31,22 +31,22 @@ gaoutr <emphasis role="op">=</emphasis> gaoutr<emphasis role="op">+</emphasis>(a
<emphasis role="oblock">instr</emphasis> 3
-<emphasis role="opc">dssictls</emphasis> gihandle, 2, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 31 Hz range -48 to 24</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 3, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 63 Hz range -48 to 24</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 4, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 125 Hz range -48 to 24</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 5, 20, 1 <emphasis role="comment">; 250 Hz range -48 to 24</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 6, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 500 Hz range -48 to 24</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 7, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 1 kHz Hz range -48 to 24</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 8, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 2 kHz range -48 to 24</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 9, 24, 1 <emphasis role="comment">; 4 kHz range -48 to 24</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 10, 24, 1 <emphasis role="comment">; 8 kHz range -48 to 24</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 11, 24, 1 <emphasis role="comment">; 16 kHz range -48 to 24</emphasis>
+dssictls gihandle, 2, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 31 Hz range -48 to 24</emphasis>
+dssictls gihandle, 3, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 63 Hz range -48 to 24</emphasis>
+dssictls gihandle, 4, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 125 Hz range -48 to 24</emphasis>
+dssictls gihandle, 5, 20, 1 <emphasis role="comment">; 250 Hz range -48 to 24</emphasis>
+dssictls gihandle, 6, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 500 Hz range -48 to 24</emphasis>
+dssictls gihandle, 7, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 1 kHz Hz range -48 to 24</emphasis>
+dssictls gihandle, 8, <emphasis role="op">-</emphasis>48, 1 <emphasis role="comment">; 2 kHz range -48 to 24</emphasis>
+dssictls gihandle, 9, 24, 1 <emphasis role="comment">; 4 kHz range -48 to 24</emphasis>
+dssictls gihandle, 10, 24, 1 <emphasis role="comment">; 8 kHz range -48 to 24</emphasis>
+dssictls gihandle, 11, 24, 1 <emphasis role="comment">; 16 kHz range -48 to 24</emphasis>
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 4
-aout1, aout2 <emphasis role="opc">dssiaudio</emphasis> gihandle, gaoutl, gaoutr <emphasis role="comment">;get beats.wav, mono out</emphasis>
+aout1, aout2 dssiaudio gihandle, gaoutl, gaoutr <emphasis role="comment">;get beats.wav, mono out</emphasis>
<emphasis role="opc">outs</emphasis> aout1,aout2
gaoutl <emphasis role="op">=</emphasis> 0
diff --git a/examples-xml/dssiinit.csd.xml b/examples-xml/dssiinit.csd.xml
index f17080f..e995776 100644
--- a/examples-xml/dssiinit.csd.xml
+++ b/examples-xml/dssiinit.csd.xml
@@ -13,12 +13,12 @@
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-gihandle <emphasis role="opc">dssiinit</emphasis> "g2reverb.so", 0, 1
+gihandle dssiinit "g2reverb.so", 0, 1
gaout <emphasis role="opc">init</emphasis> 0
<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; activate DSSI</emphasis>
-<emphasis role="opc">dssiactivate</emphasis> gihandle, 1
+dssiactivate gihandle, 1
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2
@@ -30,18 +30,18 @@ gaout <emphasis role="op">=</emphasis> gaout<emphasis role="op">+</emphasis>(ain
<emphasis role="oblock">instr</emphasis> 3
-<emphasis role="opc">dssictls</emphasis> gihandle, 4, 100, 1 <emphasis role="comment">; room 10 to 150 </emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 5, 10, 1 <emphasis role="comment">; reverb time 1 to 20</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 6, .5, 1 <emphasis role="comment">; input bandwith 0 to 1</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 7, .25, 1 <emphasis role="comment">; damping 0 to 1</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 8, 0, 1 <emphasis role="comment">; dry -80 to 0</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 9, <emphasis role="op">-</emphasis>10, 1 <emphasis role="comment">; reflections -80 to 0</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 10, <emphasis role="op">-</emphasis>15, 1 <emphasis role="comment">; rev. tail -80 to 0</emphasis>
+dssictls gihandle, 4, 100, 1 <emphasis role="comment">; room 10 to 150 </emphasis>
+dssictls gihandle, 5, 10, 1 <emphasis role="comment">; reverb time 1 to 20</emphasis>
+dssictls gihandle, 6, .5, 1 <emphasis role="comment">; input bandwith 0 to 1</emphasis>
+dssictls gihandle, 7, .25, 1 <emphasis role="comment">; damping 0 to 1</emphasis>
+dssictls gihandle, 8, 0, 1 <emphasis role="comment">; dry -80 to 0</emphasis>
+dssictls gihandle, 9, <emphasis role="op">-</emphasis>10, 1 <emphasis role="comment">; reflections -80 to 0</emphasis>
+dssictls gihandle, 10, <emphasis role="op">-</emphasis>15, 1 <emphasis role="comment">; rev. tail -80 to 0</emphasis>
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 4
-aout1, aout2 <emphasis role="opc">dssiaudio</emphasis> gihandle, gaout, gaout <emphasis role="comment">;get beats.wav and</emphasis>
+aout1, aout2 dssiaudio gihandle, gaout, gaout <emphasis role="comment">;get beats.wav and</emphasis>
<emphasis role="opc">outs</emphasis> aout1,aout2 <emphasis role="comment">; stereo DSSI plugin</emphasis>
gaout <emphasis role="op">=</emphasis> 0
diff --git a/examples-xml/dssilist.csd.xml b/examples-xml/dssilist.csd.xml
index 2219a03..34b3f13 100644
--- a/examples-xml/dssilist.csd.xml
+++ b/examples-xml/dssilist.csd.xml
@@ -14,7 +14,7 @@
<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; list all DSSI and LADSPA plugins</emphasis>
-<emphasis role="opc">dssilist</emphasis>
+dssilist
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
diff --git a/examples-xml/dssiplay_mono.csd.xml b/examples-xml/dssiplay_mono.csd.xml
index 40ed0aa..35e307e 100644
--- a/examples-xml/dssiplay_mono.csd.xml
+++ b/examples-xml/dssiplay_mono.csd.xml
@@ -13,12 +13,12 @@
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-gihandle <emphasis role="opc">dssiinit</emphasis> "caps.so", 19, 1 <emphasis role="comment">; = mono phaser and</emphasis>
+gihandle dssiinit "caps.so", 19, 1 <emphasis role="comment">; = mono phaser and</emphasis>
gaout <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">; verbose about all ports</emphasis>
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; activate DSSI</emphasis>
-<emphasis role="opc">dssiactivate</emphasis> gihandle, 1
+dssiactivate gihandle, 1
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2
@@ -29,17 +29,17 @@ gaout <emphasis role="op">=</emphasis> gaout<emphasis role="op">+</emphasis>(ain
<emphasis role="oblock">instr</emphasis> 3
-<emphasis role="opc">dssictls</emphasis> gihandle, 0, .8, 1 <emphasis role="comment">; range -1 to 1</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 1, .05, 1 <emphasis role="comment">; rate 0 to 10</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 2, .8, 1 <emphasis role="comment">; depth 0 to 1</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 3, 2, 1 <emphasis role="comment">; spread 0 to 3.14</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 4, .7, 1 <emphasis role="comment">; feedback 0 to 0.999</emphasis>
+dssictls gihandle, 0, .8, 1 <emphasis role="comment">; range -1 to 1</emphasis>
+dssictls gihandle, 1, .05, 1 <emphasis role="comment">; rate 0 to 10</emphasis>
+dssictls gihandle, 2, .8, 1 <emphasis role="comment">; depth 0 to 1</emphasis>
+dssictls gihandle, 3, 2, 1 <emphasis role="comment">; spread 0 to 3.14</emphasis>
+dssictls gihandle, 4, .7, 1 <emphasis role="comment">; feedback 0 to 0.999</emphasis>
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 4
-aout1 <emphasis role="opc">dssiaudio</emphasis> gihandle, gaout <emphasis role="comment">;get beats.wav, mono out</emphasis>
+aout1 dssiaudio gihandle, gaout <emphasis role="comment">;get beats.wav, mono out</emphasis>
<emphasis role="opc">outs</emphasis> aout1,aout1
gaout <emphasis role="op">=</emphasis> 0
diff --git a/examples-xml/dssiplay_stereo.csd.xml b/examples-xml/dssiplay_stereo.csd.xml
index 9331ec7..52d91e8 100644
--- a/examples-xml/dssiplay_stereo.csd.xml
+++ b/examples-xml/dssiplay_stereo.csd.xml
@@ -13,12 +13,12 @@
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-gihandle <emphasis role="opc">dssiinit</emphasis> "g2reverb.so", 0, 1
+gihandle dssiinit "g2reverb.so", 0, 1
gaout <emphasis role="opc">init</emphasis> 0
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; activate DSSI</emphasis>
-<emphasis role="opc">dssiactivate</emphasis> gihandle, 1
+dssiactivate gihandle, 1
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2
@@ -28,18 +28,18 @@ gaout <emphasis role="op">=</emphasis> gaout<emphasis role="op">+</emphasis>(ain
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 3
-<emphasis role="opc">dssictls</emphasis> gihandle, 4, 100, 1 <emphasis role="comment">; room 10 to 150 </emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 5, 10, 1 <emphasis role="comment">; reverb time 1 to 20</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 6, .5, 1 <emphasis role="comment">; input bandwith 0 to 1</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 7, .25, 1 <emphasis role="comment">; damping 0 to 1</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 8, 0, 1 <emphasis role="comment">; dry -80 to 0</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 9, <emphasis role="op">-</emphasis>10, 1 <emphasis role="comment">; reflections -80 to 0</emphasis>
-<emphasis role="opc">dssictls</emphasis> gihandle, 10, <emphasis role="op">-</emphasis>15, 1 <emphasis role="comment">; rev. tail -80 to 0</emphasis>
+dssictls gihandle, 4, 100, 1 <emphasis role="comment">; room 10 to 150 </emphasis>
+dssictls gihandle, 5, 10, 1 <emphasis role="comment">; reverb time 1 to 20</emphasis>
+dssictls gihandle, 6, .5, 1 <emphasis role="comment">; input bandwith 0 to 1</emphasis>
+dssictls gihandle, 7, .25, 1 <emphasis role="comment">; damping 0 to 1</emphasis>
+dssictls gihandle, 8, 0, 1 <emphasis role="comment">; dry -80 to 0</emphasis>
+dssictls gihandle, 9, <emphasis role="op">-</emphasis>10, 1 <emphasis role="comment">; reflections -80 to 0</emphasis>
+dssictls gihandle, 10, <emphasis role="op">-</emphasis>15, 1 <emphasis role="comment">; rev. tail -80 to 0</emphasis>
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 4
-aout1, aout2 <emphasis role="opc">dssiaudio</emphasis> gihandle, gaout, gaout <emphasis role="comment">;get beats.wav and</emphasis>
+aout1, aout2 dssiaudio gihandle, gaout, gaout <emphasis role="comment">;get beats.wav and</emphasis>
<emphasis role="opc">outs</emphasis> aout1,aout2 <emphasis role="comment">; stereo DSSI plugin</emphasis>
gaout <emphasis role="op">=</emphasis> 0
diff --git a/examples-xml/dumpk-2.csd.xml b/examples-xml/dumpk-2.csd.xml
new file mode 100644
index 0000000..f10b136
--- /dev/null
+++ b/examples-xml/dumpk-2.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o dumpk-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;writes a control signal to a file</emphasis>
+kfreq <emphasis role="opc">randh</emphasis> 100, 1, 2, 1, 500 <emphasis role="comment">;generates one random number between 400 and 600 per second</emphasis>
+ <emphasis role="opc">dumpk</emphasis> kfreq, "dumpk.txt", 8, 1 <emphasis role="comment">;writes the control signal</emphasis>
+ <emphasis role="opc">printk</emphasis> 1, kfreq <emphasis role="comment">;prints it</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;reads the file written by instr 1</emphasis>
+kfreq <emphasis role="opc">readk</emphasis> "dumpk.txt", 8, 1
+ <emphasis role="opc">printk</emphasis> 1, kfreq <emphasis role="comment">;prints it</emphasis>
+aout <emphasis role="opc">poscil</emphasis> .2, kfreq, giSine
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 5 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/dumpk2.csd.xml b/examples-xml/dumpk2.csd.xml
new file mode 100644
index 0000000..714474a
--- /dev/null
+++ b/examples-xml/dumpk2.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o dumpk2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;writes two control signals to a file</emphasis>
+kfreq <emphasis role="opc">randh</emphasis> 100, 1, 2, 1, 500 <emphasis role="comment">;generates one random number between 400 and 600 per second</emphasis>
+kdb <emphasis role="opc">randh</emphasis> 12, 1, 2, 1, <emphasis role="op">-</emphasis>12 <emphasis role="comment">;amplitudes in dB between -24 and 0</emphasis>
+ <emphasis role="opc">dumpk2</emphasis> kfreq, kdb, "dumpk2.txt", 8, 1 <emphasis role="comment">;writes the control signals</emphasis>
+ <emphasis role="opc">prints</emphasis> "WRITING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kfreq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kfreq, kdb <emphasis role="comment">;prints them</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;reads the file written by instr 1</emphasis>
+kf,kdb <emphasis role="opc">readk2</emphasis> "dumpk2.txt", 8, 1
+ <emphasis role="opc">prints</emphasis> "READING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kfreq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kf, kdb <emphasis role="comment">;prints again</emphasis>
+kdb <emphasis role="opc">lineto</emphasis> kdb, .1 <emphasis role="comment">;smoothing amp transition</emphasis>
+aout <emphasis role="opc">poscil</emphasis> <emphasis role="opc">ampdb</emphasis>(kdb), kf, giSine
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 5 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/dumpk3.csd.xml b/examples-xml/dumpk3.csd.xml
new file mode 100644
index 0000000..3706ee7
--- /dev/null
+++ b/examples-xml/dumpk3.csd.xml
@@ -0,0 +1,46 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o dumpk3.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;writes three control signals to a file</emphasis>
+kfreq <emphasis role="opc">randh</emphasis> 100, 1, 2, 1, 500 <emphasis role="comment">;generates one random number between 400 and 600 per second</emphasis>
+kdb <emphasis role="opc">randh</emphasis> 12, 1, 2, 1, <emphasis role="op">-</emphasis>12 <emphasis role="comment">;amplitudes in dB between -24 and 0</emphasis>
+kpan <emphasis role="opc">randh</emphasis> .5, 1, 2, 1, .5 <emphasis role="comment">;panning between 0 and 1</emphasis>
+ <emphasis role="opc">dumpk3</emphasis> kfreq, kdb, kpan, "dumpk3.txt", 8, 1 <emphasis role="comment">;writes the control signals</emphasis>
+ <emphasis role="opc">prints</emphasis> "WRITING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kfreq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kpan <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kfreq, kdb, kpan <emphasis role="comment">;prints them</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;reads the file written by instr 1</emphasis>
+kf,kdb,kp <emphasis role="opc">readk3</emphasis> "dumpk3.txt", 8, 1
+ <emphasis role="opc">prints</emphasis> "READING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kfreq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kpan <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kf, kdb, kp <emphasis role="comment">;prints again</emphasis>
+kdb <emphasis role="opc">lineto</emphasis> kdb, .1 <emphasis role="comment">;smoothing amp transition</emphasis>
+kp <emphasis role="opc">lineto</emphasis> kp, .1 <emphasis role="comment">;smoothing pan transition</emphasis>
+aout <emphasis role="opc">poscil</emphasis> <emphasis role="opc">ampdb</emphasis>(kdb), kf, giSine
+aL, aR <emphasis role="opc">pan2</emphasis> aout, kp
+ <emphasis role="opc">outs</emphasis> aL, aR
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 5 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/dumpk4.csd.xml b/examples-xml/dumpk4.csd.xml
new file mode 100644
index 0000000..f81051e
--- /dev/null
+++ b/examples-xml/dumpk4.csd.xml
@@ -0,0 +1,50 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o dumpk4.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;writes four control signals to a file</emphasis>
+kcf <emphasis role="opc">randh</emphasis> 950, 1, 2, 1, 1050 <emphasis role="comment">;generates one random number between 100 and 2000 per second</emphasis>
+kq <emphasis role="opc">randh</emphasis> 10, 1, 2, 1, 11 <emphasis role="comment">;generates another random number between 1 and 21 per second</emphasis>
+kdb <emphasis role="opc">randh</emphasis> 9, 1, 2, 1, <emphasis role="op">-</emphasis>15 <emphasis role="comment">;amplitudes in dB between -24 and -6</emphasis>
+kpan <emphasis role="opc">randh</emphasis> .5, 1, 2, 1, .5 <emphasis role="comment">;panning between 0 and 1</emphasis>
+ <emphasis role="opc">dumpk4</emphasis> kcf, kq, kdb, kpan, "dumpk4.txt", 8, 1 <emphasis role="comment">;writes the control signals</emphasis>
+ <emphasis role="opc">prints</emphasis> "WRITING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kcf <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kpan <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kcf, kq, kdb, kpan <emphasis role="comment">;prints them</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;reads the file written by instr 1</emphasis>
+kcf,kq,kdb,kp <emphasis role="opc">readk4</emphasis> "dumpk4.txt", 8, 1
+ <emphasis role="opc">prints</emphasis> "READING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kcf <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kpan <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kcf, kq, kdb, kp <emphasis role="comment">;prints values</emphasis>
+kdb <emphasis role="opc">lineto</emphasis> kdb, .1 <emphasis role="comment">;smoothing amp transition</emphasis>
+kp <emphasis role="opc">lineto</emphasis> kp, .1 <emphasis role="comment">;smoothing pan transition</emphasis>
+anoise <emphasis role="opc">rand</emphasis> <emphasis role="opc">ampdb</emphasis>(kdb), 2, 1
+kbw <emphasis role="op">=</emphasis> kcf<emphasis role="op">/</emphasis>kq <emphasis role="comment">;bandwidth of resonant filter</emphasis>
+abp <emphasis role="opc">reson</emphasis> anoise, kcf, kbw
+aout <emphasis role="opc">balance</emphasis> abp, anoise
+aL, aR <emphasis role="opc">pan2</emphasis> aout, kp
+ <emphasis role="opc">outs</emphasis> aL, aR
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 5 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/duserrnd.csd.xml b/examples-xml/duserrnd.csd.xml
new file mode 100644
index 0000000..9226047
--- /dev/null
+++ b/examples-xml/duserrnd.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o duserrnd.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+k1 <emphasis role="opc">duserrnd</emphasis> 1
+ <emphasis role="opc">printk</emphasis> 0, k1
+asig <emphasis role="opc">poscil</emphasis> .5, 220<emphasis role="op">*</emphasis>k1, 2 <emphasis role="comment">;multiply frequency with random value</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 -20 -41 2 .1 8 .9 <emphasis role="comment">;choose 2 at 10% probability, and 8 at 90%</emphasis>
+
+<emphasis role="stamnt">f</emphasis>2 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis>1 0 2
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/dust.csd.xml b/examples-xml/dust.csd.xml
new file mode 100644
index 0000000..42f5d5c
--- /dev/null
+++ b/examples-xml/dust.csd.xml
@@ -0,0 +1,30 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kdens <emphasis role="opc">expon</emphasis> 2, p3, 20000
+aout <emphasis role="opc">dust</emphasis> 0.5, kdens
+<emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/dust2.csd.xml b/examples-xml/dust2.csd.xml
new file mode 100644
index 0000000..0b92242
--- /dev/null
+++ b/examples-xml/dust2.csd.xml
@@ -0,0 +1,30 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kdens <emphasis role="opc">expon</emphasis> 2, p3, 20000
+aout <emphasis role="opc">dust2</emphasis> 0.5, kdens
+<emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/e.csd.xml b/examples-xml/e.csd.xml
new file mode 100644
index 0000000..84b5a26
--- /dev/null
+++ b/examples-xml/e.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o e.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+ga1 <emphasis role="opc">init</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aenv <emphasis role="opc">expseg</emphasis> .01, p3<emphasis role="op">*</emphasis>0.1, 1, p3<emphasis role="op">*</emphasis>0.9, 0.01
+ga1 <emphasis role="opc">poscil3</emphasis> .5<emphasis role="op">*</emphasis>aenv, <emphasis role="opc">cpspch</emphasis>(p4), 1
+ <emphasis role="opc">outs</emphasis> ga1,ga1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99
+
+aL, aR <emphasis role="opc">reverbsc</emphasis> ga1, ga1, 0.85, 12000, sr, 0.5, 1
+<emphasis role="opc">outs</emphasis> aL,aR
+
+ga1 <emphasis role="op">=</emphasis> 0
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 128 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 1 0.1 8.00
+<emphasis role="stamnt">i</emphasis> 1 2 0.1 8.02
+<emphasis role="stamnt">i</emphasis> 1 3 0.1 8.04
+<emphasis role="stamnt">i</emphasis> 1 4 0.1 9.06
+
+<emphasis role="stamnt">i</emphasis> 99 0 6 <emphasis role="comment">;remains active for 6 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>10
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/equals.csd.xml b/examples-xml/equals.csd.xml
index 13fac3f..515df97 100644
--- a/examples-xml/equals.csd.xml
+++ b/examples-xml/equals.csd.xml
@@ -2,44 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o equal.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o equals.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Get the 4th p-field from the score.</emphasis>
- k1 <emphasis role="op">=</emphasis> p4
- <emphasis role="comment">; Is it equal to 3? (1 = true, 0 = false)</emphasis>
- k2 <emphasis role="op">=</emphasis> (p4 <emphasis role="op">==</emphasis> 3 <emphasis role="op">?</emphasis> 1 <emphasis role="op">:</emphasis> 0)
+ienv <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;choose envelope in score</emphasis>
- <emphasis role="comment">; Print the values of k1 and k2.</emphasis>
- <emphasis role="opc">printks</emphasis> "k1 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, k2 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\\n", 1, k1, k2
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="octrl">if</emphasis> (ienv <emphasis role="op">==</emphasis> 0) kthen
+ kenv <emphasis role="opc">adsr</emphasis> 0.05, 0.05, 0.95, 0.05 <emphasis role="comment">;sustained envelope</emphasis>
+<emphasis role="octrl">elseif</emphasis> (ienv <emphasis role="op">==</emphasis> 1) kthen
+ kenv <emphasis role="opc">adsr</emphasis> 0.5, 1, 0.5, 0.5 <emphasis role="comment">;triangular envelope</emphasis>
+<emphasis role="octrl">elseif</emphasis> (ienv <emphasis role="op">==</emphasis> 2) kthen
+ kenv <emphasis role="opc">adsr</emphasis> 1, 1, 1, 0 <emphasis role="comment">;ramp up</emphasis>
+<emphasis role="octrl">endif</emphasis>
+aout <emphasis role="opc">vco2</emphasis> .1, 110, 10
+aout <emphasis role="op">=</emphasis> aout <emphasis role="op">*</emphasis> kenv
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Call Instrument #1 with a p4 = 2.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 0.5 2
-<emphasis role="comment">; Call Instrument #1 with a p4 = 3.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 1 0.5 3
-<emphasis role="comment">; Call Instrument #1 with a p4 = 4.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 2 0.5 4
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis>1 0 2 0
+<emphasis role="stamnt">i</emphasis>1 3 2 1
+<emphasis role="stamnt">i</emphasis>1 6 2 2
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/event_i.csd.xml b/examples-xml/event_i.csd.xml
new file mode 100644
index 0000000..129be6a
--- /dev/null
+++ b/examples-xml/event_i.csd.xml
@@ -0,0 +1,52 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;RT audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o event_i.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0
+gisine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;master instrument</emphasis>
+
+ininstr <emphasis role="op">=</emphasis> 10 <emphasis role="comment">;number of called instances</emphasis>
+indx <emphasis role="op">=</emphasis> 0
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+ipan <emphasis role="opc">random</emphasis> 0, 1
+ifreq <emphasis role="opc">random</emphasis> 100, 1000
+iamp <emphasis role="op">=</emphasis> 1<emphasis role="op">/</emphasis>ininstr
+<emphasis role="opc">event_i</emphasis> "i", 10, 0, p3, iamp, ifreq, ipan
+<emphasis role="octrl">loop_lt</emphasis> indx, 1, ininstr, <emphasis role="olabel">loop</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 10
+
+ <emphasis role="opc">print</emphasis> p4, p5, p6
+ipeak <emphasis role="opc">random</emphasis> 0, 1 <emphasis role="comment">;where is the envelope peak</emphasis>
+asig <emphasis role="opc">poscil3</emphasis> p4, p5, gisine
+aenv <emphasis role="opc">transeg</emphasis> 0, p3<emphasis role="op">*</emphasis>ipeak, 6, 1, p3<emphasis role="op">-</emphasis>p3<emphasis role="op">*</emphasis>ipeak, <emphasis role="op">-</emphasis>6, 0
+aL,aR <emphasis role="opc">pan2</emphasis> asig<emphasis role="op">*</emphasis>aenv, p6
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">i</emphasis>1 8 10
+<emphasis role="stamnt">i</emphasis>1 16 15
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/exitnow.csd.xml b/examples-xml/exitnow.csd.xml
new file mode 100644
index 0000000..bedac30
--- /dev/null
+++ b/examples-xml/exitnow.csd.xml
@@ -0,0 +1,55 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n <emphasis role="comment">;;;no sound</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o exitnow.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="comment">;after an example by Iain McCurdy</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">FLcolor</emphasis> 200, 200, 200, 0, 0, 0
+<emphasis role="comment">; LABEL | WIDTH | HEIGHT | X | Y</emphasis>
+<emphasis role="opc">FLpanel</emphasis> "rtclock", 500, 130, 0, 0
+<emphasis role="comment">; ON,OFF,TYPE,WIDTH, HEIGHT, X, Y, OPCODE, INS,START,IDUR</emphasis>
+gkOnOff,ihOnOff <emphasis role="opc">FLbutton</emphasis> "On<emphasis role="op">/</emphasis>Off", 1, 0, 22, 150, 25, 5, 5, 0, 1, 0, 3600
+gkExit,ihExit <emphasis role="opc">FLbutton</emphasis> "exitnow",1, 0, 21, 150, 25, 345, 5, 0, 999, 0, 0.001
+<emphasis role="opc">FLsetColor2</emphasis> 255, 0, 50, ihOnOff <emphasis role="comment">;reddish color</emphasis>
+
+<emphasis role="comment">;VALUE DISPLAY BOXES WIDTH,HEIGHT,X, Y</emphasis>
+gidclock <emphasis role="opc">FLvalue</emphasis> "clock", 100, 25, 200, 60
+<emphasis role="opc">FLsetVal_i</emphasis> 1, ihOnOff
+<emphasis role="opc">FLpanel_end</emphasis>
+<emphasis role="opc">FLrun</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="octrl">if</emphasis> gkOnOff <emphasis role="op">!=</emphasis>0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">CONTINUE</emphasis> <emphasis role="comment">;sense if FLTK on/off switch is not off (in which case skip the next line) </emphasis>
+<emphasis role="opc">turnoff</emphasis> <emphasis role="comment">;turn this instr. off now</emphasis>
+<emphasis role="olabel">CONTINUE</emphasis><emphasis role="op">:</emphasis>
+ktime <emphasis role="opc">rtclock</emphasis> <emphasis role="comment">;clock continues to run even </emphasis>
+<emphasis role="opc">FLprintk2</emphasis> ktime, gidclock <emphasis role="comment">;after the on/off button was used to stop</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 999
+
+<emphasis role="opc">exitnow</emphasis> <emphasis role="comment">;exit Csound as fast as possible</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis> 0 60 <emphasis role="comment">;runs 60 seconds</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/exprandi.csd.xml b/examples-xml/exprandi.csd.xml
new file mode 100644
index 0000000..21c251f
--- /dev/null
+++ b/examples-xml/exprandi.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o exprand.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+klambda <emphasis role="opc">exprandi</emphasis> 20, 1, 3
+ <emphasis role="opc">printk2</emphasis> klambda <emphasis role="comment">; look</emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>klambda, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 4
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/expsegb.csd.xml b/examples-xml/expsegb.csd.xml
new file mode 100644
index 0000000..c01b3d3
--- /dev/null
+++ b/examples-xml/expsegb.csd.xml
@@ -0,0 +1,51 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in</emphasis>
+-odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o expseg.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="comment">; Initialize the global variables.</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">; Instrument #1.</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+ <emphasis role="comment">; p4 = frequency in pitch-class notation.</emphasis>
+ kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+
+ <emphasis role="comment">; Create an amplitude envelope.</emphasis>
+ kenv <emphasis role="opc">expsegb</emphasis> 0.01, p3<emphasis role="op">*</emphasis>0.25, 1, p3, 0.01
+ kamp <emphasis role="op">=</emphasis> kenv <emphasis role="op">*</emphasis> 30000
+
+ a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, 1
+ <emphasis role="opc">out</emphasis> a1
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+
+<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.00</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0.5 8.00
+<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.01</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 1 0.5 8.01
+<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.02</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 2 0.5 8.02
+<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.03</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 0.5 8.03
+<emphasis role="stamnt">e</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/expsegba.csd.xml b/examples-xml/expsegba.csd.xml
new file mode 100644
index 0000000..3f686d8
--- /dev/null
+++ b/examples-xml/expsegba.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in No messages</emphasis>
+-odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o expsega.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="comment">; Initialize the global variables.</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">; Instrument #1.</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+ <emphasis role="comment">; Define a short percussive amplitude envelope that</emphasis>
+ <emphasis role="comment">; goes from 0.01 to 20,000 and back.</emphasis>
+ aenv <emphasis role="opc">expsegba</emphasis> 0.01, 0.1, 20000, 0.2, 0.01
+
+ a1 <emphasis role="opc">oscil</emphasis> aenv, 440, 1
+ <emphasis role="opc">out</emphasis> a1
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+
+<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 1 1
+<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 2 1
+<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 1
+<emphasis role="stamnt">e</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fareyleni.csd.xml b/examples-xml/fareyleni.csd.xml
new file mode 100644
index 0000000..8b30618
--- /dev/null
+++ b/examples-xml/fareyleni.csd.xml
@@ -0,0 +1,90 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc for RT audio input as well </emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o fareyleni.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+ <emphasis role="comment">; initialise integer n for Farey Sequence F_8</emphasis>
+ gifarn <emphasis role="opc">init</emphasis> 8
+
+ <emphasis role="comment">; calculate length of F_8, it should return 23 for |F_8|</emphasis>
+ gires <emphasis role="opc">fareyleni</emphasis> gifarn
+
+ <emphasis role="comment">; convert to negative number for the GEN routine because</emphasis>
+ <emphasis role="comment">; the table length won't be a power of 2 </emphasis>
+ <emphasis role="comment">; (The length of a Farey Sequence of n > 1 is always an odd number)</emphasis>
+ gilen <emphasis role="opc">init</emphasis> gires <emphasis role="op">*</emphasis> <emphasis role="op">-</emphasis>1
+
+ <emphasis role="comment">; create F_8 with GENfarey, the negative table number prevents </emphasis>
+ <emphasis role="comment">; unnecessary normalisation (F_8 IS already normalised)</emphasis>
+ <emphasis role="comment">; n mode: </emphasis>
+ gifarey <emphasis role="ohdr">ftgen</emphasis> 100, 0, gilen, "farey", gifarn, 4
+ <emphasis role="comment">; if mode=4 then 1 is added to each element of F_n.</emphasis>
+ <emphasis role="comment">; Useful for creating just tuning tables that can be read by the cps2pch opcode.</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+ <emphasis role="comment">; the very last element of F_n is not needed in the case of tuning tables</emphasis>
+ ires <emphasis role="op">=</emphasis> gires <emphasis role="op">-</emphasis> 1
+ <emphasis role="comment">; read out and print to file</emphasis>
+ kndx <emphasis role="opc">init</emphasis> 0
+ <emphasis role="octrl">if</emphasis> (kndx <emphasis role="op">&lt;</emphasis> ires) then
+ kelem <emphasis role="opc">tab</emphasis> kndx, gifarey
+ <emphasis role="opc">fprintks</emphasis> "farey8_tuning.txt", "<emphasis role="op">%</emphasis>2.6f\\n", kelem
+ kndx <emphasis role="op">=</emphasis> kndx<emphasis role="op">+</emphasis>1
+ <emphasis role="octrl">endif</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ip <emphasis role="opc">cps2pch</emphasis> p4, <emphasis role="op">-</emphasis>100
+asig <emphasis role="opc">poscil</emphasis> .5, ip, 1
+aenv <emphasis role="opc">linseg</emphasis> 0, 0.1, 1, p3<emphasis role="op">-</emphasis>0.2, 1, 0.1, 0
+ <emphasis role="opc">outs</emphasis> asig <emphasis role="op">*</emphasis> aenv, asig <emphasis role="op">*</emphasis> aenv
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 .1
+
+<emphasis role="stamnt">i</emphasis>2 1 .5 8.00
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + . >
+<emphasis role="stamnt">i</emphasis>2 + 1 8.22
+
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ficlose.csd.xml b/examples-xml/ficlose.csd.xml
new file mode 100644
index 0000000..25570a6
--- /dev/null
+++ b/examples-xml/ficlose.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o ficlose.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gihand <emphasis role="opc">fiopen</emphasis> "test1.txt", 0
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ires <emphasis role="opc">random</emphasis> 0, 100
+ <emphasis role="opc">fouti</emphasis> gihand, 0, 1, ires
+ <emphasis role="opc">ficlose</emphasis> gihand
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+
+<emphasis role="stamnt">i</emphasis> 1 0 1
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/filelen.csd.xml b/examples-xml/filelen.csd.xml
index ac66007..6dfd6e7 100644
--- a/examples-xml/filelen.csd.xml
+++ b/examples-xml/filelen.csd.xml
@@ -2,36 +2,45 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">;-odac ;;;realtime audio out</emphasis>
+-iadc <emphasis role="comment">;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o filelen.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">;-o filelen.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Print out the length of the audio file </emphasis>
- <emphasis role="comment">; "mary.wav" in seconds. </emphasis>
- ilen <emphasis role="opc">filelen</emphasis> "mary.wav"
- <emphasis role="opc">print</emphasis> ilen
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; choose between mono or stereo file</emphasis>
+
+ilen <emphasis role="opc">filelen</emphasis> p4 <emphasis role="comment">;calculate length of soundfile</emphasis>
+<emphasis role="opc">print</emphasis> ilen
+ichn <emphasis role="opc">filenchnls</emphasis> p4 <emphasis role="comment">;check number of channels</emphasis>
+<emphasis role="comment">;print ichn</emphasis>
+
+<emphasis role="octrl">if</emphasis> (ichn <emphasis role="op">==</emphasis> 1) then
+<emphasis role="comment">;mono signal</emphasis>
+asig <emphasis role="opc">diskin2</emphasis> p4, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="octrl">else</emphasis>
+<emphasis role="comment">;stereo signal</emphasis>
+aL, aR <emphasis role="opc">diskin2</emphasis> p4, .5, 0, 1
+ <emphasis role="opc">outs</emphasis> aL, aR
+<emphasis role="octrl">endif</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 1 second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 3 "fox.wav" <emphasis role="comment">;mono signal</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 5 2 "k<emphasis role="stamnt">i</emphasis>ckroll.wav" <emphasis role="comment">;stereo signal</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/filenchnls.csd.xml b/examples-xml/filenchnls.csd.xml
index 021b69a..2be6e27 100644
--- a/examples-xml/filenchnls.csd.xml
+++ b/examples-xml/filenchnls.csd.xml
@@ -2,36 +2,45 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">;-odac ;;;realtime audio out</emphasis>
+-iadc <emphasis role="comment">;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o filenchnls.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">;-o filechnls.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Print out the number of channels in the </emphasis>
- <emphasis role="comment">; audio file "mary.wav".</emphasis>
- ichnls <emphasis role="opc">filenchnls</emphasis> "mary.wav"
- <emphasis role="opc">print</emphasis> ichnls
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; choose between mono or stereo file</emphasis>
+
+ilen <emphasis role="opc">filelen</emphasis> p4 <emphasis role="comment">;calculate length of soundfile</emphasis>
+<emphasis role="comment">;print ilen</emphasis>
+ichn <emphasis role="opc">filenchnls</emphasis> p4 <emphasis role="comment">;check number of channels</emphasis>
+<emphasis role="opc">print</emphasis> ichn
+
+<emphasis role="octrl">if</emphasis> (ichn <emphasis role="op">==</emphasis> 1) then
+<emphasis role="comment">;mono signal</emphasis>
+asig <emphasis role="opc">diskin2</emphasis> p4, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="octrl">else</emphasis>
+<emphasis role="comment">;stereo signal</emphasis>
+aL, aR <emphasis role="opc">diskin2</emphasis> p4, .5, 0, 1
+ <emphasis role="opc">outs</emphasis> aL, aR
+<emphasis role="octrl">endif</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 1 second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 3 "fox.wav" <emphasis role="comment">;mono signal</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 5 2 "k<emphasis role="stamnt">i</emphasis>ckroll.wav" <emphasis role="comment">;stereo signal</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/filepeak.csd.xml b/examples-xml/filepeak.csd.xml
index 1e5152d..30f3e75 100644
--- a/examples-xml/filepeak.csd.xml
+++ b/examples-xml/filepeak.csd.xml
@@ -2,36 +2,47 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o filepeak.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Print out the peak absolute value of the</emphasis>
- <emphasis role="comment">; audio file "mary.wav".</emphasis>
- ipeak <emphasis role="opc">filepeak</emphasis> "mary.wav"
- <emphasis role="opc">print</emphasis> ipeak
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+iscaldb <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;set peak amplitude in dB</emphasis>
+ipeak <emphasis role="opc">filepeak</emphasis> "Church.wav"
+iscal <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(iscaldb)<emphasis role="op">/</emphasis>ipeak <emphasis role="comment">;calculate amp multiplier</emphasis>
+<emphasis role="opc">printf_i</emphasis> "\nPeak value <emphasis role="opc">in</emphasis> file '<emphasis role="op">%</emphasis>s' is <emphasis role="op">%</emphasis>f (<emphasis role="op">%</emphasis>.3f dB).\n\n", 1, "Church.wav", ipeak, <emphasis role="opc">dbamp</emphasis>(ipeak)
+
+asnd <emphasis role="opc">soundin</emphasis> "Church.wav"
+ <emphasis role="opc">outs</emphasis> asnd, asnd
+<emphasis role="comment">; scale &amp; write file to disk</emphasis>
+asig <emphasis role="op">=</emphasis> asnd<emphasis role="op">*</emphasis>iscal <emphasis role="comment">;scale to p4</emphasis>
+<emphasis role="opc">fout</emphasis> "Church_norm.wav", 14, asig
+
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; play scaled file</emphasis>
+aout <emphasis role="opc">soundin</emphasis> "Church_norm.wav"
+ipknew <emphasis role="opc">filepeak</emphasis> "Church_norm.wav"
+<emphasis role="opc">printf_i</emphasis> "\nPeak value <emphasis role="opc">in</emphasis> file '<emphasis role="op">%</emphasis>s' is <emphasis role="op">%</emphasis>f (<emphasis role="op">%</emphasis>.3f dB).\n\n", 1, "Church_norm.wav", ipknew, <emphasis role="opc">dbamp</emphasis>(ipknew)
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 1 second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 2 -6 <emphasis role="comment">; normalize audio to -6 dB</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 2 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/filesr.csd.xml b/examples-xml/filesr.csd.xml
index cd54c67..d729504 100644
--- a/examples-xml/filesr.csd.xml
+++ b/examples-xml/filesr.csd.xml
@@ -1,37 +1,43 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o filesr.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Print out the sampling rate of the </emphasis>
- <emphasis role="comment">; audio file "mary.wav".</emphasis>
- isr <emphasis role="opc">filesr</emphasis> "mary.wav"
- <emphasis role="opc">print</emphasis> isr
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="comment">;after an example from Jonathan Murphy</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">;load sound into an ftable</emphasis>
+ Sfile <emphasis role="opc">strcpy</emphasis> "beats.wav"
+ ilen <emphasis role="opc">filelen</emphasis> Sfile
+ isr <emphasis role="opc">filesr</emphasis> Sfile
+ isamps <emphasis role="op">=</emphasis> ilen <emphasis role="op">*</emphasis> isr
+<emphasis role="comment">;adjust the length of the table to be a power of two closest</emphasis>
+<emphasis role="comment">;to the actual size of the sound </emphasis>
+ isize <emphasis role="opc">init</emphasis> 1
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+ isize <emphasis role="op">=</emphasis> isize <emphasis role="op">*</emphasis> 2
+ <emphasis role="octrl">if</emphasis> (isize <emphasis role="op">&lt;</emphasis> isamps) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">loop</emphasis>
+ itab <emphasis role="ohdr">ftgen</emphasis> 0, 0, isize, 1, Sfile, 0, 0, 0
+<emphasis role="opc">prints</emphasis> "sample rate <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, size <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", isr, isize <emphasis role="comment">;prints them</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Play Instrument #1 for 1 second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">e</emphasis>
-
-
+
+<emphasis role="stamnt">i</emphasis>1 0 2
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/filevalid.csd.xml b/examples-xml/filevalid.csd.xml
index 0e2a5af..42e897d 100644
--- a/examples-xml/filevalid.csd.xml
+++ b/examples-xml/filevalid.csd.xml
@@ -2,35 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o filelen.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">;-o filevalid.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Check that the audio file "mary.wav" is avalable</emphasis>
- ivld <emphasis role="opc">filevalid</emphasis> "mary.wav"
- <emphasis role="opc">print</emphasis> ivld
-<emphasis role="oblock">endin</emphasis>
+Sfile <emphasis role="opc">strget</emphasis> p4
+ivld <emphasis role="opc">filevalid</emphasis> Sfile
+<emphasis role="octrl">if</emphasis> ivld<emphasis role="op">></emphasis>0 then
+asig <emphasis role="opc">diskin2</emphasis> Sfile, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="octrl">else</emphasis>
+ <emphasis role="opc">printf_i</emphasis> "Audiofile '<emphasis role="op">%</emphasis>s' does not exist!\n", 1, Sfile
+<emphasis role="octrl">endif</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 0.1 second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 0.1
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 3 "frox.wav"<emphasis role="comment">;file does not exist!!!</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 "fox.wav" <emphasis role="comment">;but this one certainly does...</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fill.csd.xml b/examples-xml/fill.csd.xml
new file mode 100644
index 0000000..f4dffbf
--- /dev/null
+++ b/examples-xml/fill.csd.xml
@@ -0,0 +1,28 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ kS[] fill 1,7,5
+ <emphasis role="opc">printk2</emphasis> kS[0]
+ <emphasis role="opc">printk2</emphasis> kS[1]
+ <emphasis role="opc">printk2</emphasis> kS[2]
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fillarray.csd.xml b/examples-xml/fillarray.csd.xml
new file mode 100644
index 0000000..59a6df7
--- /dev/null
+++ b/examples-xml/fillarray.csd.xml
@@ -0,0 +1,28 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ kS[] <emphasis role="opc">fillarray</emphasis> 1,7,5
+ <emphasis role="opc">printk2</emphasis> kS[0]
+ <emphasis role="opc">printk2</emphasis> kS[1]
+ <emphasis role="opc">printk2</emphasis> kS[2]
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/filter2.csd.xml b/examples-xml/filter2.csd.xml
new file mode 100644
index 0000000..0cb47e7
--- /dev/null
+++ b/examples-xml/filter2.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o filter2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; 2 saw waves of which one is slightly detuned</emphasis>
+
+ib1 <emphasis role="op">=</emphasis> p5
+ivol <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;volume to compensate </emphasis>
+kcps <emphasis role="opc">init</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+asig1 <emphasis role="opc">vco2</emphasis> .05, kcps <emphasis role="comment">;saw 1</emphasis>
+asaw1 <emphasis role="opc">filter2</emphasis> asig1, 1, 1, 1, ib1 <emphasis role="comment">;filter 1 </emphasis>
+asig2 <emphasis role="opc">vco2</emphasis> .05, kcps<emphasis role="op">+</emphasis>1 <emphasis role="comment">;saw 2 </emphasis>
+asaw2 <emphasis role="opc">filter2</emphasis> asig2, 1, 1, 1, ib1 <emphasis role="comment">;filter 2</emphasis>
+aout <emphasis role="op">=</emphasis> (asaw1<emphasis role="op">+</emphasis>asaw2)<emphasis role="op">*</emphasis>ivol <emphasis role="comment">;mix</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 4 6.00 -.001 5 <emphasis role="comment">;different filter values</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 4 6.00 -.6 2 <emphasis role="comment">;and different volumes</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 4 6.00 -.95 .3 <emphasis role="comment">;to compensate</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fin.csd.xml b/examples-xml/fin.csd.xml
new file mode 100644
index 0000000..d08a84a
--- /dev/null
+++ b/examples-xml/fin.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o fin.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asnd <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">;input of fin must be initialized</emphasis>
+ <emphasis role="opc">fin</emphasis> "fox.wav", 0, 0, asnd <emphasis role="comment">;read audiofile</emphasis>
+aenv <emphasis role="opc">follow</emphasis> asnd, 0.01 <emphasis role="comment">;envelope follower</emphasis>
+kenv <emphasis role="opc">downsamp</emphasis> aenv
+asig <emphasis role="opc">rand</emphasis> kenv <emphasis role="comment">;gate the noise with audiofile</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fiopen.csd.xml b/examples-xml/fiopen.csd.xml
new file mode 100644
index 0000000..3944cd3
--- /dev/null
+++ b/examples-xml/fiopen.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o fiopen.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gihand <emphasis role="opc">fiopen</emphasis> "test1.txt", 0
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ires <emphasis role="opc">random</emphasis> 0, 100
+ <emphasis role="opc">fouti</emphasis> gihand, 0, 1, ires
+ <emphasis role="opc">ficlose</emphasis> gihand
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+
+<emphasis role="stamnt">i</emphasis> 1 0 1
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/flanger.csd.xml b/examples-xml/flanger.csd.xml
index feca945..00a846b 100644
--- a/examples-xml/flanger.csd.xml
+++ b/examples-xml/flanger.csd.xml
@@ -2,45 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o flanger.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">;-o flanger.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use the "beat.wav" audio file.</emphasis>
- asig <emphasis role="opc">soundin</emphasis> "beats.wav"
- <emphasis role="comment">; Vary the delay amount from 0 to 0.01 seconds.</emphasis>
- adel <emphasis role="opc">line</emphasis> 0, p3, 0.01
- kfeedback <emphasis role="op">=</emphasis> 0.7
+kfeedback <emphasis role="op">=</emphasis> p4
+asnd <emphasis role="opc">vco2</emphasis> .2, 50
+adel <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 0.02, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;max delay time =20ms </emphasis>
+aflg <emphasis role="opc">flanger</emphasis> asnd, adel, kfeedback
+asig <emphasis role="opc">clip</emphasis> aflg, 1, 1
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">+</emphasis>asnd, asig<emphasis role="op">+</emphasis>asnd <emphasis role="comment">;mix flanger with original</emphasis>
- <emphasis role="comment">; Apply flange to the input signal.</emphasis>
- aflang <emphasis role="opc">flanger</emphasis> asig, adel, kfeedback
-
- <emphasis role="comment">; It can get loud, so clip its amplitude to 30,000.</emphasis>
- a1 <emphasis role="opc">clip</emphasis> aflang, 1, 30000
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 10 .2
+<emphasis role="stamnt">i</emphasis> 1 11 10 .8 <emphasis role="comment">;lot of feedback</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/flashtxt.csd.xml b/examples-xml/flashtxt.csd.xml
index 4052562..a688b10 100644
--- a/examples-xml/flashtxt.csd.xml
+++ b/examples-xml/flashtxt.csd.xml
@@ -16,7 +16,7 @@
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="opc">flashtxt</emphasis> 1, "Instr 1 live"
+ flashtxt 1, "Instr 1 live"
ao <emphasis role="opc">oscil</emphasis> 4000, 440, 1
<emphasis role="opc">out</emphasis> ao
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/flooper.csd.xml b/examples-xml/flooper.csd.xml
index 40126ee..e50213d 100644
--- a/examples-xml/flooper.csd.xml
+++ b/examples-xml/flooper.csd.xml
@@ -2,33 +2,33 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o flooper.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="oblock">instr</emphasis> 1
-kpitch <emphasis role="opc">line</emphasis> 1, p3, 4
-aout <emphasis role="opc">flooper</emphasis> 26000, kpitch, 1, .53, 0.05, 1 <emphasis role="comment">; loop starts at 1 sec, for .53 secs, 0.05 crossfade</emphasis>
- <emphasis role="opc">out</emphasis> aout
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+kpitch <emphasis role="opc">line</emphasis> 1, p3, .9 <emphasis role="comment">;lower pitch a bit during the note</emphasis>
+aout <emphasis role="opc">flooper</emphasis> .9, kpitch, 1, .53, 0.05, 1 <emphasis role="comment">; loop starts at 1 sec, for .53 secs, 0.05 crossfade</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1: an audio file.</emphasis>
-<emphasis role="comment">; Its table size is deferred,</emphasis>
-<emphasis role="comment">; and format taken from the soundfile header.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 0 1 "beats.wav" 0 0 0
+<emphasis role="comment">;table size is deferred,</emphasis>
+<emphasis role="comment">; and format taken from the soundfile header</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 0
-<emphasis role="stamnt">i</emphasis> 1 0 4
+<emphasis role="stamnt">i</emphasis> 1 0 8.2
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/flooper2.csd.xml b/examples-xml/flooper2.csd.xml
index 676f4d5..b9a72ae 100644
--- a/examples-xml/flooper2.csd.xml
+++ b/examples-xml/flooper2.csd.xml
@@ -2,33 +2,33 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o flooper2.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; looping back and forth, 0.05 crossfade</emphasis>
-aout <emphasis role="opc">flooper2</emphasis> 16000, 1, 0, 1.6, 0.05, 1, 0, 2
- <emphasis role="opc">out</emphasis> aout
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">; looping back and forth, 0.05 crossfade </emphasis>
+kst <emphasis role="opc">line</emphasis> .2, p3, 2 <emphasis role="comment">;vary loopstartpoint</emphasis>
+aout <emphasis role="opc">flooper2</emphasis> .8, 1, 0, kst, 0.05, 1, 0, 2
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1: an audio file.</emphasis>
<emphasis role="comment">; Its table size is deferred,</emphasis>
-<emphasis role="comment">; and format taken from the soundfile header.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 0 1 "beats.wav" 0 0 0
+<emphasis role="comment">; and format taken from the soundfile header</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 0
-<emphasis role="stamnt">i</emphasis> 1 0 6.5
+<emphasis role="stamnt">i</emphasis> 1 0 12
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/floor.csd.xml b/examples-xml/floor.csd.xml
index 41b9fbf..9045131 100644
--- a/examples-xml/floor.csd.xml
+++ b/examples-xml/floor.csd.xml
@@ -2,31 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o floor.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="op">=</emphasis> 6 <emphasis role="op">/</emphasis> 5
- i2 <emphasis role="op">=</emphasis> <emphasis role="opc">floor</emphasis>(i1)
- <emphasis role="opc">print</emphasis> i2
-<emphasis role="oblock">endin</emphasis>
+idiv <emphasis role="opc">init</emphasis> 1
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+inumber <emphasis role="op">=</emphasis> 9
+i1 <emphasis role="op">=</emphasis> inumber <emphasis role="op">/</emphasis> idiv
+ifl <emphasis role="op">=</emphasis> <emphasis role="opc">floor</emphasis>(i1)
+<emphasis role="opc">print</emphasis> inumber, idiv, ifl <emphasis role="comment">;print number / idiv = result using floor</emphasis>
+idiv <emphasis role="op">=</emphasis> idiv <emphasis role="op">+</emphasis> 1
+<emphasis role="octrl">if</emphasis> (idiv <emphasis role="op">&lt;=</emphasis> 10) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">loop</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 0
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/fluid-2.csd.xml b/examples-xml/fluid-2.csd.xml
index 8026bd7..224509e 100644
--- a/examples-xml/fluid-2.csd.xml
+++ b/examples-xml/fluid-2.csd.xml
@@ -2,33 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages Look for midifile in folder manual/examples</emphasis>
--odac -iadc -d -F midichn_advanced.mid <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; Audio out No messages Look for midifile in folder manual/examples</emphasis>
+-odac -d -F midichn_advanced.mid <emphasis role="comment">;;;reatime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o fluid2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o fluid-2.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 32767
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="comment">; LOAD SOUNDFONTS</emphasis>
gienginenum1 <emphasis role="opc">fluidEngine</emphasis>
gienginenum2 <emphasis role="opc">fluidEngine</emphasis>
-isfnum1 <emphasis role="opc">fluidLoad</emphasis> "Piano Steinway Grand Model C (21,738KB).sf2", gienginenum1, 1 <emphasis role="comment">; Bright Steinway, program 1, channel 1</emphasis>
- <emphasis role="opc">fluidProgramSelect</emphasis> gienginenum1, 1, isfnum1, 0, 1 <emphasis role="comment">; Concert Steinway with reverb, program 2, channel 3</emphasis>
+isfnum1 <emphasis role="opc">fluidLoad</emphasis> "Piano Steinway Grand Model C (21,738KB).sf2", gienginenum1, 1
+<emphasis role="comment">; Bright Steinway, program 1, channel 1</emphasis>
+ <emphasis role="opc">fluidProgramSelect</emphasis> gienginenum1, 1, isfnum1, 0, 1
+<emphasis role="comment">; Concert Steinway with reverb, program 2, channel 3</emphasis>
<emphasis role="opc">fluidProgramSelect</emphasis> gienginenum1, 3, isfnum1, 0, 2
-isfnum2 <emphasis role="opc">fluidLoad</emphasis> "63.3mg The Sound Site Album Bank V1.0.sf2", gienginenum2, 1 <emphasis role="comment">; General MIDI, program 50, channel 2</emphasis>
+isfnum2 <emphasis role="opc">fluidLoad</emphasis> "63.3mg The Sound Site Album Bank V1.0.SF2", gienginenum2, 1
+<emphasis role="comment">; General MIDI, program 50, channel 2</emphasis>
<emphasis role="opc">fluidProgramSelect</emphasis> gienginenum2, 2, isfnum2, 0, 50
<emphasis role="comment">; SEND NOTES TO STEINWAY SOUNDFONT</emphasis>
<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; FluidSynth Steinway Rev</emphasis>
<emphasis role="comment">; INITIALIZATION</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3 <emphasis role="comment">; Default duration of 60 -- overridden by score.</emphasis>
+ <emphasis role="opc">mididefault</emphasis> 60, p3 <emphasis role="comment">; Default duration of 60 -- overridden by score.</emphasis>
<emphasis role="opc">midinoteonkey</emphasis> p4, p5 <emphasis role="comment">; Channels MIDI input to pfields.</emphasis>
<emphasis role="comment">; Use channel assigned in fluidload.</emphasis>
ichannel <emphasis role="op">=</emphasis> 1
@@ -39,33 +42,32 @@ isfnum2 <emphasis role="opc">fluidLoad</emphasis> "63.3mg The Sound Site Album B
<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; GM soundfont</emphasis>
<emphasis role="comment">; INITIALIZATION</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3 <emphasis role="comment">; Default duration of 60 -- overridden by score.</emphasis>
- <emphasis role="opc">midinoteonkey</emphasis> p4, p5 <emphasis role="comment">; Channels MIDI input to pfields.</emphasis>
+ <emphasis role="opc">mididefault</emphasis> 60, p3 <emphasis role="comment">; Default duration of 60 -- overridden by score.</emphasis>
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5 <emphasis role="comment">; Channels MIDI input to pfields.</emphasis>
<emphasis role="comment">; Use channel assigned in fluidload.</emphasis>
ichannel <emphasis role="op">=</emphasis> 2
ikey <emphasis role="op">=</emphasis> p4
ivelocity <emphasis role="op">=</emphasis> p5
- <emphasis role="opc">fluidNote</emphasis> gienginenum2, ichannel, ikey, ivelocity
+ <emphasis role="opc">fluidNote</emphasis> gienginenum2, ichannel, ikey, ivelocity
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 3 <emphasis role="comment">; FluidSynth Steinway Rev</emphasis>
<emphasis role="comment">; INITIALIZATION</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3 <emphasis role="comment">; Default duration of 60 -- overridden by score.</emphasis>
- <emphasis role="opc">midinoteonkey</emphasis> p4, p5 <emphasis role="comment">; Channels MIDI input to pfields.</emphasis>
+ <emphasis role="opc">mididefault</emphasis> 60, p3 <emphasis role="comment">; Default duration of 60 -- overridden by score.</emphasis>
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5 <emphasis role="comment">; Channels MIDI input to pfields.</emphasis>
<emphasis role="comment">; Use channel assigned in fluidload.</emphasis>
ichannel <emphasis role="op">=</emphasis> 3
ikey <emphasis role="op">=</emphasis> p4
ivelocity <emphasis role="op">=</emphasis> p5
- <emphasis role="opc">fluidNote</emphasis> gienginenum1, ichannel, ikey, ivelocity
+ <emphasis role="opc">fluidNote</emphasis> gienginenum1, ichannel, ikey, ivelocity
<emphasis role="oblock">endin</emphasis>
<emphasis role="comment">; COLLECT AUDIO FROM ALL SOUNDFONTS</emphasis>
<emphasis role="oblock">instr</emphasis> 100 <emphasis role="comment">; Fluidsynth output</emphasis>
- <emphasis role="comment">; INITIALIZATION</emphasis>
- <emphasis role="comment">; Normalize so iamplitude for p5 of 80 == ampdb(80).</emphasis>
- iamplitude1 <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(p4) <emphasis role="op">*</emphasis> 100000
- iamplitude2 <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(p5) <emphasis role="op">*</emphasis> 100000
+
+ iamplitude1 <emphasis role="op">=</emphasis> 7
+ iamplitude2 <emphasis role="op">=</emphasis> 7
<emphasis role="comment">; AUDIO</emphasis>
aleft1, aright1 <emphasis role="opc">fluidOut</emphasis> gienginenum1
@@ -73,16 +75,14 @@ aleft2, aright2 <emphasis role="opc">fluidOut</emphasis> gienginenum2
<emphasis role="opc">outs</emphasis> (aleft1 <emphasis role="op">*</emphasis> iamplitude1) <emphasis role="op">+</emphasis> (aleft2 <emphasis role="op">*</emphasis> iamplitude2), \
(aright1 <emphasis role="op">*</emphasis> iamplitude1) <emphasis role="op">+</emphasis> (aright2 <emphasis role="op">*</emphasis> iamplitude2)
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 36 60 100
-<emphasis role="stamnt">i</emphasis> 2 1 36 60 100
-<emphasis role="stamnt">i</emphasis> 3 3 36 63 100
-<emphasis role="stamnt">i</emphasis> 100 0 40 8 8
-<emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 3 60 100
+<emphasis role="stamnt">i</emphasis> 2 1 3 60 100
+<emphasis role="stamnt">i</emphasis> 3 3 3 63 100
+<emphasis role="stamnt">i</emphasis> 100 0 10 <emphasis role="comment">;run for 10seconds </emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fluidAllOut.csd.xml b/examples-xml/fluidAllOut.csd.xml
new file mode 100644
index 0000000..67273d8
--- /dev/null
+++ b/examples-xml/fluidAllOut.csd.xml
@@ -0,0 +1,62 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o fluidAllOut.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giengine1 <emphasis role="opc">fluidEngine</emphasis>
+isfnum1 <emphasis role="opc">fluidLoad</emphasis> "sf_GMbank.sf2", giengine1, 1
+ <emphasis role="opc">fluidProgramSelect</emphasis> giengine1, 1, isfnum1, 0, 0
+
+giengine2 <emphasis role="opc">fluidEngine</emphasis>
+<emphasis role="comment">; soundfont path to manual/examples</emphasis>
+isfnum2 <emphasis role="opc">fluidLoad</emphasis> "22Bassoon.sf2", giengine2, 1
+ <emphasis role="opc">fluidProgramSelect</emphasis> giengine2, 1, isfnum2, 0, 70
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ <emphasis role="opc">fluidNote</emphasis> giengine1, 1, ikey, ivel
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ <emphasis role="opc">fluidNote</emphasis> giengine2, 1, ikey, ivel
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 100
+
+imvol <emphasis role="opc">init</emphasis> 7 <emphasis role="comment">;amplify a bit</emphasis>
+asigl, asigr <emphasis role="opc">fluidAllOut</emphasis>
+ <emphasis role="opc">outs</emphasis> asigl<emphasis role="op">*</emphasis>imvol, asigr<emphasis role="op">*</emphasis>imvol
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 60 127 <emphasis role="comment">;play one note on instr 1</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 2 2 60 127 <emphasis role="comment">;play another note on instr 2 and...</emphasis>
+<emphasis role="stamnt">i</emphasis> 100 0 60 <emphasis role="comment">;play virtual midi keyboard</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fluidCCi.csd.xml b/examples-xml/fluidCCi.csd.xml
new file mode 100644
index 0000000..1669263
--- /dev/null
+++ b/examples-xml/fluidCCi.csd.xml
@@ -0,0 +1,50 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o fluidCCi.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giengine <emphasis role="opc">fluidEngine</emphasis>
+<emphasis role="comment">; soundfont path to manual/examples</emphasis>
+isfnum <emphasis role="opc">fluidLoad</emphasis> "19Trumpet.sf2", giengine, 1
+ <emphasis role="opc">fluidProgramSelect</emphasis> giengine, 1, isfnum, 0, 56
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ <emphasis role="opc">fluidCCi</emphasis> giengine, 1, 93, 127 <emphasis role="comment">;full chorus &amp;</emphasis>
+ <emphasis role="opc">fluidCCi</emphasis> giengine, 1, 91, 127 <emphasis role="comment">;full reverb!</emphasis>
+ <emphasis role="opc">fluidNote</emphasis> giengine, 1, ikey, ivel
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99
+
+imvol <emphasis role="opc">init</emphasis> 7
+asigl, asigr <emphasis role="opc">fluidOut</emphasis> giengine
+ <emphasis role="opc">outs</emphasis> asigl<emphasis role="op">*</emphasis>imvol, asigr<emphasis role="op">*</emphasis>imvol
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 5 60 100 <emphasis role="comment">;play one note from score and...</emphasis>
+<emphasis role="stamnt">i</emphasis> 99 0 60 <emphasis role="comment">;play virtual keyboard for 60 sec.</emphasis>
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fluidCCk.csd.xml b/examples-xml/fluidCCk.csd.xml
new file mode 100644
index 0000000..ec0198c
--- /dev/null
+++ b/examples-xml/fluidCCk.csd.xml
@@ -0,0 +1,54 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o fluidCCk.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giengine <emphasis role="opc">fluidEngine</emphasis>
+<emphasis role="comment">; soundfont path to manual/examples</emphasis>
+isfnum <emphasis role="opc">fluidLoad</emphasis> "22Bassoon.sf2", giengine, 1
+ <emphasis role="opc">fluidProgramSelect</emphasis> giengine, 1, isfnum, 0, 70
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+kpan <emphasis role="opc">line</emphasis> 0, p3, 127 <emphasis role="comment">;panning from left to right</emphasis>
+ <emphasis role="opc">fluidCCk</emphasis> giengine, 1, 10, kpan <emphasis role="comment">;CC 10 = pan</emphasis>
+ <emphasis role="opc">fluidNote</emphasis> giengine, 1, ikey, ivel
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99
+
+imvol <emphasis role="opc">init</emphasis> 7
+asigl, asigr <emphasis role="opc">fluidOut</emphasis> giengine
+ <emphasis role="opc">outs</emphasis> asigl<emphasis role="op">*</emphasis>imvol, asigr<emphasis role="op">*</emphasis>imvol
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 4 48 100
+<emphasis role="stamnt">i</emphasis> 1 4 2 50 120
+<emphasis role="stamnt">i</emphasis> 1 6 1 53 80
+<emphasis role="stamnt">i</emphasis> 1 7 1 45 70
+<emphasis role="stamnt">i</emphasis> 1 8 1.5 48 80
+
+<emphasis role="stamnt">i</emphasis> 99 0 10 <emphasis role="comment">;keep instr 99 active</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fluidEngine.csd.xml b/examples-xml/fluidEngine.csd.xml
new file mode 100644
index 0000000..2238b49
--- /dev/null
+++ b/examples-xml/fluidEngine.csd.xml
@@ -0,0 +1,88 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -F midichn_advanced.mid <emphasis role="comment">;;;reatime audio out and midifile in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o fluidEngine.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">; LOAD SOUNDFONTS</emphasis>
+gienginenum1 <emphasis role="opc">fluidEngine</emphasis>
+gienginenum2 <emphasis role="opc">fluidEngine</emphasis>
+isfnum1 <emphasis role="opc">fluidLoad</emphasis> "sf_GMbank.sf2", gienginenum1, 1
+ <emphasis role="comment">; Piano 2, program 1, channel 1</emphasis>
+ <emphasis role="opc">fluidProgramSelect</emphasis> gienginenum1, 1, isfnum1, 0, 1
+ <emphasis role="comment">; Piano 3, program 2, channel 2</emphasis>
+ <emphasis role="opc">fluidProgramSelect</emphasis> gienginenum1, 2, isfnum1, 0, 2
+isfnum2 <emphasis role="opc">fluidLoad</emphasis> "19Trumpet.sf2", gienginenum2, 1
+ <emphasis role="comment">; Trumpet, program 56, channel 3</emphasis>
+ <emphasis role="opc">fluidProgramSelect</emphasis> gienginenum2, 3, isfnum2, 0, 56
+
+<emphasis role="comment">;Look for midifile in folder manual/examples</emphasis>
+<emphasis role="comment">;"midichn_advanced.mid" sends notes to the soundfonts</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; GM soundfont</emphasis>
+ <emphasis role="comment">; INITIALIZATION</emphasis>
+ <emphasis role="opc">mididefault</emphasis> 60, p3 <emphasis role="comment">; Default duration of 60 -- overridden by score.</emphasis>
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5 <emphasis role="comment">; Channels MIDI input to pfields.</emphasis>
+ <emphasis role="comment">; Use channel assigned in fluidload.</emphasis>
+ ichannel <emphasis role="op">=</emphasis> 1
+ ikey <emphasis role="op">=</emphasis> p4
+ ivelocity <emphasis role="op">=</emphasis> p5
+ <emphasis role="opc">fluidNote</emphasis> gienginenum1, ichannel, ikey, ivelocity
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; GM soundfont</emphasis>
+ <emphasis role="comment">; INITIALIZATION</emphasis>
+ <emphasis role="opc">mididefault</emphasis> 60, p3 <emphasis role="comment">; Default duration of 60 -- overridden by score.</emphasis>
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5 <emphasis role="comment">; Channels MIDI input to pfields.</emphasis>
+ <emphasis role="comment">; Use channel assigned in fluidload.</emphasis>
+ ichannel <emphasis role="op">=</emphasis> 2
+ ikey <emphasis role="op">=</emphasis> p4
+ ivelocity <emphasis role="op">=</emphasis> p5
+ <emphasis role="opc">fluidNote</emphasis> gienginenum1, ichannel, ikey, ivelocity
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 3 <emphasis role="comment">; Trumpet</emphasis>
+ <emphasis role="comment">; INITIALIZATION</emphasis>
+ <emphasis role="opc">mididefault</emphasis> 60, p3 <emphasis role="comment">; Default duration of 60 -- overridden by score.</emphasis>
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5 <emphasis role="comment">; Channels MIDI input to pfields.</emphasis>
+ <emphasis role="comment">; Use channel assigned in fluidload.</emphasis>
+ ichannel <emphasis role="op">=</emphasis> 3
+ ikey <emphasis role="op">=</emphasis> p4
+ ivelocity <emphasis role="op">=</emphasis> p5
+ <emphasis role="opc">fluidNote</emphasis> gienginenum2, ichannel, ikey, ivelocity
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="comment">; COLLECT AUDIO FROM ALL SOUNDFONTS</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 100 <emphasis role="comment">; Fluidsynth output</emphasis>
+
+ iamplitude1 <emphasis role="op">=</emphasis> 7
+ iamplitude2 <emphasis role="op">=</emphasis> 7
+
+<emphasis role="comment">; AUDIO</emphasis>
+aleft1, aright1 <emphasis role="opc">fluidOut</emphasis> gienginenum1
+aleft2, aright2 <emphasis role="opc">fluidOut</emphasis> gienginenum2
+ <emphasis role="opc">outs</emphasis> (aleft1 <emphasis role="op">*</emphasis> iamplitude1) <emphasis role="op">+</emphasis> (aleft2 <emphasis role="op">*</emphasis> iamplitude2), \
+ (aright1 <emphasis role="op">*</emphasis> iamplitude1) <emphasis role="op">+</emphasis> (aright2 <emphasis role="op">*</emphasis> iamplitude2)
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3 60 100
+<emphasis role="stamnt">i</emphasis> 2 1 3 60 100
+<emphasis role="stamnt">i</emphasis> 3 3 3 63 100
+<emphasis role="stamnt">i</emphasis> 100 0 10 <emphasis role="comment">;run for 10 seconds </emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fluidLoad.csd.xml b/examples-xml/fluidLoad.csd.xml
new file mode 100644
index 0000000..ddb07fd
--- /dev/null
+++ b/examples-xml/fluidLoad.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o fluidLoad.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giengine <emphasis role="opc">fluidEngine</emphasis>
+<emphasis role="comment">; soundfont path to manual/examples</emphasis>
+isfnum <emphasis role="opc">fluidLoad</emphasis> "07AcousticGuitar.sf2", giengine, 1
+ <emphasis role="opc">fluidProgramSelect</emphasis> giengine, 1, isfnum, 0, 0
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ <emphasis role="opc">fluidNote</emphasis> giengine, 1, ikey, ivel
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99
+
+imvol <emphasis role="opc">init</emphasis> 7
+asigl, asigr <emphasis role="opc">fluidOut</emphasis> giengine
+ <emphasis role="opc">outs</emphasis> asigl<emphasis role="op">*</emphasis>imvol, asigr<emphasis role="op">*</emphasis>imvol
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 60 100 <emphasis role="comment">;play one note from score and...</emphasis>
+<emphasis role="stamnt">i</emphasis> 99 0 60 <emphasis role="comment">;play virtual keyboard for 60 sec.</emphasis>
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fluidNote.csd.xml b/examples-xml/fluidNote.csd.xml
new file mode 100644
index 0000000..9e25752
--- /dev/null
+++ b/examples-xml/fluidNote.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o fluidNote.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giengine <emphasis role="opc">fluidEngine</emphasis>
+<emphasis role="comment">; soundfont path to manual/examples</emphasis>
+isfnum <emphasis role="opc">fluidLoad</emphasis> "19Trumpet.sf2", giengine, 1
+ <emphasis role="opc">fluidProgramSelect</emphasis> giengine, 1, isfnum, 0, 56
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ <emphasis role="opc">fluidNote</emphasis> giengine, 1, ikey, ivel
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99
+
+imvol <emphasis role="opc">init</emphasis> 7
+asigl, asigr <emphasis role="opc">fluidOut</emphasis> giengine
+ <emphasis role="opc">outs</emphasis> asigl<emphasis role="op">*</emphasis>imvol, asigr<emphasis role="op">*</emphasis>imvol
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 60 100 <emphasis role="comment">;play one note from score and...</emphasis>
+<emphasis role="stamnt">i</emphasis> 99 0 60 <emphasis role="comment">;play virtual keyboard for 60 sec.</emphasis>
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fluidOut.csd.xml b/examples-xml/fluidOut.csd.xml
new file mode 100644
index 0000000..efc1e9c
--- /dev/null
+++ b/examples-xml/fluidOut.csd.xml
@@ -0,0 +1,74 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o fluidOut.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giengine1 <emphasis role="opc">fluidEngine</emphasis>
+<emphasis role="comment">; soundfont path to manual/examples</emphasis>
+isfnum1 <emphasis role="opc">fluidLoad</emphasis> "01hpschd.sf2", giengine1, 1
+ <emphasis role="opc">fluidProgramSelect</emphasis> giengine1, 1, isfnum1, 0, 0
+
+giengine2 <emphasis role="opc">fluidEngine</emphasis>
+<emphasis role="comment">; soundfont path to manual/examples</emphasis>
+isfnum2 <emphasis role="opc">fluidLoad</emphasis> "22Bassoon.sf2", giengine2, 1
+ <emphasis role="opc">fluidProgramSelect</emphasis> giengine2, 1, isfnum2, 0, 70
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ <emphasis role="opc">fluidNote</emphasis> giengine1, 1, ikey, ivel
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ <emphasis role="opc">fluidNote</emphasis> giengine2, 1, ikey, ivel
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 98
+
+imvol <emphasis role="opc">init</emphasis> 7
+asigl, asigr <emphasis role="opc">fluidOut</emphasis> giengine1
+ <emphasis role="opc">outs</emphasis> asigl<emphasis role="op">*</emphasis>imvol, asigr<emphasis role="op">*</emphasis>imvol
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99
+
+imvol <emphasis role="opc">init</emphasis> 4
+asigl, asigr <emphasis role="opc">fluidOut</emphasis> giengine2 <emphasis role="comment">;add a stereo flanger</emphasis>
+adelL <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 0.02, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;max delay time =20ms</emphasis>
+adelR <emphasis role="opc">linseg</emphasis> 0.02, p3<emphasis role="op">*</emphasis>.5, 0, p3<emphasis role="op">*</emphasis>.5, 0.02 <emphasis role="comment">;max delay time =20ms </emphasis>
+asigL <emphasis role="opc">flanger</emphasis> asigl, adelL, .6
+asigR <emphasis role="opc">flanger</emphasis> asigr, adelR, .6
+ <emphasis role="opc">outs</emphasis> asigL<emphasis role="op">*</emphasis>imvol, asigR<emphasis role="op">*</emphasis>imvol
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 60 100 <emphasis role="comment">;play one note of instr 1</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 2 2 60 100 <emphasis role="comment">;play another note of instr 2 and...</emphasis>
+<emphasis role="stamnt">i</emphasis> 98 0 60 <emphasis role="comment">;play virtual keyboard for 60 sec.</emphasis>
+<emphasis role="stamnt">i</emphasis> 99 0 60
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fluidProgramSelect.csd.xml b/examples-xml/fluidProgramSelect.csd.xml
new file mode 100644
index 0000000..353cfec
--- /dev/null
+++ b/examples-xml/fluidProgramSelect.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o fluidProgramSelect.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giengine <emphasis role="opc">fluidEngine</emphasis>
+<emphasis role="comment">; soundfont path to manual/examples</emphasis>
+isfnum <emphasis role="opc">fluidLoad</emphasis> "19Trumpet.sf2", giengine, 1
+ <emphasis role="opc">fluidProgramSelect</emphasis> giengine, 1, isfnum, 0, 56
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ <emphasis role="opc">fluidNote</emphasis> giengine, 1, ikey, ivel
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99
+
+imvol <emphasis role="opc">init</emphasis> 7
+asigl, asigr <emphasis role="opc">fluidOut</emphasis> giengine
+ <emphasis role="opc">outs</emphasis> asigl<emphasis role="op">*</emphasis>imvol, asigr<emphasis role="op">*</emphasis>imvol
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 60 100 <emphasis role="comment">;play one note from score and...</emphasis>
+<emphasis role="stamnt">i</emphasis> 99 0 60 <emphasis role="comment">;play virtual keyboard for 60 sec.</emphasis>
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fluidSetInterpMethod.csd.xml b/examples-xml/fluidSetInterpMethod.csd.xml
new file mode 100644
index 0000000..c0fbcb9
--- /dev/null
+++ b/examples-xml/fluidSetInterpMethod.csd.xml
@@ -0,0 +1,54 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o fluidSetInterpMethod.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giengine <emphasis role="opc">fluidEngine</emphasis>
+<emphasis role="comment">; soundfont path to manual/examples</emphasis>
+isfnum <emphasis role="opc">fluidLoad</emphasis> "07AcousticGuitar.sf2", giengine, 1
+ <emphasis role="opc">fluidProgramSelect</emphasis> giengine, 1, isfnum, 0, 0
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+iInterpMethod <emphasis role="op">=</emphasis> p6
+<emphasis role="opc">fluidSetInterpMethod</emphasis> giengine, 1, iInterpMethod
+ <emphasis role="opc">fluidNote</emphasis> giengine, 1, ikey, ivel
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99
+
+imvol <emphasis role="opc">init</emphasis> 7
+asigl, asigr <emphasis role="opc">fluidOut</emphasis> giengine
+ <emphasis role="opc">outs</emphasis> asigl<emphasis role="op">*</emphasis>imvol, asigr<emphasis role="op">*</emphasis>imvol
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">;hear the difference</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 60 120 0 <emphasis role="comment">;no interpolation</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 2 72 120 0
+<emphasis role="stamnt">i</emphasis> 1 6 2 60 120 7 <emphasis role="comment">;7th order interpolation</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 9 2 72 120 7
+
+<emphasis role="stamnt">i</emphasis> 99 0 12
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fluidcomplex.csd.xml b/examples-xml/fluidcomplex.csd.xml
index 4b1273b..120e5d8 100644
--- a/examples-xml/fluidcomplex.csd.xml
+++ b/examples-xml/fluidcomplex.csd.xml
@@ -2,15 +2,18 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages Load external midi file</emphasis>
--d -m2 -o dac -T -F Anna.mid <emphasis role="comment">;;;RT audio I/O</emphasis>
-
+<emphasis role="comment">;Load external midi file from manual/examples</emphasis>
+-odac -T -F Anna.mid<emphasis role="comment">;;;realtime audio I/O and midifile in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o fluidcomplex.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 128
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="comment">; Example by Istvan Varga</emphasis>
@@ -25,7 +28,7 @@ ichn <emphasis role="op">=</emphasis> 1
<emphasis role="comment">; initialize FluidSynth</emphasis>
gifld <emphasis role="opc">fluidEngine</emphasis>
-gisf2 <emphasis role="opc">fluidLoad</emphasis> "07AcousticGuitar.sf2", gifld, 1
+gisf2 <emphasis role="opc">fluidLoad</emphasis> "sf_GMbank.sf2", gifld, 1
<emphasis role="comment">; k-rate version of fluidProgramSelect</emphasis>
@@ -62,9 +65,10 @@ gisf2 <emphasis role="opc">fluidLoad</emphasis> "07AcousticGuitar.sf2", gifld,
<emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">nxt</emphasis>
<emphasis role="octrl">endif</emphasis>
- <emphasis role="comment">; get audio output from FluidSynth</emphasis>
+<emphasis role="comment">; get audio output from FluidSynth</emphasis>
+ ivol <emphasis role="opc">init</emphasis> 3 <emphasis role="comment">;a bit louder</emphasis>
aL, aR <emphasis role="opc">fluidOut</emphasis> gifld
- <emphasis role="opc">outs</emphasis> aL, aR
+ <emphasis role="opc">outs</emphasis> aL<emphasis role="op">*</emphasis>ivol, aR<emphasis role="op">*</emphasis>ivol
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
diff --git a/examples-xml/fmb3.csd.xml b/examples-xml/fmb3.csd.xml
index 7ed656d..b6484e7 100644
--- a/examples-xml/fmb3.csd.xml
+++ b/examples-xml/fmb3.csd.xml
@@ -2,50 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fmb3.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 15000
- kfreq <emphasis role="op">=</emphasis> 440
- kc1 <emphasis role="op">=</emphasis> 5
- kc2 <emphasis role="op">=</emphasis> 5
- kvdepth <emphasis role="op">=</emphasis> 0.005
- kvrate <emphasis role="op">=</emphasis> 6
- ifn1 <emphasis role="op">=</emphasis> 1
- ifn2 <emphasis role="op">=</emphasis> 1
- ifn3 <emphasis role="op">=</emphasis> 1
- ifn4 <emphasis role="op">=</emphasis> 1
- ivfn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">fmb3</emphasis> kamp, kfreq, kc1, kc2, kvdepth, kvrate, \
- ifn1, ifn2, ifn3, ifn4, ivfn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kfreq <emphasis role="op">=</emphasis> 220
+kc1 <emphasis role="op">=</emphasis> p4
+kc2 <emphasis role="op">=</emphasis> p5
+kvrate <emphasis role="op">=</emphasis> 6
+kvdpth <emphasis role="opc">line</emphasis> 0, p3, p6
+asig <emphasis role="opc">fmb3</emphasis> .4, kfreq, kc1, kc2, kvdpth, kvrate
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">;sine wave.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 32768 10 1
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 2 5 5 0.1
+<emphasis role="stamnt">i</emphasis> 1 3 2 .5 .5 0.01
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fmbell.csd.xml b/examples-xml/fmbell.csd.xml
index b898643..a5b655a 100644
--- a/examples-xml/fmbell.csd.xml
+++ b/examples-xml/fmbell.csd.xml
@@ -2,49 +2,57 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fmbell.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10000
- kfreq <emphasis role="op">=</emphasis> 880
- kc1 <emphasis role="op">=</emphasis> 5
- kc2 <emphasis role="op">=</emphasis> 5
- kvdepth <emphasis role="op">=</emphasis> 0.005
- kvrate <emphasis role="op">=</emphasis> 6
- ifn1 <emphasis role="op">=</emphasis> 1
- ifn2 <emphasis role="op">=</emphasis> 1
- ifn3 <emphasis role="op">=</emphasis> 1
- ifn4 <emphasis role="op">=</emphasis> 1
- ivfn <emphasis role="op">=</emphasis> 1
-
- a1 <emphasis role="opc">fmbell</emphasis> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
- <emphasis role="opc">out</emphasis> a1
+
+kamp <emphasis role="op">=</emphasis> p4
+kfreq <emphasis role="op">=</emphasis> 880
+kc1 <emphasis role="op">=</emphasis> p5
+kc2 <emphasis role="op">=</emphasis> p6
+kvdepth <emphasis role="op">=</emphasis> 0.005
+kvrate <emphasis role="op">=</emphasis> 6
+
+asig <emphasis role="opc">fmbell</emphasis> kamp, kfreq, kc1, kc2, kvdepth, kvrate
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2
+
+kamp <emphasis role="op">=</emphasis> p4
+kfreq <emphasis role="op">=</emphasis> 880
+kc1 <emphasis role="op">=</emphasis> p5
+kc2 <emphasis role="op">=</emphasis> p6
+kvdepth <emphasis role="op">=</emphasis> 0.005
+kvrate <emphasis role="op">=</emphasis> 6
+
+asig <emphasis role="opc">fmbell</emphasis> kamp, kfreq, kc1, kc2, kvdepth, kvrate, 1, 1, 1, 1, 1, p7
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">; sine wave.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 32768 10 1
-<emphasis role="comment">; Play Instrument #1 for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 3 .2 5 5
+<emphasis role="stamnt">i</emphasis> 1 + 4 .3 .5 1
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 0 12 .2 5 5 16
+<emphasis role="stamnt">i</emphasis> 2 + 12 .3 .5 1 12
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fmmetal.csd.xml b/examples-xml/fmmetal.csd.xml
index aabfae2..d295c82 100644
--- a/examples-xml/fmmetal.csd.xml
+++ b/examples-xml/fmmetal.csd.xml
@@ -2,51 +2,46 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fmmetal.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10000
- kfreq <emphasis role="op">=</emphasis> 440
- kc1 <emphasis role="op">=</emphasis> 6
- kc2 <emphasis role="op">=</emphasis> 5
- kvdepth <emphasis role="op">=</emphasis> 0
- kvrate <emphasis role="op">=</emphasis> 0
- ifn1 <emphasis role="op">=</emphasis> 1
- ifn2 <emphasis role="op">=</emphasis> 2
- ifn3 <emphasis role="op">=</emphasis> 2
- ifn4 <emphasis role="op">=</emphasis> 1
- ivfn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">fmmetal</emphasis> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kfreq <emphasis role="op">=</emphasis> 440
+kvdepth <emphasis role="op">=</emphasis> 0
+kvrate <emphasis role="op">=</emphasis> 0
+ifn1 <emphasis role="op">=</emphasis> 1
+ifn2 <emphasis role="op">=</emphasis> 2
+ifn3 <emphasis role="op">=</emphasis> 2
+ifn4 <emphasis role="op">=</emphasis> 1
+ivfn <emphasis role="op">=</emphasis> 1
+kc2 <emphasis role="op">=</emphasis> p5
+kc1 <emphasis role="opc">line</emphasis> p4, p3, 1
+asig <emphasis role="opc">fmmetal</emphasis> .5, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a normal sine wave.</emphasis>
+<emphasis role="comment">; sine wave.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 32768 10 1
-<emphasis role="comment">; Table #2, the "twopeaks.aiff" audio file.</emphasis>
+<emphasis role="comment">; the "twopeaks.aiff" audio file.</emphasis>
<emphasis role="stamnt">f</emphasis> 2 0 256 1 "twopeaks.ai<emphasis role="stamnt">f</emphasis><emphasis role="stamnt">f</emphasis>" 0 0 0
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 4 6 5
+<emphasis role="stamnt">i</emphasis> 1 5 4 .2 10
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fmpercfl.csd.xml b/examples-xml/fmpercfl.csd.xml
index 375468a..37870d8 100644
--- a/examples-xml/fmpercfl.csd.xml
+++ b/examples-xml/fmpercfl.csd.xml
@@ -2,49 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fmpercfl.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kfreq <emphasis role="op">=</emphasis> 220
- kc1 <emphasis role="op">=</emphasis> 5
- kc2 <emphasis role="op">=</emphasis> 5
- kvdepth <emphasis role="op">=</emphasis> 0.005
- kvrate <emphasis role="op">=</emphasis> 6
- ifn1 <emphasis role="op">=</emphasis> 1
- ifn2 <emphasis role="op">=</emphasis> 1
- ifn3 <emphasis role="op">=</emphasis> 1
- ifn4 <emphasis role="op">=</emphasis> 1
- ivfn <emphasis role="op">=</emphasis> 1
-
- a1 <emphasis role="opc">fmpercfl</emphasis> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
- <emphasis role="opc">out</emphasis> a1
+
+kfreq <emphasis role="op">=</emphasis> 220
+kc1 <emphasis role="op">=</emphasis> 5
+kvdepth <emphasis role="op">=</emphasis> .01
+kvrate <emphasis role="op">=</emphasis> 6
+
+kc2 <emphasis role="opc">line</emphasis> 5, p3, p4
+asig <emphasis role="opc">fmpercfl</emphasis> .5, kfreq, kc1, kc2, kvdepth, kvrate
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">; sine wave.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 32768 10 1
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 4 5
+<emphasis role="stamnt">i</emphasis> 1 5 8 .1
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fmrhode.csd.xml b/examples-xml/fmrhode.csd.xml
index cf82938..c3d4221 100644
--- a/examples-xml/fmrhode.csd.xml
+++ b/examples-xml/fmrhode.csd.xml
@@ -2,51 +2,46 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fmrhode.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kfreq <emphasis role="op">=</emphasis> 220
- kc1 <emphasis role="op">=</emphasis> 6
- kc2 <emphasis role="op">=</emphasis> 0
- kvdepth <emphasis role="op">=</emphasis> 0.01
- kvrate <emphasis role="op">=</emphasis> 3
- ifn1 <emphasis role="op">=</emphasis> 1
- ifn2 <emphasis role="op">=</emphasis> 1
- ifn3 <emphasis role="op">=</emphasis> 1
- ifn4 <emphasis role="op">=</emphasis> 2
- ivfn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">fmrhode</emphasis> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kfreq <emphasis role="op">=</emphasis> 220
+kc1 <emphasis role="op">=</emphasis> p4
+kc2 <emphasis role="op">=</emphasis> p5
+kvdepth <emphasis role="op">=</emphasis> 0.01
+kvrate <emphasis role="op">=</emphasis> 3
+ifn1 <emphasis role="op">=</emphasis> 1
+ifn2 <emphasis role="op">=</emphasis> 1
+ifn3 <emphasis role="op">=</emphasis> 1
+ifn4 <emphasis role="op">=</emphasis> 2
+ivfn <emphasis role="op">=</emphasis> 1
+asig <emphasis role="opc">fmrhode</emphasis> .5, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">; sine wave.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 32768 10 1
-<emphasis role="comment">; Table #2, the "fwavblnk.aiff" audio file.</emphasis>
+<emphasis role="comment">; audio file.</emphasis>
<emphasis role="stamnt">f</emphasis> 2 0 256 1 "<emphasis role="stamnt">f</emphasis>wavblnk.ai<emphasis role="stamnt">f</emphasis><emphasis role="stamnt">f</emphasis>" 0 0 0
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 3 6 0
+<emphasis role="stamnt">i</emphasis> 1 + . 6 3
+<emphasis role="stamnt">i</emphasis> 1 + . 20 0
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fmvoice.csd.xml b/examples-xml/fmvoice.csd.xml
index 6c1e1e9..84b9b41 100644
--- a/examples-xml/fmvoice.csd.xml
+++ b/examples-xml/fmvoice.csd.xml
@@ -2,59 +2,54 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fmvoice.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kfreq <emphasis role="op">=</emphasis> 110
- <emphasis role="comment">; Use the fourth p-field for the vowel.</emphasis>
- kvowel <emphasis role="op">=</emphasis> p4
- ktilt <emphasis role="op">=</emphasis> 0
- kvibamt <emphasis role="op">=</emphasis> 0.005
- kvibrate <emphasis role="op">=</emphasis> 6
- ifn1 <emphasis role="op">=</emphasis> 1
- ifn2 <emphasis role="op">=</emphasis> 1
- ifn3 <emphasis role="op">=</emphasis> 1
- ifn4 <emphasis role="op">=</emphasis> 1
- ivibfn <emphasis role="op">=</emphasis> 1
-
- a1 <emphasis role="opc">fmvoice</emphasis> kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate, ifn1, ifn2, ifn3, ifn4, ivibfn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kfreq <emphasis role="op">=</emphasis> 110
+kvowel <emphasis role="op">=</emphasis> p4 <emphasis role="comment">; p4 = vowel (0 - 64)</emphasis>
+ktilt <emphasis role="op">=</emphasis> p5
+kvibamt <emphasis role="op">=</emphasis> 0.005
+kvibrate <emphasis role="op">=</emphasis> 6
+
+asig <emphasis role="opc">fmvoice</emphasis> .5, kfreq, kvowel, ktilt, kvibamt, kvibrate
+<emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">; sine wave.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; p4 = vowel (a value from 0 to 64)</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second, vowel=1.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1 1
-<emphasis role="comment">; Play Instrument #1 for one second, vowel=2.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 1 1 2
-<emphasis role="comment">; Play Instrument #1 for one second, vowel=3.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 2 1 3
-<emphasis role="comment">; Play Instrument #1 for one second, vowel=4.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 3 1 4
-<emphasis role="comment">; Play Instrument #1 for one second, vowel=5.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 4 1 5
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 1 1 0 <emphasis role="comment">; tilt=0</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 1 1 > .
+<emphasis role="stamnt">i</emphasis> 1 2 1 > .
+<emphasis role="stamnt">i</emphasis> 1 3 1 > .
+<emphasis role="stamnt">i</emphasis> 1 4 1 > .
+<emphasis role="stamnt">i</emphasis> 1 5 1 > .
+<emphasis role="stamnt">i</emphasis> 1 6 1 > .
+<emphasis role="stamnt">i</emphasis> 1 7 1 12 .
+
+<emphasis role="stamnt">i</emphasis> 1 10 1 1 90 <emphasis role="comment">; tilt=90</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 11 1 > .
+<emphasis role="stamnt">i</emphasis> 1 12 1 > .
+<emphasis role="stamnt">i</emphasis> 1 13 1 > .
+<emphasis role="stamnt">i</emphasis> 1 14 1 > .
+<emphasis role="stamnt">i</emphasis> 1 15 1 > .
+<emphasis role="stamnt">i</emphasis> 1 16 1 > .
+<emphasis role="stamnt">i</emphasis> 1 17 1 12 .
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fmwurlie.csd.xml b/examples-xml/fmwurlie.csd.xml
index fe183d5..71e1b56 100644
--- a/examples-xml/fmwurlie.csd.xml
+++ b/examples-xml/fmwurlie.csd.xml
@@ -2,51 +2,46 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fmwurlie.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 22050
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 2205
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kfreq <emphasis role="op">=</emphasis> 440
- kc1 <emphasis role="op">=</emphasis> 6
- kc2 <emphasis role="op">=</emphasis> 1
- kvdepth <emphasis role="op">=</emphasis> 0.005
- kvrate <emphasis role="op">=</emphasis> 6
- ifn1 <emphasis role="op">=</emphasis> 1
- ifn2 <emphasis role="op">=</emphasis> 1
- ifn3 <emphasis role="op">=</emphasis> 1
- ifn4 <emphasis role="op">=</emphasis> 2
- ivfn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">fmwurlie</emphasis> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kfreq <emphasis role="op">=</emphasis> 440
+kc1 <emphasis role="op">=</emphasis> p4
+kc2 <emphasis role="op">=</emphasis> 1
+kvdepth <emphasis role="op">=</emphasis> 0.05
+kvrate <emphasis role="op">=</emphasis> 6
+ifn1 <emphasis role="op">=</emphasis> 1
+ifn2 <emphasis role="op">=</emphasis> 1
+ifn3 <emphasis role="op">=</emphasis> 1
+ifn4 <emphasis role="op">=</emphasis> 2
+ivfn <emphasis role="op">=</emphasis> 1
+asig <emphasis role="opc">fmwurlie</emphasis> .5, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">; sine wave</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 32768 10 1
-<emphasis role="comment">; Table #2, the "fwavblnk.aiff" audio file.</emphasis>
+<emphasis role="comment">; audio file</emphasis>
<emphasis role="stamnt">f</emphasis> 2 0 256 1 "<emphasis role="stamnt">f</emphasis>wavblnk.ai<emphasis role="stamnt">f</emphasis><emphasis role="stamnt">f</emphasis>" 0 0 0
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 3 6
+<emphasis role="stamnt">i</emphasis> 1 + 3 30
+<emphasis role="stamnt">i</emphasis> 1 + 2 60
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fof.csd.xml b/examples-xml/fof.csd.xml
index bb4cd9f..e5567ad 100644
--- a/examples-xml/fof.csd.xml
+++ b/examples-xml/fof.csd.xml
@@ -2,60 +2,56 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fof.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; Combine five formants together to create </emphasis>
- <emphasis role="comment">; an alto-"a" sound.</emphasis>
-
+ <emphasis role="comment">; a transformation from an alto-"a" sound</emphasis>
+ <emphasis role="comment">; to an alto-"i" sound.</emphasis>
<emphasis role="comment">; Values common to all of the formants.</emphasis>
kfund <emphasis role="opc">init</emphasis> 261.659
koct <emphasis role="opc">init</emphasis> 0
kris <emphasis role="opc">init</emphasis> 0.003
kdur <emphasis role="opc">init</emphasis> 0.02
kdec <emphasis role="opc">init</emphasis> 0.007
- iolaps <emphasis role="op">=</emphasis> 14850
+ iolaps <emphasis role="op">=</emphasis> 100
ifna <emphasis role="op">=</emphasis> 1
ifnb <emphasis role="op">=</emphasis> 2
itotdur <emphasis role="op">=</emphasis> p3
<emphasis role="comment">; First formant.</emphasis>
k1amp <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(0)
- k1form <emphasis role="opc">init</emphasis> 800
- k1band <emphasis role="opc">init</emphasis> 80
+ k1form <emphasis role="opc">line</emphasis> 800, p3, 350
+ k1band <emphasis role="opc">line</emphasis> 80, p3, 50
<emphasis role="comment">; Second formant.</emphasis>
- k2amp <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(<emphasis role="op">-</emphasis>4)
- k2form <emphasis role="opc">init</emphasis> 1150
- k2band <emphasis role="opc">init</emphasis> 90
+ k2amp <emphasis role="opc">line</emphasis> <emphasis role="opc">ampdb</emphasis>(<emphasis role="op">-</emphasis>4), p3, <emphasis role="opc">ampdb</emphasis>(<emphasis role="op">-</emphasis>20)
+ k2form <emphasis role="opc">line</emphasis> 1150, p3, 1700
+ k2band <emphasis role="opc">line</emphasis> 90, p3, 100
<emphasis role="comment">; Third formant.</emphasis>
- k3amp <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(<emphasis role="op">-</emphasis>20)
- k3form <emphasis role="opc">init</emphasis> 2800
+ k3amp <emphasis role="opc">line</emphasis> <emphasis role="opc">ampdb</emphasis>(<emphasis role="op">-</emphasis>20), p3, <emphasis role="opc">ampdb</emphasis>(<emphasis role="op">-</emphasis>30)
+ k3form <emphasis role="opc">line</emphasis> 2800, p3, 2700
k3band <emphasis role="opc">init</emphasis> 120
<emphasis role="comment">; Fourth formant.</emphasis>
- k4amp <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(<emphasis role="op">-</emphasis>36)
- k4form <emphasis role="opc">init</emphasis> 3500
- k4band <emphasis role="opc">init</emphasis> 130
+ k4amp <emphasis role="opc">init</emphasis> <emphasis role="opc">ampdb</emphasis>(<emphasis role="op">-</emphasis>36)
+ k4form <emphasis role="opc">line</emphasis> 3500, p3, 3700
+ k4band <emphasis role="opc">line</emphasis> 130, p3, 150
<emphasis role="comment">; Fifth formant.</emphasis>
- k5amp <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(<emphasis role="op">-</emphasis>60)
+ k5amp <emphasis role="opc">init</emphasis> <emphasis role="opc">ampdb</emphasis>(<emphasis role="op">-</emphasis>60)
k5form <emphasis role="opc">init</emphasis> 4950
- k5band <emphasis role="opc">init</emphasis> 140
+ k5band <emphasis role="opc">line</emphasis> 140, p3, 200
a1 <emphasis role="opc">fof</emphasis> k1amp, kfund, k1form, koct, k1band, kris, \
kdur, kdec, iolaps, ifna, ifnb, itotdur
@@ -68,25 +64,21 @@
a5 <emphasis role="opc">fof</emphasis> k5amp, kfund, k5form, koct, k5band, kris, \
kdur, kdec, iolaps, ifna, ifnb, itotdur
- <emphasis role="comment">; Combine all of the formants together.</emphasis>
- <emphasis role="opc">out</emphasis> (a1<emphasis role="op">+</emphasis>a2<emphasis role="op">+</emphasis>a3<emphasis role="op">+</emphasis>a4<emphasis role="op">+</emphasis>a5) <emphasis role="op">*</emphasis> 16384
-<emphasis role="oblock">endin</emphasis>
-
+ <emphasis role="comment">; Combine all of the formants together</emphasis>
+asig <emphasis role="opc">sum</emphasis> (a1<emphasis role="op">+</emphasis>a2<emphasis role="op">+</emphasis>a3<emphasis role="op">+</emphasis>a4<emphasis role="op">+</emphasis>a5) <emphasis role="op">*</emphasis> 13000
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">; sine wave</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
-<emphasis role="comment">; Table #2.</emphasis>
+<emphasis role="comment">; sigmoid wave</emphasis>
<emphasis role="stamnt">f</emphasis> 2 0 1024 19 0.5 0.5 270 0.5
-<emphasis role="comment">; Play Instrument #1 for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 2 5 <emphasis role="comment">; same but slower</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fofilter.csd.xml b/examples-xml/fofilter.csd.xml
index 994a8d7..e720e92 100644
--- a/examples-xml/fofilter.csd.xml
+++ b/examples-xml/fofilter.csd.xml
@@ -2,29 +2,32 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fofilter.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="oblock">instr</emphasis> 1
-kfe <emphasis role="opc">expseg</emphasis> 10, p3<emphasis role="op">*</emphasis>0.9, 180, p3<emphasis role="op">*</emphasis>0.1, 175
-kenv <emphasis role="opc">linen</emphasis> 1000, 0.05, p3, 0.05
-asig <emphasis role="opc">buzz</emphasis> kenv, kfe, <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>(2<emphasis role="op">*</emphasis>kfe), 1
-afil <emphasis role="opc">fofilter</emphasis> asig, 900, 0.007, 0.04
-
- <emphasis role="opc">out</emphasis> afil
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+
+kfe <emphasis role="opc">expseg</emphasis> 10, p3<emphasis role="op">*</emphasis>0.9, 180, p3<emphasis role="op">*</emphasis>0.1, 175
+kenv <emphasis role="opc">linen</emphasis> .1, 0.05, p3, 0.05
+asig <emphasis role="opc">buzz</emphasis> kenv, kfe, <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>(2<emphasis role="op">*</emphasis>kfe), 1
+afil <emphasis role="opc">fofilter</emphasis> asig, 900, 0.007, 0.04
+ <emphasis role="opc">outs</emphasis> afil, afil
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">; sine wave</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+
<emphasis role="stamnt">i</emphasis> 1 0 10
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/fog.csd.xml b/examples-xml/fog.csd.xml
index ca199d5..84622a6 100644
--- a/examples-xml/fog.csd.xml
+++ b/examples-xml/fog.csd.xml
@@ -2,36 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fog.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
+
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">;p4 = transposition factor</emphasis>
<emphasis role="comment">;p5 = speed factor</emphasis>
<emphasis role="comment">;p6 = function table for grain data</emphasis>
-i1 <emphasis role="op">=</emphasis> <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis><emphasis role="opc">ftlen</emphasis>(p6) <emphasis role="comment">;scaling to reflect sample rate and table length</emphasis>
-a1 <emphasis role="opc">phasor</emphasis> i1<emphasis role="op">*</emphasis>p5 <emphasis role="comment">;index for speed</emphasis>
-a2 <emphasis role="opc">fog</emphasis> 15000, 20, p4, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3
-
- <emphasis role="opc">out</emphasis> a2
+i1 <emphasis role="op">=</emphasis> <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis><emphasis role="opc">ftlen</emphasis>(1) <emphasis role="comment">;scaling to reflect sample rate and table length</emphasis>
+a1 <emphasis role="opc">phasor</emphasis> i1<emphasis role="op">*</emphasis>p5 <emphasis role="comment">;index for speed</emphasis>
+asigl <emphasis role="opc">fog</emphasis> .5, 15, p4, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3 <emphasis role="comment">;left channel</emphasis>
+asigr <emphasis role="opc">fog</emphasis> .4, 25, p4<emphasis role="op">+</emphasis>.2, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3, .5 <emphasis role="comment">;right channel</emphasis>
+ <emphasis role="opc">outs</emphasis> asigl, asigr
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 131072 1 "beats.wav" 0 0 0
+<emphasis role="stamnt">f</emphasis> 1 0 131072 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 0
<emphasis role="stamnt">f</emphasis> 2 0 1024 19 .5 .5 270 .5
-<emphasis role="stamnt">i</emphasis> 1 0 6 1 .01 1
+<emphasis role="stamnt">i</emphasis> 1 0 10 .7 .1
+<emphasis role="stamnt">i</emphasis> 1 + 4 1.2 2
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/fold.csd.xml b/examples-xml/fold.csd.xml
index a8f0fbc..2680c5b 100644
--- a/examples-xml/fold.csd.xml
+++ b/examples-xml/fold.csd.xml
@@ -2,40 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fold.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use an ordinary sine wave.</emphasis>
- asig <emphasis role="opc">oscils</emphasis> 30000, 100, 1
- <emphasis role="comment">; Vary the fold-over amount from 1 to 200.</emphasis>
- kincr <emphasis role="opc">line</emphasis> 1, p3, 200
- a1 <emphasis role="opc">fold</emphasis> asig, kincr
+asig <emphasis role="opc">poscil3</emphasis> .8, 400, 1 <emphasis role="comment">;very clean sine</emphasis>
+kincr <emphasis role="opc">line</emphasis> p4, p3, p5
+asig <emphasis role="opc">fold</emphasis> asig, kincr
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">;sine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for four seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 4
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 4 2 2
+<emphasis role="stamnt">i</emphasis> 1 5 4 5 5
+<emphasis role="stamnt">i</emphasis> 1 10 4 10 10
+<emphasis role="stamnt">i</emphasis> 1 15 4 1 100 <emphasis role="comment">; Vary the fold-over amount from 1 to 100</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/follow.csd.xml b/examples-xml/follow.csd.xml
index 124b1fb..f7ba94b 100644
--- a/examples-xml/follow.csd.xml
+++ b/examples-xml/follow.csd.xml
@@ -2,53 +2,46 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o follow.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - play a WAV file.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- a1 <emphasis role="opc">soundin</emphasis> "beats.wav"
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
-
-<emphasis role="comment">; Instrument #2 - have another waveform follow the WAV file.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Follow the WAV file.</emphasis>
- as <emphasis role="opc">soundin</emphasis> "beats.wav"
- af <emphasis role="opc">follow</emphasis> as, 0.01
- <emphasis role="comment">; Use a sine waveform.</emphasis>
- as <emphasis role="opc">oscil</emphasis> 4000, 440, 1
- <emphasis role="comment">; Have it use the amplitude of the followed WAV file.</emphasis>
- a1 <emphasis role="opc">balance</emphasis> as, af
+asig <emphasis role="opc">soundin</emphasis> "beats.wav"
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;envelope follower</emphasis>
+as <emphasis role="opc">soundin</emphasis> "beats.wav"
+as <emphasis role="op">=</emphasis> as<emphasis role="op">*</emphasis>.7 <emphasis role="comment">;reduce volume a bit</emphasis>
+at <emphasis role="opc">tone</emphasis> as, 500 <emphasis role="comment">;smooth estimated envelope</emphasis>
+af <emphasis role="opc">follow</emphasis> at, p4
+asin <emphasis role="opc">poscil3</emphasis> .5, 440, 1
+<emphasis role="comment">; "beats.wav" provides amplitude for poscil</emphasis>
+asig <emphasis role="opc">balance</emphasis> asin, af
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Just generate a nice, ordinary sine wave.</emphasis>
+<emphasis role="comment">;sine wave.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 32768 10 1
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="comment">; Play Instrument #2 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 2 2
+<emphasis role="stamnt">i</emphasis> 2 2 2 0.001 <emphasis role="comment">;follow quickly</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 5 3 0.2 <emphasis role="comment">;follow slowly</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/follow2.csd.xml b/examples-xml/follow2.csd.xml
index 3f71a38..8713d7d 100644
--- a/examples-xml/follow2.csd.xml
+++ b/examples-xml/follow2.csd.xml
@@ -2,50 +2,42 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o follow2.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - play a WAV file.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- a1 <emphasis role="opc">soundin</emphasis> "beats.wav"
- <emphasis role="opc">out</emphasis> a1
+
+asig <emphasis role="opc">soundin</emphasis> "beats.wav"
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #2 - have another waveform follow the WAV file.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Follow the WAV file.</emphasis>
- as <emphasis role="opc">soundin</emphasis> "beats.wav"
- af <emphasis role="opc">follow2</emphasis> as, 0.01, 0.1
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;using follow2</emphasis>
- <emphasis role="comment">; Use a noise waveform.</emphasis>
- ar <emphasis role="opc">rand</emphasis> 44100
- <emphasis role="comment">; Have it use the amplitude of the followed WAV file.</emphasis>
- a1 <emphasis role="opc">balance</emphasis> ar, af
+as <emphasis role="opc">soundin</emphasis> "beats.wav"
+af <emphasis role="opc">follow2</emphasis> as, p4, p5
+ar <emphasis role="opc">rand</emphasis> 44100 <emphasis role="comment">;noise</emphasis>
+<emphasis role="comment">; "beats.wav" provides amplitude for noise</emphasis>
+asig <emphasis role="opc">balance</emphasis> ar, af
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="comment">; Play Instrument #2 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 2 2
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 2 2 2 0.001 0.01 <emphasis role="comment">;quick attack &amp; deacy</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 5 2 0.1 0.5 <emphasis role="comment">;slow attack &amp; deacy </emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/foscil.csd.xml b/examples-xml/foscil.csd.xml
index f8cdb32..061804e 100644
--- a/examples-xml/foscil.csd.xml
+++ b/examples-xml/foscil.csd.xml
@@ -2,44 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o foscil.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - a basic FM waveform.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10000
- kcps <emphasis role="op">=</emphasis> 440
- kcar <emphasis role="op">=</emphasis> 600
- kmod <emphasis role="op">=</emphasis> 210
- kndx <emphasis role="op">=</emphasis> 2
- ifn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">foscil</emphasis> kamp, kcps, kcar, kmod, kndx, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kcps <emphasis role="op">=</emphasis> 440
+kcar <emphasis role="op">=</emphasis> 1
+kmod <emphasis role="op">=</emphasis> p4
+kndx <emphasis role="opc">line</emphasis> 0, p3, 20 <emphasis role="comment">;intensivy sidebands</emphasis>
+asig <emphasis role="opc">foscil</emphasis> .5, kcps, kcar, kmod, kndx, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">; sine</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 9 .01 <emphasis role="comment">;vibrato</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 10 . 1
+<emphasis role="stamnt">i</emphasis> 1 20 . 1.414 <emphasis role="comment">;gong-ish</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 30 5 2.05 <emphasis role="comment">;with "beat"</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/foscili.csd.xml b/examples-xml/foscili.csd.xml
index 0ce853a..d3ddb0f 100644
--- a/examples-xml/foscili.csd.xml
+++ b/examples-xml/foscili.csd.xml
@@ -2,62 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o foscili.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - a basic FM waveform.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10000
- kcps <emphasis role="op">=</emphasis> 440
- kcar <emphasis role="op">=</emphasis> 600
- kmod <emphasis role="op">=</emphasis> 210
- kndx <emphasis role="op">=</emphasis> 2
- ifn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">foscil</emphasis> kamp, kcps, kcar, kmod, kndx, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kcps <emphasis role="op">=</emphasis> 440
+kcar <emphasis role="op">=</emphasis> 1
+kmod <emphasis role="op">=</emphasis> p4
+kndx <emphasis role="opc">line</emphasis> 0, p3, 20 <emphasis role="comment">;intensivy sidebands</emphasis>
-<emphasis role="comment">; Instrument #2 - the basic FM waveform with extra interpolation.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- kamp <emphasis role="op">=</emphasis> 10000
- kcps <emphasis role="op">=</emphasis> 440
- kcar <emphasis role="op">=</emphasis> 600
- kmod <emphasis role="op">=</emphasis> 210
- kndx <emphasis role="op">=</emphasis> 2
- ifn <emphasis role="op">=</emphasis> 1
+asig <emphasis role="opc">foscili</emphasis> .5, kcps, kcar, kmod, kndx, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
- a1 <emphasis role="opc">foscili</emphasis> kamp, kcps, kcar, kmod, kndx, ifn
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; sine</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Table #1, a sine wave table with a small amount of data.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
-
-<emphasis role="comment">; Play Instrument #1, the basic FM instrument, for </emphasis>
-<emphasis role="comment">; two seconds. This should sound relatively rough.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
-
-<emphasis role="comment">; Play Instrument #2, the interpolated FM instrument, for</emphasis>
-<emphasis role="comment">; two seconds. This should sound relatively smooth.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 2 2
+<emphasis role="stamnt">i</emphasis> 1 0 9 .01 <emphasis role="comment">;vibrato</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 10 . 1
+<emphasis role="stamnt">i</emphasis> 1 20 . 1.414 <emphasis role="comment">;gong-ish</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 30 5 2.05 <emphasis role="comment">;with "beat"</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fout.csd.xml b/examples-xml/fout.csd.xml
index 540e5ed..29d7c19 100644
--- a/examples-xml/fout.csd.xml
+++ b/examples-xml/fout.csd.xml
@@ -2,42 +2,55 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o fout.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- iamp <emphasis role="op">=</emphasis> 10000
- icps <emphasis role="op">=</emphasis> 440
- iphs <emphasis role="op">=</emphasis> 0
- <emphasis role="comment">; Create an audio signal.</emphasis>
- asig <emphasis role="opc">oscils</emphasis> iamp, icps, iphs
+asig <emphasis role="opc">poscil3</emphasis> .5, 880, giSine
+<emphasis role="comment">;write a raw file: 32 bits with header</emphasis>
+ <emphasis role="opc">fout</emphasis> "fout_880.wav", 15, asig
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+klfo <emphasis role="opc">lfo</emphasis> 1, 2, 0
+asig <emphasis role="opc">poscil3</emphasis> .5<emphasis role="op">*</emphasis>klfo, 220, giSine
+<emphasis role="comment">;write an aiff file: 32 bits with header</emphasis>
+ <emphasis role="opc">fout</emphasis> "fout_aif.aiff", 25, asig
+<emphasis role="comment">; fout "fout_all3.wav", 14, asig</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; Write the audio signal to a headerless audio file </emphasis>
- <emphasis role="comment">; called "fout.raw".</emphasis>
- <emphasis role="opc">fout</emphasis> "fout.raw", 1, asig
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">;read the stereo csound output buffer</emphasis>
+allL, allR <emphasis role="opc">monitor</emphasis>
+<emphasis role="comment">;write the output of csound to an audio file</emphasis>
+<emphasis role="comment">;to a wav file: 16 bits with header</emphasis>
+ <emphasis role="opc">fout</emphasis> "fout_all.wav", 14, allL, allR
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 2 0 3
+<emphasis role="stamnt">i</emphasis> 99 0 3
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/fouti.csd.xml b/examples-xml/fouti.csd.xml
new file mode 100644
index 0000000..68a0c8e
--- /dev/null
+++ b/examples-xml/fouti.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o fouti.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gihand <emphasis role="opc">fiopen</emphasis> "test.txt", 0
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ires <emphasis role="opc">random</emphasis> 0, 10
+ <emphasis role="opc">fouti</emphasis> gihand, 0, 1, ires
+ <emphasis role="opc">ficlose</emphasis> gihand
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+
+<emphasis role="stamnt">i</emphasis> 1 0 1
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/foutir.csd.xml b/examples-xml/foutir.csd.xml
new file mode 100644
index 0000000..df7e441
--- /dev/null
+++ b/examples-xml/foutir.csd.xml
@@ -0,0 +1,44 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o foutir.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gihand <emphasis role="opc">fiopen</emphasis> "foutir.sco", 0
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play virtual midi keyboard</emphasis>
+
+inot <emphasis role="opc">notnum</emphasis> <emphasis role="comment">;just for priting on screen</emphasis>
+icps <emphasis role="opc">cpsmidi</emphasis>
+iamp <emphasis role="opc">ampmidi</emphasis> 1
+
+ <emphasis role="opc">foutir</emphasis> gihand, 0, 1, icps, iamp
+ <emphasis role="opc">prints</emphasis> "WRITING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">prints</emphasis> "note <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f,velocity <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", icps, iamp <emphasis role="comment">;prints them</emphasis>
+ <emphasis role="opc">ficlose</emphasis> gihand
+asig <emphasis role="opc">pluck</emphasis> iamp, icps, 1000, 0, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+
+<emphasis role="stamnt">f</emphasis> 0 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/fractalnoise.csd.xml b/examples-xml/fractalnoise.csd.xml
new file mode 100644
index 0000000..2f208a8
--- /dev/null
+++ b/examples-xml/fractalnoise.csd.xml
@@ -0,0 +1,31 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kbeta <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">/</emphasis>4, 2, p3<emphasis role="op">/</emphasis>4, 0, p3<emphasis role="op">*</emphasis>0.1, 2, p3<emphasis role="op">*</emphasis>0.15, 0
+<emphasis role="ohdr">seed</emphasis> 20120124
+aout <emphasis role="opc">fractalnoise</emphasis> 0.05, kbeta
+<emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ftchnls.csd.xml b/examples-xml/ftchnls.csd.xml
index 777b624..ab98fa8 100644
--- a/examples-xml/ftchnls.csd.xml
+++ b/examples-xml/ftchnls.csd.xml
@@ -2,38 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">;-odac ;;;realtime audio out</emphasis>
+-iadc <emphasis role="comment">;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o ftchnls.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Print out the number of channels in Table #1.</emphasis>
- ichnls <emphasis role="op">=</emphasis> <emphasis role="opc">ftchnls</emphasis>(1)
- <emphasis role="opc">print</emphasis> ichnls
-<emphasis role="oblock">endin</emphasis>
+ichnls <emphasis role="op">=</emphasis> <emphasis role="opc">ftchnls</emphasis>(p4)
+<emphasis role="opc">print</emphasis> ichnls
+
+<emphasis role="octrl">if</emphasis> (ichnls <emphasis role="op">==</emphasis> 1) then
+ asigL <emphasis role="opc">loscil3</emphasis> .8, 4, p4
+ asigR <emphasis role="op">=</emphasis> asigL
+<emphasis role="octrl">elseif</emphasis> (ichnls <emphasis role="op">==</emphasis> 2) then
+ asigL, asigR <emphasis role="opc">loscil3</emphasis> .8, 4, p4
+<emphasis role="comment">;safety precaution if not mono or stereo</emphasis>
+<emphasis role="octrl">else</emphasis>
+ asigL <emphasis role="op">=</emphasis> 0
+ asigR <emphasis role="op">=</emphasis> 0
+<emphasis role="octrl">endif</emphasis>
+ <emphasis role="opc">outs</emphasis> asigL, asigR
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1: Use an audio file, Csound will determine its size.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 0 1 "mary.wav" 0 0 0
+<emphasis role="stamnt">f</emphasis> 2 0 0 1 "kickroll.wav" 0 0 0
-<emphasis role="comment">; Play Instrument #1 for 1 second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 3 1 <emphasis role="comment">;mono file</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 2 <emphasis role="comment">;stereo file</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/ftfree.csd.xml b/examples-xml/ftfree.csd.xml
new file mode 100644
index 0000000..c8d6f24
--- /dev/null
+++ b/examples-xml/ftfree.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o ftfree.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gitempTable <emphasis role="ohdr">ftgen</emphasis> 0, 0, 65537, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aout <emphasis role="opc">oscili</emphasis> .5, 440, gitempTable
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="comment">;free temp table at deinit time</emphasis>
+<emphasis role="opc">ftfree</emphasis> gitempTable, 1
+<emphasis role="opc">print</emphasis> gitempTable
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 5
+
+<emphasis role="stamnt">i</emphasis> 1 0 .1
+<emphasis role="stamnt">i</emphasis> 1 3 1
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ftgen.csd.xml b/examples-xml/ftgen.csd.xml
index 2bbe9e2..f3d5d76 100644
--- a/examples-xml/ftgen.csd.xml
+++ b/examples-xml/ftgen.csd.xml
@@ -2,42 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o ftgen.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis>1
-<emphasis role="comment">; Table #1, a sine wave using the GEN10 routine.</emphasis>
-gitemp <emphasis role="ohdr">ftgen</emphasis> 1, 0, 16384, 10, 1
+gisine <emphasis role="ohdr">ftgen</emphasis> 1, 0, 16384, 10, 1 <emphasis role="comment">;sine wave</emphasis>
+gisquare <emphasis role="ohdr">ftgen</emphasis> 2, 0, 16384, 10, 1, 0 , .33, 0, .2 , 0, .14, 0 , .11, 0, .09 <emphasis role="comment">;odd harmonics</emphasis>
+gisaw <emphasis role="ohdr">ftgen</emphasis> 3, 0, 16384, 10, 0, .2, 0, .4, 0, .6, 0, .8, 0, 1, 0, .8, 0, .6, 0, .4, 0,.2 <emphasis role="comment">;even harmonics</emphasis>
-<emphasis role="comment">; Instrument #1 - a basic oscillator.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10000
- kcps <emphasis role="op">=</emphasis> 440
- <emphasis role="comment">; Use Table #1.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
-
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+ifn <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">poscil</emphasis> .6, 200, ifn
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 2 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 2 2 <emphasis role="comment">;odd harmonics</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 6 2 3 <emphasis role="comment">;even harmonics</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/ftgenonce.csd.xml b/examples-xml/ftgenonce.csd.xml
new file mode 100644
index 0000000..251bf18
--- /dev/null
+++ b/examples-xml/ftgenonce.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o ftgenonce.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">; Use ftgenonce instead of ftgen, ftgentmp, or f statement</emphasis>
+iHz <emphasis role="op">=</emphasis> p4
+isine <emphasis role="opc">ftgenonce</emphasis> 0, 0, 1024, 10, 1
+aoscili <emphasis role="opc">pluck</emphasis> .7, iHz, 100, isine, 1
+aadsr <emphasis role="opc">adsr</emphasis> 0.015, 0.07, 0.6, 0.3
+asig <emphasis role="op">=</emphasis> aoscili <emphasis role="op">*</emphasis> aadsr
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+
+<emphasis role="stamnt">i</emphasis> 1 0 1 220
+<emphasis role="stamnt">i</emphasis> 1 2 1 261
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ftlen.csd.xml b/examples-xml/ftlen.csd.xml
index 50f1d93..8193ae0 100644
--- a/examples-xml/ftlen.csd.xml
+++ b/examples-xml/ftlen.csd.xml
@@ -2,39 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o ftlen.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis>1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Print out the size of Table #1.</emphasis>
- <emphasis role="comment">; The size will be the number of points excluding the guard point.</emphasis>
- ilen <emphasis role="op">=</emphasis> <emphasis role="opc">ftlen</emphasis>(1)
- <emphasis role="opc">print</emphasis> ilen
-<emphasis role="oblock">endin</emphasis>
+ift <emphasis role="op">=</emphasis> <emphasis role="opc">ftlen</emphasis>(p4)
+ <emphasis role="opc">print</emphasis> ift
+aout <emphasis role="opc">loscil3</emphasis> .8, 4, p4
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 0 <emphasis role="comment">;Csound computes tablesize</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 0 1 "beats.wav" 0 0 0 <emphasis role="comment">;Csound computes tablesize</emphasis>
-<emphasis role="comment">; Table #1: Use an audio file, Csound will determine its size.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 0 1 "mary.wav" 0 0 0
+<emphasis role="stamnt">i</emphasis> 1 0 3 1 <emphasis role="comment">;"fox.wav"</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 3 2 <emphasis role="comment">;"beats.wav"</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 1 second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/ftlptim.csd.xml b/examples-xml/ftlptim.csd.xml
index 10e036a..e0e7909 100644
--- a/examples-xml/ftlptim.csd.xml
+++ b/examples-xml/ftlptim.csd.xml
@@ -2,38 +2,32 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o ftlptim.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis>1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Print out the loop-segment start time in Table #1.</emphasis>
- itim <emphasis role="op">=</emphasis> <emphasis role="opc">ftlptim</emphasis>(1)
- <emphasis role="opc">print</emphasis> itim
-<emphasis role="oblock">endin</emphasis>
+itim <emphasis role="op">=</emphasis> <emphasis role="opc">ftlptim</emphasis>(1)
+ <emphasis role="opc">print</emphasis> itim
+aout <emphasis role="opc">loscil3</emphasis> .8, 40, 1
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "Church.wav" 0 0 0 <emphasis role="comment">;Csound computes tablesize</emphasis>
-<emphasis role="comment">; Table #1: Use an audio file, Csound will determine its size.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 0 1 "mary.wav" 0 0 0
-
-<emphasis role="comment">; Play Instrument #1 for 1 second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 5
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/ftmorf.csd.xml b/examples-xml/ftmorf.csd.xml
index e1bd5a4..87f9e1c 100644
--- a/examples-xml/ftmorf.csd.xml
+++ b/examples-xml/ftmorf.csd.xml
@@ -2,26 +2,26 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o ftmorf.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis>1
<emphasis role="oblock">instr</emphasis> 1
-kndx <emphasis role="opc">line</emphasis> 0, p3, 7
- <emphasis role="opc">ftmorf</emphasis> kndx, 1, 2
-asig <emphasis role="opc">oscili</emphasis> 30000, 440, 2
- <emphasis role="opc">out</emphasis> asig
-<emphasis role="oblock">endin</emphasis>
+kndx <emphasis role="opc">line</emphasis> 0, p3, 7
+ <emphasis role="opc">ftmorf</emphasis> kndx, 1, 2
+asig <emphasis role="opc">oscili</emphasis> .8, 440, 2
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
@@ -36,10 +36,8 @@ asig <emphasis role="opc">oscili</emphasis> 30000, 440, 2
<emphasis role="stamnt">f</emphasis>9 0 1024 10 0 0 0 0 0 0 1
<emphasis role="stamnt">f</emphasis>10 0 1024 10 1 1 1 1 1 1 1
-<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">i</emphasis>1 0 15
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/ftsr.csd.xml b/examples-xml/ftsr.csd.xml
index 003d4de..6a62271 100644
--- a/examples-xml/ftsr.csd.xml
+++ b/examples-xml/ftsr.csd.xml
@@ -1,39 +1,40 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
-<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
-<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o ftsr.wav -W ;;; for file output any platform</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform </emphasis>
+-odac <emphasis role="comment">;;;realtime audio out </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too </emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below: </emphasis>
+<emphasis role="comment">; -o ftsr.wav -W ;;; for file output any platform </emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Print out the sampling rate of Table #1.</emphasis>
- isr <emphasis role="op">=</emphasis> <emphasis role="opc">ftsr</emphasis>(1)
- <emphasis role="opc">print</emphasis> isr
-<emphasis role="oblock">endin</emphasis>
-
+itab <emphasis role="op">=</emphasis> p4
+isr <emphasis role="op">=</emphasis> <emphasis role="opc">ftsr</emphasis>(itab)
+<emphasis role="opc">prints</emphasis> "sampling<emphasis role="op">-</emphasis>rate of <emphasis role="opc">table</emphasis> number <emphasis role="op">%</emphasis>d <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\n", itab, isr
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1: Use an audio file.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 262144 1 "mary.wav" 0 0 0
-
-<emphasis role="comment">; Play Instrument #1 for 1 second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "kickroll.wav" 0 0 0 <emphasis role="comment">;stereo file</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 0 1 "ahh.ai<emphasis role="stamnt">f</emphasis><emphasis role="stamnt">f</emphasis>" 0 0 0 <emphasis role="comment">;&amp; different formats</emphasis>
+<emphasis role="stamnt">f</emphasis> 3 0 0 1 "beats.mp3" 0 0 0
+<emphasis role="stamnt">f</emphasis> 4 0 0 1 "beats.ogg" 0 0 0
+
+<emphasis role="stamnt">i</emphasis> 1 0 1 1
+<emphasis role="stamnt">i</emphasis> 1 + 1 2
+<emphasis role="stamnt">i</emphasis> 1 + 1 3
+<emphasis role="stamnt">i</emphasis> 1 + 1 4
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gain.csd.xml b/examples-xml/gain.csd.xml
index 8607411..759c309 100644
--- a/examples-xml/gain.csd.xml
+++ b/examples-xml/gain.csd.xml
@@ -2,40 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gain.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- asrc <emphasis role="opc">buzz</emphasis> 30000, 440, <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>440, 1 <emphasis role="comment">; band-limited pulse train.</emphasis>
+
+ asrc <emphasis role="opc">buzz</emphasis> .8, 440, <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>440, 1 <emphasis role="comment">; band-limited pulse train.</emphasis>
a1 <emphasis role="opc">reson</emphasis> asrc, 1000, 100 <emphasis role="comment">; Sent through</emphasis>
a2 <emphasis role="opc">reson</emphasis> a1, 3000, 500 <emphasis role="comment">; 2 filters</emphasis>
krms <emphasis role="opc">rms</emphasis> asrc <emphasis role="comment">; then balanced</emphasis>
afin <emphasis role="opc">gain</emphasis> a2, krms <emphasis role="comment">; with source</emphasis>
- <emphasis role="opc">out</emphasis> afin
+ <emphasis role="opc">outs</emphasis> afin, afin
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">;sine wave.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gaussi.csd.xml b/examples-xml/gaussi.csd.xml
new file mode 100644
index 0000000..5ad509b
--- /dev/null
+++ b/examples-xml/gaussi.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o exprand.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+klambda <emphasis role="opc">gaussi</emphasis> 100, 1, 3
+ <emphasis role="opc">printk2</emphasis> klambda <emphasis role="comment">; look</emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>klambda, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 4
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gausstrig-2.csd.xml b/examples-xml/gausstrig-2.csd.xml
new file mode 100644
index 0000000..4ae8e69
--- /dev/null
+++ b/examples-xml/gausstrig-2.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kfrq0 <emphasis role="opc">oscil</emphasis> 8, 0.25, 1
+ktrig <emphasis role="opc">metro</emphasis> 1
+kfrq <emphasis role="opc">samphold</emphasis> kfrq0<emphasis role="op">+</emphasis>8, ktrig
+<emphasis role="ohdr">seed</emphasis> 20120125
+aimp <emphasis role="opc">gausstrig</emphasis> 0.5, kfrq, 0.5, 1
+aenv <emphasis role="opc">filter2</emphasis> aimp, 1, 1, 0.993, 0.993
+anoi <emphasis role="opc">fractalnoise</emphasis> 0.2, 1.7
+al <emphasis role="op">=</emphasis> anoi<emphasis role="op">*</emphasis>aenv
+ar <emphasis role="opc">delay</emphasis> al, 0.02
+<emphasis role="opc">outs</emphasis> al, ar
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+<emphasis role="stamnt">i</emphasis>1 0 16
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gausstrig.csd.xml b/examples-xml/gausstrig.csd.xml
new file mode 100644
index 0000000..f70e117
--- /dev/null
+++ b/examples-xml/gausstrig.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kdev <emphasis role="opc">line</emphasis> 0, p3, 0.9
+<emphasis role="ohdr">seed</emphasis> 20120125
+aimp <emphasis role="opc">gausstrig</emphasis> 0.5, 10, kdev
+aenv <emphasis role="opc">filter2</emphasis> aimp, 1, 1, 0.993, 0.993
+anoi <emphasis role="opc">fractalnoise</emphasis> 0.2, 1.7
+al <emphasis role="op">=</emphasis> anoi<emphasis role="op">*</emphasis>aenv
+ar <emphasis role="opc">delay</emphasis> al, 0.02
+<emphasis role="opc">outs</emphasis> al, ar
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gbuzz.csd.xml b/examples-xml/gbuzz.csd.xml
index 963cd38..b2771a6 100644
--- a/examples-xml/gbuzz.csd.xml
+++ b/examples-xml/gbuzz.csd.xml
@@ -2,44 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gbuzz.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis>1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 20000
- kcps <emphasis role="op">=</emphasis> 440
- knh <emphasis role="op">=</emphasis> 3
- klh <emphasis role="op">=</emphasis> 2
- kmul <emphasis role="op">=</emphasis> 0.7
- ifn <emphasis role="op">=</emphasis> 1
-
- a1 <emphasis role="opc">gbuzz</emphasis> kamp, kcps, knh, klh, kmul, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kcps <emphasis role="op">=</emphasis> 220
+knh <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;total no. of harmonics</emphasis>
+klh <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;lowest harmonic</emphasis>
+kmul <emphasis role="opc">line</emphasis> 0, p3, 1 <emphasis role="comment">;increase amplitude of</emphasis>
+ <emphasis role="comment">;higer partials</emphasis>
+asig <emphasis role="opc">gbuzz</emphasis> .6, kcps, knh, klh, kmul, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a simple cosine waveform.</emphasis>
+<emphasis role="comment">; a cosine wave</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 16384 11 1
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 3 3 1 <emphasis role="comment">;3 harmonics, lowest harmonic=1</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 30 1 <emphasis role="comment">;30 harmonics, lowest harmonic=1</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 3 2 <emphasis role="comment">;3 harmonics, lowest harmonic=3</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 30 2 <emphasis role="comment">;30 harmonics, lowest harmonic=3</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen01.csd.xml b/examples-xml/gen01.csd.xml
index 392d928..0a6b8d0 100644
--- a/examples-xml/gen01.csd.xml
+++ b/examples-xml/gen01.csd.xml
@@ -1,44 +1,51 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
-<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
-<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o gen01.wav -W ;;; for file output any platform</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform </emphasis>
+-odac <emphasis role="comment">;;;realtime audio out </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too </emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below: </emphasis>
+<emphasis role="comment">; -o gen01.wav -W ;;; for file output any platform </emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kcps <emphasis role="op">=</emphasis> 1
- ifn <emphasis role="op">=</emphasis> 1
- ibas <emphasis role="op">=</emphasis> 1
-
- <emphasis role="comment">; Play the audio sample stored in Table #1.</emphasis>
- a1 <emphasis role="opc">loscil</emphasis> kamp, kcps, ifn, ibas
- <emphasis role="opc">out</emphasis> a1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;plays deferred and non-deferred sounds with loscil</emphasis>
+
+ifn <emphasis role="op">=</emphasis> p4
+ibas <emphasis role="op">=</emphasis> 1
+
+asig <emphasis role="opc">loscil</emphasis> 1, 1, ifn, ibas
+ <emphasis role="opc">outs</emphasis> asig, asig
+
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;plays only non-deffered sound </emphasis>
+isnd <emphasis role="op">=</emphasis> p4
+aread <emphasis role="opc">line</emphasis> <emphasis role="ohdr">sr</emphasis><emphasis role="op">*</emphasis>p3, p3, 0 <emphasis role="comment">;play this backward</emphasis>
+asig <emphasis role="opc">tablei</emphasis> aread, isnd <emphasis role="comment">;use table 1</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 131072 1 "beats.wav" 0 0 0 <emphasis role="comment">;non-deferred sound</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 0 1 "<emphasis role="stamnt">f</emphasis>lute.ai<emphasis role="stamnt">f</emphasis><emphasis role="stamnt">f</emphasis>" 0 0 0 <emphasis role="comment">;&amp; deferred sounds in </emphasis>
+<emphasis role="stamnt">f</emphasis> 3 0 0 1 "beats.ogg" 0 0 0 <emphasis role="comment">;different formats </emphasis>
-<emphasis role="comment">; Table #1: read an audio file (using GEN01).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 131072 1 "beats.wav" 0 4 0
+<emphasis role="stamnt">i</emphasis> 1 0 1 1
+<emphasis role="stamnt">i</emphasis> 1 + 1 2
+<emphasis role="stamnt">i</emphasis> 1 + 1 3
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 2 4 2 1 <emphasis role="comment">;non-deffered sound for instr. 2</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen02.csd.xml b/examples-xml/gen02.csd.xml
index 5b72cda..1dc3650 100644
--- a/examples-xml/gen02.csd.xml
+++ b/examples-xml/gen02.csd.xml
@@ -2,50 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen02.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create an index over the length of our entire note.</emphasis>
- kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3
- kndx <emphasis role="opc">phasor</emphasis> kcps
- <emphasis role="comment">; Read Table #1 with our index.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
- ixmode <emphasis role="op">=</emphasis> 1
- kamp <emphasis role="opc">tablei</emphasis> kndx, ifn, ixmode
+ifn <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;choose different tables of GEN02</emphasis>
+kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3 <emphasis role="comment">;index over the length of entire note</emphasis>
+kndx <emphasis role="opc">phasor</emphasis> kcps
+ixmode <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;normalize index data</emphasis>
+kamp <emphasis role="opc">tablei</emphasis> kndx, ifn, ixmode
+asig <emphasis role="opc">poscil</emphasis> kamp, 440, 1 <emphasis role="comment">;use GEN02 as envelope for amplitude</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; Create a sine wave, use the Table #1 values to control</emphasis>
- <emphasis role="comment">; the amplitude. This creates a sound with a long attack.</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> kamp<emphasis role="op">*</emphasis>30000, 440, 2
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1: an envelope with a long attack (using GEN02).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16 2 0 1 2 3 4 5 6 7 8 9 10 11 0
-<emphasis role="comment">; Table #2, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">f</emphasis> 1 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 5 2 0 2 0
+<emphasis role="stamnt">f</emphasis> 3 0 5 2 0 2 10 0
+<emphasis role="stamnt">f</emphasis> 4 0 9 2 0 2 10 100 0
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 2
+<emphasis role="stamnt">i</emphasis> 1 3 2 3
+<emphasis role="stamnt">i</emphasis> 1 6 2 4
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen03.csd.xml b/examples-xml/gen03.csd.xml
index de270af..2d4ac38 100644
--- a/examples-xml/gen03.csd.xml
+++ b/examples-xml/gen03.csd.xml
@@ -2,50 +2,65 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen03.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create an index over the length of our entire note.</emphasis>
- kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3
- kndx <emphasis role="opc">phasor</emphasis> kcps
-
- <emphasis role="comment">; Read Table #1 with our index.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
- ixmode <emphasis role="op">=</emphasis> 1
- kamp <emphasis role="opc">table</emphasis> kndx, ifn, ixmode
-
- <emphasis role="comment">; Create a sine wave, use the Table #1 values to control</emphasis>
- <emphasis role="comment">; the amplitude.</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> kamp<emphasis role="op">*</emphasis>30000, 440, 2
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">;example by Russell Pinkston - Univ. of Texas (but slightly modified)</emphasis>
+
+gisine <emphasis role="ohdr">ftgen</emphasis> 1, 0, 16384, 10, 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+ihertz <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+ipkamp <emphasis role="op">=</emphasis> p5
+iwsfn <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;waveshaping function</emphasis>
+inmfn <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;normalization function</emphasis>
+aenv <emphasis role="opc">linen</emphasis> 1, .01, p3, .1 <emphasis role="comment">;overall amp envelope</emphasis>
+actrl <emphasis role="opc">linen</emphasis> 1, 2, p3, 2 <emphasis role="comment">;waveshaping index control</emphasis>
+aindex <emphasis role="opc">poscil</emphasis> actrl<emphasis role="op">/</emphasis>2, ihertz, gisine <emphasis role="comment">;sine wave to be distorted</emphasis>
+asignal <emphasis role="opc">tablei</emphasis> .5<emphasis role="op">+</emphasis>aindex, iwsfn, 1 <emphasis role="comment">;waveshaping</emphasis>
+anormal <emphasis role="opc">tablei</emphasis> actrl, inmfn,1 <emphasis role="comment">;amplitude normalization</emphasis>
+asig <emphasis role="op">=</emphasis> asignal<emphasis role="op">*</emphasis>anormal<emphasis role="op">*</emphasis>ipkamp<emphasis role="op">*</emphasis>aenv
+asig <emphasis role="opc">dcblock2</emphasis> asig <emphasis role="comment">;get rid of possible DC </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; first four notes are specific Chebyshev polynomials using gen03. The values were obtained from Dodge page 147</emphasis>
-<emphasis role="comment">; Table #1: a polynomial function (using GEN03).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 1025 3 -1 1 5 4 3 2 2 1
-<emphasis role="comment">; Table #2, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
+<emphasis role="stamnt">f</emphasis>4 0 513 3 -1 1 0 1 <emphasis role="comment">; First-order Chebyshev: x</emphasis>
+<emphasis role="stamnt">f</emphasis>5 0 257 4 4 1 <emphasis role="comment">; Normalizing function for fn4</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">f</emphasis>6 0 513 3 -1 1 -1 0 2 <emphasis role="comment">; Second-order Chebyshev: 2x2 - 1</emphasis>
+<emphasis role="stamnt">f</emphasis>7 0 257 4 6 1 <emphasis role="comment">; Normalizing function for fn6</emphasis>
+<emphasis role="stamnt">f</emphasis>8 0 513 3 -1 1 0 -3 0 4 <emphasis role="comment">; Third-order Chebyshev: 4x3 - 3x</emphasis>
+<emphasis role="stamnt">f</emphasis>9 0 257 4 8 1 <emphasis role="comment">; Normalizing function for fn8</emphasis>
+<emphasis role="stamnt">f</emphasis>10 0 513 3 -1 10 0 -7 0 56 0 -112 0 64 <emphasis role="comment">; Seventh-order Chebyshev: 64x7 - 112x5 + 56x3 - 7x</emphasis>
+<emphasis role="stamnt">f</emphasis>11 0 257 4 10 1 <emphasis role="comment">; Normalizing function for fn10</emphasis>
+
+<emphasis role="stamnt">f</emphasis>12 0 513 3 -1 1 5 4 3 2 2 1 <emphasis role="comment">; a 4th order polynomial function over the x-interval -1 to 1</emphasis>
+<emphasis role="stamnt">f</emphasis>13 0 257 4 12 1 <emphasis role="comment">; Normalizing function for fn12</emphasis>
+
+<emphasis role="comment">; five notes with same fundamental, different waveshape &amp; normalizing functions</emphasis>
+<emphasis role="comment">; pch amp wsfn nmfn</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 3 8.00 .7 4 5
+<emphasis role="stamnt">i</emphasis>1 + . . . 6 7
+<emphasis role="stamnt">i</emphasis>1 + . . . 8 9
+<emphasis role="stamnt">i</emphasis>1 + . . . 10 11
+<emphasis role="stamnt">i</emphasis>1 + . . . 12 13
+
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen04.csd.xml b/examples-xml/gen04.csd.xml
new file mode 100644
index 0000000..8112fa3
--- /dev/null
+++ b/examples-xml/gen04.csd.xml
@@ -0,0 +1,54 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen04.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 16384, 10, 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ihertz <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+ipkamp <emphasis role="op">=</emphasis> p5
+iwsfn <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;waveshaping function </emphasis>
+inmfn <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;normalization function </emphasis>
+agate <emphasis role="opc">linen</emphasis> 1, .01, p3, .1 <emphasis role="comment">;overall amp envelope</emphasis>
+kctrl <emphasis role="opc">linen</emphasis> .9, 2, p3, 2 <emphasis role="comment">;waveshaping index control</emphasis>
+aindex <emphasis role="opc">poscil</emphasis> kctrl<emphasis role="op">/</emphasis>2, ihertz, gisine <emphasis role="comment">;sine wave to be distorted</emphasis>
+asignal <emphasis role="opc">tablei</emphasis> .5<emphasis role="op">+</emphasis>aindex, iwsfn, 1 <emphasis role="comment">;waveshaping</emphasis>
+knormal <emphasis role="opc">tablei</emphasis> 1<emphasis role="op">/</emphasis>kctrl, inmfn , 1 <emphasis role="comment">;amplitude normalization</emphasis>
+ <emphasis role="opc">outs</emphasis> asignal<emphasis role="op">*</emphasis>knormal<emphasis role="op">*</emphasis>ipkamp<emphasis role="op">*</emphasis>agate, asignal<emphasis role="op">*</emphasis>knormal<emphasis role="op">*</emphasis>ipkamp<emphasis role="op">*</emphasis>agate
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 64 21 6 <emphasis role="comment">;Gaussian (random) distribution</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 33 4 1 1 <emphasis role="comment">;normalizing function with midpoint bipolar offset</emphasis>
+
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="comment">; st dur pch amp wsfn inmfn</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 4 6.00 .7 1 2
+<emphasis role="stamnt">i</emphasis>1 4 . 7.00 .
+<emphasis role="stamnt">i</emphasis>1 8 . 8.00 .
+<emphasis role="comment">;-------------------------------------------------------------------------------------</emphasis>
+<emphasis role="stamnt">f</emphasis>3 0 1025 13 1 1 0 5 0 5 0 10 <emphasis role="comment">;Chebyshev algorithm</emphasis>
+<emphasis role="stamnt">f</emphasis>4 0 513 4 3 1 <emphasis role="comment">;normalizing function with midpoint bipolar offset</emphasis>
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="comment">; st dur pch amp wsfn inmfn</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 4 6.00 .9 3 4
+<emphasis role="stamnt">i</emphasis>1 4 . 7.00 .
+<emphasis role="stamnt">i</emphasis>1 8 . 8.00 .
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen05.csd.xml b/examples-xml/gen05.csd.xml
index fcc94ef..ac3d928 100644
--- a/examples-xml/gen05.csd.xml
+++ b/examples-xml/gen05.csd.xml
@@ -2,50 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen05.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create an index over the length of our entire note.</emphasis>
- kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3
- kndx <emphasis role="opc">phasor</emphasis> kcps
- <emphasis role="comment">; Read Table #1 with our index.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
- ixmode <emphasis role="op">=</emphasis> 1
- kamp <emphasis role="opc">table</emphasis> kndx, ifn, ixmode
+ifn <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;choose different tables for GEN05</emphasis>
+kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3 <emphasis role="comment">;index over the length of entire note</emphasis>
+kndx <emphasis role="opc">phasor</emphasis> kcps
+ixmode <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;normalize index data</emphasis>
+kamp <emphasis role="opc">tablei</emphasis> kndx, ifn, ixmode
+asig <emphasis role="opc">poscil</emphasis> kamp, 440, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; Create a sine wave, use the Table #1 values to control</emphasis>
- <emphasis role="comment">; the amplitude. This creates a nice percussive sound.</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> kamp<emphasis role="op">*</emphasis>30000, 440, 2
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 129 5 1 100 0.0001 29 <emphasis role="comment">;short attack</emphasis>
+<emphasis role="stamnt">f</emphasis> 3 0 129 5 0.00001 87 1 22 .5 20 0.0001 <emphasis role="comment">;long attack</emphasis>
-<emphasis role="comment">; Table #1: a percussive envelope (using GEN05).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 64 5 1 2 120 60 1 1 0.001 1
-<emphasis role="comment">; Table #2, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 2
+<emphasis role="stamnt">i</emphasis> 1 3 2 3
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen06.csd.xml b/examples-xml/gen06.csd.xml
index 88e0870..4a41248 100644
--- a/examples-xml/gen06.csd.xml
+++ b/examples-xml/gen06.csd.xml
@@ -2,52 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen06.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create an index over the length of our entire note.</emphasis>
- kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3
- kndx <emphasis role="opc">phasor</emphasis> kcps
- <emphasis role="comment">; Read Table #1 with our index.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
- ixmode <emphasis role="op">=</emphasis> 1
- kval <emphasis role="opc">table</emphasis> kndx, ifn, ixmode
+ifn <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;choose between tables</emphasis>
+kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3 <emphasis role="comment">;create index over duration of note.</emphasis>
+kndx <emphasis role="opc">phasor</emphasis> kcps
+ixmode <emphasis role="op">=</emphasis> 1
+kval <emphasis role="opc">table</emphasis> kndx, ifn, ixmode <emphasis role="comment">;normalize mode</emphasis>
- <emphasis role="comment">; Generate a sine waveform, use our Table #1 value to </emphasis>
- <emphasis role="comment">; vary its frequency by 100 Hz from its base frequency.</emphasis>
- ibasefreq <emphasis role="op">=</emphasis> 440
- kfreq <emphasis role="op">=</emphasis> kval <emphasis role="op">*</emphasis> 100
- a1 <emphasis role="opc">oscil</emphasis> 20000, ibasefreq <emphasis role="op">+</emphasis> kfreq, 2
- <emphasis role="opc">out</emphasis> a1
+kfreq <emphasis role="op">=</emphasis> kval <emphasis role="op">*</emphasis> 30 <emphasis role="comment">;scale frequency to emphasixe effect</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .7, 220 <emphasis role="op">+</emphasis> kfreq, 1 <emphasis role="comment">;add to frequency</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 513 6 1 128 -1 128 1 64 -.5 64 .5 16 -.5 8 1 16 -.5 8 1 16 -.5 84 1 16 -.5 8 .1 16 -.1 17 0
+<emphasis role="stamnt">f</emphasis> 3 0 513 6 0 128 0.5 128 1 128 0 129 -1
-<emphasis role="comment">; Table #1: a curve (using GEN06).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 65 6 0 16 0.5 16 1 16 0 16 -1
-<emphasis role="comment">; Table #2, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 3 2
+<emphasis role="stamnt">i</emphasis> 1 4 3 3
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen07.csd.xml b/examples-xml/gen07.csd.xml
index 06673d3..19336b1 100644
--- a/examples-xml/gen07.csd.xml
+++ b/examples-xml/gen07.csd.xml
@@ -2,42 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen07.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kcps <emphasis role="op">=</emphasis> 440
- ifn <emphasis role="op">=</emphasis> 1
-
- <emphasis role="comment">; Play the sine wave stored in Table #1.</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;use GEN07 to alter frequency</emphasis>
+
+ifn <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;use different GEN07 tables</emphasis>
+kcps <emphasis role="opc">init</emphasis> 10<emphasis role="op">/</emphasis>p3 <emphasis role="comment">;index ftable 10 times over the duration of entire note</emphasis>
+kndx <emphasis role="opc">phasor</emphasis> kcps
+ixmode <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;normalize index data</emphasis>
+kfrq <emphasis role="opc">tablei</emphasis> kndx, ifn, ixmode
+kfrq <emphasis role="op">=</emphasis> kfrq<emphasis role="op">*</emphasis>1000 <emphasis role="comment">;scale</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .8, 1220<emphasis role="op">+</emphasis>kfrq, 1 <emphasis role="comment">;add to frequency</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1: a sawtooth wave (using GEN07).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 256 7 0 128 1 0 -1 128 0
-
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">f</emphasis> 1 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 1024 7 0 512 1 0 -1 512 0 <emphasis role="comment">;sawtooth up and down</emphasis>
+<emphasis role="stamnt">f</emphasis> 3 0 1024 7 1 512 1 0 -1 512 -1 <emphasis role="comment">;square</emphasis>
+<emphasis role="stamnt">f</emphasis> 4 0 1024 7 1 1024 -1 <emphasis role="comment">;saw down</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 2
+<emphasis role="stamnt">i</emphasis> 1 + 2 3
+<emphasis role="stamnt">i</emphasis> 1 + 1 4
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen08.csd.xml b/examples-xml/gen08.csd.xml
index 2a9b8d7..4f46816 100644
--- a/examples-xml/gen08.csd.xml
+++ b/examples-xml/gen08.csd.xml
@@ -2,52 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen08.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create an index over the length of our entire note.</emphasis>
- kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3
- kndx <emphasis role="opc">phasor</emphasis> kcps
- <emphasis role="comment">; Read Table #1 with our index.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
- ixmode <emphasis role="op">=</emphasis> 1
- kval <emphasis role="opc">table</emphasis> kndx, ifn, ixmode
-
- <emphasis role="comment">; Generate a sine waveform, use our Table #1 value to </emphasis>
- <emphasis role="comment">; vary its frequency by 100 Hz from its base frequency.</emphasis>
- ibasefreq <emphasis role="op">=</emphasis> 440
- kfreq <emphasis role="op">=</emphasis> kval <emphasis role="op">*</emphasis> 100
- a1 <emphasis role="opc">oscil</emphasis> 20000, ibasefreq <emphasis role="op">+</emphasis> kfreq, 2
- <emphasis role="opc">out</emphasis> a1
+ifn <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;choose between tables</emphasis>
+kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3 <emphasis role="comment">;create index over duration of note.</emphasis>
+kndx <emphasis role="opc">phasor</emphasis> kcps
+ixmode <emphasis role="op">=</emphasis> 1
+kval <emphasis role="opc">table</emphasis> kndx, 2, ixmode <emphasis role="comment">;normalize index data</emphasis>
+
+ibasefreq <emphasis role="op">=</emphasis> 440
+kfreq <emphasis role="op">=</emphasis> kval <emphasis role="op">*</emphasis> 100 <emphasis role="comment">;scale</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .7, ibasefreq <emphasis role="op">+</emphasis> kfreq, 1 <emphasis role="comment">;and add to frequency</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 65 8 0 16 1 16 1 16 0 17 0
+<emphasis role="stamnt">f</emphasis> 3 0 65 8 -1 32 1 2 0 14 0 17 0
-<emphasis role="comment">; Table #1: a curve with a smooth hump (using GEN08).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 65 8 0 16 0 16 1 16 0 16 0
-<emphasis role="comment">; Table #2, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 2 1
+<emphasis role="stamnt">i</emphasis> 1 3 2 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen09.csd.xml b/examples-xml/gen09.csd.xml
index a5f48b9..400788b 100644
--- a/examples-xml/gen09.csd.xml
+++ b/examples-xml/gen09.csd.xml
@@ -2,43 +2,43 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen09.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gi1 <emphasis role="ohdr">ftgen</emphasis> 1,0,2^10,9, 1,3,0, 3,1,0, 9,0.333,180 <emphasis role="comment">;an approximation of a square wave</emphasis>
+gi2 <emphasis role="ohdr">ftgen</emphasis> 2,0,2^10,9, 1,3,180, 3,1,0, 9,0.333,0 <emphasis role="comment">;same values as gi1, except some phase values</emphasis>
+gi3 <emphasis role="ohdr">ftgen</emphasis> 3,0,2^10,9, 1, .4, 0, 2.2, .5, 0, 3.8, 1, 0 <emphasis role="comment">;inharmonic, but does not sound well --> wave does not end at same point as where it begins --> artefacts</emphasis>
+gi4 <emphasis role="ohdr">ftgen</emphasis> 4,0,2^10,9, 10, .4, 0, 22, .5, 0, 38, 1, 0 <emphasis role="comment">;the same proportions, but value of partial number is multiplied 10 times -->the sound is much clearer,</emphasis>
+ <emphasis role="comment">;because the sudden "jump" like the one in gi3 will pop up only once in 10 repetitions</emphasis>
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kcps <emphasis role="op">=</emphasis> 440
- ifn <emphasis role="op">=</emphasis> 1
- <emphasis role="comment">; Play the waveform stored in Table #1.</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kamp <emphasis role="op">=</emphasis> .6
+kcps <emphasis role="op">=</emphasis> 220
+ifn <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">poscil</emphasis> kamp, kcps<emphasis role="op">*</emphasis>p5, ifn
+ <emphasis role="opc">outs</emphasis> asig,asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1: a cosine wave (using GEN09).</emphasis>
-<emphasis role="comment">; This is a sine wave with an initial phase of 90 degrees.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 9 1 1 90
+<emphasis role="stamnt">i</emphasis> 1 0 2 1 1 <emphasis role="comment">;subtle difference between table 1 and 2</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 2 2 1
+<emphasis role="stamnt">i</emphasis> 1 7 2 3 1 <emphasis role="comment">;big difference between table 3 and 4</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 10 2 4 .1 <emphasis role="comment">;p5 has to compensate for the 10 repetitions of gi4 as opposed to gi3 to get the same pitch</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen10.csd.xml b/examples-xml/gen10.csd.xml
index afd5861..eadbd61 100644
--- a/examples-xml/gen10.csd.xml
+++ b/examples-xml/gen10.csd.xml
@@ -2,42 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen10.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kcps <emphasis role="op">=</emphasis> 440
- ifn <emphasis role="op">=</emphasis> 1
- <emphasis role="comment">; Play the sine wave stored in Table #1.</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kamp <emphasis role="op">=</emphasis> .6
+kcps <emphasis role="op">=</emphasis> 440
+ifn <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
+ <emphasis role="opc">outs</emphasis> asig,asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 16384 10 1 <emphasis role="comment">; Sine</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 <emphasis role="comment">; Sawtooth</emphasis>
+<emphasis role="stamnt">f</emphasis>3 0 16384 10 1 0 0.3 0 0.2 0 0.14 0 .111 <emphasis role="comment">; Square</emphasis>
+<emphasis role="stamnt">f</emphasis>4 0 16384 10 1 1 1 1 0.7 0.5 0.3 0.1 <emphasis role="comment">; Pulse</emphasis>
-<emphasis role="comment">; Table #1: a simple sine wave (using GEN10).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+<emphasis role="stamnt">i</emphasis> 1 0 2 1
+<emphasis role="stamnt">i</emphasis> 1 3 2 2
+<emphasis role="stamnt">i</emphasis> 1 6 2 3
+<emphasis role="stamnt">i</emphasis> 1 9 2 4
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen11.csd.xml b/examples-xml/gen11.csd.xml
index 85051d7..1ad5b00 100644
--- a/examples-xml/gen11.csd.xml
+++ b/examples-xml/gen11.csd.xml
@@ -2,42 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen11.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kcps <emphasis role="op">=</emphasis> 440
- ifn <emphasis role="op">=</emphasis> 1
- <emphasis role="comment">; Play the cosine wave stored in Table #1.</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
+ifn <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">oscil</emphasis> .8, 220, ifn
+ <emphasis role="opc">outs</emphasis> asig,asig
+
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 11 1 1 <emphasis role="comment">;number of harmonics = 1</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 16384 11 10 1 .7 <emphasis role="comment">;number of harmonics = 10</emphasis>
+<emphasis role="stamnt">f</emphasis> 3 0 16384 11 10 5 2 <emphasis role="comment">;number of harmonics = 10, 5th harmonic is amplified 2 times</emphasis>
-<emphasis role="comment">; Table #1: a simple cosine wave (using GEN11).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 11 1 1
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 2 1
+<emphasis role="stamnt">i</emphasis> 1 + 2 2
+<emphasis role="stamnt">i</emphasis> 1 + 2 3
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen12.csd.xml b/examples-xml/gen12.csd.xml
index 68bcf13..03a5590 100644
--- a/examples-xml/gen12.csd.xml
+++ b/examples-xml/gen12.csd.xml
@@ -2,50 +2,70 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen12.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-
-<emphasis role="comment">; Initialize the global variables.</emphasis>
+<emphasis role="comment">;example from the Csound Book, page 87</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create an index over the length of our entire note.</emphasis>
- kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3
- kndx <emphasis role="opc">phasor</emphasis> kcps
-
- <emphasis role="comment">; Read Table #1 with our index.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
- ixmode <emphasis role="op">=</emphasis> 1
- kamp <emphasis role="opc">tablei</emphasis> kndx, ifn, ixmode
- <emphasis role="comment">; Create a sine wave, use the Table #1 values to control</emphasis>
- <emphasis role="comment">; the amplitude. This creates a sound with a long attack.</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> kamp<emphasis role="op">*</emphasis>30000, 440, 2
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+idur <emphasis role="op">=</emphasis> p3
+iamp <emphasis role="op">=</emphasis> p4
+icarfrq <emphasis role="op">=</emphasis> p5
+imodfrq <emphasis role="op">=</emphasis> p6
+aenv <emphasis role="opc">expseg</emphasis> .01, idur<emphasis role="op">*</emphasis>.1, iamp, idur<emphasis role="op">*</emphasis>.8, iamp<emphasis role="op">*</emphasis>.75, idur<emphasis role="op">*</emphasis>.1, .01
+i1 <emphasis role="op">=</emphasis> p7<emphasis role="op">*</emphasis>imodfrq <emphasis role="comment">;p7=modulation index start</emphasis>
+i2 <emphasis role="op">=</emphasis> p8<emphasis role="op">*</emphasis>imodfrq <emphasis role="comment">;p8=modulation index end</emphasis>
+adev <emphasis role="opc">line</emphasis> i1, idur, i2 <emphasis role="comment">;modulation frequency</emphasis>
+aindex <emphasis role="opc">line</emphasis> p7, idur, p8 <emphasis role="comment">;modulation index</emphasis>
+ar <emphasis role="opc">linseg</emphasis> 1, .1, p9, p3<emphasis role="op">-</emphasis>.2, p10, .1, 1 <emphasis role="comment">; r value envelope: p9-p10 =exp. partial strength parameter start and end</emphasis>
+amp1 <emphasis role="op">=</emphasis> (aindex<emphasis role="op">*</emphasis>(ar<emphasis role="op">+</emphasis>(1<emphasis role="op">/</emphasis>ar)))<emphasis role="op">/</emphasis>2
+afmod <emphasis role="opc">oscili</emphasis> amp1, imodfrq, 1 <emphasis role="comment">;FM modulator (sine)</emphasis>
+atab <emphasis role="op">=</emphasis> (aindex<emphasis role="op">*</emphasis>(ar<emphasis role="op">-</emphasis>(1<emphasis role="op">/</emphasis>ar)))<emphasis role="op">/</emphasis>2 <emphasis role="comment">;index to table</emphasis>
+alook <emphasis role="opc">tablei</emphasis> atab, 37 <emphasis role="comment">;table lookup to GEN12</emphasis>
+aamod <emphasis role="opc">oscili</emphasis> atab, adev, 2 <emphasis role="comment">;am modulator (cosine)</emphasis>
+aamod <emphasis role="op">=</emphasis> (<emphasis role="opc">exp</emphasis>(alook<emphasis role="op">+</emphasis>aamod))<emphasis role="op">*</emphasis>aenv
+acar <emphasis role="opc">oscili</emphasis> aamod, afmod<emphasis role="op">+</emphasis>icarfrq, 1 <emphasis role="comment">;AFM (carrier)</emphasis>
+asig <emphasis role="opc">balance</emphasis> acar, aenv
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 8192 10 1
+<emphasis role="stamnt">f</emphasis> 2 0 8192 9 1 1 90
+<emphasis role="stamnt">f</emphasis>37 0 1024 -12 40 <emphasis role="comment">;Bessel function-defined from 0 to 40</emphasis>
-<emphasis role="comment">; Table #1: a modified Bessel function (using GEN12).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 2049 12 20
-<emphasis role="comment">; Table #2, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 2 .2 800 800 1 6 .1 2
+<emphasis role="stamnt">i</emphasis> 1 + . . 1900 147 8 1 4 .2
+<emphasis role="stamnt">i</emphasis> 1 . . . 1100 380 2 9 .5 2
+<emphasis role="stamnt">i</emphasis> 1 . 10 . 100 100 11 3 .2 5
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1 .1 200 100 1 6 .1 2
+<emphasis role="stamnt">i</emphasis> 1 + . &lt; &lt; &lt; &lt; &lt; &lt; &lt;
+<emphasis role="stamnt">i</emphasis> 1 + . . &lt; &lt; &lt; &lt; &lt; &lt;
+<emphasis role="stamnt">i</emphasis> 1 + . . &lt; &lt; &lt; &lt; &lt; &lt;
+<emphasis role="stamnt">i</emphasis> 1 + . . &lt; &lt; &lt; &lt; &lt; &lt;
+<emphasis role="stamnt">i</emphasis> 1 + . . &lt; &lt; &lt; &lt; &lt; &lt;
+<emphasis role="stamnt">i</emphasis> 1 + . . &lt; &lt; &lt; &lt; &lt; &lt;
+<emphasis role="stamnt">i</emphasis> 1 + 10 .2 800 800 9 1 .9 6
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 11 .25 50 51 1 6 .1 2
+<emphasis role="stamnt">i</emphasis> 1 1 9 .05 700 401 1 6 .1 2
+<emphasis role="stamnt">i</emphasis> 1 2 8 . 900 147 8 1 4 .2
+<emphasis role="stamnt">i</emphasis> 1 3 7 . 1100 381 2 9 .5 2
+<emphasis role="stamnt">i</emphasis> 1 4 6 . 200 102 11 3 .2 5
+<emphasis role="stamnt">i</emphasis> 1 5 6 . 800 803 9 1 .9 6
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen13.csd.xml b/examples-xml/gen13.csd.xml
index 83ec341..a3f08b6 100644
--- a/examples-xml/gen13.csd.xml
+++ b/examples-xml/gen13.csd.xml
@@ -2,52 +2,114 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen13.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create an index over the length of our entire note.</emphasis>
- kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3
- kndx <emphasis role="opc">phasor</emphasis> kcps
-
- <emphasis role="comment">; Read Table #1 with our index.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
- ixmode <emphasis role="op">=</emphasis> 1
- kval <emphasis role="opc">table</emphasis> kndx, ifn, ixmode
-
- <emphasis role="comment">; Generate a sine waveform, use our Table #1 value to</emphasis>
- <emphasis role="comment">; vary its frequency by 100 Hz from its base frequency.</emphasis>
- ibasefreq <emphasis role="op">=</emphasis> 440
- kfreq <emphasis role="op">=</emphasis> kval <emphasis role="op">*</emphasis> 100
- a1 <emphasis role="opc">oscil</emphasis> 20000, ibasefreq <emphasis role="op">+</emphasis> kfreq, 2
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">;example by Russell Pinkston - Univ. of Texas (but slightly modified)</emphasis>
+
+gisine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 16384, 10, 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+ihertz <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+ipkamp <emphasis role="op">=</emphasis> p5
+iwsfn <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;waveshaping function</emphasis>
+inmfn <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;normalization function</emphasis>
+agate <emphasis role="opc">linen</emphasis> 1, .01, p3, .1 <emphasis role="comment">;overall amp envelope</emphasis>
+kctrl <emphasis role="opc">linen</emphasis> .99, 2, p3, 2 <emphasis role="comment">;waveshaping index control</emphasis>
+aindex <emphasis role="opc">poscil</emphasis> kctrl<emphasis role="op">/</emphasis>2, ihertz, gisine <emphasis role="comment">;sine wave to be distorted</emphasis>
+asignal <emphasis role="opc">tablei</emphasis> .5<emphasis role="op">+</emphasis>aindex, iwsfn, 1 <emphasis role="comment">;waveshaping</emphasis>
+knormal <emphasis role="opc">tablei</emphasis> kctrl, inmfn, 1 <emphasis role="comment">;amplitude normalization</emphasis>
+asig <emphasis role="op">=</emphasis> asignal<emphasis role="op">*</emphasis>knormal<emphasis role="op">*</emphasis>ipkamp<emphasis role="op">*</emphasis>agate
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; This proves the statement in Dodge (p. 147) that Chebyshev polynomials</emphasis>
+<emphasis role="comment">; of order K have "only the kth harmonic." This is only true when the </emphasis>
+<emphasis role="comment">; waveshaping index is at the maximum - i.e., when the entire transfer</emphasis>
+<emphasis role="comment">; function is being accessed. RP.</emphasis>
+<emphasis role="comment">;--------------------------------------------------------------------------------------------------------------------------------------------</emphasis>
+<emphasis role="comment">; quasi sawtooth transfer function: </emphasis>
+<emphasis role="comment">; h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19 h20</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 513 13 1 1 0 100 -50 -33 25 20 -16.7 -14.2 12.5 11.1 -10 -9.09 8.333 7.69 -7.14 -6.67 6.25 5.88 -5.55 -5.26 5
+<emphasis role="stamnt">f</emphasis>2 0 257 4 1 1 <emphasis role="comment">; normalizing function with midpoint bipolar offset</emphasis>
-<emphasis role="comment">; Table #1: a polynomial function (using GEN13).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 1025 13 1 1 0 5 0 3 0 1
-<emphasis role="comment">; Table #2, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
+<emphasis role="comment">; st dur pch amp wsfn nmfn</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 4 6.00 .7 1 2
+<emphasis role="stamnt">i</emphasis>1 4 . 7.00 .
+<emphasis role="stamnt">i</emphasis>1 8 . 8.00 .
+<emphasis role="comment">;-------------------------------------------------------------------------------------------------------------------------------------------- </emphasis>
+<emphasis role="comment">; quasi square wave transfer function: </emphasis>
+<emphasis role="comment">; h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19</emphasis>
+<emphasis role="stamnt">f</emphasis>3 0 513 13 1 1 0 100 0 -33 0 20 0 -14.2 0 11.1 0 -9.09 0 7.69 0 -6.67 0 5.88 0 -5.26
+<emphasis role="stamnt">f</emphasis>4 0 257 4 3 1 <emphasis role="comment">; normalizing function with midpoint bipolar offset</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="stamnt">e</emphasis>
+<emphasis role="comment">; st dur pch amp wsfn nmfn</emphasis>
+<emphasis role="stamnt">i</emphasis>1 16 4 6.00 .7 3 4
+<emphasis role="stamnt">i</emphasis>1 20 . 7.00 .
+<emphasis role="stamnt">i</emphasis>1 24 . 8.00 .
+<emphasis role="comment">;-------------------------------------------------------------------------------------------------------------------------------------------- </emphasis>
+<emphasis role="comment">; quasi triangle wave transfer function: </emphasis>
+<emphasis role="comment">; h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19</emphasis>
+<emphasis role="stamnt">f</emphasis>5 0 513 13 1 1 0 100 0 -11.11 0 4 0 -2.04 0 1.23 0 -.826 0 .59 0 -.444 0 .346 0 -.277
+<emphasis role="stamnt">f</emphasis>6 0 257 4 5 1 <emphasis role="comment">; normalizing function with midpoint bipolar offset</emphasis>
+<emphasis role="comment">; st dur pch amp wsfn nmfn</emphasis>
+<emphasis role="stamnt">i</emphasis>1 32 4 6.00 .7 5 6
+<emphasis role="stamnt">i</emphasis>1 36 . 7.00 .
+<emphasis role="stamnt">i</emphasis>1 40 . 8.00 .
+<emphasis role="comment">;--------------------------------------------------------------------------------------------------------------------------------------------</emphasis>
+<emphasis role="comment">; transfer function1: h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16</emphasis>
+<emphasis role="stamnt">f</emphasis>7 0 513 13 1 1 0 1 -.8 0 .6 0 0 0 .4 0 0 0 0 .1 -.2 -.3 .5
+<emphasis role="stamnt">f</emphasis>8 0 257 4 7 1 <emphasis role="comment">; normalizing function with midpoint bipolar offset</emphasis>
+<emphasis role="comment">; st dur pch amp wsfn nmfn</emphasis>
+<emphasis role="stamnt">i</emphasis>1 48 4 5.00 .7 7 8
+<emphasis role="stamnt">i</emphasis>1 52 . 6.00 .
+<emphasis role="stamnt">i</emphasis>1 56 . 7.00 .
+<emphasis role="comment">;--------------------------------------------------------------------------------------------------------------------------------------------</emphasis>
+<emphasis role="comment">;=========================================================================;</emphasis>
+<emphasis role="comment">; This demonstrates the use of high partials, sometimes without a ;</emphasis>
+<emphasis role="comment">; fundamental, to get quasi-inharmonic spectra from waveshaping. ;</emphasis>
+<emphasis role="comment">;=========================================================================;</emphasis>
+<emphasis role="comment">; transfer function2: h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16</emphasis>
+<emphasis role="stamnt">f</emphasis>9 0 513 13 1 1 0 0 0 -.1 0 .3 0 -.5 0 .7 0 -.9 0 1 0 -1 0
+<emphasis role="stamnt">f</emphasis>10 0 257 4 9 1 <emphasis role="comment">; normalizing function with midpoint bipolar offset</emphasis>
+<emphasis role="comment">; st dur pch amp wsfn nmfn</emphasis>
+<emphasis role="stamnt">i</emphasis>1 64 4 5.00 .7 9 10
+<emphasis role="stamnt">i</emphasis>1 68 . 6.00 .
+<emphasis role="stamnt">i</emphasis>1 72 . 7.00 .
+<emphasis role="comment">;--------------------------------------------------------------------------------------------------------------------------------------------</emphasis>
+<emphasis role="comment">; transfer function3: h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19 h17 h18 h19 h20</emphasis>
+<emphasis role="stamnt">f</emphasis>11 0 513 13 1 1 0 0 0 0 0 0 0 -1 0 1 0 0 -.1 0 .1 0 -.2 .3 0 -.7 0 .2 0 -.1
+<emphasis role="stamnt">f</emphasis>12 0 257 4 11 1 <emphasis role="comment">; normalizing function with midpoint bipolar offset</emphasis>
+<emphasis role="comment">; st dur pch amp wsfn nmfn</emphasis>
+<emphasis role="stamnt">i</emphasis>1 80 4 5.00 .7 11 12
+<emphasis role="stamnt">i</emphasis>1 84 . 5.06 .
+<emphasis role="stamnt">i</emphasis>1 88 . 6.00 .
+<emphasis role="comment">;--------------------------------------------------------------------------------------------------------------------------------------------</emphasis>
+<emphasis role="comment">;=========================================================================;</emphasis>
+<emphasis role="comment">; split a sinusoid into 3 odd-harmonic partials of relative strength 5:3:1</emphasis>
+<emphasis role="comment">;=========================================================================;</emphasis>
+<emphasis role="comment">;--------------------------------------------------------------------------------------------------------------------------------------------</emphasis>
+<emphasis role="comment">; transfer function4: h0 h1 h2 h3 h4 h5</emphasis>
+<emphasis role="stamnt">f</emphasis>13 0 513 13 1 1 0 5 0 3 0 1
+<emphasis role="stamnt">f</emphasis>14 0 257 4 13 1 <emphasis role="comment">; normalizing function with midpoint bipolar offset</emphasis>
+<emphasis role="comment">; st dur pch amp wsfn nmfn</emphasis>
+<emphasis role="stamnt">i</emphasis>1 96 4 5.00 .7 13 14
+<emphasis role="stamnt">i</emphasis>1 100 . 5.06 .
+<emphasis role="stamnt">i</emphasis>1 104 . 6.00 .
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen14.csd.xml b/examples-xml/gen14.csd.xml
index bf8e757..2e2cbaa 100644
--- a/examples-xml/gen14.csd.xml
+++ b/examples-xml/gen14.csd.xml
@@ -2,52 +2,55 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen14.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create an index over the length of our entire note.</emphasis>
- kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3
- kndx <emphasis role="opc">phasor</emphasis> kcps
-
- <emphasis role="comment">; Read Table #1 with our index.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
- ixmode <emphasis role="op">=</emphasis> 1
- kval <emphasis role="opc">table</emphasis> kndx, ifn, ixmode
-
- <emphasis role="comment">; Generate a sine waveform, use our Table #1 value to</emphasis>
- <emphasis role="comment">; vary its frequency by 100 Hz from its base frequency.</emphasis>
- ibasefreq <emphasis role="op">=</emphasis> 440
- kfreq <emphasis role="op">=</emphasis> kval <emphasis role="op">*</emphasis> 100
- a1 <emphasis role="opc">oscil</emphasis> 20000, ibasefreq <emphasis role="op">+</emphasis> kfreq, 2
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
-
-
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">;after the example from The Csound Book, page 83</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;compare results from GEN13 &amp; GEN14</emphasis>
+
+iwshpfn <emphasis role="op">=</emphasis> p6
+inrmfn <emphasis role="op">=</emphasis> p7
+aswp <emphasis role="opc">linseg</emphasis> 0.01, p3<emphasis role="op">*</emphasis>.5, .49, p3<emphasis role="op">*</emphasis>.5, 0.01 <emphasis role="comment">;index sweep function</emphasis>
+aindex <emphasis role="opc">poscil</emphasis> aswp, p5, 2 <emphasis role="comment">;sound to waveshape</emphasis>
+atable <emphasis role="opc">tablei</emphasis> aindex, iwshpfn, 1, .5 <emphasis role="comment">;waveshape index</emphasis>
+anrm <emphasis role="opc">tablei</emphasis> aswp<emphasis role="op">*</emphasis>2, inrmfn, 1 <emphasis role="comment">;normalization </emphasis>
+aenv <emphasis role="opc">linen</emphasis> p4, .01, p3, .02 <emphasis role="comment">;amplitude envelope</emphasis>
+asig <emphasis role="op">=</emphasis> (atable<emphasis role="op">*</emphasis>anrm)<emphasis role="op">*</emphasis>aenv <emphasis role="comment">;normalize and impose envelope</emphasis>
+asig <emphasis role="opc">dcblock2</emphasis> asig <emphasis role="comment">;get rid of DC</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1: a polynomial function (using GEN14).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 1025 14 1 1 0 5 0 3 0 1
-<emphasis role="comment">; Table #2, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
+<emphasis role="stamnt">f</emphasis> 2 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">f</emphasis> 28 0 4097 13 1 1 1 0 .8 0 .5 0 .2 <emphasis role="comment">;waveshaping function: GEN13 - odd harmonics</emphasis>
+<emphasis role="stamnt">f</emphasis> 280 0 2049 4 28 1 <emphasis role="comment">;normalization function for f28</emphasis>
+<emphasis role="stamnt">f</emphasis> 29 0 4097 14 1 1 1 0 .8 0 .5 0 .2 <emphasis role="comment">;waveshaping function: GEN14 - same harmonics</emphasis>
+<emphasis role="stamnt">f</emphasis> 290 0 2049 4 29 1 <emphasis role="comment">;normalization function for f29</emphasis>
+<emphasis role="stamnt">f</emphasis> 30 0 4097 13 1 1 0 1 0 .6 0 .4 0 .1 <emphasis role="comment">;waveshaping function: GEN13 - even harmonics</emphasis>
+<emphasis role="stamnt">f</emphasis> 301 0 2049 4 30 1 <emphasis role="comment">;normalization function for f30</emphasis>
+<emphasis role="stamnt">f</emphasis> 31 0 4097 14 1 1 0 1 0 .6 0 .4 0 .1 <emphasis role="comment">;waveshaping function: GEN13 - even harmonics</emphasis>
+<emphasis role="stamnt">f</emphasis> 310 0 2049 4 31 1 <emphasis role="comment">;normalization function for 31</emphasis>
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 3 .7 440 28 280
+<emphasis role="stamnt">i</emphasis>1 4 . .7 . 29 290
+<emphasis role="stamnt">i</emphasis>1 8 . .7 . 30 301
+<emphasis role="stamnt">i</emphasis>1 12 3 .7 . 31 310
+
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen15.csd.xml b/examples-xml/gen15.csd.xml
new file mode 100644
index 0000000..c4584bd
--- /dev/null
+++ b/examples-xml/gen15.csd.xml
@@ -0,0 +1,89 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen15.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example from the Csound Book, page 85</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+idur <emphasis role="op">=</emphasis> p3
+iamp <emphasis role="op">=</emphasis> p4
+ifrq <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p5) <emphasis role="comment">;pitch</emphasis>
+iswp1 <emphasis role="op">=</emphasis> p6
+iswp2 <emphasis role="op">=</emphasis> p7
+kswp <emphasis role="opc">line</emphasis> iswp1, p3, iswp2 <emphasis role="comment">;amplitude sweep values</emphasis>
+acosi <emphasis role="opc">oscili</emphasis> kswp<emphasis role="op">*</emphasis>.5, ifrq, 2 <emphasis role="comment">;f2=cosine wave</emphasis>
+asine <emphasis role="opc">oscili</emphasis> kswp, ifrq, 1 <emphasis role="comment">;f1=sine wave</emphasis>
+atab1 <emphasis role="opc">tablei</emphasis> acosi, 33, 1, .5 <emphasis role="comment">;tables a1 to GEN13</emphasis>
+atab2 <emphasis role="opc">tablei</emphasis> acosi, 34, 1, .5 <emphasis role="comment">;tables a1 to GEN14</emphasis>
+knrm1 <emphasis role="opc">tablei</emphasis> kswp, 35, 1 <emphasis role="comment">;normalizing f35</emphasis>
+knrm2 <emphasis role="opc">tablei</emphasis> kswp, 36, 1 <emphasis role="comment">;normalizing f36</emphasis>
+anrm1 <emphasis role="op">=</emphasis> atab1<emphasis role="op">*</emphasis>knrm1 <emphasis role="comment">;normalize GEN13 signal</emphasis>
+anrm2 <emphasis role="op">=</emphasis> atab2<emphasis role="op">*</emphasis>knrm2<emphasis role="op">*</emphasis>asine <emphasis role="comment">;normalize GEN14 signal</emphasis>
+amix <emphasis role="op">=</emphasis> anrm1<emphasis role="op">+</emphasis>anrm2 <emphasis role="comment">;mix GEN13 and GEN14</emphasis>
+kenv <emphasis role="opc">expseg</emphasis> .001, idur<emphasis role="op">*</emphasis>.1, iamp, idur<emphasis role="op">*</emphasis>.1, iamp<emphasis role="op">*</emphasis>.8, idur<emphasis role="op">*</emphasis>.8, .001
+asig <emphasis role="op">=</emphasis> amix<emphasis role="op">*</emphasis>kenv
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 8193 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 8193 9 1 1 90 <emphasis role="comment">;cosine wave</emphasis>
+
+<emphasis role="comment">; Note that all the f33 tables in the following sections are defined with p4=-15,</emphasis>
+<emphasis role="comment">; which means that tables 33 and 34 will not be normalized. Thus if we display</emphasis>
+<emphasis role="comment">; tables when running this example, we'll get correct diagrams even if one table</emphasis>
+<emphasis role="comment">; has very small values instead of 0 values, due to cpu approximations in processing</emphasis>
+<emphasis role="comment">; sin(180), as in sections 2, 4, and 5. This has no consequence on the audio result,</emphasis>
+<emphasis role="comment">; because of the use of amp normalization (tables 35 and 36).</emphasis>
+
+<emphasis role="stamnt">f</emphasis> 33 0 8193 -15 1 1 1 0 1 180 .8 45 .6 270 .5 90 .4 225 .2 135 .1 315 <emphasis role="comment">;makes function tables 33 and 34</emphasis>
+<emphasis role="stamnt">f</emphasis> 35 0 4097 4 33 1 <emphasis role="comment">;amp normalization for f33</emphasis>
+<emphasis role="stamnt">f</emphasis> 36 0 4097 4 34 1 <emphasis role="comment">;amp normalization for f34</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5 .6 8.00 0 1
+<emphasis role="stamnt">i</emphasis> 1 + . .6 8.00 1 0
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="comment">;even harmonics with no phase shift, odd harmonics with phase shift</emphasis>
+<emphasis role="stamnt">f</emphasis> 33 0 8193 -15 1 1 1 0 1 0 1 180 1 180 1 0 1 0 1 180 1 180 1 0 1 0 1 180 1 180
+<emphasis role="stamnt">f</emphasis> 35 0 4097 4 33 1 <emphasis role="comment">;amp normalization for f33</emphasis>
+<emphasis role="stamnt">f</emphasis> 36 0 4097 4 34 1 <emphasis role="comment">;amp normalization for f34</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5 .6 8.00 0 1
+<emphasis role="stamnt">i</emphasis> 1 + . .6 8.00 1 0
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="comment">;different harmonic strenghts and phases</emphasis>
+<emphasis role="stamnt">f</emphasis> 33 0 8193 -15 1 1 1 0 1 0 .9 180 .5 270 .75 90 .4 45 .2 225 .1 0
+<emphasis role="stamnt">f</emphasis> 35 0 4097 4 33 1 <emphasis role="comment">;amp normalization for f33</emphasis>
+<emphasis role="stamnt">f</emphasis> 36 0 4097 4 34 1 <emphasis role="comment">;amp normalization for f34</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5 .6 8.00 0 1
+<emphasis role="stamnt">i</emphasis> 1 + . .6 8.00 1 0
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="comment">;lower harmonics no phase shift, upper harmonics with phase shift</emphasis>
+<emphasis role="stamnt">f</emphasis> 33 0 8193 -15 1 1 1 0 1 0 .5 0 .9 0 .3 0 .75 0 .2 180 .6 180 .15 180 .5 180 .1 180
+<emphasis role="stamnt">f</emphasis> 35 0 4097 4 33 1 <emphasis role="comment">;amp normalization for f33</emphasis>
+<emphasis role="stamnt">f</emphasis> 36 0 4097 4 34 1 <emphasis role="comment">;amp normalization for f34</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5 .6 8.00 0 1
+<emphasis role="stamnt">i</emphasis> 1 + . .6 8.00 1 0
+
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="comment">;lower harmonics with phase shift, upper harmonics no phase shift</emphasis>
+<emphasis role="stamnt">f</emphasis> 33 0 8193 -15 1 1 1 180 1 180 .5 180 .9 180 .3 180 .75 180 .2 0 .6 0 .15 0 .5 0 .1 0
+<emphasis role="stamnt">f</emphasis> 35 0 4097 4 33 1 <emphasis role="comment">;amp normalization for f33</emphasis>
+<emphasis role="stamnt">f</emphasis> 36 0 4097 4 34 1 <emphasis role="comment">;amp normalization for f34</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5 .6 8.00 0 1
+<emphasis role="stamnt">i</emphasis> 1 + . .6 8.00 1 0
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen17.csd.xml b/examples-xml/gen17.csd.xml
new file mode 100644
index 0000000..c535b17
--- /dev/null
+++ b/examples-xml/gen17.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -M0 -+rtmidi=virtual <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen17.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+ <emphasis role="oblock">instr</emphasis> 1
+
+inote <emphasis role="opc">cpsmidi</emphasis>
+iveloc <emphasis role="opc">ampmidi</emphasis> .5
+ictl <emphasis role="opc">midictrl</emphasis> 5 <emphasis role="comment">;move slider of controller 5 to change ftable</emphasis>
+itab <emphasis role="opc">table</emphasis> ictl, 2
+aout <emphasis role="opc">poscil</emphasis> iveloc, inote, itab
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 8193 10 1
+<emphasis role="stamnt">f</emphasis> 2 0 128 -17 0 10 32 20 64 30 96 40 <emphasis role="comment">;inhibit rescaling</emphasis>
+
+<emphasis role="stamnt">f</emphasis> 10 0 16384 10 1 <emphasis role="comment">; Sine</emphasis>
+<emphasis role="stamnt">f</emphasis> 20 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111<emphasis role="comment">; Sawtooth</emphasis>
+<emphasis role="stamnt">f</emphasis> 30 0 16384 10 1 0 0.3 0 0.2 0 0.14 0 .111<emphasis role="comment">; Square</emphasis>
+<emphasis role="stamnt">f</emphasis> 40 0 16384 10 1 1 1 1 0.7 0.5 0.3 0.1 <emphasis role="comment">; Pulse</emphasis>
+
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;run for 30 seconds</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen18.csd.xml b/examples-xml/gen18.csd.xml
new file mode 100644
index 0000000..799a095
--- /dev/null
+++ b/examples-xml/gen18.csd.xml
@@ -0,0 +1,46 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen18.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ifn <emphasis role="op">=</emphasis> p4
+ilen <emphasis role="op">=</emphasis> <emphasis role="opc">ftlen</emphasis>(ifn)
+aphase <emphasis role="opc">phasor</emphasis> 220
+asig <emphasis role="opc">tablei</emphasis> aphase<emphasis role="op">*</emphasis>ilen, ifn
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1 <emphasis role="comment">;sine</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 <emphasis role="comment">;sawtooth</emphasis>
+<emphasis role="stamnt">f</emphasis> 3 0 4096 11 10 5 2 <emphasis role="comment">;cosine partials</emphasis>
+
+<emphasis role="stamnt">f</emphasis> 11 0 8192 18 1 1 0 4095 2 1 4096 8191 <emphasis role="comment">;sine+sawtooth</emphasis>
+<emphasis role="stamnt">f</emphasis> 12 0 8192 18 1 1 0 4095 3 1 4096 8191 <emphasis role="comment">;sine+cosine partials</emphasis>
+<emphasis role="stamnt">f</emphasis> 13 0 1024 18 1 0.7 0 767 3 0.7 512 1023 <emphasis role="comment">;sine+cosine partials overlapped, shorter table</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 2 <emphasis role="comment">;play sawtooth </emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 3 <emphasis role="comment">;then cosine partials</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 5 2 11 <emphasis role="comment">;now sine+sawtooth</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 12 <emphasis role="comment">;and sine+cosine partials</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 13 <emphasis role="comment">;and sine+cosine partials overlapped, shorter table</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen19.csd.xml b/examples-xml/gen19.csd.xml
index d6229e2..13ef7cd 100644
--- a/examples-xml/gen19.csd.xml
+++ b/examples-xml/gen19.csd.xml
@@ -2,52 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gen19.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create an index over the length of our entire note.</emphasis>
- kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3
- kndx <emphasis role="opc">phasor</emphasis> kcps
- <emphasis role="comment">; Read Table #1 with our index.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
- ixmode <emphasis role="op">=</emphasis> 1
- kval <emphasis role="opc">table</emphasis> kndx, ifn, ixmode
-
- <emphasis role="comment">; Generate a sine waveform, use our Table #1 value to </emphasis>
- <emphasis role="comment">; vary its frequency by 100 Hz from its base frequency.</emphasis>
- ibasefreq <emphasis role="op">=</emphasis> 440
- kfreq <emphasis role="op">=</emphasis> kval <emphasis role="op">*</emphasis> 100
- a1 <emphasis role="opc">oscil</emphasis> 20000, ibasefreq <emphasis role="op">+</emphasis> kfreq, 2
- <emphasis role="opc">out</emphasis> a1
+<emphasis role="comment">;p4 = transposition factor</emphasis>
+<emphasis role="comment">;p5 = speed factor</emphasis>
+<emphasis role="comment">;p6 = function table for grain data</emphasis>
+i1 <emphasis role="op">=</emphasis> <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis><emphasis role="opc">ftlen</emphasis>(1) <emphasis role="comment">;scaling to reflect sample rate and table length</emphasis>
+a1 <emphasis role="opc">phasor</emphasis> i1<emphasis role="op">*</emphasis>p5 <emphasis role="comment">;index for speed</emphasis>
+asigl <emphasis role="opc">fog</emphasis> .5, 15, p4, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3 <emphasis role="comment">;left channel</emphasis>
+asigr <emphasis role="opc">fog</emphasis> .4, 25, p4<emphasis role="op">+</emphasis>.2, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3, .5 <emphasis role="comment">;right channel</emphasis>
+ <emphasis role="opc">outs</emphasis> asigl, asigr
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 131072 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 0
+<emphasis role="stamnt">f</emphasis> 2 0 1024 19 .5 .5 270 .5
-<emphasis role="comment">; Table #1: a bell curve (using GEN19).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 -19 1 1 260 1
-<emphasis role="comment">; Table #2, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 3 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">i</emphasis> 1 0 10 .7 .1
+<emphasis role="stamnt">i</emphasis> 1 + 4 1.2 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen20.csd.xml b/examples-xml/gen20.csd.xml
new file mode 100644
index 0000000..8a3217c
--- /dev/null
+++ b/examples-xml/gen20.csd.xml
@@ -0,0 +1,49 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform </emphasis>
+-odac <emphasis role="comment">;;;realtime audio out </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too </emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below: </emphasis>
+<emphasis role="comment">; -o gen20.wav -W ;;; for file output any platform </emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+insnd <emphasis role="op">=</emphasis> 10 <emphasis role="comment">;"fox.wav"</emphasis>
+ibasfrq <emphasis role="op">=</emphasis> 44100 <emphasis role="op">/</emphasis> <emphasis role="opc">ftlen</emphasis>(insnd) <emphasis role="comment">;use original sample rate of insnd file </emphasis>
+
+kamp <emphasis role="opc">expseg</emphasis> .001, p3<emphasis role="op">/</emphasis>2, .7, p3<emphasis role="op">/</emphasis>2, .8 <emphasis role="comment">;envelope</emphasis>
+kpitch <emphasis role="opc">line</emphasis> ibasfrq, p3, ibasfrq <emphasis role="op">*</emphasis> .8
+kdens <emphasis role="opc">line</emphasis> 600, p3, 10
+kaoff <emphasis role="opc">line</emphasis> 0, p3, .1
+kpoff <emphasis role="opc">line</emphasis> 0, p3, ibasfrq <emphasis role="op">*</emphasis> .5
+kgdur <emphasis role="opc">line</emphasis> .04, p3, .001 <emphasis role="comment">;shorten duration of grain during note</emphasis>
+imaxgdur <emphasis role="op">=</emphasis> .5
+igfn <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;different windows</emphasis>
+asigL <emphasis role="opc">grain</emphasis> kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, igfn, imaxgdur, 0.0
+asigR <emphasis role="opc">grain</emphasis> kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, igfn, imaxgdur, 0.0
+ <emphasis role="opc">outs</emphasis> asigL, asigR
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis>1 0 512 20 2 <emphasis role="comment">;Hanning window </emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 512 20 6 1 <emphasis role="comment">;Gaussian window </emphasis>
+<emphasis role="stamnt">f</emphasis>10 0 16384 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 0
+
+<emphasis role="stamnt">i</emphasis>1 0 5 1 <emphasis role="comment">;use Hanning window </emphasis>
+<emphasis role="stamnt">i</emphasis>1 + 5 2 <emphasis role="comment">;use Gaussian window</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen21.csd.xml b/examples-xml/gen21.csd.xml
new file mode 100644
index 0000000..df76347
--- /dev/null
+++ b/examples-xml/gen21.csd.xml
@@ -0,0 +1,56 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen21.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ifn <emphasis role="op">=</emphasis> p4
+isize <emphasis role="op">=</emphasis> <emphasis role="opc">ftlen</emphasis>(ifn)
+<emphasis role="opc">prints</emphasis> "TABLE NUMBER<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>d\n", ifn
+<emphasis role="opc">prints</emphasis> "Index\tValue\n"
+
+iindex <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;start loop</emphasis>
+<emphasis role="olabel">begin_loop</emphasis><emphasis role="op">:</emphasis>
+ ivalue <emphasis role="opc">tab_i</emphasis> iindex, ifn
+ <emphasis role="opc">prints</emphasis> "<emphasis role="op">%</emphasis>d<emphasis role="op">:</emphasis>\t<emphasis role="op">%</emphasis>f\n", iindex, ivalue
+ iindex <emphasis role="op">=</emphasis> iindex <emphasis role="op">+</emphasis> 1
+ <emphasis role="octrl">if</emphasis> (iindex <emphasis role="op">&lt;</emphasis> isize) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">begin_loop</emphasis>
+
+<emphasis role="comment">;produce sound - and repeat it 10 times so you can hear the patterns: </emphasis>
+aphase <emphasis role="opc">phasor</emphasis> 10<emphasis role="op">/</emphasis>10 <emphasis role="comment">;play all 32 values 10x over 10 seconds</emphasis>
+aphase <emphasis role="op">=</emphasis> aphase<emphasis role="op">*</emphasis>isize <emphasis role="comment">;step through table</emphasis>
+afrq <emphasis role="opc">table</emphasis> aphase, p4 <emphasis role="comment">;read table number</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .5, (afrq<emphasis role="op">*</emphasis>500)<emphasis role="op">+</emphasis>1000,10 <emphasis role="comment">;scale values of table 500 times, add 1000 Hz</emphasis>
+ <emphasis role="opc">outs</emphasis> asig , asig <emphasis role="comment">;so we can distinguish the different tables </emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 32 21 1 <emphasis role="comment">;Uniform (white noise)</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 32 21 6 <emphasis role="comment">;Gaussian (mu=0.0, sigma=1/3.83=0.261)</emphasis>
+<emphasis role="stamnt">f</emphasis>3 0 32 21 6 5.745 <emphasis role="comment">;Gaussian (mu=0.0, sigma=5.745/3.83=1.5)</emphasis>
+<emphasis role="stamnt">f</emphasis>4 0 32 21 9 1 1 2 <emphasis role="comment">;Beta (note that level precedes arguments)</emphasis>
+<emphasis role="stamnt">f</emphasis>5 0 32 21 10 1 2 <emphasis role="comment">;Weibull</emphasis>
+<emphasis role="stamnt">f</emphasis>10 0 8192 10 1 <emphasis role="comment">;Sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10 1
+<emphasis role="stamnt">i</emphasis> 1 11 10 2
+<emphasis role="stamnt">i</emphasis> 1 22 10 3
+<emphasis role="stamnt">i</emphasis> 1 33 10 4
+<emphasis role="stamnt">i</emphasis> 1 44 10 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen23.csd.xml b/examples-xml/gen23.csd.xml
new file mode 100644
index 0000000..d67b83e
--- /dev/null
+++ b/examples-xml/gen23.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen23.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">;"spectrum.txt" is created by the spectrum plotter of Audacity (set at size 128), using "fox.wav".</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;performs additive synthesis based on spectrum.txt</emphasis>
+
+indx <emphasis role="op">=</emphasis>0 <emphasis role="comment">;start reading at first value</emphasis>
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+ifreq <emphasis role="opc">tab_i</emphasis> indx, 2 <emphasis role="comment">;take odd values of list (= frequency)</emphasis>
+iamp <emphasis role="opc">tab_i</emphasis> indx<emphasis role="op">+</emphasis>1, 2 <emphasis role="comment">;take even values of list (= amplitude)</emphasis>
+<emphasis role="opc">event_i</emphasis> "i", 10, 0, p3, iamp, ifreq <emphasis role="comment">;use "event_i" to trigger instr. 10 </emphasis>
+ <emphasis role="octrl">loop_lt</emphasis> indx, 2, 128, <emphasis role="olabel">loop</emphasis> <emphasis role="comment">;use all 128 frequency and amplitude values</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 10 <emphasis role="comment">;generate sound</emphasis>
+
+iamp <emphasis role="op">=</emphasis> p4
+ifreq <emphasis role="op">=</emphasis> p5
+asig <emphasis role="opc">poscil</emphasis> <emphasis role="opc">ampdb</emphasis>(iamp), ifreq, 1
+asig <emphasis role="opc">linen</emphasis> asig, .01, p3, p2
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 128 -23 "spectrum.txt" <emphasis role="comment">;"spectrum.txt" can be found in /manual/examples</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 2
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen24.csd.xml b/examples-xml/gen24.csd.xml
new file mode 100644
index 0000000..fcad873
--- /dev/null
+++ b/examples-xml/gen24.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen24.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ifn <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;choose between tables</emphasis>
+kcps <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>p3 <emphasis role="comment">;create index over duration of note.</emphasis>
+kndx <emphasis role="opc">phasor</emphasis> kcps
+ixmode <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;normalize to 0-1</emphasis>
+kval <emphasis role="opc">table</emphasis> kndx, ifn, ixmode
+asig <emphasis role="opc">poscil</emphasis> .7, 440 <emphasis role="op">+</emphasis> kval, 1 <emphasis role="comment">;add to frequency</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 10 0 16384 -24 1 0 400<emphasis role="comment">;scale sine wave from table 1 from 0 to 400</emphasis>
+<emphasis role="stamnt">f</emphasis> 11 0 16384 -24 1 0 50 <emphasis role="comment">;and from 0 to 50</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3 10
+<emphasis role="stamnt">i</emphasis> 1 4 3 11
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen25.csd.xml b/examples-xml/gen25.csd.xml
new file mode 100644
index 0000000..93385ad
--- /dev/null
+++ b/examples-xml/gen25.csd.xml
@@ -0,0 +1,40 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen25.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisin <emphasis role="ohdr">ftgen</emphasis> 1, 0, 32768, 10, 1
+gienv <emphasis role="ohdr">ftgen</emphasis> 2, 0, 1025, 25, 0, 0.01, 200, 1, 400, 1, 513, 0.01 <emphasis role="comment">; y value must be >= 0</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="opc">init</emphasis> 3<emphasis role="op">/</emphasis>p3 <emphasis role="comment">;play 3x over duration of note</emphasis>
+kndx <emphasis role="opc">phasor</emphasis> kcps
+ixmode <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;normalize to 0-1</emphasis>
+kval <emphasis role="opc">table</emphasis> kndx, gienv, ixmode
+kval <emphasis role="op">=</emphasis>kval<emphasis role="op">*</emphasis>100 <emphasis role="comment">;scale up to 0-100</emphasis>
+asig <emphasis role="opc">poscil</emphasis> 1, 220<emphasis role="op">+</emphasis>kval, gisin <emphasis role="comment">;use table for amplitude</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 4
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen27.csd.xml b/examples-xml/gen27.csd.xml
new file mode 100644
index 0000000..3943e82
--- /dev/null
+++ b/examples-xml/gen27.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen27.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisin <emphasis role="ohdr">ftgen</emphasis> 1, 0, 32768, 10, 1
+gienv <emphasis role="ohdr">ftgen</emphasis> 2, 0, 1025, 27, 0, 0,200, 1, 400, <emphasis role="op">-</emphasis>1, 513, 0
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="opc">init</emphasis> 3<emphasis role="op">/</emphasis>p3 <emphasis role="comment">;play 3x over duration of note</emphasis>
+kndx <emphasis role="opc">phasor</emphasis> kcps
+ixmode <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;normalize to 0-1</emphasis>
+kval <emphasis role="opc">table</emphasis> kndx, gienv, ixmode
+kval <emphasis role="op">=</emphasis> kval<emphasis role="op">*</emphasis>100 <emphasis role="comment">;scale 0-100</emphasis>
+asig <emphasis role="opc">poscil</emphasis> 1, 220<emphasis role="op">+</emphasis>kval, 1 <emphasis role="comment">;add to 220 Hz</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 4
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen28.csd.xml b/examples-xml/gen28.csd.xml
new file mode 100644
index 0000000..51f76e6
--- /dev/null
+++ b/examples-xml/gen28.csd.xml
@@ -0,0 +1,62 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen28.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+
+ga1 <emphasis role="opc">init</emphasis> 0
+ga2 <emphasis role="opc">init</emphasis> 0
+ga3 <emphasis role="opc">init</emphasis> 0
+ga4 <emphasis role="opc">init</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;uses GEN28 file "move", as found in /manual/examples</emphasis>
+
+kx <emphasis role="opc">init</emphasis> 0
+ky <emphasis role="opc">init</emphasis> 0
+ktime <emphasis role="opc">line</emphasis> 0, 5, 5 <emphasis role="comment">;same time as in table 1 (="move")</emphasis>
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;sound source is looped</emphasis>
+a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 1, ktime, .1, kx, ky <emphasis role="comment">;use table 1 = GEN28</emphasis>
+ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis> <emphasis role="comment">;send to reverb</emphasis>
+
+ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
+ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
+ga3 <emphasis role="op">=</emphasis> ga3<emphasis role="op">+</emphasis>ar3
+ga4 <emphasis role="op">=</emphasis> ga4<emphasis role="op">+</emphasis>ar4
+ <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb instrument</emphasis>
+
+a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
+a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
+a3 <emphasis role="opc">reverb2</emphasis> ga3, 2.5, .5
+a4 <emphasis role="opc">reverb2</emphasis> ga4, 2.5, .5
+ <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
+
+ga1<emphasis role="op">=</emphasis>0
+ga2<emphasis role="op">=</emphasis>0
+ga3<emphasis role="op">=</emphasis>0
+ga4<emphasis role="op">=</emphasis>0
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 0 28 "move"
+
+<emphasis role="stamnt">i</emphasis>1 0 5 <emphasis role="comment">;same time as ktime</emphasis>
+<emphasis role="stamnt">i</emphasis> 99 0 10 <emphasis role="comment">;keep reverb active</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen30.csd.xml b/examples-xml/gen30.csd.xml
new file mode 100644
index 0000000..78bafd8
--- /dev/null
+++ b/examples-xml/gen30.csd.xml
@@ -0,0 +1,68 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in No messages</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen30.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="comment">;a simplified example of Istvan Varga</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+isaw <emphasis role="ohdr">ftgen</emphasis> 1, 0, 16384, 7, 1, 16384, <emphasis role="op">-</emphasis>1 <emphasis role="comment">;sawtooth wave </emphasis>
+iFM <emphasis role="ohdr">ftgen</emphasis> 3, 0, 4096, 7, 0, 512, 0.25, 512, 1, 512, 0.25, 512, \
+ 0, 512, <emphasis role="op">-</emphasis>0.25, 512, <emphasis role="op">-</emphasis>1, 512, <emphasis role="op">-</emphasis>0.25, 512, 0 <emphasis role="comment">;FM waveform</emphasis>
+iAM <emphasis role="ohdr">ftgen</emphasis> 4, 0, 4096, 5, 1, 4096, 0.01 <emphasis role="comment">;AM waveform</emphasis>
+iEQ <emphasis role="ohdr">ftgen</emphasis> 5, 0, 1024, 5, 1, 512, 32, 512, 1 <emphasis role="comment">;FM to EQ</emphasis>
+isine <emphasis role="ohdr">ftgen</emphasis> 6, 0, 1024, 10, 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> generate bandlimited sawtooth waves <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+i0 <emphasis role="op">=</emphasis> 0
+<emphasis role="olabel">loop1</emphasis><emphasis role="op">:</emphasis>
+imaxh <emphasis role="op">=</emphasis> <emphasis role="ohdr">sr</emphasis> <emphasis role="op">/</emphasis> (2 <emphasis role="op">*</emphasis> 440.0 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2.0) <emphasis role="op">*</emphasis> (i0 <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12))
+i_ <emphasis role="ohdr">ftgen</emphasis> i0 <emphasis role="op">+</emphasis> 10, 0, 4096, <emphasis role="op">-</emphasis>30, 1, 1, imaxh <emphasis role="comment">;use gen 30</emphasis>
+i0 <emphasis role="op">=</emphasis> i0 <emphasis role="op">+</emphasis> 1
+ <emphasis role="octrl">if</emphasis> (i0 <emphasis role="op">&lt;</emphasis> 127.5) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">loop1</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="op">=</emphasis> 440.0 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2.0) <emphasis role="op">*</emphasis> (p4 <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12) <emphasis role="comment">;note frequency</emphasis>
+klpmaxf <emphasis role="opc">limit</emphasis> p5 <emphasis role="op">*</emphasis> kcps, 1000.0, 12000.0 <emphasis role="comment">;lowpass max. frequency</emphasis>
+
+kfmd1 <emphasis role="op">=</emphasis> 0.03 <emphasis role="op">*</emphasis> kcps <emphasis role="comment">;FM depth in Hz</emphasis>
+kamfr <emphasis role="op">=</emphasis> kcps <emphasis role="op">*</emphasis> 0.02 <emphasis role="comment">;AM frequency</emphasis>
+kamfr2 <emphasis role="op">=</emphasis> kcps <emphasis role="op">*</emphasis> 0.1
+
+kfnum <emphasis role="op">=</emphasis> (10 <emphasis role="op">+</emphasis> 69 <emphasis role="op">+</emphasis> 0.5 <emphasis role="op">+</emphasis> 12 <emphasis role="op">*</emphasis> <emphasis role="opc">log</emphasis>(kcps <emphasis role="op">/</emphasis> 440.0) <emphasis role="op">/</emphasis> <emphasis role="opc">log</emphasis>(2.0)) <emphasis role="comment">;table number</emphasis>
+aenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0 <emphasis role="comment">;amp. envelope</emphasis>
+
+asig <emphasis role="opc">oscbnk</emphasis> kcps, 0.0, kfmd1, 0.0, 40, 200, 0.1, 0.2, 0, 0, 144, \
+ 0.0, klpmaxf, 0.0, 0.0, 1.5, 1.5, 2, kfnum, 3, 0, 5, 5, 5
+asig <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> aenv<emphasis role="op">*</emphasis>.03
+<emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 6 41 10
+<emphasis role="stamnt">i</emphasis> 1 0 6 60
+<emphasis role="stamnt">i</emphasis> 1 0 6 65
+<emphasis role="stamnt">i</emphasis> 1 0 6 69
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 6 41 64
+<emphasis role="stamnt">i</emphasis> 1 0 6 60
+<emphasis role="stamnt">i</emphasis> 1 0 6 65
+<emphasis role="stamnt">i</emphasis> 1 0 6 69
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen32.csd.xml b/examples-xml/gen32.csd.xml
new file mode 100644
index 0000000..d08b6e8
--- /dev/null
+++ b/examples-xml/gen32.csd.xml
@@ -0,0 +1,60 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen32.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+itmp <emphasis role="ohdr">ftgen</emphasis> 1, 0, 16384, 7, 1, 16384, <emphasis role="op">-</emphasis>1 <emphasis role="comment">; sawtooth</emphasis>
+itmp <emphasis role="ohdr">ftgen</emphasis> 2, 0, 8192, 10, 1 <emphasis role="comment">; sine</emphasis>
+itmp <emphasis role="ohdr">ftgen</emphasis> 5, 0, 4096, <emphasis role="op">-</emphasis>32, <emphasis role="op">-</emphasis>2, 1.5, 1.0, 0.25, 1, 2, 0.5, 0, 1, 3, <emphasis role="op">-</emphasis>0.25, 0.5 <emphasis role="comment">; mix tables</emphasis>
+itmp <emphasis role="ohdr">ftgen</emphasis> 6, 0, 16384, 20, 3, 1 <emphasis role="comment">; window</emphasis>
+<emphasis role="comment">; generate band-limited waveforms</emphasis>
+inote <emphasis role="op">=</emphasis> 0
+<emphasis role="olabel">loop0</emphasis><emphasis role="op">:</emphasis>
+icps <emphasis role="op">=</emphasis> 440 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2) <emphasis role="op">*</emphasis> (inote <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12) <emphasis role="comment">; one table for</emphasis>
+inumh <emphasis role="op">=</emphasis> <emphasis role="ohdr">sr</emphasis> <emphasis role="op">/</emphasis> (2 <emphasis role="op">*</emphasis> icps) <emphasis role="comment">; each MIDI note number</emphasis>
+ift <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(inote <emphasis role="op">+</emphasis> 256.5)
+itmp <emphasis role="ohdr">ftgen</emphasis> ift, 0, 4096, <emphasis role="op">-</emphasis>30, 5, 1, inumh
+inote <emphasis role="op">=</emphasis> inote <emphasis role="op">+</emphasis> 1
+ <emphasis role="octrl">if</emphasis> (inote <emphasis role="op">&lt;</emphasis> 127.5) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">loop0</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="opc">expon</emphasis> 20, p3, 16000
+kft <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(256.5 <emphasis role="op">+</emphasis> 69 <emphasis role="op">+</emphasis> 12 <emphasis role="op">*</emphasis> <emphasis role="opc">log</emphasis>(kcps <emphasis role="op">/</emphasis> 440) <emphasis role="op">/</emphasis> <emphasis role="opc">log</emphasis>(2))
+kft <emphasis role="op">=</emphasis> (kft <emphasis role="op">></emphasis> 383 <emphasis role="op">?</emphasis> 383 <emphasis role="op">:</emphasis> kft)
+a1 <emphasis role="opc">phasor</emphasis> kcps
+a1 <emphasis role="opc">tableikt</emphasis> a1, kft, 1, 0, 1
+ <emphasis role="opc">outs</emphasis> a1<emphasis role="op">*</emphasis>.5, a1<emphasis role="op">*</emphasis>.5
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+kcps <emphasis role="opc">expon</emphasis> 20, p3, 16000
+kft <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(256.5 <emphasis role="op">+</emphasis> 69 <emphasis role="op">+</emphasis> 12 <emphasis role="op">*</emphasis> <emphasis role="opc">log</emphasis>(kcps <emphasis role="op">/</emphasis> 440) <emphasis role="op">/</emphasis> <emphasis role="opc">log</emphasis>(2))
+kft <emphasis role="op">=</emphasis> (kft <emphasis role="op">></emphasis> 383 <emphasis role="op">?</emphasis> 383 <emphasis role="op">:</emphasis> kft)
+kgdur <emphasis role="opc">limit</emphasis> 10 <emphasis role="op">/</emphasis> kcps, 0.1, 1
+a1 <emphasis role="opc">grain2</emphasis> kcps, 0.02, kgdur, 30, kft, 6, <emphasis role="op">-</emphasis>0.5
+ <emphasis role="opc">outs</emphasis> a1<emphasis role="op">*</emphasis>.08, a1<emphasis role="op">*</emphasis>.08
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">t</emphasis> 0 60
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">i</emphasis> 2 12 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen33.csd.xml b/examples-xml/gen33.csd.xml
new file mode 100644
index 0000000..8b1711c
--- /dev/null
+++ b/examples-xml/gen33.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen33.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; partials 1, 4, 7, 10, 13, 16, etc. with base frequency of 400 Hz</emphasis>
+
+ibsfrq <emphasis role="op">=</emphasis> 400
+inumh <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(1.5 <emphasis role="op">+</emphasis> <emphasis role="ohdr">sr</emphasis> <emphasis role="op">*</emphasis> 0.5 <emphasis role="op">/</emphasis> (3 <emphasis role="op">*</emphasis> ibsfrq)) <emphasis role="comment">; estimate number of partials </emphasis>
+isrcln <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(0.5 <emphasis role="op">+</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2) <emphasis role="op">*</emphasis> <emphasis role="opc">int</emphasis>(1.01 <emphasis role="op">+</emphasis> <emphasis role="opc">log</emphasis>(inumh <emphasis role="op">*</emphasis> 3) <emphasis role="op">/</emphasis> <emphasis role="opc">log</emphasis>(2)))) <emphasis role="comment">; source table length</emphasis>
+itmp <emphasis role="ohdr">ftgen</emphasis> 1, 0, isrcln, <emphasis role="op">-</emphasis>2, 0 <emphasis role="comment">; create empty source table</emphasis>
+ifpos <emphasis role="op">=</emphasis> 0
+ifrq <emphasis role="op">=</emphasis> ibsfrq
+inumh <emphasis role="op">=</emphasis> 0
+<emphasis role="olabel">l1</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="opc">tableiw</emphasis> ibsfrq <emphasis role="op">/</emphasis> ifrq, ifpos, 1 <emphasis role="comment">; amplitude</emphasis>
+ <emphasis role="opc">tableiw</emphasis> ifrq, ifpos <emphasis role="op">+</emphasis> 1, 1 <emphasis role="comment">; frequency</emphasis>
+ <emphasis role="opc">tableiw</emphasis> 0, ifpos <emphasis role="op">+</emphasis> 2, 1 <emphasis role="comment">; phase</emphasis>
+ifpos <emphasis role="op">=</emphasis> ifpos <emphasis role="op">+</emphasis> 3
+ifrq <emphasis role="op">=</emphasis> ifrq <emphasis role="op">+</emphasis> ibsfrq <emphasis role="op">*</emphasis> 3
+inumh <emphasis role="op">=</emphasis> inumh <emphasis role="op">+</emphasis> 1
+ <emphasis role="octrl">if</emphasis> (ifrq <emphasis role="op">&lt;</emphasis> (<emphasis role="ohdr">sr</emphasis> <emphasis role="op">*</emphasis> 0.5)) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">l1</emphasis>
+
+itemp <emphasis role="ohdr">ftgen</emphasis> 2, 0, 262144, <emphasis role="op">-</emphasis>33, 1, inumh, 1, <emphasis role="op">-</emphasis>1 <emphasis role="comment">; store output in ftable 2 (size = 262144)</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .5, ibsfrq, itemp
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen34.csd.xml b/examples-xml/gen34.csd.xml
new file mode 100644
index 0000000..4c37432
--- /dev/null
+++ b/examples-xml/gen34.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen34.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; partials 1, 4, 7, 10, 13, 16, etc. with base frequency of 400 Hz</emphasis>
+
+ibsfrq <emphasis role="op">=</emphasis> 400
+inumh <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(1.5 <emphasis role="op">+</emphasis> <emphasis role="ohdr">sr</emphasis> <emphasis role="op">*</emphasis> 0.5 <emphasis role="op">/</emphasis> (3 <emphasis role="op">*</emphasis> ibsfrq)) <emphasis role="comment">; estimate number of partials </emphasis>
+isrcln <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(0.5 <emphasis role="op">+</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2) <emphasis role="op">*</emphasis> <emphasis role="opc">int</emphasis>(1.01 <emphasis role="op">+</emphasis> <emphasis role="opc">log</emphasis>(inumh <emphasis role="op">*</emphasis> 3) <emphasis role="op">/</emphasis> <emphasis role="opc">log</emphasis>(2)))) <emphasis role="comment">; source table length</emphasis>
+itmp <emphasis role="ohdr">ftgen</emphasis> 1, 0, isrcln, <emphasis role="op">-</emphasis>2, 0 <emphasis role="comment">; create empty source table</emphasis>
+ifpos <emphasis role="op">=</emphasis> 0
+ifrq <emphasis role="op">=</emphasis> ibsfrq
+inumh <emphasis role="op">=</emphasis> 0
+<emphasis role="olabel">l1</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="opc">tableiw</emphasis> ibsfrq <emphasis role="op">/</emphasis> ifrq, ifpos, 1 <emphasis role="comment">; amplitude</emphasis>
+ <emphasis role="opc">tableiw</emphasis> ifrq, ifpos <emphasis role="op">+</emphasis> 1, 1 <emphasis role="comment">; frequency</emphasis>
+ <emphasis role="opc">tableiw</emphasis> 0, ifpos <emphasis role="op">+</emphasis> 2, 1 <emphasis role="comment">; phase</emphasis>
+ifpos <emphasis role="op">=</emphasis> ifpos <emphasis role="op">+</emphasis> 3
+ifrq <emphasis role="op">=</emphasis> ifrq <emphasis role="op">+</emphasis> ibsfrq <emphasis role="op">*</emphasis> 3
+inumh <emphasis role="op">=</emphasis> inumh <emphasis role="op">+</emphasis> 1
+ <emphasis role="octrl">if</emphasis> (ifrq <emphasis role="op">&lt;</emphasis> (<emphasis role="ohdr">sr</emphasis> <emphasis role="op">*</emphasis> 0.5)) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">l1</emphasis>
+
+itmp <emphasis role="ohdr">ftgen</emphasis> 2, 0, 262144, <emphasis role="op">-</emphasis>34, 1, inumh, 1, <emphasis role="op">-</emphasis>1 <emphasis role="comment">; store output in ftable 2 (size = 262144)</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .5, ibsfrq, itmp
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen40.csd.xml b/examples-xml/gen40.csd.xml
new file mode 100644
index 0000000..becf7db
--- /dev/null
+++ b/examples-xml/gen40.csd.xml
@@ -0,0 +1,44 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o GEN40.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; every run time same values</emphasis>
+
+kuser <emphasis role="opc">cuserrnd</emphasis> 0, 100, 1
+ <emphasis role="opc">printk</emphasis> .2, kuser
+asig <emphasis role="opc">poscil</emphasis> .5, 220<emphasis role="op">+</emphasis>kuser, 3
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; every run time different values</emphasis>
+
+ <emphasis role="ohdr">seed</emphasis> 0
+kuser <emphasis role="opc">cuserrnd</emphasis> 0, 100, 1
+ <emphasis role="opc">printk</emphasis> .2, kuser
+asig <emphasis role="opc">poscil</emphasis> .5, 220<emphasis role="op">+</emphasis>kuser, 3
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16 -7 1 4 0 8 0 4 1 <emphasis role="comment">;distrubution using GEN07</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 16384 40 1 <emphasis role="comment">;GEN40 is to be used with cuserrnd</emphasis>
+<emphasis role="stamnt">f</emphasis> 3 0 8192 10 1 <emphasis role="comment">;sine</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 2 3 2
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen41.csd.xml b/examples-xml/gen41.csd.xml
new file mode 100644
index 0000000..e755b56
--- /dev/null
+++ b/examples-xml/gen41.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o GEN41.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+k1 <emphasis role="opc">duserrnd</emphasis> 1
+ <emphasis role="opc">printk</emphasis> 0, k1
+asig <emphasis role="opc">poscil</emphasis> .5, 220<emphasis role="op">*</emphasis>k1, 2
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 -20 -41 2 .1 8 .9 <emphasis role="comment">;choose 2 at 10% probability, 8 at 90%</emphasis>
+
+<emphasis role="stamnt">f</emphasis>2 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis>1 0 2
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen42.csd.xml b/examples-xml/gen42.csd.xml
new file mode 100644
index 0000000..3922db6
--- /dev/null
+++ b/examples-xml/gen42.csd.xml
@@ -0,0 +1,51 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o GEN42.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ktab <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;ftable 1</emphasis>
+kurd <emphasis role="op">=</emphasis> <emphasis role="opc">urd</emphasis>(ktab)
+ktrig <emphasis role="opc">metro</emphasis> 5 <emphasis role="comment">;triggers 5 times per second</emphasis>
+kres <emphasis role="opc">samphold</emphasis> kurd, ktrig <emphasis role="comment">;sample and hold value of kurd</emphasis>
+ <emphasis role="opc">printk2</emphasis> kres <emphasis role="comment">;print it</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .5, 220<emphasis role="op">+</emphasis>kres, 2
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+<emphasis role="ohdr">seed</emphasis> 0 <emphasis role="comment">;every run new values</emphasis>
+
+ktab <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;ftable 1</emphasis>
+kurd <emphasis role="op">=</emphasis> <emphasis role="opc">urd</emphasis>(ktab)
+ktrig <emphasis role="opc">metro</emphasis> 5 <emphasis role="comment">;triggers 5 times per second</emphasis>
+kres <emphasis role="opc">samphold</emphasis> kurd, ktrig <emphasis role="comment">;sample and hold value of kurd</emphasis>
+ <emphasis role="opc">printk2</emphasis> kres <emphasis role="comment">;print it</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .5, 220<emphasis role="op">+</emphasis>kres, 2
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 -20 -42 10 20 .3 100 200 .7 <emphasis role="comment">;30% choose between 10 and 20 and 70% between 100 and 200</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 6 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen49.csd.xml b/examples-xml/gen49.csd.xml
index b0f1a7c..fc10524 100644
--- a/examples-xml/gen49.csd.xml
+++ b/examples-xml/gen49.csd.xml
@@ -2,42 +2,31 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o gen01.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o gen49.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kcps <emphasis role="op">=</emphasis> 1
- ifn <emphasis role="op">=</emphasis> 1
- <emphasis role="comment">; Play the audio sample stored in Table #1.</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
+kcps <emphasis role="op">=</emphasis> <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis><emphasis role="opc">ftlen</emphasis>(1)
+asig <emphasis role="opc">oscil</emphasis> .8, kcps, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 131072 49 "beats.mp3" 0 1 <emphasis role="comment">;read an audio file (using GEN49).</emphasis>
-<emphasis role="comment">; Table #1: read an audio file (using GEN49).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 131072 49 "beats.mp3" 0 1
-
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen51.csd.xml b/examples-xml/gen51.csd.xml
new file mode 100644
index 0000000..7db155e
--- /dev/null
+++ b/examples-xml/gen51.csd.xml
@@ -0,0 +1,60 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform </emphasis>
+-odac -M0 <emphasis role="comment">;;;realtime audio out and midi input</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too </emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below: </emphasis>
+<emphasis role="comment">; -o gen51.wav -W ;;; for file output any platform </emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="comment">;example by Iain McCurdy</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giEqTmp12 <emphasis role="ohdr">ftgen</emphasis> 1,0,128,<emphasis role="op">-</emphasis>51,12,2,cpsoct(8),60,1,2^(1<emphasis role="op">/</emphasis>12),2^(2<emphasis role="op">/</emphasis>12),2^(3<emphasis role="op">/</emphasis>12),2^(4<emphasis role="op">/</emphasis>12),2^(5<emphasis role="op">/</emphasis>12),2^(6<emphasis role="op">/</emphasis>12),2^(7<emphasis role="op">/</emphasis>12),2^(8<emphasis role="op">/</emphasis>12),2^(9<emphasis role="op">/</emphasis>12),2^(10<emphasis role="op">/</emphasis>12),2^(11<emphasis role="op">/</emphasis>12),2^(12<emphasis role="op">/</emphasis>12)
+giEqTmp10 <emphasis role="ohdr">ftgen</emphasis> 2,0,128,<emphasis role="op">-</emphasis>51,10,2,cpsoct(8),60,1,2^(1<emphasis role="op">/</emphasis>10),2^(2<emphasis role="op">/</emphasis>10),2^(3<emphasis role="op">/</emphasis>10),2^(4<emphasis role="op">/</emphasis>10),2^(5<emphasis role="op">/</emphasis>10),2^(6<emphasis role="op">/</emphasis>10),2^(7<emphasis role="op">/</emphasis>10),2^(8<emphasis role="op">/</emphasis>10),2^(9<emphasis role="op">/</emphasis>10),2^(10<emphasis role="op">/</emphasis>10)
+giEqTmp24 <emphasis role="ohdr">ftgen</emphasis> 3,0,128,<emphasis role="op">-</emphasis>51,24,2,cpsoct(8),60,1,2^(1<emphasis role="op">/</emphasis>24),2^(2<emphasis role="op">/</emphasis>24),2^(3<emphasis role="op">/</emphasis>24),2^(4<emphasis role="op">/</emphasis>24),2^(5<emphasis role="op">/</emphasis>24),2^(6<emphasis role="op">/</emphasis>24),2^(7<emphasis role="op">/</emphasis>24),2^(8<emphasis role="op">/</emphasis>24),2^(9<emphasis role="op">/</emphasis>24),2^(10<emphasis role="op">/</emphasis>24),2^(11<emphasis role="op">/</emphasis>24), \ 2^(12<emphasis role="op">/</emphasis>24),2^(13<emphasis role="op">/</emphasis>24),2^(14<emphasis role="op">/</emphasis>24),2^(15<emphasis role="op">/</emphasis>24),2^(16<emphasis role="op">/</emphasis>24),2^(17<emphasis role="op">/</emphasis>24),2^(18<emphasis role="op">/</emphasis>24),2^(19<emphasis role="op">/</emphasis>24),2^(20<emphasis role="op">/</emphasis>24),2^(21<emphasis role="op">/</emphasis>24),2^(22<emphasis role="op">/</emphasis>24),2^(23<emphasis role="op">/</emphasis>24),2^(24<emphasis role="op">/</emphasis>24)
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;midi input instrument</emphasis>
+ <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>USE PITCH BEND TO MODULATE NOTE NUMBER UP OR DOWN ONE STEP <emphasis role="op">-</emphasis> ACTUAL INTERVAL IT WILL MODULATE BY WILL BE DEPENDENT UPON THE GEN51 SCALE USED<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+ <emphasis role="comment">;kbend pchbend 0,2</emphasis>
+
+ <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>ALTERNATIVELY IF USING VIRTUAL MIDI DEVICE OR A KEYBOARD WITH NO PITCH BEND WHEEL, USE CONTROLLERS 1 AND 2 TO MODULATE PITCH UP OR DOWN 1 STEP<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+kup <emphasis role="opc">ctrl7</emphasis> 1, 1, 0, 1
+kdown <emphasis role="opc">ctrl7</emphasis> 1, 2, 0, <emphasis role="op">-</emphasis>1
+kbend <emphasis role="op">=</emphasis> kup<emphasis role="op">+</emphasis>kdown
+
+inum <emphasis role="opc">notnum</emphasis>
+kcps <emphasis role="opc">tablei</emphasis> inum<emphasis role="op">+</emphasis>kbend, giEqTmp24 <emphasis role="comment">;read cps values from GEN51, scale table using a combination of note played and pitch bend/controllers 1 and 2</emphasis>
+a1 <emphasis role="opc">vco2</emphasis> 0.2, kcps, 4, 0.5
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;score input instrument</emphasis>
+
+knum <emphasis role="opc">line</emphasis> p4, p3, p5 <emphasis role="comment">;gliss using a straight line bewteen p4 and p5 for the entire note duration</emphasis>
+kcps <emphasis role="opc">tablei</emphasis> knum, giEqTmp24 <emphasis role="comment">;read cps values from GEN51 scale table</emphasis>
+a1 <emphasis role="opc">vco2</emphasis> 0.2, kcps, 4, 0.5
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 3600
+
+<emphasis role="comment">;instr 2. Score input. Gliss from step number p4 to step number p5</emphasis>
+<emphasis role="comment">;p4 - starting note number</emphasis>
+<emphasis role="comment">;p5 - ending note number</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 0 2 60 61
+<emphasis role="stamnt">i</emphasis> 2 + 2 70 58
+<emphasis role="stamnt">i</emphasis> 2 + 2 66 66.5
+<emphasis role="stamnt">i</emphasis> 2 + 2 71.25 71
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gen52.csd.xml b/examples-xml/gen52.csd.xml
new file mode 100644
index 0000000..016f8df
--- /dev/null
+++ b/examples-xml/gen52.csd.xml
@@ -0,0 +1,93 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o gen52.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+garvb <emphasis role="opc">init</emphasis> 0
+gaW <emphasis role="opc">init</emphasis> 0
+gaX <emphasis role="opc">init</emphasis> 0
+gaY <emphasis role="opc">init</emphasis> 0
+
+itmp <emphasis role="ohdr">ftgen</emphasis> 1, 0, 64, <emphasis role="op">-</emphasis>2, 2, 40, <emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, 123, \
+ 1, 13.000, 0.05, 0.85, 20000.0, 0.0, 0.50, 2, \
+ 1, 2.000, 0.05, 0.85, 20000.0, 0.0, 0.25, 2, \
+ 1, 16.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 9.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 12.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 8.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2
+
+itmp <emphasis role="ohdr">ftgen</emphasis> 2, 0, 262144, <emphasis role="op">-</emphasis>2, 0
+ <emphasis role="opc">spat3dt</emphasis> 2, <emphasis role="op">-</emphasis>0.2, 1, 0, 1, 1, 2, 0.005
+
+itmp <emphasis role="ohdr">ftgen</emphasis> 3, 0, 262144, <emphasis role="op">-</emphasis>52, 3, 2, 0, 4, 2, 1, 4, 2, 2, 4
+
+<emphasis role="oblock">instr</emphasis> 1
+
+a1 <emphasis role="opc">vco2</emphasis> 1, 440, 10
+kfrq <emphasis role="opc">port</emphasis> 100, 0.008, 20000
+a1 <emphasis role="opc">butterlp</emphasis> a1, kfrq
+a2 <emphasis role="opc">linseg</emphasis> 0, 0.003, 1, 0.01, 0.7, 0.005, 0, 1, 0
+a1 <emphasis role="op">=</emphasis> a1 <emphasis role="op">*</emphasis> a2 <emphasis role="op">*</emphasis> 2
+ <emphasis role="opc">denorm</emphasis> a1
+ <emphasis role="opc">vincr</emphasis> garvb, a1
+aw, ax, ay, az <emphasis role="opc">spat3di</emphasis> a1, p4, p5, p6, 1, 1, 2
+ <emphasis role="opc">vincr</emphasis> gaW, aw
+ <emphasis role="opc">vincr</emphasis> gaX, ax
+ <emphasis role="opc">vincr</emphasis> gaY, ay
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ <emphasis role="opc">denorm</emphasis> garvb
+<emphasis role="comment">; skip as many samples as possible without truncating the IR</emphasis>
+arW, arX, arY <emphasis role="opc">ftconv</emphasis> garvb, 3, 2048, 2048, (65536 <emphasis role="op">-</emphasis> 2048)
+aW <emphasis role="op">=</emphasis> gaW <emphasis role="op">+</emphasis> arW
+aX <emphasis role="op">=</emphasis> gaX <emphasis role="op">+</emphasis> arX
+aY <emphasis role="op">=</emphasis> gaY <emphasis role="op">+</emphasis> arY
+garvb <emphasis role="op">=</emphasis> 0
+gaW <emphasis role="op">=</emphasis> 0
+gaX <emphasis role="op">=</emphasis> 0
+gaY <emphasis role="op">=</emphasis> 0
+
+aWre, aWim <emphasis role="opc">hilbert</emphasis> aW
+aXre, aXim <emphasis role="opc">hilbert</emphasis> aX
+aYre, aYim <emphasis role="opc">hilbert</emphasis> aY
+aWXr <emphasis role="op">=</emphasis> 0.0928<emphasis role="op">*</emphasis>aXre <emphasis role="op">+</emphasis> 0.4699<emphasis role="op">*</emphasis>aWre
+aWXiYr <emphasis role="op">=</emphasis> 0.2550<emphasis role="op">*</emphasis>aXim <emphasis role="op">-</emphasis> 0.1710<emphasis role="op">*</emphasis>aWim <emphasis role="op">+</emphasis> 0.3277<emphasis role="op">*</emphasis>aYre
+aL <emphasis role="op">=</emphasis> aWXr <emphasis role="op">+</emphasis> aWXiYr
+aR <emphasis role="op">=</emphasis> aWXr <emphasis role="op">-</emphasis> aWXiYr
+
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 0.5 0.0 2.0 -0.8
+<emphasis role="stamnt">i</emphasis> 1 1 0.5 1.4 1.4 -0.6
+<emphasis role="stamnt">i</emphasis> 1 2 0.5 2.0 0.0 -0.4
+<emphasis role="stamnt">i</emphasis> 1 3 0.5 1.4 -1.4 -0.2
+<emphasis role="stamnt">i</emphasis> 1 4 0.5 0.0 -2.0 0.0
+<emphasis role="stamnt">i</emphasis> 1 5 0.5 -1.4 -1.4 0.2
+<emphasis role="stamnt">i</emphasis> 1 6 0.5 -2.0 0.0 0.4
+<emphasis role="stamnt">i</emphasis> 1 7 0.5 -1.4 1.4 0.6
+<emphasis role="stamnt">i</emphasis> 1 8 0.5 0.0 2.0 0.8
+<emphasis role="stamnt">i</emphasis> 2 0 10
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/genarray.csd.xml b/examples-xml/genarray.csd.xml
new file mode 100644
index 0000000..2b9b316
--- /dev/null
+++ b/examples-xml/genarray.csd.xml
@@ -0,0 +1,44 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="comment">;create and fill two arrays</emphasis>
+iArr1[] <emphasis role="opc">genarray</emphasis> 1, 6
+iArr2[] <emphasis role="opc">genarray</emphasis> 1, 6, 2<emphasis role="op">/</emphasis>3
+
+<emphasis role="comment">;print the content of iArr1</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "iArr1<emphasis role="op">:</emphasis> start<emphasis role="op">=</emphasis>1, end<emphasis role="op">=</emphasis>6, step<emphasis role="op">=</emphasis>default\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(iArr1) do
+ <emphasis role="opc">printf</emphasis> "iArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, iArr1[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;print the content of iArr2</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "iArr2<emphasis role="op">:</emphasis> start<emphasis role="op">=</emphasis>1, end<emphasis role="op">=</emphasis>6, step<emphasis role="op">=</emphasis>2<emphasis role="op">/</emphasis>3\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(iArr2) do
+ <emphasis role="opc">printf</emphasis> "iArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, iArr2[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+ <emphasis role="opc">turnoff</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/genarray_i.csd.xml b/examples-xml/genarray_i.csd.xml
new file mode 100644
index 0000000..44ec651
--- /dev/null
+++ b/examples-xml/genarray_i.csd.xml
@@ -0,0 +1,44 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="comment">;create and fill two arrays</emphasis>
+kArr1[] <emphasis role="opc">genarray_i</emphasis> 1, 6
+kArr2[] <emphasis role="opc">genarray_i</emphasis> 1, 6, 2<emphasis role="op">/</emphasis>3
+
+<emphasis role="comment">;print the content of kArr1</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "kArr1<emphasis role="op">:</emphasis> start<emphasis role="op">=</emphasis>1, end<emphasis role="op">=</emphasis>6, step<emphasis role="op">=</emphasis>default\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr1) do
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr1[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;print the content of kArr2</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "kArr2<emphasis role="op">:</emphasis> start<emphasis role="op">=</emphasis>1, end<emphasis role="op">=</emphasis>6, step<emphasis role="op">=</emphasis>2<emphasis role="op">/</emphasis>3\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr2) do
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr2[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+ <emphasis role="opc">turnoff</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gendy-2.csd.xml b/examples-xml/gendy-2.csd.xml
new file mode 100644
index 0000000..d13c954
--- /dev/null
+++ b/examples-xml/gendy-2.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kenv <emphasis role="opc">expseg</emphasis> 0.01, p3<emphasis role="op">*</emphasis>0.1, 1, p3<emphasis role="op">*</emphasis>0.8, 1, p3<emphasis role="op">*</emphasis>0.1, 0.001
+kosc <emphasis role="opc">oscil</emphasis> 0.1, 3<emphasis role="op">/</emphasis>p3, 1
+<emphasis role="ohdr">seed</emphasis> 20120123
+kdis <emphasis role="opc">bexprnd</emphasis> kosc
+knum <emphasis role="opc">linseg</emphasis> 3, p3<emphasis role="op">*</emphasis>0.75, 10, p3<emphasis role="op">*</emphasis>0.20, 12, p3<emphasis role="op">*</emphasis>0.05, 5
+asig <emphasis role="opc">gendy</emphasis> 0.2, kosc<emphasis role="op">*</emphasis>60, 6, 0.7, kdis, 500<emphasis role="op">*</emphasis>kenv, 4800, 0.23, 0.3, 12, knum
+aflt <emphasis role="opc">resonz</emphasis> asig, 1400, 400
+aout <emphasis role="opc">comb</emphasis> kenv<emphasis role="op">*</emphasis>aflt<emphasis role="op">*</emphasis>0.1, 0.9, 0.1
+<emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1 0 .8 0 0 .3 0 0 0 .1
+
+<emphasis role="stamnt">i</emphasis>1 0 20
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gendy.csd.xml b/examples-xml/gendy.csd.xml
new file mode 100644
index 0000000..eb21cd5
--- /dev/null
+++ b/examples-xml/gendy.csd.xml
@@ -0,0 +1,29 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aout <emphasis role="opc">gendy</emphasis> 0.7, 1, 1, 1, 1, 20, 1000, 0.5, 0.5
+<emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gendyc.csd.xml b/examples-xml/gendyc.csd.xml
new file mode 100644
index 0000000..2c67d89
--- /dev/null
+++ b/examples-xml/gendyc.csd.xml
@@ -0,0 +1,29 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aout <emphasis role="opc">gendyc</emphasis> 0.5, 1, 1, 1, 1, 220, 440, 0.5, 0.5
+<emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gendyx-2.csd.xml b/examples-xml/gendyx-2.csd.xml
new file mode 100644
index 0000000..1b12bcf
--- /dev/null
+++ b/examples-xml/gendyx-2.csd.xml
@@ -0,0 +1,32 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+kenv <emphasis role="opc">expseg</emphasis> 0.001, p3<emphasis role="op">*</emphasis>0.05, 0.5, p3<emphasis role="op">*</emphasis>0.9, 0.5, p3<emphasis role="op">*</emphasis>0.05, 0.001
+kc1 <emphasis role="opc">linseg</emphasis> 1, p3<emphasis role="op">/</emphasis>2, 12, p3<emphasis role="op">/</emphasis>2, 3
+kc2 <emphasis role="opc">random</emphasis> 0, 4
+<emphasis role="ohdr">seed</emphasis> 20120124
+asig <emphasis role="opc">gendyx</emphasis> kenv, 1, 3, 0.7, 0.8, 120, 4300, 0.2, 0.7, kc1, kc2, 12, kc1
+aout <emphasis role="opc">dcblock</emphasis> asig
+<emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 20
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gendyx.csd.xml b/examples-xml/gendyx.csd.xml
new file mode 100644
index 0000000..d04c1b5
--- /dev/null
+++ b/examples-xml/gendyx.csd.xml
@@ -0,0 +1,29 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aout <emphasis role="opc">gendyx</emphasis> 0.7, 1, 1, 1, 1, 20, 1000, 0.5, 0.5, 4, 0.13
+<emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/genexp.csd.xml b/examples-xml/genexp.csd.xml
index 5bdcca0..859a3a2 100644
--- a/examples-xml/genexp.csd.xml
+++ b/examples-xml/genexp.csd.xml
@@ -2,44 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o gen01.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o genexp.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- ifn <emphasis role="op">=</emphasis> 2
- ibas <emphasis role="op">=</emphasis> 1
-
- <emphasis role="comment">; Play the audio sample stored in Table #1.</emphasis>
- k1 <emphasis role="opc">oscil</emphasis> 1, 10, 1
- a1 <emphasis role="opc">oscil</emphasis> kamp<emphasis role="op">*</emphasis>k1, 440, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+aswp <emphasis role="opc">linseg</emphasis> 0.01, p3<emphasis role="op">*</emphasis>.5, .49, p3<emphasis role="op">*</emphasis>.5, 0.01 <emphasis role="comment">;index sweep function</emphasis>
+aindex <emphasis role="opc">poscil</emphasis> aswp, 110, 1 <emphasis role="comment">;sound to waveshape</emphasis>
+atable <emphasis role="opc">tablei</emphasis> aindex, p4, 1, .5 <emphasis role="comment">;waveshape index</emphasis>
+aenv <emphasis role="opc">linen</emphasis> 0.8, .01, p3, .02 <emphasis role="comment">;amplitude envelope</emphasis>
+asig <emphasis role="op">=</emphasis> (atable<emphasis role="op">*</emphasis>aenv)<emphasis role="op">*</emphasis>p5 <emphasis role="comment">;impose envelope and scale</emphasis>
+asig <emphasis role="opc">dcblock2</emphasis> asig <emphasis role="comment">;get rid of DC</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 8192 "exp" 0 15 0
+<emphasis role="stamnt">f</emphasis> 3 0 8192 "exp" 0 3 0
-<emphasis role="comment">; Table #1: read an audio file (using GEN01).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 131072 "exp" 0 10 0
-<emphasis role="stamnt">f</emphasis> 2 0 8192 10 1
+<emphasis role="stamnt">i</emphasis>1 0 3 2 2
+<emphasis role="stamnt">i</emphasis>1 + 3 3 3
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/genfarey-2.csd.xml b/examples-xml/genfarey-2.csd.xml
new file mode 100644
index 0000000..f4ebf8f
--- /dev/null
+++ b/examples-xml/genfarey-2.csd.xml
@@ -0,0 +1,99 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc for RT audio input as well </emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o genfarey.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">; GENfarey creates table gidelta. </emphasis>
+<emphasis role="comment">; The table contains the delta values of Farey Sequence 7 (p5=7).</emphasis>
+<emphasis role="comment">; They are used as Inter Onset Intervals (IOIs) or event durations.</emphasis>
+<emphasis role="comment">; If p6 is set to 1 for IOI output then the length of the table (p3=-18) is -(|F_7| - 1)</emphasis>
+<emphasis role="comment">; Remember that a negative sign is for non-power-of-2 table lengths.</emphasis>
+<emphasis role="comment">; The negative sign in front of the GEN number prevents post-normalisation of its values.</emphasis>
+
+gidelta <emphasis role="ohdr">ftgen</emphasis> 0,0,<emphasis role="op">-</emphasis>18,"farey",7,1
+
+<emphasis role="comment">; Use GENfarey with p6 set to 2 to generate the denominators of fractions of F_7 </emphasis>
+<emphasis role="comment">; this is used in this example as factors to create a series of pitches:</emphasis>
+gimult <emphasis role="ohdr">ftgen</emphasis> 0,0,<emphasis role="op">-</emphasis>18,"farey",7,2
+
+<emphasis role="comment">;-------- loop and trigger instrument 901 using a Farey Sequence polyrhythm</emphasis>
+ <emphasis role="oblock">instr</emphasis> 1
+kindx <emphasis role="opc">init</emphasis> 0
+kindx2 <emphasis role="opc">init</emphasis> 0
+ktrigger <emphasis role="opc">init</emphasis> 0
+ktime_unit <emphasis role="opc">init</emphasis> p6
+kstart <emphasis role="opc">init</emphasis> p4
+kloop <emphasis role="opc">init</emphasis> p5
+kinitndx <emphasis role="opc">init</emphasis> 0
+kfn_times <emphasis role="opc">init</emphasis> gidelta
+knote <emphasis role="opc">init</emphasis> 60
+kbasenote <emphasis role="opc">init</emphasis> p8
+ifundam <emphasis role="opc">init</emphasis> p7
+ktrigger <emphasis role="opc">seqtime</emphasis> ktime_unit, kstart, kloop, kinitndx, kfn_times
+ <emphasis role="octrl">if</emphasis> (ktrigger <emphasis role="op">></emphasis> 0 ) then
+ kpitch <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(ifundam)
+ kmult <emphasis role="opc">tab</emphasis> kindx2, gimult
+ kpitch <emphasis role="op">=</emphasis> kpitch <emphasis role="op">*</emphasis> kmult
+ knote <emphasis role="op">=</emphasis> kbasenote <emphasis role="op">+</emphasis> kmult
+ <emphasis role="opc">event</emphasis> "i", 901, 0, .4, .10, kpitch, kpitch <emphasis role="op">*</emphasis> .9, 0.4, 5, .75, .8, 1.0, .15, .0, .125, .125, .25, .5, 1.0, .0, .0, .0, .0, .125, .25, .25, .25, knote
+ kindx <emphasis role="op">=</emphasis> kindx <emphasis role="op">+</emphasis> 1
+ kindx <emphasis role="op">=</emphasis> kindx <emphasis role="op">%</emphasis> kloop
+ kindx2 <emphasis role="op">=</emphasis> kindx2 <emphasis role="op">+</emphasis> 1
+ kindx2 <emphasis role="op">=</emphasis> kindx2 <emphasis role="op">%</emphasis> kloop
+ <emphasis role="octrl">endif</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="comment">;------ basic 2 Operators FM algorithm ----------------</emphasis>
+ <emphasis role="oblock">instr</emphasis> 901
+inotedur <emphasis role="op">=</emphasis> p3
+imaxamp <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;ampdb(p4)</emphasis>
+icarrfreq <emphasis role="op">=</emphasis> p5
+imodfreq <emphasis role="op">=</emphasis> p6
+ilowndx <emphasis role="op">=</emphasis> p7
+indxdiff <emphasis role="op">=</emphasis> p8<emphasis role="op">-</emphasis>p7
+knote <emphasis role="op">=</emphasis> p27
+aampenv <emphasis role="opc">linseg</emphasis> p9, p14<emphasis role="op">*</emphasis>p3, p10, p15<emphasis role="op">*</emphasis>p3, p11, p16<emphasis role="op">*</emphasis>p3, p12, p17<emphasis role="op">*</emphasis>p3, p13
+adevenv <emphasis role="opc">linseg</emphasis> p18, p23<emphasis role="op">*</emphasis>p3, p19, p24<emphasis role="op">*</emphasis>p3, p20, p25<emphasis role="op">*</emphasis>p3, p21, p26<emphasis role="op">*</emphasis>p3, p22
+amodosc <emphasis role="opc">oscili</emphasis> (ilowndx<emphasis role="op">+</emphasis>indxdiff<emphasis role="op">*</emphasis>adevenv)<emphasis role="op">*</emphasis>imodfreq, imodfreq, 10
+acarosc <emphasis role="opc">oscili</emphasis> imaxamp<emphasis role="op">*</emphasis>aampenv, icarrfreq<emphasis role="op">+</emphasis>amodosc, 10
+ <emphasis role="opc">outs</emphasis> acarosc, acarosc
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>10 0 4096 10 1 <emphasis role="comment">;sine wave </emphasis>
+<emphasis role="comment">; p4 kstart := index offset into the Farey Sequence</emphasis>
+<emphasis role="comment">; p5 kloop := end index into Farey Seq.</emphasis>
+<emphasis role="comment">; p6 timefac := time in seconds for one loop to complete</emphasis>
+<emphasis role="comment">; p7 fundam := fundamental of the FM instrument</emphasis>
+<emphasis role="comment">; p8 basenote:= root pitch of the midi voice output</emphasis>
+<emphasis role="comment">; note that pitch structures of the midi file output are not equivalent to the</emphasis>
+<emphasis role="comment">; ones used for the FM real-time synthesis.</emphasis>
+
+<emphasis role="comment">; start dur kstart kloop timefac fundam. basenote</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0.0 44 0 18 2 6.05 60
+<emphasis role="stamnt">i</emphasis>1 4 30 0 18 3 7.05 72
+<emphasis role="stamnt">i</emphasis>1 34 12 9 18 3 7.05 72
+<emphasis role="stamnt">i</emphasis>1 10 12 0 18 1.5 8 84
+<emphasis role="stamnt">i</emphasis>1 22 12 0 9 1.5 8 84
+<emphasis role="stamnt">i</emphasis>1 15 16 0 18 1 5 48
+<emphasis role="stamnt">i</emphasis>1 22 20 5 17 1.7 4 36
+
+<emphasis role="stamnt">i</emphasis>1 46 20 3 11 2.5 7.04 71
+<emphasis role="stamnt">i</emphasis>1 51 20 5 13 2.5 7.06 72
+
+<emphasis role="stamnt">i</emphasis>1 73.5 1.5 11 18 1.5 5.05 48
+<emphasis role="stamnt">i</emphasis>1 75 1 12 18 1 6.03 58
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gensone.csd.xml b/examples-xml/gensone.csd.xml
index 89bf956..89b1280 100644
--- a/examples-xml/gensone.csd.xml
+++ b/examples-xml/gensone.csd.xml
@@ -2,51 +2,56 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in </emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o linseg.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o gensone.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 Simple oscillator with loudness correction.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; p4 = frequency in pitch-class notation.</emphasis>
- kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; simple oscillator with loudness correction. </emphasis>
- <emphasis role="comment">; Create an amplitude envelope.</emphasis>
- kenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0
- kamp <emphasis role="opc">tablei</emphasis> 16384<emphasis role="op">*</emphasis>kenv, 2
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+kenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0 <emphasis role="comment">;amplitude envelope</emphasis>
+kamp <emphasis role="opc">tablei</emphasis> 16384 <emphasis role="op">*</emphasis>kenv, 2
+asig <emphasis role="opc">oscil</emphasis> kamp, kcps, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> 30000<emphasis role="op">*</emphasis>kamp, kcps, 1
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;neutral oscillator to compare with</emphasis>
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+kenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0 <emphasis role="comment">;amplitude envelope</emphasis>
+asig <emphasis role="opc">oscil</emphasis> kenv, kcps, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="stamnt">f</emphasis> 2 0 16384 "sone" 1 32000 32000 0
-
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.00</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 0.5 8.00
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.01</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 1 0.5 8.01
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.02</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 2 0.5 8.02
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.03</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 3 0.5 8.03
-<emphasis role="stamnt">e</emphasis>
-
-
+
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 16385 "sone" 0 32000 32000 0
+
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 1 <emphasis role="comment">;1 second of silence before we start...</emphasis>
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 7.00
+<emphasis role="stamnt">i</emphasis> 1 + . 7.01
+<emphasis role="stamnt">i</emphasis> 1 + . 8.02
+<emphasis role="stamnt">i</emphasis> 1 + . 8.03
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 0 2 7.00
+<emphasis role="stamnt">i</emphasis> 2 + . 7.01
+<emphasis role="stamnt">i</emphasis> 2 + . 8.02
+<emphasis role="stamnt">i</emphasis> 2 + . 8.03
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/gentanh.csd.xml b/examples-xml/gentanh.csd.xml
index 4739a25..1c6d7ad 100644
--- a/examples-xml/gentanh.csd.xml
+++ b/examples-xml/gentanh.csd.xml
@@ -2,44 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o gen01.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o gentanh.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- ifn <emphasis role="op">=</emphasis> 2
- ibas <emphasis role="op">=</emphasis> 1
-
- <emphasis role="comment">; Play the audio sample stored in Table #1.</emphasis>
- k1 <emphasis role="opc">oscil</emphasis> 1, 10, 1
- a1 <emphasis role="opc">oscil</emphasis> kamp<emphasis role="op">*</emphasis>k1, 440, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+aswp <emphasis role="opc">linseg</emphasis> 0.01, p3<emphasis role="op">*</emphasis>.5, .49, p3<emphasis role="op">*</emphasis>.5, 0.01 <emphasis role="comment">;index sweep function</emphasis>
+aindex <emphasis role="opc">poscil</emphasis> aswp, 110, 1 <emphasis role="comment">;sound to waveshape</emphasis>
+atable <emphasis role="opc">tablei</emphasis> aindex, p4, 1, .5 <emphasis role="comment">;waveshape index</emphasis>
+aenv <emphasis role="opc">linen</emphasis> 0.8, .01, p3, .02 <emphasis role="comment">;amplitude envelope</emphasis>
+asig <emphasis role="op">=</emphasis> (atable<emphasis role="op">*</emphasis>aenv)<emphasis role="op">*</emphasis>p5 <emphasis role="comment">;impose envelope and scale</emphasis>
+asig <emphasis role="opc">dcblock2</emphasis> asig <emphasis role="comment">;get rid of DC</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 8192 "tanh" -100 100 0 <emphasis role="comment">;symmetrical transfer fuction</emphasis>
+<emphasis role="stamnt">f</emphasis> 3 0 8192 "tanh" -10 10 0 <emphasis role="comment">;symmetrical</emphasis>
+<emphasis role="stamnt">f</emphasis> 4 0 8192 "tanh" 0 10 0 <emphasis role="comment">;not symmetrical</emphasis>
-<emphasis role="comment">; Table #1: read an audio file (using GEN01).</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 131072 "tanh" 0.1 10 0
-<emphasis role="stamnt">f</emphasis> 2 0 8192 10 1
+<emphasis role="stamnt">i</emphasis>1 0 3 2 1
+<emphasis role="stamnt">i</emphasis>1 + 3 3 1
+<emphasis role="stamnt">i</emphasis>1 + 3 4 2
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/genwave.csd.xml b/examples-xml/genwave.csd.xml
new file mode 100644
index 0000000..2e28e77
--- /dev/null
+++ b/examples-xml/genwave.csd.xml
@@ -0,0 +1,110 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in No messages</emphasis>
+-odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o 0dbfs.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">zakinit</emphasis> 3,1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; wavelet synth instrument</emphasis>
+iamp <emphasis role="op">=</emphasis> p4<emphasis role="comment">; scaling factor of wavelets</emphasis>
+ifreq <emphasis role="op">=</emphasis> p5<emphasis role="comment">; frequency of wavelets</emphasis>
+itab <emphasis role="op">=</emphasis> p6<emphasis role="comment">; selected wavelet function</emphasis>
+inum <emphasis role="op">=</emphasis> p7<emphasis role="comment">; number of wavelets to be created</emphasis>
+a1 <emphasis role="opc">osciln</emphasis> p4, p5, p6, p7
+<emphasis role="opc">out</emphasis> a1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; wavelet analysis intrument </emphasis>
+a1 <emphasis role="opc">soundin</emphasis> "fox.wav"
+<emphasis role="comment">; Decomposition Structure:</emphasis>
+<emphasis role="comment">; 1 LEVEL 2 LEVEL</emphasis>
+<emphasis role="comment">; HP->ah1 </emphasis>
+<emphasis role="comment">; a1->| HP(up2)->ah2</emphasis>
+<emphasis role="comment">; LP->al1->|</emphasis>
+<emphasis role="comment">; LP(up2)->al2</emphasis>
+<emphasis role="comment">;</emphasis>
+ain <emphasis role="op">=</emphasis> a1<emphasis role="op">*</emphasis>.5<emphasis role="comment">; attenuate input signal</emphasis>
+ <emphasis role="comment">; since wavelet coefficients</emphasis>
+ <emphasis role="comment">; could reach big values </emphasis>
+ah1 <emphasis role="opc">dconv</emphasis> ain,ftlen(8),8
+al1 <emphasis role="opc">dconv</emphasis> ain,ftlen(7),7
+ah2 <emphasis role="opc">dconv</emphasis> al1,ftlen(10),10
+al2 <emphasis role="opc">dconv</emphasis> al1,ftlen(9),9
+
+<emphasis role="opc">zaw</emphasis> ah1,0
+<emphasis role="opc">zaw</emphasis> al1,1
+<emphasis role="opc">zaw</emphasis> ah2,2
+<emphasis role="opc">zaw</emphasis> al2,3
+
+aout <emphasis role="opc">zar</emphasis> p4
+<emphasis role="opc">out</emphasis> aout
+<emphasis role="opc">zacl</emphasis> 0,3
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; First of all, we need several FIR filters which are capable </emphasis>
+<emphasis role="comment">; to produce wavelet families.</emphasis>
+<emphasis role="comment">; One can input filter coefficients manualy using GEN02 </emphasis>
+<emphasis role="comment">; or read them from text file.</emphasis>
+<emphasis role="comment">; Most of compact-supported wavelet coefficients can be obtained from</emphasis>
+<emphasis role="comment">; Wavelet Browser by PyWavelets wavelets.pybytes.com</emphasis>
+<emphasis role="comment">; You can select family and order of filter</emphasis>
+<emphasis role="comment">; then copy desired coefficients into txt file.</emphasis>
+<emphasis role="comment">; Notice that for correct interpretation of results you should use</emphasis>
+<emphasis role="comment">; coeffs of Decomposition low-pass filter.</emphasis>
+
+<emphasis role="comment">; Daubechies 2 </emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4 -2 -0.1294095226 0.2241438680 0.8365163037 0.4829629131
+<emphasis role="comment">; Symlet 10</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 0 -23 "sym10.txt"
+
+<emphasis role="comment">; Now we want to produce some wavelet granules.</emphasis>
+<emphasis role="comment">; They can be used in wavelet synthesis etc.</emphasis>
+<emphasis role="comment">; Tables of large sizes should produce smoother wavelets.</emphasis>
+<emphasis role="comment">; We take array of filter coefficients from ftable 1</emphasis>
+<emphasis role="comment">; and deconvolve it until output length of 16384.</emphasis>
+<emphasis role="comment">; The order of filters through the deconvolution process</emphasis>
+<emphasis role="comment">; is given by 14 which is 1110 in binary.</emphasis>
+<emphasis role="comment">; So the first filter is LP ('0') and others are HP ('1').</emphasis>
+<emphasis role="stamnt">f</emphasis> 3 0 16384 "wave" 1 14 0
+<emphasis role="stamnt">f</emphasis> 4 0 16384 "wave" 2 1 0
+<emphasis role="stamnt">f</emphasis> 5 0 16384 "wave" 2 7 0
+<emphasis role="stamnt">f</emphasis> 6 0 16384 "wave" 2 6 0
+<emphasis role="comment">; The main purpose of using wavelets is wavelet transform.</emphasis>
+<emphasis role="comment">; It is not that easy to perform a classic DWT in Csound since downsampling</emphasis>
+<emphasis role="comment">; of audio signal is needed at each step of wavelet decomposition.</emphasis>
+<emphasis role="comment">; Anyway, using GENwave it is possible to create a number of upsampled</emphasis>
+<emphasis role="comment">; wavelets and perform a so-called undecimated wavelet transform </emphasis>
+<emphasis role="comment">; aka stationary wavelet transform (and it is even better).</emphasis>
+<emphasis role="comment">; So we need some upsampled childs of mother wavelet. </emphasis>
+<emphasis role="stamnt">f</emphasis> 7 0 16 "wave" 1 0 -1 <emphasis role="comment">;db2 scaling function for 1st iteration</emphasis>
+<emphasis role="stamnt">f</emphasis> 8 0 16 "wave" 1 1 -1 <emphasis role="comment">;db2 wavelet function for 1st iteration</emphasis>
+<emphasis role="stamnt">f</emphasis> 9 0 32 "wave" 1 0 -1 <emphasis role="comment">;db2 scaling function for 2nd iteration</emphasis>
+<emphasis role="stamnt">f</emphasis> 10 0 32 "wave" 1 1 -1 <emphasis role="comment">;db2 wavelet function for 2nd iteration</emphasis>
+
+<emphasis role="comment">; Let's hear how some wavelets could sound..</emphasis>
+<emphasis role="comment">; amp frq wave times</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1 0.6 15 3 8
+<emphasis role="stamnt">i</emphasis> 1 0.5 . 0.9 20 4 5
+<emphasis role="stamnt">i</emphasis> 1 0.9 . 0.7 8 5 .
+<emphasis role="stamnt">i</emphasis> 1 1.1 . 0.4 30 6 9
+
+<emphasis role="comment">; Now try to decompose input file using wavelets</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 2 4 1<emphasis role="comment">; approximation 1st level</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 5 . 2<emphasis role="comment">; details 2nd level</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/getcfg.csd.xml b/examples-xml/getcfg.csd.xml
new file mode 100644
index 0000000..fb3b76a
--- /dev/null
+++ b/examples-xml/getcfg.csd.xml
@@ -0,0 +1,54 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+-iadc <emphasis role="comment">;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+S1 <emphasis role="opc">getcfg</emphasis> 1 <emphasis role="comment">; -+max_str_len </emphasis>
+S2 <emphasis role="opc">getcfg</emphasis> 2 <emphasis role="comment">; -i </emphasis>
+S3 <emphasis role="opc">getcfg</emphasis> 3 <emphasis role="comment">; -o </emphasis>
+S4 <emphasis role="opc">getcfg</emphasis> 4 <emphasis role="comment">; RTaudio </emphasis>
+S5 <emphasis role="opc">getcfg</emphasis> 5 <emphasis role="comment">; -t </emphasis>
+S6 <emphasis role="opc">getcfg</emphasis> 6 <emphasis role="comment">; os system host </emphasis>
+S7 <emphasis role="opc">getcfg</emphasis> 7 <emphasis role="comment">; callback </emphasis>
+
+<emphasis role="opc">prints</emphasis> "<emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis>"
+<emphasis role="opc">prints</emphasis> "\nMax string len <emphasis role="op">:</emphasis> "
+<emphasis role="opc">prints</emphasis> S1
+<emphasis role="opc">prints</emphasis> "\nInput file name (<emphasis role="op">-</emphasis>i) <emphasis role="op">:</emphasis> "
+<emphasis role="opc">prints</emphasis> S2
+<emphasis role="opc">prints</emphasis> "\nOutput file name (<emphasis role="op">-</emphasis>o) <emphasis role="op">:</emphasis> "
+<emphasis role="opc">prints</emphasis> S3
+<emphasis role="opc">prints</emphasis> "\nRTaudio (<emphasis role="op">-</emphasis>odac) <emphasis role="op">:</emphasis> "
+<emphasis role="opc">prints</emphasis> S4
+<emphasis role="opc">prints</emphasis> "\nBeat <emphasis role="opc">mode</emphasis> (<emphasis role="op">-</emphasis>t)<emphasis role="op">?</emphasis> <emphasis role="op">:</emphasis> "
+<emphasis role="opc">prints</emphasis> S5
+<emphasis role="opc">prints</emphasis> "\nHost Op. Sys. <emphasis role="op">:</emphasis> "
+<emphasis role="opc">prints</emphasis> S6
+<emphasis role="opc">prints</emphasis> "\nCallback <emphasis role="op">?</emphasis> <emphasis role="op">:</emphasis> "
+<emphasis role="opc">prints</emphasis> S7
+<emphasis role="opc">prints</emphasis> "\n"
+<emphasis role="opc">prints</emphasis> "<emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">-</emphasis>\n"
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 0
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/gogobel.csd.xml b/examples-xml/gogobel.csd.xml
index ec21b32..74af9a5 100644
--- a/examples-xml/gogobel.csd.xml
+++ b/examples-xml/gogobel.csd.xml
@@ -2,48 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o gogobel.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; kamp = 31129.60</emphasis>
- <emphasis role="comment">; kfreq = 440</emphasis>
- <emphasis role="comment">; ihrd = 0.5</emphasis>
- <emphasis role="comment">; ipos = 0.561</emphasis>
- <emphasis role="comment">; imp = 1</emphasis>
- <emphasis role="comment">; kvibf = 6.0</emphasis>
- <emphasis role="comment">; kvamp = 0.3</emphasis>
- <emphasis role="comment">; ivfn = 2</emphasis>
-
- a1 <emphasis role="opc">gogobel</emphasis> 31129.60, 440, 0.5, 0.561, 1, 6.0, 0.3, 2
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+ kfreq <emphasis role="op">=</emphasis> 200
+ ihrd <emphasis role="op">=</emphasis> 0.5
+ ipos <emphasis role="op">=</emphasis> p4
+ kvibf <emphasis role="op">=</emphasis> 6.0
+ kvamp <emphasis role="op">=</emphasis> 0.3
+asig <emphasis role="opc">gogobel</emphasis> .9, kfreq, ihrd, ipos, 1, 6.0, 0.3, 2
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, the "marmstk1.wav" audio file.</emphasis>
+<emphasis role="comment">;audio file</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 256 1 "marmstk1.wav" 0 0 0
-<emphasis role="comment">; Table #2, a sine wave for the vibrato.</emphasis>
+<emphasis role="comment">;sine wave for the vibrato</emphasis>
<emphasis role="stamnt">f</emphasis> 2 0 128 10 1
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0.5 1
+<emphasis role="stamnt">i</emphasis> 1 0.5 0.5 0.01
+<emphasis role="stamnt">i</emphasis> 1 + 0.5 0.561
+<emphasis role="stamnt">i</emphasis> 1 + 0.5 0.9
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/grain.csd.xml b/examples-xml/grain.csd.xml
index 8b4b6da..56f8fda 100644
--- a/examples-xml/grain.csd.xml
+++ b/examples-xml/grain.csd.xml
@@ -1,46 +1,47 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
-<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
-<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o grain.wav -W ;;; for file output any platform</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform </emphasis>
+-odac <emphasis role="comment">;;;realtime audio out </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too </emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below: </emphasis>
+<emphasis role="comment">; -o grain.wav -W ;;; for file output any platform </emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="oblock">instr</emphasis> 1
- insnd <emphasis role="op">=</emphasis> 10
- ibasfrq <emphasis role="op">=</emphasis> 44100 <emphasis role="op">/</emphasis> <emphasis role="opc">ftlen</emphasis>(insnd) <emphasis role="comment">; Use original sample rate of insnd file</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="opc">expseg</emphasis> 220, p3<emphasis role="op">/</emphasis>2, 600, p3<emphasis role="op">/</emphasis>2, 220
- kpitch <emphasis role="opc">line</emphasis> ibasfrq, p3, ibasfrq <emphasis role="op">*</emphasis> .8
- kdens <emphasis role="opc">line</emphasis> 600, p3, 200
- kaoff <emphasis role="opc">line</emphasis> 0, p3, 5000
- kpoff <emphasis role="opc">line</emphasis> 0, p3, ibasfrq <emphasis role="op">*</emphasis> .5
- kgdur <emphasis role="opc">line</emphasis> .4, p3, .1
- imaxgdur <emphasis role="op">=</emphasis> .5
+insnd <emphasis role="op">=</emphasis> 10
+ibasfrq <emphasis role="op">=</emphasis> 44100 <emphasis role="op">/</emphasis> <emphasis role="opc">ftlen</emphasis>(insnd) <emphasis role="comment">; Use original sample rate of insnd file </emphasis>
- ar <emphasis role="opc">grain</emphasis> kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, 5, imaxgdur, 0.0
- <emphasis role="opc">out</emphasis> ar
-<emphasis role="oblock">endin</emphasis>
+kamp <emphasis role="opc">expseg</emphasis> .001, p3<emphasis role="op">/</emphasis>2, .1, p3<emphasis role="op">/</emphasis>2, .01 <emphasis role="comment">;a swell in amplitude</emphasis>
+kpitch <emphasis role="opc">line</emphasis> ibasfrq, p3, ibasfrq <emphasis role="op">*</emphasis> .8
+kdens <emphasis role="opc">line</emphasis> 600, p3, 100
+kaoff <emphasis role="opc">line</emphasis> 0, p3, .1
+kpoff <emphasis role="opc">line</emphasis> 0, p3, ibasfrq <emphasis role="op">*</emphasis> .5
+kgdur <emphasis role="opc">line</emphasis> .4, p3, .01
+imaxgdur <emphasis role="op">=</emphasis> .5
+asigL <emphasis role="opc">grain</emphasis> kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, 5, imaxgdur, 0.0
+asigR <emphasis role="opc">grain</emphasis> kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, 5, imaxgdur, 0.0
+ <emphasis role="opc">outs</emphasis> asigL, asigR
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis>5 0 512 20 2 <emphasis role="comment">; Hanning window </emphasis>
+<emphasis role="stamnt">f</emphasis>10 0 16384 1 "beats.wav" 0 0 0
-<emphasis role="stamnt">f</emphasis>5 0 512 20 2 <emphasis role="comment">; Hanning window</emphasis>
-<emphasis role="stamnt">f</emphasis>10 0 262144 1 "mary.wav" 0 0 0
-<emphasis role="stamnt">i</emphasis>1 0 6
-<emphasis role="stamnt">e</emphasis>
-
-
+<emphasis role="stamnt">i</emphasis>1 0 15
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/grain2.csd.xml b/examples-xml/grain2.csd.xml
index 5dab555..9aa4f34 100644
--- a/examples-xml/grain2.csd.xml
+++ b/examples-xml/grain2.csd.xml
@@ -35,7 +35,7 @@ ga01 <emphasis role="opc">init</emphasis> 0
i0 <emphasis role="op">=</emphasis> 0
<emphasis role="olabel">loop1</emphasis><emphasis role="op">:</emphasis>
-imaxh <emphasis role="op">=</emphasis> <emphasis role="ohdr">sr</emphasis> <emphasis role="op">/</emphasis> (2 <emphasis role="op">*</emphasis> 440.0 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis> (<emphasis role="opc">log</emphasis>(2.0) <emphasis role="op">*</emphasis> (i0 <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12))
+imaxh <emphasis role="op">=</emphasis> <emphasis role="ohdr">sr</emphasis> <emphasis role="op">/</emphasis> (2 <emphasis role="op">*</emphasis> 440.0 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2.0) <emphasis role="op">*</emphasis> (i0 <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12))
i_ <emphasis role="ohdr">ftgen</emphasis> i0 <emphasis role="op">+</emphasis> 256, 0, 4096, <emphasis role="op">-</emphasis>30, 1, 1, imaxh
i0 <emphasis role="op">=</emphasis> i0 <emphasis role="op">+</emphasis> 1
<emphasis role="octrl">if</emphasis> (i0 <emphasis role="op">&lt;</emphasis> 127.5) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">loop1</emphasis>
diff --git a/examples-xml/guiro.csd.xml b/examples-xml/guiro.csd.xml
index bf28577..f041948 100644
--- a/examples-xml/guiro.csd.xml
+++ b/examples-xml/guiro.csd.xml
@@ -2,31 +2,30 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o guiro.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="oblock">instr</emphasis> 01 <emphasis role="comment">;example of a guiro</emphasis>
-a1 <emphasis role="opc">guiro</emphasis> p4, 0.01
- <emphasis role="opc">out</emphasis> a1
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+a1 <emphasis role="opc">guiro</emphasis> .8, p4
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis>1 0 1 20000
+<emphasis role="stamnt">i</emphasis>1 0 1 1
+<emphasis role="stamnt">i</emphasis>1 + 1 .01
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/harmon.csd.xml b/examples-xml/harmon.csd.xml
index 9c8699c..7a4fba8 100644
--- a/examples-xml/harmon.csd.xml
+++ b/examples-xml/harmon.csd.xml
@@ -2,58 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o harmon.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; The frequency of the base note.</emphasis>
- inote <emphasis role="op">=</emphasis> 440
-
- <emphasis role="comment">; Generate the base note.</emphasis>
- avco <emphasis role="opc">vco</emphasis> 20000, inote, 1
-
- kestfrq <emphasis role="op">=</emphasis> inote
- kmaxvar <emphasis role="op">=</emphasis> 0.4
+
+aout <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+
+kestfrq <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;different estimated frequency</emphasis>
+kmaxvar <emphasis role="op">=</emphasis> 0.1
+imode <emphasis role="op">=</emphasis> 1
+iminfrq <emphasis role="op">=</emphasis> 100
+iprd <emphasis role="op">=</emphasis> 0.02
- <emphasis role="comment">; Calculate frequencies 3 semitones above and</emphasis>
- <emphasis role="comment">; below the base note.</emphasis>
- kgenfreq1 <emphasis role="op">=</emphasis> inote <emphasis role="op">*</emphasis> <emphasis role="opc">semitone</emphasis>(3)
- kgenfreq2 <emphasis role="op">=</emphasis> inote <emphasis role="op">*</emphasis> <emphasis role="opc">semitone</emphasis>(<emphasis role="op">-</emphasis>3)
-
- imode <emphasis role="op">=</emphasis> 1
- iminfrq <emphasis role="op">=</emphasis> inote <emphasis role="op">-</emphasis> 200
- iprd <emphasis role="op">=</emphasis> 0.1
-
- <emphasis role="comment">; Generate the harmony notes.</emphasis>
- a1 <emphasis role="opc">harmon</emphasis> avco, kestfrq, kmaxvar, kgenfreq1, kgenfreq2, \
+asig <emphasis role="opc">harmon</emphasis> aout, kestfrq, kmaxvar, kestfrq<emphasis role="op">*</emphasis>.5, kestfrq<emphasis role="op">*</emphasis>4, \
imode, iminfrq, iprd
+ <emphasis role="opc">outs</emphasis> (asig <emphasis role="op">+</emphasis> aout)<emphasis role="op">*</emphasis>.6, (asig <emphasis role="op">+</emphasis> aout)<emphasis role="op">*</emphasis>.6 <emphasis role="comment">;mix dry&amp;wet signal</emphasis>
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 2.7 100
+<emphasis role="stamnt">i</emphasis> 1 + . 200
+<emphasis role="stamnt">i</emphasis> 1 + . 500
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/harmon3.csd.xml b/examples-xml/harmon3.csd.xml
new file mode 100644
index 0000000..6721af2
--- /dev/null
+++ b/examples-xml/harmon3.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o harmon3.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ilow <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;lowest value to harmonize </emphasis>
+aout <emphasis role="opc">diskin2</emphasis> "fox.wav", 1, 0, 1
+koct, kamp <emphasis role="opc">pitch</emphasis> aout, .01, 6, 10, 10 <emphasis role="comment">;track pitch</emphasis>
+asig <emphasis role="opc">harmon3</emphasis> aout, koct, .9, 1.5, 0.7, 0, ilow
+ <emphasis role="opc">outs</emphasis> (asig <emphasis role="op">+</emphasis> aout)<emphasis role="op">*</emphasis>.4, (asig <emphasis role="op">+</emphasis> aout)<emphasis role="op">*</emphasis>.4 <emphasis role="comment">;mix dry&amp;wet signal</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 2.7 8.8
+<emphasis role="stamnt">i</emphasis>1 3 2.7 8.2
+<emphasis role="stamnt">i</emphasis>1 6 2.7 7.0
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/hilbert.csd.xml b/examples-xml/hilbert.csd.xml
index 1fafa86..1c2c400 100644
--- a/examples-xml/hilbert.csd.xml
+++ b/examples-xml/hilbert.csd.xml
@@ -2,17 +2,17 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o hilbert.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
idur <emphasis role="op">=</emphasis> p3
@@ -28,7 +28,7 @@
kfreq <emphasis role="opc">linseg</emphasis> ibegshift, idur, iendshift
<emphasis role="comment">; Use the sound of your choice.</emphasis>
- ain <emphasis role="opc">soundin</emphasis> "mary.wav"
+ ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
<emphasis role="comment">; Phase quadrature output derived from input signal.</emphasis>
areal, aimag <emphasis role="opc">hilbert</emphasis> ain
@@ -52,7 +52,7 @@
<emphasis role="comment">; Notice that the adding of the two together is</emphasis>
<emphasis role="comment">; identical to the output of ring modulation.</emphasis>
- <emphasis role="opc">out</emphasis> aupshift
+ <emphasis role="opc">outs</emphasis> aupshift, aupshift
<emphasis role="oblock">endin</emphasis>
@@ -63,12 +63,12 @@
<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
<emphasis role="comment">; Starting with no shift, ending with all</emphasis>
-<emphasis role="comment">; frequencies shifted up by 200 Hz.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2 0 200
+<emphasis role="comment">; frequencies shifted up by 2000 Hz.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 6 0 2000
<emphasis role="comment">; Starting with no shift, ending with all</emphasis>
-<emphasis role="comment">; frequencies shifted down by 200 Hz.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 2 2 0 -200
+<emphasis role="comment">; frequencies shifted down by 250 Hz.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 7 6 0 -250
<emphasis role="stamnt">e</emphasis>
diff --git a/examples-xml/hrtfearly.csd.xml b/examples-xml/hrtfearly.csd.xml
new file mode 100644
index 0000000..bffa699
--- /dev/null
+++ b/examples-xml/hrtfearly.csd.xml
@@ -0,0 +1,74 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select flags here</emphasis>
+<emphasis role="comment">; realtime audio out</emphasis>
+ -o dac
+<emphasis role="comment">; file ouput </emphasis>
+<emphasis role="comment">; -o hrtf.wav</emphasis>
+
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+gasrc <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">;global</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;a plucked string, distorted and filtered</emphasis>
+
+ iamp <emphasis role="op">=</emphasis> 15000
+ icps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+
+ a1 <emphasis role="opc">pluck</emphasis> iamp, icps, icps, 0, 1
+ adist <emphasis role="opc">distort1</emphasis> a1, 10, .5, 0, 0
+ afilt <emphasis role="opc">moogvcf2</emphasis> adist, 8000, .5
+ aout <emphasis role="opc">linen</emphasis> afilt, 0, p3, .01
+
+ gasrc <emphasis role="op">=</emphasis> gasrc <emphasis role="op">+</emphasis> aout
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 10 <emphasis role="comment">;uses output from instr1 as source</emphasis>
+
+ <emphasis role="comment">;simple path for source</emphasis>
+ kx <emphasis role="opc">line</emphasis> 2, p3, 9
+
+ <emphasis role="comment">;early reflections, room default 1</emphasis>
+ aearlyl,aearlyr, irt60low, irt60high, imfp <emphasis role="opc">hrtfearly</emphasis> gasrc, kx, 5, 1, 5, 1, 1, "hrtf<emphasis role="op">-</emphasis>44100<emphasis role="op">-</emphasis>left.dat", "hrtf<emphasis role="op">-</emphasis>44100<emphasis role="op">-</emphasis>right.dat", 1
+
+ <emphasis role="comment">;later reverb, uses outputs from above</emphasis>
+ arevl, arevr, idel <emphasis role="opc">hrtfreverb</emphasis> gasrc, irt60low, irt60high, "hrtf<emphasis role="op">-</emphasis>44100<emphasis role="op">-</emphasis>left.dat", "hrtf<emphasis role="op">-</emphasis>44100<emphasis role="op">-</emphasis>right.dat", 44100, imfp
+
+ <emphasis role="comment">;delayed and scaled</emphasis>
+ alatel <emphasis role="opc">delay</emphasis> arevl <emphasis role="op">*</emphasis> .1, idel
+ alater <emphasis role="opc">delay</emphasis> arevr <emphasis role="op">*</emphasis> .1, idel
+
+ <emphasis role="opc">outs</emphasis> aearlyl <emphasis role="op">+</emphasis> alatel, aearlyr <emphasis role="op">+</emphasis> alater
+
+ gasrc <emphasis role="op">=</emphasis> 0
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; Play Instrument 1: a simple arpeggio</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 .2 8.00
+<emphasis role="stamnt">i</emphasis>1 + .2 8.04
+<emphasis role="stamnt">i</emphasis>1 + .2 8.07
+<emphasis role="stamnt">i</emphasis>1 + .2 8.11
+<emphasis role="stamnt">i</emphasis>1 + .2 9.02
+<emphasis role="stamnt">i</emphasis>1 + 1.5 8.11
+<emphasis role="stamnt">i</emphasis>1 + 1.5 8.07
+<emphasis role="stamnt">i</emphasis>1 + 1.5 8.04
+<emphasis role="stamnt">i</emphasis>1 + 1.5 8.00
+<emphasis role="stamnt">i</emphasis>1 + 1.5 7.09
+<emphasis role="stamnt">i</emphasis>1 + 4 8.00
+
+<emphasis role="comment">; Play Instrument 10 for 13 seconds.</emphasis>
+<emphasis role="stamnt">i</emphasis>10 0 13
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/hrtfstat-2.csd.xml b/examples-xml/hrtfstat-2.csd.xml
new file mode 100644
index 0000000..573eb61
--- /dev/null
+++ b/examples-xml/hrtfstat-2.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o hrtfstat-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+iAz <emphasis role="op">=</emphasis> p4
+iElev <emphasis role="op">=</emphasis> p5
+
+itim <emphasis role="op">=</emphasis> <emphasis role="opc">ftlptim</emphasis>(1)
+<emphasis role="comment">; transeg a dur ty b dur ty c dur ty d</emphasis>
+kamp <emphasis role="opc">transeg</emphasis> 0, p3<emphasis role="op">*</emphasis>.1, 0, .9, p3<emphasis role="op">*</emphasis>.3, <emphasis role="op">-</emphasis>3, .5, p3<emphasis role="op">*</emphasis>.3, <emphasis role="op">-</emphasis>2, 0
+ain <emphasis role="opc">loscil3</emphasis> kamp, 50, 1
+aleft,aright <emphasis role="opc">hrtfstat</emphasis> ain, iAz, iElev, "hrtf<emphasis role="op">-</emphasis>44100<emphasis role="op">-</emphasis>left.dat","hrtf<emphasis role="op">-</emphasis>44100<emphasis role="op">-</emphasis>right.dat"
+ <emphasis role="opc">outs</emphasis> aleft, aright
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "Church.wav" 0 0 0 <emphasis role="comment">;Csound computes tablesize</emphasis>
+
+<emphasis role="comment">; Azim Elev</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 7 90 0 <emphasis role="comment">;to the right</emphasis>
+<emphasis role="stamnt">i</emphasis>1 3 7 -90 -40 <emphasis role="comment">;to the left and below</emphasis>
+<emphasis role="stamnt">i</emphasis>1 6 7 180 90 <emphasis role="comment">;behind and up</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/hrtfstat.csd.xml b/examples-xml/hrtfstat.csd.xml
index 0828699..c9beddd 100644
--- a/examples-xml/hrtfstat.csd.xml
+++ b/examples-xml/hrtfstat.csd.xml
@@ -1,53 +1,50 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
- <emphasis role="comment">; Select flags here</emphasis>
- <emphasis role="comment">; realtime audio out</emphasis>
- -o dac
- <emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
- <emphasis role="comment">; -o hrtf.wav</emphasis>
-
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o hrtfstat.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
- <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
- <emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
- <emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
- <emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gasrc <emphasis role="opc">init</emphasis> 0
- gasrc <emphasis role="opc">init</emphasis> 0
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;a plucked string</emphasis>
- <emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;a plucked string</emphasis>
+kamp <emphasis role="op">=</emphasis> p4
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p5)
+icps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p5)
+a1 <emphasis role="opc">pluck</emphasis> kamp, kcps, icps, 0, 1
- kamp <emphasis role="op">=</emphasis> p4
- kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p5)
- icps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p5)
+gasrc <emphasis role="op">=</emphasis> a1
- a1 <emphasis role="opc">pluck</emphasis> kamp, kcps, icps, 0, 1
+<emphasis role="oblock">endin</emphasis>
- gasrc <emphasis role="op">=</emphasis> a1
+<emphasis role="oblock">instr</emphasis> 10<emphasis role="comment">;uses output from instr1 as source</emphasis>
- <emphasis role="oblock">endin</emphasis>
+aleft,aright <emphasis role="opc">hrtfstat</emphasis> gasrc, 90,0, "hrtf<emphasis role="op">-</emphasis>44100<emphasis role="op">-</emphasis>left.dat","hrtf<emphasis role="op">-</emphasis>44100<emphasis role="op">-</emphasis>right.dat"
+ <emphasis role="opc">outs</emphasis> aleft, aright
- <emphasis role="oblock">instr</emphasis> 10 <emphasis role="comment">;uses output from instr1 as source</emphasis>
+<emphasis role="opc">clear</emphasis> gasrc
+<emphasis role="oblock">endin</emphasis>
- aleft,aright <emphasis role="opc">hrtfstat</emphasis> gasrc, 90,0, "hrtf<emphasis role="op">-</emphasis>44100<emphasis role="op">-</emphasis>left.dat","hrtf<emphasis role="op">-</emphasis>44100<emphasis role="op">-</emphasis>right.dat"
-
- <emphasis role="opc">outs</emphasis> aleft, aright
-
- <emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
- <emphasis role="comment">; Play Instrument 1: a plucked string</emphasis>
- <emphasis role="stamnt">i</emphasis>1 0 2 20000 8.00
+<emphasis role="stamnt">i</emphasis>1 0 2 .7 8.00 <emphasis role="comment">; Play Instrument 1: a plucked string</emphasis>
+<emphasis role="stamnt">i</emphasis>1 .5 2 .7 8.00
+<emphasis role="stamnt">i</emphasis>1 1 2 .7 8.00
+<emphasis role="stamnt">i</emphasis>1 2 2 .7 7.00
- <emphasis role="comment">; Play Instrument 10 for 2 seconds.</emphasis>
- <emphasis role="stamnt">i</emphasis>10 0 2
+<emphasis role="stamnt">i</emphasis>10 0 12 <emphasis role="comment">; Play Instrument 10 for 2 seconds.</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/hsboscil.csd.xml b/examples-xml/hsboscil.csd.xml
index 502e587..b30aa01 100644
--- a/examples-xml/hsboscil.csd.xml
+++ b/examples-xml/hsboscil.csd.xml
@@ -2,28 +2,27 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o hsboscil.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="comment">; synth waveform</emphasis>
-giwave <emphasis role="ohdr">ftgen</emphasis> 1, 0, 1024, 10, 1, 1, 1, 1
+giwave <emphasis role="ohdr">ftgen</emphasis> 1, 0, 1024, 10, 1, 1, 1, 1
<emphasis role="comment">; blending window</emphasis>
giblend <emphasis role="ohdr">ftgen</emphasis> 2, 0, 1024, <emphasis role="op">-</emphasis>19, 1, 0.5, 270, 0.5
-<emphasis role="comment">; Instrument #1 - produces Risset's glissando.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10000
- kbrite <emphasis role="op">=</emphasis> 0.5
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; produces Risset's glissando.</emphasis>
+
+ kamp <emphasis role="op">=</emphasis> .4
+ kbrite <emphasis role="op">=</emphasis> 0.3
ibasfreq <emphasis role="op">=</emphasis> 200
ioctcnt <emphasis role="op">=</emphasis> 5
@@ -31,19 +30,15 @@ giblend <emphasis role="ohdr">ftgen</emphasis> 2, 0, 1024, <emphasis role="op">-
<emphasis role="comment">; over the period defined by p3.</emphasis>
ktone <emphasis role="opc">line</emphasis> 0, p3, 1
- a1 <emphasis role="opc">hsboscil</emphasis> kamp, ktone, kbrite, ibasfreq, giwave, giblend, ioctcnt
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
-
+asig <emphasis role="opc">hsboscil</emphasis> kamp, ktone, kbrite, ibasfreq, giwave, giblend, ioctcnt
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for ten seconds.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 10
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/hsboscil_midi.csd.xml b/examples-xml/hsboscil_midi.csd.xml
index 033ee75..019edb1 100644
--- a/examples-xml/hsboscil_midi.csd.xml
+++ b/examples-xml/hsboscil_midi.csd.xml
@@ -2,50 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
-<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; Audio out </emphasis>
+-odac -M0 <emphasis role="comment">;;;realtime audio out and realtime MIDI in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; -o hsboscil_midi.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="comment">; synth waveform</emphasis>
-giwave <emphasis role="ohdr">ftgen</emphasis> 1, 0, 1024, 10, 1, 1, 1, 1
+giwave <emphasis role="ohdr">ftgen</emphasis> 1, 0, 1024, 10, 1, 1, 1, 1
<emphasis role="comment">; blending window</emphasis>
giblend <emphasis role="ohdr">ftgen</emphasis> 2, 0, 1024, <emphasis role="op">-</emphasis>19, 1, 0.5, 270, 0.5
-<emphasis role="comment">; Instrument #1 - use hsboscil in a MIDI instrument.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- ibase <emphasis role="op">=</emphasis> <emphasis role="opc">cpsoct</emphasis>(6)
- ioctcnt <emphasis role="op">=</emphasis> 5
- <emphasis role="comment">; all octaves sound alike.</emphasis>
+ibase <emphasis role="op">=</emphasis> <emphasis role="opc">cpsoct</emphasis>(6)
+ioctcnt <emphasis role="op">=</emphasis> 5
+
+<emphasis role="comment">; all octaves sound alike.</emphasis>
itona <emphasis role="opc">octmidi</emphasis>
<emphasis role="comment">; velocity is mapped to brightness</emphasis>
- ibrite <emphasis role="opc">ampmidi</emphasis> 3
+ ibrite <emphasis role="opc">ampmidi</emphasis> 4
- <emphasis role="comment">; Map an exponential envelope for the amplitude.</emphasis>
- kenv <emphasis role="opc">expon</emphasis> 20000, 1, 100
+<emphasis role="comment">; Map an exponential envelope for the amplitude.</emphasis>
+kenv <emphasis role="opc">expon</emphasis> .8, 1, .01
+asig <emphasis role="opc">hsboscil</emphasis> kenv, itona, ibrite, ibase, giwave, giblend, ioctcnt
+ <emphasis role="opc">outs</emphasis> asig, asig
- asig <emphasis role="opc">hsboscil</emphasis> kenv, itona, ibrite, ibase, giwave, giblend, ioctcnt
- <emphasis role="opc">out</emphasis> asig
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for ten minutes</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 600
+<emphasis role="stamnt">i</emphasis> 1 0 30 <emphasis role="comment">; play for 30 seconds</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/hvs2.csd.xml b/examples-xml/hvs2.csd.xml
index bf488c4..fe2cbe5 100644
--- a/examples-xml/hvs2.csd.xml
+++ b/examples-xml/hvs2.csd.xml
@@ -6,77 +6,55 @@
-odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-
<emphasis role="ohdr">sr</emphasis><emphasis role="op">=</emphasis>44100
<emphasis role="ohdr">ksmps</emphasis><emphasis role="op">=</emphasis>100
<emphasis role="ohdr">nchnls</emphasis><emphasis role="op">=</emphasis>2
-
<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-
ginumLinesX <emphasis role="opc">init</emphasis> 4
ginumLinesY <emphasis role="opc">init</emphasis> 4
ginumParms <emphasis role="opc">init</emphasis> 3
-
giOutTab <emphasis role="ohdr">ftgen</emphasis> 5,0,8, <emphasis role="op">-</emphasis>2, 0
giPosTab <emphasis role="ohdr">ftgen</emphasis> 6,0,32, <emphasis role="op">-</emphasis>2, 3,2,1,0,4,5,6,7,8,9,10, 11, 15, 14, 13, 12
giSnapTab <emphasis role="ohdr">ftgen</emphasis> 8,0,64, <emphasis role="op">-</emphasis>2, 1,1,1, 2,0,0, 3,2,0, 2,2,2, 5,2,1, 2,3,4, 6,1,7, 0,0,0, \
1,3,5, 3,4,4, 1,5,8, 1,1,5, 4,3,2, 3,4,5, 7,6,5, 7,8,9
-
<emphasis role="opc">tb0_init</emphasis> giOutTab
-
<emphasis role="opc">FLpanel</emphasis> "Prova HVS2",600,400,10,100,0
-
gk1, gk2, ih1, ih2 <emphasis role="opc">FLjoy</emphasis> "HVS controller XY", 0, 1, 1, 0, 0, 0, <emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, 300, 300, 0, 50
-
<emphasis role="comment">; *ihandle, *numlinesX, *numlinesY, *iwidth, *iheight, *ix, *iy,*image;</emphasis>
gihandle <emphasis role="opc">FLhvsBox</emphasis> ginumLinesX, ginumLinesY, 300, 300, 300, 50, 1
-
<emphasis role="opc">FLpanel_end</emphasis>
<emphasis role="opc">FLrun</emphasis>
-
<emphasis role="oblock">instr</emphasis> 1
-
<emphasis role="comment">; Smooth control signals to avoid clicks</emphasis>
kx <emphasis role="opc">portk</emphasis> gk1, 0.02
ky <emphasis role="opc">portk</emphasis> gk2, 0.02
-
<emphasis role="comment">; kx, ky, inumParms, inumlinesX, inumlinesY, iOutTab, iPosTab, iSnapTab [, iConfigTab]</emphasis>
<emphasis role="opc">hvs2</emphasis> kx, ky, ginumParms, ginumLinesX, ginumLinesY, giOutTab, giPosTab, giSnapTab <emphasis role="comment">;, iConfigTab</emphasis>
-
<emphasis role="comment">; *kx, *ky, *ihandle;</emphasis>
<emphasis role="opc">FLhvsBoxSetValue</emphasis> gk1, gk2, gihandle
-
k0 <emphasis role="opc">init</emphasis> 0
k1 <emphasis role="opc">init</emphasis> 1
k2 <emphasis role="opc">init</emphasis> 2
-
<emphasis role="opc">printk2</emphasis> <emphasis role="opc">tb0</emphasis>(k0)
<emphasis role="opc">printk2</emphasis> <emphasis role="opc">tb0</emphasis>(k1), 10
<emphasis role="opc">printk2</emphasis> <emphasis role="opc">tb0</emphasis>(k2), 20
-
kris <emphasis role="opc">init</emphasis> 0.003
kdur <emphasis role="opc">init</emphasis> 0.02
kdec <emphasis role="opc">init</emphasis> 0.007
-
<emphasis role="comment">; Make parameters of synthesis depend on the table values produced by hvs</emphasis>
ares1 <emphasis role="opc">fof</emphasis> 0.2, <emphasis role="opc">tb0</emphasis>(k0)<emphasis role="op">*</emphasis>100 <emphasis role="op">+</emphasis> 50, <emphasis role="opc">tb0</emphasis>(k1)<emphasis role="op">*</emphasis>100 <emphasis role="op">+</emphasis> 200, 0, <emphasis role="opc">tb0</emphasis>(k2) <emphasis role="op">*</emphasis> 10 <emphasis role="op">+</emphasis> 50, 0.003, 0.02, 0.007, 20, \
1, 2, p3
ares2 <emphasis role="opc">fof</emphasis> 0.2, <emphasis role="opc">tb0</emphasis>(k1)<emphasis role="op">*</emphasis>100 <emphasis role="op">+</emphasis> 50, <emphasis role="opc">tb0</emphasis>(k2)<emphasis role="op">*</emphasis>100 <emphasis role="op">+</emphasis> 200, 0, <emphasis role="opc">tb0</emphasis>(k0) <emphasis role="op">*</emphasis> 10 <emphasis role="op">+</emphasis> 50, 0.003, 0.02, 0.007, 20, \
1, 2, p3
-
<emphasis role="opc">outs</emphasis> ares1, ares2
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 1024 10 1 <emphasis role="comment">;Sine wave</emphasis>
<emphasis role="stamnt">f</emphasis> 2 0 1024 19 0.5 0.5 270 0.5 <emphasis role="comment">;Grain envelope table</emphasis>
-
<emphasis role="stamnt">f</emphasis>0 3600
-
<emphasis role="stamnt">i</emphasis>1 0 3600
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/i_statement.csd.xml b/examples-xml/i_statement.csd.xml
new file mode 100644
index 0000000..af44903
--- /dev/null
+++ b/examples-xml/i_statement.csd.xml
@@ -0,0 +1,71 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o i_statement.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 10
+
+ icps <emphasis role="opc">init</emphasis> <emphasis role="opc">cpspch</emphasis>(p4) <emphasis role="comment">; Get target pitch from score event</emphasis>
+ iportime <emphasis role="opc">init</emphasis> <emphasis role="opc">abs</emphasis>(p3)<emphasis role="op">/</emphasis>7 <emphasis role="comment">; Portamento time dep on note length</emphasis>
+ iamp0 <emphasis role="opc">init</emphasis> p5 <emphasis role="comment">; Set default amps</emphasis>
+ iamp1 <emphasis role="opc">init</emphasis> p5
+ iamp2 <emphasis role="opc">init</emphasis> p5
+
+ itie <emphasis role="opc">tival</emphasis> <emphasis role="comment">; Check if this note is tied,</emphasis>
+ <emphasis role="octrl">if</emphasis> itie <emphasis role="op">==</emphasis> 1 <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">nofadein</emphasis> <emphasis role="comment">; if not fade in</emphasis>
+ iamp0 <emphasis role="opc">init</emphasis> 0
+
+<emphasis role="olabel">nofadein</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="octrl">if</emphasis> p3 <emphasis role="op">&lt;</emphasis> 0 <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">nofadeout</emphasis> <emphasis role="comment">; Check if this note is held, if not fade out</emphasis>
+ iamp2 <emphasis role="opc">init</emphasis> 0
+
+<emphasis role="olabel">nofadeout</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="comment">; Now do amp from the set values:</emphasis>
+ kamp <emphasis role="opc">linseg</emphasis> iamp0, .03, iamp1, <emphasis role="opc">abs</emphasis>(p3)<emphasis role="op">-</emphasis>.03, iamp2
+
+ <emphasis role="comment">; Skip rest of initialization on tied note:</emphasis>
+ <emphasis role="octrl">tigoto</emphasis> <emphasis role="olabel">tieskip</emphasis>
+
+ kcps <emphasis role="opc">init</emphasis> icps <emphasis role="comment">; Init pitch for untied note</emphasis>
+ kcps <emphasis role="opc">port</emphasis> icps, iportime, icps <emphasis role="comment">; Drift towards target pitch</emphasis>
+
+ kpw <emphasis role="opc">oscil</emphasis> .4, <emphasis role="opc">rnd</emphasis>(1), 1, <emphasis role="opc">rnd</emphasis>(.7) <emphasis role="comment">; A simple triangle-saw oscil</emphasis>
+ ar <emphasis role="opc">vco</emphasis> kamp, kcps, 3, kpw<emphasis role="op">+</emphasis>.5, 1, 1<emphasis role="op">/</emphasis>icps
+
+ <emphasis role="comment">; (Used in testing - one may set ipch to cpspch(p4+2)</emphasis>
+ <emphasis role="comment">; and view output spectrum)</emphasis>
+ <emphasis role="comment">; ar oscil kamp, kcps, 1</emphasis>
+
+ <emphasis role="opc">outs</emphasis> ar, ar
+
+<emphasis role="olabel">tieskip</emphasis><emphasis role="op">:</emphasis> <emphasis role="comment">; Skip some initialization on tied note</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1 <emphasis role="comment">; Sine</emphasis>
+
+<emphasis role="stamnt">i</emphasis>10.1 0 -1 7.00 .15
+<emphasis role="stamnt">i</emphasis>10.2 0 -1 7.04
+<emphasis role="stamnt">i</emphasis>10.3 0 -1 7.07
+<emphasis role="stamnt">i</emphasis>10.1 1 -1 8.00
+<emphasis role="stamnt">i</emphasis>10.2 1 -1 8.04
+<emphasis role="stamnt">i</emphasis>10.3 1 -1 8.07
+<emphasis role="stamnt">i</emphasis>10.1 2 1 7.11
+<emphasis role="stamnt">i</emphasis>10.2 2 1 8.04
+<emphasis role="stamnt">i</emphasis>10.3 2 1 8.07
+ <emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/imageopcodes.csd.xml b/examples-xml/imageopcodes.csd.xml
index d07c771..99d972e 100644
--- a/examples-xml/imageopcodes.csd.xml
+++ b/examples-xml/imageopcodes.csd.xml
@@ -2,12 +2,10 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
-<emphasis role="comment">;-odac -iadc ;;;RT audio I/O</emphasis>
-<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
--o imageopcodes.wav -W <emphasis role="comment">;;; for file output any platform</emphasis>
+-n <emphasis role="comment">;no sound output</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
<emphasis role="ohdr">sr</emphasis><emphasis role="op">=</emphasis>48000
<emphasis role="ohdr">ksmps</emphasis><emphasis role="op">=</emphasis>1
<emphasis role="ohdr">nchnls</emphasis><emphasis role="op">=</emphasis>2
@@ -22,12 +20,14 @@ giimage2 <emphasis role="opc">imagecreate</emphasis> giimagew,giimageh
kndx <emphasis role="op">=</emphasis> 0
kx_ <emphasis role="opc">linseg</emphasis> 0, p3, 1
+<emphasis role="comment">;print imagewidth and imageheigth of image.png</emphasis>
+<emphasis role="opc">prints</emphasis> "imagewidth <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f pixels, imageheigth <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f pixels\\n", giimagew, giimageh
<emphasis role="olabel">myloop</emphasis><emphasis role="op">:</emphasis>
ky_ <emphasis role="op">=</emphasis> kndx<emphasis role="op">/</emphasis>(giimageh)
-kr_ kg_ kb_ <emphasis role="opc">imagegetpixel</emphasis> giimage1, kx_, ky_
+kr_, kg_, kb_ <emphasis role="opc">imagegetpixel</emphasis> giimage1, kx_, ky_
<emphasis role="opc">imagesetpixel</emphasis> giimage2, kx_, ky_, kr_, kg_, kb_
-<emphasis role="octrl">loop_lt</emphasis> kndx, 0.5, (giimageh), <emphasis role="olabel">myloop</emphasis>
+<emphasis role="octrl">loop_lt</emphasis> kndx, 0.5, giimageh, <emphasis role="olabel">myloop</emphasis>
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2
diff --git a/examples-xml/in.csd.xml b/examples-xml/in.csd.xml
new file mode 100644
index 0000000..94e5070
--- /dev/null
+++ b/examples-xml/in.csd.xml
@@ -0,0 +1,32 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -idac <emphasis role="comment">;;;realtime audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; in.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;1 channel in, two channels out</emphasis>
+
+ain1 <emphasis role="opc">in</emphasis> <emphasis role="comment">;grab your mic and sing</emphasis>
+adel <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 0.02, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;max delay time = 20ms</emphasis>
+aout <emphasis role="opc">flanger</emphasis> ain1, adel, .7
+ <emphasis role="opc">fout</emphasis> "in_1.wav", 14, aout, aout <emphasis role="comment">;write to stereo file,</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout <emphasis role="comment">;16 bits with header</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/inch.csd.xml b/examples-xml/inch.csd.xml
new file mode 100644
index 0000000..c3881da
--- /dev/null
+++ b/examples-xml/inch.csd.xml
@@ -0,0 +1,33 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -idac <emphasis role="comment">;;;realtime audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; inch.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;nchnls channels in, two channels out</emphasis>
+
+ain1, ainr <emphasis role="opc">inch</emphasis> 1, 2 <emphasis role="comment">;grab your mic and sing</emphasis>
+adel <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 0.02, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;max delay time = 20ms</emphasis>
+aoutl <emphasis role="opc">flanger</emphasis> ain1, adel, .7
+aoutr <emphasis role="opc">flanger</emphasis> ain1, adel<emphasis role="op">*</emphasis>2, .8
+ <emphasis role="opc">fout</emphasis> "in_ch.wav", 14, aoutl, aoutr <emphasis role="comment">;write to stereo file,</emphasis>
+ <emphasis role="opc">outs</emphasis> aoutl, aoutr <emphasis role="comment">;16 bits with header</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/init.csd.xml b/examples-xml/init.csd.xml
new file mode 100644
index 0000000..ebcede3
--- /dev/null
+++ b/examples-xml/init.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n <emphasis role="comment">;no sound output</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;shows what init does</emphasis>
+ kinit <emphasis role="opc">init</emphasis> 0
+ kinit <emphasis role="op">=</emphasis> kinit <emphasis role="op">+</emphasis> 1
+ <emphasis role="opc">printk</emphasis> .1, kinit
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;shows what an assignment does</emphasis>
+ knoinit <emphasis role="op">=</emphasis> 0
+ knoinit <emphasis role="op">=</emphasis> knoinit <emphasis role="op">+</emphasis> 1
+ <emphasis role="opc">printk</emphasis> .1, knoinit
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">;play one second each</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 1
+<emphasis role="stamnt">i</emphasis>2 2 1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/initc7.csd.xml b/examples-xml/initc7.csd.xml
index c15b214..16396e1 100644
--- a/examples-xml/initc7.csd.xml
+++ b/examples-xml/initc7.csd.xml
@@ -2,45 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
-<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o ctrl7.wav -W ;;; for file output any platform</emphasis>
+-odac -M0 <emphasis role="comment">;;;realtime audio I/O with MIDI in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; This example expects MIDI controller input on channel 1</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; expects MIDI controller input on channel 1</emphasis>
<emphasis role="comment">; run and move your midi controller to see result</emphasis>
-imax<emphasis role="op">=</emphasis>15000
-imin<emphasis role="op">=</emphasis>0
+imax <emphasis role="op">=</emphasis> 1
+imin <emphasis role="op">=</emphasis> 0
ichan <emphasis role="op">=</emphasis> 1
-ictlno<emphasis role="op">=</emphasis>7 <emphasis role="comment">; = midi volume</emphasis>
-
+ictlno <emphasis role="op">=</emphasis> 7
+
<emphasis role="opc">initc7</emphasis> 1, 7, 1 <emphasis role="comment">; start at max. volume</emphasis>
-kamp <emphasis role="opc">ctrl7</emphasis> ichan,ictlno, imin, imax <emphasis role="comment">; controller 7</emphasis>
+kamp <emphasis role="opc">ctrl7</emphasis> ichan, ictlno, imin, imax <emphasis role="comment">; controller 7</emphasis>
<emphasis role="opc">printk2</emphasis> kamp
-a1 <emphasis role="opc">oscil</emphasis> kamp,440,1
- <emphasis role="opc">out</emphasis> a1
+asig <emphasis role="opc">oscil</emphasis> kamp, 220, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
-<emphasis role="stamnt">i</emphasis>1 0 20
-<emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 20
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/inleta.csd.xml b/examples-xml/inleta.csd.xml
index 052c1e6..4e83885 100644
--- a/examples-xml/inleta.csd.xml
+++ b/examples-xml/inleta.csd.xml
@@ -3,32 +3,31 @@
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O </emphasis>
-<emphasis role="comment">;-Wfo inleta.wav </emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o inleta.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables. </emphasis>
-
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
<emphasis role="comment">; Connect up instruments and effects to create the signal flow graph. </emphasis>
-<emphasis role="opc">connect</emphasis> "SimpleSine", "leftout", "Reverberator", "leftin"
-<emphasis role="opc">connect</emphasis> "SimpleSine", "rightout", "Reverberator", "rightin"
+<emphasis role="opc">connect</emphasis> "SimpleSine", "leftout", "Reverberator", "leftin"
+<emphasis role="opc">connect</emphasis> "SimpleSine", "rightout","Reverberator", "rightin"
-<emphasis role="opc">connect</emphasis> "Moogy", "leftout", "Reverberator", "leftin"
-<emphasis role="opc">connect</emphasis> "Moogy", "rightout", "Reverberator", "rightin"
+<emphasis role="opc">connect</emphasis> "Moogy", "leftout", "Reverberator", "leftin"
+<emphasis role="opc">connect</emphasis> "Moogy", "rightout","Reverberator", "rightin"
-<emphasis role="opc">connect</emphasis> "Reverberator", "leftout", "Compressor", "leftin"
-<emphasis role="opc">connect</emphasis> "Reverberator", "rightout", "Compressor", "rightin"
+<emphasis role="opc">connect</emphasis> "Reverberator", "leftout", "Compressor", "leftin"
+<emphasis role="opc">connect</emphasis> "Reverberator", "rightout","Compressor", "rightin"
-<emphasis role="opc">connect</emphasis> "Compressor", "leftout", "Soundfile", "leftin"
-<emphasis role="opc">connect</emphasis> "Compressor", "rightout", "Soundfile", "rightin"
+<emphasis role="opc">connect</emphasis> "Compressor", "leftout", "Soundfile", "leftin"
+<emphasis role="opc">connect</emphasis> "Compressor", "rightout","Soundfile", "rightin"
<emphasis role="comment">; Turn on the "effect" units in the signal flow graph. </emphasis>
@@ -38,92 +37,93 @@
<emphasis role="comment">; Define instruments and effects in order of signal flow.</emphasis>
- <emphasis role="oblock">instr</emphasis> SimpleSine
- <emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
- <emphasis role="comment">; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10</emphasis>
- <emphasis role="opc">pset</emphasis> 0, 0, 10, 0, 0, 0, 0.5
-iattack <emphasis role="op">=</emphasis> 0.015
-idecay <emphasis role="op">=</emphasis> 0.07
-isustain <emphasis role="op">=</emphasis> p3
-irelease <emphasis role="op">=</emphasis> 0.3
-p3 <emphasis role="op">=</emphasis> iattack <emphasis role="op">+</emphasis> idecay <emphasis role="op">+</emphasis> isustain <emphasis role="op">+</emphasis> irelease
-adamping <emphasis role="opc">linsegr</emphasis> 0.0, iattack, 1.0, idecay <emphasis role="op">+</emphasis> isustain, 1.0, irelease, 0.0
-iHz <emphasis role="op">=</emphasis> <emphasis role="opc">cpsmidinn</emphasis>(p4)
- <emphasis role="comment">; Rescale MIDI velocity range to a musically usable range of dB. </emphasis>
-iamplitude <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(p5 <emphasis role="op">/</emphasis> 127 <emphasis role="op">*</emphasis> 15.0 <emphasis role="op">+</emphasis> 60.0)
- <emphasis role="comment">; Use ftgenonce instead of ftgen, ftgentmp, or f statement. </emphasis>
-icosine <emphasis role="opc">ftgenonce</emphasis> 0, 0, 65537, 11, 1
-aoscili <emphasis role="opc">oscili</emphasis> iamplitude, iHz, icosine
-aadsr <emphasis role="opc">madsr</emphasis> iattack, idecay, 0.6, irelease
-asignal <emphasis role="op">=</emphasis> aoscili <emphasis role="op">*</emphasis> aadsr
-aleft, aright <emphasis role="opc">pan2</emphasis> asignal, p7
- <emphasis role="comment">; Stereo audio output to be routed in the orchestra header. </emphasis>
- <emphasis role="opc">outleta</emphasis> "leftout", aleft
- <emphasis role="opc">outleta</emphasis> "rightout", aright
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> Moogy
- <emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
- <emphasis role="comment">; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10</emphasis>
- <emphasis role="opc">pset</emphasis> 0, 0, 10, 0, 0, 0, 0.5
-iattack <emphasis role="op">=</emphasis> 0.003
-isustain <emphasis role="op">=</emphasis> p3
-irelease <emphasis role="op">=</emphasis> 0.05
-p3 <emphasis role="op">=</emphasis> iattack <emphasis role="op">+</emphasis> isustain <emphasis role="op">+</emphasis> irelease
-adamping <emphasis role="opc">linsegr</emphasis> 0.0, iattack, 1.0, isustain, 1.0, irelease, 0.0
-iHz <emphasis role="op">=</emphasis> <emphasis role="opc">cpsmidinn</emphasis>(p4)
- <emphasis role="comment">; Rescale MIDI velocity range to a musically usable range of dB. </emphasis>
-iamplitude <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(p5 <emphasis role="op">/</emphasis> 127 <emphasis role="op">*</emphasis> 20.0 <emphasis role="op">+</emphasis> 60.0)
- <emphasis role="opc">print</emphasis> iHz, iamplitude
- <emphasis role="comment">; Use ftgenonce instead of ftgen, ftgentmp, or f statement. </emphasis>
-isine <emphasis role="opc">ftgenonce</emphasis> 0, 0, 65537, 10, 1
-asignal <emphasis role="opc">vco</emphasis> iamplitude, iHz, 1, 0.5, isine
-kfco <emphasis role="opc">line</emphasis> 2000, p3, 200
-krez <emphasis role="op">=</emphasis> 0.8
-asignal <emphasis role="opc">moogvcf</emphasis> asignal, kfco, krez, 100000
-asignal <emphasis role="op">=</emphasis> asignal <emphasis role="op">*</emphasis> adamping
-aleft, aright <emphasis role="opc">pan2</emphasis> asignal, p7
- <emphasis role="comment">; Stereo audio output to be routed in the orchestra header. </emphasis>
- <emphasis role="opc">outleta</emphasis> "leftout", aleft
- <emphasis role="opc">outleta</emphasis> "rightout", aright
- <emphasis role="oblock">endin</emphasis>
- <emphasis role="oblock">instr</emphasis> Reverberator
- <emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
- <emphasis role="comment">; Stereo input. </emphasis>
-aleftin <emphasis role="opc">inleta</emphasis> "leftin"
-arightin <emphasis role="opc">inleta</emphasis> "rightin"
-idelay <emphasis role="op">=</emphasis> p4
-icutoff <emphasis role="op">=</emphasis> p5
-aleft, aright <emphasis role="opc">reverbsc</emphasis> aleftin, arightin, idelay, icutoff
- <emphasis role="comment">; Stereo output. </emphasis>
- <emphasis role="opc">outleta</emphasis> "leftout", aleft
- <emphasis role="opc">outleta</emphasis> "rightout", aright
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> Compressor
- <emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
- <emphasis role="comment">; Stereo input. </emphasis>
-aleftin <emphasis role="opc">inleta</emphasis> "leftin"
-arightin <emphasis role="opc">inleta</emphasis> "rightin"
-kthreshold <emphasis role="op">=</emphasis> 25000
-icomp1 <emphasis role="op">=</emphasis> 0.5
-icomp2 <emphasis role="op">=</emphasis> 0.763
-irtime <emphasis role="op">=</emphasis> 0.1
-iftime <emphasis role="op">=</emphasis> 0.1
-aleftout <emphasis role="opc">dam</emphasis> aleftin, kthreshold, icomp1, icomp2, irtime, iftime
-arightout <emphasis role="opc">dam</emphasis> arightin, kthreshold, icomp1, icomp2, irtime, iftime
- <emphasis role="comment">; Stereo output. </emphasis>
- <emphasis role="opc">outleta</emphasis> "leftout", aleftout
- <emphasis role="opc">outleta</emphasis> "rightout", arightout
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> Soundfile
- <emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
- <emphasis role="comment">; Stereo input. </emphasis>
-aleftin <emphasis role="opc">inleta</emphasis> "leftin"
-arightin <emphasis role="opc">inleta</emphasis> "rightin"
- <emphasis role="opc">outs</emphasis> aleftin, arightin
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> SimpleSine
+<emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
+<emphasis role="comment">; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10</emphasis>
+ <emphasis role="opc">pset</emphasis> 0, 0, 10, 0, 0, 0, 0.5
+iattack <emphasis role="op">=</emphasis> 0.015
+idecay <emphasis role="op">=</emphasis> 0.07
+isustain <emphasis role="op">=</emphasis> p3
+irelease <emphasis role="op">=</emphasis> 0.3
+p3 <emphasis role="op">=</emphasis> iattack <emphasis role="op">+</emphasis> idecay <emphasis role="op">+</emphasis> isustain <emphasis role="op">+</emphasis> irelease
+adamping <emphasis role="opc">linsegr</emphasis> 0.0, iattack, 1.0, idecay <emphasis role="op">+</emphasis> isustain, 1.0, irelease, 0.0
+iHz <emphasis role="op">=</emphasis> <emphasis role="opc">cpsmidinn</emphasis>(p4)
+<emphasis role="comment">; Rescale MIDI velocity range to a musically usable range of dB. </emphasis>
+iamplitude <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(p5 <emphasis role="op">/</emphasis> 127 <emphasis role="op">*</emphasis> 15.0 <emphasis role="op">+</emphasis> 60.0)
+<emphasis role="comment">; Use ftgenonce instead of ftgen, ftgentmp, or f statement. </emphasis>
+icosine <emphasis role="opc">ftgenonce</emphasis> 0, 0, 65537, 11, 1
+aoscili <emphasis role="opc">oscili</emphasis> iamplitude, iHz, icosine
+aadsr <emphasis role="opc">madsr</emphasis> iattack, idecay, 0.6, irelease
+asignal <emphasis role="op">=</emphasis> aoscili <emphasis role="op">*</emphasis> aadsr
+aleft, aright <emphasis role="opc">pan2</emphasis> asignal, p7
+<emphasis role="comment">; Stereo audio output to be routed in the orchestra header. </emphasis>
+ <emphasis role="opc">outleta</emphasis> "leftout", aleft
+ <emphasis role="opc">outleta</emphasis> "rightout", aright
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> Moogy
+<emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
+<emphasis role="comment">; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10</emphasis>
+ <emphasis role="opc">pset</emphasis> 0, 0, 10, 0, 0, 0, 0.5
+iattack <emphasis role="op">=</emphasis> 0.003
+isustain <emphasis role="op">=</emphasis> p3
+irelease <emphasis role="op">=</emphasis> 0.05
+p3 <emphasis role="op">=</emphasis> iattack <emphasis role="op">+</emphasis> isustain <emphasis role="op">+</emphasis> irelease
+adamping <emphasis role="opc">linsegr</emphasis> 0.0, iattack, 1.0, isustain, 1.0, irelease, 0.0
+iHz <emphasis role="op">=</emphasis> <emphasis role="opc">cpsmidinn</emphasis>(p4)
+<emphasis role="comment">; Rescale MIDI velocity range to a musically usable range of dB. </emphasis>
+iamplitude <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(p5 <emphasis role="op">/</emphasis> 127 <emphasis role="op">*</emphasis> 20.0 <emphasis role="op">+</emphasis> 60.0)
+ <emphasis role="opc">print</emphasis> iHz, iamplitude
+<emphasis role="comment">; Use ftgenonce instead of ftgen, ftgentmp, or f statement. </emphasis>
+isine <emphasis role="opc">ftgenonce</emphasis> 0, 0, 65537, 10, 1
+asignal <emphasis role="opc">vco</emphasis> iamplitude, iHz, 1, 0.5, isine
+kfco <emphasis role="opc">line</emphasis> 2000, p3, 200
+krez <emphasis role="op">=</emphasis> 0.8
+asignal <emphasis role="opc">moogvcf</emphasis> asignal, kfco, krez, 100000
+asignal <emphasis role="op">=</emphasis> asignal <emphasis role="op">*</emphasis> adamping
+aleft, aright <emphasis role="opc">pan2</emphasis> asignal, p7
+<emphasis role="comment">; Stereo audio output to be routed in the orchestra header. </emphasis>
+ <emphasis role="opc">outleta</emphasis> "leftout", aleft
+ <emphasis role="opc">outleta</emphasis> "rightout", aright
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> Reverberator
+<emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
+<emphasis role="comment">; Stereo input. </emphasis>
+aleftin <emphasis role="opc">inleta</emphasis> "leftin"
+arightin <emphasis role="opc">inleta</emphasis> "rightin"
+idelay <emphasis role="op">=</emphasis> p4
+icutoff <emphasis role="op">=</emphasis> p5
+aleft, aright <emphasis role="opc">reverbsc</emphasis> aleftin, arightin, idelay, icutoff
+<emphasis role="comment">; Stereo output. </emphasis>
+ <emphasis role="opc">outleta</emphasis> "leftout", aleft
+ <emphasis role="opc">outleta</emphasis> "rightout", aright
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> Compressor
+<emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
+<emphasis role="comment">; Stereo input. </emphasis>
+aleftin <emphasis role="opc">inleta</emphasis> "leftin"
+arightin <emphasis role="opc">inleta</emphasis> "rightin"
+kthreshold <emphasis role="op">=</emphasis> 25000
+icomp1 <emphasis role="op">=</emphasis> 0.5
+icomp2 <emphasis role="op">=</emphasis> 0.763
+irtime <emphasis role="op">=</emphasis> 0.1
+iftime <emphasis role="op">=</emphasis> 0.1
+aleftout <emphasis role="opc">dam</emphasis> aleftin, kthreshold, icomp1, icomp2, irtime, iftime
+arightout <emphasis role="opc">dam</emphasis> arightin, kthreshold, icomp1, icomp2, irtime, iftime
+<emphasis role="comment">; Stereo output. </emphasis>
+ <emphasis role="opc">outleta</emphasis> "leftout", aleftout
+ <emphasis role="opc">outleta</emphasis> "rightout", arightout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> Soundfile
+<emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
+<emphasis role="comment">; Stereo input. </emphasis>
+aleftin <emphasis role="opc">inleta</emphasis> "leftin"
+arightin <emphasis role="opc">inleta</emphasis> "rightin"
+ <emphasis role="opc">outs</emphasis> aleftin, arightin
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
diff --git a/examples-xml/inletk.csd.xml b/examples-xml/inletk.csd.xml
new file mode 100644
index 0000000..5e6572e
--- /dev/null
+++ b/examples-xml/inletk.csd.xml
@@ -0,0 +1,46 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o inletk.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">connect</emphasis> "bend", "bendout", "guitar", "bendin"
+
+<emphasis role="oblock">instr</emphasis> bend
+
+kbend <emphasis role="opc">line</emphasis> p4, p3, p5
+ <emphasis role="opc">outletk</emphasis> "bendout", kbend
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> guitar
+
+kbend <emphasis role="opc">inletk</emphasis> "bendin"
+kpch <emphasis role="opc">pow</emphasis> 2, kbend<emphasis role="op">/</emphasis>12
+ <emphasis role="opc">printk2</emphasis> kpch
+asig <emphasis role="opc">oscili</emphasis> .4, 440<emphasis role="op">*</emphasis>kpch, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis>1 0 1024 10 1
+
+<emphasis role="stamnt">i</emphasis>"gu<emphasis role="stamnt">i</emphasis>tar" 0 5 8.00
+<emphasis role="stamnt">i</emphasis>"bend" 3 .2 -12 12
+<emphasis role="stamnt">i</emphasis>"bend" 4 .1 -17 40
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/inq.csd.xml b/examples-xml/inq.csd.xml
new file mode 100644
index 0000000..5304bbb
--- /dev/null
+++ b/examples-xml/inq.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -idac <emphasis role="comment">;;;realtime audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; inq.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2 <emphasis role="comment">;2 channels out</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+nchnls_i <emphasis role="op">=</emphasis> 4 <emphasis role="comment">;4 channels in</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;4 channels in, two channels out</emphasis>
+
+ain1, ain2, ain3, ain4 <emphasis role="opc">inq</emphasis> <emphasis role="comment">;grab your mics and sing</emphasis>
+
+adel <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 0.02, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;max delay time = 20ms</emphasis>
+adel2 <emphasis role="opc">linseg</emphasis> 0.02, p3<emphasis role="op">*</emphasis>.5, 0, p3<emphasis role="op">*</emphasis>.5, 0.02 <emphasis role="comment">;max delay time = 20ms </emphasis>
+aoutl <emphasis role="opc">flanger</emphasis> ain1, adel, .7
+aoutr <emphasis role="opc">flanger</emphasis> ain2, adel<emphasis role="op">*</emphasis>2, .8
+aoutla <emphasis role="opc">flanger</emphasis> ain3, adel2, .9
+aoutra <emphasis role="opc">flanger</emphasis> ain4, adel2<emphasis role="op">*</emphasis>2, .5
+<emphasis role="comment">;write to quad file, 16 bits with header</emphasis>
+ <emphasis role="opc">fout</emphasis> "in_4.wav", 14, aoutl, aoutr, aoutla, aoutra
+ <emphasis role="opc">outs</emphasis> (aoutl<emphasis role="op">+</emphasis>aoutla)<emphasis role="op">*</emphasis>.5, (aoutr<emphasis role="op">+</emphasis>aoutra)<emphasis role="op">*</emphasis>.5 <emphasis role="comment">;stereo out</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ins.csd.xml b/examples-xml/ins.csd.xml
new file mode 100644
index 0000000..b0b1aad
--- /dev/null
+++ b/examples-xml/ins.csd.xml
@@ -0,0 +1,33 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -idac <emphasis role="comment">;;;realtime audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; ins.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2 <emphasis role="comment">;two channels out</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ain1, ainr <emphasis role="opc">ins</emphasis> <emphasis role="comment">;grab your mic and sing</emphasis>
+adel <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 0.02, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;max delay time = 20ms</emphasis>
+aoutl <emphasis role="opc">flanger</emphasis> ain1, adel, .7
+aoutr <emphasis role="opc">flanger</emphasis> ain1, adel<emphasis role="op">*</emphasis>2, .8
+ <emphasis role="opc">fout</emphasis> "in_s.wav", 14, aoutl, aoutr <emphasis role="comment">;write to stereo file,</emphasis>
+ <emphasis role="opc">outs</emphasis> aoutl, aoutr <emphasis role="comment">;16 bits with header</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/instance.csd.xml b/examples-xml/instance.csd.xml
new file mode 100644
index 0000000..d97f653
--- /dev/null
+++ b/examples-xml/instance.csd.xml
@@ -0,0 +1,51 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in</emphasis>
+-odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o instance.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="comment">; Initialize the global variables.</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">; Instrument #1 - oscillator with a high note.</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+ <emphasis role="comment">; Play Instrument #2 at the same time.</emphasis>
+ iHandle<emphasis role="opc">instance</emphasis> 2, 0, p3
+
+ <emphasis role="comment">; Play a high note.</emphasis>
+ a1 <emphasis role="opc">oscils</emphasis> 10000, 880, 1
+ <emphasis role="opc">out</emphasis> a1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="comment">; Instrument #2 - oscillator with a low note.</emphasis>
+<emphasis role="oblock">instr</emphasis> 2
+ <emphasis role="comment">; Play a low note.</emphasis>
+ a1 <emphasis role="opc">oscils</emphasis> 10000, 220, 1
+ <emphasis role="opc">out</emphasis> a1
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+
+<emphasis role="comment">; Play Instrument #1 for half a second.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0.5
+<emphasis role="comment">; Play Instrument #1 for half a second.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 1 0.5
+<emphasis role="stamnt">e</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/int.csd.xml b/examples-xml/int.csd.xml
index d4c08ac..b51d3b1 100644
--- a/examples-xml/int.csd.xml
+++ b/examples-xml/int.csd.xml
@@ -2,36 +2,33 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o int.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="op">=</emphasis> 16 <emphasis role="op">/</emphasis> 5
- i2 <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(i1)
-
- <emphasis role="opc">print</emphasis> i2
-<emphasis role="oblock">endin</emphasis>
+icount <emphasis role="opc">init</emphasis> 0
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+ inum <emphasis role="op">=</emphasis> icount <emphasis role="op">/</emphasis> 3
+ inm <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(inum)
+ <emphasis role="opc">prints</emphasis> "integer (<emphasis role="op">%</emphasis>f<emphasis role="op">/</emphasis>3) <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\\n", icount, inm
+<emphasis role="octrl">loop_lt</emphasis> icount, 1, 10, <emphasis role="olabel">loop</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 0
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/invalue.csd.xml b/examples-xml/invalue.csd.xml
new file mode 100644
index 0000000..3e96a0d
--- /dev/null
+++ b/examples-xml/invalue.csd.xml
@@ -0,0 +1,29 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;run this example in CsoundQt, a Csound editor that provides widgets</emphasis>
+<emphasis role="comment">;make the Widgets-panel visible, by clicking the Widgets symbol in the menu or pressing (Alt+1).</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">; written by Andres Cabrera</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+
+kfreq <emphasis role="opc">invalue</emphasis> "freq" <emphasis role="comment">; Quotes are needed here</emphasis>
+asig <emphasis role="opc">oscil</emphasis> 0.1, kfreq, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 1024 10 1 <emphasis role="comment">;sine</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 300 <emphasis role="comment">;play for 300 seconds</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/jacko.csd.xml b/examples-xml/jacko.csd.xml
index 27dc41f..9958d2b 100644
--- a/examples-xml/jacko.csd.xml
+++ b/examples-xml/jacko.csd.xml
@@ -16,7 +16,7 @@ csound -m255 -M0 -+rtmidi=null -RWf --midi-key=4 --midi-velocity=5 -o jacko_test
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="opc">JackoInit</emphasis> "default", "csound"
+ JackoInit "default", "csound"
<emphasis role="comment">; To use ALSA midi ports, use "jackd -Xseq"</emphasis>
<emphasis role="comment">; and use "jack_lsp -A -c" or aliases from JackInfo,</emphasis>
@@ -24,23 +24,23 @@ csound -m255 -M0 -+rtmidi=null -RWf --midi-key=4 --midi-velocity=5 -o jacko_test
<emphasis role="comment">; to figure out the damn port names.</emphasis>
<emphasis role="comment">; JackoMidiInConnect "alsa_pcm:in-131-0-Master", "midiin"</emphasis>
- <emphasis role="opc">JackoAudioInConnect</emphasis> "aeolus<emphasis role="op">:</emphasis>out.L", "leftin"
- <emphasis role="opc">JackoAudioInConnect</emphasis> "aeolus<emphasis role="op">:</emphasis>out.R", "rightin"
- <emphasis role="opc">JackoMidiOutConnect</emphasis> "midiout", "aeolus<emphasis role="op">:</emphasis>Midi<emphasis role="op">/</emphasis>in"
+ JackoAudioInConnect "aeolus<emphasis role="op">:</emphasis>out.L", "leftin"
+ JackoAudioInConnect "aeolus<emphasis role="op">:</emphasis>out.R", "rightin"
+ JackoMidiOutConnect "midiout", "aeolus<emphasis role="op">:</emphasis>Midi<emphasis role="op">/</emphasis>in"
<emphasis role="comment">; Note that Jack enables audio to be output to a regular</emphasis>
<emphasis role="comment">; Csound soundfile and, at the same time, to a sound </emphasis>
<emphasis role="comment">; card in real time to the system client via Jack. </emphasis>
- <emphasis role="opc">JackoAudioOutConnect</emphasis> "leftout", "system<emphasis role="op">:</emphasis>playback_1"
- <emphasis role="opc">JackoAudioOutConnect</emphasis> "rightout", "system<emphasis role="op">:</emphasis>playback_2"
- <emphasis role="opc">JackoInfo</emphasis>
+ JackoAudioOutConnect "leftout", "system<emphasis role="op">:</emphasis>playback_1"
+ JackoAudioOutConnect "rightout", "system<emphasis role="op">:</emphasis>playback_2"
+ JackoInfo
<emphasis role="comment">; Turning freewheeling on seems automatically </emphasis>
<emphasis role="comment">; to turn system playback off. This is good!</emphasis>
- <emphasis role="opc">JackoFreewheel</emphasis> 1
- <emphasis role="opc">JackoOn</emphasis>
+ JackoFreewheel 1
+ JackoOn
<emphasis role="opc">alwayson</emphasis> "jackin"
@@ -51,15 +51,15 @@ itime <emphasis role="op">=</emphasis> p2
iduration <emphasis role="op">=</emphasis> p3
ikey <emphasis role="op">=</emphasis> p4
ivelocity <emphasis role="op">=</emphasis> p5
- <emphasis role="opc">JackoNoteOut</emphasis> "midiout", ichannel, ikey, ivelocity
+ JackoNoteOut "midiout", ichannel, ikey, ivelocity
<emphasis role="opc">print</emphasis> itime, iduration, ichannel, ikey, ivelocity
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> jackin
<emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
- <emphasis role="opc">JackoTransport</emphasis> 3, 1.0
-aleft <emphasis role="opc">JackoAudioIn</emphasis> "leftin"
-aright <emphasis role="opc">JackoAudioIn</emphasis> "rightin"
+ JackoTransport 3, 1.0
+aleft JackoAudioIn "leftin"
+aright JackoAudioIn "rightin"
<emphasis role="comment">; Aeolus uses MIDI controller 98 to control stops. </emphasis>
<emphasis role="comment">; Only 1 data value byte is used, not the 2 data </emphasis>
@@ -72,14 +72,14 @@ aright <emphasis role="opc">JackoAudioIn</emphasis> "rightin"
<emphasis role="comment">; Mode to enable stops for Divison I: b1100010 (98 </emphasis>
<emphasis role="comment">; [this controller VALUE is a pure coincidence]).</emphasis>
- <emphasis role="opc">JackoMidiOut</emphasis> "midiout", 176, 0, 98, 98
+ JackoMidiOut "midiout", 176, 0, 98, 98
<emphasis role="comment">; Stops: Principal 8 (0), Principal 4 (1) , Flote 8 (8) , Flote 2 (10)</emphasis>
- <emphasis role="opc">JackoMidiOut</emphasis> "midiout", 176, 0, 98, 0
- <emphasis role="opc">JackoMidiOut</emphasis> "midiout", 176, 0, 98, 1
- <emphasis role="opc">JackoMidiOut</emphasis> "midiout", 176, 0, 98, 8
- <emphasis role="opc">JackoMidiOut</emphasis> "midiout", 176, 0, 98, 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
<emphasis role="comment">; Sends audio coming in from Aeolus out</emphasis>
<emphasis role="comment">; not only to the Jack system out (sound card),</emphasis>
@@ -87,8 +87,8 @@ aright <emphasis role="opc">JackoAudioIn</emphasis> "rightin"
<emphasis role="comment">; Note that in freewheeling mode, "leftout"</emphasis>
<emphasis role="comment">; and "rightout" simply go silent.</emphasis>
- <emphasis role="opc">JackoAudioOut</emphasis> "leftout", aleft
- <emphasis role="opc">JackoAudioOut</emphasis> "rightout", aright
+ JackoAudioOut "leftout", aleft
+ JackoAudioOut "rightout", aright
<emphasis role="opc">outs</emphasis> aright, aleft
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/jacktransport.csd.xml b/examples-xml/jacktransport.csd.xml
index c7961e6..695120e 100644
--- a/examples-xml/jacktransport.csd.xml
+++ b/examples-xml/jacktransport.csd.xml
@@ -12,11 +12,11 @@
<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="opc">jacktransport</emphasis> p4, p5
+jacktransport p4, p5
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2
-<emphasis role="opc">jacktransport</emphasis> p4
+jacktransport p4
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/jitter.csd.xml b/examples-xml/jitter.csd.xml
index 7435609..d102d68 100644
--- a/examples-xml/jitter.csd.xml
+++ b/examples-xml/jitter.csd.xml
@@ -2,54 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o jitter.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 -- plain instrument.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- aplain <emphasis role="opc">vco</emphasis> 20000, 220, 2, 0.83
- <emphasis role="opc">outs</emphasis> aplain, aplain
-<emphasis role="oblock">endin</emphasis>
-
-<emphasis role="comment">; Instrument #2 -- instrument with jitter.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Create a signal modulated the jitter opcode.</emphasis>
- kamp <emphasis role="opc">init</emphasis> 2
- kcpsmin <emphasis role="opc">init</emphasis> 4
- kcpsmax <emphasis role="opc">init</emphasis> 6
- kj <emphasis role="opc">jitter</emphasis> kamp, kcpsmin, kcpsmax
+kamp <emphasis role="opc">init</emphasis> p4
+kcpsmin <emphasis role="opc">init</emphasis> 4
+kcpsmax <emphasis role="opc">init</emphasis> 8
- aplain <emphasis role="opc">vco</emphasis> 20000, 220, 2, 0.83
- ajitter <emphasis role="opc">vco</emphasis> 20000, 220<emphasis role="op">+</emphasis>kj, 2, 0.83
+kj2 <emphasis role="opc">jitter</emphasis> kamp, kcpsmin, kcpsmax
+aout <emphasis role="opc">pluck</emphasis> 1, 200<emphasis role="op">+</emphasis>kj2, 1000, 0, 1
+aout <emphasis role="opc">dcblock</emphasis> aout <emphasis role="comment">;remove DC</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="opc">outs</emphasis> aplain, ajitter
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 3 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="comment">; Play Instrument #2 for 3 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 3 3
+<emphasis role="stamnt">i</emphasis> 1 0 15 2 <emphasis role="comment">;a bit jitter</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 8 15 10 <emphasis role="comment">;some more</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 16 15 20 <emphasis role="comment">;lots more</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/jitter2.csd.xml b/examples-xml/jitter2.csd.xml
index 640baea..827349f 100644
--- a/examples-xml/jitter2.csd.xml
+++ b/examples-xml/jitter2.csd.xml
@@ -2,59 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o jitter2.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 -- plain instrument.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- aplain <emphasis role="opc">vco</emphasis> 20000, 220, 2, 0.83
- <emphasis role="opc">outs</emphasis> aplain, aplain
-<emphasis role="oblock">endin</emphasis>
-
-<emphasis role="comment">; Instrument #2 -- instrument with jitter.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Create a signal modulated with the jitter2 opcode.</emphasis>
- ktotamp <emphasis role="opc">init</emphasis> 2
- kamp1 <emphasis role="opc">init</emphasis> 0.66
- kcps1 <emphasis role="opc">init</emphasis> 3
- kamp2 <emphasis role="opc">init</emphasis> 0.66
- kcps2 <emphasis role="opc">init</emphasis> 3
- kamp3 <emphasis role="opc">init</emphasis> 0.66
- kcps3 <emphasis role="opc">init</emphasis> 3
- kj <emphasis role="opc">jitter2</emphasis> ktotamp, kamp1, kcps1, kamp2, kcps2, \
- kamp3, kcps3
+ktotamp <emphasis role="opc">init</emphasis> p4
+kamp1 <emphasis role="opc">init</emphasis> .5
+kcps1 <emphasis role="opc">init</emphasis> 10
+kamp2 <emphasis role="opc">init</emphasis> .5
+kcps2 <emphasis role="opc">init</emphasis> 2
+kamp3 <emphasis role="opc">init</emphasis> .5
+kcps3 <emphasis role="opc">init</emphasis> 3
- aplain <emphasis role="opc">vco</emphasis> 20000, 220, 2, 0.83
- ajitter <emphasis role="opc">vco</emphasis> 20000, 220<emphasis role="op">+</emphasis>kj, 2, 0.83
+kj2 <emphasis role="opc">jitter2</emphasis> ktotamp, kamp1, kcps1, kamp2, kcps2, kamp3, kcps3
+aout <emphasis role="opc">pluck</emphasis> 1, 200<emphasis role="op">+</emphasis>kj2, 1000, 0, 1
+aout <emphasis role="opc">dcblock</emphasis> aout
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="opc">outs</emphasis> aplain, ajitter
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 3 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="comment">; Play Instrument #2 for 3 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 3 3
+<emphasis role="stamnt">i</emphasis> 1 0 15 2 <emphasis role="comment">;a bit jitter</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 8 15 10 <emphasis role="comment">;some more</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 16 15 20 <emphasis role="comment">;lots more</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/joystick-2.csd.xml b/examples-xml/joystick-2.csd.xml
new file mode 100644
index 0000000..b201961
--- /dev/null
+++ b/examples-xml/joystick-2.csd.xml
@@ -0,0 +1,69 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o joystick-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="comment">;0dbfs = 1</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kmask joystick 0, 1
+kaxes <emphasis role="opc">init</emphasis> 0
+kbuttons <emphasis role="opc">init</emphasis> 0
+kx0 <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">; first two entries are # of axes and # of buttons, </emphasis>
+ky0 <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">; then axes, then buttons </emphasis>
+ <emphasis role="opc">vtabk</emphasis> 0, 1, kaxes, kbuttons, kx0, ky0
+kidx <emphasis role="op">=</emphasis> 2<emphasis role="op">+</emphasis>kaxes
+
+<emphasis role="olabel">buttons</emphasis><emphasis role="op">:</emphasis>
+ kcheck <emphasis role="op">=</emphasis> kmask <emphasis role="op">&amp;</emphasis> 1<emphasis role="op">&lt;</emphasis><emphasis role="op">&lt;</emphasis>kidx <emphasis role="comment">; if the button was just now pressed and...</emphasis>
+ kres <emphasis role="opc">tab</emphasis> kidx, 1 <emphasis role="comment">; if button value is one, start a note</emphasis>
+ <emphasis role="opc">schedkwhen</emphasis> kres<emphasis role="op">*</emphasis>kcheck, 1, 20, 2, 0, 60000, kidx, kx0, ky0
+ kidx <emphasis role="op">=</emphasis> kidx<emphasis role="op">+</emphasis>1
+<emphasis role="octrl">if</emphasis> kidx <emphasis role="op">&lt;</emphasis> (kaxes<emphasis role="op">+</emphasis>kbuttons<emphasis role="op">+</emphasis>2) <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">buttons</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; play a tone until the button is released</emphasis>
+
+kstop <emphasis role="opc">tab</emphasis> p4, 1 <emphasis role="comment">; when this button is released, we fade out</emphasis>
+ihz <emphasis role="opc">init</emphasis> <emphasis role="opc">cpsoct</emphasis>(((p5<emphasis role="op">+</emphasis>32767)<emphasis role="op">/</emphasis>9362)<emphasis role="op">+</emphasis>5) <emphasis role="comment">; ~ 30 hz to 4khz</emphasis>
+<emphasis role="opc">print</emphasis> ihz
+ito <emphasis role="opc">init</emphasis> <emphasis role="opc">ampdb</emphasis>(((p6<emphasis role="op">+</emphasis>32767)<emphasis role="op">/</emphasis>2184)<emphasis role="op">+</emphasis>60) <emphasis role="comment">; ~ 60 - 90 db</emphasis>
+kenv <emphasis role="opc">init</emphasis> 0
+kdelta <emphasis role="opc">init</emphasis> ito<emphasis role="op">/</emphasis>(<emphasis role="ohdr">kr</emphasis><emphasis role="op">*</emphasis>10)
+<emphasis role="octrl">if</emphasis> kstop <emphasis role="op">==</emphasis> 1 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">output</emphasis>
+<emphasis role="octrl">if</emphasis> kdelta <emphasis role="op">&lt;</emphasis> 0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">output</emphasis>
+kdelta <emphasis role="op">=</emphasis> kdelta<emphasis role="op">*</emphasis><emphasis role="op">-</emphasis>1
+
+<emphasis role="olabel">output</emphasis><emphasis role="op">:</emphasis>
+ kenv <emphasis role="op">=</emphasis> kenv<emphasis role="op">+</emphasis>kdelta
+ kenv <emphasis role="opc">limit</emphasis> kenv, 0, ito
+ aout <emphasis role="opc">oscils</emphasis> 1, ihz, 0
+ aout <emphasis role="op">=</emphasis> kenv<emphasis role="op">*</emphasis>aout
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="octrl">if</emphasis> kenv <emphasis role="op">!=</emphasis> 0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">noexit</emphasis>
+<emphasis role="octrl">if</emphasis> kdelta <emphasis role="op">></emphasis> 0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">noexit</emphasis>
+<emphasis role="opc">turnoff</emphasis>
+<emphasis role="olabel">noexit</emphasis><emphasis role="op">:</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 32 7 0 7 0 <emphasis role="comment">; will hold the joystick data</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 60000
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/joystick.csd.xml b/examples-xml/joystick.csd.xml
new file mode 100644
index 0000000..cff74d9
--- /dev/null
+++ b/examples-xml/joystick.csd.xml
@@ -0,0 +1,58 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o joystick.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="comment">;0dbfs = 1</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; gives information about your joystick in real time</emphasis>
+
+kmask joystick 0, 1
+kidx <emphasis role="op">=</emphasis> 2
+kaxes <emphasis role="opc">tab</emphasis> 0, 1 <emphasis role="comment">; number of axes has been stored in position 0</emphasis>
+kbuttons <emphasis role="opc">tab</emphasis> 1, 1 <emphasis role="comment">; number of buttons has been stored in position 1</emphasis>
+ <emphasis role="opc">printf</emphasis> "this joystick has <emphasis role="op">%</emphasis>d axes, <emphasis role="op">%</emphasis>d buttons\n", kidx, kaxes, kbuttons
+kuniq <emphasis role="opc">init</emphasis> 0
+
+<emphasis role="olabel">reportaxis</emphasis><emphasis role="op">:</emphasis> <emphasis role="comment">; first we see if we have any x/y input</emphasis>
+ kcheck <emphasis role="op">=</emphasis> kmask <emphasis role="op">&amp;</emphasis> (1<emphasis role="op">&lt;</emphasis><emphasis role="op">&lt;</emphasis>kidx)
+ <emphasis role="octrl">if</emphasis> kcheck <emphasis role="op">==</emphasis> 0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">nexta</emphasis>
+ kres <emphasis role="opc">tab</emphasis> kidx, 1
+ kuniq <emphasis role="op">=</emphasis> kuniq <emphasis role="op">+</emphasis> 1 <emphasis role="comment">; to be sure to make the printf print</emphasis>
+ <emphasis role="opc">printf</emphasis> "axis <emphasis role="op">%</emphasis>d, value <emphasis role="op">%</emphasis>6d\n", kuniq, kidx<emphasis role="op">-</emphasis>2, kres
+<emphasis role="olabel">nexta</emphasis><emphasis role="op">:</emphasis>
+ kidx <emphasis role="op">=</emphasis> kidx<emphasis role="op">+</emphasis>1
+ <emphasis role="octrl">if</emphasis> kidx <emphasis role="op">&lt;</emphasis> (kaxes<emphasis role="op">+</emphasis>2) <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">reportaxis</emphasis>
+
+<emphasis role="olabel">reportbutton</emphasis><emphasis role="op">:</emphasis> <emphasis role="comment">; now we check for any buttons pressed</emphasis>
+ kcheck <emphasis role="op">=</emphasis> kmask <emphasis role="op">&amp;</emphasis> 1<emphasis role="op">&lt;</emphasis><emphasis role="op">&lt;</emphasis>kidx
+ <emphasis role="octrl">if</emphasis> kcheck <emphasis role="op">==</emphasis> 0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">nextb</emphasis>
+ kres <emphasis role="opc">tab</emphasis> kidx, 1 <emphasis role="comment">; a button has been pressed, get from table</emphasis>
+ <emphasis role="opc">printf</emphasis> "button <emphasis role="op">%</emphasis>d, pushed\n", kidx<emphasis role="op">*</emphasis>kres, (kidx<emphasis role="op">-</emphasis>(kaxes<emphasis role="op">+</emphasis>2))
+ <emphasis role="opc">printf</emphasis> "button <emphasis role="op">%</emphasis>d, released\n", kidx<emphasis role="op">*</emphasis>(1<emphasis role="op">-</emphasis>kres), (kidx<emphasis role="op">-</emphasis>(kaxes<emphasis role="op">+</emphasis>2))
+
+<emphasis role="olabel">nextb</emphasis><emphasis role="op">:</emphasis>
+ kidx <emphasis role="op">=</emphasis> kidx<emphasis role="op">+</emphasis>1
+ <emphasis role="octrl">if</emphasis> kidx <emphasis role="op">&lt;</emphasis> (kaxes<emphasis role="op">+</emphasis>kbuttons<emphasis role="op">+</emphasis>2) <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">reportbutton</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis>1 0 32 7 0 7 0 <emphasis role="comment">; will hold the joystick data</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 60000
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/jspline.csd.xml b/examples-xml/jspline.csd.xml
index 1f92752..1e53b6d 100644
--- a/examples-xml/jspline.csd.xml
+++ b/examples-xml/jspline.csd.xml
@@ -2,54 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o jspline.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 -- plain instrument.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- aplain <emphasis role="opc">vco</emphasis> 15000, 220, 2, 0.83
- <emphasis role="opc">outs</emphasis> aplain, aplain
-<emphasis role="oblock">endin</emphasis>
-
-<emphasis role="comment">; Instrument #2 -- instrument with jitter.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Create a signal modulated the jitter opcode.</emphasis>
- kamp <emphasis role="opc">init</emphasis> 2
- kcpsmin <emphasis role="opc">init</emphasis> 4
- kcpsmax <emphasis role="opc">init</emphasis> 10
- kj <emphasis role="opc">jspline</emphasis> kamp, kcpsmin, kcpsmax
+kamp <emphasis role="opc">init</emphasis> p4
+kcpsmin <emphasis role="opc">init</emphasis> 2
+kcpsmax <emphasis role="opc">init</emphasis> 20
- aplain <emphasis role="opc">vco</emphasis> 20000, 220, 2, 0.83
- ajitter <emphasis role="opc">vco</emphasis> 20000, 220<emphasis role="op">+</emphasis>kj, 2, 0.83
+ksp <emphasis role="opc">jspline</emphasis> kamp, kcpsmin, kcpsmax
+aout <emphasis role="opc">pluck</emphasis> 1, 200<emphasis role="op">+</emphasis>ksp, 1000, 0, 1
+aout <emphasis role="opc">dcblock</emphasis> aout <emphasis role="comment">;remove DC</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="opc">outs</emphasis> aplain, ajitter
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 3 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="comment">; Play Instrument #2 for 3 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 3 3
+<emphasis role="stamnt">i</emphasis> 1 0 10 2 <emphasis role="comment">;a bit jitter</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 8 10 10 <emphasis role="comment">;some more</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 16 10 20 <emphasis role="comment">;lots more</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/kill.csd.xml b/examples-xml/kill.csd.xml
new file mode 100644
index 0000000..0cfbcf4
--- /dev/null
+++ b/examples-xml/kill.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in</emphasis>
+-odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o kill.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="comment">; Initialize the global variables.</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+
+giHandle<emphasis role="opc">instance</emphasis> 1, 0, 4
+<emphasis role="comment">; Instrument #1.</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+ k1 <emphasis role="opc">expon</emphasis> 440, p3<emphasis role="op">/</emphasis>10,880 <emphasis role="comment">; begin gliss and continue</emphasis>
+ <emphasis role="octrl">if</emphasis> k1 <emphasis role="op">&lt;</emphasis> <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>2 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">contin</emphasis> <emphasis role="comment">; until Nyquist detected</emphasis>
+ <emphasis role="opc">kill</emphasis> giHandle <emphasis role="comment">; then quit</emphasis>
+
+<emphasis role="olabel">contin</emphasis><emphasis role="op">:</emphasis>
+ a1 <emphasis role="opc">oscili</emphasis> 10000, k1
+ <emphasis role="opc">out</emphasis> a1
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/lenarray.csd.xml b/examples-xml/lenarray.csd.xml
new file mode 100644
index 0000000..9d76e20
--- /dev/null
+++ b/examples-xml/lenarray.csd.xml
@@ -0,0 +1,55 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-n -m128 <emphasis role="comment">;no sound output, reduced messages</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by joachim heintz</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+ <emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;simple example</emphasis>
+kArr[] <emphasis role="opc">fillarray</emphasis> 1, 2, 3, 4 <emphasis role="comment">;fill array manually</emphasis>
+ <emphasis role="opc">printks</emphasis> "Length of kArr <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\n\n", 0, <emphasis role="opc">lenarray</emphasis>(kArr) <emphasis role="comment">;print out its length</emphasis>
+ <emphasis role="opc">turnoff</emphasis> <emphasis role="comment">;only do this in the first k-cycle</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;random array length</emphasis>
+iNumEls <emphasis role="opc">random</emphasis> 1, 11 <emphasis role="comment">;create random number between 1 and 10</emphasis>
+kArr[] <emphasis role="opc">init</emphasis> <emphasis role="opc">int</emphasis>(iNumEls) <emphasis role="comment">;create array of this length</emphasis>
+ <emphasis role="opc">printks</emphasis> "Random length of kArr <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\n", 0, <emphasis role="opc">lenarray</emphasis>(kArr) <emphasis role="comment">;print out</emphasis>
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 3 <emphasis role="comment">;fill random array length with random elements</emphasis>
+iNumEls <emphasis role="opc">random</emphasis> 1, 11 <emphasis role="comment">;create random number between 1 and 10</emphasis>
+kArr[] <emphasis role="opc">init</emphasis> <emphasis role="opc">int</emphasis>(iNumEls) <emphasis role="comment">;create array of this length</emphasis>
+ <emphasis role="opc">printks</emphasis> "Random length of kArr <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\n", 0, <emphasis role="opc">lenarray</emphasis>(kArr) <emphasis role="comment">;print out</emphasis>
+
+<emphasis role="comment">;fill</emphasis>
+kIndx <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;initialize index</emphasis>
+ until kIndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr) do
+kArr[kIndx] <emphasis role="opc">rnd31</emphasis> 10, 0 <emphasis role="comment">;set element to random value -10...10</emphasis>
+kIndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1 <emphasis role="comment">;increase index</emphasis>
+ od
+
+<emphasis role="comment">;print</emphasis>
+kIndx <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;initialize index</emphasis>
+ until kIndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr) do
+<emphasis role="opc">printf</emphasis>("kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kIndx<emphasis role="op">+</emphasis>1, kIndx, kArr[kIndx])
+kIndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1 <emphasis role="comment">;increase index</emphasis>
+ od
+
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 .1
+<emphasis role="stamnt">i</emphasis> 2 0 .1
+<emphasis role="stamnt">i</emphasis> 2 0 .1
+<emphasis role="stamnt">i</emphasis> 3 0 .1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/lessequal.csd.xml b/examples-xml/lessequal.csd.xml
index e641779..dec390e 100644
--- a/examples-xml/lessequal.csd.xml
+++ b/examples-xml/lessequal.csd.xml
@@ -2,44 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o lessequal.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o &lt;=.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Get the 4th p-field from the score.</emphasis>
- k1 <emphasis role="op">=</emphasis> p4
- <emphasis role="comment">; Is it less than or equal to 3? (1 = true, 0 = false)</emphasis>
- k2 <emphasis role="op">=</emphasis> (p4 <emphasis role="op">&lt;=</emphasis> 3 <emphasis role="op">?</emphasis> 1 <emphasis role="op">:</emphasis> 0)
+kval <emphasis role="opc">randomh</emphasis> 0, 1.2, 20 <emphasis role="comment">;choose between 0 and 1.2</emphasis>
- <emphasis role="comment">; Print the values of k1 and k2.</emphasis>
- <emphasis role="opc">printks</emphasis> "k1 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, k2 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\\n", 1, k1, k2
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="octrl">if</emphasis> kval <emphasis role="op">></emphasis>0 <emphasis role="op">&amp;&amp;</emphasis> kval<emphasis role="op">&lt;=</emphasis>.5 then <emphasis role="comment">;3 possible outcomes</emphasis>
+ kvl <emphasis role="op">=</emphasis> 1
+<emphasis role="octrl">elseif</emphasis> kval <emphasis role="op">></emphasis>.5 <emphasis role="op">&amp;&amp;</emphasis> kval<emphasis role="op">&lt;=</emphasis>1 then
+ kvl <emphasis role="op">=</emphasis>2
+<emphasis role="octrl">elseif</emphasis> kval <emphasis role="op">></emphasis>1 then
+ kvl <emphasis role="op">=</emphasis>3
+<emphasis role="octrl">endif</emphasis>
+<emphasis role="opc">printks</emphasis> "random number <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, result <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", .1, kval, kvl
+asig <emphasis role="opc">poscil</emphasis> .7, 440<emphasis role="op">*</emphasis>kvl, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 16384 10 1
-<emphasis role="comment">; Call Instrument #1 with a p4 = 2.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 0.5 2
-<emphasis role="comment">; Call Instrument #1 with a p4 = 3.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 1 0.5 3
-<emphasis role="comment">; Call Instrument #1 with a p4 = 4.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 2 0.5 4
+<emphasis role="stamnt">i</emphasis> 1 0 5
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lessthan.csd.xml b/examples-xml/lessthan.csd.xml
index a47a420..c59ae3f 100644
--- a/examples-xml/lessthan.csd.xml
+++ b/examples-xml/lessthan.csd.xml
@@ -2,44 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o lessthan.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o &lt;.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Get the 4th p-field from the score.</emphasis>
- k1 <emphasis role="op">=</emphasis> p4
- <emphasis role="comment">; Is it less than 3? (1 = true, 0 = false)</emphasis>
- k2 <emphasis role="op">=</emphasis> (p4 <emphasis role="op">&lt;</emphasis> 3 <emphasis role="op">?</emphasis> 1 <emphasis role="op">:</emphasis> 0)
-
- <emphasis role="comment">; Print the values of k1 and k2.</emphasis>
- <emphasis role="opc">printks</emphasis> "k1 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, k2 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\\n", 1, k1, k2
+ipch <emphasis role="op">=</emphasis> p4
+ipitch <emphasis role="op">=</emphasis> (ipch <emphasis role="op">&lt;</emphasis> 15 <emphasis role="op">?</emphasis> <emphasis role="opc">cpspch</emphasis>(ipch) <emphasis role="op">:</emphasis> ipch) <emphasis role="comment">;if p4 is lower then 15, it assumes p4 to be pitch-class</emphasis>
+<emphasis role="opc">print</emphasis> ipitch <emphasis role="comment">;and not meant to be a frequency in Hertz</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .5, ipitch , 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Call Instrument #1 with a p4 = 2.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 0.5 2
-<emphasis role="comment">; Call Instrument #1 with a p4 = 3.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 1 0.5 3
-<emphasis role="comment">; Call Instrument #1 with a p4 = 4.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 2 0.5 4
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis>1 0 3 8.00 <emphasis role="comment">;pitch class</emphasis>
+<emphasis role="stamnt">i</emphasis>1 4 3 800 <emphasis role="comment">;frequency</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lfo.csd.xml b/examples-xml/lfo.csd.xml
index 0598ca1..59ef03c 100644
--- a/examples-xml/lfo.csd.xml
+++ b/examples-xml/lfo.csd.xml
@@ -2,44 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lfo.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10
- kcps <emphasis role="op">=</emphasis> 5
- itype <emphasis role="op">=</emphasis> 4
- k1 <emphasis role="opc">lfo</emphasis> kamp, kcps, itype
- ar <emphasis role="opc">oscil</emphasis> p4, p5<emphasis role="op">+</emphasis>k1, 1
- <emphasis role="opc">out</emphasis> ar
-<emphasis role="oblock">endin</emphasis>
+kcps <emphasis role="op">=</emphasis> 5
+itype <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;lfo type</emphasis>
+klfo <emphasis role="opc">line</emphasis> 0, p3, 20
+al <emphasis role="opc">lfo</emphasis> klfo, kcps, itype
+asig <emphasis role="opc">poscil</emphasis> .5, 220<emphasis role="op">+</emphasis>al, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1: an ordinary sine wave.</emphasis>
+<emphasis role="comment">; sine wave.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 32768 10 1
-<emphasis role="comment">; p4 = amplitude of the output signal.</emphasis>
-<emphasis role="comment">; p5 = frequency (in cycles per second) of the output signal.</emphasis>
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2 10000 220
+<emphasis role="stamnt">i</emphasis> 1 0 3 0 <emphasis role="comment">;lfo = sine</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 2 <emphasis role="comment">;lfo = square</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 5 <emphasis role="comment">;lfo = saw-tooth down</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/limit.csd.xml b/examples-xml/limit.csd.xml
index 0a85ced..afd8e5c 100644
--- a/examples-xml/limit.csd.xml
+++ b/examples-xml/limit.csd.xml
@@ -2,51 +2,54 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o limit.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o limit.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1, uncompressed signal.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use the "beats.wav" audio file.</emphasis>
- asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; Limit / Mirror / Wrap</emphasis>
- <emphasis role="opc">out</emphasis> asig
-<emphasis role="oblock">endin</emphasis>
+igain <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;gain</emphasis>
+ilevl1 <emphasis role="op">=</emphasis> p5 <emphasis role="comment">; + level</emphasis>
+ilevl2 <emphasis role="op">=</emphasis> p6 <emphasis role="comment">; - level</emphasis>
+imode <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;1 = limit, 2 = mirror, 3 = wrap</emphasis>
+
+ain <emphasis role="opc">soundin</emphasis> "fox.wav"
+ain <emphasis role="op">=</emphasis> ain<emphasis role="op">*</emphasis>igain
+
+<emphasis role="octrl">if</emphasis> imode <emphasis role="op">=</emphasis> 1 <emphasis role="octrl">goto</emphasis> <emphasis role="olabel">limit</emphasis>
+<emphasis role="octrl">if</emphasis> imode <emphasis role="op">=</emphasis> 2 <emphasis role="octrl">goto</emphasis> <emphasis role="olabel">mirror</emphasis>
+
+asig <emphasis role="opc">wrap</emphasis> ain, ilevl2, ilevl1
+<emphasis role="octrl">goto</emphasis> <emphasis role="olabel">outsignal</emphasis>
+
+<emphasis role="olabel">limit</emphasis><emphasis role="op">:</emphasis>
+asig <emphasis role="olabel">limit</emphasis> ain, ilevl2, ilevl1
+<emphasis role="octrl">goto</emphasis> <emphasis role="olabel">outsignal</emphasis>
-<emphasis role="comment">; Instrument #2, compressed signal.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Use the "beats.wav" audio file and a mic</emphasis>
- avoice <emphasis role="opc">in</emphasis>
- asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
+<emphasis role="olabel">mirror</emphasis><emphasis role="op">:</emphasis>
+asig <emphasis role="olabel">mirror</emphasis> ain, ilevl2, ilevl1
+<emphasis role="olabel">outsignal</emphasis><emphasis role="op">:</emphasis>
+
+<emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>.5, asig<emphasis role="op">*</emphasis>.5 <emphasis role="comment">;mind your speakers</emphasis>
-klow <emphasis role="opc">line</emphasis> 0 , p3, 10000
-khigh <emphasis role="op">=</emphasis> 10000
-ares <emphasis role="opc">limit</emphasis> asig, klow, khigh
- <emphasis role="opc">out</emphasis> ares
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 5
-<emphasis role="comment">; Play Instrument #2 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 6 11
-
+<emphasis role="comment">; Gain +Levl -Levl Mode</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 3 4.00 .25 -1.00 1 <emphasis role="comment">;limit</emphasis>
+<emphasis role="stamnt">i</emphasis>1 4 3 4.00 .25 -1.00 2 <emphasis role="comment">;mirror</emphasis>
+<emphasis role="stamnt">i</emphasis>1 8 3 4.00 .25 -1.00 3 <emphasis role="comment">;wrap</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/line.csd.xml b/examples-xml/line.csd.xml
index dabf3de..394c2f2 100644
--- a/examples-xml/line.csd.xml
+++ b/examples-xml/line.csd.xml
@@ -2,50 +2,45 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o line.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Define kcps as a frequency value that linearly declines </emphasis>
- <emphasis role="comment">; from 880 to 220. It declines over the period set by p3.</emphasis>
- kcps <emphasis role="opc">line</emphasis> 880, p3, 220
+<emphasis role="oblock">instr</emphasis> 1
- a1 <emphasis role="opc">oscil</emphasis> 20000, kcps, 1
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kp <emphasis role="op">=</emphasis> p6
+<emphasis role="comment">;choose between expon or line</emphasis>
+<emphasis role="octrl">if</emphasis> (kp <emphasis role="op">==</emphasis> 0) then
+ kpitch <emphasis role="opc">expon</emphasis> p4, p3, p5
+<emphasis role="octrl">elseif</emphasis> (kp <emphasis role="op">==</emphasis> 1) then
+ kpitch <emphasis role="opc">line</emphasis> p4, p3, p5
+<emphasis role="octrl">endif</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- kcps <emphasis role="opc">line</emphasis> 880, 1, 660 <emphasis role="comment">; kcps won't stop at 660 if p3 > 1</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> 20000, kcps, 1
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+asig <emphasis role="opc">vco2</emphasis> .6, kpitch
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
-
-<emphasis role="comment">; Play Instrument #2 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 3 2
-
+
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 300 600 0 <emphasis role="comment">;if p6=0 then expon is used</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 2 300 600 1 <emphasis role="comment">;if p6=1 then line is used</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 6 2 600 1200 0
+<emphasis role="stamnt">i</emphasis> 1 9 2 600 1200 1
+<emphasis role="stamnt">i</emphasis> 1 12 2 1200 2400 0
+<emphasis role="stamnt">i</emphasis> 1 15 2 1200 2400 1
+<emphasis role="stamnt">i</emphasis> 1 18 2 2400 30 0
+<emphasis role="stamnt">i</emphasis> 1 21 2 2400 30 1
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/linen.csd.xml b/examples-xml/linen.csd.xml
index 889b6ec..4504fd6 100644
--- a/examples-xml/linen.csd.xml
+++ b/examples-xml/linen.csd.xml
@@ -1,40 +1,40 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
-
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o dam.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o linen.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
- <emphasis role="oblock">instr</emphasis> 3 <emphasis role="comment">; p3=duration of note</emphasis>
-k1 <emphasis role="opc">linen</emphasis> p4, p6, p3, p7 <emphasis role="comment">; p4=amp</emphasis>
-a1 <emphasis role="opc">oscil</emphasis> k1, p5, 1 <emphasis role="comment">; p5=freq</emphasis>
- <emphasis role="opc">out</emphasis> a1 <emphasis role="comment">; p6=attack time</emphasis>
- <emphasis role="oblock">endin</emphasis> <emphasis role="comment">; p7=release time</emphasis>
-
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">; p4=amp</emphasis>
+<emphasis role="comment">; p5=freq</emphasis>
+<emphasis role="comment">; p6=attack time</emphasis>
+<emphasis role="comment">; p7=release time</emphasis>
+ares <emphasis role="opc">linen</emphasis> p4, p6, p3, p7
+asig <emphasis role="opc">poscil</emphasis> ares, p5, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
<emphasis role="stamnt">f</emphasis>1 0 4096 10 1 <emphasis role="comment">; sine wave</emphasis>
-<emphasis role="comment">;ins strt dur amp(p4) freq(p5) attack(p6) release(p7)</emphasis>
-<emphasis role="stamnt">i</emphasis>3 0 1 10000 440 0.5 0.7
-<emphasis role="stamnt">i</emphasis>3 1.5 1 10000 440 0.9 0.1
-<emphasis role="stamnt">i</emphasis>3 3 1 5000 880 0.02 0.99
-<emphasis role="stamnt">i</emphasis>3 4.5 1 5000 880 0.7 0.01
-<emphasis role="stamnt">i</emphasis>3 6 2 20000 220 0.5 0.5
-
+<emphasis role="comment">;ins strt dur amp freq attack release</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 1 .5 440 0.5 0.7
+<emphasis role="stamnt">i</emphasis>1 1.5 1 .2 440 0.9 0.1
+<emphasis role="stamnt">i</emphasis>1 3 1 .2 880 0.02 0.99
+<emphasis role="stamnt">i</emphasis>1 4.5 1 .2 880 0.7 0.01
+<emphasis role="stamnt">i</emphasis>1 6 3 .7 220 0.5 0.5
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lineto.csd.xml b/examples-xml/lineto.csd.xml
new file mode 100644
index 0000000..5805efa
--- /dev/null
+++ b/examples-xml/lineto.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o lineto.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kfreq <emphasis role="opc">randh</emphasis> 1000, 20, 2, 1, 2000 <emphasis role="comment">;generates ten random number between 100 and 300 per second</emphasis>
+kpan <emphasis role="opc">randh</emphasis> .5, 1, 2, 1, .5 <emphasis role="comment">;panning between 0 and 1</emphasis>
+kp <emphasis role="opc">lineto</emphasis> kpan, .5 <emphasis role="comment">;smoothing pan transition</emphasis>
+aout <emphasis role="opc">poscil</emphasis> .4, kfreq, giSine
+aL, aR <emphasis role="opc">pan2</emphasis> aout, kp
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/linrand.csd.xml b/examples-xml/linrand.csd.xml
index 9d49cc5..1ec53e3 100644
--- a/examples-xml/linrand.csd.xml
+++ b/examples-xml/linrand.csd.xml
@@ -2,50 +2,43 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o linrand.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a random number between 0 and 1.</emphasis>
- <emphasis role="comment">; krange = 1</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; every run time same values</emphasis>
- i1 <emphasis role="opc">linrand</emphasis> 1
-
- <emphasis role="opc">print</emphasis> i1
+klin <emphasis role="opc">linrand</emphasis> 100
+ <emphasis role="opc">printk</emphasis> .2, klin <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>klin, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #2.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Generate a random number between 0 and 1.</emphasis>
- <emphasis role="comment">; krange = 1</emphasis>
-
- <emphasis role="ohdr">seed</emphasis> 0
-
- i1 <emphasis role="opc">linrand</emphasis> 1
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; every run time different values</emphasis>
- <emphasis role="opc">print</emphasis> i1
+ <emphasis role="ohdr">seed</emphasis> 0
+klin <emphasis role="opc">linrand</emphasis> 100
+ <emphasis role="opc">printk</emphasis> .2, klin <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>klin, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="comment">; Play Instrument #2 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 1 1
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="comment">; sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 2 3 2
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/linseg.csd.xml b/examples-xml/linseg.csd.xml
index 93c036e..8cd3b49 100644
--- a/examples-xml/linseg.csd.xml
+++ b/examples-xml/linseg.csd.xml
@@ -2,77 +2,57 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o linseg.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">;-o linseg.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; p4 = frequency in pitch-class notation.</emphasis>
- kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
- <emphasis role="comment">; Create an amplitude envelope.</emphasis>
- kenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0
- kamp <emphasis role="op">=</emphasis> kenv <emphasis role="op">*</emphasis> 30000
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+kenv <emphasis role="opc">linseg</emphasis> 0, 0.25, 1, 0.75, 0 <emphasis role="comment">; together = 1 sec</emphasis>
+asig <emphasis role="opc">poscil</emphasis> kenv, kcps, giSine
+ <emphasis role="opc">outs</emphasis> asig, asig
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, 1
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; scaling to duration</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; p4 = frequency in pitch-class notation.</emphasis>
- kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
-
- <emphasis role="comment">; Create an amplitude envelope.</emphasis>
- kenv <emphasis role="opc">linseg</emphasis> 0, 0.25, 1, 0.75, 0 <emphasis role="comment">; kenv will go into negative if p3 > 1</emphasis>
- kamp <emphasis role="op">=</emphasis> kenv <emphasis role="op">*</emphasis> 30000
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+kenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0
+asig <emphasis role="opc">poscil</emphasis> kenv, kcps, giSine
+ <emphasis role="opc">outs</emphasis> asig, asig
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, 1
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-<emphasis role="oblock">instr</emphasis> 3
- <emphasis role="comment">; p4 = frequency in pitch-class notation.</emphasis>
- kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+<emphasis role="oblock">instr</emphasis> 3 <emphasis role="comment">; with negative value</emphasis>
- <emphasis role="comment">; Create an amplitude envelope.</emphasis>
- kenv <emphasis role="opc">linseg</emphasis> 0, 0.25, 1, 0.75, 0, 1, 0 <emphasis role="comment">; kenv will stay at 0 indefinetely at the end</emphasis>
- kamp <emphasis role="op">=</emphasis> kenv <emphasis role="op">*</emphasis> 30000
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+aenv <emphasis role="opc">linseg</emphasis> 0, 0.1, 1, 0.5, <emphasis role="op">-</emphasis>0.9, 0.4, 0
+asig <emphasis role="opc">poscil</emphasis> aenv, kcps, giSine
+ <emphasis role="opc">outs</emphasis> asig, asig
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, 1
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.00</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 0.5 8.00
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.01</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 1 0.5 8.01
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.02</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 2 0.5 8.02
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.03</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 3 0.5 8.03
+<emphasis role="stamnt">i</emphasis> 1 0 1 7.00 <emphasis role="comment">; = 1 sec, p3 fits exactly</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 2 2 7.00 <emphasis role="comment">; = 2 sec, p3 truncated at 1 sec</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 4 1.5 8.00 <emphasis role="comment">; Notice the problem with linseg</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 4 1 7.00 <emphasis role="comment">; scales to duration</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 6 2 7.00 <emphasis role="comment">; of p3</emphasis>
-<emphasis role="stamnt">i</emphasis> 3 6 1.5 8.00 <emphasis role="comment">; this is the solution (instr 3)</emphasis>
+<emphasis role="stamnt">i</emphasis> 3 9 2 7.00
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/linsegb.csd.xml b/examples-xml/linsegb.csd.xml
new file mode 100644
index 0000000..df1c96b
--- /dev/null
+++ b/examples-xml/linsegb.csd.xml
@@ -0,0 +1,49 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o linseg.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+kenv <emphasis role="opc">linsegb</emphasis> 0, 0.25, 1, 1, 0
+asig <emphasis role="opc">poscil</emphasis> kenv, kcps, giSine
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; scaling to duration</emphasis>
+
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+kenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>0.25, 1, p3, 0
+asig <emphasis role="opc">poscil</emphasis> kenv, kcps, giSine
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 1 7.00 <emphasis role="comment">; = 1 sec, p3 fits exactly</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 2 2 7.00 <emphasis role="comment">; = 2 sec, p3 truncated at 1 sec</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 2 4 1 7.00 <emphasis role="comment">; scales to duration</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 6 2 7.00 <emphasis role="comment">; of p3</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/linsegr.csd.xml b/examples-xml/linsegr.csd.xml
index 7a6be74..33eb827 100644
--- a/examples-xml/linsegr.csd.xml
+++ b/examples-xml/linsegr.csd.xml
@@ -2,54 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o linsegr.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; p4 = frequency in pitch-class notation.</emphasis>
- kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
- <emphasis role="comment">; Use an amplitude envelope with second-long release.</emphasis>
- kenv <emphasis role="opc">linsegr</emphasis> 1, p3, 0.25, 1, 0
- kamp <emphasis role="op">=</emphasis> kenv <emphasis role="op">*</emphasis> 30000
-
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, 1
- <emphasis role="opc">out</emphasis> a1
+
+icps <emphasis role="opc">cpsmidi</emphasis>
+iamp <emphasis role="opc">ampmidi</emphasis> .3
+
+kenv <emphasis role="opc">linsegr</emphasis> 1, .05, 0.5, 1, 0
+asig <emphasis role="opc">pluck</emphasis> kenv, icps, 200, 1, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Make sure the score lasts for four seconds.</emphasis>
-<emphasis role="stamnt">f</emphasis> 0 4
-
-<emphasis role="comment">; p4 = frequency (in pitch-class notation).</emphasis>
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.00</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 0.5 8.00
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.01</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 1 0.5 8.01
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.02</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 2 0.5 8.02
-<emphasis role="comment">; Play Instrument #1 for a half-second, p4=8.03</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 3 0.5 8.03
+<emphasis role="stamnt">f</emphasis>0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/locsend_stereo.csd.xml b/examples-xml/locsend_stereo.csd.xml
index a5616cf..cf60dbf 100644
--- a/examples-xml/locsend_stereo.csd.xml
+++ b/examples-xml/locsend_stereo.csd.xml
@@ -2,55 +2,52 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o locsend_stereo.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+ga1 <emphasis role="opc">init</emphasis> 0
+ga2 <emphasis role="opc">init</emphasis> 0
-ga1 <emphasis role="opc">init</emphasis> 0
-ga2 <emphasis role="opc">init</emphasis> 0
-<emphasis role="comment">; Instrument #1</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use the "beats.wav" audio file.</emphasis>
-aout <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
-kdegree <emphasis role="opc">line</emphasis> 0, p3, 180
-kdistance <emphasis role="opc">line</emphasis> 1, p3 , 30
-a1, a2 <emphasis role="opc">locsig</emphasis> aout, kdegree, kdistance, .1
-ar1, ar2 <emphasis role="opc">locsend</emphasis>
-ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
-ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
+krevsend <emphasis role="op">=</emphasis> p4
+aout <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
+kdegree <emphasis role="opc">line</emphasis> 0, p3, 180 <emphasis role="comment">;left to right</emphasis>
+kdistance <emphasis role="opc">line</emphasis> 1, p3, 30
+a1, a2 <emphasis role="opc">locsig</emphasis> aout, kdegree, kdistance, p4
+ar1, ar2 <emphasis role="opc">locsend</emphasis>
+ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
+ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
+ <emphasis role="opc">outs</emphasis> a1, a2
- <emphasis role="opc">outs</emphasis> a1, a2
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb instrument</emphasis>
a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
<emphasis role="opc">outs</emphasis> a1, a2
-ga1<emphasis role="op">=</emphasis>0
-ga2<emphasis role="op">=</emphasis>0
+ga1 <emphasis role="op">=</emphasis> 0
+ga2 <emphasis role="op">=</emphasis> 0
+
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">; sine wave.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for five seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="stamnt">i</emphasis>99 0 5
+<emphasis role="stamnt">i</emphasis> 1 0 4 .1 <emphasis role="comment">;with reverb</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 4 0 <emphasis role="comment">;no reverb</emphasis>
+<emphasis role="stamnt">i</emphasis>99 0 7
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/locsig_quad.csd.xml b/examples-xml/locsig_quad.csd.xml
index 37983a1..da7e9a4 100644
--- a/examples-xml/locsig_quad.csd.xml
+++ b/examples-xml/locsig_quad.csd.xml
@@ -2,46 +2,46 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o locsend_quad.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o locsig_quad.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+ga1 <emphasis role="opc">init</emphasis> 0
+ga2 <emphasis role="opc">init</emphasis> 0
+ga3 <emphasis role="opc">init</emphasis> 0
+ga4 <emphasis role="opc">init</emphasis> 0
-ga1 <emphasis role="opc">init</emphasis> 0
-ga2 <emphasis role="opc">init</emphasis> 0
-ga3 <emphasis role="opc">init</emphasis> 0
-ga4 <emphasis role="opc">init</emphasis> 0
-<emphasis role="comment">; Instrument #1</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use the "beats.wav" audio file.</emphasis>
-aout <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
-kdegree <emphasis role="opc">line</emphasis> 0, p3, 360
-kdistance <emphasis role="opc">line</emphasis> 1, p3 , 10
-a1, a2, a3, a4 <emphasis role="opc">locsig</emphasis> aout, kdegree, kdistance, .1
-ar1, ar2, ar3, ar4 <emphasis role="opc">locsend</emphasis>
-ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
-ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
-ga3 <emphasis role="op">=</emphasis> ga3<emphasis role="op">+</emphasis>ar3
-ga4 <emphasis role="op">=</emphasis> ga4<emphasis role="op">+</emphasis>ar4
- <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
+krevsend <emphasis role="op">=</emphasis> p4
+aout <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
+kdegree <emphasis role="opc">line</emphasis> 0, p3, 360 <emphasis role="comment">;full circle</emphasis>
+kdistance <emphasis role="opc">line</emphasis> 1, p3 , 1
+a1, a2, a3, a4 <emphasis role="opc">locsig</emphasis> aout, kdegree, kdistance, krevsend
+ar1, ar2, ar3, ar4 <emphasis role="opc">locsend</emphasis>
+
+ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
+ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
+ga3 <emphasis role="op">=</emphasis> ga3<emphasis role="op">+</emphasis>ar3
+ga4 <emphasis role="op">=</emphasis> ga4<emphasis role="op">+</emphasis>ar4
+ <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
+
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb instrument</emphasis>
-a1 <emphasis role="opc">reverb2</emphasis> ga1, 3.5, .5
-a2 <emphasis role="opc">reverb2</emphasis> ga2, 3.5, .5
-a3 <emphasis role="opc">reverb2</emphasis> ga3, 3.5, .5
-a4 <emphasis role="opc">reverb2</emphasis> ga4, 3.5, .5
-
- <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
+a1 <emphasis role="opc">reverb2</emphasis> ga1, 3.5, .5
+a2 <emphasis role="opc">reverb2</emphasis> ga2, 3.5, .5
+a3 <emphasis role="opc">reverb2</emphasis> ga3, 3.5, .5
+a4 <emphasis role="opc">reverb2</emphasis> ga4, 3.5, .5
+ <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
ga1 <emphasis role="op">=</emphasis> 0
ga2 <emphasis role="op">=</emphasis> 0
@@ -51,15 +51,13 @@ ga4 <emphasis role="op">=</emphasis> 0
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="comment">; sine wave.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="stamnt">i</emphasis>99 0 5
+<emphasis role="stamnt">i</emphasis> 1 0 14 .1 <emphasis role="comment">;with reverb</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 14 14 0 <emphasis role="comment">;no reverb</emphasis>
+<emphasis role="stamnt">i</emphasis>99 0 36
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/log2.csd.xml b/examples-xml/log2.csd.xml
new file mode 100644
index 0000000..9485b1f
--- /dev/null
+++ b/examples-xml/log2.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in</emphasis>
+-odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o log10.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="comment">; Initialize the global variables.</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">; Instrument #1.</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+ i1 <emphasis role="op">=</emphasis> <emphasis role="opc">log2</emphasis>(8)
+ <emphasis role="opc">print</emphasis> i1
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">e</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/logicOR.csd.xml b/examples-xml/logicOR.csd.xml
new file mode 100644
index 0000000..0b5c252
--- /dev/null
+++ b/examples-xml/logicOR.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and virtual midi keyboard</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;after a UDO from Rory Walsh</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;displays notes, midi channel and control number information</emphasis>
+
+kstatus, kchan, kdata1, kdata2 <emphasis role="opc">midiin</emphasis>
+k1 <emphasis role="opc">changed</emphasis> kstatus
+k2 <emphasis role="opc">changed</emphasis> kchan
+k3 <emphasis role="opc">changed</emphasis> kdata1
+k4 <emphasis role="opc">changed</emphasis> kdata2
+<emphasis role="octrl">if</emphasis>((k1<emphasis role="op">==</emphasis>1)<emphasis role="op">||</emphasis>(k2<emphasis role="op">==</emphasis>1)<emphasis role="op">||</emphasis>(k3<emphasis role="op">==</emphasis>1)<emphasis role="op">||</emphasis>(k4<emphasis role="op">==</emphasis>1)) then
+<emphasis role="opc">printks</emphasis> "Value<emphasis role="op">:</emphasis><emphasis role="op">%</emphasis>d ChanNo<emphasis role="op">:</emphasis><emphasis role="op">%</emphasis>d CtrlNo<emphasis role="op">:</emphasis><emphasis role="op">%</emphasis>d\n" , 0, kdata2, kchan, kdata1
+<emphasis role="octrl">endif</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 60 <emphasis role="comment">;print values for 60 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/loop_le.csd.xml b/examples-xml/loop_le.csd.xml
new file mode 100644
index 0000000..c866272
--- /dev/null
+++ b/examples-xml/loop_le.csd.xml
@@ -0,0 +1,50 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o loop_le.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0
+gisine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;master instrument</emphasis>
+
+ininstr <emphasis role="op">=</emphasis> 5 <emphasis role="comment">;number of called instances</emphasis>
+indx <emphasis role="op">=</emphasis> 0
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="opc">prints</emphasis> "play <emphasis role="opc">instance</emphasis> <emphasis role="op">%</emphasis>d\\n", indx
+ipan <emphasis role="opc">random</emphasis> 0, 1
+ifreq <emphasis role="opc">random</emphasis> 100, 1000
+iamp <emphasis role="op">=</emphasis> 1<emphasis role="op">/</emphasis>ininstr
+<emphasis role="opc">event_i</emphasis> "i", 10, 0, p3, iamp, ifreq, ipan
+<emphasis role="octrl">loop_le</emphasis> indx, 1, ininstr, <emphasis role="olabel">loop</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 10
+
+ipeak <emphasis role="opc">random</emphasis> 0, 1 <emphasis role="comment">;where is the envelope peak</emphasis>
+asig <emphasis role="opc">poscil3</emphasis> p4, p5, gisine
+aenv <emphasis role="opc">transeg</emphasis> 0, p3<emphasis role="op">*</emphasis>ipeak, 6, 1, p3<emphasis role="op">-</emphasis>p3<emphasis role="op">*</emphasis>ipeak, <emphasis role="op">-</emphasis>6, 0
+aL,aR <emphasis role="opc">pan2</emphasis> asig<emphasis role="op">*</emphasis>aenv, p6
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/loop_lt.csd.xml b/examples-xml/loop_lt.csd.xml
new file mode 100644
index 0000000..042b33c
--- /dev/null
+++ b/examples-xml/loop_lt.csd.xml
@@ -0,0 +1,50 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o loop_lt.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0
+gisine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;master instrument</emphasis>
+
+ininstr <emphasis role="op">=</emphasis> 5 <emphasis role="comment">;number of called instances</emphasis>
+indx <emphasis role="op">=</emphasis> 0
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="opc">prints</emphasis> "play <emphasis role="opc">instance</emphasis> <emphasis role="op">%</emphasis>d\\n", indx
+ipan <emphasis role="opc">random</emphasis> 0, 1
+ifreq <emphasis role="opc">random</emphasis> 100, 1000
+iamp <emphasis role="op">=</emphasis> 1<emphasis role="op">/</emphasis>ininstr
+<emphasis role="opc">event_i</emphasis> "i", 10, 0, p3, iamp, ifreq, ipan
+<emphasis role="octrl">loop_lt</emphasis> indx, 1, ininstr, <emphasis role="olabel">loop</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 10
+
+ipeak <emphasis role="opc">random</emphasis> 0, 1 <emphasis role="comment">;where is the envelope peak</emphasis>
+asig <emphasis role="opc">poscil3</emphasis> p4, p5, gisine
+aenv <emphasis role="opc">transeg</emphasis> 0, p3<emphasis role="op">*</emphasis>ipeak, 6, 1, p3<emphasis role="op">-</emphasis>p3<emphasis role="op">*</emphasis>ipeak, <emphasis role="op">-</emphasis>6, 0
+aL,aR <emphasis role="opc">pan2</emphasis> asig<emphasis role="op">*</emphasis>aenv, p6
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/loopseg.csd.xml b/examples-xml/loopseg.csd.xml
index 6dca2fa..37ca24d 100644
--- a/examples-xml/loopseg.csd.xml
+++ b/examples-xml/loopseg.csd.xml
@@ -2,41 +2,48 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o loopseg.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kfreq <emphasis role="opc">line</emphasis> 1, p3, 20
-
- klp <emphasis role="opc">loopseg</emphasis> kfreq, 0, 0, 0, 0.5, 30000, 1, 0
-
- a1 <emphasis role="opc">oscil</emphasis> klp, 440, 1
- <emphasis role="opc">out</emphasis> a1
+kfreq <emphasis role="opc">init</emphasis> p4 <emphasis role="comment">; frequency of loop repetition</emphasis>
+ifrac <emphasis role="op">=</emphasis> p5 <emphasis role="comment">; frequency ratio of restart triggers</emphasis>
+ktrig <emphasis role="opc">metro</emphasis> kfreq <emphasis role="op">*</emphasis> ifrac <emphasis role="comment">; triggers to restart loop</emphasis>
+iphase <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; initial phase</emphasis>
+<emphasis role="comment">; loop of note values (some glissandi)</emphasis>
+<emphasis role="comment">; val dur val dur etc...</emphasis>
+knote <emphasis role="opc">loopseg</emphasis> kfreq, ktrig, iphase, 40, 1, 40, 0, 43,1,43,0, 49,2,48,0, \
+ 47,1,47,0, 46,1,46,0, 46,1,47,0, 49,1,49,0, 43,1,43,0, 46,1,46,0, 40,1,39,0
+<emphasis role="comment">; loop of filter cutoff values (oct format). This loop, half speed of note loop.</emphasis>
+kcfoct <emphasis role="opc">loopseg</emphasis> kfreq<emphasis role="op">*</emphasis>0.5, ktrig, iphase, 11,2,4,0, 12,1,4,0, 13,1,4,0, \
+ 11.5,3,4,0, 12.5,1,4,0, 13,2,4,0, 12.5,1,4,0
+kenv <emphasis role="opc">linseg</emphasis> 0,0.01,1,p3<emphasis role="op">-</emphasis>5.01,1,5,0
+ioct <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>((<emphasis role="opc">rnd</emphasis>(0.999)<emphasis role="op">*</emphasis>4)<emphasis role="op">-</emphasis>2) <emphasis role="comment">; random value either -1, 0 or 1</emphasis>
+asig <emphasis role="opc">vco2</emphasis> 0.2<emphasis role="op">*</emphasis>kenv,cpsmidinn(knote)<emphasis role="op">*</emphasis><emphasis role="opc">octave</emphasis>(ioct),0 <emphasis role="comment">; sawtooth</emphasis>
+asig <emphasis role="opc">moogladder</emphasis> asig,cpsoct(kcfoct),rnd(0.6) <emphasis role="comment">; filter sawtooth</emphasis>
+aL,aR <emphasis role="opc">pan2</emphasis> asig,rnd(1) <emphasis role="comment">; random static pan location</emphasis>
+ <emphasis role="opc">outs</emphasis> aL, aR
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for five seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="comment">; 4 layers, each with a different frequency of loop repetition (p4),</emphasis>
+<emphasis role="comment">; frequency ratio of restart triggers (p5) and pan position (p6).</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 30 0.5 [11/19]
+<emphasis role="stamnt">i</emphasis> 1 6 30 0.25 [11/13]
+<emphasis role="stamnt">i</emphasis> 1 12 30 0.125 [11/16]
+<emphasis role="stamnt">i</emphasis> 1 18 30 1 [11/12]
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/loopsegp.csd.xml b/examples-xml/loopsegp.csd.xml
index deecc9f..c84e91d 100644
--- a/examples-xml/loopsegp.csd.xml
+++ b/examples-xml/loopsegp.csd.xml
@@ -2,40 +2,51 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o loopsegp.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis><emphasis role="op">=</emphasis>44100
-<emphasis role="ohdr">ksmps</emphasis><emphasis role="op">=</emphasis>1
-<emphasis role="ohdr">nchnls</emphasis><emphasis role="op">=</emphasis>2
-<emphasis role="comment">; By Mark Van Peteghem 2008</emphasis>
-
- <emphasis role="oblock">instr</emphasis> 1
-iphase <emphasis role="op">=</emphasis> p4
-
-kenv <emphasis role="opc">linen</emphasis> 1, 0.1, p3, 0.1
-kph_amp <emphasis role="opc">phasor</emphasis> 2, 0
-kamp <emphasis role="opc">loopsegp</emphasis> kph_amp, 60, 1, 30, 1, 60
-kamp <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(kamp)<emphasis role="op">*</emphasis>kenv
-
-kph_freq <emphasis role="opc">phasor</emphasis> 2, iphase
-klow_freq <emphasis role="opc">line</emphasis> 200, p3, 100
-kfreq <emphasis role="opc">loopsegp</emphasis> kph_freq, 400, 1, klow_freq, 1, 400
-
-asig <emphasis role="opc">vco2</emphasis> kamp, kfreq, 2, 0.5
-
- <emphasis role="opc">outs</emphasis> asig, asig
-
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+ktrig <emphasis role="opc">metro</emphasis> 22<emphasis role="op">/</emphasis>8 <emphasis role="comment">; triggers used to generate new direction values</emphasis>
+kdir <emphasis role="opc">trandom</emphasis> ktrig,<emphasis role="op">-</emphasis>2.99,2.99
+kdir <emphasis role="op">=</emphasis> 0.5<emphasis role="op">*</emphasis><emphasis role="opc">int</emphasis>(kdir) <emphasis role="comment">; kdir will either -1, -0.5, 0, 0.5 or 1</emphasis>
+<emphasis role="comment">; kphase - looping pointer</emphasis>
+kphase <emphasis role="opc">phasor</emphasis> kdir
+<emphasis role="comment">; a loop sequence of midi note numbers and durations</emphasis>
+knote <emphasis role="opc">loopsegp</emphasis> kphase, 40,1,40,0, 43,1,43,0, 49,2,48,0, \
+ 47,1,47,0, 46,1,46,0, 46,1,47,0, 49,1,49,0, 43,1,43,0, 46,1,46,0, 40,1,39,0
+kmul <emphasis role="opc">rspline</emphasis> 0.1,0.8,0.5,5 <emphasis role="comment">; modulation of buzz tone</emphasis>
+asig <emphasis role="opc">gbuzz</emphasis> 0.2, <emphasis role="opc">cpsmidinn</emphasis>(knote), 30, 3, kmul, 1 <emphasis role="comment">; buzz tone</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+ <emphasis role="opc">schedkwhen</emphasis> ktrig,0,0,2,0,0.1 <emphasis role="comment">; play metronome</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; metronome</emphasis>
+acps <emphasis role="opc">expon</emphasis> 180<emphasis role="op">+</emphasis><emphasis role="opc">rnd</emphasis>(40),p3,50
+aamp <emphasis role="opc">expon</emphasis> 0.05<emphasis role="op">+</emphasis><emphasis role="opc">rnd</emphasis>(0.05),p3,0.001
+asig <emphasis role="opc">poscil</emphasis> aamp<emphasis role="op">-</emphasis>0.001,acps,2
+ <emphasis role="opc">outs</emphasis> asig,asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis>1 0 3 0
-<emphasis role="stamnt">i</emphasis>1 + . 0.50
+<emphasis role="comment">; cosine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 11 1
+<emphasis role="comment">; sine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 360 0.25
+
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/looptseg.csd.xml b/examples-xml/looptseg.csd.xml
index 9887e59..f610374 100644
--- a/examples-xml/looptseg.csd.xml
+++ b/examples-xml/looptseg.csd.xml
@@ -2,41 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o looptseg.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kfreq <emphasis role="opc">line</emphasis> 1, p3, 20
-
- klp <emphasis role="opc">looptseg</emphasis> kfreq, 0, 0, 0, 1, 0.5, 30000, <emphasis role="op">-</emphasis>1, 1, 0
-
- a1 <emphasis role="opc">oscil</emphasis> klp, 440, 1
- <emphasis role="opc">out</emphasis> a1
+kfreq <emphasis role="op">=</emphasis> 1 <emphasis role="comment">; frequency of loop repetition</emphasis>
+ktrig <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">; loop restart trigger (not used)</emphasis>
+iphase <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; initial phase</emphasis>
+ktyp <emphasis role="opc">line</emphasis> 6,p3,<emphasis role="op">-</emphasis>6 <emphasis role="comment">; explore the useful range of curve types</emphasis>
+<emphasis role="comment">; loop of filter cutoff values (oct format)</emphasis>
+<emphasis role="comment">; value curve dur.</emphasis>
+kcfoct <emphasis role="opc">looptseg</emphasis> kfreq, ktrig, iphase,13, ktyp, 1, \
+ 4, ktyp, 0, \
+ 11, ktyp, 1, \
+ 4
+asig <emphasis role="opc">vco2</emphasis> 0.2,cpsmidinn(48),0 <emphasis role="comment">; a sawtooth</emphasis>
+asig <emphasis role="opc">moogladder</emphasis> asig,cpsoct(kcfoct),rnd(0.6) <emphasis role="comment">; filter sawtooth</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for five seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 1 0 12
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/loopxseg.csd.xml b/examples-xml/loopxseg.csd.xml
index 904f1e1..0de4395 100644
--- a/examples-xml/loopxseg.csd.xml
+++ b/examples-xml/loopxseg.csd.xml
@@ -2,41 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o loopxseg.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kfreq <emphasis role="opc">line</emphasis> 1, p3, 20
-
- klp <emphasis role="opc">loopxseg</emphasis> kfreq, 0, 0, 0, 0.5, 30000, 1, 0
-
- a1 <emphasis role="opc">oscil</emphasis> klp, 440, 1
- <emphasis role="opc">out</emphasis> a1
+kfreq <emphasis role="opc">rspline</emphasis> 0.01,20,0.2,1 <emphasis role="comment">; freq. of loop repetition created by random spline</emphasis>
+ktrig <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">; loop restart trigger (not used)</emphasis>
+iphase <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; initial phase</emphasis>
+<emphasis role="comment">; loop of filter cutoff values (oct format). Rescaled further down.</emphasis>
+kcfoct <emphasis role="opc">loopxseg</emphasis> kfreq, ktrig, iphase, 1,1,0,0
+kenv <emphasis role="opc">linseg</emphasis> 0,0.01,1,p3<emphasis role="op">-</emphasis>5.01,1,5,0
+asig <emphasis role="opc">vco2</emphasis> 0.2<emphasis role="op">*</emphasis>kenv,cpsmidinn(48),0
+kdep <emphasis role="opc">rspline</emphasis> 5,8,0.2,1 <emphasis role="comment">; filter depth created by a random spline</emphasis>
+kcf <emphasis role="opc">port</emphasis> <emphasis role="opc">cpsoct</emphasis>((kcfoct<emphasis role="op">*</emphasis>kdep)<emphasis role="op">+</emphasis>4), 0.001 <emphasis role="comment">; smooth filter changes</emphasis>
+asig <emphasis role="opc">moogladder</emphasis> asig,kcf,rnd(0.6)
+aL,aR <emphasis role="opc">pan2</emphasis> asig,rnd(1)
+ <emphasis role="opc">outs</emphasis> aL, aR
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for five seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 1 0 60
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lorismorph.csd.xml b/examples-xml/lorismorph.csd.xml
index 119be96..9607c97 100644
--- a/examples-xml/lorismorph.csd.xml
+++ b/examples-xml/lorismorph.csd.xml
@@ -2,78 +2,77 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lorismorph.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 128
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">; clarinet.sdif and meow.sdif can be found in /manual/examples</emphasis>
-<emphasis role="comment">; Morph the partials in clarinet.sdif into the partials in flute.sdif over the duration of</emphasis>
-<emphasis role="comment">; the sustained portion of the two tones (from .2 to 2.0 seconds in the clarinet, and from</emphasis>
-<emphasis role="comment">; .5 to 2.1 seconds in the flute). The onset and decay portions in the morphed sound are</emphasis>
+<emphasis role="comment">; Morph the partials in meow.sdif into the partials in clarinet.sdif over the duration of</emphasis>
+<emphasis role="comment">; the sustained portion of the two tones (from .2 to 2.0 seconds in the meow, and from</emphasis>
+<emphasis role="comment">; .5 to 2.1 seconds in the clarinet). The onset and decay portions in the morphed sound are</emphasis>
<emphasis role="comment">; specified by parameters p4 and p5, respectively. The morphing time is the time between the</emphasis>
-<emphasis role="comment">; onset and the decay. The clarinet partials are shfited in pitch to match the pitch of the flute</emphasis>
+<emphasis role="comment">; onset and the decay. The meow partials are shfited in pitch to match the pitch of the clarinet</emphasis>
<emphasis role="comment">; tone (D above middle C). </emphasis>
<emphasis role="oblock">instr</emphasis> 1
-ionset <emphasis role="op">=</emphasis> p4
-idecay <emphasis role="op">=</emphasis> p5
-itmorph <emphasis role="op">=</emphasis> p3 <emphasis role="op">-</emphasis> (ionset <emphasis role="op">+</emphasis> idecay)
-ipshift <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(8.02)<emphasis role="op">/</emphasis><emphasis role="opc">cpspch</emphasis>(8.08)
+
+ionset <emphasis role="op">=</emphasis> p4
+idecay <emphasis role="op">=</emphasis> p5
+itmorph <emphasis role="op">=</emphasis> p3 <emphasis role="op">-</emphasis> (ionset <emphasis role="op">+</emphasis> idecay)
+ipshift <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(8.02)<emphasis role="op">/</emphasis><emphasis role="opc">cpspch</emphasis>(8.08)
-ktcl <emphasis role="opc">linseg</emphasis> 0, ionset, .2, itmorph, 2.0, idecay, 2.1 <emphasis role="comment">; clarinet time function, morph from .2 to 2.0 seconds</emphasis>
-ktfl <emphasis role="opc">linseg</emphasis> 0, ionset, .5, itmorph, 2.1, idecay, 2.3 <emphasis role="comment">; flute time function, morph from .5 to 2.1 seconds</emphasis>
+ktme <emphasis role="opc">linseg</emphasis> 0, ionset, .2, itmorph, 2.0, idecay, 2.1 <emphasis role="comment">; meow time function, morph from .2 to 2.0 seconds</emphasis>
+ktcl <emphasis role="opc">linseg</emphasis> 0, ionset, .5, itmorph, 2.1, idecay, 2.3 <emphasis role="comment">; clarinet time function, morph from .5 to 2.1 seconds</emphasis>
kmurph <emphasis role="opc">linseg</emphasis> 0, ionset, 0, itmorph, 1, idecay, 1
- lorisread ktcl, "meow.sdif", 1, ipshift, 2, 1, .001
- lorisread ktfl, "clarinet.sdif", 2, 1, 1, 1, .001
- lorismorph 1, 2, 3, kmurph, kmurph, kmurph
-asig lorisplay 3, 1, 1, 1
- <emphasis role="opc">outs</emphasis> asig, asig
+ lorisread ktme, "meow.sdif", 1, ipshift, 2, 1, .001
+ lorisread ktcl, "clarinet.sdif", 2, 1, 1, 1, .001
+ lorismorph 1, 2, 3, kmurph, kmurph, kmurph
+asig lorisplay 3, 1, 1, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Morph the partials in trombone.sdif into the partials in meow.sdif. The start and end times</emphasis>
+<emphasis role="comment">; Morph the partials in clarinet.sdif into the partials in meow.sdif. The start and end times</emphasis>
<emphasis role="comment">; for the morph are specified by parameters p4 and p5, respectively. The morph occurs over the</emphasis>
<emphasis role="comment">; second of four pitches in each of the sounds, from .75 to 1.2 seconds in the flutter-tongued</emphasis>
-<emphasis role="comment">; trombone tone, and from 1.7 to 2.2 seconds in the cat's meow. Different morphing functions are</emphasis>
+<emphasis role="comment">; clarinet tone, and from 1.7 to 2.2 seconds in the cat's meow. Different morphing functions are</emphasis>
<emphasis role="comment">; used for the frequency and amplitude envelopes, so that the partial amplitudes make a faster </emphasis>
-<emphasis role="comment">; transition from trombone to cat than the frequencies. (The bandwidth envelopes use the same </emphasis>
+<emphasis role="comment">; transition from clarinet to cat than the frequencies. (The bandwidth envelopes use the same </emphasis>
<emphasis role="comment">; morphing function as the amplitudes.) </emphasis>
<emphasis role="oblock">instr</emphasis> 2
-ionset <emphasis role="op">=</emphasis> p4
-imorph <emphasis role="op">=</emphasis> p5 <emphasis role="op">-</emphasis> p4
-irelease <emphasis role="op">=</emphasis> p3 <emphasis role="op">-</emphasis> p5
+
+ionset <emphasis role="op">=</emphasis> p4
+imorph <emphasis role="op">=</emphasis> p5 <emphasis role="op">-</emphasis> p4
+irelease <emphasis role="op">=</emphasis> p3 <emphasis role="op">-</emphasis> p5
-ktclar <emphasis role="opc">linseg</emphasis> 0, ionset, .75, imorph, 1.2, irelease, 2.4
+ktclar <emphasis role="opc">linseg</emphasis> 0, ionset, .75, imorph, 1.2, irelease, 2.4
ktmeow <emphasis role="opc">linseg</emphasis> 0, ionset, 1.7, imorph, 2.2, irelease, 3.4
kmfreq <emphasis role="opc">linseg</emphasis> 0, ionset, 0, .75<emphasis role="op">*</emphasis>imorph, .25, .25<emphasis role="op">*</emphasis>imorph, 1, irelease, 1
kmamp <emphasis role="opc">linseg</emphasis> 0, ionset, 0, .75<emphasis role="op">*</emphasis>imorph, .9, .25<emphasis role="op">*</emphasis>imorph, 1, irelease, 1
- lorisread ktclar, "clarinet.sdif", 1, 1, 1, 1, .001
- lorisread ktmeow, "meow.sdif", 2, 1, 1, 1, .001
- lorismorph 1, 2, 3, kmfreq, kmamp, kmamp
-asig lorisplay 3, 1, 1, 1
- <emphasis role="opc">outs</emphasis> asig, asig
+ lorisread ktclar, "clarinet.sdif", 1, 1, 1, 1, .001
+ lorisread ktmeow, "meow.sdif", 2, 1, 1, 1, .001
+ lorismorph 1, 2, 3, kmfreq, kmamp, kmamp
+asig lorisplay 3, 1, 1, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; play instr 1</emphasis>
<emphasis role="comment">; strt dur onset decay</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 3 .25 .15
<emphasis role="stamnt">i</emphasis> 1 + 1 .10 .10
<emphasis role="stamnt">i</emphasis> 1 + 6 1. 1.
-
-
-<emphasis role="comment">; play instr 2</emphasis>
<emphasis role="comment">; strt dur morph_start morph_end</emphasis>
<emphasis role="stamnt">i</emphasis> 2 9 4 .75 2.75
diff --git a/examples-xml/lorisplay.csd.xml b/examples-xml/lorisplay.csd.xml
index 06fa9b9..e21d6fd 100644
--- a/examples-xml/lorisplay.csd.xml
+++ b/examples-xml/lorisplay.csd.xml
@@ -2,58 +2,61 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lorisplay.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 128
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">; clarinet.sdif can be found in /manual/examples</emphasis>
<emphasis role="comment">; Play the partials in clarinet.sdif from 0 to 3 sec with 1 ms fadetime</emphasis>
<emphasis role="comment">; and no frequency , amplitude, or bandwidth modification.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-ktime <emphasis role="opc">linseg</emphasis> 0, p3, 3.0 <emphasis role="comment">; linear time function from 0 to 3 seconds</emphasis>
- lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
-asig lorisplay 1, 1, 1, 1
- <emphasis role="opc">outs</emphasis> asig, asig
-<emphasis role="oblock">endin</emphasis>
+ktime <emphasis role="opc">linseg</emphasis> 0, p3, 3.0 <emphasis role="comment">; linear time function from 0 to 3 seconds</emphasis>
+ lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
+kfrq <emphasis role="op">=</emphasis> p4 <emphasis role="comment">; pitch shifting</emphasis>
+asig lorisplay 1, kfrq, 1, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="comment">; Play the partials in clarinet.sdif from 0 to 3 sec with 1 ms fadetime</emphasis>
<emphasis role="comment">; adding tuning and vibrato, increasing the "breathiness" (noisiness) and overall</emphasis>
<emphasis role="comment">; amplitude, and adding a highpass filter.</emphasis>
<emphasis role="oblock">instr</emphasis> 2
+
ktime <emphasis role="opc">linseg</emphasis> 0, p3, 3.0 <emphasis role="comment">; linear time function from 0 to 3 seconds</emphasis>
- <emphasis role="comment">; compute frequency scale for tuning</emphasis>
+ <emphasis role="comment">; compute frequency scale for tuning</emphasis>
-ifscale <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)<emphasis role="op">/</emphasis><emphasis role="opc">cpspch</emphasis>(8.08) <emphasis role="comment">; (original pitch was G#4)</emphasis>
- <emphasis role="comment">; make a vibrato envelope</emphasis>
+ifscale <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)<emphasis role="op">/</emphasis><emphasis role="opc">cpspch</emphasis>(8.08) <emphasis role="comment">; (original pitch was G#4)</emphasis>
+ <emphasis role="comment">; make a vibrato envelope</emphasis>
kvenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">/</emphasis>6, 0, p3<emphasis role="op">/</emphasis>6, .02, p3<emphasis role="op">/</emphasis>3, .02, p3<emphasis role="op">/</emphasis>6, 0, p3<emphasis role="op">/</emphasis>6, 0
-kvib <emphasis role="opc">oscil</emphasis> kvenv, 4, 1 <emphasis role="comment">; table 1, sinusoid</emphasis>
-kbwenv <emphasis role="opc">linseg</emphasis> 1, p3<emphasis role="op">/</emphasis>6, 1, p3<emphasis role="op">/</emphasis>6, 100, 2<emphasis role="op">*</emphasis>p3<emphasis role="op">/</emphasis>3, 100 <emphasis role="comment">;lots of noise</emphasis>
- lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
-a1 lorisplay 1, ifscale<emphasis role="op">+</emphasis>kvib, 2, kbwenv
-a2 <emphasis role="opc">atone</emphasis> a1, 1000 <emphasis role="comment">; highpass filter, cutoff 1000 Hz</emphasis>
- <emphasis role="opc">outs</emphasis> a2, a2
+kvib <emphasis role="opc">oscil</emphasis> kvenv, 4, 1 <emphasis role="comment">; table 1, sinusoid</emphasis>
+kbwenv <emphasis role="opc">linseg</emphasis> 1, p3<emphasis role="op">/</emphasis>6, 1, p3<emphasis role="op">/</emphasis>6, 100, 2<emphasis role="op">*</emphasis>p3<emphasis role="op">/</emphasis>3, 100 <emphasis role="comment">;lots of noise</emphasis>
+ lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
+a1 lorisplay 1, ifscale<emphasis role="op">+</emphasis>kvib, 2, kbwenv
+asig <emphasis role="opc">atone</emphasis> a1, 1000 <emphasis role="comment">; highpass filter, cutoff 1000 Hz</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; make sinusoid in table 1</emphasis>
+<emphasis role="comment">; a sinusoid </emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
-<emphasis role="comment">; play instr 1</emphasis>
-<emphasis role="comment">; strt dur</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="stamnt">i</emphasis> 1 + 1
-<emphasis role="stamnt">i</emphasis> 1 + 6
+
+<emphasis role="stamnt">i</emphasis> 1 0 3 1.2 <emphasis role="comment">; shifted up</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 1 1.5
+<emphasis role="stamnt">i</emphasis> 1 + 6 .5 <emphasis role="comment">; shifted down</emphasis>
<emphasis role="stamnt">s</emphasis>
-<emphasis role="comment">; play instr 2</emphasis>
+
<emphasis role="comment">; strt dur ptch</emphasis>
<emphasis role="stamnt">i</emphasis> 2 1 3 8.08
<emphasis role="stamnt">i</emphasis> 2 3.5 1 8.04
diff --git a/examples-xml/lorisread.csd.xml b/examples-xml/lorisread.csd.xml
index 296da1a..c8cfce9 100644
--- a/examples-xml/lorisread.csd.xml
+++ b/examples-xml/lorisread.csd.xml
@@ -2,25 +2,27 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lorisread.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 128
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="comment">; Play the partials in clarinet.sdif from 0 to 3 sec with 1 ms fadetime</emphasis>
<emphasis role="comment">; and no frequency , amplitude, or bandwidth modification.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-ktime <emphasis role="opc">linseg</emphasis> 0, p3, 3.0 <emphasis role="comment">; linear time function from 0 to 3 seconds</emphasis>
- lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
-asig lorisplay 1, 1, 1, 1
- <emphasis role="opc">outs</emphasis> asig, asig
+
+ktime <emphasis role="opc">linseg</emphasis> 0, p3, 3 <emphasis role="comment">; linear time function from 0 to 3 seconds</emphasis>
+ lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
+asig lorisplay 1, 1, 1, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
@@ -29,38 +31,36 @@ asig lorisplay 1, 1, 1, 1
<emphasis role="comment">; amplitude, and adding a highpass filter.</emphasis>
<emphasis role="oblock">instr</emphasis> 2
-ktime <emphasis role="opc">linseg</emphasis> 0, p3, 3.0 <emphasis role="comment">; linear time function from 0 to 3 seconds</emphasis>
- <emphasis role="comment">; compute frequency scale for tuning</emphasis>
-
-ifscale <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)<emphasis role="op">/</emphasis><emphasis role="opc">cpspch</emphasis>(8.08) <emphasis role="comment">; (original pitch was G#4)</emphasis>
- <emphasis role="comment">; make a vibrato envelope</emphasis>
-kvenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">/</emphasis>6, 0, p3<emphasis role="op">/</emphasis>6, .02, p3<emphasis role="op">/</emphasis>3, .02, p3<emphasis role="op">/</emphasis>6, 0, p3<emphasis role="op">/</emphasis>6, 0
-kvib <emphasis role="opc">oscil</emphasis> kvenv, 4, 1 <emphasis role="comment">; table 1, sinusoid</emphasis>
-kbwenv <emphasis role="opc">linseg</emphasis> 1, p3<emphasis role="op">/</emphasis>6, 1, p3<emphasis role="op">/</emphasis>6, 2, 2<emphasis role="op">*</emphasis>p3<emphasis role="op">/</emphasis>3, 2 <emphasis role="comment">;lots of noise</emphasis>
- lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
-a1 lorisplay 1, ifscale<emphasis role="op">+</emphasis>kvib, 2, kbwenv
-a2 <emphasis role="opc">atone</emphasis> a1, 1000 <emphasis role="comment">; highpass filter, cutoff 1000 Hz</emphasis>
- <emphasis role="opc">outs</emphasis> a2, a2
+
+ktime <emphasis role="opc">linseg</emphasis> 0, p3, 3 <emphasis role="comment">; linear time function from 0 to 3 seconds</emphasis>
+ <emphasis role="comment">; compute frequency scale for tuning </emphasis>
+ifscale <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)<emphasis role="op">/</emphasis><emphasis role="opc">cpspch</emphasis>(8.08) <emphasis role="comment">; (original pitch was G#4)</emphasis>
+ <emphasis role="comment">; make a vibrato envelope</emphasis>
+kvenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">/</emphasis>6, 0, p3<emphasis role="op">/</emphasis>6, .02, p3<emphasis role="op">/</emphasis>3, .02, p3<emphasis role="op">/</emphasis>6, 0, p3<emphasis role="op">/</emphasis>6, 0
+kvib <emphasis role="opc">oscil</emphasis> kvenv, 4, 1 <emphasis role="comment">; table 1, sinusoid</emphasis>
+kbwenv <emphasis role="opc">linseg</emphasis> 1, p3<emphasis role="op">/</emphasis>6, 1, p3<emphasis role="op">/</emphasis>6, 2, 2<emphasis role="op">*</emphasis>p3<emphasis role="op">/</emphasis>3, 2 <emphasis role="comment">;lots of noise</emphasis>
+ lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
+a1 lorisplay 1, ifscale<emphasis role="op">+</emphasis>kvib, 2, kbwenv
+asig <emphasis role="opc">atone</emphasis> a1, 1000 <emphasis role="comment">; highpass filter, cutoff 1000 Hz</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; make sinusoid in table 1</emphasis>
+<emphasis role="comment">; a sinus</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
-<emphasis role="comment">; play instr 1</emphasis>
-<emphasis role="comment">; strt dur</emphasis>
+
<emphasis role="stamnt">i</emphasis> 1 0 3
<emphasis role="stamnt">i</emphasis> 1 + 1
<emphasis role="stamnt">i</emphasis> 1 + 6
<emphasis role="stamnt">s</emphasis>
-<emphasis role="comment">; play instr 2</emphasis>
-<emphasis role="comment">; strt dur ptch</emphasis>
+
+<emphasis role="comment">; pitch</emphasis>
<emphasis role="stamnt">i</emphasis> 2 1 3 8.08
<emphasis role="stamnt">i</emphasis> 2 3.5 1 8.04
<emphasis role="stamnt">i</emphasis> 2 4 6 8.00
<emphasis role="stamnt">i</emphasis> 2 4 6 8.07
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/loscil.csd.xml b/examples-xml/loscil.csd.xml
index 3d11add..d0abeb0 100644
--- a/examples-xml/loscil.csd.xml
+++ b/examples-xml/loscil.csd.xml
@@ -2,47 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o loscil.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- <emphasis role="comment">; If you don't know the frequency of your audio file,</emphasis>
- <emphasis role="comment">; set both the kcps and ibas parameters equal to 1.</emphasis>
- kcps <emphasis role="op">=</emphasis> 1
- ifn <emphasis role="op">=</emphasis> 1
- ibas <emphasis role="op">=</emphasis> 1
-
- a1 <emphasis role="opc">loscil</emphasis> kamp, kcps, ifn, ibas
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+ichnls <emphasis role="op">=</emphasis> <emphasis role="opc">ftchnls</emphasis>(p4)
+<emphasis role="opc">print</emphasis> ichnls
+
+<emphasis role="octrl">if</emphasis> (ichnls <emphasis role="op">==</emphasis> 1) then
+ asigL <emphasis role="opc">loscil</emphasis> .8, 1, p4, 1
+ asigR <emphasis role="op">=</emphasis> asigL
+<emphasis role="octrl">elseif</emphasis> (ichnls <emphasis role="op">==</emphasis> 2) then
+ asigL, asigR <emphasis role="opc">loscil</emphasis> .8, 1, p4, 1
+<emphasis role="comment">;safety precaution if not mono or stereo</emphasis>
+<emphasis role="octrl">else</emphasis>
+ asigL <emphasis role="op">=</emphasis> 0
+ asigR <emphasis role="op">=</emphasis> 0
+<emphasis role="octrl">endif</emphasis>
+ <emphasis role="opc">outs</emphasis> asigL, asigR
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "mary.wav" 0 0 0
+<emphasis role="stamnt">f</emphasis> 2 0 0 1 "kickroll.wav" 0 0 0
-<emphasis role="comment">; Table #1: an audio file.</emphasis>
-<emphasis role="comment">; Its table size is deferred,</emphasis>
-<emphasis role="comment">; and format taken from the soundfile header.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 0 1 "beats.wav" 0 0 0
-
-<emphasis role="comment">; Play Instrument #1 for 6 seconds.</emphasis>
-<emphasis role="comment">; This will loop the audio file several times.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 6
+<emphasis role="stamnt">i</emphasis> 1 0 3 1 <emphasis role="comment">;mono file</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 2 <emphasis role="comment">;stereo file</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/loscil3.csd.xml b/examples-xml/loscil3.csd.xml
index 17115b5..e4e9a45 100644
--- a/examples-xml/loscil3.csd.xml
+++ b/examples-xml/loscil3.csd.xml
@@ -2,47 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o loscil3.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- <emphasis role="comment">; If you don't know the frequency of your audio file,</emphasis>
- <emphasis role="comment">; set both the kcps and ibas parameters equal to 1.</emphasis>
- kcps <emphasis role="op">=</emphasis> 1
- ifn <emphasis role="op">=</emphasis> 1
- ibas <emphasis role="op">=</emphasis> 1
-
- a1 <emphasis role="opc">loscil3</emphasis> kamp, kcps, ifn, ibas
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+ichnls <emphasis role="op">=</emphasis> <emphasis role="opc">ftchnls</emphasis>(p4)
+<emphasis role="opc">print</emphasis> ichnls
+
+<emphasis role="octrl">if</emphasis> (ichnls <emphasis role="op">==</emphasis> 1) then
+ asigL <emphasis role="opc">loscil3</emphasis> .8, 1, p4, 1
+ asigR <emphasis role="op">=</emphasis> asigL
+<emphasis role="octrl">elseif</emphasis> (ichnls <emphasis role="op">==</emphasis> 2) then
+ asigL, asigR <emphasis role="opc">loscil3</emphasis> .8, 1, p4, 1
+<emphasis role="comment">;safety precaution if not mono or stereo</emphasis>
+<emphasis role="octrl">else</emphasis>
+ asigL <emphasis role="op">=</emphasis> 0
+ asigR <emphasis role="op">=</emphasis> 0
+<emphasis role="octrl">endif</emphasis>
+ <emphasis role="opc">outs</emphasis> asigL, asigR
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "mary.wav" 0 0 0
+<emphasis role="stamnt">f</emphasis> 2 0 0 1 "kickroll.wav" 0 0 0
-<emphasis role="comment">; Table #1: an audio file.</emphasis>
-<emphasis role="comment">; Its table size is deferred,</emphasis>
-<emphasis role="comment">; and format taken from the soundfile header.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 0 1 "beats.wav" 0 0 0
-
-<emphasis role="comment">; Play Instrument #1 for 6 seconds.</emphasis>
-<emphasis role="comment">; This will loop the drum pattern several times.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 6
+<emphasis role="stamnt">i</emphasis> 1 0 3 1 <emphasis role="comment">;mono file</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 2 <emphasis role="comment">;stereo file</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lowres.csd.xml b/examples-xml/lowres.csd.xml
index 87a7489..64f7473 100644
--- a/examples-xml/lowres.csd.xml
+++ b/examples-xml/lowres.csd.xml
@@ -2,46 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lowres.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use a nice sawtooth waveform.</emphasis>
- asig <emphasis role="opc">vco</emphasis> 5000, 440, 1
- <emphasis role="comment">; Vary the cutoff frequency from 30 to 300 Hz.</emphasis>
- kcutoff <emphasis role="opc">line</emphasis> 30, p3, 300
- kresonance <emphasis role="op">=</emphasis> 10
+kres <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">vco</emphasis> .2, 220, 1 <emphasis role="comment">;sawtooth</emphasis>
- <emphasis role="comment">; Apply the filter.</emphasis>
- a1 <emphasis role="opc">lowres</emphasis> asig, kcutoff, kresonance
+kcut <emphasis role="opc">line</emphasis> 1000, p3, 10 <emphasis role="comment">;note: kcut is not in Hz</emphasis>
+as <emphasis role="opc">lowres</emphasis> asig, kcut, kres <emphasis role="comment">;note: kres is not in dB</emphasis>
+aout <emphasis role="opc">balance</emphasis> as, asig <emphasis role="comment">;avoid very loud sounds</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave for the vco opcode.</emphasis>
+<emphasis role="comment">; a sine</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 4 3
+<emphasis role="stamnt">i</emphasis> 1 + 4 30
+<emphasis role="stamnt">i</emphasis> 1 + 4 60
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lowresx.csd.xml b/examples-xml/lowresx.csd.xml
index 5895726..cbb0e26 100644
--- a/examples-xml/lowresx.csd.xml
+++ b/examples-xml/lowresx.csd.xml
@@ -2,49 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lowresx.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - play the sawtooth waveform through a </emphasis>
-<emphasis role="comment">; stack of filters.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use a nice sawtooth waveform.</emphasis>
- asig <emphasis role="opc">vco</emphasis> 5, 440, 1
- <emphasis role="comment">; Vary the cutoff frequency from 30 to 300 Hz.</emphasis>
- kcutoff <emphasis role="opc">line</emphasis> 30, p3, 600
- kresonance <emphasis role="op">=</emphasis> 3
- inumlayer <emphasis role="op">=</emphasis> 5
+kres <emphasis role="op">=</emphasis> p4
+inumlayer <emphasis role="op">=</emphasis> 4
- alr <emphasis role="opc">lowresx</emphasis> asig, kcutoff, kresonance, inumlayer
+kenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.1, 1, p3<emphasis role="op">*</emphasis>.8, 1, p3<emphasis role="op">*</emphasis>.1, 0 <emphasis role="comment">;envelope</emphasis>
+asig <emphasis role="opc">vco</emphasis> .3 <emphasis role="op">*</emphasis> kenv, 220, 1 <emphasis role="comment">;sawtooth</emphasis>
+kcut <emphasis role="opc">line</emphasis> 30, p3, 1000 <emphasis role="comment">;note: kcut is not in Hz</emphasis>
+alx <emphasis role="opc">lowresx</emphasis> asig, kcut, kres, inumlayer <emphasis role="comment">;note: kres is not in dB</emphasis>
+aout <emphasis role="opc">balance</emphasis> alx, asig <emphasis role="comment">;avoid very loud sounds</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="comment">; It gets loud, so clip the output amplitude to 30,000.</emphasis>
- a1 <emphasis role="opc">clip</emphasis> alr, 1, 30000
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave for the vco opcode.</emphasis>
+<emphasis role="comment">;sine wave</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 4
+<emphasis role="stamnt">i</emphasis> 1 0 5 1
+<emphasis role="stamnt">i</emphasis> 1 + 5 3
+<emphasis role="stamnt">i</emphasis> 1 + 5 20
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lpfreson.csd.xml b/examples-xml/lpfreson.csd.xml
index 95a10da..53a9e03 100644
--- a/examples-xml/lpfreson.csd.xml
+++ b/examples-xml/lpfreson.csd.xml
@@ -2,44 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lpfreson.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">;do not use -a option when analyzing "fox.wav" with lpfreson,</emphasis>
+<emphasis role="comment">;it needs a filter coefficient type of file</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-asig <emphasis role="opc">buzz</emphasis> 20000, 100, 10, 1
-<emphasis role="comment">;do not use -a option when analyzing (= filter coefficient) "fox.wav" from the manual</emphasis>
-<emphasis role="comment">;fox.lpc = 2.8 seconds long</emphasis>
-ktime <emphasis role="opc">line</emphasis> 0, p3, 2.8 <emphasis role="comment">; Define time lin</emphasis>
-krmsr,krmso,kerr,kcps <emphasis role="opc">lpread</emphasis> ktime,"fox_nopoles.lp"
-<emphasis role="comment">;aout lpreson asig</emphasis>
-aout <emphasis role="opc">lpfreson</emphasis> asig, 1.6
-ares <emphasis role="opc">balance</emphasis> aout, asig
- <emphasis role="opc">out</emphasis> ares
-
-<emphasis role="oblock">endin</emphasis>
+ilen <emphasis role="opc">filelen</emphasis> "fox.wav" <emphasis role="comment">; length of soundfile</emphasis>
+<emphasis role="opc">prints</emphasis> "fox.wav <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f seconds\\n",ilen
+ktime <emphasis role="opc">line</emphasis> 0, p3, p4
+krmsr,krmso,kerr,kcps <emphasis role="opc">lpread</emphasis> ktime,"fox_nopoles.lpc"
+krmso <emphasis role="op">=</emphasis> krmso<emphasis role="op">*</emphasis>.00001 <emphasis role="comment">; low volume</emphasis>
+asig <emphasis role="opc">buzz</emphasis> krmso, kcps, <emphasis role="opc">int</emphasis>(<emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>2<emphasis role="op">/</emphasis>kcps), 1 <emphasis role="comment">; max harmonics without aliasing</emphasis>
+aout <emphasis role="opc">lpfreson</emphasis> asig, 1.2
+asig <emphasis role="opc">clip</emphasis> aout, 0, 1 <emphasis role="comment">; prevents distortion</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
+<emphasis role="comment">; sine</emphasis>
<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 2.8
+<emphasis role="stamnt">i</emphasis> 1 0 2.8 1 <emphasis role="comment">; first words only</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 4 2.8 2.8 <emphasis role="comment">; whole sentence</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lposcil.csd.xml b/examples-xml/lposcil.csd.xml
index e35e824..a53c9ae 100644
--- a/examples-xml/lposcil.csd.xml
+++ b/examples-xml/lposcil.csd.xml
@@ -2,36 +2,30 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lposcil.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kcps <emphasis role="op">=</emphasis> 1.5
- ifn <emphasis role="op">=</emphasis> 1
- kloop <emphasis role="op">=</emphasis> 0
- kend <emphasis role="op">=</emphasis> 45000
- a1 <emphasis role="opc">lposcil</emphasis> kamp, kcps, kloop, kend, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kcps <emphasis role="op">=</emphasis> 1.5 <emphasis role="comment">; a fifth up</emphasis>
+kloop <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; loop start time in samples</emphasis>
+kend <emphasis role="op">=</emphasis> 45000 <emphasis role="comment">; loop end time in samples</emphasis>
+asig <emphasis role="opc">lposcil</emphasis> 1, kcps, kloop, kend, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1: an audio file.</emphasis>
<emphasis role="comment">; Its table size is deferred,</emphasis>
<emphasis role="comment">; and format taken from the soundfile header.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 0 1 "beats.wav" 0 0 0
@@ -39,9 +33,8 @@
<emphasis role="comment">; Play Instrument #1 for 6 seconds.</emphasis>
<emphasis role="comment">; This will loop the drum pattern several times.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 6
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lposcil3.csd.xml b/examples-xml/lposcil3.csd.xml
index 43b9918..c0c7319 100644
--- a/examples-xml/lposcil3.csd.xml
+++ b/examples-xml/lposcil3.csd.xml
@@ -2,46 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lposcil3.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kcps <emphasis role="op">=</emphasis> 1
- ifn <emphasis role="op">=</emphasis> 1
- kloop <emphasis role="op">=</emphasis> 0
- kend <emphasis role="opc">line</emphasis> 35000, p3, 10000
+kcps <emphasis role="op">=</emphasis> 1.5 <emphasis role="comment">; a fifth up</emphasis>
+kloop <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; loop start time (in samples)</emphasis>
+kend <emphasis role="opc">line</emphasis> 45000, p3, 10000 <emphasis role="comment">; vary loop end time (in samples)</emphasis>
- a1 <emphasis role="opc">lposcil3</emphasis> kamp, kcps, kloop, kend, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
-
+asig <emphasis role="opc">lposcil3</emphasis> 1, kcps, kloop, kend, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1: an audio file.</emphasis>
<emphasis role="comment">; Its table size is deferred,</emphasis>
<emphasis role="comment">; and format taken from the soundfile header.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 0 1 "beats.wav" 0 0 0
<emphasis role="comment">; Play Instrument #1 for 6 seconds.</emphasis>
+<emphasis role="comment">; This will loop the drum pattern several times.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 6
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lposcila.csd.xml b/examples-xml/lposcila.csd.xml
index 1790eb9..f688bf8 100644
--- a/examples-xml/lposcila.csd.xml
+++ b/examples-xml/lposcila.csd.xml
@@ -2,47 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lposcila.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- aamp <emphasis role="op">=</emphasis> 30000
- kcps <emphasis role="op">=</emphasis> 1.5
- ifn <emphasis role="op">=</emphasis> 1
- kloop <emphasis role="op">=</emphasis> 0
- kend <emphasis role="opc">line</emphasis> 25000, p3, 0
+kcps <emphasis role="op">=</emphasis> 1.3 <emphasis role="comment">;a 3d up</emphasis>
+kloop <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;loop start time in samples</emphasis>
+kend <emphasis role="op">=</emphasis> 10000 <emphasis role="comment">;loop end time in samples</emphasis>
- a1 <emphasis role="opc">lposcila</emphasis> aamp, kcps, kloop, kend, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
-
+aenv <emphasis role="opc">expsega</emphasis> 0.01, 0.1, 1, 0.1, 0.5, 0.5, 0.01 <emphasis role="comment">;envelope with fast and short segment</emphasis>
+asig <emphasis role="opc">lposcila</emphasis> aenv, kcps, kloop, kend, 1 <emphasis role="comment">;use it for amplitude</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1: an audio file.</emphasis>
<emphasis role="comment">; Its table size is deferred,</emphasis>
<emphasis role="comment">; and format taken from the soundfile header.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 0 1 "beats.wav" 0 0 0
<emphasis role="comment">; Play Instrument #1 for 6 seconds.</emphasis>
+<emphasis role="comment">; This will loop the drum pattern several times.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="stamnt">i</emphasis> 1 0 6
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lposcilsa.csd.xml b/examples-xml/lposcilsa.csd.xml
new file mode 100644
index 0000000..87a5a44
--- /dev/null
+++ b/examples-xml/lposcilsa.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o lposcilsa.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="op">=</emphasis> 1.3 <emphasis role="comment">;a 3th up</emphasis>
+kloop <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;loop start time in samples</emphasis>
+kend <emphasis role="op">=</emphasis> 45000 <emphasis role="comment">;loop end time in samples</emphasis>
+
+aenv <emphasis role="opc">expsega</emphasis> 0.01, 0.1, 1, 0.1, 0.5, 0.5, 0.01 <emphasis role="comment">;envelope with fast and short segment</emphasis>
+aL, aR <emphasis role="opc">lposcilsa</emphasis> aenv, kcps, kloop, kend, 1 <emphasis role="comment">;use it for amplitude</emphasis>
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; table size of stereo file is deferred,</emphasis>
+<emphasis role="comment">; and format taken from the soundfile header.</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "kickroll.wav" 0 0 0
+
+<emphasis role="comment">; Play Instrument #1 for 6 seconds.</emphasis>
+<emphasis role="comment">; This will loop the drum pattern several times.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/lposcilsa2.csd.xml b/examples-xml/lposcilsa2.csd.xml
new file mode 100644
index 0000000..2aa17f2
--- /dev/null
+++ b/examples-xml/lposcilsa2.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o lposcilsa2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="op">=</emphasis> 2 <emphasis role="comment">;only integers are allowed</emphasis>
+kloop <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;loop start time in samples</emphasis>
+kend <emphasis role="op">=</emphasis> 45000 <emphasis role="comment">;loop end time in samples</emphasis>
+
+aenv <emphasis role="opc">expsega</emphasis> 0.01, 0.1, 1, 0.1, 0.5, 0.5, 0.01 <emphasis role="comment">;envelope with fast and short segment</emphasis>
+aL, aR <emphasis role="opc">lposcilsa2</emphasis> aenv, kcps, kloop, kend, 1 <emphasis role="comment">;use it for amplitude</emphasis>
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; Its table size is deferred,</emphasis>
+<emphasis role="comment">; and format taken from the soundfile header.</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "kickroll.wav" 0 0 0
+
+<emphasis role="comment">; Play Instrument #1 for 6 seconds.</emphasis>
+<emphasis role="comment">; This will loop the drum pattern several times.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/lpread.csd.xml b/examples-xml/lpread.csd.xml
index 150f30a..b580568 100644
--- a/examples-xml/lpread.csd.xml
+++ b/examples-xml/lpread.csd.xml
@@ -2,43 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lpread.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">;can use -a option when analyzing (= filter coefficient) or without -a option "fox.wav" from the manual</emphasis>
-<emphasis role="comment">;fox.lpc = 2.8 seconds long</emphasis>
-ktime <emphasis role="opc">line</emphasis> 0, p3, 2.8 <emphasis role="comment">; Define time lin</emphasis>
-krmsr,krmso,kerr,kcps <emphasis role="opc">lpread</emphasis> ktime,"foxpoles.lp"
-aout <emphasis role="opc">buzz</emphasis> krmso, kcps, 15, 1
-asig <emphasis role="opc">rand</emphasis> krmsr
-
- <emphasis role="opc">out</emphasis> aout<emphasis role="op">*</emphasis>2<emphasis role="op">+</emphasis>asig
-
+<emphasis role="comment">; works with or without -a option when analyzing "fox.wav" from the manual</emphasis>
+ilen <emphasis role="opc">filelen</emphasis> "fox.wav" <emphasis role="comment">; length of soundfile</emphasis>
+<emphasis role="opc">prints</emphasis> "fox.wav <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f seconds\\n",ilen
+
+ktime <emphasis role="opc">line</emphasis> 0, p3, p4
+krmsr,krmso,kerr,kcps <emphasis role="opc">lpread</emphasis> ktime,"fox_poles.lpc"
+krmso <emphasis role="op">=</emphasis> krmso<emphasis role="op">*</emphasis>.00007 <emphasis role="comment">; low volume</emphasis>
+aout <emphasis role="opc">buzz</emphasis> krmso, kcps, 15, 1
+krmsr <emphasis role="op">=</emphasis> krmsr<emphasis role="op">*</emphasis>.0001 <emphasis role="comment">; low volume</emphasis>
+asig <emphasis role="opc">rand</emphasis> krmsr
+ <emphasis role="opc">outs</emphasis> (aout<emphasis role="op">*</emphasis>2)<emphasis role="op">+</emphasis>asig, (aout<emphasis role="op">*</emphasis>2)<emphasis role="op">+</emphasis>asig <emphasis role="comment">; mix buzz and rand</emphasis>
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
+<emphasis role="comment">; sine</emphasis>
<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 2.8
+<emphasis role="stamnt">i</emphasis> 1 0 2.8 1 <emphasis role="comment">; first words only</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 4 2.8 2.8 <emphasis role="comment">; whole sentence</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lpreson-2.csd.xml b/examples-xml/lpreson-2.csd.xml
new file mode 100644
index 0000000..d8b132c
--- /dev/null
+++ b/examples-xml/lpreson-2.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o lpreson-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">; works with or without -a option when analyzing "fox.wav" from the manual</emphasis>
+<emphasis role="comment">;both options sound a little different</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+
+ilen <emphasis role="opc">filelen</emphasis> "fox.wav" <emphasis role="comment">;length of soundfile 1</emphasis>
+<emphasis role="opc">prints</emphasis> "fox.wav <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f seconds\\n",ilen
+
+ktime <emphasis role="opc">line</emphasis> 0, p3, ilen
+krmsr,krmso,kerr,kcps <emphasis role="opc">lpread</emphasis> ktime,"fox_nopoles.lpc"
+asig <emphasis role="opc">diskin2</emphasis> "flute.aiff", 1
+aout <emphasis role="opc">lpreson</emphasis> asig
+ares <emphasis role="opc">balance</emphasis> aout, asig
+ <emphasis role="opc">outs</emphasis> ares, ares
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2.8
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/lpreson.csd.xml b/examples-xml/lpreson.csd.xml
index fdee2cc..6e3272b 100644
--- a/examples-xml/lpreson.csd.xml
+++ b/examples-xml/lpreson.csd.xml
@@ -2,41 +2,42 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lpreson.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">;can use -a option when analyzing (= filter coefficient) or without -a option "fox.wav" from the manual</emphasis>
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">; works with or without -a option when analyzing "fox.wav" from the manual</emphasis>
<emphasis role="comment">;both options sound a little different</emphasis>
-<emphasis role="comment">;foxnopoles.lp = 2.8 seconds long</emphasis>
-ktime <emphasis role="opc">line</emphasis> 0, p3, 2.8 <emphasis role="comment">; Define time lin</emphasis>
-krmsr,krmso,kerr,kcps <emphasis role="opc">lpread</emphasis> ktime,"foxnopoles.lp"
-asig <emphasis role="opc">diskin2</emphasis> "mary.wav", 1
-aout <emphasis role="opc">lpreson</emphasis> asig
-ares <emphasis role="opc">balance</emphasis> aout, asig
- <emphasis role="opc">out</emphasis> ares
+<emphasis role="oblock">instr</emphasis> 1
+ilen <emphasis role="opc">filelen</emphasis> "fox.wav" <emphasis role="comment">; length of soundfile</emphasis>
+<emphasis role="opc">prints</emphasis> "fox.wav <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f seconds\\n",ilen
-<emphasis role="oblock">endin</emphasis>
+ktime <emphasis role="opc">line</emphasis> 0, p3, p4
+krmsr,krmso,kerr,kcps <emphasis role="opc">lpread</emphasis> ktime,"fox_poles.lpc"
+krmso <emphasis role="op">=</emphasis> krmso<emphasis role="op">*</emphasis>.00001 <emphasis role="comment">; low volume</emphasis>
+asig <emphasis role="opc">buzz</emphasis> krmso, kcps, <emphasis role="opc">int</emphasis>(<emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>2<emphasis role="op">/</emphasis>kcps), 1 <emphasis role="comment">; max harmonics without aliasing</emphasis>
+aout <emphasis role="opc">lpreson</emphasis> asig
+asig <emphasis role="opc">clip</emphasis> aout, 0, 1 <emphasis role="comment">; prevents distortion</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; sine</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 2.8
+<emphasis role="stamnt">i</emphasis> 1 0 2.8 1 <emphasis role="comment">; first words only</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 4 2.8 2.8 <emphasis role="comment">; whole sentence</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lpshold.csd.xml b/examples-xml/lpshold.csd.xml
index ba21927..53ec523 100644
--- a/examples-xml/lpshold.csd.xml
+++ b/examples-xml/lpshold.csd.xml
@@ -2,41 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o lpshold.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kfreq <emphasis role="opc">line</emphasis> 1, p3, 20
-
- klp <emphasis role="opc">lpshold</emphasis> kfreq, 0, 0, 0, p3<emphasis role="op">*</emphasis>0.25, 20000, p3<emphasis role="op">*</emphasis>0.75, 0
-
- a1 <emphasis role="opc">oscil</emphasis> klp, 440, 1
- <emphasis role="opc">out</emphasis> a1
+kfrq <emphasis role="opc">init</emphasis> p4 <emphasis role="comment">; frequency of the loop </emphasis>
+ifrac <emphasis role="op">=</emphasis> p5 <emphasis role="comment">; fraction of frequency at which to force retrigger</emphasis>
+ipan <emphasis role="op">=</emphasis> p6 <emphasis role="comment">; pan position</emphasis>
+ktrig <emphasis role="opc">metro</emphasis> kfrq <emphasis role="op">*</emphasis> ifrac <emphasis role="comment">; trigger to force restart the loop</emphasis>
+iphs <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; initial phase of the loop</emphasis>
+<emphasis role="comment">; a loop of midi note numbers: note duration etc...</emphasis>
+knote <emphasis role="opc">lpshold</emphasis> kfrq, ktrig, iphs, 61, 0.0625, 60, 0.9375, 61, 1, 58, 1, \
+63, 2, 65, 3
+aenv <emphasis role="opc">linseg</emphasis> 0,0.01,1,p3<emphasis role="op">-</emphasis>0.11,1,0.1,0 <emphasis role="comment">; amplitude envelope</emphasis>
+krnd <emphasis role="opc">rspline</emphasis> <emphasis role="op">-</emphasis>0.05,0.05,0.5,1 <emphasis role="comment">; random detune</emphasis>
+asig <emphasis role="opc">gbuzz</emphasis> 0.2<emphasis role="op">*</emphasis>aenv, <emphasis role="opc">cpsmidinn</emphasis>(knote<emphasis role="op">+</emphasis>krnd), 30, 1, 0.5, 1
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>ipan, asig<emphasis role="op">*</emphasis>(1<emphasis role="op">-</emphasis>ipan)
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for five seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="comment">; cosine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 11 1
+
+<emphasis role="comment">; 3 layers of the loop are played, each at a different speed, </emphasis>
+<emphasis role="comment">; - with different retriggering rate, and pan location.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 60 0.5 [8/10] 0.5
+<emphasis role="stamnt">i</emphasis> 1 0 60 0.375 [8/11] 0.1
+<emphasis role="stamnt">i</emphasis> 1 0 60 0.25 [8/13] 0.9
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/lpsholdp.csd.xml b/examples-xml/lpsholdp.csd.xml
new file mode 100644
index 0000000..43053c0
--- /dev/null
+++ b/examples-xml/lpsholdp.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o lpsholdp.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+ipan <emphasis role="op">=</emphasis> p4
+ktrig <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; (no retriggering)</emphasis>
+<emphasis role="comment">; kphase - looping pointer - is generated using a random spline</emphasis>
+kphase <emphasis role="opc">rspline</emphasis> 0,1,0.5,5
+<emphasis role="comment">; a loop sequence of midi note numbers and durations</emphasis>
+<emphasis role="comment">; val dur val dur etc...</emphasis>
+knote <emphasis role="opc">lpsholdp</emphasis> kphase, 60, 1, 59, 0.1, 62, 1, 64, 1, 67, 0.1, 65, 1
+asig <emphasis role="opc">gbuzz</emphasis> 0.2, <emphasis role="opc">cpsmidinn</emphasis>(knote), 30, 1, 0.5, 1
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>ipan, asig<emphasis role="op">*</emphasis>(1<emphasis role="op">-</emphasis>ipan)
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; cosine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 11 1
+
+<emphasis role="comment">; 2 layers of the loop are played each with a different pan position (p4)</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 60 0.25
+<emphasis role="stamnt">i</emphasis> 1 0 60 0.75
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/luamoog.csd.xml b/examples-xml/luamoog.csd.xml
new file mode 100644
index 0000000..9e6bed7
--- /dev/null
+++ b/examples-xml/luamoog.csd.xml
@@ -0,0 +1,264 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 48000
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+
+ gibegan <emphasis role="opc">rtclock</emphasis>
+
+ <emphasis role="opc">lua_opdef</emphasis> "moogladder", {{
+local ffi <emphasis role="op">=</emphasis> require("ffi")
+local math <emphasis role="op">=</emphasis> require("math")
+local string <emphasis role="op">=</emphasis> require("string")
+local csoundApi <emphasis role="op">=</emphasis> ffi.load('csound64.dll.5.2')
+ffi.cdef[[
+ <emphasis role="opc">int</emphasis> csoundGetKsmps(void <emphasis role="op">*</emphasis>)<emphasis role="comment">;</emphasis>
+ double csoundGetSr(void <emphasis role="op">*</emphasis>)<emphasis role="comment">;</emphasis>
+ struct moogladder_t {
+ double <emphasis role="op">*</emphasis><emphasis role="opc">out</emphasis><emphasis role="comment">;</emphasis>
+ double <emphasis role="op">*</emphasis>inp<emphasis role="comment">;</emphasis>
+ double <emphasis role="op">*</emphasis>freq<emphasis role="comment">;</emphasis>
+ double <emphasis role="op">*</emphasis>res<emphasis role="comment">;</emphasis>
+ double <emphasis role="op">*</emphasis>istor<emphasis role="comment">;</emphasis>
+ double <emphasis role="ohdr">sr</emphasis><emphasis role="comment">;</emphasis>
+ double <emphasis role="ohdr">ksmps</emphasis><emphasis role="comment">;</emphasis>
+ double thermal<emphasis role="comment">;</emphasis>
+ double f<emphasis role="comment">;</emphasis>
+ double fc<emphasis role="comment">;</emphasis>
+ double fc2<emphasis role="comment">;</emphasis>
+ double fc3<emphasis role="comment">;</emphasis>
+ double fcr<emphasis role="comment">;</emphasis>
+ double acr<emphasis role="comment">;</emphasis>
+ double tune<emphasis role="comment">;</emphasis>
+ double res4<emphasis role="comment">;</emphasis>
+ double input<emphasis role="comment">;</emphasis>
+ double <emphasis role="opc">i</emphasis><emphasis role="comment">;</emphasis>
+ double j<emphasis role="comment">;</emphasis>
+ double <emphasis role="opc">k</emphasis><emphasis role="comment">;</emphasis>
+ double kk<emphasis role="comment">;</emphasis>
+ double stg[6]<emphasis role="comment">;</emphasis>
+ double delay[6]<emphasis role="comment">;</emphasis>
+ double tanhstg[6]<emphasis role="comment">;</emphasis>
+ }<emphasis role="comment">;</emphasis>
+]]
+
+local moogladder_ct <emphasis role="op">=</emphasis> ffi.typeof('struct moogladder_t <emphasis role="op">*</emphasis>')
+
+function moogladder_init(csound, opcode, carguments)
+ local <emphasis role="opc">p</emphasis> <emphasis role="op">=</emphasis> ffi.cast(moogladder_ct, carguments)
+ p.sr <emphasis role="op">=</emphasis> csoundApi.csoundGetSr(csound)
+ p.ksmps <emphasis role="op">=</emphasis> csoundApi.csoundGetKsmps(csound)
+ <emphasis role="octrl">if</emphasis> p.istor[0] <emphasis role="op">==</emphasis> 0 then
+ for <emphasis role="opc">i</emphasis> <emphasis role="op">=</emphasis> 0, 5 do
+ p.delay[i] <emphasis role="op">=</emphasis> 0.0
+ end
+ for <emphasis role="opc">i</emphasis> <emphasis role="op">=</emphasis> 0, 3 do
+ p.tanhstg[i] <emphasis role="op">=</emphasis> 0.0
+ end
+ end
+ <emphasis role="opc">return</emphasis> 0
+end
+
+function moogladder_kontrol(csound, opcode, carguments)
+ local <emphasis role="opc">p</emphasis> <emphasis role="op">=</emphasis> ffi.cast(moogladder_ct, carguments)
+ <emphasis role="op">-</emphasis><emphasis role="op">-</emphasis> transistor thermal voltage
+ p.thermal <emphasis role="op">=</emphasis> 1.0 <emphasis role="op">/</emphasis> 40000.0
+ <emphasis role="octrl">if</emphasis> p.res[0] <emphasis role="op">&lt;</emphasis> 0.0 then
+ p.res[0] <emphasis role="op">=</emphasis> 0.0
+ end
+ <emphasis role="op">-</emphasis><emphasis role="op">-</emphasis> <emphasis role="ohdr">sr</emphasis> is half the actual filter sampling rate
+ p.fc <emphasis role="op">=</emphasis> p.freq[0] <emphasis role="op">/</emphasis> p.sr
+ p.f <emphasis role="op">=</emphasis> p.fc <emphasis role="op">/</emphasis> 2.0
+ p.fc2 <emphasis role="op">=</emphasis> p.fc <emphasis role="op">*</emphasis> p.fc
+ p.fc3 <emphasis role="op">=</emphasis> p.fc2 <emphasis role="op">*</emphasis> p.fc
+ <emphasis role="op">-</emphasis><emphasis role="op">-</emphasis> frequency <emphasis role="op">&amp;</emphasis> amplitude correction
+ p.fcr <emphasis role="op">=</emphasis> 1.873 <emphasis role="op">*</emphasis> p.fc3 <emphasis role="op">+</emphasis> 0.4955 <emphasis role="op">*</emphasis> p.fc2 <emphasis role="op">-</emphasis> 0.6490 <emphasis role="op">*</emphasis> p.fc <emphasis role="op">+</emphasis> 0.9988
+ p.acr <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>3.9364 <emphasis role="op">*</emphasis> p.fc2 <emphasis role="op">+</emphasis> 1.8409 <emphasis role="op">*</emphasis> p.fc <emphasis role="op">+</emphasis> 0.9968
+ <emphasis role="op">-</emphasis><emphasis role="op">-</emphasis> filter tuning
+ p.tune <emphasis role="op">=</emphasis> (1.0 <emphasis role="op">-</emphasis> math.exp(<emphasis role="op">-</emphasis>(2.0 <emphasis role="op">*</emphasis> math.pi <emphasis role="op">*</emphasis> p.f <emphasis role="op">*</emphasis> p.fcr))) <emphasis role="op">/</emphasis> p.thermal
+ p.res4 <emphasis role="op">=</emphasis> 4.0 <emphasis role="op">*</emphasis> p.res[0] <emphasis role="op">*</emphasis> p.acr
+ <emphasis role="op">-</emphasis><emphasis role="op">-</emphasis> Nested 'for' loops crash, not sure why.
+ <emphasis role="op">-</emphasis><emphasis role="op">-</emphasis> Local loop variables also are problematic.
+ <emphasis role="op">-</emphasis><emphasis role="op">-</emphasis> Lower<emphasis role="op">-</emphasis>level loop constructs don't crash.
+ p.i <emphasis role="op">=</emphasis> 0
+ while p.i <emphasis role="op">&lt;</emphasis> p.ksmps do
+ p.j <emphasis role="op">=</emphasis> 0
+ while p.j <emphasis role="op">&lt;</emphasis> 2 do
+ p.k <emphasis role="op">=</emphasis> 0
+ while p.k <emphasis role="op">&lt;</emphasis> 4 do
+ <emphasis role="octrl">if</emphasis> p.k <emphasis role="op">==</emphasis> 0 then
+ p.input <emphasis role="op">=</emphasis> p.inp[p.i] <emphasis role="op">-</emphasis> p.res4 <emphasis role="op">*</emphasis> p.delay[5]
+ p.stg[p.k] <emphasis role="op">=</emphasis> p.delay[p.k] <emphasis role="op">+</emphasis> p.tune <emphasis role="op">*</emphasis> (math.tanh(p.input <emphasis role="op">*</emphasis> p.thermal) <emphasis role="op">-</emphasis> p.tanhstg[p.k])
+ <emphasis role="octrl">else</emphasis>
+ p.input <emphasis role="op">=</emphasis> p.stg[p.k <emphasis role="op">-</emphasis> 1]
+ p.tanhstg[p.k <emphasis role="op">-</emphasis> 1] <emphasis role="op">=</emphasis> math.tanh(p.input <emphasis role="op">*</emphasis> p.thermal)
+ <emphasis role="octrl">if</emphasis> p.k <emphasis role="op">&lt;</emphasis> 3 then
+ p.kk <emphasis role="op">=</emphasis> p.tanhstg[p.k]
+ <emphasis role="octrl">else</emphasis>
+ p.kk <emphasis role="op">=</emphasis> math.tanh(p.delay[p.k] <emphasis role="op">*</emphasis> p.thermal)
+ end
+ p.stg[p.k] <emphasis role="op">=</emphasis> p.delay[p.k] <emphasis role="op">+</emphasis> p.tune <emphasis role="op">*</emphasis> (p.tanhstg[p.k <emphasis role="op">-</emphasis> 1] <emphasis role="op">-</emphasis> p.kk)
+ end
+ p.delay[p.k] <emphasis role="op">=</emphasis> p.stg[p.k]
+ p.k <emphasis role="op">=</emphasis> p.k <emphasis role="op">+</emphasis> 1
+ end
+ <emphasis role="op">-</emphasis><emphasis role="op">-</emphasis> 1<emphasis role="op">/</emphasis>2<emphasis role="op">-</emphasis>sample <emphasis role="opc">delay</emphasis> for phase compensation
+ p.delay[5] <emphasis role="op">=</emphasis> (p.stg[3] <emphasis role="op">+</emphasis> p.delay[4]) <emphasis role="op">*</emphasis> 0.5
+ p.delay[4] <emphasis role="op">=</emphasis> p.stg[3]
+ p.j <emphasis role="op">=</emphasis> p.j <emphasis role="op">+</emphasis> 1
+ end
+ p.out[p.i] <emphasis role="op">=</emphasis> p.delay[5]
+ p.i <emphasis role="op">=</emphasis> p.i <emphasis role="op">+</emphasis> 1
+ end
+ <emphasis role="opc">return</emphasis> 0
+end
+}}
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>
+Moogladder <emphasis role="op">-</emphasis> An improved implementation of the Moog ladder filter
+
+DESCRIPTION
+This is an new digital implementation of the Moog ladder filter based on the work of Antti Huovilainen,
+described <emphasis role="opc">in</emphasis> the paper \"Non<emphasis role="op">-</emphasis>Linear Digital Implementation of the Moog Ladder Filter\" (Proceedings of DaFX04, Univ of Napoli).
+This implementation is probably <emphasis role="opc">a</emphasis> more accurate digital representation of the original analogue filter.
+This is version 2 (revised 14<emphasis role="op">/</emphasis>DEC<emphasis role="op">/</emphasis>04), with improved amplitude<emphasis role="op">/</emphasis>resonance scaling and frequency correction using <emphasis role="opc">a</emphasis> couple of polynomials,as suggested by Antti.
+
+SYNTAX
+ar Moogladder asig, kcf, kres
+
+PERFORMANCE
+asig <emphasis role="op">-</emphasis> input signal
+kcf <emphasis role="op">-</emphasis> cutoff frequency (Hz)
+kres <emphasis role="op">-</emphasis> resonance (0 <emphasis role="op">-</emphasis> 1).
+
+CREDITS
+Victor Lazzarini
+<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+
+ <emphasis role="oblock">opcode</emphasis> moogladderu, a, akk
+asig, kcf, kres <emphasis role="opc">xin</emphasis>
+ <emphasis role="opc">setksmps</emphasis> 1
+ipi <emphasis role="op">=</emphasis> 4 <emphasis role="op">*</emphasis> <emphasis role="opc">taninv</emphasis>(1)
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> filter delays <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+az1 <emphasis role="opc">init</emphasis> 0
+az2 <emphasis role="opc">init</emphasis> 0
+az3 <emphasis role="opc">init</emphasis> 0
+az4 <emphasis role="opc">init</emphasis> 0
+az5 <emphasis role="opc">init</emphasis> 0
+ay4 <emphasis role="opc">init</emphasis> 0
+amf <emphasis role="opc">init</emphasis> 0
+ <emphasis role="octrl">if</emphasis> kres <emphasis role="op">></emphasis> 1 then
+kres <emphasis role="op">=</emphasis> 1
+ <emphasis role="octrl">elseif</emphasis> kres <emphasis role="op">&lt;</emphasis> 0 then
+kres <emphasis role="op">=</emphasis> 0
+ <emphasis role="octrl">endif</emphasis>
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> twice the \'thermal voltage of <emphasis role="opc">a</emphasis> transistor\' <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+i2v <emphasis role="op">=</emphasis> 40000
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> <emphasis role="ohdr">sr</emphasis> is half the actual filter sampling rate <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+kfc <emphasis role="op">=</emphasis> kcf<emphasis role="op">/</emphasis><emphasis role="ohdr">sr</emphasis>
+kf <emphasis role="op">=</emphasis> kcf<emphasis role="op">/</emphasis>(<emphasis role="ohdr">sr</emphasis><emphasis role="op">*</emphasis>2)
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> frequency <emphasis role="op">&amp;</emphasis> amplitude correction <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+kfcr <emphasis role="op">=</emphasis> 1.8730 <emphasis role="op">*</emphasis> (kfc^3) <emphasis role="op">+</emphasis> 0.4955 <emphasis role="op">*</emphasis> (kfc^2) <emphasis role="op">-</emphasis> 0.6490 <emphasis role="op">*</emphasis> kfc <emphasis role="op">+</emphasis> 0.9988
+kacr <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>3.9364 <emphasis role="op">*</emphasis> (kfc^2) <emphasis role="op">+</emphasis> 1.8409 <emphasis role="op">*</emphasis> kfc <emphasis role="op">+</emphasis> 0.9968<emphasis role="comment">;</emphasis>
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> filter tuning <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+k2vg <emphasis role="op">=</emphasis> i2v <emphasis role="op">*</emphasis> (1 <emphasis role="op">-</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="op">-</emphasis>2 <emphasis role="op">*</emphasis> ipi <emphasis role="op">*</emphasis> kfcr <emphasis role="op">*</emphasis> kf))
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> cascade of 4 1st order sections <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+ay1 <emphasis role="op">=</emphasis> az1 <emphasis role="op">+</emphasis> k2vg <emphasis role="op">*</emphasis> (<emphasis role="opc">tanh</emphasis>((asig <emphasis role="op">-</emphasis> 4 <emphasis role="op">*</emphasis> kres <emphasis role="op">*</emphasis> amf <emphasis role="op">*</emphasis> kacr) <emphasis role="op">/</emphasis> i2v) <emphasis role="op">-</emphasis> <emphasis role="opc">tanh</emphasis>(az1 <emphasis role="op">/</emphasis> i2v))
+az1 <emphasis role="op">=</emphasis> ay1
+ay2 <emphasis role="op">=</emphasis> az2 <emphasis role="op">+</emphasis> k2vg <emphasis role="op">*</emphasis> (<emphasis role="opc">tanh</emphasis>(ay1 <emphasis role="op">/</emphasis> i2v) <emphasis role="op">-</emphasis> <emphasis role="opc">tanh</emphasis>(az2 <emphasis role="op">/</emphasis> i2v ))
+az2 <emphasis role="op">=</emphasis> ay2
+ay3 <emphasis role="op">=</emphasis> az3 <emphasis role="op">+</emphasis> k2vg <emphasis role="op">*</emphasis> (<emphasis role="opc">tanh</emphasis>(ay2 <emphasis role="op">/</emphasis> i2v) <emphasis role="op">-</emphasis> <emphasis role="opc">tanh</emphasis>(az3 <emphasis role="op">/</emphasis> i2v))
+az3 <emphasis role="op">=</emphasis> ay3
+ay4 <emphasis role="op">=</emphasis> az4 <emphasis role="op">+</emphasis> k2vg <emphasis role="op">*</emphasis> (<emphasis role="opc">tanh</emphasis>(ay3 <emphasis role="op">/</emphasis> i2v) <emphasis role="op">-</emphasis> <emphasis role="opc">tanh</emphasis>(az4 <emphasis role="op">/</emphasis> i2v))
+az4 <emphasis role="op">=</emphasis> ay4
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> 1<emphasis role="op">/</emphasis>2<emphasis role="op">-</emphasis>sample <emphasis role="opc">delay</emphasis> for phase compensation <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+amf <emphasis role="op">=</emphasis> (ay4 <emphasis role="op">+</emphasis> az5) <emphasis role="op">*</emphasis>0.5
+az5 <emphasis role="op">=</emphasis> ay4
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> oversampling <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+ay1 <emphasis role="op">=</emphasis> az1 <emphasis role="op">+</emphasis> k2vg <emphasis role="op">*</emphasis> (<emphasis role="opc">tanh</emphasis>((asig <emphasis role="op">-</emphasis> 4 <emphasis role="op">*</emphasis> kres <emphasis role="op">*</emphasis> amf <emphasis role="op">*</emphasis> kacr) <emphasis role="op">/</emphasis> i2v) <emphasis role="op">-</emphasis> <emphasis role="opc">tanh</emphasis>(az1 <emphasis role="op">/</emphasis> i2v))
+az1 <emphasis role="op">=</emphasis> ay1
+ay2 <emphasis role="op">=</emphasis> az2 <emphasis role="op">+</emphasis> k2vg <emphasis role="op">*</emphasis> (<emphasis role="opc">tanh</emphasis>(ay1 <emphasis role="op">/</emphasis> i2v) <emphasis role="op">-</emphasis> <emphasis role="opc">tanh</emphasis>(az2 <emphasis role="op">/</emphasis> i2v ))
+az2 <emphasis role="op">=</emphasis> ay2
+ay3 <emphasis role="op">=</emphasis> az3 <emphasis role="op">+</emphasis> k2vg <emphasis role="op">*</emphasis> (<emphasis role="opc">tanh</emphasis>(ay2 <emphasis role="op">/</emphasis> i2v) <emphasis role="op">-</emphasis> <emphasis role="opc">tanh</emphasis>(az3 <emphasis role="op">/</emphasis> i2v))
+az3 <emphasis role="op">=</emphasis> ay3
+ay4 <emphasis role="op">=</emphasis> az4 <emphasis role="op">+</emphasis> k2vg <emphasis role="op">*</emphasis> (<emphasis role="opc">tanh</emphasis>(ay3 <emphasis role="op">/</emphasis> i2v) <emphasis role="op">-</emphasis> <emphasis role="opc">tanh</emphasis>(az4 <emphasis role="op">/</emphasis> i2v))
+az4 <emphasis role="op">=</emphasis> ay4
+amf <emphasis role="op">=</emphasis> (ay4 <emphasis role="op">+</emphasis> az5) <emphasis role="op">*</emphasis> 0.5
+az5 <emphasis role="op">=</emphasis> ay4
+ <emphasis role="opc">xout</emphasis> amf
+ <emphasis role="oblock">endop</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+ <emphasis role="opc">prints</emphasis> "No filter.\n"
+ kfe <emphasis role="opc">expseg</emphasis> 500, p3<emphasis role="op">*</emphasis>0.9, 1800, p3<emphasis role="op">*</emphasis>0.1, 3000
+ kenv <emphasis role="opc">linen</emphasis> 10000, 0.05, p3, 0.05
+ asig <emphasis role="opc">buzz</emphasis> kenv, 100, <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>(200), 1
+ <emphasis role="comment">; afil moogladder asig, kfe, 1</emphasis>
+ <emphasis role="opc">out</emphasis> asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+ <emphasis role="opc">prints</emphasis> "Native moogladder.\n"
+ kfe <emphasis role="opc">expseg</emphasis> 500, p3<emphasis role="op">*</emphasis>0.9, 1800, p3<emphasis role="op">*</emphasis>0.1, 3000
+ kenv <emphasis role="opc">linen</emphasis> 10000, 0.05, p3, 0.05
+ asig <emphasis role="opc">buzz</emphasis> kenv, 100, <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>(200), 1
+ afil <emphasis role="opc">moogladder</emphasis> asig, kfe, 1
+ <emphasis role="opc">out</emphasis> afil
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 3
+ <emphasis role="opc">prints</emphasis> "UDO moogladder.\n"
+ kfe <emphasis role="opc">expseg</emphasis> 500, p3<emphasis role="op">*</emphasis>0.9, 1800, p3<emphasis role="op">*</emphasis>0.1, 3000
+ kenv <emphasis role="opc">linen</emphasis> 10000, 0.05, p3, 0.05
+ asig <emphasis role="opc">buzz</emphasis> kenv, 100, <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>(200), 1
+ afil moogladderu asig, kfe, 1
+ <emphasis role="opc">out</emphasis> afil
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 4
+ <emphasis role="opc">prints</emphasis> "Lua moogladder.\n"
+ kres <emphasis role="opc">init</emphasis> 1
+ istor <emphasis role="opc">init</emphasis> 0
+ kfe <emphasis role="opc">expseg</emphasis> 500, p3<emphasis role="op">*</emphasis>0.9, 1800, p3<emphasis role="op">*</emphasis>0.1, 3000
+ kenv <emphasis role="opc">linen</emphasis> 10000, 0.05, p3, 0.05
+ asig <emphasis role="opc">buzz</emphasis> kenv, 100, <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>(200), 1
+ afil <emphasis role="opc">init</emphasis> 0
+ <emphasis role="opc">lua_ikopcall</emphasis> "moogladder", afil, asig, kfe, kres, istor
+ <emphasis role="opc">out</emphasis> afil
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 5
+ giended <emphasis role="opc">rtclock</emphasis>
+ ielapsed <emphasis role="op">=</emphasis> giended <emphasis role="op">-</emphasis> gibegan
+ <emphasis role="opc">print</emphasis> ielapsed
+ gibegan <emphasis role="opc">rtclock</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 65536 10 1
+<emphasis role="stamnt">i</emphasis> 5.1 0 1
+<emphasis role="stamnt">i</emphasis> 4 1 20
+<emphasis role="stamnt">i</emphasis> 5.2 21 1
+<emphasis role="stamnt">i</emphasis> 4 22 20
+<emphasis role="stamnt">i</emphasis> 5.3 42 1
+<emphasis role="stamnt">i</emphasis> 2 43 20
+<emphasis role="stamnt">i</emphasis> 5.4 63 1
+<emphasis role="stamnt">i</emphasis> 2 64 20
+<emphasis role="stamnt">i</emphasis> 5.5 84 1
+<emphasis role="stamnt">i</emphasis> 3 85 20
+<emphasis role="stamnt">i</emphasis> 5.6 105 1
+<emphasis role="stamnt">i</emphasis> 3 106 20
+<emphasis role="stamnt">i</emphasis> 5.7 126 1
+<emphasis role="stamnt">i</emphasis> 1 127 20
+<emphasis role="stamnt">i</emphasis> 5.8 147 1
+<emphasis role="stamnt">i</emphasis> 1 148 20
+<emphasis role="stamnt">i</emphasis> 5.9 168 1
+<emphasis role="stamnt">i</emphasis> 4 169 20
+<emphasis role="stamnt">i</emphasis> 4 170 20
+<emphasis role="stamnt">i</emphasis> 4 171 20
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/luaopcode.csd.xml b/examples-xml/luaopcode.csd.xml
new file mode 100644
index 0000000..2541fd3
--- /dev/null
+++ b/examples-xml/luaopcode.csd.xml
@@ -0,0 +1,60 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="opc">lua_opdef</emphasis> "luatest", {{
+local ffi <emphasis role="op">=</emphasis> require("ffi")
+local string <emphasis role="op">=</emphasis> require("string")
+local csoundLibrary <emphasis role="op">=</emphasis> ffi.load('csound64.dll.5.2')
+ffi.cdef[[
+ <emphasis role="opc">int</emphasis> csoundGetKsmps(void <emphasis role="op">*</emphasis>)<emphasis role="comment">;</emphasis>
+ double csoundGetSr(void <emphasis role="op">*</emphasis>)<emphasis role="comment">;</emphasis>
+ struct luatest_arguments {double <emphasis role="op">*</emphasis><emphasis role="opc">out</emphasis><emphasis role="comment">; double *stringout; char *stringin; double *in1; double *in2; double sr; int ksmps; };</emphasis>
+]]
+function luatest_init(csound, opcode, carguments)
+ local arguments <emphasis role="op">=</emphasis> ffi.cast("struct luatest_arguments <emphasis role="op">*</emphasis>", carguments)
+ arguments.sr <emphasis role="op">=</emphasis> csoundLibrary.csoundGetSr(csound)
+ <emphasis role="opc">print</emphasis>(string.format('stringin<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>s', ffi.string(arguments.stringin)))
+ <emphasis role="opc">print</emphasis>(string.format('sr<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>f', arguments.sr))
+ arguments.ksmps <emphasis role="op">=</emphasis> csoundLibrary.csoundGetKsmps(csound)
+ <emphasis role="opc">print</emphasis>(string.format('ksmps<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>d', arguments.ksmps))
+ arguments.out[0] <emphasis role="op">=</emphasis> arguments.in1[0] <emphasis role="op">*</emphasis> arguments.in2[0]
+ ffi.copy(arguments.stringout, 'Hello, world!')
+ <emphasis role="opc">return</emphasis> 0
+end
+function luatest_kontrol(csound, opcode, carguments)
+ local arguments <emphasis role="op">=</emphasis> ffi.cast("struct luatest_arguments <emphasis role="op">*</emphasis>", carguments)
+ arguments.out[0] <emphasis role="op">=</emphasis> arguments.in1[0] <emphasis role="op">*</emphasis> arguments.in2[0]
+ <emphasis role="opc">return</emphasis> 0
+end
+function luatest_noteoff(csound, opcode, carguments)
+ local arguments <emphasis role="op">=</emphasis> ffi.cast("struct luatest_arguments <emphasis role="op">*</emphasis>", carguments)
+ arguments.out[0] <emphasis role="op">=</emphasis> arguments.in1[0] <emphasis role="op">*</emphasis> arguments.in2[0]
+ <emphasis role="opc">print</emphasis>('off')
+ <emphasis role="opc">return</emphasis> 0
+end
+}}
+
+<emphasis role="oblock">instr</emphasis> 1
+ iresult <emphasis role="op">=</emphasis> 0
+ Stringin <emphasis role="op">=</emphasis> "stringin"
+ Stringout <emphasis role="op">=</emphasis> "stringout"
+ <emphasis role="opc">lua_iopcall</emphasis> "luatest", iresult, Stringout, Stringin, p2, p3
+ <emphasis role="opc">prints</emphasis> Stringout
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2
+ iresult <emphasis role="op">=</emphasis> 0
+ Stringin <emphasis role="op">=</emphasis> "stringin"
+ Stringout <emphasis role="op">=</emphasis> "initial value"
+ <emphasis role="opc">lua_iopcall_off</emphasis> "luatest", iresult, Stringout, Stringin, p2, p3
+ <emphasis role="opc">print</emphasis> iresult
+ <emphasis role="opc">prints</emphasis> Stringout
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 1 2
+<emphasis role="stamnt">i</emphasis> 2 2 2
+<emphasis role="stamnt">i</emphasis> 1 3 2
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/m.csd.xml b/examples-xml/m.csd.xml
new file mode 100644
index 0000000..af9f93a
--- /dev/null
+++ b/examples-xml/m.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o m.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aenv <emphasis role="opc">expseg</emphasis> .01, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0.01
+asig <emphasis role="opc">poscil3</emphasis> .8<emphasis role="op">*</emphasis>aenv, p4, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">m</emphasis> foo <emphasis role="comment">;mark section</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1 110
+<emphasis role="stamnt">i</emphasis> 1 1.5 1 220
+<emphasis role="stamnt">i</emphasis> 1 3 1 440
+<emphasis role="stamnt">i</emphasis> 1 4.5 1 880
+<emphasis role="stamnt">s</emphasis> <emphasis role="comment">;second section</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 110
+<emphasis role="stamnt">i</emphasis> 1 2 2 220
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">n</emphasis> foo <emphasis role="comment">;repeat marked section</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/mac.csd.xml b/examples-xml/mac.csd.xml
new file mode 100644
index 0000000..7b45f61
--- /dev/null
+++ b/examples-xml/mac.csd.xml
@@ -0,0 +1,52 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o mac.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;4 band equalizer</emphasis>
+
+klow <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;low gain1</emphasis>
+klmid <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;low gain2 </emphasis>
+kmidh <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;high gain1</emphasis>
+khigh <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;high gain2</emphasis>
+ifn <emphasis role="op">=</emphasis> p8 <emphasis role="comment">;table</emphasis>
+
+ilc1 <emphasis role="opc">table</emphasis> 0, ifn <emphasis role="comment">;low freqency range</emphasis>
+ilc2 <emphasis role="opc">table</emphasis> 1, ifn <emphasis role="comment">;low-mid</emphasis>
+ihc1 <emphasis role="opc">table</emphasis> 2, ifn <emphasis role="comment">;mid-high</emphasis>
+ihc2 <emphasis role="opc">table</emphasis> 3, ifn <emphasis role="comment">;high</emphasis>
+
+asig <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+alow1 <emphasis role="opc">butterlp</emphasis> asig, ilc1 <emphasis role="comment">;lowpass 1</emphasis>
+almid <emphasis role="opc">butterlp</emphasis> asig, ilc2 <emphasis role="comment">;lowpass 2</emphasis>
+amidh <emphasis role="opc">butterhp</emphasis> asig, ihc1 <emphasis role="comment">;highpass 1</emphasis>
+ahigh <emphasis role="opc">butterhp</emphasis> asig, ihc2 <emphasis role="comment">;highpass 2</emphasis>
+aout <emphasis role="opc">mac</emphasis> klow, alow1, klmid, almid, kmidh, amidh, khigh, ahigh
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4 -2 150 300 600 5000
+<emphasis role="stamnt">f</emphasis>2 0 4 -2 75 500 1000 10000
+<emphasis role="stamnt">f</emphasis>3 0 4 -2 200 700 1500 3000
+
+<emphasis role="comment">; low lowmid midhigh high table </emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2.8 2 1 1 1 1
+<emphasis role="stamnt">i</emphasis> 1 3 2.8 2 3 1 1 2
+<emphasis role="stamnt">i</emphasis> 1 6 2.8 2 1 2 3 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/maca.csd.xml b/examples-xml/maca.csd.xml
new file mode 100644
index 0000000..3f7e568
--- /dev/null
+++ b/examples-xml/maca.csd.xml
@@ -0,0 +1,62 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o mac.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;4 band equalizer</emphasis>
+
+klow <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;low gain1</emphasis>
+aenv1 <emphasis role="opc">oscil</emphasis> 0.2, 1, 4
+aenv1 <emphasis role="op">=</emphasis> aenv1 <emphasis role="op">+</emphasis> klow
+klmid <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;low gain2 </emphasis>
+aenv2 <emphasis role="opc">oscil</emphasis> 0.21, 1.1, 4
+aenv2 <emphasis role="op">=</emphasis> aenv2 <emphasis role="op">+</emphasis> klmid
+kmidh <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;high gain1</emphasis>
+aenv3 <emphasis role="opc">oscil</emphasis> 0.19, 1.2, 4
+aenv3 <emphasis role="op">=</emphasis> aenv3 <emphasis role="op">+</emphasis> kmidh
+khigh <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;high gain2</emphasis>
+aenv4 <emphasis role="opc">oscil</emphasis> 0.18, 1.3, 4
+aenv4 <emphasis role="op">=</emphasis> aenv4 <emphasis role="op">+</emphasis> khigh
+
+ifn <emphasis role="op">=</emphasis> p8 <emphasis role="comment">;table</emphasis>
+
+ilc1 <emphasis role="opc">table</emphasis> 0, ifn <emphasis role="comment">;low freqency range</emphasis>
+ilc2 <emphasis role="opc">table</emphasis> 1, ifn <emphasis role="comment">;low-mid</emphasis>
+ihc1 <emphasis role="opc">table</emphasis> 2, ifn <emphasis role="comment">;mid-high</emphasis>
+ihc2 <emphasis role="opc">table</emphasis> 3, ifn <emphasis role="comment">;high</emphasis>
+
+asig <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+alow1 <emphasis role="opc">butterlp</emphasis> asig, ilc1 <emphasis role="comment">;lowpass 1</emphasis>
+almid <emphasis role="opc">butterlp</emphasis> asig, ilc2 <emphasis role="comment">;lowpass 2</emphasis>
+amidh <emphasis role="opc">butterhp</emphasis> asig, ihc1 <emphasis role="comment">;highpass 1</emphasis>
+ahigh <emphasis role="opc">butterhp</emphasis> asig, ihc2 <emphasis role="comment">;highpass 2</emphasis>
+aout <emphasis role="opc">maca</emphasis> aenv1, alow1, aenv2, almid, aenv3, amidh, aenv4, ahigh
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4 -2 150 300 600 5000
+<emphasis role="stamnt">f</emphasis>2 0 4 -2 75 500 1000 10000
+<emphasis role="stamnt">f</emphasis>3 0 4 -2 200 700 1500 3000
+<emphasis role="stamnt">f</emphasis>4 0 4096 10 1
+
+<emphasis role="comment">; low lowmid midhigh high table </emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2.8 2 1 1 1 1
+<emphasis role="stamnt">i</emphasis> 1 3 2.8 2 3 1 1 2
+<emphasis role="stamnt">i</emphasis> 1 6 2.8 2 1 2 3 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/madsr-2.csd.xml b/examples-xml/madsr-2.csd.xml
new file mode 100644
index 0000000..73e97ce
--- /dev/null
+++ b/examples-xml/madsr-2.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o madsr-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+icps <emphasis role="opc">cpsmidi</emphasis>
+iamp <emphasis role="opc">ampmidi</emphasis> .5
+
+kenv <emphasis role="opc">madsr</emphasis> 0.5, 0, 1, 0.5
+asig <emphasis role="opc">pluck</emphasis> kenv, icps, icps, 2, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1
+
+<emphasis role="stamnt">f</emphasis>0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/mandel.csd.xml b/examples-xml/mandel.csd.xml
new file mode 100644
index 0000000..017be28
--- /dev/null
+++ b/examples-xml/mandel.csd.xml
@@ -0,0 +1,103 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o mandel.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by Brian Evans</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ipitchtable <emphasis role="op">=</emphasis> 1 <emphasis role="comment">; pitch table in score </emphasis>
+ipitchndx <emphasis role="op">=</emphasis> p5 <emphasis role="comment">; p5=pitch index from table</emphasis>
+
+ipitch <emphasis role="opc">table</emphasis> ipitchndx, ipitchtable
+kenv <emphasis role="opc">expseg</emphasis> 1.0, 1.0, 1.0, 11.5, .0001
+asig <emphasis role="opc">pluck</emphasis> <emphasis role="opc">ampdb</emphasis>(p4)<emphasis role="op">*</emphasis>kenv, <emphasis role="opc">cpspch</emphasis>(ipitch), <emphasis role="opc">cpspch</emphasis>(ipitch), 0, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis>1 0 32 -2 6.00 6.02 6.04 6.05 6.07 6.09 6.11 <emphasis role="comment">; f1 is a pitch table defining a four octave C major scale starting </emphasis>
+ 7.00 7.02 7.04 7.05 7.07 7.09 7.11 <emphasis role="comment">; on C two octaves below middle C</emphasis>
+ 8.00 8.02 8.04 8.05 8.07 8.09 8.11
+ 9.00 9.02 9.04 9.05 9.07 9.09 9.11
+
+<emphasis role="comment">;ins start dur ampdb(p4) pitchndx(p5)</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 12.0 75 3
+<emphasis role="stamnt">i</emphasis>1 1.5999 12.0 75 4
+<emphasis role="stamnt">i</emphasis>1 3.4000 12.0 75 5
+<emphasis role="stamnt">i</emphasis>1 4.2000 12.0 75 6
+<emphasis role="stamnt">i</emphasis>1 4.4000 12.0 75 7
+<emphasis role="stamnt">i</emphasis>1 4.6000 12.0 75 9
+<emphasis role="stamnt">i</emphasis>1 4.8000 12.0 75 10
+<emphasis role="stamnt">i</emphasis>1 5.0000 12.0 75 5
+<emphasis role="stamnt">i</emphasis>1 5.2000 12.0 75 27
+<emphasis role="stamnt">i</emphasis>1 5.4000 12.0 75 5
+<emphasis role="stamnt">i</emphasis>1 5.6000 12.0 75 20
+<emphasis role="stamnt">i</emphasis>1 6.0000 12.0 75 24
+<emphasis role="stamnt">i</emphasis>1 6.2000 12.0 75 2
+<emphasis role="stamnt">i</emphasis>1 6.4000 12.0 75 27
+<emphasis role="stamnt">i</emphasis>1 6.6000 12.0 75 20
+<emphasis role="stamnt">i</emphasis>1 6.8000 12.0 75 15
+<emphasis role="stamnt">i</emphasis>1 7.0000 12.0 75 3
+<emphasis role="stamnt">i</emphasis>1 7.2000 12.0 75 3
+<emphasis role="stamnt">i</emphasis>1 7.4000 12.0 75 23
+<emphasis role="stamnt">i</emphasis>1 7.6000 12.0 75 9
+<emphasis role="stamnt">i</emphasis>1 7.8000 12.0 75 17
+<emphasis role="stamnt">i</emphasis>1 8.0000 12.0 75 18
+<emphasis role="stamnt">i</emphasis>1 8.2000 12.0 75 3
+<emphasis role="stamnt">i</emphasis>1 8.4000 12.0 75 26
+<emphasis role="stamnt">i</emphasis>1 8.6000 12.0 75 15
+<emphasis role="stamnt">i</emphasis>1 8.8 12.0 75 2
+<emphasis role="stamnt">i</emphasis>1 9 12.0 75 26
+<emphasis role="stamnt">i</emphasis>1 9.2 12.0 75 8
+<emphasis role="stamnt">i</emphasis>1 9.3999 12.0 75 22
+<emphasis role="stamnt">i</emphasis>1 9.5999 12.0 75 22
+<emphasis role="stamnt">i</emphasis>1 9.7999 12.0 75 20
+<emphasis role="stamnt">i</emphasis>1 9.9999 12.0 75 19
+<emphasis role="stamnt">i</emphasis>1 10.399 12.0 75 20
+<emphasis role="stamnt">i</emphasis>1 10.799 12.0 75 22
+<emphasis role="stamnt">i</emphasis>1 10.999 12.0 75 27
+<emphasis role="stamnt">i</emphasis>1 11.199 12.0 75 25
+<emphasis role="stamnt">i</emphasis>1 11.399 12.0 75 20
+<emphasis role="stamnt">i</emphasis>1 11.599 12.0 75 21
+<emphasis role="stamnt">i</emphasis>1 11.799 12.0 75 24
+<emphasis role="stamnt">i</emphasis>1 11.999 12.0 75 24
+<emphasis role="stamnt">i</emphasis>1 12.199 12.0 75 4
+<emphasis role="stamnt">i</emphasis>1 12.399 12.0 75 13
+<emphasis role="stamnt">i</emphasis>1 12.599 12.0 75 15
+<emphasis role="stamnt">i</emphasis>1 12.799 12.0 75 14
+<emphasis role="stamnt">i</emphasis>1 12.999 12.0 75 3
+<emphasis role="stamnt">i</emphasis>1 13.199 12.0 75 21
+<emphasis role="stamnt">i</emphasis>1 13.399 12.0 75 6
+<emphasis role="stamnt">i</emphasis>1 13.599 12.0 75 3
+<emphasis role="stamnt">i</emphasis>1 13.799 12.0 75 10
+<emphasis role="stamnt">i</emphasis>1 13.999 12.0 75 25
+<emphasis role="stamnt">i</emphasis>1 14.199 12.0 75 21
+<emphasis role="stamnt">i</emphasis>1 14.399 12.0 75 20
+<emphasis role="stamnt">i</emphasis>1 14.599 12.0 75 19
+<emphasis role="stamnt">i</emphasis>1 14.799 12.0 75 18
+<emphasis role="stamnt">i</emphasis>1 15.199 12.0 75 17
+<emphasis role="stamnt">i</emphasis>1 15.599 12.0 75 16
+<emphasis role="stamnt">i</emphasis>1 15.999 12.0 75 15
+<emphasis role="stamnt">i</emphasis>1 16.599 12.0 75 14
+<emphasis role="stamnt">i</emphasis>1 17.199 12.0 75 13
+<emphasis role="stamnt">i</emphasis>1 18.399 12.0 75 12
+<emphasis role="stamnt">i</emphasis>1 18.599 12.0 75 11
+<emphasis role="stamnt">i</emphasis>1 19.199 12.0 75 10
+<emphasis role="stamnt">i</emphasis>1 19.799 12.0 75 9
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/mandol.csd.xml b/examples-xml/mandol.csd.xml
index 7c41cf2..e432fc5 100644
--- a/examples-xml/mandol.csd.xml
+++ b/examples-xml/mandol.csd.xml
@@ -2,48 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o mandol.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> p5
- <emphasis role="comment">; kfreq = 880</emphasis>
- <emphasis role="comment">; kpluck = 0.4</emphasis>
- <emphasis role="comment">; kdetune = 0.99</emphasis>
- <emphasis role="comment">; kgain = 0.99</emphasis>
- ksize <emphasis role="op">=</emphasis> p4
- <emphasis role="comment">; ifn = 1</emphasis>
- <emphasis role="comment">; ifreq = 220</emphasis>
- a1 <emphasis role="opc">mandol</emphasis> kamp, 880, 0.4, 0.99, 0.99, ksize, 1, 220
+kamp <emphasis role="op">=</emphasis> p4
+ksize <emphasis role="op">=</emphasis> p5
+kdetune <emphasis role="op">=</emphasis> p6
+asig <emphasis role="opc">mandol</emphasis> kamp, 880, .4, kdetune, 0.99, ksize, 1, 220
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1: the "mandpluk.aiff" audio file</emphasis>
+<emphasis role="comment">; "mandpluk.aiff" audio file</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 8192 1 "mandpluk.ai<emphasis role="stamnt">f</emphasis><emphasis role="stamnt">f</emphasis>" 0 0 0
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0.5 1 2 45000
-<emphasis role="stamnt">i</emphasis> 1 + 1 .3 10000 <emphasis role="comment">;change volume to compensate</emphasis>
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 .5 1 1 2 .99
+<emphasis role="stamnt">i</emphasis> 1 + 1 .5 1 .99 <emphasis role="comment">;lower volume to compensate</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 .3 .3 .99 <emphasis role="comment">;lower volume to compensate</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 4 1 1 2 .39 <emphasis role="comment">;change detune value</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 1 .5 1 .39
+<emphasis role="stamnt">i</emphasis> 1 + 3 .3 .3 .39
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/maparray.csd.xml b/examples-xml/maparray.csd.xml
new file mode 100644
index 0000000..d9812f2
--- /dev/null
+++ b/examples-xml/maparray.csd.xml
@@ -0,0 +1,86 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="comment">;create an array and fill with numbers</emphasis>
+kArrSrc[] <emphasis role="opc">fillarray</emphasis> 1.01, 2.02, 3.03, 4.05, 5.08, 6.13, 7.21
+
+<emphasis role="comment">;print source array</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nSource <emphasis role="opc">array</emphasis><emphasis role="op">:</emphasis>\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArrSrc) do
+ <emphasis role="opc">printf</emphasis> "kArrSrc[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArrSrc[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;create an empty array for the results</emphasis>
+kArrRes[] <emphasis role="opc">init</emphasis> 7
+
+<emphasis role="comment">;apply the sqrt() function to each element</emphasis>
+kArrRes <emphasis role="opc">maparray</emphasis> kArrSrc, "sqrt"
+
+<emphasis role="comment">;print the result</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nResult after applying <emphasis role="opc">sqrt</emphasis>() to source array\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArrRes) do
+ <emphasis role="opc">printf</emphasis> "kArrRes[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArrRes[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;apply the log() function to each element</emphasis>
+kArrRes <emphasis role="opc">maparray</emphasis> kArrSrc, "log"
+
+<emphasis role="comment">;print the result</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nResult after applying <emphasis role="opc">log</emphasis>() to source array\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArrRes) do
+ <emphasis role="opc">printf</emphasis> "kArrRes[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArrRes[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;apply the int() function to each element</emphasis>
+kArrRes <emphasis role="opc">maparray</emphasis> kArrSrc, "int"
+
+<emphasis role="comment">;print the result</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nResult after applying <emphasis role="opc">int</emphasis>() to source array\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArrRes) do
+ <emphasis role="opc">printf</emphasis> "kArrRes[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArrRes[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;apply the frac() function to each element</emphasis>
+kArrRes <emphasis role="opc">maparray</emphasis> kArrSrc, "frac"
+
+<emphasis role="comment">;print the result</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nResult after applying <emphasis role="opc">frac</emphasis>() to source array\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArrRes) do
+ <emphasis role="opc">printf</emphasis> "kArrRes[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArrRes[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;turn instrument instance off</emphasis>
+ <emphasis role="opc">turnoff</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0.1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/massign.csd.xml b/examples-xml/massign.csd.xml
new file mode 100644
index 0000000..cf9a2aa
--- /dev/null
+++ b/examples-xml/massign.csd.xml
@@ -0,0 +1,65 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o massign.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giengine <emphasis role="opc">fluidEngine</emphasis>
+<emphasis role="comment">; soundfont path to manual/examples</emphasis>
+isfnum <emphasis role="opc">fluidLoad</emphasis> "19Trumpet.sf2", giengine, 1
+ <emphasis role="opc">fluidProgramSelect</emphasis> giengine, 1, isfnum, 0, 56
+
+<emphasis role="ohdr">massign</emphasis> 0,0 <emphasis role="comment">;disable triggering of all instruments on all channels, but</emphasis>
+<emphasis role="ohdr">massign</emphasis> 12,10 <emphasis role="comment">;assign instr. 10 to midi channel 12</emphasis>
+<emphasis role="ohdr">massign</emphasis> 3,30 <emphasis role="comment">;assign instr. 30 to midi channel 3</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 10 <emphasis role="comment">; soundfont only on midi channel 12</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5 <emphasis role="comment">; in midi notes</emphasis>
+ikey <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ <emphasis role="opc">fluidNote</emphasis> giengine, 1, ikey, ivel
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 30 <emphasis role="comment">; FM-oscilator only on midi channel 3</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteoncps</emphasis> p4, p5 <emphasis role="comment">; in Hertz</emphasis>
+icps <emphasis role="opc">init</emphasis> p4
+iamp <emphasis role="opc">init</emphasis> p5
+iamp <emphasis role="op">=</emphasis> iamp<emphasis role="op">/</emphasis>127
+kenv <emphasis role="opc">madsr</emphasis> 0.5, 0, 1, 0.5
+asig <emphasis role="opc">foscil</emphasis> iamp<emphasis role="op">*</emphasis>kenv, icps, 1, 1.414, 2, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; output sound from fluidengine</emphasis>
+
+imvol <emphasis role="opc">init</emphasis> 7
+aL, aR <emphasis role="opc">fluidOut</emphasis> giengine
+ <emphasis role="opc">outs</emphasis> aL<emphasis role="op">*</emphasis>imvol, aR<emphasis role="op">*</emphasis>imvol
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; sine</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+
+<emphasis role="stamnt">i</emphasis> 10 0 2 60 100 <emphasis role="comment">;one note on the trumpet in midi and...</emphasis>
+<emphasis role="stamnt">i</emphasis> 30 2 2 220 80 <emphasis role="comment">;one FM note in Hz</emphasis>
+<emphasis role="stamnt">i</emphasis> 99 0 60 <emphasis role="comment">;stay active for 60 sec.</emphasis>
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/max.csd.xml b/examples-xml/max.csd.xml
new file mode 100644
index 0000000..6d76a62
--- /dev/null
+++ b/examples-xml/max.csd.xml
@@ -0,0 +1,40 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o max.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+k1 <emphasis role="opc">oscili</emphasis> 1, 10.0, 1 <emphasis role="comment">;combine 3 sinusses</emphasis>
+k2 <emphasis role="opc">oscili</emphasis> 1, 1.0, 1 <emphasis role="comment">;at different rates</emphasis>
+k3 <emphasis role="opc">oscili</emphasis> 1, 3.0, 1
+kmax <emphasis role="opc">max</emphasis> k1, k2, k3
+kmax <emphasis role="op">=</emphasis> kmax<emphasis role="op">*</emphasis>250 <emphasis role="comment">;scale kmax</emphasis>
+<emphasis role="opc">printk2</emphasis> kmax <emphasis role="comment">;check the values</emphasis>
+
+aout <emphasis role="opc">vco2</emphasis> .5, 220, 6 <emphasis role="comment">;sawtooth</emphasis>
+asig <emphasis role="opc">moogvcf2</emphasis> aout, 600<emphasis role="op">+</emphasis>kmax, .5 <emphasis role="comment">;change filter around 600 Hz </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 32768 10 1
+
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/max_k.csd.xml b/examples-xml/max_k.csd.xml
new file mode 100644
index 0000000..a0d3a43
--- /dev/null
+++ b/examples-xml/max_k.csd.xml
@@ -0,0 +1,55 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -Ma <emphasis role="comment">;;;realtime audio out and midi in (on all inputs)</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o max_k.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+
+ <emphasis role="opc">FLpanel</emphasis> "This Panel contains VU<emphasis role="op">-</emphasis>meter",300,100
+gk1,gih1 <emphasis role="opc">FLslider</emphasis> "VU<emphasis role="op">-</emphasis>meter", 0,1,0,1, <emphasis role="op">-</emphasis>1, 250,30, 30,30
+ <emphasis role="opc">FLsetColor2</emphasis> 50, 50, 255, gih1
+ <emphasis role="opc">FLpanel_end</emphasis>
+ <emphasis role="opc">FLrun</emphasis>
+
+ga1 <emphasis role="opc">init</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kenv <emphasis role="opc">linsegr</emphasis> 0,.5,.7,.5,.5,.2,0
+ifreq <emphasis role="opc">cpsmidi</emphasis>
+a1 <emphasis role="opc">poscil</emphasis> <emphasis role="ohdr">0dbfs</emphasis><emphasis role="op">*</emphasis>kenv, ifreq, 1
+ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>a1
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ <emphasis role="opc">outs</emphasis> ga1, ga1
+ktrig <emphasis role="opc">metro</emphasis> 25 <emphasis role="comment">;refresh 25 times per second</emphasis>
+kval <emphasis role="opc">max_k</emphasis> ga1, ktrig, 1
+ <emphasis role="opc">FLsetVal</emphasis> ktrig, kval, gih1
+ga1 <emphasis role="op">=</emphasis> 0
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 1024 10 1
+
+<emphasis role="stamnt">i</emphasis>2 0 3600
+<emphasis role="stamnt">f</emphasis>0 3600
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/maxabs.csd.xml b/examples-xml/maxabs.csd.xml
new file mode 100644
index 0000000..dbbdde2
--- /dev/null
+++ b/examples-xml/maxabs.csd.xml
@@ -0,0 +1,40 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o maxabs.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+k1 <emphasis role="opc">oscili</emphasis> 1, 10.0, 1 <emphasis role="comment">;combine 3 sinusses</emphasis>
+k2 <emphasis role="opc">oscili</emphasis> 1, 1.0, 1 <emphasis role="comment">;at different rates</emphasis>
+k3 <emphasis role="opc">oscili</emphasis> 1, 3.0, 1
+kmax <emphasis role="opc">maxabs</emphasis> k1, k2, k3
+kmax <emphasis role="op">=</emphasis> kmax<emphasis role="op">*</emphasis>250 <emphasis role="comment">;scale kmax</emphasis>
+<emphasis role="opc">printk2</emphasis> kmax <emphasis role="comment">;check the values</emphasis>
+
+aout <emphasis role="opc">vco2</emphasis> .5, 220, 6 <emphasis role="comment">;sawtooth</emphasis>
+asig <emphasis role="opc">moogvcf2</emphasis> aout, 600<emphasis role="op">+</emphasis>kmax, .5 <emphasis role="comment">;change filter above 600 Hz </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 32768 10 1
+
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/maxabsaccum.csd.xml b/examples-xml/maxabsaccum.csd.xml
new file mode 100644
index 0000000..1bc5a42
--- /dev/null
+++ b/examples-xml/maxabsaccum.csd.xml
@@ -0,0 +1,56 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o maxabsaccum.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;saw</emphasis>
+
+asig <emphasis role="opc">vco2</emphasis> .2, p4
+ <emphasis role="opc">outs</emphasis> asig, asig
+gasaw <emphasis role="op">=</emphasis> asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;sine</emphasis>
+
+aout <emphasis role="opc">poscil</emphasis> .3, p4, 1
+ <emphasis role="opc">outs</emphasis> aout, aout
+gasin <emphasis role="op">=</emphasis> aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 10
+
+accum <emphasis role="opc">init</emphasis> 0
+ <emphasis role="opc">maxabsaccum</emphasis> accum, gasaw <emphasis role="op">+</emphasis> gasin <emphasis role="comment">;saw and sine accumulated </emphasis>
+accum <emphasis role="opc">dcblock2</emphasis> accum <emphasis role="comment">;get rid of DC</emphasis>
+ <emphasis role="opc">outs</emphasis> accum, accum
+
+<emphasis role="opc">clear</emphasis> accum
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1 <emphasis role="comment">;sine wave </emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 7 330
+<emphasis role="stamnt">i</emphasis> 2 3 3 440
+
+<emphasis role="stamnt">i</emphasis> 1 10 7 330 <emphasis role="comment">;same notes but without maxabsaccum, for comparison</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 13 3 440
+
+<emphasis role="stamnt">i</emphasis> 10 0 6 <emphasis role="comment">;accumulation note stops after 6 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/maxaccum.csd.xml b/examples-xml/maxaccum.csd.xml
new file mode 100644
index 0000000..882598c
--- /dev/null
+++ b/examples-xml/maxaccum.csd.xml
@@ -0,0 +1,56 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o maxaccum.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;saw</emphasis>
+
+asig <emphasis role="opc">vco2</emphasis> .2, p4
+ <emphasis role="opc">outs</emphasis> asig, asig
+gasaw <emphasis role="op">=</emphasis> asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;sine</emphasis>
+
+aout <emphasis role="opc">poscil</emphasis> .3, p4, 1
+ <emphasis role="opc">outs</emphasis> aout, aout
+gasin <emphasis role="op">=</emphasis> aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 10
+
+accum <emphasis role="opc">init</emphasis> 0
+ <emphasis role="opc">maxaccum</emphasis> accum, gasaw <emphasis role="op">+</emphasis> gasin <emphasis role="comment">;saw and sine accumulated</emphasis>
+ <emphasis role="opc">outs</emphasis> accum, accum
+
+<emphasis role="opc">clear</emphasis> accum
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 7 330
+<emphasis role="stamnt">i</emphasis> 2 3 3 440
+
+<emphasis role="stamnt">i</emphasis> 1 10 7 330 <emphasis role="comment">;same notes but without maxaccum, for comparison</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 13 3 440
+
+<emphasis role="stamnt">i</emphasis> 10 0 6 <emphasis role="comment">;accumulation note stops after 6 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/maxalloc.csd.xml b/examples-xml/maxalloc.csd.xml
index 176529b..b69788c 100644
--- a/examples-xml/maxalloc.csd.xml
+++ b/examples-xml/maxalloc.csd.xml
@@ -2,46 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o maxalloc.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Limit Instrument #1 to three instances.</emphasis>
-<emphasis role="opc">maxalloc</emphasis> 1, 3
+<emphasis role="opc">maxalloc</emphasis> 1, 3 <emphasis role="comment">; Limit to three instances.</emphasis>
-<emphasis role="comment">; Instrument #1</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a waveform, get the cycles per second from the 4th p-field.</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> 6500, p4, 1
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+asig <emphasis role="opc">oscil</emphasis> .3, p4, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Just generate a nice, ordinary sine wave.</emphasis>
+<emphasis role="comment">; sine</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 32768 10 1
-<emphasis role="comment">; Play five instances of Instrument #1 for one second.</emphasis>
-<emphasis role="comment">; Note that 4th p-field contains cycles per second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1 220
-<emphasis role="stamnt">i</emphasis> 1 0 1 440
-<emphasis role="stamnt">i</emphasis> 1 0 1 880
-<emphasis role="stamnt">i</emphasis> 1 0 1 1320
-<emphasis role="stamnt">i</emphasis> 1 0 1 1760
+<emphasis role="stamnt">i</emphasis> 1 0 5 220 <emphasis role="comment">;1</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 1 4 440 <emphasis role="comment">;2</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 2 3 880 <emphasis role="comment">;3, limit is reached</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 2 1320 <emphasis role="comment">;is not played</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 4 1 1760 <emphasis role="comment">;is not played</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/maxarray.csd.xml b/examples-xml/maxarray.csd.xml
new file mode 100644
index 0000000..ac95b14
--- /dev/null
+++ b/examples-xml/maxarray.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by joachim heintz</emphasis>
+
+ <emphasis role="ohdr">seed</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">;create an array with 10 elements</emphasis>
+kArr[] <emphasis role="opc">init</emphasis> 10
+<emphasis role="comment">;fill in random numbers and print them out</emphasis>
+kIndx <emphasis role="op">=</emphasis> 0
+ until kIndx <emphasis role="op">==</emphasis> 10 do
+kNum <emphasis role="opc">random</emphasis> <emphasis role="op">-</emphasis>100, 100
+kArr[kIndx] <emphasis role="op">=</emphasis> kNum
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>10f\n", kIndx<emphasis role="op">+</emphasis>1, kIndx, kNum
+kIndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+<emphasis role="comment">;investigate maximum number and print it out</emphasis>
+kMax, kMaxIndx <emphasis role="opc">maxarray</emphasis> kArr
+ <emphasis role="opc">printf</emphasis> "Maximum of kArr <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f at index <emphasis role="op">%</emphasis>d\n", kIndx<emphasis role="op">+</emphasis>1, kMax, kMaxIndx
+ <emphasis role="opc">turnoff</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 0.1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/maxtab.csd.xml b/examples-xml/maxtab.csd.xml
new file mode 100644
index 0000000..2422cfb
--- /dev/null
+++ b/examples-xml/maxtab.csd.xml
@@ -0,0 +1,17 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+ t1 <emphasis role="opc">init</emphasis> 10
+ t1[3] <emphasis role="op">=</emphasis> 42
+ k1 <emphasis role="opc">maxtab</emphasis> t1
+ <emphasis role="opc">printk2</emphasis> k1
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 0.1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/mclock.csd.xml b/examples-xml/mclock.csd.xml
new file mode 100644
index 0000000..8f222b0
--- /dev/null
+++ b/examples-xml/mclock.csd.xml
@@ -0,0 +1,27 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-Q0 <emphasis role="comment">;;;midi out</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;let csound synchronize a sequencer</emphasis>
+
+<emphasis role="opc">mclock</emphasis> 24
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 30
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/metro-2.csd.xml b/examples-xml/metro-2.csd.xml
new file mode 100644
index 0000000..593fe31
--- /dev/null
+++ b/examples-xml/metro-2.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o metro-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kpch <emphasis role="opc">random</emphasis> 1,20 <emphasis role="comment">;produce values at k-rate</emphasis>
+ktrig <emphasis role="opc">metro</emphasis> 10 <emphasis role="comment">;trigger 10 times per second</emphasis>
+kval <emphasis role="opc">samphold</emphasis> kpch, ktrig <emphasis role="comment">;change value whenever ktrig = 1 </emphasis>
+asig <emphasis role="opc">buzz</emphasis> 1, 220, kval, 1<emphasis role="comment">;harmonics</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1 <emphasis role="comment">; sine</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/midic7.csd.xml b/examples-xml/midic7.csd.xml
new file mode 100644
index 0000000..0f0018e
--- /dev/null
+++ b/examples-xml/midic7.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o midic7.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">; This example expects MIDI controller input on channel 1</emphasis>
+<emphasis role="comment">; run, play a note and move your midi controller 7 to see result</emphasis>
+
+imax <emphasis role="op">=</emphasis> 1
+imin <emphasis role="op">=</emphasis> 0
+ichan <emphasis role="op">=</emphasis> 1
+ictlno<emphasis role="op">=</emphasis> 7 <emphasis role="comment">; = midi volume</emphasis>
+
+kamp <emphasis role="opc">midic7</emphasis> ictlno, imin, imax
+ <emphasis role="opc">printk2</emphasis> kamp
+asig <emphasis role="opc">oscili</emphasis> kamp, 220, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; no score events allowed</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 20 <emphasis role="comment">;20 sec. for real-time MIDI events</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/midichannelaftertouch.csd.xml b/examples-xml/midichannelaftertouch.csd.xml
index c413015..b06dd2f 100644
--- a/examples-xml/midichannelaftertouch.csd.xml
+++ b/examples-xml/midichannelaftertouch.csd.xml
@@ -2,31 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -M1 <emphasis role="comment">;;;realtime audio out and midi in </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o midichannelaftertouch.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-kafter <emphasis role="opc">init</emphasis> 0
+<emphasis role="opc">midinoteoncps</emphasis> p4, p5 <emphasis role="comment">;puts MIDI key translated to cycles per second into p4, and MIDI velocity into p5</emphasis>
+kafter <emphasis role="opc">init</emphasis> 127 <emphasis role="comment">;full open </emphasis>
<emphasis role="opc">midichannelaftertouch</emphasis> kafter
-<emphasis role="comment">; Display the aftertouch value when it changes and when key is pressed</emphasis>
- <emphasis role="opc">printk2</emphasis> kafter
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="opc">printk2</emphasis> kafter <emphasis role="comment">;display the key value when it changes and when key is pressed</emphasis>
+
+kvel <emphasis role="op">=</emphasis> p5<emphasis role="op">/</emphasis>127 <emphasis role="comment">;scale midi velocity to 0-1</emphasis>
+kenv <emphasis role="opc">madsr</emphasis> 0.5, 0.8, 0.8, 0.5 <emphasis role="comment">;amplitude envelope multiplied by</emphasis>
+ain <emphasis role="opc">pluck</emphasis> kenv<emphasis role="op">*</emphasis>kvel, p4, p4, 2, 1 <emphasis role="comment">;velocity value </emphasis>
+asig <emphasis role="opc">moogvcf2</emphasis> ain, 200<emphasis role="op">+</emphasis>(kafter<emphasis role="op">*</emphasis>40), .5 <emphasis role="comment">;scale value of aftertouch and control filter frequency</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig <emphasis role="comment">;base freq of filter = 200 Hz</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1
-<emphasis role="comment">; Play Instrument #1 for ten seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">i</emphasis> 1 0 2 440 100 <emphasis role="comment">; play these notes from score as well</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 1440 100
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/midichn.csd.xml b/examples-xml/midichn.csd.xml
index 087d7ba..e474bba 100644
--- a/examples-xml/midichn.csd.xml
+++ b/examples-xml/midichn.csd.xml
@@ -2,35 +2,26 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
-<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o midichn.wav -W ;;; for file output any platform</emphasis>
+-odac -M0 -+rtmidi=virtual <emphasis role="comment">;;; midi file input</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="opc">midichn</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">;change channel on virtual midi keyboard</emphasis>
+i1 <emphasis role="opc">midichn</emphasis>
+ <emphasis role="opc">print</emphasis> i1
- <emphasis role="opc">print</emphasis> i1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 20 <emphasis role="comment">;runs for 20 seconds</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 12 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 12
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/midichn_advanced.csd.xml b/examples-xml/midichn_advanced.csd.xml
index f4898bb..5a3f5e2 100644
--- a/examples-xml/midichn_advanced.csd.xml
+++ b/examples-xml/midichn_advanced.csd.xml
@@ -2,16 +2,16 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -F midichn_advanced.mid <emphasis role="comment">;;;realtime audio out with MIDI file input</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o midichn_advanced.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="ohdr">massign</emphasis> 1, 1 <emphasis role="comment">; all channels use instr 1</emphasis>
<emphasis role="ohdr">massign</emphasis> 2, 1
@@ -30,7 +30,7 @@
<emphasis role="ohdr">massign</emphasis> 15, 1
<emphasis role="ohdr">massign</emphasis> 16, 1
-gicnt <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; note counter</emphasis>
+gicnt <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; note counter</emphasis>
<emphasis role="oblock">instr</emphasis> 1
@@ -47,19 +47,21 @@ istime <emphasis role="opc">times</emphasis> <emphasis role="comment">; note-on
<emphasis role="opc">printks</emphasis> "note <emphasis role="op">%</emphasis>.0f (time <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.2f) was activated from channel <emphasis role="op">%</emphasis>.0f\\n", \
3600, kcnt, istime, ichn
<emphasis role="olabel">l1</emphasis><emphasis role="op">:</emphasis>
- <emphasis role="oblock">endin</emphasis>
-
+icps <emphasis role="opc">cpsmidi</emphasis> <emphasis role="comment">; convert midi note to pitch</emphasis>
+kenv <emphasis role="opc">madsr</emphasis> 0.1, 0, 0.8, 0.9
+asig <emphasis role="opc">pluck</emphasis> kenv, icps, icps, 1, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">t</emphasis> 0 60 <emphasis role="comment">;beats per minute</emphasis>
-<emphasis role="stamnt">t</emphasis> 0 60
-<emphasis role="stamnt">f</emphasis> 0 6 2 -2 0
-<emphasis role="stamnt">i</emphasis> 1 1 0.5
-<emphasis role="stamnt">i</emphasis> 1 4 0.5
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">f</emphasis> 0 8 <emphasis role="comment">;stay active for 8 seconds</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1 <emphasis role="comment">;sine</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/midicontrolchange.csd.xml b/examples-xml/midicontrolchange.csd.xml
index 5ae1026..dd400c4 100644
--- a/examples-xml/midicontrolchange.csd.xml
+++ b/examples-xml/midicontrolchange.csd.xml
@@ -2,31 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and midi in </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o midicontrolchange.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">; use slider of contr. 7 of virtual keyboard</emphasis>
+kcont <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">; max. volume</emphasis>
+<emphasis role="opc">midicontrolchange</emphasis> 7, kcont, 0, 1<emphasis role="comment">; use controller 7, scaled between 0 and 1 </emphasis>
+<emphasis role="opc">printk2</emphasis> kcont <emphasis role="comment">; Display the key value when it changes and key is pressed</emphasis>
-kcontroller <emphasis role="opc">init</emphasis> 0
-<emphasis role="opc">midicontrolchange</emphasis> 7, kcontroller <emphasis role="comment">; = volume</emphasis>
-<emphasis role="comment">; Display the key value when it changes and key is pressed</emphasis>
- <emphasis role="opc">printk2</emphasis> kcontroller
-<emphasis role="oblock">endin</emphasis>
+kenv <emphasis role="opc">madsr</emphasis> 0.5, 0.8, 0.8, 0.5 <emphasis role="comment">; envelope multiplied by</emphasis>
+asig <emphasis role="opc">pluck</emphasis> kenv<emphasis role="op">*</emphasis>kcont, 220, 220, 2, 1 <emphasis role="comment">; value of controller 7 </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 30
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1
-<emphasis role="comment">; Play Instrument #1 for ten seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">i</emphasis> 1 10 2 <emphasis role="comment">; play a note from score as well</emphasis>
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/midictrl.csd.xml b/examples-xml/midictrl.csd.xml
new file mode 100644
index 0000000..38d4546
--- /dev/null
+++ b/examples-xml/midictrl.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o midictrl.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+icps <emphasis role="opc">cpsmidi</emphasis>
+iamp <emphasis role="opc">ampmidi</emphasis> .5
+ips <emphasis role="opc">midictrl</emphasis> 9, 10, 500 <emphasis role="comment">;controller 9 </emphasis>
+
+kenv <emphasis role="opc">madsr</emphasis> 0.5, 0, 1, 0.5
+asig <emphasis role="opc">pluck</emphasis> kenv, icps, ips, 2, 1 <emphasis role="comment">;change tone color </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="comment">; no score events allowed</emphasis>
+<emphasis role="stamnt">f</emphasis>0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/mididefault.csd.xml b/examples-xml/mididefault.csd.xml
new file mode 100644
index 0000000..4b90bc2
--- /dev/null
+++ b/examples-xml/mididefault.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -M1 <emphasis role="comment">;;;realtime audio out and midi in </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o mididefault.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="opc">mididefault</emphasis> 60, p3 <emphasis role="comment">;ensures that a MIDI-activated instrument will have a positive p3 field</emphasis>
+<emphasis role="opc">midinoteoncps</emphasis> p4, p5 <emphasis role="comment">;puts MIDI key translated to cycles per second into p4, and MIDI velocity into p5</emphasis>
+
+kvel <emphasis role="op">=</emphasis> p5<emphasis role="op">/</emphasis>127 <emphasis role="comment">;scale midi velocity to 0-1</emphasis>
+kenv <emphasis role="opc">madsr</emphasis> 0.5, 0.8, 0.8, 0.5 <emphasis role="comment">;amplitude envelope multiplied by</emphasis>
+asig <emphasis role="opc">pluck</emphasis> kenv<emphasis role="op">*</emphasis>kvel, p4, p4, 2, 1 <emphasis role="comment">;velocity </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs for 30 seconds</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 440 100 <emphasis role="comment">; play these notes from score as well</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 1440 100
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/midinoteoff.csd.xml b/examples-xml/midinoteoff.csd.xml
index 127c832..e42e4e1 100644
--- a/examples-xml/midinoteoff.csd.xml
+++ b/examples-xml/midinoteoff.csd.xml
@@ -2,39 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -M1 -Q1 <emphasis role="comment">;;;realtime audio out and midi in and midi out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o midinoteoff.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- kkey <emphasis role="opc">init</emphasis> 0
- kvelocity <emphasis role="opc">init</emphasis> 0
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;uses external midi device</emphasis>
- <emphasis role="opc">midinoteoff</emphasis> kkey, kvelocity
+kkey <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">;initialize key number</emphasis>
+kvel <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">;initialize velocity</emphasis>
+<emphasis role="opc">midinoteoff</emphasis> kkey,kvel <emphasis role="comment">;MIDI noteoff value</emphasis>
+<emphasis role="opc">printk2</emphasis> kvel <emphasis role="comment">;display noteoff value</emphasis>
+<emphasis role="opc">midion</emphasis> 1, kkey, kvel <emphasis role="comment">;sent note to external device</emphasis>
- <emphasis role="comment">; Display the key value when it changes.</emphasis>
- <emphasis role="opc">printk2</emphasis> kkey
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs for 30 seconds </emphasis>
-<emphasis role="comment">; Play Instrument #1 for ten seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">i</emphasis> 1 0 2 62 <emphasis role="comment">; play these notes from score as well</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 65
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/midinoteoncps.csd.xml b/examples-xml/midinoteoncps.csd.xml
index a74c12e..e7f0068 100644
--- a/examples-xml/midinoteoncps.csd.xml
+++ b/examples-xml/midinoteoncps.csd.xml
@@ -2,39 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -M1 <emphasis role="comment">;;;realtime audio out and midi in </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o midinoteoncps.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kcps <emphasis role="opc">init</emphasis> 0
- kvelocity <emphasis role="opc">init</emphasis> 0
- <emphasis role="opc">midinoteoncps</emphasis> kcps, kvelocity
-
- <emphasis role="comment">; Display the cycles-per-second value when it changes.</emphasis>
- <emphasis role="opc">printk2</emphasis> kcps
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="opc">midinoteoncps</emphasis> p4, p5 <emphasis role="comment">;puts MIDI key translated to cycles per second into p4, and MIDI velocity into p5</emphasis>
+<emphasis role="opc">print</emphasis> p4 <emphasis role="comment">;display the key value when it changes and when key is pressed </emphasis>
+kvel <emphasis role="op">=</emphasis> p5<emphasis role="op">/</emphasis>127 <emphasis role="comment">;scale midi velocity to 0-1</emphasis>
+kenv <emphasis role="opc">madsr</emphasis> 0.5, 0.8, 0.8, 0.5 <emphasis role="comment">;amplitude envelope multiplied by</emphasis>
+asig <emphasis role="opc">pluck</emphasis> kenv<emphasis role="op">*</emphasis>kvel, p4, p4, 2, 1 <emphasis role="comment">;velocity value </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs for 30 seconds</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1
-<emphasis role="comment">; Play Instrument #1 for ten seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">i</emphasis> 1 0 2 440 100 <emphasis role="comment">; play these notes from score as well</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 1440 100
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/midinoteonkey.csd.xml b/examples-xml/midinoteonkey.csd.xml
index ac4a6ef..11c611a 100644
--- a/examples-xml/midinoteonkey.csd.xml
+++ b/examples-xml/midinoteonkey.csd.xml
@@ -2,39 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -M1 -Q1 <emphasis role="comment">;;;realtime audio out and midi in and midi out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o midinoteonkey.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- kkey <emphasis role="opc">init</emphasis> 0
- kvelocity <emphasis role="opc">init</emphasis> 0
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;uses external midi device</emphasis>
- <emphasis role="opc">midinoteonkey</emphasis> kkey, kvelocity
+kkey <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">;initialize key number</emphasis>
+kvel <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">;initialize velocity</emphasis>
+<emphasis role="opc">midinoteonkey</emphasis> kkey, kvel <emphasis role="comment">;MIDI note number value </emphasis>
+<emphasis role="opc">printk2</emphasis> kkey <emphasis role="comment">;display the key value when it changes and when key is pressed </emphasis>
+<emphasis role="opc">midion</emphasis> 1, kkey, kvel <emphasis role="comment">;sent note to external device</emphasis>
- <emphasis role="comment">; Display the key value when it changes.</emphasis>
- <emphasis role="opc">printk2</emphasis> kkey
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs for 30 seconds </emphasis>
-<emphasis role="comment">; Play Instrument #1 for ten seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">i</emphasis> 1 0 2 62 <emphasis role="comment">; play these notes from score as well</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 65
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/midinoteonoct.csd.xml b/examples-xml/midinoteonoct.csd.xml
index 9f5867d..25e8374 100644
--- a/examples-xml/midinoteonoct.csd.xml
+++ b/examples-xml/midinoteonoct.csd.xml
@@ -2,39 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -M1 <emphasis role="comment">;;;realtime audio out and midi in </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o midinoteonoct.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- koct <emphasis role="opc">init</emphasis> 0
- kvelocity <emphasis role="opc">init</emphasis> 0
- <emphasis role="opc">midinoteonoct</emphasis> koct, kvelocity
-
- <emphasis role="comment">; Display the octave-point-decimal value when it changes.</emphasis>
- <emphasis role="opc">printk2</emphasis> koct
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="opc">midinoteonoct</emphasis> p4, p5 <emphasis role="comment">;gets a MIDI note number value as octave-point-decimal value into p4, and MIDI velocity into p5</emphasis>
+<emphasis role="opc">print</emphasis> p4 <emphasis role="comment">;display the key value when it changes and when key is pressed </emphasis>
+kvel <emphasis role="op">=</emphasis> p5<emphasis role="op">/</emphasis>127 <emphasis role="comment">;scale midi velocity to 0-1</emphasis>
+ioct <emphasis role="op">=</emphasis> p4
+icps <emphasis role="op">=</emphasis> <emphasis role="opc">cpsoct</emphasis>(ioct) <emphasis role="comment">;convert octave-point-decimal value into Hz</emphasis>
+kenv <emphasis role="opc">madsr</emphasis> 0.5, 0.8, 0.8, 0.5 <emphasis role="comment">;amplitude envelope multiplied by</emphasis>
+asig <emphasis role="opc">pluck</emphasis> kenv<emphasis role="op">*</emphasis>kvel, icps, icps, 2, 1 <emphasis role="comment">;velocity value </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs for 30 seconds</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1
-<emphasis role="comment">; Play Instrument #1 for ten seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">i</emphasis> 1 0 2 8.000 100 <emphasis role="comment">; play these notes from score as well</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 8.917 100
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/midinoteonpch.csd.xml b/examples-xml/midinoteonpch.csd.xml
index 97767a9..8ca4a1b 100644
--- a/examples-xml/midinoteonpch.csd.xml
+++ b/examples-xml/midinoteonpch.csd.xml
@@ -2,39 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -M1 <emphasis role="comment">;;;realtime audio out and midi in </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o midinoteonpch.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kpch <emphasis role="opc">init</emphasis> 0
- kvelocity <emphasis role="opc">init</emphasis> 0
- <emphasis role="opc">midinoteonpch</emphasis> kpch, kvelocity
-
- <emphasis role="comment">; Display the pitch-class value when it changes.</emphasis>
- <emphasis role="opc">printk2</emphasis> kpch
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="opc">midinoteonpch</emphasis> p4, p5 <emphasis role="comment">;gets a MIDI note number value as octave-point-decimal value into p4, and MIDI velocity into p5</emphasis>
+<emphasis role="opc">print</emphasis> p4 <emphasis role="comment">;display the pitch value when it changes and when key is pressed </emphasis>
+kvel <emphasis role="op">=</emphasis> kvel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;scale midi velocity to 0-1</emphasis>
+ipch <emphasis role="op">=</emphasis> p4
+icps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(ipch) <emphasis role="comment">;convert octave-point-decimal value into Hz</emphasis>
+kenv <emphasis role="opc">madsr</emphasis> 0.5, 0.8, 0.8, 0.5 <emphasis role="comment">;amplitude envelope multiplied by</emphasis>
+asig <emphasis role="opc">pluck</emphasis> kenv<emphasis role="op">*</emphasis>kvel, icps, icps, 2, 1 <emphasis role="comment">;velocity value </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs for 30 seconds</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1
-<emphasis role="comment">; Play Instrument #1 for ten seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">i</emphasis> 1 0 2 8.09 100 <emphasis role="comment">; play these notes from score as well</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 9.05 100
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/midion2.csd.xml b/examples-xml/midion2.csd.xml
new file mode 100644
index 0000000..672119e
--- /dev/null
+++ b/examples-xml/midion2.csd.xml
@@ -0,0 +1,29 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+ -M0 -Q1 <emphasis role="comment">;;;midi in and midi out</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="opc">line</emphasis> 3, p3, .1
+klf <emphasis role="opc">lfo</emphasis> 1, kcps, 3 <emphasis role="comment">;use a unipolar square to trigger</emphasis>
+ktr <emphasis role="opc">trigger</emphasis> klf, 1, 1 <emphasis role="comment">;from 3 times to .1 time per sec.</emphasis>
+ <emphasis role="opc">midion2</emphasis> 1, 60, 100, ktr
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 20
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/midiout.csd.xml b/examples-xml/midiout.csd.xml
new file mode 100644
index 0000000..a71c395
--- /dev/null
+++ b/examples-xml/midiout.csd.xml
@@ -0,0 +1,31 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in</emphasis>
+-odac -Ma -Q1 <emphasis role="comment">;;;realtime audio out and midi out and midi in (all midi inputs)</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="opc">midiout</emphasis> 192, 1, 21, 0 <emphasis role="comment">;program change to instr. 21</emphasis>
+inum <emphasis role="opc">notnum</emphasis>
+ivel <emphasis role="opc">veloc</emphasis>
+<emphasis role="opc">midion</emphasis> 1, inum, ivel
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3 80 100 <emphasis role="comment">;play note for 3 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/midipitchbend.csd.xml b/examples-xml/midipitchbend.csd.xml
index 07f938c..73c54bd 100644
--- a/examples-xml/midipitchbend.csd.xml
+++ b/examples-xml/midipitchbend.csd.xml
@@ -2,38 +2,42 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -M1 <emphasis role="comment">;;;realtime audio out and midi in </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o midipitchbend.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kpb <emphasis role="opc">init</emphasis> 0
- <emphasis role="opc">midipitchbend</emphasis> kpb
-
- <emphasis role="comment">; Display the pitch-bend value when it changes.</emphasis>
- <emphasis role="opc">printk2</emphasis> kpb
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="opc">midinoteonoct</emphasis> p4, p5 <emphasis role="comment">;gets a MIDI note number value as octave-point-decimal value into p4, and MIDI velocity into p5</emphasis>
+kvel <emphasis role="op">=</emphasis> p5<emphasis role="op">/</emphasis>127 <emphasis role="comment">;scale midi velocity to 0-1</emphasis>
+kpb <emphasis role="opc">init</emphasis> 0
+<emphasis role="opc">midipitchbend</emphasis> kpb
+<emphasis role="opc">printk2</emphasis> kpb <emphasis role="comment">;display the pitch-bend value when it changes</emphasis>
+koct <emphasis role="op">=</emphasis> p4<emphasis role="op">+</emphasis>kpb <emphasis role="comment">;add pitchbend values to octave-point-decimal value</emphasis>
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpsoct</emphasis>(koct) <emphasis role="comment">;convert octave-point-decimal value into Hz </emphasis>
+kenv <emphasis role="opc">madsr</emphasis> 0.5, 0.8, 0.8, 0.5 <emphasis role="comment">;amplitude envelope multiplied by</emphasis>
+asig <emphasis role="opc">vco2</emphasis> kenv<emphasis role="op">*</emphasis>kvel, kcps <emphasis role="comment">;velocity value </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs for 30 seconds</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1
-<emphasis role="comment">; Play Instrument #1 for ten seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">i</emphasis> 1 0 2 8.000 100 <emphasis role="comment">; play these notes from score as well</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 8.917 100
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/midipolyaftertouch.csd.xml b/examples-xml/midipolyaftertouch.csd.xml
new file mode 100644
index 0000000..1846bb9
--- /dev/null
+++ b/examples-xml/midipolyaftertouch.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -M1 <emphasis role="comment">;;;realtime audio out and midi in </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o midipolyaftertouch.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1<emphasis role="comment">;midi keyboard and score are used</emphasis>
+
+<emphasis role="opc">midinoteoncps</emphasis> p4, p5 <emphasis role="comment">;puts MIDI key translated to cycles per second into p4, and MIDI velocity into p5</emphasis>
+
+kafter <emphasis role="opc">init</emphasis> 127 <emphasis role="comment">;full open </emphasis>
+<emphasis role="opc">midipolyaftertouch</emphasis> kafter, 1
+<emphasis role="opc">printk2</emphasis> kafter <emphasis role="comment">;display the key value when it changes and when key is pressed</emphasis>
+
+kvel <emphasis role="op">=</emphasis> p5<emphasis role="op">/</emphasis>127 <emphasis role="comment">;scale midi velocity to 0-1</emphasis>
+kenv <emphasis role="opc">madsr</emphasis> 0.5, 0.8, 0.8, 0.5 <emphasis role="comment">;amplitude envelope multiplied by</emphasis>
+ain <emphasis role="opc">pluck</emphasis> kenv<emphasis role="op">*</emphasis>kvel, p4, p4, 2, 1 <emphasis role="comment">;velocity value </emphasis>
+asig <emphasis role="opc">moogvcf2</emphasis> ain, 300<emphasis role="op">+</emphasis>(kafter<emphasis role="op">*</emphasis>100), .5 <emphasis role="comment">;use value of aftertouch to control frequency of filter</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig <emphasis role="comment">;base freq of filter = 300 Hz</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs for 30 seconds</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 440 100 <emphasis role="comment">;play these notes from score as well</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 1440 100
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/midiprogramchange.csd.xml b/examples-xml/midiprogramchange.csd.xml
new file mode 100644
index 0000000..16e78fd
--- /dev/null
+++ b/examples-xml/midiprogramchange.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -M1 -Q1 <emphasis role="comment">;;;realtime audio out and midi in and midi out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o midiprogramchange.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;uses external midi device</emphasis>
+
+kkey <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">;initialize key number</emphasis>
+kvel <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">;initialize velocity</emphasis>
+<emphasis role="opc">midiprogramchange</emphasis> 52 <emphasis role="comment">;choose GM program number 52 = string pad</emphasis>
+<emphasis role="opc">midinoteonkey</emphasis> kkey, kvel <emphasis role="comment">;MIDI note number value</emphasis>
+<emphasis role="opc">printk2</emphasis> kkey <emphasis role="comment">;display the key value when it changes and when key is pressed </emphasis>
+<emphasis role="opc">midion</emphasis> 1, kkey, kvel <emphasis role="comment">;sent note to external device</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs for 30 seconds </emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 62 <emphasis role="comment">; play these notes from score as well</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 65
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/miditempo.csd.xml b/examples-xml/miditempo.csd.xml
new file mode 100644
index 0000000..0dbed69
--- /dev/null
+++ b/examples-xml/miditempo.csd.xml
@@ -0,0 +1,40 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -F Anna.mid <emphasis role="comment">;;;realtime audio out and midi file input</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o miditempo.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">massign</emphasis> 0, 1 <emphasis role="comment">; make sure that all channels</emphasis>
+<emphasis role="ohdr">pgmassign</emphasis> 0, 1 <emphasis role="comment">; and programs are assigned to test instr</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ksig <emphasis role="opc">miditempo</emphasis>
+<emphasis role="opc">prints</emphasis> "miditempo <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\\n", ksig
+
+icps <emphasis role="opc">cpsmidi</emphasis> <emphasis role="comment">; convert midi note to pitch</emphasis>
+kenv <emphasis role="opc">madsr</emphasis> 0.1, 0, 0.8, 0.3
+asig <emphasis role="opc">pluck</emphasis> kenv<emphasis role="op">*</emphasis>.15, icps, icps, 1, 1 <emphasis role="comment">;low volume </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis> 0 200 <emphasis role="comment">;stay active for 120 seconds</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1 <emphasis role="comment">;sine</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/min.csd.xml b/examples-xml/min.csd.xml
new file mode 100644
index 0000000..208542f
--- /dev/null
+++ b/examples-xml/min.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o min.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+k1 <emphasis role="opc">oscili</emphasis> 1, 10.0, 1 <emphasis role="comment">;combine 3 sinusses</emphasis>
+k2 <emphasis role="opc">oscili</emphasis> 1, 1.0, 1 <emphasis role="comment">;at different rates</emphasis>
+k3 <emphasis role="opc">oscili</emphasis> 1, 3.0, 1
+kmin <emphasis role="opc">min</emphasis> k1, k2, k3
+kmin <emphasis role="op">=</emphasis> kmin<emphasis role="op">*</emphasis>250 <emphasis role="comment">;scale kmin</emphasis>
+<emphasis role="opc">printk2</emphasis> kmin <emphasis role="comment">;check the values</emphasis>
+
+aout <emphasis role="opc">vco2</emphasis> .5, 220, 6 <emphasis role="comment">;sawtooth</emphasis>
+asig <emphasis role="opc">moogvcf2</emphasis> aout, 600<emphasis role="op">+</emphasis>kmin, .5 <emphasis role="comment">;change filter around 600 Hz </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis>1 0 32768 10 1
+
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/minabs.csd.xml b/examples-xml/minabs.csd.xml
new file mode 100644
index 0000000..b47e946
--- /dev/null
+++ b/examples-xml/minabs.csd.xml
@@ -0,0 +1,40 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o minabs.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+k1 <emphasis role="opc">oscili</emphasis> 1, 10.0, 1 <emphasis role="comment">;combine 3 sinusses</emphasis>
+k2 <emphasis role="opc">oscili</emphasis> 1, 1.0, 1 <emphasis role="comment">;at different rates</emphasis>
+k3 <emphasis role="opc">oscili</emphasis> 1, 3.0, 1
+kmin <emphasis role="opc">minabs</emphasis> k1, k2, k3
+kmin <emphasis role="op">=</emphasis> kmin<emphasis role="op">*</emphasis>250 <emphasis role="comment">;scale kmin</emphasis>
+<emphasis role="opc">printk2</emphasis> kmin <emphasis role="comment">;check the values</emphasis>
+
+aout <emphasis role="opc">vco2</emphasis> .5, 220, 6 <emphasis role="comment">;sawtooth</emphasis>
+asig <emphasis role="opc">moogvcf2</emphasis> aout, 600<emphasis role="op">+</emphasis>kmin, .5 <emphasis role="comment">;change filter above 600 Hz </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 32768 10 1
+
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/minabsaccum.csd.xml b/examples-xml/minabsaccum.csd.xml
new file mode 100644
index 0000000..cfec6ef
--- /dev/null
+++ b/examples-xml/minabsaccum.csd.xml
@@ -0,0 +1,56 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o minabsaccum.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;saw</emphasis>
+
+asig <emphasis role="opc">vco2</emphasis> .2, p4
+ <emphasis role="opc">outs</emphasis> asig, asig
+gasaw <emphasis role="op">=</emphasis> asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;sine</emphasis>
+
+aout <emphasis role="opc">poscil</emphasis> .3, p4, 1
+ <emphasis role="opc">outs</emphasis> aout, aout
+gasin <emphasis role="op">=</emphasis> aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 10
+
+accum <emphasis role="opc">init</emphasis> 0
+ <emphasis role="opc">minabsaccum</emphasis> accum, gasaw <emphasis role="op">+</emphasis> gasin <emphasis role="comment">;saw and sine accumulated </emphasis>
+accum <emphasis role="opc">dcblock2</emphasis> accum <emphasis role="comment">;get rid of DC</emphasis>
+ <emphasis role="opc">outs</emphasis> accum, accum
+
+<emphasis role="opc">clear</emphasis> accum
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 7 330
+<emphasis role="stamnt">i</emphasis> 2 3 3 440
+
+<emphasis role="stamnt">i</emphasis> 1 10 7 330 <emphasis role="comment">;same notes but without minabsaccum, for comparison</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 13 3 440
+
+<emphasis role="stamnt">i</emphasis> 10 0 6 <emphasis role="comment">;accumulation note stops after 6 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/minaccum.csd.xml b/examples-xml/minaccum.csd.xml
new file mode 100644
index 0000000..61513cb
--- /dev/null
+++ b/examples-xml/minaccum.csd.xml
@@ -0,0 +1,56 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o minaccum.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;saw</emphasis>
+
+asig <emphasis role="opc">vco2</emphasis> .2, p4
+ <emphasis role="opc">outs</emphasis> asig, asig
+gasaw <emphasis role="op">=</emphasis> asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;sine</emphasis>
+
+aout <emphasis role="opc">poscil</emphasis> .3, p4, 1
+ <emphasis role="opc">outs</emphasis> aout, aout
+gasin <emphasis role="op">=</emphasis> aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 10
+
+accum <emphasis role="opc">init</emphasis> 0
+ <emphasis role="opc">minaccum</emphasis> accum, gasaw <emphasis role="op">+</emphasis> gasin <emphasis role="comment">;saw and sine accumulated </emphasis>
+ <emphasis role="opc">outs</emphasis> accum, accum
+
+<emphasis role="opc">clear</emphasis> accum
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 7 330
+<emphasis role="stamnt">i</emphasis> 2 3 3 440
+
+<emphasis role="stamnt">i</emphasis> 1 10 7 330 <emphasis role="comment">;same notes but without minaccum, for comparison</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 13 3 440
+
+<emphasis role="stamnt">i</emphasis> 10 0 6 <emphasis role="comment">;accumulation note stops after 6 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/minarray.csd.xml b/examples-xml/minarray.csd.xml
new file mode 100644
index 0000000..db93ae2
--- /dev/null
+++ b/examples-xml/minarray.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by joachim heintz</emphasis>
+
+ <emphasis role="ohdr">seed</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">;create an array with 10 elements</emphasis>
+kArr[] <emphasis role="opc">init</emphasis> 10
+<emphasis role="comment">;fill in random numbers and print them out</emphasis>
+kIndx <emphasis role="op">=</emphasis> 0
+ until kIndx <emphasis role="op">==</emphasis> 10 do
+kNum <emphasis role="opc">random</emphasis> <emphasis role="op">-</emphasis>100, 100
+kArr[kIndx] <emphasis role="op">=</emphasis> kNum
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>10f\n", kIndx<emphasis role="op">+</emphasis>1, kIndx, kNum
+kIndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+<emphasis role="comment">;investigate minimum number and print it out</emphasis>
+kMin, kMinIndx <emphasis role="opc">minarray</emphasis> kArr
+ <emphasis role="opc">printf</emphasis> "Minimum of kArr <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f at index <emphasis role="op">%</emphasis>d\n", kIndx<emphasis role="op">+</emphasis>1, kMin, kMinIndx
+ <emphasis role="opc">turnoff</emphasis>
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 0.1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/mincer.csd.xml b/examples-xml/mincer.csd.xml
new file mode 100644
index 0000000..69a6a5a
--- /dev/null
+++ b/examples-xml/mincer.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o mincer.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+idur <emphasis role="op">=</emphasis> p3
+ilock <emphasis role="op">=</emphasis> p4
+ipitch <emphasis role="op">=</emphasis> 1
+itimescale <emphasis role="op">=</emphasis> 0.5
+iamp <emphasis role="op">=</emphasis> 0.8
+
+atime <emphasis role="opc">line</emphasis> 0,idur,idur<emphasis role="op">*</emphasis>itimescale
+asig <emphasis role="opc">mincer</emphasis> atime, iamp, ipitch, 1, ilock
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 0
+
+<emphasis role="stamnt">i</emphasis> 1 0 5 0 <emphasis role="comment">;not locked</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 6 5 1 <emphasis role="comment">;locked</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/mintab.csd.xml b/examples-xml/mintab.csd.xml
new file mode 100644
index 0000000..d713b6a
--- /dev/null
+++ b/examples-xml/mintab.csd.xml
@@ -0,0 +1,17 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+ t1 <emphasis role="opc">init</emphasis> 10
+ t1[3] <emphasis role="op">=</emphasis> 42
+ k1 <emphasis role="opc">mintab</emphasis> t1
+ <emphasis role="opc">printk2</emphasis> k1
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 0.1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/mirror.csd.xml b/examples-xml/mirror.csd.xml
new file mode 100644
index 0000000..6238fa6
--- /dev/null
+++ b/examples-xml/mirror.csd.xml
@@ -0,0 +1,55 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o mirror.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; Limit / Mirror / Wrap</emphasis>
+
+igain <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;gain</emphasis>
+ilevl1 <emphasis role="op">=</emphasis> p5 <emphasis role="comment">; + level</emphasis>
+ilevl2 <emphasis role="op">=</emphasis> p6 <emphasis role="comment">; - level</emphasis>
+imode <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;1 = limit, 2 = mirror, 3 = wrap</emphasis>
+
+ain <emphasis role="opc">soundin</emphasis> "fox.wav"
+ain <emphasis role="op">=</emphasis> ain<emphasis role="op">*</emphasis>igain
+
+<emphasis role="octrl">if</emphasis> imode <emphasis role="op">=</emphasis> 1 <emphasis role="octrl">goto</emphasis> <emphasis role="olabel">limit</emphasis>
+<emphasis role="octrl">if</emphasis> imode <emphasis role="op">=</emphasis> 2 <emphasis role="octrl">goto</emphasis> <emphasis role="olabel">mirror</emphasis>
+
+asig <emphasis role="opc">wrap</emphasis> ain, ilevl2, ilevl1
+<emphasis role="octrl">goto</emphasis> <emphasis role="olabel">outsignal</emphasis>
+
+<emphasis role="olabel">limit</emphasis><emphasis role="op">:</emphasis>
+asig <emphasis role="olabel">limit</emphasis> ain, ilevl2, ilevl1
+<emphasis role="octrl">goto</emphasis> <emphasis role="olabel">outsignal</emphasis>
+
+<emphasis role="olabel">mirror</emphasis><emphasis role="op">:</emphasis>
+asig <emphasis role="olabel">mirror</emphasis> ain, ilevl2, ilevl1
+<emphasis role="olabel">outsignal</emphasis><emphasis role="op">:</emphasis>
+
+<emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>.5, asig<emphasis role="op">*</emphasis>.5 <emphasis role="comment">;mind your speakers</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; Gain +Levl -Levl Mode</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 3 4.00 .25 -1.00 1 <emphasis role="comment">;limit</emphasis>
+<emphasis role="stamnt">i</emphasis>1 4 3 4.00 .25 -1.00 2 <emphasis role="comment">;mirror</emphasis>
+<emphasis role="stamnt">i</emphasis>1 8 3 4.00 .25 -1.00 3 <emphasis role="comment">;wrap</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/mode.csd.xml b/examples-xml/mode.csd.xml
index e539a6d..52bc3f7 100644
--- a/examples-xml/mode.csd.xml
+++ b/examples-xml/mode.csd.xml
@@ -41,7 +41,7 @@ aexc <emphasis role="op">=</emphasis> (aexc1<emphasis role="op">+</emphasis>aexc
<emphasis role="comment">;"Contact" condition : when aexc reaches 0, the excitator looses </emphasis>
<emphasis role="comment">;contact with the resonator, and stops "pushing it"</emphasis>
-aexc <emphasis role="opc">limit</emphasis> aexc,0,3<emphasis role="op">*</emphasis>iamp
+aexc limit aexc,0,3<emphasis role="op">*</emphasis>iamp
<emphasis role="comment">; 2modes resonator</emphasis>
diff --git a/examples-xml/modulus.csd.xml b/examples-xml/modulus.csd.xml
index 97b76ea..c18285d 100644
--- a/examples-xml/modulus.csd.xml
+++ b/examples-xml/modulus.csd.xml
@@ -2,34 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac -Ma --midi-key=4 --midi-velocity-amp=5 -m0 <emphasis role="comment">;;;realtime audio out and midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o modulus.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o %.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giScale <emphasis role="ohdr">ftgen</emphasis> 1, 0, <emphasis role="op">-</emphasis>12, <emphasis role="op">-</emphasis>2, 0, <emphasis role="op">-</emphasis>34, <emphasis role="op">-</emphasis>7, 10, <emphasis role="op">-</emphasis>14, 3, <emphasis role="op">-</emphasis>21, <emphasis role="op">-</emphasis>3, <emphasis role="op">-</emphasis>27, <emphasis role="op">-</emphasis>10, 7, <emphasis role="op">-</emphasis>17 <emphasis role="comment">;12 note scale with detuned keys</emphasis>
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="op">=</emphasis> 5 <emphasis role="op">%</emphasis> 3
- <emphasis role="opc">print</emphasis> i1
-<emphasis role="oblock">endin</emphasis>
+ikey <emphasis role="op">=</emphasis> p4
+ivel <emphasis role="op">=</emphasis> p5
+indx <emphasis role="op">=</emphasis> ikey <emphasis role="op">%</emphasis> 12 <emphasis role="comment">;work on the twelftone scale</emphasis>
+icent <emphasis role="opc">tab_i</emphasis> indx, giScale <emphasis role="comment">;load the scale</emphasis>
+ifreqeq <emphasis role="op">=</emphasis> <emphasis role="opc">cpsmidinn</emphasis>(ikey)
+ifreq <emphasis role="op">=</emphasis> ifreqeq <emphasis role="op">*</emphasis> <emphasis role="opc">cent</emphasis>(icent) <emphasis role="comment">;change frequency by cents from table</emphasis>
+<emphasis role="opc">prints</emphasis> "Key <emphasis role="op">%</emphasis>d modulus 12 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d. ", ikey, indx
+<emphasis role="opc">prints</emphasis> "Equal<emphasis role="op">-</emphasis>tempered frequency of this key <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f,", ifreqeq
+<emphasis role="opc">prints</emphasis> " but here with <emphasis role="opc">cent</emphasis> deviation <emphasis role="op">%</emphasis>d <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f<emphasis role="op">%</emphasis>n", icent, ifreq
+asig <emphasis role="opc">vco2</emphasis> ivel<emphasis role="op">*</emphasis>.5, ifreq
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 60 <emphasis role="comment">;run for 60 seconds</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/monitor.csd.xml b/examples-xml/monitor.csd.xml
new file mode 100644
index 0000000..d6dfee3
--- /dev/null
+++ b/examples-xml/monitor.csd.xml
@@ -0,0 +1,56 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o monitor.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">poscil3</emphasis> .5, 880, giSine
+<emphasis role="comment">;write a raw file: 32 bits with header</emphasis>
+ <emphasis role="opc">fout</emphasis> "fout_880.wav", 15, asig
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+klfo <emphasis role="opc">lfo</emphasis> 1, 2, 0
+asig <emphasis role="opc">poscil3</emphasis> .5<emphasis role="op">*</emphasis>klfo, 220, giSine
+<emphasis role="comment">;write an aiff file: 32 bits with header</emphasis>
+ <emphasis role="opc">fout</emphasis> "fout_aif.aiff", 25, asig
+<emphasis role="comment">; fout "fout_all3.wav", 14, asig</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">;read the stereo csound output buffer</emphasis>
+
+allL, allR <emphasis role="opc">monitor</emphasis>
+<emphasis role="comment">;write the output of csound to an audio file</emphasis>
+<emphasis role="comment">;to a wav file: 16 bits with header</emphasis>
+ <emphasis role="opc">fout</emphasis> "fout_all.wav", 14, allL, allR
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 2 0 3
+<emphasis role="stamnt">i</emphasis> 99 0 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/moog.csd.xml b/examples-xml/moog.csd.xml
index 8bec256..7f30beb 100644
--- a/examples-xml/moog.csd.xml
+++ b/examples-xml/moog.csd.xml
@@ -2,54 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o moog.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 22050
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 2205
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- kfreq <emphasis role="op">=</emphasis> 220
- kfiltq <emphasis role="op">=</emphasis> 0.81
- kfiltrate <emphasis role="op">=</emphasis> 0
- kvibf <emphasis role="op">=</emphasis> 1.4
- kvamp <emphasis role="op">=</emphasis> 2.22
- iafn <emphasis role="op">=</emphasis> 1
- iwfn <emphasis role="op">=</emphasis> 2
- ivfn <emphasis role="op">=</emphasis> 3
- am <emphasis role="opc">moog</emphasis> kamp, kfreq, kfiltq, kfiltrate, kvibf, kvamp, iafn, iwfn, ivfn
+kfreq <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+kfiltq <emphasis role="op">=</emphasis> p5
+kfiltrate <emphasis role="op">=</emphasis> 0.0002
+kvibf <emphasis role="op">=</emphasis> 5
+kvamp <emphasis role="op">=</emphasis> .01
+<emphasis role="comment">;low volume is needed</emphasis>
+asig <emphasis role="opc">moog</emphasis> .15, kfreq, kfiltq, kfiltrate, kvibf, kvamp, 1, 2, 3
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; It tends to get loud, so clip moog's amplitude at 30,000.</emphasis>
- a1 <emphasis role="opc">clip</emphasis> am, 2, 30000
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1: the "mandpluk.aiff" audio file</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 8192 1 "mandpluk.ai<emphasis role="stamnt">f</emphasis><emphasis role="stamnt">f</emphasis>" 0 0 0
-<emphasis role="comment">; Table #2: the "impuls20.aiff" audio file</emphasis>
<emphasis role="stamnt">f</emphasis> 2 0 256 1 "impuls20.ai<emphasis role="stamnt">f</emphasis><emphasis role="stamnt">f</emphasis>" 0 0 0
-<emphasis role="comment">; Table #3: a sine wave</emphasis>
-<emphasis role="stamnt">f</emphasis> 3 0 256 10 1
+<emphasis role="stamnt">f</emphasis> 3 0 256 10 1 <emphasis role="comment">; sine</emphasis>
-<emphasis role="comment">; Play Instrument #1 for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">i</emphasis> 1 0 3 6.00 .1
+<emphasis role="stamnt">i</emphasis> 1 + 3 6.05 .89
+<emphasis role="stamnt">i</emphasis> 1 + 3 6.09 .50
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/moogladder.csd.xml b/examples-xml/moogladder.csd.xml
index d8a22f8..fe39669 100644
--- a/examples-xml/moogladder.csd.xml
+++ b/examples-xml/moogladder.csd.xml
@@ -1,31 +1,33 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
-
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o moogladder.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-kfe <emphasis role="opc">expseg</emphasis> 500, p3<emphasis role="op">*</emphasis>0.9, 1800, p3<emphasis role="op">*</emphasis>0.1, 3000
-kenv <emphasis role="opc">linen</emphasis> 30000, 0.05, p3, 0.05
-asig <emphasis role="opc">buzz</emphasis> kenv, 100, 15, 1
-afil <emphasis role="opc">moogladder</emphasis> asig, kfe, .9
- <emphasis role="opc">out</emphasis> afil
-<emphasis role="oblock">endin</emphasis>
+kfe <emphasis role="opc">expseg</emphasis> 500, p3<emphasis role="op">*</emphasis>0.9, 1800, p3<emphasis role="op">*</emphasis>0.1, 3000
+asig <emphasis role="opc">buzz</emphasis> 1, 100, 20, 1
+kres <emphasis role="opc">line</emphasis> .1, p3, .99 <emphasis role="comment">;increase resonance</emphasis>
+afil <emphasis role="opc">moogladder</emphasis> asig, kfe, kres
+ <emphasis role="opc">outs</emphasis> afil, afil
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; sinuso in table 1</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 3
-
+<emphasis role="stamnt">i</emphasis> 1 0 10
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/moogvcf.csd.xml b/examples-xml/moogvcf.csd.xml
index ae09dee..53d1573 100644
--- a/examples-xml/moogvcf.csd.xml
+++ b/examples-xml/moogvcf.csd.xml
@@ -2,50 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o moogvcf.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use a nice sawtooth waveform.</emphasis>
- asig <emphasis role="opc">vco</emphasis> 32000, 220, 1
+<emphasis role="comment">; iscale does not need to be set here because already 0dbfs = 1 </emphasis>
+aout <emphasis role="opc">vco</emphasis> .3, 220, 1 <emphasis role="comment">; Use a nice sawtooth waveform.</emphasis>
+kfco <emphasis role="opc">line</emphasis> 200, p3, 2000 <emphasis role="comment">; filter-cutoff frequency from .2 to 2 KHz</emphasis>
+krez <emphasis role="opc">init</emphasis> p4
+asig <emphasis role="opc">moogvcf</emphasis> aout, kfco, krez
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; Vary the filter-cutoff frequency from .2 to 2 KHz.</emphasis>
- kfco <emphasis role="opc">line</emphasis> 200, p3, 2000
-
- <emphasis role="comment">; Set the resonance amount to one.</emphasis>
- krez <emphasis role="opc">init</emphasis> 1
-
- <emphasis role="comment">; Scale the amplitude to 32768.</emphasis>
- iscale <emphasis role="op">=</emphasis> 32768
-
- a1 <emphasis role="opc">moogvcf</emphasis> asig, kfco, krez, iscale
-
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave for the vco opcode.</emphasis>
+<emphasis role="comment">;a sine wave</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">i</emphasis> 1 0 3 .1
+<emphasis role="stamnt">i</emphasis> 1 + 3 .7
+<emphasis role="stamnt">i</emphasis> 1 + 3 .95
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/moogvcf2.csd.xml b/examples-xml/moogvcf2.csd.xml
index 8bfa296..35aee59 100644
--- a/examples-xml/moogvcf2.csd.xml
+++ b/examples-xml/moogvcf2.csd.xml
@@ -2,47 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o moogvcf.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o moogvcf2.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use a nice sawtooth waveform.</emphasis>
- asig <emphasis role="opc">vco</emphasis> 32000, 220, 1
+
+aout <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
+kfco <emphasis role="opc">line</emphasis> 100, p3, 10000 <emphasis role="comment">;filter-cutoff</emphasis>
+krez <emphasis role="opc">init</emphasis> p4
+asig <emphasis role="opc">moogvcf2</emphasis> aout, kfco, krez
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; Vary the filter-cutoff frequency from .2 to 2 KHz.</emphasis>
- kfco <emphasis role="opc">line</emphasis> 200, p3, 2000
-
- <emphasis role="comment">; Set the resonance amount to one.</emphasis>
- krez <emphasis role="opc">init</emphasis> 1
-
- a1 <emphasis role="opc">moogvcf2</emphasis> asig, kfco, krez
-
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave for the vco opcode.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">i</emphasis> 1 0 4 .1
+<emphasis role="stamnt">i</emphasis> 1 + 4 .6
+<emphasis role="stamnt">i</emphasis> 1 + 4 .9
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/mp3in.csd.xml b/examples-xml/mp3in.csd.xml
index e306b92..8929d33 100644
--- a/examples-xml/mp3in.csd.xml
+++ b/examples-xml/mp3in.csd.xml
@@ -2,40 +2,31 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o mp3in.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-iskptim <emphasis role="op">=</emphasis> .3
-ibufsize <emphasis role="op">=</emphasis> 64
-<emphasis role="comment">; Reads stereo audio data from an external MP3 file</emphasis>
-ar1, ar2 mp3in "beats.mp3", iskptim, 0, 0, ibufsize
+iskptim <emphasis role="op">=</emphasis> .3
+ibufsize <emphasis role="op">=</emphasis> 64
+ar1, ar2 <emphasis role="opc">mp3in</emphasis> "beats.mp3", iskptim, 0, 0, ibufsize
+ <emphasis role="opc">outs</emphasis> ar1, ar2
- <emphasis role="opc">out</emphasis> ar1, ar2
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Play Instrument #1 for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1.7
+<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/mp3len.csd.xml b/examples-xml/mp3len.csd.xml
new file mode 100644
index 0000000..7eac544
--- /dev/null
+++ b/examples-xml/mp3len.csd.xml
@@ -0,0 +1,33 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o mp3len.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ilen <emphasis role="opc">mp3len</emphasis> p4 <emphasis role="comment">;calculate length of mp3 file</emphasis>
+<emphasis role="opc">print</emphasis> ilen
+
+asigL, asigR <emphasis role="opc">mp3in</emphasis> p4
+ <emphasis role="opc">outs</emphasis> asigL, asigR
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 30 "XORNOT_jul-14-05.mp3" <emphasis role="comment">; long signal</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/multiplies.csd.xml b/examples-xml/multiplies.csd.xml
index a784a72..776dd1c 100644
--- a/examples-xml/multiplies.csd.xml
+++ b/examples-xml/multiplies.csd.xml
@@ -2,33 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o multiplies.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="op">=</emphasis> 24 <emphasis role="op">*</emphasis> 8
- <emphasis role="opc">print</emphasis> i1
-<emphasis role="oblock">endin</emphasis>
+kenv <emphasis role="opc">expon</emphasis> 0.01, p3, 1
+aout <emphasis role="opc">poscil</emphasis> 0.8<emphasis role="op">*</emphasis>kenv, 440, 1 <emphasis role="comment">;multiply amplitude from 0 to 1 * 0.8</emphasis>
+<emphasis role="opc">printks</emphasis> "base amplitude <emphasis role="op">*</emphasis> rising <emphasis role="opc">expon</emphasis> output <emphasis role="op">=</emphasis> 0.8 <emphasis role="op">*</emphasis> <emphasis role="op">%</emphasis>f\n", .1, kenv
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">; sine wave</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2
+
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/multitap.csd.xml b/examples-xml/multitap.csd.xml
index 1874946..0480074 100644
--- a/examples-xml/multitap.csd.xml
+++ b/examples-xml/multitap.csd.xml
@@ -1,38 +1,42 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
-
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o multitap.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
ga1 <emphasis role="opc">init</emphasis> 0
<emphasis role="oblock">instr</emphasis> 1
-a1 <emphasis role="opc">oscil</emphasis> 10000, 1000, 1
- <emphasis role="opc">out</emphasis> a1
+
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1,0
+ <emphasis role="opc">outs</emphasis> asig, asig
-ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>a1
+ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2
-a2 <emphasis role="opc">multitap</emphasis> ga1, 1.2, .5, 1.4, .2
- <emphasis role="opc">out</emphasis> a2
+
+asig <emphasis role="opc">multitap</emphasis> ga1, 1.2, .5, 1.4, .2
+ <emphasis role="opc">outs</emphasis> asig, asig
-ga1 <emphasis role="op">=</emphasis> 0
+ga1 <emphasis role="op">=</emphasis> 0
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; make sinusoid in table 1</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
-<emphasis role="stamnt">i</emphasis> 1 .5 .1
-<emphasis role="stamnt">i</emphasis> 2 0 3
+<emphasis role="stamnt">i</emphasis> 1 .5 .2 <emphasis role="comment">; short sound</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 0 3 <emphasis role="comment">; echoes</emphasis>
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/mute.csd.xml b/examples-xml/mute.csd.xml
index 8ec2e59..938f769 100644
--- a/examples-xml/mute.csd.xml
+++ b/examples-xml/mute.csd.xml
@@ -2,55 +2,49 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o mute.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="comment">; Mute Instrument #2.</emphasis>
<emphasis role="opc">mute</emphasis> 2
<emphasis role="comment">; Mute Instrument three.</emphasis>
<emphasis role="opc">mute</emphasis> "three"
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- a1 <emphasis role="opc">oscils</emphasis> 0.2, 440, 0
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #2.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- a1 <emphasis role="opc">oscils</emphasis> 0.2, 880, 0
- <emphasis role="opc">out</emphasis> a1
+a1 <emphasis role="opc">oscils</emphasis> 0.2, 440, 0
+ <emphasis role="opc">outs</emphasis> a1, a1
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #3.</emphasis>
-<emphasis role="oblock">instr</emphasis> three
- a1 <emphasis role="opc">oscils</emphasis> 0.2, 1000, 0
- <emphasis role="opc">out</emphasis> a1
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; gets muted</emphasis>
+
+a1 <emphasis role="opc">oscils</emphasis> 0.2, 880, 0
+ <emphasis role="opc">outs</emphasis> a1, a1
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> three <emphasis role="comment">; gets muted</emphasis>
+
+a1 <emphasis role="opc">oscils</emphasis> 0.2, 1000, 0
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="comment">; Play Instrument #2 for one second.</emphasis>
<emphasis role="stamnt">i</emphasis> 2 0 1
-<emphasis role="comment">; Play Instrument three for one second.</emphasis>
<emphasis role="stamnt">i</emphasis> "three" 0 1
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/mxadsr.csd.xml b/examples-xml/mxadsr.csd.xml
new file mode 100644
index 0000000..0efcc5e
--- /dev/null
+++ b/examples-xml/mxadsr.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o mxadsr.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+icps <emphasis role="opc">cpsmidi</emphasis>
+iamp <emphasis role="opc">ampmidi</emphasis> .5
+
+kenv <emphasis role="opc">mxadsr</emphasis> 0.5, 0, 1, 0.5
+asig <emphasis role="opc">pluck</emphasis> kenv, icps, icps, 2, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 4096 10 1
+
+<emphasis role="stamnt">f</emphasis>0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/nchnls.csd.xml b/examples-xml/nchnls.csd.xml
new file mode 100644
index 0000000..752b9e3
--- /dev/null
+++ b/examples-xml/nchnls.csd.xml
@@ -0,0 +1,33 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -idac <emphasis role="comment">;;;realtime audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; nchnls.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2 <emphasis role="comment">;two channels out</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ain1, ainr <emphasis role="opc">ins</emphasis> <emphasis role="comment">;grab your mic and sing</emphasis>
+adel <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 0.02, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;max delay time = 20ms</emphasis>
+aoutl <emphasis role="opc">flanger</emphasis> ain1, adel, .7
+aoutr <emphasis role="opc">flanger</emphasis> ain1, adel<emphasis role="op">*</emphasis>2, .8
+ <emphasis role="opc">fout</emphasis> "in_s.wav", 14, aoutl, aoutr <emphasis role="comment">;write to stereo file,</emphasis>
+ <emphasis role="opc">outs</emphasis> aoutl, aoutr <emphasis role="comment">;16 bits with header</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/nchnls_i.csd.xml b/examples-xml/nchnls_i.csd.xml
new file mode 100644
index 0000000..7ffc071
--- /dev/null
+++ b/examples-xml/nchnls_i.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -idac <emphasis role="comment">;;;realtime audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; nchnls_i.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2 <emphasis role="comment">;2 channels out</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+nchnls_i <emphasis role="op">=</emphasis> 4 <emphasis role="comment">;4 channels in</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;4 channels in, two channels out</emphasis>
+
+ain1, ain2, ain3, ain4 <emphasis role="opc">inq</emphasis> <emphasis role="comment">;grab your mics and sing</emphasis>
+
+adel <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 0.02, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;max delay time = 20ms</emphasis>
+adel2 <emphasis role="opc">linseg</emphasis> 0.02, p3<emphasis role="op">*</emphasis>.5, 0, p3<emphasis role="op">*</emphasis>.5, 0.02 <emphasis role="comment">;max delay time = 20ms </emphasis>
+aoutl <emphasis role="opc">flanger</emphasis> ain1, adel, .7
+aoutr <emphasis role="opc">flanger</emphasis> ain2, adel<emphasis role="op">*</emphasis>2, .8
+aoutla <emphasis role="opc">flanger</emphasis> ain3, adel2, .9
+aoutra <emphasis role="opc">flanger</emphasis> ain4, adel2<emphasis role="op">*</emphasis>2, .5
+<emphasis role="comment">;write to quad file, 16 bits with header</emphasis>
+ <emphasis role="opc">fout</emphasis> "in_4.wav", 14, aoutl, aoutr, aoutla, aoutra
+ <emphasis role="opc">outs</emphasis> (aoutl<emphasis role="op">+</emphasis>aoutla)<emphasis role="op">*</emphasis>.5, (aoutr<emphasis role="op">+</emphasis>aoutra)<emphasis role="op">*</emphasis>.5 <emphasis role="comment">;stereo out</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/nlfilt.csd.xml b/examples-xml/nlfilt.csd.xml
index 1b9ad62..7b38bba 100644
--- a/examples-xml/nlfilt.csd.xml
+++ b/examples-xml/nlfilt.csd.xml
@@ -2,62 +2,50 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o nlfilt.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - an unfiltered noise waveform.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a white noise signal.</emphasis>
- asig <emphasis role="opc">rand</emphasis> 20000
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;unfiltered noise</emphasis>
+
+asig <emphasis role="opc">rand</emphasis> .7
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="opc">out</emphasis> asig
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;filtered noise</emphasis>
-<emphasis role="comment">; Instrument #2 - a filtered noise waveform.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Generate a white noise signal.</emphasis>
- asig <emphasis role="opc">rand</emphasis> 20000
ka <emphasis role="op">=</emphasis> p4
kb <emphasis role="op">=</emphasis> p5
kd <emphasis role="op">=</emphasis> p6
kC <emphasis role="op">=</emphasis> p7
kL <emphasis role="op">=</emphasis> p8
+asig <emphasis role="opc">rand</emphasis> .3
+afilt <emphasis role="opc">nlfilt</emphasis> asig, ka, kb, kd, kC, kL
+asig <emphasis role="opc">clip</emphasis> afilt, 2, .9
+ <emphasis role="opc">outs</emphasis> asig, asig
- afilt <emphasis role="opc">nlfilt</emphasis> asig, ka, kb, kd, kC, kL
-
- <emphasis role="comment">; Clip the filtered signal's amplitude to 85 dB.</emphasis>
- a1 <emphasis role="opc">clip</emphasis> afilt, 2, <emphasis role="opc">ampdb</emphasis>(85)
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="comment">; non-linear effect</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 2 2 0 0 .8 .5 20
-<emphasis role="comment">; low=paas with non-linear</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 + 2 .4 .2 .7 .11 200
-<emphasis role="comment">; high-pass with non-linear</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 + 2 .35 -.3 .95 .1 200
-<emphasis role="comment">; high-pass with non-linear</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 + 2 .7 .1 .9 .2 100
-<emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 <emphasis role="comment">; unfiltersd</emphasis>
+<emphasis role="comment">; a b d C L</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 2 2 0 0 0.8 0.5 20 <emphasis role="comment">; non-linear effect</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 + 2 .4 0.2 0.7 0.11 200 <emphasis role="comment">; low=paas with non-linear</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 + 2 0.35 -0.3 0.95 0.1 200 <emphasis role="comment">; high-pass with non-linear</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 + 2 0.7 -0.2 0.9 0.2 20 <emphasis role="comment">; high-pass with non-linear</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/nlfilt2.csd.xml b/examples-xml/nlfilt2.csd.xml
new file mode 100644
index 0000000..33eddaf
--- /dev/null
+++ b/examples-xml/nlfilt2.csd.xml
@@ -0,0 +1,49 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o nlfilt.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;unfiltered noise</emphasis>
+
+asig <emphasis role="opc">rand</emphasis> .7
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;filtered noise</emphasis>
+
+ka <emphasis role="op">=</emphasis> p4
+kb <emphasis role="op">=</emphasis> p5
+kd <emphasis role="op">=</emphasis> p6
+kC <emphasis role="op">=</emphasis> p7
+kL <emphasis role="op">=</emphasis> p8
+asig <emphasis role="opc">rand</emphasis> .3
+afilt <emphasis role="opc">nlfilt2</emphasis> asig, ka, kb, kd, kC, kL
+ <emphasis role="opc">outs</emphasis> afilt, afilt
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 <emphasis role="comment">; unfiltered</emphasis>
+
+<emphasis role="comment">; a b d C L</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 2 2 0 0 0.8 0.5 20 <emphasis role="comment">; non-linear effect</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 + 2 .4 0.2 0.7 0.11 200 <emphasis role="comment">; low=pass with non-linear</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 + 2 0.35 -0.3 0.95 0.1 200 <emphasis role="comment">; high-pass with non-linear</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 + 2 0.7 -0.2 0.9 0.2 20 <emphasis role="comment">; high-pass with non-linear</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/noise.csd.xml b/examples-xml/noise.csd.xml
index d01ffa7..681bd4a 100644
--- a/examples-xml/noise.csd.xml
+++ b/examples-xml/noise.csd.xml
@@ -2,39 +2,32 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o noise.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 30000
- <emphasis role="comment">; Change the beta value linearly from 0 to 1.</emphasis>
- kbeta <emphasis role="opc">line</emphasis> 0, p3, 1
+kbeta <emphasis role="opc">line</emphasis> <emphasis role="op">-</emphasis>1, p3, 1 <emphasis role="comment">;change beta value from -1 to 1</emphasis>
+asig <emphasis role="opc">noise</emphasis> .3, kbeta
+asig <emphasis role="opc">clip</emphasis> asig, 2, .9 <emphasis role="comment">;clip signal</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
- a1 <emphasis role="opc">noise</emphasis> kamp, kbeta
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/notequal.csd.xml b/examples-xml/notequal.csd.xml
index a706f6f..faad404 100644
--- a/examples-xml/notequal.csd.xml
+++ b/examples-xml/notequal.csd.xml
@@ -2,44 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o notequal.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Get the 4th p-field from the score.</emphasis>
- k1 <emphasis role="op">=</emphasis> p4
- <emphasis role="comment">; Is it not equal to 3? (1 = true, 0 = false)</emphasis>
- k2 <emphasis role="op">=</emphasis> (p4 <emphasis role="op">!=</emphasis> 3 <emphasis role="op">?</emphasis> 1 <emphasis role="op">:</emphasis> 0)
+ipch <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4)
+iprint <emphasis role="op">=</emphasis> p5
+<emphasis role="octrl">if</emphasis> (iprint <emphasis role="op">!=</emphasis> 1) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">skipPrint</emphasis>
+<emphasis role="opc">print</emphasis> ipch
+asig <emphasis role="opc">vco2</emphasis> .7, ipch
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; Print the values of k1 and k2.</emphasis>
- <emphasis role="opc">printks</emphasis> "k1 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, k2 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\\n", 1, k1, k2
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="olabel">skipPrint</emphasis><emphasis role="op">:</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 65536 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Call Instrument #1 with a p4 = 2.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 0.5 2
-<emphasis role="comment">; Call Instrument #1 with a p4 = 3.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 1 0.5 3
-<emphasis role="comment">; Call Instrument #1 with a p4 = 4.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 2 0.5 4
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis>1 0 .5 8.00 0
+<emphasis role="stamnt">i</emphasis>1 0 .5 8.01 1 <emphasis role="comment">; this note will print it's ipch value and only this one will be played</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 .5 8.02 2
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/notnum.csd.xml b/examples-xml/notnum.csd.xml
index 1d6bd93..1f61b20 100644
--- a/examples-xml/notnum.csd.xml
+++ b/examples-xml/notnum.csd.xml
@@ -2,35 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
-<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o notnum.wav -W ;;; for file output any platform</emphasis>
+-odac -M0 -+rtmidi=virtual <emphasis role="comment">;;;realtime audio out with virtual MIDI in</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="opc">notnum</emphasis>
+<emphasis role="ohdr">massign</emphasis> 1, 1 <emphasis role="comment">; set MIDI channel 1 to play instr 1</emphasis>
- <emphasis role="opc">print</emphasis> i1
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+iNum <emphasis role="opc">notnum</emphasis>
+ <emphasis role="opc">print</emphasis> iNum
+<emphasis role="comment">; Convert MIDI note number to Hz</emphasis>
+iHz <emphasis role="op">=</emphasis> (440.0<emphasis role="op">*</emphasis><emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2.0)<emphasis role="op">*</emphasis>((iNum)<emphasis role="op">-</emphasis>69.0)<emphasis role="op">/</emphasis>12.0))
+aosc <emphasis role="opc">oscil</emphasis> 0.6, iHz, 1
+ <emphasis role="opc">outs</emphasis> aosc, aosc
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 12 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 12
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">f</emphasis> 0 60 <emphasis role="comment">;play 60 seconds</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/nrpn.csd.xml b/examples-xml/nrpn.csd.xml
new file mode 100644
index 0000000..19ffea7
--- /dev/null
+++ b/examples-xml/nrpn.csd.xml
@@ -0,0 +1,33 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -Q1 <emphasis role="comment">;;;realtime audio out with MIDI out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; change attack time of external synth</emphasis>
+
+<emphasis role="opc">initc7</emphasis> 1, 6, 0 <emphasis role="comment">; set controller 6 to 0</emphasis>
+<emphasis role="opc">nrpn</emphasis> 1, 99, 1 <emphasis role="comment">; set MSB</emphasis>
+<emphasis role="opc">nrpn</emphasis> 1, 98, 99 <emphasis role="comment">; set LSB</emphasis>
+katt <emphasis role="opc">ctrl7</emphasis> 1, 6, 1, 127 <emphasis role="comment">; DataEntMSB</emphasis>
+idur <emphasis role="op">=</emphasis> 2
+<emphasis role="opc">noteondur2</emphasis> 1, 60, 100, idur <emphasis role="comment">; play note on synth</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/nsamp.csd.xml b/examples-xml/nsamp.csd.xml
index adcf04d..37f9ab4 100644
--- a/examples-xml/nsamp.csd.xml
+++ b/examples-xml/nsamp.csd.xml
@@ -2,38 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o nsamp.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">; slightly adapted example from Jonathan Murphy Dec 2006</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Print out the size (in samples) of Table #1.</emphasis>
- isz <emphasis role="op">=</emphasis> <emphasis role="opc">nsamp</emphasis>(1)
- <emphasis role="opc">print</emphasis> isz
-<emphasis role="oblock">endin</emphasis>
+ifn <emphasis role="op">=</emphasis> p4 <emphasis role="comment">; table number</emphasis>
+ilen <emphasis role="op">=</emphasis> <emphasis role="opc">nsamp</emphasis>(ifn)
+<emphasis role="opc">prints</emphasis> "actual numbers of samples <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\n", ilen
+itrns <emphasis role="op">=</emphasis> 1 <emphasis role="comment">; no transposition</emphasis>
+ilps <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; loop starts at index 0</emphasis>
+ilpe <emphasis role="op">=</emphasis> ilen <emphasis role="comment">; ends at value returned by nsamp above</emphasis>
+imode <emphasis role="op">=</emphasis> 1 <emphasis role="comment">; loops forward</emphasis>
+istrt <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; commence playback at index 0 samples</emphasis>
+<emphasis role="comment">; lphasor provides index into f1 </emphasis>
+alphs <emphasis role="opc">lphasor</emphasis> itrns, ilps, ilpe, imode, istrt
+atab <emphasis role="opc">tablei</emphasis> alphs, ifn
+ <emphasis role="opc">outs</emphasis> atab, atab
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 262144 1 "kickroll.wav" 0 4 1 <emphasis role="comment">;stereo file in table, with lots of zeroes</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 262144 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 4 1 <emphasis role="comment">;mono file in table, with lots of zeroes</emphasis>
-<emphasis role="comment">; Table #1: Use an audio file.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 262144 1 "mary.wav" 0 0 0
-
-<emphasis role="comment">; Play Instrument #1 for 1 second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis>1 0 10 1
+<emphasis role="stamnt">i</emphasis>1 + 10 2
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/ntrpol.csd.xml b/examples-xml/ntrpol.csd.xml
new file mode 100644
index 0000000..9cd12e6
--- /dev/null
+++ b/examples-xml/ntrpol.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o ntrpol.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSin <emphasis role="ohdr">ftgen</emphasis> 1, 0, 1024, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+avco <emphasis role="opc">vco2</emphasis> .5, 110 <emphasis role="comment">;sawtootyh wave</emphasis>
+asin <emphasis role="opc">poscil</emphasis> .5, 220, giSin <emphasis role="comment">;sine wave but octave higher</emphasis>
+kx <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.4, 1, p3<emphasis role="op">*</emphasis>.6, 1 <emphasis role="comment">;crossfade between saw and sine</emphasis>
+asig <emphasis role="opc">ntrpol</emphasis> avco, asin, kx
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/octave.csd.xml b/examples-xml/octave.csd.xml
index b048aee..64d1b46 100644
--- a/examples-xml/octave.csd.xml
+++ b/examples-xml/octave.csd.xml
@@ -2,46 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o octave.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; The root note is A above middle-C (440 Hz)</emphasis>
- iroot <emphasis role="op">=</emphasis> 440
- <emphasis role="comment">; Raise the root note by two octaves.</emphasis>
- ioctaves <emphasis role="op">=</emphasis> 2
+iroot <emphasis role="op">=</emphasis> 440 <emphasis role="comment">; root note is A above middle-C (440 Hz)</emphasis>
+koct <emphasis role="opc">lfo</emphasis> 5, 1, 5 <emphasis role="comment">; generate sawtooth, go from 5 octaves higher to root</emphasis>
+koc <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(koct) <emphasis role="comment">; produce only whole numbers</emphasis>
+kfactor <emphasis role="op">=</emphasis> <emphasis role="opc">octave</emphasis>(koc) <emphasis role="comment">; for octave</emphasis>
+knew <emphasis role="op">=</emphasis> iroot <emphasis role="op">*</emphasis> kfactor
+<emphasis role="opc">printk2</emphasis> knew
- <emphasis role="comment">; Calculate the new note.</emphasis>
- ifactor <emphasis role="op">=</emphasis> <emphasis role="opc">octave</emphasis>(ioctaves)
- inew <emphasis role="op">=</emphasis> iroot <emphasis role="op">*</emphasis> ifactor
+asig <emphasis role="opc">pluck</emphasis> 1, knew, 1000, 0, 1
+asig <emphasis role="opc">dcblock</emphasis> asig <emphasis role="comment">;remove DC</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; Print out of all of the values.</emphasis>
- <emphasis role="opc">print</emphasis> iroot
- <emphasis role="opc">print</emphasis> ifactor
- <emphasis role="opc">print</emphasis> inew
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 5
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/opand.csd.xml b/examples-xml/opand.csd.xml
new file mode 100644
index 0000000..63b8e1b
--- /dev/null
+++ b/examples-xml/opand.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o opand.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kval <emphasis role="opc">randomh</emphasis> 0, 1.2, 20 <emphasis role="comment">;choose between 0 and 1.2</emphasis>
+<emphasis role="octrl">if</emphasis> kval <emphasis role="op">></emphasis>0 <emphasis role="op">&amp;&amp;</emphasis> kval<emphasis role="op">&lt;=</emphasis>.5 then <emphasis role="comment">;3 possible outcomes</emphasis>
+ kval <emphasis role="op">=</emphasis> 1
+<emphasis role="octrl">elseif</emphasis> kval <emphasis role="op">></emphasis>.5 <emphasis role="op">&amp;&amp;</emphasis> kval<emphasis role="op">&lt;=</emphasis>1 then
+ kval <emphasis role="op">=</emphasis>2
+<emphasis role="octrl">elseif</emphasis> kval <emphasis role="op">></emphasis>1 then
+ kval <emphasis role="op">=</emphasis>3
+<emphasis role="octrl">endif</emphasis>
+
+<emphasis role="opc">printk2</emphasis> kval <emphasis role="comment">;print value when it changes</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .7, 440<emphasis role="op">*</emphasis>kval, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 16384 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/opcode_example.csd.xml b/examples-xml/opcode_example.csd.xml
index 488d4a3..c33b819 100644
--- a/examples-xml/opcode_example.csd.xml
+++ b/examples-xml/opcode_example.csd.xml
@@ -2,16 +2,17 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o opcode_example.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 50
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> example <emphasis role="oblock">opcode</emphasis> 1<emphasis role="op">:</emphasis> simple oscillator <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
@@ -62,13 +63,13 @@ aenv <emphasis role="opc">linseg</emphasis> 0, 0.02, 1, p3 <emphasis role="op
<emphasis role="oblock">instr</emphasis> 1
-kamp <emphasis role="op">=</emphasis> 20000 <emphasis role="comment">; amplitude</emphasis>
+kamp <emphasis role="op">=</emphasis> .7 <emphasis role="comment">; amplitude</emphasis>
kcps <emphasis role="opc">expon</emphasis> 50, p3, 500 <emphasis role="comment">; pitch</emphasis>
a1 Oscillator kamp, kcps <emphasis role="comment">; call oscillator</emphasis>
kflt <emphasis role="opc">linseg</emphasis> 0.4, 1.5, 0.4, 1, 0.8, 1.5, 0.8 <emphasis role="comment">; filter envelope</emphasis>
a1 RecursiveLowpass a1, kflt, 1 <emphasis role="op">-</emphasis> kflt, 10 <emphasis role="comment">; 10th order lowpass</emphasis>
a1 DeClick a1
- <emphasis role="opc">out</emphasis> a1
+ <emphasis role="opc">outs</emphasis> a1, a1
<emphasis role="oblock">endin</emphasis>
@@ -77,8 +78,7 @@ a1 DeClick a1
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 4
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">e</emphasis>5 <emphasis role="comment">;extra second before quitting</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/oscbnk.csd.xml b/examples-xml/oscbnk.csd.xml
index 7832e1b..10ad7b5 100644
--- a/examples-xml/oscbnk.csd.xml
+++ b/examples-xml/oscbnk.csd.xml
@@ -42,7 +42,7 @@ i_ <emphasis role="ohdr">ftgen</emphasis> 7, 0, 64, <emphasis role="op">-</empha
i0 <emphasis role="op">=</emphasis> 0
<emphasis role="olabel">loop1</emphasis><emphasis role="op">:</emphasis>
-imaxh <emphasis role="op">=</emphasis> <emphasis role="ohdr">sr</emphasis> <emphasis role="op">/</emphasis> (2 <emphasis role="op">*</emphasis> 440.0 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis> (<emphasis role="opc">log</emphasis>(2.0) <emphasis role="op">*</emphasis> (i0 <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12))
+imaxh <emphasis role="op">=</emphasis> <emphasis role="ohdr">sr</emphasis> <emphasis role="op">/</emphasis> (2 <emphasis role="op">*</emphasis> 440.0 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2.0) <emphasis role="op">*</emphasis> (i0 <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12))
i_ <emphasis role="ohdr">ftgen</emphasis> i0 <emphasis role="op">+</emphasis> 256, 0, 4096, <emphasis role="op">-</emphasis>30, 1, 1, imaxh
i0 <emphasis role="op">=</emphasis> i0 <emphasis role="op">+</emphasis> 1
<emphasis role="octrl">if</emphasis> (i0 <emphasis role="op">&lt;</emphasis> 127.5) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">loop1</emphasis>
@@ -52,9 +52,9 @@ i0 <emphasis role="op">=</emphasis> i0 <emphasis role="op">+</emphasis> 1
p3 <emphasis role="op">=</emphasis> p3 <emphasis role="op">+</emphasis> 0.4
<emphasis role="comment">; note frequency</emphasis>
-kcps <emphasis role="op">=</emphasis> 440.0 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis> (<emphasis role="opc">log</emphasis>(2.0) <emphasis role="op">*</emphasis> (p4 <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12)
+kcps <emphasis role="op">=</emphasis> 440.0 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2.0) <emphasis role="op">*</emphasis> (p4 <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12)
<emphasis role="comment">; lowpass max. frequency</emphasis>
-klpmaxf <emphasis role="opc">limit</emphasis> 64 <emphasis role="op">*</emphasis> kcps, 1000.0, 12000.0
+klpmaxf limit 64 <emphasis role="op">*</emphasis> kcps, 1000.0, 12000.0
<emphasis role="comment">; FM depth in Hz</emphasis>
kfmd1 <emphasis role="op">=</emphasis> 0.02 <emphasis role="op">*</emphasis> kcps
<emphasis role="comment">; AM frequency</emphasis>
diff --git a/examples-xml/oscil.csd.xml b/examples-xml/oscil.csd.xml
index ff57705..672f2b5 100644
--- a/examples-xml/oscil.csd.xml
+++ b/examples-xml/oscil.csd.xml
@@ -2,42 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - a basic oscillator.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10000
- kcps <emphasis role="op">=</emphasis> 440
- ifn <emphasis role="op">=</emphasis> p4
-asig <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
- <emphasis role="opc">outs</emphasis> asig,asig
-<emphasis role="oblock">endin</emphasis>
+kamp <emphasis role="op">=</emphasis> .6
+kcps <emphasis role="op">=</emphasis> 440
+ifn <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
+ <emphasis role="opc">outs</emphasis> asig,asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Table #2, a sawtooth wave</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 256 7 -1 256 1
+<emphasis role="stamnt">f</emphasis>1 0 16384 10 1 <emphasis role="comment">; Sine</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 <emphasis role="comment">; Sawtooth</emphasis>
+<emphasis role="stamnt">f</emphasis>3 0 16384 10 1 0 0.3 0 0.2 0 0.14 0 .111 <emphasis role="comment">; Square</emphasis>
+<emphasis role="stamnt">f</emphasis>4 0 16384 10 1 1 1 1 0.7 0.5 0.3 0.1 <emphasis role="comment">; Pulse</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 2 1
-<emphasis role="stamnt">i</emphasis> 1 + 2 2
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 3 2 2
+<emphasis role="stamnt">i</emphasis> 1 6 2 3
+<emphasis role="stamnt">i</emphasis> 1 9 2 4
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/oscil1.csd.xml b/examples-xml/oscil1.csd.xml
new file mode 100644
index 0000000..851e34b
--- /dev/null
+++ b/examples-xml/oscil1.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil1.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giPan <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8, <emphasis role="op">-</emphasis>2, .5, .2, .8, .1, .9, 0, 1, .5
+
+<emphasis role="oblock">instr</emphasis> 1
+
+istay <emphasis role="op">=</emphasis> 2 <emphasis role="comment">;how many seconds to stay on the first table value</emphasis>
+asig <emphasis role="opc">vco2</emphasis> .3, 220
+kpan <emphasis role="opc">oscil1</emphasis> istay, 1, p3<emphasis role="op">-</emphasis>istay, giPan <emphasis role="comment">;create panning </emphasis>
+ <emphasis role="opc">printk2</emphasis> kpan <emphasis role="comment">;print when new value</emphasis>
+aL, aR <emphasis role="opc">pan2</emphasis> asig, kpan <emphasis role="comment">;apply panning</emphasis>
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/oscil1i.csd.xml b/examples-xml/oscil1i.csd.xml
new file mode 100644
index 0000000..cfc5565
--- /dev/null
+++ b/examples-xml/oscil1i.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil1i.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ipanfn <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">vco2</emphasis> .3, 220
+kpan <emphasis role="opc">oscil1i</emphasis> 0, 1, p3, ipanfn <emphasis role="comment">;create panning &amp;</emphasis>
+kleft <emphasis role="op">=</emphasis> <emphasis role="opc">sqrt</emphasis>(kpan) <emphasis role="comment">;start right away</emphasis>
+kright <emphasis role="op">=</emphasis> <emphasis role="opc">sqrt</emphasis>(1<emphasis role="op">-</emphasis>kpan)
+ <emphasis role="opc">outs</emphasis> kleft<emphasis role="op">*</emphasis>asig, kright<emphasis role="op">*</emphasis>asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis> 1 0 3 -7 .5 3 .5 <emphasis role="comment">;remain in center (.5 CONSTANT) </emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 129 7 1 129 0 <emphasis role="comment">;left-->right </emphasis>
+<emphasis role="stamnt">f</emphasis> 3 0 129 7 .5 32 1 64 0 33 .5 <emphasis role="comment">;center-->left-->right-->center </emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 1 <emphasis role="comment">;use table 1</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 2 2 <emphasis role="comment">;use table 2</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 6 2 3 <emphasis role="comment">;use table 3</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/oscil3.csd.xml b/examples-xml/oscil3.csd.xml
index dfa5c0b..e7e7607 100644
--- a/examples-xml/oscil3.csd.xml
+++ b/examples-xml/oscil3.csd.xml
@@ -2,56 +2,56 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o oscil3.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - a basic oscillator.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10000
- kcps <emphasis role="op">=</emphasis> 220
- ifn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
+kamp <emphasis role="op">=</emphasis> .6
+kcps <emphasis role="op">=</emphasis> 440
+ifn <emphasis role="op">=</emphasis> p4
+
+asig <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
+ <emphasis role="opc">outs</emphasis> asig,asig
+
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #2 - the basic oscillator with cubic interpolation.</emphasis>
<emphasis role="oblock">instr</emphasis> 2
- kamp <emphasis role="op">=</emphasis> 10000
- kcps <emphasis role="op">=</emphasis> 220
- ifn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">oscil3</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kamp <emphasis role="op">=</emphasis> .6
+kcps <emphasis role="op">=</emphasis> 440
+ifn <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">oscil3</emphasis> kamp, kcps, ifn
+ <emphasis role="opc">outs</emphasis> asig,asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 128 10 1 <emphasis role="comment">; Sine with a small amount of data</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 128 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 <emphasis role="comment">; Sawtooth with a small amount of data</emphasis>
+<emphasis role="stamnt">f</emphasis>3 0 128 10 1 0 0.3 0 0.2 0 0.14 0 .111 <emphasis role="comment">; Square with a small amount of data</emphasis>
+<emphasis role="stamnt">f</emphasis>4 0 128 10 1 1 1 1 0.7 0.5 0.3 0.1 <emphasis role="comment">; Pulse with a small amount of data</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 1
+<emphasis role="stamnt">i</emphasis> 2 3 2 1
+<emphasis role="stamnt">i</emphasis> 1 6 2 2
+<emphasis role="stamnt">i</emphasis> 2 9 2 2
+<emphasis role="stamnt">i</emphasis> 1 12 2 3
+<emphasis role="stamnt">i</emphasis> 2 15 2 3
+<emphasis role="stamnt">i</emphasis> 1 18 2 4
+<emphasis role="stamnt">i</emphasis> 2 21 2 4
-<emphasis role="comment">; Table #1, a sine wave table with a small amount of data.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 32 10 0 1
-
-<emphasis role="comment">; Play Instrument #1, the basic oscillator, for </emphasis>
-<emphasis role="comment">; two seconds. This should sound relatively rough.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
-
-<emphasis role="comment">; Play Instrument #2, the cubic interpolated oscillator, for</emphasis>
-<emphasis role="comment">; two seconds. This should sound relatively smooth.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 2 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/oscili.csd.xml b/examples-xml/oscili.csd.xml
index ceee813..35fd6f4 100644
--- a/examples-xml/oscili.csd.xml
+++ b/examples-xml/oscili.csd.xml
@@ -2,56 +2,56 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o oscili.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - a basic oscillator.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10000
- kcps <emphasis role="op">=</emphasis> 220
- ifn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
+kamp <emphasis role="op">=</emphasis> .6
+kcps <emphasis role="op">=</emphasis> 440
+ifn <emphasis role="op">=</emphasis> p4
+
+asig <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
+ <emphasis role="opc">outs</emphasis> asig,asig
+
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #2 - the basic oscillator with extra interpolation.</emphasis>
<emphasis role="oblock">instr</emphasis> 2
- kamp <emphasis role="op">=</emphasis> 10000
- kcps <emphasis role="op">=</emphasis> 220
- ifn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">oscili</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kamp <emphasis role="op">=</emphasis> .6
+kcps <emphasis role="op">=</emphasis> 440
+ifn <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">oscili</emphasis> kamp, kcps, ifn
+ <emphasis role="opc">outs</emphasis> asig,asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 128 10 1 <emphasis role="comment">; Sine with a small amount of data</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 128 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 <emphasis role="comment">; Sawtooth with a small amount of data</emphasis>
+<emphasis role="stamnt">f</emphasis>3 0 128 10 1 0 0.3 0 0.2 0 0.14 0 .111 <emphasis role="comment">; Square with a small amount of data</emphasis>
+<emphasis role="stamnt">f</emphasis>4 0 128 10 1 1 1 1 0.7 0.5 0.3 0.1 <emphasis role="comment">; Pulse with a small amount of data</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 1
+<emphasis role="stamnt">i</emphasis> 2 3 2 1
+<emphasis role="stamnt">i</emphasis> 1 6 2 2
+<emphasis role="stamnt">i</emphasis> 2 9 2 2
+<emphasis role="stamnt">i</emphasis> 1 12 2 3
+<emphasis role="stamnt">i</emphasis> 2 15 2 3
+<emphasis role="stamnt">i</emphasis> 1 18 2 4
+<emphasis role="stamnt">i</emphasis> 2 21 2 4
-<emphasis role="comment">; Table #1, a sine wave table with a small amount of data.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 32 10 0 1
-
-<emphasis role="comment">; Play Instrument #1, the basic oscillator, for </emphasis>
-<emphasis role="comment">; two seconds. This should sound relatively rough.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
-
-<emphasis role="comment">; Play Instrument #2, the interpolated oscillator, for</emphasis>
-<emphasis role="comment">; two seconds. This should sound relatively smooth.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 2 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/osciln.csd.xml b/examples-xml/osciln.csd.xml
new file mode 100644
index 0000000..a93ed4a
--- /dev/null
+++ b/examples-xml/osciln.csd.xml
@@ -0,0 +1,50 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o osciln.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gione <emphasis role="ohdr">ftgen</emphasis> 1, 0, 1024, 7, 0, 1, 1, 1024, 0
+gitwo <emphasis role="ohdr">ftgen</emphasis> 2, 0, 1024, 7, 0, 512, 1, 512, 0
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;very simple waveguide system</emphasis>
+
+ifn <emphasis role="op">=</emphasis> p4
+ipitch <emphasis role="op">=</emphasis> p5
+itimes <emphasis role="op">=</emphasis> p6
+iperiod <emphasis role="op">=</emphasis> 1000<emphasis role="op">/</emphasis>ipitch
+
+afeed <emphasis role="opc">init</emphasis> 0
+aimpl <emphasis role="opc">osciln</emphasis> 1, ipitch, ifn, itimes <emphasis role="comment">;use as excitation signal</emphasis>
+arefl <emphasis role="opc">tone</emphasis> aimpl <emphasis role="op">+</emphasis> afeed, 4000
+aout <emphasis role="opc">atone</emphasis> arefl, 5000
+afeed <emphasis role="opc">vdelay</emphasis> arefl, iperiod, 10
+ <emphasis role="opc">outs</emphasis> aout<emphasis role="op">*</emphasis>3, aout<emphasis role="op">*</emphasis>3
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 4 1 110 1 <emphasis role="comment">;use different tables,</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 5 4 2 110 1 <emphasis role="comment">;&amp; different pitch</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 10 4 1 110 10 <emphasis role="comment">;&amp; different number of times the table is read</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 15 4 2 110 10
+<emphasis role="stamnt">i</emphasis> 1 20 6 1 880 1
+<emphasis role="stamnt">i</emphasis> 1 25 3 2 880 1
+<emphasis role="stamnt">i</emphasis> 1 30 3 1 880 10
+<emphasis role="stamnt">i</emphasis> 1 35 3 2 880 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/oscils.csd.xml b/examples-xml/oscils.csd.xml
index 30ca877..10a59a0 100644
--- a/examples-xml/oscils.csd.xml
+++ b/examples-xml/oscils.csd.xml
@@ -2,38 +2,31 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o oscils.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - a fast sine oscillator.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- iamp <emphasis role="op">=</emphasis> 10000
- icps <emphasis role="op">=</emphasis> 440
- iphs <emphasis role="op">=</emphasis> 0
-
- a1 <emphasis role="opc">oscils</emphasis> iamp, icps, iphs
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+iflg <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">oscils</emphasis> .7, 220, 0, iflg
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 2 0
+<emphasis role="stamnt">i</emphasis> 1 3 2 2 <emphasis role="comment">;double precision</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/out.csd.xml b/examples-xml/out.csd.xml
new file mode 100644
index 0000000..f3521bf
--- /dev/null
+++ b/examples-xml/out.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o out.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kamp <emphasis role="op">=</emphasis> .6
+kcps <emphasis role="op">=</emphasis> 440
+ifn <emphasis role="op">=</emphasis> p4
+
+asig <emphasis role="opc">oscil</emphasis> kamp, kcps, ifn
+ <emphasis role="opc">out</emphasis> asig <emphasis role="comment">;one channel</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 16384 10 1 <emphasis role="comment">; Sine</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 <emphasis role="comment">; Sawtooth</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 1
+<emphasis role="stamnt">i</emphasis> 1 3 2 2
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outc.csd.xml b/examples-xml/outc.csd.xml
new file mode 100644
index 0000000..ef7a338
--- /dev/null
+++ b/examples-xml/outc.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outc.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 5
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">vco2</emphasis> .05, 30 <emphasis role="comment">; sawtooth waveform at low volume</emphasis>
+
+kcut <emphasis role="opc">line</emphasis> 100, p3, 30 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance <emphasis role="op">=</emphasis> 7
+inumlayer <emphasis role="op">=</emphasis> 2
+asig <emphasis role="opc">lowresx</emphasis> asig, kcut, kresonance, inumlayer
+<emphasis role="comment">; output same sound to 5 channels</emphasis>
+ <emphasis role="opc">outc</emphasis> asig,asig,asig,asig,asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 30
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outch-2.csd.xml b/examples-xml/outch-2.csd.xml
new file mode 100644
index 0000000..6a09ca0
--- /dev/null
+++ b/examples-xml/outch-2.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outch-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;random movements between 4 speakers with outch</emphasis>
+
+ichn1 <emphasis role="opc">random</emphasis> 1, 4.999 <emphasis role="comment">;channel to start</emphasis>
+ichn2 <emphasis role="opc">random</emphasis> 1, 4.999 <emphasis role="comment">;channel to end</emphasis>
+ <emphasis role="opc">prints</emphasis> "Moving from speaker <emphasis role="op">%</emphasis>d to speaker <emphasis role="op">%</emphasis>d<emphasis role="op">%</emphasis>n", <emphasis role="opc">int</emphasis>(ichn1), <emphasis role="opc">int</emphasis>(ichn2)
+asamp <emphasis role="opc">soundin</emphasis> "fox.wav"
+kmov <emphasis role="opc">linseg</emphasis> 0, p3, 1
+a1, a2 <emphasis role="opc">pan2</emphasis> asamp, kmov
+ <emphasis role="opc">outch</emphasis> <emphasis role="opc">int</emphasis>(ichn1), a1, <emphasis role="opc">int</emphasis>(ichn2), a2
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">r</emphasis> 5
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outch.csd.xml b/examples-xml/outch.csd.xml
new file mode 100644
index 0000000..d4d90c8
--- /dev/null
+++ b/examples-xml/outch.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outch.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 5
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">vco2</emphasis> .05, 100 <emphasis role="comment">; sawtooth waveform at low volume</emphasis>
+
+kcut <emphasis role="opc">line</emphasis> 100, p3, 30 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance <emphasis role="op">=</emphasis> .7
+inumlayer <emphasis role="op">=</emphasis> 3
+asig <emphasis role="opc">lowresx</emphasis> asig, kcut, kresonance, inumlayer
+
+klfo <emphasis role="opc">lfo</emphasis> 4, .5, 4
+klfo <emphasis role="op">=</emphasis> klfo<emphasis role="op">+</emphasis>1 <emphasis role="comment">; offset of 1</emphasis>
+<emphasis role="opc">printks</emphasis> "signal is sent to channel <emphasis role="op">%</emphasis>d\\n", .1, klfo
+ <emphasis role="opc">outch</emphasis> klfo,asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 30
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outiat.csd.xml b/examples-xml/outiat.csd.xml
new file mode 100644
index 0000000..7bc5474
--- /dev/null
+++ b/examples-xml/outiat.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -Q1 -M0 <emphasis role="comment">;;;realtime audio out and midi in and out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outiat.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ikey <emphasis role="opc">notnum</emphasis>
+ivel <emphasis role="opc">veloc</emphasis>
+
+ivib <emphasis role="op">=</emphasis> 25 <emphasis role="comment">;low value.</emphasis>
+<emphasis role="opc">outiat</emphasis> 1, ivib, 0, 127 <emphasis role="comment">;assign aftertouch on</emphasis>
+<emphasis role="opc">print</emphasis> ivib <emphasis role="comment">;external synth for example to</emphasis>
+<emphasis role="opc">midion</emphasis> 1, ikey, ivel <emphasis role="comment">;change depth of filter modulation</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 30 <emphasis role="comment">;play for 30 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outic.csd.xml b/examples-xml/outic.csd.xml
new file mode 100644
index 0000000..056e831
--- /dev/null
+++ b/examples-xml/outic.csd.xml
@@ -0,0 +1,32 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -Q1 -M0 <emphasis role="comment">;;;realtime audio out -+rtmidi=virtual</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outic.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ikey <emphasis role="opc">notnum</emphasis>
+ivel <emphasis role="opc">veloc</emphasis>
+kbrt <emphasis role="op">=</emphasis> 40 <emphasis role="comment">;set controller 74 (=brightness) </emphasis>
+<emphasis role="opc">outic</emphasis> 1, 74, kbrt, 0, 127 <emphasis role="comment">;so filter closes a bit</emphasis>
+<emphasis role="opc">midion</emphasis> 1, ikey, ivel <emphasis role="comment">;play external synth</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outipb.csd.xml b/examples-xml/outipb.csd.xml
new file mode 100644
index 0000000..f99df7e
--- /dev/null
+++ b/examples-xml/outipb.csd.xml
@@ -0,0 +1,33 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -Q1 -M0 <emphasis role="comment">;;;realtime audio out and midi in and out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outipb.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ikey <emphasis role="opc">notnum</emphasis>
+ivel <emphasis role="opc">veloc</emphasis>
+
+ipb <emphasis role="op">=</emphasis> 10 <emphasis role="comment">;a little out of tune</emphasis>
+<emphasis role="opc">outipb</emphasis> 1, ipb, 0, 127 <emphasis role="comment">;(= pitchbend)</emphasis>
+<emphasis role="opc">midion</emphasis> 1, ikey, ivel <emphasis role="comment">;of external synth</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 30
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outipc.csd.xml b/examples-xml/outipc.csd.xml
new file mode 100644
index 0000000..9b08120
--- /dev/null
+++ b/examples-xml/outipc.csd.xml
@@ -0,0 +1,31 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -Q1 -M0 <emphasis role="comment">;;;realtime audio out and midi in and out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outipc.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="opc">outipc</emphasis> 1, 80, 0, 127 <emphasis role="comment">;program change --> 80</emphasis>
+ikey <emphasis role="opc">notnum</emphasis>
+ivel <emphasis role="opc">veloc</emphasis>
+<emphasis role="opc">midion</emphasis> 1, ikey, ivel <emphasis role="comment">;play external synth</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outkat.csd.xml b/examples-xml/outkat.csd.xml
new file mode 100644
index 0000000..acb2298
--- /dev/null
+++ b/examples-xml/outkat.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -Q1 -M0 <emphasis role="comment">;;;realtime audio out and midi in and out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outkat.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ikey <emphasis role="opc">notnum</emphasis>
+ivel <emphasis role="opc">veloc</emphasis>
+
+kvib <emphasis role="opc">linseg</emphasis> 100, .5, 120 <emphasis role="comment">;vary aftertouch in .5 second</emphasis>
+kvbr <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(kvib) <emphasis role="comment">;whole numbers only</emphasis>
+<emphasis role="opc">outkat</emphasis> 1, kvbr, 0, 127 <emphasis role="comment">;assign aftertouch on</emphasis>
+<emphasis role="opc">printk2</emphasis> kvbr <emphasis role="comment">;external synth for example to</emphasis>
+<emphasis role="opc">midion</emphasis> 1, ikey, ivel <emphasis role="comment">;change depth of filter modulation</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 30 <emphasis role="comment">;play for 30 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outkc.csd.xml b/examples-xml/outkc.csd.xml
new file mode 100644
index 0000000..822b897
--- /dev/null
+++ b/examples-xml/outkc.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -Q1 -M0 <emphasis role="comment">;;;realtime audio out and midi in and out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outkc.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ikey <emphasis role="opc">notnum</emphasis>
+ivel <emphasis role="opc">veloc</emphasis>
+
+kcut <emphasis role="opc">linseg</emphasis> 100, .5, 20 <emphasis role="comment">;vary controller in .5 second</emphasis>
+kbrt <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(kcut) <emphasis role="comment">;whole numbers only</emphasis>
+<emphasis role="opc">outkc</emphasis> 1, 74, kbrt, 0, 127 <emphasis role="comment">;controller 74 (= brightness)</emphasis>
+<emphasis role="opc">midion</emphasis> 1, ikey, ivel <emphasis role="comment">;of external synth</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outkpb.csd.xml b/examples-xml/outkpb.csd.xml
new file mode 100644
index 0000000..6c5fcd2
--- /dev/null
+++ b/examples-xml/outkpb.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -Q1 -M0 <emphasis role="comment">;;;realtime audio out and midi in and out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outkpb.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ikey <emphasis role="opc">notnum</emphasis>
+ivel <emphasis role="opc">veloc</emphasis>
+
+kpch <emphasis role="opc">linseg</emphasis> 100, 1, 0 <emphasis role="comment">;vary in 1 second</emphasis>
+kpb <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(kpch) <emphasis role="comment">;whole numbers only</emphasis>
+<emphasis role="opc">outkpb</emphasis> 1, kpb, 0, 127 <emphasis role="comment">;(= pitchbend)</emphasis>
+<emphasis role="opc">midion</emphasis> 1, ikey, ivel <emphasis role="comment">;of external synth</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 30
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outkpc.csd.xml b/examples-xml/outkpc.csd.xml
index 94c5dfe..043bde6 100644
--- a/examples-xml/outkpc.csd.xml
+++ b/examples-xml/outkpc.csd.xml
@@ -3,7 +3,7 @@
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d -M0 -Q1<emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -iadc -d -M0 -Q1 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
diff --git a/examples-xml/outleta.csd.xml b/examples-xml/outleta.csd.xml
index 69d3e5e..4144b32 100644
--- a/examples-xml/outleta.csd.xml
+++ b/examples-xml/outleta.csd.xml
@@ -1,144 +1,49 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
-
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O </emphasis>
-<emphasis role="comment">;-Wfo outleta.wav </emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outleta.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-
-<emphasis role="comment">; Initialize the global variables. </emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="opc">connect</emphasis> "1", "Outl", "reverby", "InL"
+<emphasis role="opc">connect</emphasis> "1", "Outr", "reverby", "InR"
-<emphasis role="comment">; Connect up instruments and effects to create the signal flow graph. </emphasis>
+<emphasis role="opc">alwayson</emphasis> "reverby", 1
-<emphasis role="opc">connect</emphasis> "SimpleSine", "leftout", "Reverberator", "leftin"
-<emphasis role="opc">connect</emphasis> "SimpleSine", "rightout", "Reverberator", "rightin"
+<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="opc">connect</emphasis> "Moogy", "leftout", "Reverberator", "leftin"
-<emphasis role="opc">connect</emphasis> "Moogy", "rightout", "Reverberator", "rightin"
+aIn <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+ <emphasis role="opc">outleta</emphasis> "Outl", aIn
+ <emphasis role="opc">outleta</emphasis> "Outr", aIn
-<emphasis role="opc">connect</emphasis> "Reverberator", "leftout", "Compressor", "leftin"
-<emphasis role="opc">connect</emphasis> "Reverberator", "rightout", "Compressor", "rightin"
+<emphasis role="oblock">endin</emphasis>
-<emphasis role="opc">connect</emphasis> "Compressor", "leftout", "Soundfile", "leftin"
-<emphasis role="opc">connect</emphasis> "Compressor", "rightout", "Soundfile", "rightin"
+<emphasis role="oblock">instr</emphasis> reverby
-<emphasis role="comment">; Turn on the "effect" units in the signal flow graph. </emphasis>
-
-<emphasis role="opc">alwayson</emphasis> "Reverberator", 0.91, 12000
-<emphasis role="opc">alwayson</emphasis> "Compressor"
-<emphasis role="opc">alwayson</emphasis> "Soundfile"
-
-<emphasis role="comment">; Define instruments and effects in order of signal flow.</emphasis>
-
- <emphasis role="oblock">instr</emphasis> SimpleSine
- <emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
- <emphasis role="comment">; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10</emphasis>
- <emphasis role="opc">pset</emphasis> 0, 0, 10, 0, 0, 0, 0.5
-iattack <emphasis role="op">=</emphasis> 0.015
-idecay <emphasis role="op">=</emphasis> 0.07
-isustain <emphasis role="op">=</emphasis> p3
-irelease <emphasis role="op">=</emphasis> 0.3
-p3 <emphasis role="op">=</emphasis> iattack <emphasis role="op">+</emphasis> idecay <emphasis role="op">+</emphasis> isustain <emphasis role="op">+</emphasis> irelease
-adamping <emphasis role="opc">linsegr</emphasis> 0.0, iattack, 1.0, idecay <emphasis role="op">+</emphasis> isustain, 1.0, irelease, 0.0
-iHz <emphasis role="op">=</emphasis> <emphasis role="opc">cpsmidinn</emphasis>(p4)
- <emphasis role="comment">; Rescale MIDI velocity range to a musically usable range of dB. </emphasis>
-iamplitude <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(p5 <emphasis role="op">/</emphasis> 127 <emphasis role="op">*</emphasis> 15.0 <emphasis role="op">+</emphasis> 60.0)
- <emphasis role="comment">; Use ftgenonce instead of ftgen, ftgentmp, or f statement. </emphasis>
-icosine <emphasis role="opc">ftgenonce</emphasis> 0, 0, 65537, 11, 1
-aoscili <emphasis role="opc">oscili</emphasis> iamplitude, iHz, icosine
-aadsr <emphasis role="opc">madsr</emphasis> iattack, idecay, 0.6, irelease
-asignal <emphasis role="op">=</emphasis> aoscili <emphasis role="op">*</emphasis> aadsr
-aleft, aright <emphasis role="opc">pan2</emphasis> asignal, p7
- <emphasis role="comment">; Stereo audio output to be routed in the orchestra header. </emphasis>
- <emphasis role="opc">outleta</emphasis> "leftout", aleft
- <emphasis role="opc">outleta</emphasis> "rightout", aright
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> Moogy
- <emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
- <emphasis role="comment">; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10</emphasis>
- <emphasis role="opc">pset</emphasis> 0, 0, 10, 0, 0, 0, 0.5
-iattack <emphasis role="op">=</emphasis> 0.003
-isustain <emphasis role="op">=</emphasis> p3
-irelease <emphasis role="op">=</emphasis> 0.05
-p3 <emphasis role="op">=</emphasis> iattack <emphasis role="op">+</emphasis> isustain <emphasis role="op">+</emphasis> irelease
-adamping <emphasis role="opc">linsegr</emphasis> 0.0, iattack, 1.0, isustain, 1.0, irelease, 0.0
-iHz <emphasis role="op">=</emphasis> <emphasis role="opc">cpsmidinn</emphasis>(p4)
- <emphasis role="comment">; Rescale MIDI velocity range to a musically usable range of dB. </emphasis>
-iamplitude <emphasis role="op">=</emphasis> <emphasis role="opc">ampdb</emphasis>(p5 <emphasis role="op">/</emphasis> 127 <emphasis role="op">*</emphasis> 20.0 <emphasis role="op">+</emphasis> 60.0)
- <emphasis role="opc">print</emphasis> iHz, iamplitude
- <emphasis role="comment">; Use ftgenonce instead of ftgen, ftgentmp, or f statement. </emphasis>
-isine <emphasis role="opc">ftgenonce</emphasis> 0, 0, 65537, 10, 1
-asignal <emphasis role="opc">vco</emphasis> iamplitude, iHz, 1, 0.5, isine
-kfco <emphasis role="opc">line</emphasis> 2000, p3, 200
-krez <emphasis role="op">=</emphasis> 0.8
-asignal <emphasis role="opc">moogvcf</emphasis> asignal, kfco, krez, 100000
-asignal <emphasis role="op">=</emphasis> asignal <emphasis role="op">*</emphasis> adamping
-aleft, aright <emphasis role="opc">pan2</emphasis> asignal, p7
- <emphasis role="comment">; Stereo audio output to be routed in the orchestra header. </emphasis>
- <emphasis role="opc">outleta</emphasis> "leftout", aleft
- <emphasis role="opc">outleta</emphasis> "rightout", aright
- <emphasis role="oblock">endin</emphasis>
- <emphasis role="oblock">instr</emphasis> Reverberator
- <emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
- <emphasis role="comment">; Stereo input. </emphasis>
-aleftin <emphasis role="opc">inleta</emphasis> "leftin"
-arightin <emphasis role="opc">inleta</emphasis> "rightin"
-idelay <emphasis role="op">=</emphasis> p4
-icutoff <emphasis role="op">=</emphasis> p5
-aleft, aright <emphasis role="opc">reverbsc</emphasis> aleftin, arightin, idelay, icutoff
- <emphasis role="comment">; Stereo output. </emphasis>
- <emphasis role="opc">outleta</emphasis> "leftout", aleft
- <emphasis role="opc">outleta</emphasis> "rightout", aright
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> Compressor
- <emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
- <emphasis role="comment">; Stereo input. </emphasis>
-aleftin <emphasis role="opc">inleta</emphasis> "leftin"
-arightin <emphasis role="opc">inleta</emphasis> "rightin"
-kthreshold <emphasis role="op">=</emphasis> 25000
-icomp1 <emphasis role="op">=</emphasis> 0.5
-icomp2 <emphasis role="op">=</emphasis> 0.763
-irtime <emphasis role="op">=</emphasis> 0.1
-iftime <emphasis role="op">=</emphasis> 0.1
-aleftout <emphasis role="opc">dam</emphasis> aleftin, kthreshold, icomp1, icomp2, irtime, iftime
-arightout <emphasis role="opc">dam</emphasis> arightin, kthreshold, icomp1, icomp2, irtime, iftime
- <emphasis role="comment">; Stereo output. </emphasis>
- <emphasis role="opc">outleta</emphasis> "leftout", aleftout
- <emphasis role="opc">outleta</emphasis> "rightout", arightout
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> Soundfile
- <emphasis role="comment">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</emphasis>
- <emphasis role="comment">; Stereo input. </emphasis>
-aleftin <emphasis role="opc">inleta</emphasis> "leftin"
-arightin <emphasis role="opc">inleta</emphasis> "rightin"
- <emphasis role="opc">outs</emphasis> aleftin, arightin
- <emphasis role="oblock">endin</emphasis>
+aInL <emphasis role="opc">inleta</emphasis> "InL"
+aInR <emphasis role="opc">inleta</emphasis> "InR"
+al, ar <emphasis role="opc">reverbsc</emphasis> aInL, aInR, 0.7, 21000
+ifxlev <emphasis role="op">=</emphasis> 0.5
+al <emphasis role="op">=</emphasis> (aInL<emphasis role="op">*</emphasis>ifxlev)<emphasis role="op">+</emphasis>(al<emphasis role="op">*</emphasis>(1<emphasis role="op">-</emphasis>ifxlev))
+ar <emphasis role="op">=</emphasis> (aInR<emphasis role="op">*</emphasis>ifxlev)<emphasis role="op">+</emphasis>(ar<emphasis role="op">*</emphasis>(1<emphasis role="op">-</emphasis>ifxlev))
+ <emphasis role="opc">outs</emphasis> al, ar
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-
-<emphasis role="comment">; It is not necessary to activate "effects" or create f-tables in the score! </emphasis>
-<emphasis role="comment">; Overlapping notes create new instances of instruments with proper connections. </emphasis>
-
-<emphasis role="stamnt">i</emphasis> "S<emphasis role="stamnt">i</emphasis>mpleS<emphasis role="stamnt">i</emphasis>ne" 1 5 60 85
-<emphasis role="stamnt">i</emphasis> "S<emphasis role="stamnt">i</emphasis>mpleS<emphasis role="stamnt">i</emphasis>ne" 2 5 64 80
-<emphasis role="stamnt">i</emphasis> "Moogy" 3 5 67 75
-<emphasis role="stamnt">i</emphasis> "Moogy" 4 5 71 70
-<emphasis role="comment">;1 extra second after the performance</emphasis>
-<emphasis role="stamnt">e</emphasis> 1
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>4
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/outletk.csd.xml b/examples-xml/outletk.csd.xml
new file mode 100644
index 0000000..5e6572e
--- /dev/null
+++ b/examples-xml/outletk.csd.xml
@@ -0,0 +1,46 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o inletk.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">connect</emphasis> "bend", "bendout", "guitar", "bendin"
+
+<emphasis role="oblock">instr</emphasis> bend
+
+kbend <emphasis role="opc">line</emphasis> p4, p3, p5
+ <emphasis role="opc">outletk</emphasis> "bendout", kbend
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> guitar
+
+kbend <emphasis role="opc">inletk</emphasis> "bendin"
+kpch <emphasis role="opc">pow</emphasis> 2, kbend<emphasis role="op">/</emphasis>12
+ <emphasis role="opc">printk2</emphasis> kpch
+asig <emphasis role="opc">oscili</emphasis> .4, 440<emphasis role="op">*</emphasis>kpch, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis>1 0 1024 10 1
+
+<emphasis role="stamnt">i</emphasis>"gu<emphasis role="stamnt">i</emphasis>tar" 0 5 8.00
+<emphasis role="stamnt">i</emphasis>"bend" 3 .2 -12 12
+<emphasis role="stamnt">i</emphasis>"bend" 4 .1 -17 40
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outq.csd.xml b/examples-xml/outq.csd.xml
new file mode 100644
index 0000000..e353122
--- /dev/null
+++ b/examples-xml/outq.csd.xml
@@ -0,0 +1,57 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outq.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">vco2</emphasis> .01, 110 <emphasis role="comment">; sawtooth waveform at low volume</emphasis>
+
+<emphasis role="comment">;filter the first channel</emphasis>
+kcut1 <emphasis role="opc">line</emphasis> 60, p3, 300 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance1 <emphasis role="op">=</emphasis> 3
+inumlayer1 <emphasis role="op">=</emphasis> 3
+asig1 <emphasis role="opc">lowresx</emphasis> asig, kcut1, kresonance1, inumlayer1
+
+<emphasis role="comment">;filter the second channel</emphasis>
+kcut2 <emphasis role="opc">line</emphasis> 300, p3, 60 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance2 <emphasis role="op">=</emphasis> 3
+inumlayer2 <emphasis role="op">=</emphasis> 3
+asig2 <emphasis role="opc">lowresx</emphasis> asig, kcut2, kresonance2, inumlayer2
+
+<emphasis role="comment">;filter the third channel</emphasis>
+kcut3 <emphasis role="opc">line</emphasis> 30, p3, 100<emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance3 <emphasis role="op">=</emphasis> 6
+inumlayer3 <emphasis role="op">=</emphasis> 3
+asig3 <emphasis role="opc">lowresx</emphasis> asig, kcut3, kresonance3, inumlayer3
+asig3 <emphasis role="op">=</emphasis> asig3<emphasis role="op">*</emphasis>.1 <emphasis role="comment">; lower volume</emphasis>
+
+<emphasis role="comment">;filter the fourth channel</emphasis>
+kcut4 <emphasis role="opc">line</emphasis> 100, p3, 30<emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance4 <emphasis role="op">=</emphasis> 6
+inumlayer4 <emphasis role="op">=</emphasis> 3
+asig4 <emphasis role="opc">lowresx</emphasis> asig, kcut4, kresonance4, inumlayer4
+asig4 <emphasis role="op">=</emphasis> asig4<emphasis role="op">*</emphasis>.1 <emphasis role="comment">; lower volume</emphasis>
+
+ <emphasis role="opc">outq</emphasis> asig1, asig2, asig3, asig4<emphasis role="comment">; output channels 1, 2, 3 &amp; 4</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outq1.csd.xml b/examples-xml/outq1.csd.xml
new file mode 100644
index 0000000..b69fd62
--- /dev/null
+++ b/examples-xml/outq1.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outq1.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">vco2</emphasis> .05, 30 <emphasis role="comment">; sawtooth waveform at low volume</emphasis>
+
+kcut <emphasis role="opc">line</emphasis> 60, p3, 300 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance <emphasis role="op">=</emphasis> 7
+inumlayer <emphasis role="op">=</emphasis> 2
+asig <emphasis role="opc">lowresx</emphasis> asig, kcut, kresonance, inumlayer
+
+ <emphasis role="opc">outq1</emphasis> asig <emphasis role="comment">; output channel 1</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outq2.csd.xml b/examples-xml/outq2.csd.xml
new file mode 100644
index 0000000..a901e4e
--- /dev/null
+++ b/examples-xml/outq2.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outq2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">vco2</emphasis> .05, 30 <emphasis role="comment">; sawtooth waveform at low volume</emphasis>
+
+kcut <emphasis role="opc">line</emphasis> 300, p3, 60 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance <emphasis role="op">=</emphasis> 7
+inumlayer <emphasis role="op">=</emphasis> 2
+asig <emphasis role="opc">lowresx</emphasis> asig, kcut, kresonance, inumlayer
+
+ <emphasis role="opc">outq2</emphasis> asig <emphasis role="comment">; output channel 2</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outq3.csd.xml b/examples-xml/outq3.csd.xml
new file mode 100644
index 0000000..f988fa5
--- /dev/null
+++ b/examples-xml/outq3.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outq3.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">vco2</emphasis> .05, 30 <emphasis role="comment">; sawtooth waveform at low volume</emphasis>
+
+kcut <emphasis role="opc">line</emphasis> 30, p3, 100 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance <emphasis role="op">=</emphasis> 7
+inumlayer <emphasis role="op">=</emphasis> 2
+asig <emphasis role="opc">lowresx</emphasis> asig, kcut, kresonance, inumlayer
+
+ <emphasis role="opc">outq3</emphasis> asig <emphasis role="comment">; output channel 3</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outq4.csd.xml b/examples-xml/outq4.csd.xml
new file mode 100644
index 0000000..be912d1
--- /dev/null
+++ b/examples-xml/outq4.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outq4.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">vco2</emphasis> .05, 30 <emphasis role="comment">; sawtooth waveform at low volume</emphasis>
+
+kcut <emphasis role="opc">line</emphasis> 100, p3, 30 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance <emphasis role="op">=</emphasis> 7
+inumlayer <emphasis role="op">=</emphasis> 2
+asig <emphasis role="opc">lowresx</emphasis> asig, kcut, kresonance, inumlayer
+
+ <emphasis role="opc">outq4</emphasis> asig <emphasis role="comment">; output channel 4</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outrg.csd.xml b/examples-xml/outrg.csd.xml
new file mode 100644
index 0000000..c0c149c
--- /dev/null
+++ b/examples-xml/outrg.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outrg.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4 <emphasis role="comment">;quad</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kleft <emphasis role="opc">init</emphasis> 1
+asig <emphasis role="opc">vco2</emphasis> .5, 220 <emphasis role="comment">;sawtooth</emphasis>
+idur <emphasis role="op">=</emphasis> p3<emphasis role="op">/</emphasis>(<emphasis role="ohdr">nchnls</emphasis><emphasis role="op">-</emphasis>1)
+knext <emphasis role="opc">init</emphasis> idur
+kpos <emphasis role="opc">init</emphasis> 0
+krate <emphasis role="opc">init</emphasis> 1<emphasis role="op">/</emphasis>idur
+kbase <emphasis role="opc">init</emphasis> 0
+ktime <emphasis role="opc">timeinsts</emphasis>
+<emphasis role="octrl">if</emphasis> ktime<emphasis role="op">>=</emphasis>knext then
+ kleft <emphasis role="op">=</emphasis> kleft <emphasis role="op">+</emphasis> 1
+ knext <emphasis role="op">=</emphasis> knext <emphasis role="op">+</emphasis> idur
+ kpos <emphasis role="op">=</emphasis> 0
+ kbase <emphasis role="op">=</emphasis> ktime
+<emphasis role="octrl">else</emphasis>
+ kpos <emphasis role="op">=</emphasis> (ktime<emphasis role="op">-</emphasis>kbase)<emphasis role="op">/</emphasis>idur
+<emphasis role="octrl">endif</emphasis>
+<emphasis role="opc">printks</emphasis> "speaker <emphasis role="op">%</emphasis>d position <emphasis role="op">%</emphasis>f\n", 0, kleft, kpos
+a1,a2 <emphasis role="opc">pan2</emphasis> asig, kpos
+ <emphasis role="opc">outrg</emphasis> kleft, a1, a2
+kpos <emphasis role="op">=</emphasis> kbase<emphasis role="op">/</emphasis>idur
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outs.csd.xml b/examples-xml/outs.csd.xml
new file mode 100644
index 0000000..4d0d45d
--- /dev/null
+++ b/examples-xml/outs.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outs.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">vco2</emphasis> .01, 110 <emphasis role="comment">; sawtooth waveform at low volume</emphasis>
+<emphasis role="comment">;filter a channel</emphasis>
+kcut1 <emphasis role="opc">line</emphasis> 60, p3, 300 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance1 <emphasis role="op">=</emphasis> 3
+inumlayer1 <emphasis role="op">=</emphasis> 3
+asig1 <emphasis role="opc">lowresx</emphasis> asig, kcut1, kresonance1, inumlayer1
+<emphasis role="comment">;filter the other channel</emphasis>
+kcut2 <emphasis role="opc">line</emphasis> 300, p3, 60 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance2 <emphasis role="op">=</emphasis> 3
+inumlayer2 <emphasis role="op">=</emphasis> 3
+asig2 <emphasis role="opc">lowresx</emphasis> asig, kcut2, kresonance2, inumlayer2
+
+ <emphasis role="opc">outs</emphasis> asig1, asig2 <emphasis role="comment">; output both channels 1 &amp; 2</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outs1.csd.xml b/examples-xml/outs1.csd.xml
new file mode 100644
index 0000000..caa9425
--- /dev/null
+++ b/examples-xml/outs1.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outs1.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">vco2</emphasis> .01, 110 <emphasis role="comment">; sawtooth waveform at low volume</emphasis>
+kcut <emphasis role="opc">line</emphasis> 60, p3, 300 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance <emphasis role="op">=</emphasis> 3
+inumlayer <emphasis role="op">=</emphasis> 3
+asig <emphasis role="opc">lowresx</emphasis> asig, kcut, kresonance, inumlayer
+ <emphasis role="opc">outs1</emphasis> asig <emphasis role="comment">; output stereo channel 1 only</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outs2.csd.xml b/examples-xml/outs2.csd.xml
new file mode 100644
index 0000000..5a69c99
--- /dev/null
+++ b/examples-xml/outs2.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o outs2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">vco2</emphasis> .01, 110 <emphasis role="comment">; sawtooth waveform at low volume</emphasis>
+kcut <emphasis role="opc">line</emphasis> 300, p3, 60 <emphasis role="comment">; Vary cutoff frequency</emphasis>
+kresonance <emphasis role="op">=</emphasis> 3
+inumlayer <emphasis role="op">=</emphasis> 3
+asig <emphasis role="opc">lowresx</emphasis> asig, kcut, kresonance, inumlayer
+ <emphasis role="opc">outs2</emphasis> asig <emphasis role="comment">; output stereo channel 2 only</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/outvalue.csd.xml b/examples-xml/outvalue.csd.xml
new file mode 100644
index 0000000..6d0f8d0
--- /dev/null
+++ b/examples-xml/outvalue.csd.xml
@@ -0,0 +1,28 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;run this example in CsoundQt, a Csound editor that provides widgets</emphasis>
+<emphasis role="comment">;make the Widgets-panel visible, by clicking the Widgets symbol in the menu or pressing (Alt+1).</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">; written by Alex Hofmann</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;move fader</emphasis>
+
+kMoveUp <emphasis role="opc">linseg</emphasis> 0, 3, 1, 1, 1, 0.5, 0
+<emphasis role="opc">outvalue</emphasis> "movefader", kMoveUp
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pan.csd.xml b/examples-xml/pan.csd.xml
index e4e6289..aa7de1f 100644
--- a/examples-xml/pan.csd.xml
+++ b/examples-xml/pan.csd.xml
@@ -2,38 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pan.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; 4 channel</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 441
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
- <emphasis role="oblock">instr</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-k1 <emphasis role="opc">phasor</emphasis> .2 <emphasis role="comment">; "fraction" of circle - controls speed of rotation - can be negative</emphasis>
-k2 <emphasis role="opc">tablei</emphasis> <emphasis role="opc">k</emphasis> 1, 1, 1 <emphasis role="comment">; sin of angle (sinusoid in f1)</emphasis>
-k3 <emphasis role="opc">tablei</emphasis> <emphasis role="opc">k</emphasis> 1, 1, 1, .25, 1 <emphasis role="comment">; cos of angle (sin offset 1/4 circle)</emphasis>
-asig <emphasis role="opc">rand</emphasis> 10000 <emphasis role="comment">; audio signal.. </emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+
+kcps <emphasis role="op">=</emphasis> p4
+k1 <emphasis role="opc">phasor</emphasis> kcps <emphasis role="comment">; "fraction" of circle - controls speed of rotation - can be negative</emphasis>
+k2 <emphasis role="opc">tablei</emphasis> k1, 1, 1 <emphasis role="comment">; sin of angle (sinusoid in f1)</emphasis>
+k3 <emphasis role="opc">tablei</emphasis> k1, 1, 1, .25, 1 <emphasis role="comment">; cos of angle (sin offset 1/4 circle)</emphasis>
+arnd <emphasis role="opc">randomi</emphasis> 400, 1000, 50 <emphasis role="comment">; produce random values </emphasis>
+asig <emphasis role="opc">poscil</emphasis> .7, arnd, 1 <emphasis role="comment">; audio signal.. </emphasis>
a1,a2,a3,a4 <emphasis role="opc">pan</emphasis> asig, k2<emphasis role="op">/</emphasis>2, k3<emphasis role="op">/</emphasis>2, 2, 1, 1 <emphasis role="comment">; sent in a circle (f2=1st quad sin)</emphasis>
<emphasis role="opc">outq</emphasis> a1, a2, a3, a4
- <emphasis role="oblock">endin</emphasis>
-
-
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
<emphasis role="stamnt">f</emphasis>2 0 8193 9 .25 1 0
-<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">i</emphasis>1 0 10 .2 <emphasis role="comment">;move to the tight</emphasis>
+<emphasis role="stamnt">i</emphasis>1 11 10 -.2 <emphasis role="comment">;move to the left</emphasis>
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/pan2.csd.xml b/examples-xml/pan2.csd.xml
index 82b6ca4..471c977 100644
--- a/examples-xml/pan2.csd.xml
+++ b/examples-xml/pan2.csd.xml
@@ -2,29 +2,28 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pan2.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 20
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 65537, 10, 1
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
<emphasis role="oblock">instr</emphasis> 1
kline <emphasis role="opc">line</emphasis> 0, p3, 1 <emphasis role="comment">; straight line</emphasis>
-ain <emphasis role="opc">oscili</emphasis> 10000,440, giSine <emphasis role="comment">; audio signal..</emphasis>
-a1,a2 <emphasis role="opc">pan2</emphasis> ain, kline <emphasis role="comment">; sent across image</emphasis>
- <emphasis role="opc">outs</emphasis> a1, a2
-
+ain <emphasis role="opc">oscili</emphasis> .6, 440, giSine <emphasis role="comment">; audio signal..</emphasis>
+aL,aR <emphasis role="opc">pan2</emphasis> ain, kline <emphasis role="comment">; sent across image</emphasis>
+ <emphasis role="opc">outs</emphasis> aL, aR
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">i</emphasis>1 0 5
diff --git a/examples-xml/partials.csd.xml b/examples-xml/partials.csd.xml
index dc89189..dfd4c4b 100644
--- a/examples-xml/partials.csd.xml
+++ b/examples-xml/partials.csd.xml
@@ -2,39 +2,33 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o partials.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">;ain inch 1 ; input signal</emphasis>
-ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
-fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain,2048,512,1 <emphasis role="comment">; ifd analysis</emphasis>
-fst <emphasis role="opc">partials</emphasis> fs1,fsi2,.003,1,3,500 <emphasis role="comment">; partial tracking</emphasis>
-aout <emphasis role="opc">resyn</emphasis> fst, 1, 1.5, 500, 1 <emphasis role="comment">; resynthesis (up a 5th)</emphasis>
- <emphasis role="opc">out</emphasis> aout
-
-<emphasis role="oblock">endin</emphasis>
+ain <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain,2048,512,1 <emphasis role="comment">; ifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1,fsi2,.003,1,3,500 <emphasis role="comment">; partial tracking</emphasis>
+aout <emphasis role="opc">resyn</emphasis> fst, 1, 1.5, 500, 1 <emphasis role="comment">; resynthesis (up a 5th)</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 1 0 2.8
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/partikkel-2.csd.xml b/examples-xml/partikkel-2.csd.xml
new file mode 100644
index 0000000..2ad84aa
--- /dev/null
+++ b/examples-xml/partikkel-2.csd.xml
@@ -0,0 +1,152 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out </emphasis>
+-odac <emphasis role="comment">;;;RT audio </emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o partikkel.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 20
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="comment">; Example by Joachim Heintz and Oeyvind Brandtsegg 2008</emphasis>
+
+giCosine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 9, 1, 1, 90 <emphasis role="comment">; cosine</emphasis>
+giDisttab <emphasis role="ohdr">ftgen</emphasis> 0, 0, 32768, 7, 0, 32768, 1 <emphasis role="comment">; for kdistribution</emphasis>
+giFile <emphasis role="ohdr">ftgen</emphasis> 0, 0, 0, 1, "fox.wav", 0, 0, 0 <emphasis role="comment">; soundfile for source waveform</emphasis>
+giWin <emphasis role="ohdr">ftgen</emphasis> 0, 0, 4096, 20, 9, 1 <emphasis role="comment">; grain envelope</emphasis>
+giPan <emphasis role="ohdr">ftgen</emphasis> 0, 0, 32768, <emphasis role="op">-</emphasis>21, 1 <emphasis role="comment">; for panning (random values between 0 and 1)</emphasis>
+
+
+<emphasis role="comment">; *************************************************</emphasis>
+<emphasis role="comment">; partikkel example, processing of soundfile</emphasis>
+<emphasis role="comment">; uses the file "fox.wav" </emphasis>
+<emphasis role="comment">; *************************************************</emphasis>
+ <emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>score parameters<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+ispeed <emphasis role="op">=</emphasis> p4 <emphasis role="comment">; 1 = original speed </emphasis>
+igrainrate <emphasis role="op">=</emphasis> p5 <emphasis role="comment">; grain rate</emphasis>
+igrainsize <emphasis role="op">=</emphasis> p6 <emphasis role="comment">; grain size in ms</emphasis>
+icent <emphasis role="op">=</emphasis> p7 <emphasis role="comment">; transposition in cent</emphasis>
+iposrand <emphasis role="op">=</emphasis> p8 <emphasis role="comment">; time position randomness (offset) of the pointer in ms</emphasis>
+icentrand <emphasis role="op">=</emphasis> p9 <emphasis role="comment">; transposition randomness in cents</emphasis>
+ipan <emphasis role="op">=</emphasis> p10 <emphasis role="comment">; panning narrow (0) to wide (1)</emphasis>
+idist <emphasis role="op">=</emphasis> p11 <emphasis role="comment">; grain distribution (0=periodic, 1=scattered)</emphasis>
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>get length of source wave file, needed for both transposition and time pointer<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+ifilen <emphasis role="opc">tableng</emphasis> giFile
+ifildur <emphasis role="op">=</emphasis> ifilen <emphasis role="op">/</emphasis> <emphasis role="ohdr">sr</emphasis>
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>sync input (disabled)<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+async <emphasis role="op">=</emphasis> 0
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis><emphasis role="opc">grain</emphasis> envelope<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+kenv2amt <emphasis role="op">=</emphasis> 1 <emphasis role="comment">; use only secondary envelope</emphasis>
+ienv2tab <emphasis role="op">=</emphasis> giWin <emphasis role="comment">; grain (secondary) envelope</emphasis>
+ienv_attack <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; default attack envelope (flat)</emphasis>
+ienv_decay <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; default decay envelope (flat)</emphasis>
+ksustain_amount <emphasis role="op">=</emphasis> 0.5 <emphasis role="comment">; no meaning in this case (use only secondary envelope, ienv2tab)</emphasis>
+ka_d_ratio <emphasis role="op">=</emphasis> 0.5 <emphasis role="comment">; no meaning in this case (use only secondary envelope, ienv2tab)</emphasis>
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>amplitude<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+kamp <emphasis role="op">=</emphasis> 0.4<emphasis role="op">*</emphasis><emphasis role="ohdr">0dbfs</emphasis> <emphasis role="comment">; grain amplitude</emphasis>
+igainmasks <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; (default) no gain masking</emphasis>
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>transposition<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+kcentrand <emphasis role="opc">rand</emphasis> icentrand <emphasis role="comment">; random transposition</emphasis>
+iorig <emphasis role="op">=</emphasis> 1 <emphasis role="op">/</emphasis> ifildur <emphasis role="comment">; original pitch</emphasis>
+kwavfreq <emphasis role="op">=</emphasis> iorig <emphasis role="op">*</emphasis> <emphasis role="opc">cent</emphasis>(icent <emphasis role="op">+</emphasis> kcentrand)
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>other <emphasis role="opc">pitch</emphasis> related (disabled)<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+ksweepshape <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; no frequency sweep</emphasis>
+iwavfreqstarttab <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; default frequency sweep start</emphasis>
+iwavfreqendtab <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; default frequency sweep end</emphasis>
+awavfm <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; no FM input</emphasis>
+ifmamptab <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; default FM scaling (=1)</emphasis>
+kfmenv <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; default FM envelope (flat)</emphasis>
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>trainlet related (disabled)<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+icosine <emphasis role="op">=</emphasis> giCosine <emphasis role="comment">; cosine ftable</emphasis>
+kTrainCps <emphasis role="op">=</emphasis> igrainrate <emphasis role="comment">; set trainlet cps equal to grain rate for single-cycle trainlet in each grain</emphasis>
+knumpartials <emphasis role="op">=</emphasis> 1 <emphasis role="comment">; number of partials in trainlet</emphasis>
+kchroma <emphasis role="op">=</emphasis> 1 <emphasis role="comment">; balance of partials in trainlet</emphasis>
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>panning, using channel masks<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+imid <emphasis role="op">=</emphasis> .5<emphasis role="comment">; center</emphasis>
+ileftmost <emphasis role="op">=</emphasis> imid <emphasis role="op">-</emphasis> ipan<emphasis role="op">/</emphasis>2
+irightmost <emphasis role="op">=</emphasis> imid <emphasis role="op">+</emphasis> ipan<emphasis role="op">/</emphasis>2
+giPanthis <emphasis role="ohdr">ftgen</emphasis> 0, 0, 32768, <emphasis role="op">-</emphasis>24, giPan, ileftmost, irightmost <emphasis role="comment">; rescales giPan according to ipan</emphasis>
+ <emphasis role="opc">tableiw</emphasis> 0, 0, giPanthis <emphasis role="comment">; change index 0 ...</emphasis>
+ <emphasis role="opc">tableiw</emphasis> 32766, 1, giPanthis <emphasis role="comment">; ... and 1 for ichannelmasks</emphasis>
+ichannelmasks <emphasis role="op">=</emphasis> giPanthis <emphasis role="comment">; ftable for panning</emphasis>
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis><emphasis role="opc">random</emphasis> <emphasis role="opc">gain</emphasis> masking (disabled)<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+krandommask <emphasis role="op">=</emphasis> 0
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>source waveforms<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+kwaveform1 <emphasis role="op">=</emphasis> giFile <emphasis role="comment">; source waveform</emphasis>
+kwaveform2 <emphasis role="op">=</emphasis> giFile <emphasis role="comment">; all 4 sources are the same</emphasis>
+kwaveform3 <emphasis role="op">=</emphasis> giFile
+kwaveform4 <emphasis role="op">=</emphasis> giFile
+iwaveamptab <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; (default) equal mix of source waveforms and no amplitude for trainlets</emphasis>
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>time pointer<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+afilposphas <emphasis role="opc">phasor</emphasis> ispeed <emphasis role="op">/</emphasis> ifildur
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>generate <emphasis role="opc">random</emphasis> deviation of the time pointer<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+iposrandsec <emphasis role="op">=</emphasis> iposrand <emphasis role="op">/</emphasis> 1000 <emphasis role="comment">; ms -> sec</emphasis>
+iposrand <emphasis role="op">=</emphasis> iposrandsec <emphasis role="op">/</emphasis> ifildur <emphasis role="comment">; phase values (0-1)</emphasis>
+krndpos <emphasis role="opc">linrand</emphasis> iposrand <emphasis role="comment">; random offset in phase values</emphasis>
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>add <emphasis role="opc">random</emphasis> deviation to the time pointer<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+asamplepos1 <emphasis role="op">=</emphasis> afilposphas <emphasis role="op">+</emphasis> krndpos<emphasis role="comment">; resulting phase values (0-1)</emphasis>
+asamplepos2 <emphasis role="op">=</emphasis> asamplepos1
+asamplepos3 <emphasis role="op">=</emphasis> asamplepos1
+asamplepos4 <emphasis role="op">=</emphasis> asamplepos1
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>original key for each source waveform<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+kwavekey1 <emphasis role="op">=</emphasis> 1
+kwavekey2 <emphasis role="op">=</emphasis> kwavekey1
+kwavekey3 <emphasis role="op">=</emphasis> kwavekey1
+kwavekey4 <emphasis role="op">=</emphasis> kwavekey1
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> maximum number of grains per <emphasis role="opc">k</emphasis><emphasis role="op">-</emphasis>period<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+imax_grains <emphasis role="op">=</emphasis> 100
+
+aL, aR <emphasis role="opc">partikkel</emphasis> igrainrate, idist, giDisttab, async, kenv2amt, ienv2tab, \
+ ienv_attack, ienv_decay, ksustain_amount, ka_d_ratio, igrainsize, kamp, igainmasks, \
+ kwavfreq, ksweepshape, iwavfreqstarttab, iwavfreqendtab, awavfm, \
+ ifmamptab, kfmenv, icosine, kTrainCps, knumpartials, \
+ kchroma, ichannelmasks, krandommask, kwaveform1, kwaveform2, kwaveform3, kwaveform4, \
+ iwaveamptab, asamplepos1, asamplepos2, asamplepos3, asamplepos4, \
+ kwavekey1, kwavekey2, kwavekey3, kwavekey4, imax_grains
+
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">;i1 st dur speed grate gsize cent posrnd cntrnd pan dist</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 2.757 1 200 15 0 0 0 0 0
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 2.757 1 200 15 400 0 0 0 0
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 2.757 1 15 450 400 0 0 0 0
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 2.757 1 15 450 400 0 0 0 0.4
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 2.757 1 200 15 0 400 0 0 1
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 5.514 .5 200 20 0 0 600 .5 1
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 11.028 .25 200 15 0 1000 400 1 1
+
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/partikkel.csd.xml b/examples-xml/partikkel.csd.xml
index af4f329..d86e270 100644
--- a/examples-xml/partikkel.csd.xml
+++ b/examples-xml/partikkel.csd.xml
@@ -2,8 +2,8 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o partikkel.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
@@ -59,7 +59,7 @@ kwavekey3 <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;</empha
kwavekey4 <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;</emphasis>
imax_grains <emphasis role="op">=</emphasis> 100 <emphasis role="comment">; max grains per k period</emphasis>
-a1 <emphasis role="opc">partikkel</emphasis> kgrainfreq, kdistribution, idisttab, async, kenv2amt, ienv2tab, \
+asig <emphasis role="opc">partikkel</emphasis> kgrainfreq, kdistribution, idisttab, async, kenv2amt, ienv2tab, \
ienv_attack, ienv_decay, ksustain_amount, ka_d_ratio, kduration, kamp, igainmasks, \
kwavfreq, ksweepshape, iwavfreqstarttab, iwavfreqendtab, awavfm, \
ifmamptab, kfmenv, icosine, kTrainCps, knumpartials, \
@@ -67,7 +67,7 @@ a1 <emphasis role="opc">partikkel</emphasis> kgrainfreq, kdistribution, idisttab
iwaveamptab, asamplepos1, asamplepos2, asamplepos3, asamplepos4, \
kwavekey1, kwavekey2, kwavekey3, kwavekey4, imax_grains
-<emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
diff --git a/examples-xml/partikkel_softsync.csd.xml b/examples-xml/partikkel_softsync.csd.xml
index ea1995d..28351fb 100644
--- a/examples-xml/partikkel_softsync.csd.xml
+++ b/examples-xml/partikkel_softsync.csd.xml
@@ -106,7 +106,7 @@ async1 <emphasis role="opc">partikkelsync</emphasis> iopcode_id <emphasis rol
<emphasis role="comment">; partikkel instance above</emphasis>
ksyncGravity <emphasis role="opc">line</emphasis> 0, p3, iMaxSync <emphasis role="comment">; strength of synchronization</emphasis>
aphase2 <emphasis role="opc">init</emphasis> 0
-asyncPolarity <emphasis role="opc">limit</emphasis> (<emphasis role="opc">int</emphasis>(aphase2<emphasis role="op">*</emphasis>2)<emphasis role="op">*</emphasis>2)<emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, 1
+asyncPolarity limit (<emphasis role="opc">int</emphasis>(aphase2<emphasis role="op">*</emphasis>2)<emphasis role="op">*</emphasis>2)<emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, 1
<emphasis role="comment">; use the phase of partikkelsync instance 2 to find sync </emphasis>
<emphasis role="comment">; polarity for partikkel instance 2.</emphasis>
<emphasis role="comment">; If the phase of instance 2 is less than 0.5, we want to</emphasis>
diff --git a/examples-xml/partikkelsync.csd.xml b/examples-xml/partikkelsync.csd.xml
new file mode 100644
index 0000000..28351fb
--- /dev/null
+++ b/examples-xml/partikkelsync.csd.xml
@@ -0,0 +1,171 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out </emphasis>
+-odac <emphasis role="comment">;;;RT audio </emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o partikkel_softsync.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 20
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="comment">; Example by Oeyvind Brandtsegg 2007, revised 2008</emphasis>
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 65537, 10, 1
+giCosine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 9, 1, 1, 90
+giSigmoRise <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 19, 0.5, 1, 270, 1 <emphasis role="comment">; rising sigmoid </emphasis>
+giSigmoFall <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 19, 0.5, 1, 90, 1 <emphasis role="comment">; falling sigmoid </emphasis>
+
+<emphasis role="comment">; *************************************************</emphasis>
+<emphasis role="comment">; example of soft synchronization of two partikkel instances</emphasis>
+<emphasis role="comment">; *************************************************</emphasis>
+ <emphasis role="oblock">instr</emphasis> 1
+
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>score parameters<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+igrainrate <emphasis role="op">=</emphasis> p4 <emphasis role="comment">; grain rate</emphasis>
+igrainsize <emphasis role="op">=</emphasis> p5 <emphasis role="comment">; grain size in ms</emphasis>
+igrainFreq <emphasis role="op">=</emphasis> p6 <emphasis role="comment">; fundamental frequency of source waveform</emphasis>
+iosc2Dev <emphasis role="op">=</emphasis> p7 <emphasis role="comment">; partikkel instance 2 grain rate deviation factor</emphasis>
+iMaxSync <emphasis role="op">=</emphasis> p8 <emphasis role="comment">; max soft sync amount (increasing to this value during length of note)</emphasis>
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis>overall envelope<emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+iattack <emphasis role="op">=</emphasis> 0.001
+idecay <emphasis role="op">=</emphasis> 0.2
+isustain <emphasis role="op">=</emphasis> 0.7
+irelease <emphasis role="op">=</emphasis> 0.2
+amp <emphasis role="opc">linsegr</emphasis> 0, iattack, 1, idecay, isustain, 1, isustain, irelease, 0
+
+kgrainfreq <emphasis role="op">=</emphasis> igrainrate <emphasis role="comment">; grains per second</emphasis>
+kdistribution <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; periodic grain distribution</emphasis>
+idisttab <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; (default) flat distribution used</emphasis>
+ <emphasis role="comment">; for grain distribution</emphasis>
+async <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; no sync input</emphasis>
+kenv2amt <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; no secondary enveloping</emphasis>
+ienv2tab <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; default secondary envelope (flat)</emphasis>
+ienv_attack <emphasis role="op">=</emphasis> giSigmoRise <emphasis role="comment">; default attack envelope (flat)</emphasis>
+ienv_decay <emphasis role="op">=</emphasis> giSigmoFall <emphasis role="comment">; default decay envelope (flat)</emphasis>
+ksustain_amount <emphasis role="op">=</emphasis> 0.3 <emphasis role="comment">; time (in fraction of grain dur) at</emphasis>
+ <emphasis role="comment">; sustain level for each grain</emphasis>
+ka_d_ratio <emphasis role="op">=</emphasis> 0.2 <emphasis role="comment">; balance between attack and decay time</emphasis>
+kduration <emphasis role="op">=</emphasis> igrainsize <emphasis role="comment">; set grain duration in ms</emphasis>
+kamp <emphasis role="op">=</emphasis> 0.2<emphasis role="op">*</emphasis><emphasis role="ohdr">0dbfs</emphasis> <emphasis role="comment">; amp</emphasis>
+igainmasks <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; (default) no gain masking</emphasis>
+kwavfreq <emphasis role="op">=</emphasis> igrainFreq <emphasis role="comment">; fundamental frequency of source waveform</emphasis>
+ksweepshape <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; shape of frequency sweep (0=no sweep)</emphasis>
+iwavfreqstarttab <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; default frequency sweep start</emphasis>
+ <emphasis role="comment">; (value in table = 1, which give</emphasis>
+ <emphasis role="comment">; no frequency modification)</emphasis>
+iwavfreqendtab <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; default frequency sweep end</emphasis>
+ <emphasis role="comment">; (value in table = 1, which give</emphasis>
+ <emphasis role="comment">; no frequency modification)</emphasis>
+awavfm <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; no FM input</emphasis>
+ifmamptab <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; default FM scaling (=1)</emphasis>
+kfmenv <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; default FM envelope (flat)</emphasis>
+icosine <emphasis role="op">=</emphasis> giCosine <emphasis role="comment">; cosine ftable</emphasis>
+kTrainCps <emphasis role="op">=</emphasis> kgrainfreq <emphasis role="comment">; set trainlet cps equal to grain</emphasis>
+ <emphasis role="comment">; rate for single-cycle trainlet in</emphasis>
+ <emphasis role="comment">; each grain</emphasis>
+knumpartials <emphasis role="op">=</emphasis> 3 <emphasis role="comment">; number of partials in trainlet</emphasis>
+kchroma <emphasis role="op">=</emphasis> 1 <emphasis role="comment">; balance of partials in trainlet</emphasis>
+ichannelmasks <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; (default) no channel masking,</emphasis>
+ <emphasis role="comment">; all grains to output 1</emphasis>
+krandommask <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; no random grain masking</emphasis>
+kwaveform1 <emphasis role="op">=</emphasis> giSine <emphasis role="comment">; source waveforms</emphasis>
+kwaveform2 <emphasis role="op">=</emphasis> giSine <emphasis role="comment">;</emphasis>
+kwaveform3 <emphasis role="op">=</emphasis> giSine <emphasis role="comment">;</emphasis>
+kwaveform4 <emphasis role="op">=</emphasis> giSine <emphasis role="comment">;</emphasis>
+iwaveamptab <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">; mix of 4 source waveforms and</emphasis>
+ <emphasis role="comment">; trainlets (set to default)</emphasis>
+asamplepos1 <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; phase offset for reading source waveform</emphasis>
+asamplepos2 <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;</emphasis>
+asamplepos3 <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;</emphasis>
+asamplepos4 <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;</emphasis>
+kwavekey1 <emphasis role="op">=</emphasis> 1 <emphasis role="comment">; original key for source waveform</emphasis>
+kwavekey2 <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;</emphasis>
+kwavekey3 <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;</emphasis>
+kwavekey4 <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;</emphasis>
+imax_grains <emphasis role="op">=</emphasis> 100 <emphasis role="comment">; max grains per k period</emphasis>
+iopcode_id <emphasis role="op">=</emphasis> 1 <emphasis role="comment">; id of opcode, linking partikkel</emphasis>
+ <emphasis role="comment">; to partikkelsync</emphasis>
+
+a1 <emphasis role="opc">partikkel</emphasis> kgrainfreq, kdistribution, idisttab, async, kenv2amt, \
+ ienv2tab,ienv_attack, ienv_decay, ksustain_amount, ka_d_ratio, \
+ kduration, kamp, igainmasks, kwavfreq, ksweepshape, \
+ iwavfreqstarttab, iwavfreqendtab, awavfm, ifmamptab, kfmenv, \
+ icosine, kTrainCps, knumpartials, kchroma, ichannelmasks, \
+ krandommask, kwaveform1, kwaveform2, kwaveform3, kwaveform4, \
+ iwaveamptab, asamplepos1, asamplepos2, asamplepos3, asamplepos4, \
+ kwavekey1, kwavekey2, kwavekey3, kwavekey4, imax_grains, iopcode_id
+
+async1 <emphasis role="opc">partikkelsync</emphasis> iopcode_id <emphasis role="comment">; clock pulse output of the </emphasis>
+ <emphasis role="comment">; partikkel instance above</emphasis>
+ksyncGravity <emphasis role="opc">line</emphasis> 0, p3, iMaxSync <emphasis role="comment">; strength of synchronization</emphasis>
+aphase2 <emphasis role="opc">init</emphasis> 0
+asyncPolarity limit (<emphasis role="opc">int</emphasis>(aphase2<emphasis role="op">*</emphasis>2)<emphasis role="op">*</emphasis>2)<emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, 1
+<emphasis role="comment">; use the phase of partikkelsync instance 2 to find sync </emphasis>
+<emphasis role="comment">; polarity for partikkel instance 2.</emphasis>
+<emphasis role="comment">; If the phase of instance 2 is less than 0.5, we want to</emphasis>
+<emphasis role="comment">; nudge it down when synchronizing,</emphasis>
+<emphasis role="comment">; and if the phase is > 0.5 we want to nudge it upwards.</emphasis>
+async1 <emphasis role="op">=</emphasis> async1<emphasis role="op">*</emphasis>ksyncGravity<emphasis role="op">*</emphasis>asyncPolarity <emphasis role="comment">; prepare sync signal</emphasis>
+ <emphasis role="comment">; with polarity and strength</emphasis>
+
+kgrainfreq2 <emphasis role="op">=</emphasis> igrainrate <emphasis role="op">*</emphasis> iosc2Dev <emphasis role="comment">; grains per second for second partikkel instance</emphasis>
+iopcode_id2 <emphasis role="op">=</emphasis> 2
+a2 <emphasis role="opc">partikkel</emphasis> kgrainfreq2, kdistribution, idisttab, async1, kenv2amt, \
+ ienv2tab, ienv_attack, ienv_decay, ksustain_amount, ka_d_ratio, \
+ kduration, kamp, igainmasks, kwavfreq, ksweepshape, \
+ iwavfreqstarttab, iwavfreqendtab, awavfm, ifmamptab, kfmenv, \
+ icosine, kTrainCps, knumpartials, kchroma, ichannelmasks, \
+ krandommask, kwaveform1, kwaveform2, kwaveform3, kwaveform4, \
+ iwaveamptab, asamplepos1, asamplepos2, asamplepos3, \
+ asamplepos4, kwavekey1, kwavekey2, kwavekey3, kwavekey4, \
+ imax_grains, iopcode_id2
+
+async2, aphase2 <emphasis role="opc">partikkelsync</emphasis> iopcode_id2
+<emphasis role="comment">; clock pulse and phase </emphasis>
+<emphasis role="comment">; output of the partikkel instance above,</emphasis>
+<emphasis role="comment">; we will only use the phase</emphasis>
+
+<emphasis role="opc">outs</emphasis> a1<emphasis role="op">*</emphasis>amp, a2<emphasis role="op">*</emphasis>amp
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+/*score parameters
+<emphasis role="stamnt">i</emphasis>gra<emphasis role="stamnt">i</emphasis>nrate = p4 <emphasis role="comment">; grain rate</emphasis>
+<emphasis role="stamnt">i</emphasis>gra<emphasis role="stamnt">i</emphasis>ns<emphasis role="stamnt">i</emphasis>ze = p5 <emphasis role="comment">; grain size in ms</emphasis>
+<emphasis role="stamnt">i</emphasis>gra<emphasis role="stamnt">i</emphasis>nFreq = p6 <emphasis role="comment">; frequency of source wave within grain</emphasis>
+<emphasis role="stamnt">i</emphasis>osc2Dev = p7 <emphasis role="comment">; partikkel instance 2 grain rate deviation factor</emphasis>
+<emphasis role="stamnt">i</emphasis>MaxSync = p8 <emphasis role="comment">; max soft sync amount (increasing to this value during length of note)</emphasis>
+*/
+<emphasis role="comment">; GrRate GrSize GrFund Osc2Dev MaxSync</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 10 2 20 880 1.3 0.3
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10 5 20 440 0.8 0.3
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 6 55 15 660 1.8 0.45
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 6 110 10 440 0.6 0.6
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 6 220 3 660 2.6 0.45
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 6 220 3 660 2.1 0.45
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 6 440 3 660 0.8 0.22
+<emphasis role="stamnt">s</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/passign.csd.xml b/examples-xml/passign.csd.xml
index f316173..34aaac6 100644
--- a/examples-xml/passign.csd.xml
+++ b/examples-xml/passign.csd.xml
@@ -1,11 +1,20 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
--odac
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o passign.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
- <emphasis role="oblock">instr</emphasis> 8
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 8
idur,iamp,iskiptime,iattack,irelease,irvbtime,irvbgain <emphasis role="opc">passign</emphasis> 3
@@ -14,8 +23,8 @@ asig <emphasis role="opc">soundin</emphasis> "fox.wav", iskiptime
arampsig <emphasis role="op">=</emphasis> kamp <emphasis role="op">*</emphasis> asig
aeffect <emphasis role="opc">reverb</emphasis> asig, irvbtime
arvbretrn <emphasis role="op">=</emphasis> aeffect <emphasis role="op">*</emphasis> irvbgain
-
- <emphasis role="opc">out</emphasis> arampsig <emphasis role="op">+</emphasis> arvbretrn
+<emphasis role="comment">;mix dry &amp; wet signals</emphasis>
+ <emphasis role="opc">outs</emphasis> arampsig <emphasis role="op">+</emphasis> arvbretrn, arampsig <emphasis role="op">+</emphasis> arvbretrn
<emphasis role="oblock">endin</emphasis>
@@ -23,11 +32,11 @@ arvbretrn <emphasis role="op">=</emphasis> aeffect <emphasis role="op">*
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="comment">;ins strt dur amp skip atk rel rvbt rvbgain</emphasis>
-<emphasis role="stamnt">i</emphasis>8 0 2.28 .3 0 .03 .1 1.5 .3
-<emphasis role="stamnt">i</emphasis>8 4 1.6 .3 1.6 .1 .1 1.1 .4
-<emphasis role="stamnt">i</emphasis>8 5.5 2.28 .3 0 .5 .1 2.1 .2
-<emphasis role="stamnt">i</emphasis>8 6.5 2.28 .4 0 .01 .1 1.1 .1
-<emphasis role="stamnt">i</emphasis>8 8 2.28 .5 0.1 .01 .1 0.1 .1
+<emphasis role="stamnt">i</emphasis>8 0 4 .3 0 .03 .1 1.5 .3
+<emphasis role="stamnt">i</emphasis>8 4 4 .3 1.6 .1 .1 3.1 .7
+<emphasis role="stamnt">i</emphasis>8 8 4 .3 0 .5 .1 2.1 .2
+<emphasis role="stamnt">i</emphasis>8 12 4 .4 0 .01 .1 1.1 .1
+<emphasis role="stamnt">i</emphasis>8 16 4 .5 0.1 .01 .1 0.1 .1
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/pcauchy.csd.xml b/examples-xml/pcauchy.csd.xml
index 8412988..e643429 100644
--- a/examples-xml/pcauchy.csd.xml
+++ b/examples-xml/pcauchy.csd.xml
@@ -2,51 +2,43 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pcauchy.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a random number between 0 and 1.</emphasis>
- <emphasis role="comment">; kalpha = 1</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; every run time same values</emphasis>
- i1 <emphasis role="opc">pcauchy</emphasis> 1
-
- <emphasis role="opc">print</emphasis> i1
+kalpha <emphasis role="opc">pcauchy</emphasis> 1000
+ <emphasis role="opc">printk</emphasis> .2, kalpha <emphasis role="comment">; look</emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>kalpha, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #2.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Generate a random number between 0 and 1.</emphasis>
- <emphasis role="comment">; kalpha = 1</emphasis>
-
- <emphasis role="ohdr">seed</emphasis> 0
-
- i1 <emphasis role="opc">pcauchy</emphasis> 1
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; every run time different values</emphasis>
- <emphasis role="opc">print</emphasis> i1
+ <emphasis role="ohdr">seed</emphasis> 0
+kalpha <emphasis role="opc">pcauchy</emphasis> 1000
+ <emphasis role="opc">printk</emphasis> .2, kalpha <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>kalpha, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="comment">; Play Instrument #2 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 1 1
+<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 2 3 2
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pchbend.csd.xml b/examples-xml/pchbend.csd.xml
index 8f2f5ed..2a01098 100644
--- a/examples-xml/pchbend.csd.xml
+++ b/examples-xml/pchbend.csd.xml
@@ -2,35 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -Q1 -Ma <emphasis role="comment">;;;realtime audio out and midi in (on all inputs) and out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pchbend.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="opc">pchbend</emphasis>
-
- <emphasis role="opc">print</emphasis> i1
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;use external midi keyboard</emphasis>
+icps <emphasis role="opc">cpsmidi</emphasis>
+kbnd <emphasis role="opc">pchbend</emphasis> 0, 100 <emphasis role="comment">;one octave lower and higher</emphasis>
+kenv <emphasis role="opc">linsegr</emphasis> 0,.001, 1, .1, 0 <emphasis role="comment">;amplitude envelope </emphasis>
+asig <emphasis role="opc">pluck</emphasis> .8 <emphasis role="op">*</emphasis> kenv, icps<emphasis role="op">+</emphasis>kbnd, 440, 0, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
-<emphasis role="comment">; Play Instrument #1 for 12 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 12
-<emphasis role="stamnt">e</emphasis>
-
-
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
+
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pconvolve.csd.xml b/examples-xml/pconvolve.csd.xml
new file mode 100644
index 0000000..12d70a0
--- /dev/null
+++ b/examples-xml/pconvolve.csd.xml
@@ -0,0 +1,76 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+-iadc <emphasis role="comment">;;;uncomment -iadc if real audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pconvolve.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kmix <emphasis role="op">=</emphasis> .5 <emphasis role="comment">; Wet/dry mix. Vary as desired.</emphasis>
+kvol <emphasis role="op">=</emphasis> .05<emphasis role="op">*</emphasis>kmix <emphasis role="comment">; Overall volume level of reverb. May need to adjust</emphasis>
+ <emphasis role="comment">; when wet/dry mix is changed, to avoid clipping.</emphasis>
+
+<emphasis role="comment">; do some safety checking to make sure we the parameters a good</emphasis>
+kmix <emphasis role="op">=</emphasis> (kmix <emphasis role="op">&lt;</emphasis> 0 <emphasis role="op">||</emphasis> kmix <emphasis role="op">></emphasis> 1 <emphasis role="op">?</emphasis> .5 <emphasis role="op">:</emphasis> kmix)
+kvol <emphasis role="op">=</emphasis> (kvol <emphasis role="op">&lt;</emphasis> 0 <emphasis role="op">?</emphasis> 0 <emphasis role="op">:</emphasis> .5<emphasis role="op">*</emphasis>kvol<emphasis role="op">*</emphasis>kmix)
+
+<emphasis role="comment">; size of each convolution partion -- for best performance, this parameter needs to be tweaked</emphasis>
+ipartitionsize <emphasis role="op">=</emphasis> p4
+
+<emphasis role="comment">; calculate latency of pconvolve opcode</emphasis>
+idel <emphasis role="op">=</emphasis> (<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">&lt;</emphasis> ipartitionsize <emphasis role="op">?</emphasis> ipartitionsize <emphasis role="op">+</emphasis> <emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">:</emphasis> ipartitionsize)<emphasis role="op">/</emphasis><emphasis role="ohdr">sr</emphasis>
+<emphasis role="opc">prints</emphasis> "Convolving with <emphasis role="opc">a</emphasis> latency of <emphasis role="op">%</emphasis>f seconds<emphasis role="op">%</emphasis>n", idel
+
+<emphasis role="comment">; actual processing</emphasis>
+al, ar <emphasis role="opc">ins</emphasis> <emphasis role="comment">;get live input</emphasis>
+awetl, awetr <emphasis role="opc">pconvolve</emphasis> kvol<emphasis role="op">*</emphasis>(al<emphasis role="op">+</emphasis>ar), "kickroll.wav", ipartitionsize
+<emphasis role="comment">; Delay dry signal, to align it with the convoled sig</emphasis>
+adryl <emphasis role="opc">delay</emphasis> (1<emphasis role="op">-</emphasis>kmix)<emphasis role="op">*</emphasis>al, idel
+adryr <emphasis role="opc">delay</emphasis> (1<emphasis role="op">-</emphasis>kmix)<emphasis role="op">*</emphasis>al, idel
+ <emphasis role="opc">outs</emphasis> adryl<emphasis role="op">+</emphasis>awetl, adryr<emphasis role="op">+</emphasis>awetr
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+imix <emphasis role="op">=</emphasis> 0.5 <emphasis role="comment">; Wet/dry mix. Vary as desired.</emphasis>
+ivol <emphasis role="op">=</emphasis> .05<emphasis role="op">*</emphasis>imix <emphasis role="comment">; Overall volume level of reverb. May need to adjust</emphasis>
+ <emphasis role="comment">; when wet/dry mix is changed, to avoid clipping.</emphasis>
+ipartitionsize <emphasis role="op">=</emphasis> 1024 <emphasis role="comment">; size of each convolution partion</emphasis>
+idel <emphasis role="op">=</emphasis> (<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">&lt;</emphasis> ipartitionsize <emphasis role="op">?</emphasis> ipartitionsize <emphasis role="op">+</emphasis> <emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">:</emphasis> ipartitionsize)<emphasis role="op">/</emphasis><emphasis role="ohdr">sr</emphasis> <emphasis role="comment">; latency of pconvolve opcode</emphasis>
+
+kcount <emphasis role="opc">init</emphasis> idel<emphasis role="op">*</emphasis><emphasis role="ohdr">kr</emphasis>
+<emphasis role="comment">; since we are using a soundin [instead of ins] we can</emphasis>
+<emphasis role="comment">; do a kind of "look ahead" by looping during one k-pass</emphasis>
+<emphasis role="comment">; without output, creating zero-latency</emphasis>
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+ asig <emphasis role="opc">soundin</emphasis> p4, 0
+ awetl, awetr <emphasis role="opc">pconvolve</emphasis> ivol<emphasis role="op">*</emphasis>(asig),"rv_stereo.wav", ipartitionsize
+ adry <emphasis role="opc">delay</emphasis> (1<emphasis role="op">-</emphasis>imix)<emphasis role="op">*</emphasis>asig,idel <emphasis role="comment">; Delay dry signal, to align it with</emphasis>
+ kcount <emphasis role="op">=</emphasis> kcount <emphasis role="op">-</emphasis> 1
+ <emphasis role="octrl">if</emphasis> kcount <emphasis role="op">></emphasis> 0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">loop</emphasis>
+ <emphasis role="opc">outs</emphasis> awetl<emphasis role="op">+</emphasis>adry, awetr<emphasis role="op">+</emphasis>adry
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 20 1024 <emphasis role="comment">;play live for 20 seconds</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 2 20 5 "fox.wav"
+<emphasis role="stamnt">i</emphasis> 2 25 5 "flute.a<emphasis role="stamnt">i</emphasis>ff"
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pcount.csd.xml b/examples-xml/pcount.csd.xml
index 55ad4e9..7c1714f 100644
--- a/examples-xml/pcount.csd.xml
+++ b/examples-xml/pcount.csd.xml
@@ -2,23 +2,86 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc <emphasis role="comment">; -d -M0 ;;;RT audio I/O with MIDI in</emphasis>
+-odac <emphasis role="comment">;;;realtime audio</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">;-o pcount.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o pcount.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">;Example by Anthony Kozar Dec 2006</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">; This UDO returns a pfield value but returns 0 if it does not exist.</emphasis>
+<emphasis role="oblock">opcode</emphasis> mypvalue, i, <emphasis role="opc">i</emphasis>
+ index <emphasis role="opc">xin</emphasis>
+ inum <emphasis role="opc">pcount</emphasis>
+ <emphasis role="octrl">if</emphasis> (index <emphasis role="op">></emphasis> inum) then
+ iout <emphasis role="op">=</emphasis> 0.0
+ <emphasis role="octrl">else</emphasis>
+ iout <emphasis role="opc">pindex</emphasis> index
+ <emphasis role="octrl">endif</emphasis>
+
+ <emphasis role="opc">xout</emphasis> iout
+<emphasis role="oblock">endop</emphasis>
+
+<emphasis role="comment">; Envelope UDO that reads parameters from a flexible number of pfields</emphasis>
+<emphasis role="comment">; Syntax: kenv flexlinseg ipstart</emphasis>
+<emphasis role="comment">; ipstart is the first pfield of the envelope</emphasis>
+<emphasis role="comment">; parameters. Reads remaining pfields (up to 21 of them).</emphasis>
+<emphasis role="comment">; kenv is the output envelope.</emphasis>
+
+<emphasis role="oblock">opcode</emphasis> flexlinseg, k, <emphasis role="opc">i</emphasis>
+ ipstart <emphasis role="opc">xin</emphasis>
+
+ iep1 mypvalue ipstart
+ iep2 mypvalue ipstart <emphasis role="op">+</emphasis> 1
+ iep3 mypvalue ipstart <emphasis role="op">+</emphasis> 2
+ iep4 mypvalue ipstart <emphasis role="op">+</emphasis> 3
+ iep5 mypvalue ipstart <emphasis role="op">+</emphasis> 4
+ iep6 mypvalue ipstart <emphasis role="op">+</emphasis> 5
+ iep7 mypvalue ipstart <emphasis role="op">+</emphasis> 6
+ iep8 mypvalue ipstart <emphasis role="op">+</emphasis> 7
+ iep9 mypvalue ipstart <emphasis role="op">+</emphasis> 8
+ iepa mypvalue ipstart <emphasis role="op">+</emphasis> 9
+ iepb mypvalue ipstart <emphasis role="op">+</emphasis> 10
+ iepc mypvalue ipstart <emphasis role="op">+</emphasis> 11
+ iepd mypvalue ipstart <emphasis role="op">+</emphasis> 12
+ iepe mypvalue ipstart <emphasis role="op">+</emphasis> 13
+ iepf mypvalue ipstart <emphasis role="op">+</emphasis> 14
+ iepg mypvalue ipstart <emphasis role="op">+</emphasis> 15
+ ieph mypvalue ipstart <emphasis role="op">+</emphasis> 16
+ iepi mypvalue ipstart <emphasis role="op">+</emphasis> 17
+ iepj mypvalue ipstart <emphasis role="op">+</emphasis> 18
+ iepk mypvalue ipstart <emphasis role="op">+</emphasis> 19
+ iepl mypvalue ipstart <emphasis role="op">+</emphasis> 20
+
+ kenv <emphasis role="opc">linseg</emphasis> iep1, iep2, iep3, iep4, iep5, iep6, iep7, iep8, \
+ iep9, iepa, iepb, iepc, iepd, iepe, iepf, iepg, \
+ ieph, iepi, iepj, iepk, iepl
+ <emphasis role="opc">xout</emphasis> kenv
+<emphasis role="oblock">endop</emphasis>
+
<emphasis role="oblock">instr</emphasis> 1
- inum <emphasis role="opc">pcount</emphasis>
- <emphasis role="opc">print</emphasis> inum
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="comment">; This instrument only requires 3 pfields but can accept up to 24.</emphasis>
+<emphasis role="comment">; (You will still get warnings about more than 3). </emphasis>
+kenv flexlinseg 4 <emphasis role="comment">; envelope params start at p4</emphasis>
+aout <emphasis role="opc">oscili</emphasis> kenv<emphasis role="op">*</emphasis>.5, 256, 1
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis>1 0 3 4 5 <emphasis role="comment">; has 5 pfields</emphasis>
-<emphasis role="stamnt">i</emphasis>1 1 3 <emphasis role="comment">; has 5 due to carry</emphasis>
-<emphasis role="stamnt">i</emphasis>1 2 3 4 5 6 7 <emphasis role="comment">; has 7</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis>1 0 2 0.0 1.0 1.0 1.0 0.0
+<emphasis role="stamnt">i</emphasis>1 2 2 0.0 0.1 1.0 1.0 1.0 0.1 0.0
+<emphasis role="stamnt">i</emphasis>1 4 2 0.0 0.5 0.0 <emphasis role="comment">; one problem is that "missing" pfields carry</emphasis>
+<emphasis role="stamnt">i</emphasis>1 6 2 0.0 0.5 0.0 ! <emphasis role="comment">; now we can fix this problem with !</emphasis>
+<emphasis role="stamnt">i</emphasis>1 8 10 0.0 3.0 1.0 0.3 0.1 0.3 1.0 0.3 0.1 0.3 1.0 0.3 0.1 0.8 0.9 5.0 0.0
+
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/pdhalf.csd.xml b/examples-xml/pdhalf.csd.xml
index e582ed5..bd938a0 100644
--- a/examples-xml/pdhalf.csd.xml
+++ b/examples-xml/pdhalf.csd.xml
@@ -2,13 +2,18 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o abs.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o pdhalf.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; test instrument for pdhalf opcode</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
<emphasis role="oblock">instr</emphasis> 4
idur <emphasis role="op">=</emphasis> p3
@@ -22,7 +27,7 @@
apd <emphasis role="opc">pdhalf</emphasis> aosc, kamount
aout <emphasis role="opc">tablei</emphasis> apd, itable, 1
- <emphasis role="opc">out</emphasis> aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp
+ <emphasis role="opc">outs</emphasis> aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp, aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
@@ -36,13 +41,33 @@
<emphasis role="comment">; pdhalf with cosine table</emphasis>
<emphasis role="comment">; (imitates the CZ-101 "sawtooth waveform")</emphasis>
<emphasis role="stamnt">t</emphasis> 0 100
-<emphasis role="stamnt">i</emphasis>4 0 .333 10000 512 3
+<emphasis role="stamnt">i</emphasis>4 0 3 .6 512 3
+<emphasis role="stamnt">i</emphasis>. + . . 448
+<emphasis role="stamnt">i</emphasis>. + . . 384
+<emphasis role="stamnt">i</emphasis>. + . . 358.4
+<emphasis role="stamnt">i</emphasis>. + . . 341.33
+<emphasis role="stamnt">i</emphasis>. + . . 298.67
+<emphasis role="stamnt">i</emphasis>. + 5 . 256
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="comment">; pdhalf with a sine table</emphasis>
+<emphasis role="stamnt">t</emphasis> 0 120
+<emphasis role="stamnt">i</emphasis>4 0 3 .6 512 1
+<emphasis role="stamnt">i</emphasis>. + . . 448
+<emphasis role="stamnt">i</emphasis>. + . . 384
+<emphasis role="stamnt">i</emphasis>. + . . 358.4
+<emphasis role="stamnt">i</emphasis>. + . . 341.33
+<emphasis role="stamnt">i</emphasis>. + . . 298.67
+<emphasis role="stamnt">i</emphasis>. + 5 . 256
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="comment">; pdhalf with a sawtooth-like table</emphasis>
+<emphasis role="stamnt">t</emphasis> 0 150
+<emphasis role="stamnt">i</emphasis>4 0 3 .6 512 2
<emphasis role="stamnt">i</emphasis>. + . . 448
<emphasis role="stamnt">i</emphasis>. + . . 384
<emphasis role="stamnt">i</emphasis>. + . . 358.4
<emphasis role="stamnt">i</emphasis>. + . . 341.33
<emphasis role="stamnt">i</emphasis>. + . . 298.67
-<emphasis role="stamnt">i</emphasis>. + 2 . 256
+<emphasis role="stamnt">i</emphasis>. + 5 . 256
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/pdhalfy.csd.xml b/examples-xml/pdhalfy.csd.xml
index ab6b4a4..6bc8fcd 100644
--- a/examples-xml/pdhalfy.csd.xml
+++ b/examples-xml/pdhalfy.csd.xml
@@ -2,13 +2,18 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o abs.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o pdhalfy.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; test instrument for pdhalfy opcode</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
<emphasis role="oblock">instr</emphasis> 5
idur <emphasis role="op">=</emphasis> p3
@@ -30,7 +35,7 @@
apd <emphasis role="opc">pdhalfy</emphasis> aosc, kamount
aout <emphasis role="opc">tablei</emphasis> apd, itable, 1
- <emphasis role="opc">out</emphasis> aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp
+ <emphasis role="opc">outs</emphasis> aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp, aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
@@ -42,7 +47,7 @@
<emphasis role="comment">; pdhalfy with cosine table</emphasis>
<emphasis role="stamnt">t</emphasis> 0 100
-<emphasis role="stamnt">i</emphasis>5 0 .333 10000 512 1.0 .02 0.5 .12 3
+<emphasis role="stamnt">i</emphasis>5 0 .333 .6 512 1.0 .02 0.5 .12 3
<emphasis role="stamnt">i</emphasis>. + . . 448 &lt;
<emphasis role="stamnt">i</emphasis>. + . . 384 &lt;
<emphasis role="stamnt">i</emphasis>. + . . 358.4 &lt;
@@ -53,7 +58,7 @@
<emphasis role="comment">; pdhalfy with sine table</emphasis>
<emphasis role="stamnt">t</emphasis> 0 100
-<emphasis role="stamnt">i</emphasis>5 0 .333 10000 512 1.0 .001 0.1 .07 1
+<emphasis role="stamnt">i</emphasis>5 0 .333 .6 512 1.0 .001 0.1 .07 1
<emphasis role="stamnt">i</emphasis>. + . . 448 &lt;
<emphasis role="stamnt">i</emphasis>. + . . 384 &lt;
<emphasis role="stamnt">i</emphasis>. + . . 358.4 &lt;
diff --git a/examples-xml/pgmassign_advanced.csd.xml b/examples-xml/pgmassign_advanced.csd.xml
index 583fde1..50dfba3 100644
--- a/examples-xml/pgmassign_advanced.csd.xml
+++ b/examples-xml/pgmassign_advanced.csd.xml
@@ -2,22 +2,24 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac -F pgmassign_advanced.mid <emphasis role="comment">;;;realtime audio out with midifile in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pgmassign_advanced.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="ohdr">massign</emphasis> 1, 1 <emphasis role="comment">; channels 1 to 4 use instr 1 by default</emphasis>
<emphasis role="ohdr">massign</emphasis> 2, 1
<emphasis role="ohdr">massign</emphasis> 3, 1
<emphasis role="ohdr">massign</emphasis> 4, 1
+<emphasis role="comment">; pgmassign_advanced.mid can be found in /manual/examples</emphasis>
<emphasis role="comment">; pgmassign.mid has 4 notes with these parameters:</emphasis>
<emphasis role="comment">;</emphasis>
<emphasis role="comment">; Start time Channel Program</emphasis>
@@ -39,24 +41,24 @@ itmp <emphasis role="ohdr">ftgen</emphasis> 3, 0, 1024, 10, 1, 0, 0.3333, 0, 0.2
<emphasis role="oblock">instr</emphasis> 1 <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> sine <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
kcps <emphasis role="opc">cpsmidib</emphasis> 2 <emphasis role="comment">; note frequency</emphasis>
-asnd <emphasis role="opc">oscili</emphasis> 30000, kcps, 1
- <emphasis role="opc">out</emphasis> asnd
+asnd <emphasis role="opc">oscili</emphasis> .6, kcps, 1
+ <emphasis role="opc">outs</emphasis> asnd, asnd
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2 <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> band<emphasis role="op">-</emphasis>limited sawtooth <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
kcps <emphasis role="opc">cpsmidib</emphasis> 2 <emphasis role="comment">; note frequency</emphasis>
-asnd <emphasis role="opc">oscili</emphasis> 30000, kcps, 2
- <emphasis role="opc">out</emphasis> asnd
+asnd <emphasis role="opc">oscili</emphasis> .6, kcps, 2
+ <emphasis role="opc">outs</emphasis> asnd, asnd
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 3 <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> band<emphasis role="op">-</emphasis>limited square <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
kcps <emphasis role="opc">cpsmidib</emphasis> 2 <emphasis role="comment">; note frequency</emphasis>
-asnd <emphasis role="opc">oscili</emphasis> 30000, kcps, 3
- <emphasis role="opc">out</emphasis> asnd
+asnd <emphasis role="opc">oscili</emphasis> .6, kcps, 3
+ <emphasis role="opc">outs</emphasis> asnd, asnd
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/phasor.csd.xml b/examples-xml/phasor.csd.xml
index f6bbbbf..14dac50 100644
--- a/examples-xml/phasor.csd.xml
+++ b/examples-xml/phasor.csd.xml
@@ -2,50 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o phasor.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create an index that repeats once per second.</emphasis>
- kcps <emphasis role="opc">init</emphasis> 1
- kndx <emphasis role="opc">phasor</emphasis> kcps
- <emphasis role="comment">; Read Table #1 with our index.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
- ixmode <emphasis role="op">=</emphasis> 1
- kfreq <emphasis role="opc">table</emphasis> kndx, ifn, ixmode
+ifn <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;read table 1 with our index</emphasis>
+ixmode <emphasis role="op">=</emphasis> 1
+kndx <emphasis role="opc">phasor</emphasis> p4
+kfrq <emphasis role="opc">table</emphasis> kndx, ifn, ixmode
+asig <emphasis role="opc">poscil</emphasis> .6, kfrq, 2 <emphasis role="comment">;re-synthesize with sine</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; Generate a sine waveform, use our table values </emphasis>
- <emphasis role="comment">; to vary its frequency.</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> 20000, kfreq, 2
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 1025 -7 200 1024 2000 <emphasis role="comment">;a line from 200 to 2,000 </emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1<emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Table #1, a line from 200 to 2,000.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 1025 -7 200 1024 2000
-<emphasis role="comment">; Table #2, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 1 1 <emphasis role="comment">;once per second</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 2 2 .5 <emphasis role="comment">;once per 2 seconds</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 5 1 2 <emphasis role="comment">;twice per second</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pindex-2.csd.xml b/examples-xml/pindex-2.csd.xml
new file mode 100644
index 0000000..eab3164
--- /dev/null
+++ b/examples-xml/pindex-2.csd.xml
@@ -0,0 +1,88 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pindex-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">; This UDO returns a pfield value but returns 0 if it does not exist.</emphasis>
+<emphasis role="oblock">opcode</emphasis> mypvalue, i, <emphasis role="opc">i</emphasis>
+ index <emphasis role="opc">xin</emphasis>
+ inum <emphasis role="opc">pcount</emphasis>
+ <emphasis role="octrl">if</emphasis> (index <emphasis role="op">></emphasis> inum) then
+ iout <emphasis role="op">=</emphasis> 0.0
+ <emphasis role="octrl">else</emphasis>
+ iout <emphasis role="opc">pindex</emphasis> index
+ <emphasis role="octrl">endif</emphasis>
+
+ <emphasis role="opc">xout</emphasis> iout
+<emphasis role="oblock">endop</emphasis>
+
+<emphasis role="comment">; Envelope UDO that reads parameters from a flexible number of pfields</emphasis>
+<emphasis role="comment">; Syntax: kenv flexlinseg ipstart</emphasis>
+<emphasis role="comment">; ipstart is the first pfield of the envelope</emphasis>
+<emphasis role="comment">; parameters. Reads remaining pfields (up to 21 of them).</emphasis>
+<emphasis role="comment">; kenv is the output envelope.</emphasis>
+
+<emphasis role="oblock">opcode</emphasis> flexlinseg, k, <emphasis role="opc">i</emphasis>
+ ipstart <emphasis role="opc">xin</emphasis>
+
+ iep1 mypvalue ipstart
+ iep2 mypvalue ipstart <emphasis role="op">+</emphasis> 1
+ iep3 mypvalue ipstart <emphasis role="op">+</emphasis> 2
+ iep4 mypvalue ipstart <emphasis role="op">+</emphasis> 3
+ iep5 mypvalue ipstart <emphasis role="op">+</emphasis> 4
+ iep6 mypvalue ipstart <emphasis role="op">+</emphasis> 5
+ iep7 mypvalue ipstart <emphasis role="op">+</emphasis> 6
+ iep8 mypvalue ipstart <emphasis role="op">+</emphasis> 7
+ iep9 mypvalue ipstart <emphasis role="op">+</emphasis> 8
+ iepa mypvalue ipstart <emphasis role="op">+</emphasis> 9
+ iepb mypvalue ipstart <emphasis role="op">+</emphasis> 10
+ iepc mypvalue ipstart <emphasis role="op">+</emphasis> 11
+ iepd mypvalue ipstart <emphasis role="op">+</emphasis> 12
+ iepe mypvalue ipstart <emphasis role="op">+</emphasis> 13
+ iepf mypvalue ipstart <emphasis role="op">+</emphasis> 14
+ iepg mypvalue ipstart <emphasis role="op">+</emphasis> 15
+ ieph mypvalue ipstart <emphasis role="op">+</emphasis> 16
+ iepi mypvalue ipstart <emphasis role="op">+</emphasis> 17
+ iepj mypvalue ipstart <emphasis role="op">+</emphasis> 18
+ iepk mypvalue ipstart <emphasis role="op">+</emphasis> 19
+ iepl mypvalue ipstart <emphasis role="op">+</emphasis> 20
+
+ kenv <emphasis role="opc">linseg</emphasis> iep1, iep2, iep3, iep4, iep5, iep6, iep7, iep8, \
+ iep9, iepa, iepb, iepc, iepd, iepe, iepf, iepg, \
+ ieph, iepi, iepj, iepk, iepl
+ <emphasis role="opc">xout</emphasis> kenv
+<emphasis role="oblock">endop</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">; This instrument only requires 3 pfields but can accept up to 24.</emphasis>
+<emphasis role="comment">; (You will still get warnings about more than 3). </emphasis>
+kenv flexlinseg 4 <emphasis role="comment">; envelope params start at p4</emphasis>
+aout <emphasis role="opc">oscili</emphasis> kenv<emphasis role="op">*</emphasis>.5, 256, 1
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis>1 0 2 0.0 1.0 1.0 1.0 0.0
+<emphasis role="stamnt">i</emphasis>1 2 2 0.0 0.1 1.0 1.0 1.0 0.1 0.0
+<emphasis role="stamnt">i</emphasis>1 4 2 0.0 0.5 0.0 <emphasis role="comment">; one problem is that "missing" pfields carry</emphasis>
+<emphasis role="stamnt">i</emphasis>1 6 2 0.0 0.5 0.0 ! <emphasis role="comment">; now we can fix this problem with !</emphasis>
+<emphasis role="stamnt">i</emphasis>1 8 10 0.0 3.0 1.0 0.3 0.1 0.3 1.0 0.3 0.1 0.3 1.0 0.3 0.1 0.8 0.9 5.0 0.0
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pitch.csd.xml b/examples-xml/pitch.csd.xml
index 26cf8a2..7d07a3c 100644
--- a/examples-xml/pitch.csd.xml
+++ b/examples-xml/pitch.csd.xml
@@ -2,62 +2,53 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pitch.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1 - play an audio file without effects.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- asig <emphasis role="opc">soundin</emphasis> "mary.wav"
- <emphasis role="opc">out</emphasis> asig
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #2 - track the pitch of an audio file.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- iupdte <emphasis role="op">=</emphasis> 0.01
- ilo <emphasis role="op">=</emphasis> 7
- ihi <emphasis role="op">=</emphasis> 9
- idbthresh <emphasis role="op">=</emphasis> 10
- ifrqs <emphasis role="op">=</emphasis> 12
- iconf <emphasis role="op">=</emphasis> 10
- istrt <emphasis role="op">=</emphasis> 8
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;clean audio</emphasis>
- asig <emphasis role="opc">soundin</emphasis> "mary.wav"
+asig <emphasis role="opc">soundin</emphasis> p4
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
- <emphasis role="comment">; Follow the audio file, get its pitch and amplitude.</emphasis>
- koct, kamp <emphasis role="opc">pitch</emphasis> asig, iupdte, ilo, ihi, idbthresh, ifrqs, iconf, istrt
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;use pitch</emphasis>
- <emphasis role="comment">; Re-synthesize the audio file with a different sounding waveform.</emphasis>
- kamp2 <emphasis role="op">=</emphasis> kamp <emphasis role="op">*</emphasis> 10
- kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpsoct</emphasis>(koct)
- a1 <emphasis role="opc">oscil</emphasis> kamp2, kcps, 1
-
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+iupdte <emphasis role="op">=</emphasis> 0.001 <emphasis role="comment">;high definition</emphasis>
+ilo <emphasis role="op">=</emphasis> 6
+ihi <emphasis role="op">=</emphasis> 10
+idbthresh <emphasis role="op">=</emphasis> 10
+ifrqs <emphasis role="op">=</emphasis> 12
+iconf <emphasis role="op">=</emphasis> 10
+istrt <emphasis role="op">=</emphasis> 8
+asig <emphasis role="opc">soundin</emphasis> p4
+koct, kamp <emphasis role="opc">pitch</emphasis> asig, iupdte, ilo, ihi, idbthresh, ifrqs, iconf, istrt
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">*</emphasis>.00005 <emphasis role="comment">;lower volume</emphasis>
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpsoct</emphasis>(koct)
+asig <emphasis role="opc">poscil</emphasis> kamp, kcps, 1 <emphasis role="comment">;re-synthesize with sawtooth</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1: A different sounding waveform.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 32768 11 7 3 .7
-
-<emphasis role="comment">; Play Instrument #1, the audio file, for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="comment">; Play Instrument #2, the "re-synthesized" waveform, for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 3 3
+<emphasis role="stamnt">f</emphasis>1 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 <emphasis role="comment">;sawtooth</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3 "fox.wav"
+<emphasis role="stamnt">i</emphasis> 2 3 3 "fox.wav"
+<emphasis role="stamnt">i</emphasis> 1 6 3 "mary.wav"
+<emphasis role="stamnt">i</emphasis> 2 9 3 "mary.wav"
+<emphasis role="stamnt">i</emphasis> 1 12 3 "beats.wav"
+<emphasis role="stamnt">i</emphasis> 2 15 3 "beats.wav"
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pitchamdf.csd.xml b/examples-xml/pitchamdf.csd.xml
index dc7e26b..7028d9f 100644
--- a/examples-xml/pitchamdf.csd.xml
+++ b/examples-xml/pitchamdf.csd.xml
@@ -2,57 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pitchamdf.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; synth waveform</emphasis>
-giwave <emphasis role="ohdr">ftgen</emphasis> 2, 0, 1024, 10, 1, 1, 1, 1
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;clean audio</emphasis>
-<emphasis role="comment">; Instrument #1 - play an audio file with no effects.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; get input signal with original freq.</emphasis>
- asig <emphasis role="opc">soundin</emphasis> "mary.wav"
-
- <emphasis role="opc">out</emphasis> asig
+asig <emphasis role="opc">soundin</emphasis> p4
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #2 - play the synth waveform using the</emphasis>
-<emphasis role="comment">; same pitch and amplitude as the audio file.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; get input signal with original freq.</emphasis>
- asig <emphasis role="opc">soundin</emphasis> "mary.wav"
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;use pitch</emphasis>
- <emphasis role="comment">; lowpass-filter</emphasis>
- asig <emphasis role="opc">tone</emphasis> asig, 1000
- <emphasis role="comment">; extract pitch and envelope</emphasis>
- kcps, krms <emphasis role="opc">pitchamdf</emphasis> asig, 150, 500, 200
- <emphasis role="comment">; "re-synthesize" with the synth waveform, giwave.</emphasis>
- asig1 <emphasis role="opc">oscil</emphasis> krms, kcps, giwave
+asig <emphasis role="opc">soundin</emphasis> p4
+asig <emphasis role="opc">tone</emphasis> asig, 1000 <emphasis role="comment">;lowpass-filter</emphasis>
+kcps, krms <emphasis role="opc">pitchamdf</emphasis> asig, 100, 500, 200
+asig <emphasis role="opc">poscil</emphasis> krms, kcps, 1 <emphasis role="comment">;re-synthesize with sawtooth</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="opc">out</emphasis> asig1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Play Instrument #1, the audio file, for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="comment">; Play Instrument #2, the "re-synthesized" waveform, for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 3 3
+<emphasis role="stamnt">f</emphasis>1 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 <emphasis role="comment">;sawtooth</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3 "fox.wav"
+<emphasis role="stamnt">i</emphasis> 2 3 3 "fox.wav"
+<emphasis role="stamnt">i</emphasis> 1 6 3 "mary.wav"
+<emphasis role="stamnt">i</emphasis> 2 9 3 "mary.wav"
+<emphasis role="stamnt">i</emphasis> 1 12 3 "beats.wav"
+<emphasis role="stamnt">i</emphasis> 2 15 3 "beats.wav"
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/plate.csd.xml b/examples-xml/plate.csd.xml
new file mode 100644
index 0000000..3388a22
--- /dev/null
+++ b/examples-xml/plate.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">;-odac ;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+ -o plate.wav -W <emphasis role="comment">;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">; Note: this example is heavy on CPU</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ab <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
+al,ar <emphasis role="opc">platerev</emphasis> 1, 2, p4, 0.73, 1.0, 5.0, 0.001, ab,ab
+ <emphasis role="opc">outs</emphasis> al<emphasis role="op">*</emphasis>.25,ar<emphasis role="op">*</emphasis>.25
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8 -2 0.3 0.3875 0.39274 0.32 0.85714 0.78548
+<emphasis role="stamnt">f</emphasis>2 0 8 -2 0.2 0.666667 1.57097 0.24 0.75 0.78548
+<emphasis role="stamnt">i</emphasis>1 0 4 1
+<emphasis role="stamnt">i</emphasis>1 + 4 2
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/plltrack.csd.xml b/examples-xml/plltrack.csd.xml
new file mode 100644
index 0000000..a6bc78a
--- /dev/null
+++ b/examples-xml/plltrack.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o plltrack.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kd <emphasis role="op">=</emphasis> p4
+a1 <emphasis role="opc">diskin2</emphasis> "fox.wav", 1,0,1
+apitch, aloc <emphasis role="opc">plltrack</emphasis> a1, kd
+krms <emphasis role="opc">rms</emphasis> a1
+krms <emphasis role="opc">port</emphasis> krms, 0.01
+asig <emphasis role="opc">buzz</emphasis> krms, apitch, 10, 1
+ <emphasis role="opc">outs</emphasis> asig, asig <emphasis role="comment">;mix in some dry signal as well</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 65536 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 6 0.1
+<emphasis role="stamnt">i</emphasis> 1 7 6 0.3 <emphasis role="comment">;more feedback</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pluck.csd.xml b/examples-xml/pluck.csd.xml
index 5a7f1be..9028631 100644
--- a/examples-xml/pluck.csd.xml
+++ b/examples-xml/pluck.csd.xml
@@ -2,40 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pluck.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 20000
- kcps <emphasis role="op">=</emphasis> 440
- icps <emphasis role="op">=</emphasis> 440
- ifn <emphasis role="op">=</emphasis> 0
- imeth <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">pluck</emphasis> kamp, kcps, icps, ifn, imeth
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kcps <emphasis role="op">=</emphasis> 220
+icps <emphasis role="op">=</emphasis> 220
+ifn <emphasis role="op">=</emphasis> 0
+imeth <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">pluck</emphasis> 0.7, 220, 220, ifn, imeth, .1, 10
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 5 1
+<emphasis role="stamnt">i</emphasis> 1 5 5 4 <emphasis role="comment">;needs 2 extra parameters (iparm1, iparm2)</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 10 5 6
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/polynomial.csd.xml b/examples-xml/polynomial.csd.xml
index fa82a95..986eb69 100644
--- a/examples-xml/polynomial.csd.xml
+++ b/examples-xml/polynomial.csd.xml
@@ -1,33 +1,108 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
-<emphasis role="comment">; no sound output</emphasis>
- -n
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o polynomial.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100 <emphasis role="comment">; audio rate is not important</emphasis>
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 10 <emphasis role="comment">; execute the statements in instr 1 ten times per second</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; ax will vary from 1 to 10</emphasis>
- ax <emphasis role="opc">init</emphasis> 1
-
- <emphasis role="comment">; ay = ax^3 + 2ax^2 + 3ax + 4</emphasis>
- ay <emphasis role="opc">polynomial</emphasis> ax, 4, 3, 2, 1
+<emphasis role="comment">; The polynomial y=x^n where n is odd always produces a curve</emphasis>
+<emphasis role="comment">; that traverses the range [-1, 1] when the input is within</emphasis>
+<emphasis role="comment">; the same range. Therefore, we can use one of these curves</emphasis>
+<emphasis role="comment">; to make a nonlinear phasor that repeatedly reads a table </emphasis>
+<emphasis role="comment">; from beginning to end like a linear phasor (maintaining </emphasis>
+<emphasis role="comment">; continuity) but that distorts the waveform in the table.</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 4 <emphasis role="comment">; This instrument demonstrates phase distortion with x^3</emphasis>
+
+idur <emphasis role="op">=</emphasis> p3
+iamp <emphasis role="op">=</emphasis> p4
+ifreq <emphasis role="op">=</emphasis> p5
+itable <emphasis role="op">=</emphasis> p6
- <emphasis role="comment">; convert our a-rate signals to k-rate values so that we can print</emphasis>
- ky <emphasis role="opc">downsamp</emphasis> ay
- kx <emphasis role="opc">downsamp</emphasis> ax
- <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>d<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>d\n", kx, kx, ky
+aenv <emphasis role="opc">linseg</emphasis> 0, .001, 1.0, idur <emphasis role="op">-</emphasis> .051, 1.0, .05, 0 <emphasis role="comment">; declicking envelope</emphasis>
+aosc <emphasis role="opc">phasor</emphasis> ifreq <emphasis role="comment">; create a linear phasor</emphasis>
+apd <emphasis role="opc">polynomial</emphasis> aosc, 0, 0, 0, 1 <emphasis role="comment">; distort the phasor with x^3</emphasis>
+aout <emphasis role="opc">tablei</emphasis> apd, itable, 1 <emphasis role="comment">; read a sine table with the nonlinear phasor</emphasis>
+ <emphasis role="opc">outs</emphasis> aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp, aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp
+
+<emphasis role="oblock">endin</emphasis>
- ax <emphasis role="op">=</emphasis> ax <emphasis role="op">+</emphasis> 1
+<emphasis role="oblock">instr</emphasis> 5 <emphasis role="comment">; This instrument demonstrates phase distortion with x^11</emphasis>
+
+idur <emphasis role="op">=</emphasis> p3
+iamp <emphasis role="op">=</emphasis> p4
+ifreq <emphasis role="op">=</emphasis> p5
+itable <emphasis role="op">=</emphasis> p6
+
+aenv <emphasis role="opc">linseg</emphasis> 0, .001, 1.0, idur <emphasis role="op">-</emphasis> .051, 1.0, .05, 0 <emphasis role="comment">; declicking envelope</emphasis>
+aosc <emphasis role="opc">phasor</emphasis> ifreq <emphasis role="comment">; create a linear phasor</emphasis>
+apd <emphasis role="opc">polynomial</emphasis> aosc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 <emphasis role="comment">; distort the phasor with x^11</emphasis>
+aout <emphasis role="opc">tablei</emphasis> apd, itable, 1 <emphasis role="comment">; read a sine table with the nonlinear phasor</emphasis>
+ <emphasis role="opc">outs</emphasis> aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp, aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp
+
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 6 <emphasis role="comment">; This instrument crossfades between a pure sine and one distorted with x^11</emphasis>
+
+idur <emphasis role="op">=</emphasis> p3
+iamp <emphasis role="op">=</emphasis> p4
+ifreq <emphasis role="op">=</emphasis> p5
+itable <emphasis role="op">=</emphasis> p6
+
+aenv <emphasis role="opc">linseg</emphasis> 0, .001, 1.0, idur <emphasis role="op">-</emphasis> .051, 1.0, .05, 0 <emphasis role="comment">; declicking envelope</emphasis>
+aosc <emphasis role="opc">phasor</emphasis> ifreq <emphasis role="comment">; create a linear phasor</emphasis>
+aout3 <emphasis role="opc">tablei</emphasis> aosc, itable, 1 <emphasis role="comment">; read a sine table without the linear phasor</emphasis>
+apd11 <emphasis role="opc">polynomial</emphasis> aosc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 <emphasis role="comment">; distort the phasor with x^11</emphasis>
+aout11 <emphasis role="opc">tablei</emphasis> apd11, itable, 1 <emphasis role="comment">; read a sine table with the nonlinear phasor</emphasis>
+kamount <emphasis role="opc">linseg</emphasis> 1.0, 0.05, 0.9, 1.0, 0.0 <emphasis role="comment">; crossfade between two outputs</emphasis>
+aout <emphasis role="op">=</emphasis> aout3<emphasis role="op">*</emphasis>kamount <emphasis role="op">+</emphasis> aout11<emphasis role="op">*</emphasis>(1.0 <emphasis role="op">-</emphasis> kamount)
+ <emphasis role="opc">outs</emphasis> aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp, aenv<emphasis role="op">*</emphasis>aout<emphasis role="op">*</emphasis>iamp
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 16385 10 1 <emphasis role="comment">; sine wave</emphasis>
+
+<emphasis role="comment">; descending "just blues" scale</emphasis>
+
+<emphasis role="stamnt">t</emphasis> 0 100
+<emphasis role="stamnt">i</emphasis>4 0 .333 .7 512 1
+<emphasis role="stamnt">i</emphasis>. + . . 448
+<emphasis role="stamnt">i</emphasis>. + . . 384
+<emphasis role="stamnt">i</emphasis>. + . . 360
+<emphasis role="stamnt">i</emphasis>. + . . 341.33
+<emphasis role="stamnt">i</emphasis>. + . . 298.67
+<emphasis role="stamnt">i</emphasis>. + 2 . 256
+<emphasis role="stamnt">s</emphasis>
+
+<emphasis role="stamnt">t</emphasis> 0 100
+<emphasis role="stamnt">i</emphasis>5 0 .333 .7 512 1
+<emphasis role="stamnt">i</emphasis>. + . . 448
+<emphasis role="stamnt">i</emphasis>. + . . 384
+<emphasis role="stamnt">i</emphasis>. + . . 360
+<emphasis role="stamnt">i</emphasis>. + . . 341.33
+<emphasis role="stamnt">i</emphasis>. + . . 298.67
+<emphasis role="stamnt">i</emphasis>. + 2 . 256
+<emphasis role="stamnt">s</emphasis>
+
+<emphasis role="stamnt">t</emphasis> 0 100
+<emphasis role="stamnt">i</emphasis>6 0 .333 .7 512 1
+<emphasis role="stamnt">i</emphasis>. + . . 448
+<emphasis role="stamnt">i</emphasis>. + . . 384
+<emphasis role="stamnt">i</emphasis>. + . . 360
+<emphasis role="stamnt">i</emphasis>. + . . 341.33
+<emphasis role="stamnt">i</emphasis>. + . . 298.67
+<emphasis role="stamnt">i</emphasis>. + 2 . 256
-<emphasis role="stamnt">i</emphasis>1 0 1
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/pop.csd.xml b/examples-xml/pop.csd.xml
new file mode 100644
index 0000000..7866ae8
--- /dev/null
+++ b/examples-xml/pop.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pop.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="opc">stack</emphasis> 100000
+
+<emphasis role="oblock">instr</emphasis> 1
+
+a1 <emphasis role="opc">oscils</emphasis> 0.7, 220, 0
+k1 <emphasis role="opc">line</emphasis> 0, p3, 1
+ <emphasis role="opc">push</emphasis> "blah", 123.45, a1, k1
+ <emphasis role="opc">push</emphasis> <emphasis role="opc">rnd</emphasis>(k1)
+
+k_rnd <emphasis role="opc">pop</emphasis>
+S01, i01, a01, k01 <emphasis role="opc">pop</emphasis>
+ <emphasis role="opc">printf_i</emphasis> "S01 <emphasis role="op">=</emphasis> '<emphasis role="op">%</emphasis>s', i01 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>g\n", 1, S01, i01
+ktrig <emphasis role="opc">metro</emphasis> 5.0
+ <emphasis role="opc">printf</emphasis> "k01 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.3f, k_rnd <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.3f\n", ktrig, k01, k_rnd
+ <emphasis role="opc">outs</emphasis> a01, a01
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/port.csd.xml b/examples-xml/port.csd.xml
new file mode 100644
index 0000000..25240b6
--- /dev/null
+++ b/examples-xml/port.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o port.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aout <emphasis role="opc">diskin2</emphasis> "fox.wav",1, 0, 1
+kf,ka <emphasis role="opc">ptrack</emphasis> aout, 512 <emphasis role="comment">; pitch track with winsize=1024</emphasis>
+kcps <emphasis role="opc">port</emphasis> kf, 0.01 <emphasis role="comment">; smooth freq</emphasis>
+kamp <emphasis role="opc">port</emphasis> ka, 0.01 <emphasis role="comment">; smooth amp</emphasis>
+<emphasis role="comment">; drive an oscillator</emphasis>
+asig <emphasis role="opc">poscil</emphasis> <emphasis role="opc">ampdb</emphasis>(kamp)<emphasis role="op">*</emphasis>0dbfs, kcps, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; simple sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/poscil.csd.xml b/examples-xml/poscil.csd.xml
index 31efa09..8170c1e 100644
--- a/examples-xml/poscil.csd.xml
+++ b/examples-xml/poscil.csd.xml
@@ -2,41 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o poscil.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0
+gisine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
-<emphasis role="comment">; Instrument #1 - a basic oscillator.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10000
- kcps <emphasis role="op">=</emphasis> 440
- ifn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">poscil</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+ipeak <emphasis role="opc">random</emphasis> 0, 1 <emphasis role="comment">;where is the envelope peak</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .8, 220, gisine
+aenv <emphasis role="opc">transeg</emphasis> 0, p3<emphasis role="op">*</emphasis>ipeak, 6, 1, p3<emphasis role="op">-</emphasis>p3<emphasis role="op">*</emphasis>ipeak, <emphasis role="op">-</emphasis>6, 0
+aL,aR <emphasis role="opc">pan2</emphasis> asig<emphasis role="op">*</emphasis>aenv, ipeak <emphasis role="comment">;pan according to random value</emphasis>
+ <emphasis role="opc">outs</emphasis> aL, aR
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">i</emphasis>1 4 5
+<emphasis role="stamnt">i</emphasis>1 8 5
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/poscil3.csd.xml b/examples-xml/poscil3.csd.xml
index 75c9c50..9e39667 100644
--- a/examples-xml/poscil3.csd.xml
+++ b/examples-xml/poscil3.csd.xml
@@ -2,41 +2,33 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o poscil3.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - a basic oscillator.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 10000
- kcps <emphasis role="op">=</emphasis> 440
- ifn <emphasis role="op">=</emphasis> 1
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
- a1 <emphasis role="opc">poscil3</emphasis> kamp, kcps, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+krnd <emphasis role="opc">randomh</emphasis> 40, 440, 1 <emphasis role="comment">; produce random values</emphasis>
+ain <emphasis role="opc">poscil3</emphasis> .6, krnd, giSine
+kline <emphasis role="opc">line</emphasis> 1, p3, 0 <emphasis role="comment">; straight line</emphasis>
+aL,aR <emphasis role="opc">pan2</emphasis> ain, kline <emphasis role="comment">; sent across image</emphasis>
+ <emphasis role="opc">outs</emphasis> aL, aR
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis>1 0 10
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pow.csd.xml b/examples-xml/pow.csd.xml
index 2563de1..a9530a9 100644
--- a/examples-xml/pow.csd.xml
+++ b/examples-xml/pow.csd.xml
@@ -2,36 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o pow.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">;-o pow.wav ; output to audio file</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; Lo-Fi sound</emphasis>
+
+kpow <emphasis role="op">=</emphasis> 10 <emphasis role="comment">;exponent</emphasis>
+kbase <emphasis role="opc">line</emphasis> 1, p3, 1.4 <emphasis role="comment">;vary the base</emphasis>
+kQuantize <emphasis role="opc">pow</emphasis> kbase, kpow
+kQuantize <emphasis role="op">=</emphasis> kQuantize<emphasis role="op">*</emphasis>0.5 <emphasis role="comment">;half the number of steps for each side of a bipolar signal</emphasis>
+<emphasis role="opc">printk2</emphasis> kQuantize
+asig <emphasis role="opc">diskin2</emphasis> "fox.wav", 1, 0, 1 <emphasis role="comment">;loop the fox</emphasis>
+asig <emphasis role="op">=</emphasis> <emphasis role="opc">round</emphasis>(asig <emphasis role="op">*</emphasis> kQuantize) <emphasis role="op">/</emphasis> kQuantize <emphasis role="comment">;quantize and scale audio signal</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; This could also be expressed as: i1 = 2 ^ 12</emphasis>
- i1 <emphasis role="opc">pow</emphasis> 2, 12
-
- <emphasis role="opc">print</emphasis> i1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis>1 0 19.2
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/powoftwo.csd.xml b/examples-xml/powoftwo.csd.xml
index e2ae21d..4191260 100644
--- a/examples-xml/powoftwo.csd.xml
+++ b/examples-xml/powoftwo.csd.xml
@@ -2,34 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o powoftwo.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o poweroftwo.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="op">=</emphasis> <emphasis role="opc">powoftwo</emphasis>(12)
- <emphasis role="opc">print</emphasis> i1
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; bit reduction for Lo-Fi sound</emphasis>
+iBits <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;bit depth</emphasis>
+iQuantize <emphasis role="op">=</emphasis> <emphasis role="opc">powoftwo</emphasis>(iBits) <emphasis role="comment">;find number of discrete steps for this bit depth</emphasis>
+iQuantize <emphasis role="op">=</emphasis> iQuantize<emphasis role="op">*</emphasis>0.5 <emphasis role="comment">;half the number of steps for each side of a bipolar signal</emphasis>
+<emphasis role="opc">print</emphasis> iQuantize
+asig <emphasis role="opc">soundin</emphasis> "fox.wav"
+asig <emphasis role="op">=</emphasis> <emphasis role="opc">round</emphasis>(asig <emphasis role="op">*</emphasis> iQuantize) <emphasis role="op">/</emphasis> iQuantize <emphasis role="comment">;quantize audio signal (bit reduce)</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; bits</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 3 16
+<emphasis role="stamnt">i</emphasis>1 ^+3 . 12
+<emphasis role="stamnt">i</emphasis>1 ^+3 . 8
+<emphasis role="stamnt">i</emphasis>1 ^+3 . 4
+<emphasis role="stamnt">i</emphasis>1 ^+3 . 2
+<emphasis role="stamnt">i</emphasis>1 ^+3 . 1
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/prepiano.csd.xml b/examples-xml/prepiano.csd.xml
index 305915d..b7029cf 100644
--- a/examples-xml/prepiano.csd.xml
+++ b/examples-xml/prepiano.csd.xml
@@ -2,34 +2,33 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o prepiano.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2<emphasis role="comment">;</emphasis>
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">;; fund NS detune stiffness decay loss (bndry) (hammer) scan prep</emphasis>
aa,ab <emphasis role="opc">prepiano</emphasis> 60, 3, 10, p4, 3, 0.002, 2, 2, 1, 5000, <emphasis role="op">-</emphasis>0.01, p5, p6, 0, 0.1, 1, 2
- <emphasis role="opc">outs</emphasis> aa<emphasis role="op">*</emphasis>.75, ab<emphasis role="op">*</emphasis>.75
+ <emphasis role="opc">outs</emphasis> aa<emphasis role="op">*</emphasis>.2, ab<emphasis role="op">*</emphasis>.2
+
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">f</emphasis>1 0 8 2 1 0.6 10 100 0.001 <emphasis role="comment">;; 1 rattle</emphasis>
<emphasis role="stamnt">f</emphasis>2 0 8 2 1 0.7 50 500 1000 <emphasis role="comment">;; 1 rubber</emphasis>
-<emphasis role="stamnt">i</emphasis>1 0.0 0.5 1 0.09 20
-<emphasis role="stamnt">i</emphasis>1 0.5 . -1 0.09 40 <emphasis role="comment">;; 1 -> skip initialisation</emphasis>
-<emphasis role="stamnt">i</emphasis>1 1.0 . -1 0.09 60
-<emphasis role="stamnt">i</emphasis>1 1.5 . -1 0.09 80
-<emphasis role="stamnt">i</emphasis>1 2.0 1.8 -1 0.09 100
+<emphasis role="stamnt">i</emphasis>1 0.0 1 1 0.09 20
+<emphasis role="stamnt">i</emphasis>1 1 . -1 0.09 40 <emphasis role="comment">;; 1 -> skip initialisation</emphasis>
+<emphasis role="stamnt">i</emphasis>1 2 . -1 0.09 60
+<emphasis role="stamnt">i</emphasis>1 3 . -1 0.09 80
+<emphasis role="stamnt">i</emphasis>1 4 1.8 -1 0.09 100
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/print.csd.xml b/examples-xml/print.csd.xml
index 8dd462e..91625ec 100644
--- a/examples-xml/print.csd.xml
+++ b/examples-xml/print.csd.xml
@@ -2,39 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o print.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Print the fourth p-field.</emphasis>
- <emphasis role="opc">print</emphasis> p4
-<emphasis role="oblock">endin</emphasis>
+irand <emphasis role="op">=</emphasis> <emphasis role="opc">rnd</emphasis>(3) <emphasis role="comment">;generate a random number from 0 to 3</emphasis>
+<emphasis role="opc">print</emphasis> irand <emphasis role="comment">;print it</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .7, 440<emphasis role="op">*</emphasis>irand, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; p4 = value to be printed.</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second, p4 = 50.375.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1 50.375
-<emphasis role="comment">; Play Instrument #1 for one second, p4 = 300.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 1 1 300
-<emphasis role="comment">; Play Instrument #1 for one second, p4 = -999.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 2 1 -999
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 2 1
+<emphasis role="stamnt">i</emphasis> 1 4 1
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/printf.csd.xml b/examples-xml/printf.csd.xml
new file mode 100644
index 0000000..151cfd9
--- /dev/null
+++ b/examples-xml/printf.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o printf.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+Sfile <emphasis role="opc">strget</emphasis> p4
+ivld <emphasis role="opc">filevalid</emphasis> Sfile
+
+<emphasis role="octrl">if</emphasis> ivld<emphasis role="op">=</emphasis>0 then
+ <emphasis role="opc">printf_i</emphasis> "Audiofile '<emphasis role="op">%</emphasis>s' does not exist!\n", 1, Sfile
+<emphasis role="octrl">else</emphasis>
+asig <emphasis role="opc">diskin2</emphasis> Sfile, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="octrl">endif</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3 "frox.wav"<emphasis role="comment">;file does not exist!!!</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 "fox.wav"<emphasis role="comment">;but this one certainly does...</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/printk2.csd.xml b/examples-xml/printk2.csd.xml
index d7b780a..21ec464 100644
--- a/examples-xml/printk2.csd.xml
+++ b/examples-xml/printk2.csd.xml
@@ -2,42 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o printk2.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Change a value linearly from 0 to 10,</emphasis>
- <emphasis role="comment">; over the period defined by p3.</emphasis>
- kval1 <emphasis role="opc">line</emphasis> 0, p3, 10
- <emphasis role="comment">; If kval1 is greater than or equal to 5, </emphasis>
- <emphasis role="comment">; then kval=2, else kval=1.</emphasis>
- kval2 <emphasis role="op">=</emphasis> (kval1 <emphasis role="op">>=</emphasis> 5 <emphasis role="op">?</emphasis> 2 <emphasis role="op">:</emphasis> 1)
-
- <emphasis role="comment">; Print the value of kval2 when it changes.</emphasis>
- <emphasis role="opc">printk2</emphasis> kval2
-<emphasis role="oblock">endin</emphasis>
+kval <emphasis role="opc">randomh</emphasis> 0, 1.2, 20 <emphasis role="comment">;choose between 0 and 1.2</emphasis>
+<emphasis role="octrl">if</emphasis> kval <emphasis role="op">></emphasis>0 <emphasis role="op">&amp;&amp;</emphasis> kval<emphasis role="op">&lt;=</emphasis>.5 then <emphasis role="comment">;3 possible outcomes</emphasis>
+ kval <emphasis role="op">=</emphasis> 1
+<emphasis role="octrl">elseif</emphasis> kval <emphasis role="op">></emphasis>.5 <emphasis role="op">&amp;&amp;</emphasis> kval<emphasis role="op">&lt;=</emphasis>1 then
+ kval <emphasis role="op">=</emphasis>2
+<emphasis role="octrl">elseif</emphasis> kval <emphasis role="op">></emphasis>1 then
+ kval <emphasis role="op">=</emphasis>3
+<emphasis role="octrl">endif</emphasis>
+<emphasis role="opc">printk2</emphasis> kval <emphasis role="comment">;print value when it changes</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .7, 440<emphasis role="op">*</emphasis>kval, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for 5 seconds.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 5
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/product.csd.xml b/examples-xml/product.csd.xml
new file mode 100644
index 0000000..195fdca
--- /dev/null
+++ b/examples-xml/product.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o product.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+a1 <emphasis role="opc">oscili</emphasis> 1, 10.0, gisine <emphasis role="comment">;combine 3 sinusses</emphasis>
+a2 <emphasis role="opc">oscili</emphasis> 1, 1.0, gisine <emphasis role="comment">;at different rates</emphasis>
+a3 <emphasis role="opc">oscili</emphasis> 1, 3.0, gisine
+ares <emphasis role="opc">product</emphasis> a1, a2, a3
+
+ares <emphasis role="op">=</emphasis> ares<emphasis role="op">*</emphasis>10000 <emphasis role="comment">;scale result and</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .5, ares<emphasis role="op">+</emphasis>110, gisine <emphasis role="comment">;add to frequency </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pset-midi.csd.xml b/examples-xml/pset-midi.csd.xml
new file mode 100644
index 0000000..ff6a45f
--- /dev/null
+++ b/examples-xml/pset-midi.csd.xml
@@ -0,0 +1,45 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 --midi-key-oct=4 --midi-velocity=5 <emphasis role="comment">;;;realtime audio out and virtual midi keyboard</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pset-midi.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">pset</emphasis> 0, 0, 3600, 0, 0, 0
+iinstrument <emphasis role="op">=</emphasis> p1
+istarttime <emphasis role="op">=</emphasis> p2
+iattack <emphasis role="op">=</emphasis> 0.005
+isustain <emphasis role="op">=</emphasis> p3
+irelease <emphasis role="op">=</emphasis> 0.06
+p3 <emphasis role="op">=</emphasis> isustain <emphasis role="op">+</emphasis> iattack <emphasis role="op">+</emphasis> irelease
+kdamping <emphasis role="opc">linsegr</emphasis> 0.0, iattack, 1.0, isustain, 1.0, irelease, 0.0
+
+ioctave <emphasis role="op">=</emphasis> p4
+ifrequency <emphasis role="op">=</emphasis> <emphasis role="opc">cpsoct</emphasis>(ioctave)
+iamplitude <emphasis role="op">=</emphasis> p5<emphasis role="op">*</emphasis>.15 <emphasis role="comment">;lower volume</emphasis>
+
+<emphasis role="opc">print</emphasis> p1, p2, p3, p4, p5
+asig <emphasis role="opc">STKBandedWG</emphasis> ifrequency, iamplitude
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 0 60 <emphasis role="comment">; runs 69 seconds</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pset.csd.xml b/examples-xml/pset.csd.xml
new file mode 100644
index 0000000..1b4148f
--- /dev/null
+++ b/examples-xml/pset.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pset.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;this shows an example with non-midi use</emphasis>
+
+<emphasis role="opc">pset</emphasis> 1, 0, 1, 220, 0.5
+asig <emphasis role="opc">poscil</emphasis> p5, p4, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis> 1 0 1024 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 1 1 440
+<emphasis role="stamnt">i</emphasis> 1 2 1 440 0.1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ptable.csd.xml b/examples-xml/ptable.csd.xml
new file mode 100644
index 0000000..5660015
--- /dev/null
+++ b/examples-xml/ptable.csd.xml
@@ -0,0 +1,50 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in No messages</emphasis>
+-odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o table.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="comment">; Initialize the global variables.</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">; Instrument #1.</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+ <emphasis role="comment">; Vary our index linearly from 0 to 1.</emphasis>
+ kndx <emphasis role="opc">line</emphasis> 0, p3, 1
+
+ <emphasis role="comment">; Read Table #1 with our index.</emphasis>
+ ifn <emphasis role="op">=</emphasis> 1
+ ixmode <emphasis role="op">=</emphasis> 1
+ kfreq <emphasis role="opc">ptable</emphasis> kndx, ifn, ixmode
+
+ <emphasis role="comment">; Generate a sine waveform, use our table values </emphasis>
+ <emphasis role="comment">; to vary its frequency.</emphasis>
+ a1 <emphasis role="opc">oscil</emphasis> 20000, kfreq, 2
+ <emphasis role="opc">out</emphasis> a1
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; Table #1, a line from 200 to 2,000.</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 1025 -7 200 1024 2000
+<emphasis role="comment">; Table #2, a sine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
+
+<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">e</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ptablei.csd.xml b/examples-xml/ptablei.csd.xml
new file mode 100644
index 0000000..9a75637
--- /dev/null
+++ b/examples-xml/ptablei.csd.xml
@@ -0,0 +1,68 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tablei.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0 <emphasis role="comment">;generate new values every time the instr is played</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ifn <emphasis role="op">=</emphasis> p4
+isize <emphasis role="op">=</emphasis> p5
+ithresh <emphasis role="op">=</emphasis> 0.5
+
+itemp <emphasis role="ohdr">ftgen</emphasis> ifn, 0, isize, 21, 2
+
+iwrite_value <emphasis role="op">=</emphasis> 0
+i_index <emphasis role="op">=</emphasis> 0
+
+<emphasis role="olabel">loop_start</emphasis><emphasis role="op">:</emphasis>
+ iread_value <emphasis role="opc">ptablei</emphasis> i_index, ifn
+
+ <emphasis role="octrl">if</emphasis> iread_value <emphasis role="op">></emphasis> ithresh then
+ iwrite_value <emphasis role="op">=</emphasis> 1
+ <emphasis role="octrl">else</emphasis>
+ iwrite_value <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1
+ <emphasis role="octrl">endif</emphasis>
+<emphasis role="opc">ptableiw</emphasis> iwrite_value, i_index, ifn
+<emphasis role="octrl">loop_lt</emphasis> i_index, 1, isize, <emphasis role="olabel">loop_start</emphasis>
+ <emphasis role="opc">turnoff</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ifn <emphasis role="op">=</emphasis> p4
+isize <emphasis role="op">=</emphasis> <emphasis role="opc">ftlen</emphasis>(ifn)
+<emphasis role="opc">prints</emphasis> "Index\tValue\n"
+
+i_index <emphasis role="op">=</emphasis> 0
+<emphasis role="olabel">loop_start</emphasis><emphasis role="op">:</emphasis>
+ ivalue <emphasis role="opc">tablei</emphasis> i_index, ifn
+ <emphasis role="opc">prints</emphasis> "<emphasis role="op">%</emphasis>d<emphasis role="op">:</emphasis>\t<emphasis role="op">%</emphasis>f\n", i_index, ivalue
+
+ <emphasis role="octrl">loop_lt</emphasis> i_index, 1, isize, <emphasis role="olabel">loop_start</emphasis> <emphasis role="comment">;read table 1 with our index</emphasis>
+
+aout <emphasis role="opc">oscili</emphasis> .5, 100, ifn <emphasis role="comment">;use table to play the polypulse</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1 100 16
+<emphasis role="stamnt">i</emphasis> 2 0 2 100
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/ptrack.csd.xml b/examples-xml/ptrack.csd.xml
index be5358d..f9dea13 100644
--- a/examples-xml/ptrack.csd.xml
+++ b/examples-xml/ptrack.csd.xml
@@ -2,35 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No display</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o ptrack.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis><emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 16
-<emphasis role="ohdr">nchnls</emphasis><emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">;Example by Victor Lazzarini 2007</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
<emphasis role="oblock">instr</emphasis> 1
- a1 <emphasis role="opc">inch</emphasis> 1 <emphasis role="comment">; take an input signal</emphasis>
- kf,ka <emphasis role="opc">ptrack</emphasis> a1, 512 <emphasis role="comment">; pitch track with winsize=1024</emphasis>
- kcps <emphasis role="opc">port</emphasis> kf, 0.01 <emphasis role="comment">; smooth freq</emphasis>
- kamp <emphasis role="opc">port</emphasis> ka, 0.01 <emphasis role="comment">; smooth amp</emphasis>
- <emphasis role="comment">; drive an oscillator</emphasis>
- aout <emphasis role="opc">oscili</emphasis> <emphasis role="opc">ampdb</emphasis>(kamp)<emphasis role="op">*</emphasis>0dbfs, kcps, 1
+ihop <emphasis role="op">=</emphasis> p4
+aout <emphasis role="opc">diskin2</emphasis> "fox.wav",1, 0, 1
+kf,ka <emphasis role="opc">ptrack</emphasis> aout, ihop <emphasis role="comment">; pitch track with different hopsizes</emphasis>
+kcps <emphasis role="opc">port</emphasis> kf, 0.01 <emphasis role="comment">; smooth freq</emphasis>
+kamp <emphasis role="opc">port</emphasis> ka, 0.01 <emphasis role="comment">; smooth amp</emphasis>
+<emphasis role="comment">; drive an oscillator</emphasis>
+asig <emphasis role="opc">poscil</emphasis> <emphasis role="opc">ampdb</emphasis>(kamp)<emphasis role="op">*</emphasis>0dbfs, kcps, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="opc">out</emphasis> aout
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="comment">; simple sine wave</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 3600
+<emphasis role="stamnt">i</emphasis> 1 0 5 128
+<emphasis role="stamnt">i</emphasis> 1 6 5 512
+<emphasis role="stamnt">i</emphasis> 1 12 5 1024
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/push.csd.xml b/examples-xml/push.csd.xml
new file mode 100644
index 0000000..a291a72
--- /dev/null
+++ b/examples-xml/push.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o push.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="opc">stack</emphasis> 100000
+
+<emphasis role="oblock">instr</emphasis> 1
+
+a1 <emphasis role="opc">oscils</emphasis> 0.7, 220, 0
+k1 <emphasis role="opc">line</emphasis> 0, p3, 1
+ <emphasis role="opc">push</emphasis> "blah", 123.45, a1, k1
+ <emphasis role="opc">push</emphasis> <emphasis role="opc">rnd</emphasis>(k1)
+
+k_rnd <emphasis role="opc">pop</emphasis>
+S01, i01, a01, k01 <emphasis role="opc">pop</emphasis>
+ <emphasis role="opc">printf_i</emphasis> "S01 <emphasis role="op">=</emphasis> '<emphasis role="op">%</emphasis>s', i01 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>g\n", 1, S01, i01
+ktrig <emphasis role="opc">metro</emphasis> 5.0
+ <emphasis role="opc">printf</emphasis> "k01 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.3f, k_rnd <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.3f\n", ktrig, k01, k_rnd
+ <emphasis role="opc">outs</emphasis> a01, a01
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/puts.csd.xml b/examples-xml/puts.csd.xml
new file mode 100644
index 0000000..5dc226e
--- /dev/null
+++ b/examples-xml/puts.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o puts.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kcount <emphasis role="opc">init</emphasis> 440
+ktrig <emphasis role="opc">metro</emphasis> 10
+kcount <emphasis role="op">=</emphasis> kcount <emphasis role="op">+</emphasis> ktrig
+String <emphasis role="opc">sprintfk</emphasis> "frequency <emphasis role="opc">in</emphasis> Hertz <emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>d \n", kcount
+ <emphasis role="opc">puts</emphasis> String, kcount
+ asig <emphasis role="opc">poscil</emphasis> .7, kcount, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 16384 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvadd.csd.xml b/examples-xml/pvadd.csd.xml
index 487c6a7..7f8e16b 100644
--- a/examples-xml/pvadd.csd.xml
+++ b/examples-xml/pvadd.csd.xml
@@ -2,44 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvadd.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; analyze "fox.wav" with PVANAL first</emphasis>
- igatefn <emphasis role="op">=</emphasis> p4
- ktime <emphasis role="opc">line</emphasis> 0, p3, p3
-asig <emphasis role="opc">pvadd</emphasis> ktime, 1, "fox.pvoc", 1, 300, 2, 2, 0, 0, igatefn
+igatefn <emphasis role="op">=</emphasis> p4
+ktime <emphasis role="opc">line</emphasis> 0, p3, p3
+asig <emphasis role="opc">pvadd</emphasis> ktime, 1, "fox.pvx", 1, 300, 2, 2, 0, 0, igatefn
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>3, asig<emphasis role="op">*</emphasis>3
- <emphasis role="opc">out</emphasis> asig<emphasis role="op">*</emphasis>3
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, an ordinary sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
<emphasis role="stamnt">f</emphasis> 2 0 512 5 1 256 .001
<emphasis role="stamnt">f</emphasis> 3 0 512 7 0 256 1 256 1
-<emphasis role="comment">; Play Instrument #1 for three seconds.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 2.8 2
<emphasis role="stamnt">i</emphasis> 1 + 2.8 3
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvbufread.csd.xml b/examples-xml/pvbufread.csd.xml
index e0345f9..d66b5e3 100644
--- a/examples-xml/pvbufread.csd.xml
+++ b/examples-xml/pvbufread.csd.xml
@@ -2,38 +2,32 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvbufread.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; analyze "fox.wav" and "mary.wav" with PVANAL first</emphasis>
+<emphasis role="comment">; analyze "fox.wav" and "flute.aiff" with PVANAL first</emphasis>
+ktime1 <emphasis role="opc">line</emphasis> 0, p3, .8 <emphasis role="comment">; use a part of "flute.pvx" file</emphasis>
+ktime2 <emphasis role="opc">line</emphasis> 0, p3, 1.2 <emphasis role="comment">; use a part of "beats.pvx" file</emphasis>
+kcross <emphasis role="opc">expon</emphasis> .03, p3, 1
+ <emphasis role="opc">pvbufread</emphasis> ktime1, "flute.pvx"
+asig <emphasis role="opc">pvcross</emphasis> ktime2, 1, "beats.pvx", 1<emphasis role="op">-</emphasis>kcross, kcross
+ <emphasis role="opc">outs</emphasis> asig, asig
-ktime1 <emphasis role="opc">line</emphasis> 0, p3, 2.8 <emphasis role="comment">; used as index in the "mary.pvoc" file</emphasis>
-ktime2 <emphasis role="opc">line</emphasis> 0, p3, 3 <emphasis role="comment">; used as index in the "fox.pvoc" file</emphasis>
-kcross <emphasis role="opc">expon</emphasis> .001, p3, 1
- <emphasis role="opc">pvbufread</emphasis> ktime1, "mary.pvoc"
-apv <emphasis role="opc">pvcross</emphasis> ktime2, 1, "fox.pvoc", 1<emphasis role="op">-</emphasis>kcross, kcross
-
- <emphasis role="opc">out</emphasis> apv
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-.
<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="stamnt">i</emphasis> 1 + 1.5
+<emphasis role="stamnt">i</emphasis> 1 + 10
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/pvcross.csd.xml b/examples-xml/pvcross.csd.xml
index b41e83c..3ef2bdd 100644
--- a/examples-xml/pvcross.csd.xml
+++ b/examples-xml/pvcross.csd.xml
@@ -2,38 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvcross.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; analyze "fox.wav" and "mary.wav" with PVANAL first</emphasis>
+<emphasis role="comment">; analyze "beats.wav", "flute.aiff" and "mary.wav" with PVANAL first</emphasis>
+ktime1 <emphasis role="opc">line</emphasis> 0, p3, 2 <emphasis role="comment">; used as index in the "beats.pvx" file</emphasis>
+ktime2 <emphasis role="opc">line</emphasis> 0, p3, 2.6 <emphasis role="comment">; used as index in the "flute.pvx" or "mary.pvx" </emphasis>
+ <emphasis role="opc">pvbufread</emphasis> ktime1, "beats.pvx" <emphasis role="comment">;take only amplitude from "beats.pvx"</emphasis>
+<emphasis role="octrl">if</emphasis> p4 <emphasis role="op">=</emphasis> 0 then
+asig <emphasis role="opc">pvcross</emphasis> ktime2, 1, "flute.pvx", 1, 0 <emphasis role="comment">;and keep freqs of "flute.aiff"</emphasis>
+asig <emphasis role="op">=</emphasis> asig<emphasis role="op">*</emphasis>.8 <emphasis role="comment">;scale output</emphasis>
+<emphasis role="octrl">else</emphasis>
+asig <emphasis role="opc">pvcross</emphasis> ktime2, 1, "mary.pvx", 1, 0 <emphasis role="comment">;and keep freqs of "mary.wav"</emphasis>
+asig <emphasis role="op">=</emphasis> asig<emphasis role="op">*</emphasis>.4 <emphasis role="comment">;scale output</emphasis>
+<emphasis role="octrl">endif</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
-ktime1 <emphasis role="opc">line</emphasis> 0, p3, 2.8 <emphasis role="comment">; used as index in the "fox.pvoc" file</emphasis>
-ktime2 <emphasis role="opc">line</emphasis> 0, p3, 3 <emphasis role="comment">; used as index in the "mary.pvoc" file</emphasis>
-kcross <emphasis role="opc">expon</emphasis> .001, p3, 1
- <emphasis role="opc">pvbufread</emphasis> ktime1, "fox.pvoc"
-apv <emphasis role="opc">pvcross</emphasis> ktime2, 1, "mary.pvoc", 1<emphasis role="op">-</emphasis>kcross, kcross
-
- <emphasis role="opc">out</emphasis> apv
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-.
-<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="stamnt">i</emphasis> 1 + 1.5
+<emphasis role="stamnt">i</emphasis> 1 0 3 0
+<emphasis role="stamnt">i</emphasis> 1 + 3 1
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/pvinterp.csd.xml b/examples-xml/pvinterp.csd.xml
index 39dbb21..365ba63 100644
--- a/examples-xml/pvinterp.csd.xml
+++ b/examples-xml/pvinterp.csd.xml
@@ -2,38 +2,32 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvinterp.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; analyze "fox.wav" and "mary.wav" with PVANAL first</emphasis>
+<emphasis role="comment">; analyze "fox.wav" and "flute.aiff" with PVANAL first</emphasis>
+ktime1 <emphasis role="opc">line</emphasis> 0, p3, 2.8 <emphasis role="comment">; used as index in the "fox.pvx" file</emphasis>
+ktime2 <emphasis role="opc">line</emphasis> 0, p3, 3 <emphasis role="comment">; used as index in the "flute.pvx" file</emphasis>
+kinterp <emphasis role="opc">line</emphasis> 1, p3, 0
+ <emphasis role="opc">pvbufread</emphasis> ktime1, "fox.pvx"
+asig <emphasis role="opc">pvinterp</emphasis> ktime2,1,"flute.pvx",.9, 3, .6, 1, kinterp,1<emphasis role="op">-</emphasis>kinterp
+ <emphasis role="opc">outs</emphasis> asig, asig
-ktime1 <emphasis role="opc">line</emphasis> 0, p3, 2.8 <emphasis role="comment">; used as index in the "fox.pvoc" file</emphasis>
-ktime2 <emphasis role="opc">line</emphasis> 0, p3, 3 <emphasis role="comment">; used as index in the "mary.pvoc" file</emphasis>
-kinterp <emphasis role="opc">linseg</emphasis> 1, p3<emphasis role="op">*</emphasis>.15, 1, p3<emphasis role="op">*</emphasis>.35, 0, p3<emphasis role="op">*</emphasis>.25, 0, p3<emphasis role="op">*</emphasis>.15, 1, p3<emphasis role="op">*</emphasis>.1, 1
- <emphasis role="opc">pvbufread</emphasis> ktime1, "fox.pvoc"
-apv <emphasis role="opc">pvinterp</emphasis> ktime2,1,"mary.pvoc",1,1.065,1,.75,1<emphasis role="op">-</emphasis>kinterp,1<emphasis role="op">-</emphasis>kinterp
-
- <emphasis role="opc">out</emphasis> apv
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-.
<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="stamnt">i</emphasis> 1 + 5
+<emphasis role="stamnt">i</emphasis> 1 + 10
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/pvoc.csd.xml b/examples-xml/pvoc.csd.xml
index 61136bb..0ff0bc7 100644
--- a/examples-xml/pvoc.csd.xml
+++ b/examples-xml/pvoc.csd.xml
@@ -2,37 +2,33 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvoc.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; analyze "fox.wav" with PVANAL first</emphasis>
+ispec <emphasis role="op">=</emphasis> p4
+ktime <emphasis role="opc">line</emphasis> 0, p3, 1.55
+kfrq <emphasis role="opc">line</emphasis> .8, p3, 2
+asig <emphasis role="opc">pvoc</emphasis> ktime, kfrq, "fox.pvx", ispec
+ <emphasis role="opc">outs</emphasis> asig, asig
-ktime <emphasis role="opc">line</emphasis> 0, p3, 1.6
-asig <emphasis role="opc">pvoc</emphasis> ktime, 1, "fox.pvoc", 1
-
- <emphasis role="opc">out</emphasis> asig
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 6
+<emphasis role="stamnt">i</emphasis> 1 0 6 0
+<emphasis role="stamnt">i</emphasis> 1 + 6 1 <emphasis role="comment">;preserve spectral envelope</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvread.csd.xml b/examples-xml/pvread.csd.xml
index e0de6bb..9d0f2aa 100644
--- a/examples-xml/pvread.csd.xml
+++ b/examples-xml/pvread.csd.xml
@@ -2,40 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvread.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; analyze "fox.wav" with PVANAL first</emphasis>
+ibin <emphasis role="op">=</emphasis> p4
+ktime <emphasis role="opc">line</emphasis> 0, p3, 2.8
+kfreq, kamp <emphasis role="opc">pvread</emphasis> ktime, "fox.pvx", ibin <emphasis role="comment">;read data from 7th analysis bin.</emphasis>
+asig <emphasis role="opc">poscil</emphasis> kamp, kfreq, 1 <emphasis role="comment">;function 1 is a stored sine</emphasis>
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>5, asig<emphasis role="op">*</emphasis>5 <emphasis role="comment">;compensate loss of volume</emphasis>
-ktime <emphasis role="opc">line</emphasis> 0, p3, 2.8
-kfreq, kamp <emphasis role="opc">pvread</emphasis> ktime, "fox.pvoc", 7 <emphasis role="comment">; read data from 7th analysis bin.</emphasis>
-asig <emphasis role="opc">oscili</emphasis> kamp, kfreq, 1 <emphasis role="comment">; function 1 is a stored sine</emphasis>
-
- <emphasis role="opc">out</emphasis> asig<emphasis role="op">*</emphasis>8
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">;sine</emphasis>
+<emphasis role="comment">;sine wave</emphasis>
<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 6
+<emphasis role="stamnt">i</emphasis> 1 0 6 7
+<emphasis role="stamnt">i</emphasis> 1 + 6 15
+<emphasis role="stamnt">i</emphasis> 1 + 2 25
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvsanal.csd.xml b/examples-xml/pvsanal.csd.xml
index ec61058..7481b3a 100644
--- a/examples-xml/pvsanal.csd.xml
+++ b/examples-xml/pvsanal.csd.xml
@@ -2,39 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvsanal.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 16
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">;; example written by joachim heintz 2009</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;pvsanal has no influence when there is no transformation of original sound</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
-ifftsize <emphasis role="op">=</emphasis> 1024
-ioverlap <emphasis role="op">=</emphasis> ifftsize <emphasis role="op">/</emphasis> 4
-iwinsize <emphasis role="op">=</emphasis> ifftsize
-iwinshape <emphasis role="op">=</emphasis> 1<emphasis role="comment">; von-Hann window</emphasis>
-Sfile <emphasis role="op">=</emphasis> "fox.wav"
-ain <emphasis role="opc">soundin</emphasis> Sfile
-fftin <emphasis role="opc">pvsanal</emphasis> ain, ifftsize, ioverlap, iwinsize, iwinshape<emphasis role="comment">; fft-analysis of the audio-signal</emphasis>
-fftblur <emphasis role="opc">pvscale</emphasis> fftin, p4, p5, p6<emphasis role="comment">; scale</emphasis>
-aout <emphasis role="opc">pvsynth</emphasis> fftblur<emphasis role="comment">; resynthesis</emphasis>
- <emphasis role="opc">out</emphasis> aout
+ifftsize <emphasis role="op">=</emphasis> p4
+ioverlap <emphasis role="op">=</emphasis> ifftsize <emphasis role="op">/</emphasis> 4
+iwinsize <emphasis role="op">=</emphasis> ifftsize
+iwinshape <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;von-Hann window</emphasis>
+Sfile <emphasis role="op">=</emphasis> "fox.wav"
+ain <emphasis role="opc">soundin</emphasis> Sfile
+fftin <emphasis role="opc">pvsanal</emphasis> ain, ifftsize, ioverlap, iwinsize, iwinshape <emphasis role="comment">;fft-analysis of the audio-signal</emphasis>
+fftblur <emphasis role="opc">pvscale</emphasis> fftin, p5 <emphasis role="comment">;scale</emphasis>
+aout <emphasis role="opc">pvsynth</emphasis> fftblur <emphasis role="comment">;resynthesis</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3 1 0 1<emphasis role="comment">; original sound</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 3 3 1.5 0 2<emphasis role="comment">; fifth higher without ...</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 6 3 1.5 1 2<emphasis role="comment">; ... and with different ...</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 9 3 1.5 2 5<emphasis role="comment">; ... kinds of formant preservation</emphasis>
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 3 512 1 <emphasis role="comment">;original sound - ifftsize of pvsanal does not have any influence</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 3 1024 1 <emphasis role="comment">;even with different</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 6 3 2048 1 <emphasis role="comment">;settings</emphasis>
+
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 3 512 1.5 <emphasis role="comment">;but transformation - here a fifth higher</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 3 1024 1.5 <emphasis role="comment">;but with different settings</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 6 3 2048 1.5 <emphasis role="comment">;for ifftsize of pvsanal</emphasis>
+
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/pvsbufread2.csd.xml b/examples-xml/pvsbufread2.csd.xml
new file mode 100644
index 0000000..4d777f2
--- /dev/null
+++ b/examples-xml/pvsbufread2.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 64
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+kcnt <emphasis role="opc">init</emphasis> 0
+ifftsize <emphasis role="op">=</emphasis> 2048
+ihop <emphasis role="op">=</emphasis> ifftsize<emphasis role="op">/</emphasis>4
+
+a1 <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
+a1 <emphasis role="op">=</emphasis> a1<emphasis role="op">*</emphasis>0.5
+fsig1 <emphasis role="opc">pvsanal</emphasis> a1, ifftsize, ihop, ifftsize, 1
+ih, kt <emphasis role="opc">pvsbuffer</emphasis> fsig1, 10
+
+fsig2 <emphasis role="opc">pvsbufread2</emphasis> kt, ih, 1, 1
+fsig3 <emphasis role="opc">pvsbufread2</emphasis> kt, ih, 2, 2
+
+a2 <emphasis role="opc">pvsynth</emphasis> fsig3
+a3 <emphasis role="opc">pvsynth</emphasis> fsig2
+
+ <emphasis role="opc">outs</emphasis> a2, a3
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 2048 -7 0 128 1.1 128 0.5 256 1.8 512 1.1 1024 0.1
+<emphasis role="stamnt">f</emphasis>2 0 2048 -7 1 128 0.2 128 0.05 256 0.5 512 0.9 1024 0.1
+
+<emphasis role="stamnt">i</emphasis>1 0 60
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvsdiskin.csd.xml b/examples-xml/pvsdiskin.csd.xml
index 9c4a342..512cb4a 100644
--- a/examples-xml/pvsdiskin.csd.xml
+++ b/examples-xml/pvsdiskin.csd.xml
@@ -2,33 +2,31 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvsdiskin.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; create a PVOC-EX (*.pvx) file with PVANAL first</emphasis>
-ktscale <emphasis role="opc">line</emphasis> 1, p3, .05
-fsigr <emphasis role="opc">pvsdiskin</emphasis> "fox.pvx", ktscale, 1 <emphasis role="comment">; read PVOCEX file with tscale and gain = 1</emphasis>
-aout <emphasis role="opc">pvsynth</emphasis> fsigr <emphasis role="comment">; resynthesise it</emphasis>
- <emphasis role="opc">out</emphasis> aout
-<emphasis role="oblock">endin</emphasis>
+ktscale <emphasis role="opc">line</emphasis> 1, p3, .05 <emphasis role="comment">;change speed </emphasis>
+fsigr <emphasis role="opc">pvsdiskin</emphasis> "fox.pvx", ktscale, 1 <emphasis role="comment">;read PVOCEX file</emphasis>
+aout <emphasis role="opc">pvsynth</emphasis> fsigr <emphasis role="comment">;resynthesise it</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">i</emphasis> 1 0 10
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvsfread.csd.xml b/examples-xml/pvsfread.csd.xml
new file mode 100644
index 0000000..96bcaa8
--- /dev/null
+++ b/examples-xml/pvsfread.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pvsfread.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">; create a PVOC-EX (*.pvx) file with PVANAL first</emphasis>
+idur <emphasis role="opc">filelen</emphasis> "kickroll.pvx" <emphasis role="comment">;find duration of (stereo) analysis file</emphasis>
+kpos <emphasis role="opc">line</emphasis> 0,p3,idur <emphasis role="comment">;to ensure we process whole file</emphasis>
+fsigr <emphasis role="opc">pvsfread</emphasis> kpos,"kickroll.pvx", 1 <emphasis role="comment">;create fsig from right channel</emphasis>
+aout <emphasis role="opc">pvsynth</emphasis> fsigr <emphasis role="comment">;resynthesise it</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">i</emphasis> 1 11 1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvsftr.csd.xml b/examples-xml/pvsftr.csd.xml
index 7fbbb7e..4d1702b 100644
--- a/examples-xml/pvsftr.csd.xml
+++ b/examples-xml/pvsftr.csd.xml
@@ -2,47 +2,47 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvsftr.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gifil <emphasis role="ohdr">ftgen</emphasis> 0, 0, 0, <emphasis role="op">-</emphasis>1, "fox.wav", 0, 0, 1
<emphasis role="oblock">instr</emphasis> 1
-inbins <emphasis role="op">=</emphasis> 512
-ifn <emphasis role="ohdr">ftgen</emphasis> 0,0,inbins,10,1 <emphasis role="comment">; make ftable</emphasis>
-fsrc <emphasis role="opc">pvsdiskin</emphasis> "fox2.pvx", 1, 1 <emphasis role="comment">; read PVOCEX file with tscale and gain = 1</emphasis>
-kflag <emphasis role="opc">pvsftw</emphasis> fsrc,ifn <emphasis role="comment">; export amps to table,</emphasis>
-kamp <emphasis role="opc">init</emphasis> 0
-<emphasis role="octrl">if</emphasis> kflag<emphasis role="op">==</emphasis>0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">contin</emphasis> <emphasis role="comment">; only proc when frame is ready</emphasis>
- <emphasis role="comment">; kill lowest bins, for obvious effect</emphasis>
- <emphasis role="opc">tablew</emphasis> kamp,1,ifn
- <emphasis role="opc">tablew</emphasis> kamp,2,ifn
- <emphasis role="opc">tablew</emphasis> kamp,3,ifn
- <emphasis role="opc">tablew</emphasis> kamp,4,ifn
-<emphasis role="comment">; read modified data back to fsrc</emphasis>
- <emphasis role="opc">pvsftr</emphasis> fsrc,ifn
-<emphasis role="olabel">contin</emphasis><emphasis role="op">:</emphasis>
-<emphasis role="comment">; and resynth</emphasis>
-aout <emphasis role="opc">pvsynth</emphasis> fsrc
- <emphasis role="opc">out</emphasis> aout
+ifftsize <emphasis role="op">=</emphasis> 1024 <emphasis role="comment">;fft size</emphasis>
+ioverlap <emphasis role="op">=</emphasis> 256 <emphasis role="comment">;overlap</emphasis>
+knewamp <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;new value for amplitudes</emphasis>
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="comment">;create fsig stream from function table</emphasis>
+fsrc <emphasis role="opc">pvstanal</emphasis> 1, 1, 1, gifil, 0, 0, 0, ifftsize, ioverlap, 0
+ifn <emphasis role="ohdr">ftgen</emphasis> 0, 0, ifftsize<emphasis role="op">/</emphasis>2, 2, 0 <emphasis role="comment">;create empty function table</emphasis>
+kflag <emphasis role="opc">pvsftw</emphasis> fsrc,ifn <emphasis role="comment">;export amps to table </emphasis>
+<emphasis role="comment">;overwrite the first 10 bins each time the table has been filled new</emphasis>
+<emphasis role="octrl">if</emphasis> kflag <emphasis role="op">==</emphasis> 1 then
+kndx <emphasis role="op">=</emphasis> 0
+kmaxbin <emphasis role="op">=</emphasis> 10
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+<emphasis role="opc">tablew</emphasis> knewamp, kndx, ifn
+<emphasis role="octrl">loop_le</emphasis> kndx, 1, kmaxbin, <emphasis role="olabel">loop</emphasis>
+<emphasis role="octrl">endif</emphasis>
+ <emphasis role="opc">pvsftr</emphasis> fsrc,ifn <emphasis role="comment">;read modified data back to fsrc</emphasis>
+aout <emphasis role="opc">pvsynth</emphasis> fsrc <emphasis role="comment">;and resynth</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">i</emphasis> 1 0 4
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvsftw.csd.xml b/examples-xml/pvsftw.csd.xml
index 51ace60..427979e 100644
--- a/examples-xml/pvsftw.csd.xml
+++ b/examples-xml/pvsftw.csd.xml
@@ -2,29 +2,27 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvsftw.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-inbins <emphasis role="op">=</emphasis> 512
-ifn <emphasis role="ohdr">ftgen</emphasis> 0,0,inbins,10,1 <emphasis role="comment">; make ftable</emphasis>
-fsrc <emphasis role="opc">pvsdiskin</emphasis> "fox2.pvx", 1, 1 <emphasis role="comment">; read PVOCEX file with tscale and gain = 1</emphasis>
-kflag <emphasis role="opc">pvsftw</emphasis> fsrc,ifn <emphasis role="comment">; export amps to table,</emphasis>
+inbins <emphasis role="op">=</emphasis> 512
+ifn <emphasis role="ohdr">ftgen</emphasis> 0,0,inbins,10,1 <emphasis role="comment">; make ftable</emphasis>
+fsrc <emphasis role="opc">pvsdiskin</emphasis> "fox.pvx", 1, 1 <emphasis role="comment">; read PVOCEX file</emphasis>
+kflag <emphasis role="opc">pvsftw</emphasis> fsrc,ifn <emphasis role="comment">; export amps to table,</emphasis>
kamp <emphasis role="opc">init</emphasis> 0
-<emphasis role="octrl">if</emphasis> kflag<emphasis role="op">==</emphasis>0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">contin</emphasis> <emphasis role="comment">; only proc when frame is ready</emphasis>
- <emphasis role="comment">; kill lowest bins, for obvious effect</emphasis>
- <emphasis role="opc">tablew</emphasis> kamp,1,ifn
+<emphasis role="octrl">if</emphasis> kflag<emphasis role="op">==</emphasis>0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">contin</emphasis> <emphasis role="comment">; only proc when frame is ready </emphasis>
+ <emphasis role="opc">tablew</emphasis> kamp,1,ifn <emphasis role="comment">; kill lowest bins, for obvious effect</emphasis>
<emphasis role="opc">tablew</emphasis> kamp,2,ifn
<emphasis role="opc">tablew</emphasis> kamp,3,ifn
<emphasis role="opc">tablew</emphasis> kamp,4,ifn
@@ -33,7 +31,7 @@ kamp <emphasis role="opc">init</emphasis> 0
<emphasis role="olabel">contin</emphasis><emphasis role="op">:</emphasis>
<emphasis role="comment">; and resynth</emphasis>
aout <emphasis role="opc">pvsynth</emphasis> fsrc
- <emphasis role="opc">out</emphasis> aout
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/pvsgain.csd.xml b/examples-xml/pvsgain.csd.xml
new file mode 100644
index 0000000..c548eba
--- /dev/null
+++ b/examples-xml/pvsgain.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pvsgain.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kgain <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
+fsig <emphasis role="opc">pvsanal</emphasis> asig, 1024, 256, 1024, 1<emphasis role="comment">; analyse it</emphasis>
+ftps <emphasis role="opc">pvsgain</emphasis> fsig, kgain <emphasis role="comment">; amplify it</emphasis>
+atps <emphasis role="opc">pvsynth</emphasis> ftps <emphasis role="comment">; synthesise it</emphasis>
+ <emphasis role="opc">outs</emphasis> atps, atps
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 2 .5
+<emphasis role="stamnt">i</emphasis>1 + 2 1
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvsifd.csd.xml b/examples-xml/pvsifd.csd.xml
index 0477058..1cc58c5 100644
--- a/examples-xml/pvsifd.csd.xml
+++ b/examples-xml/pvsifd.csd.xml
@@ -2,29 +2,27 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvsifd.wav -W ;;; for file output any platform</emphasis>
-<emphasis role="comment">;heavy on CPU</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
-fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512, 1 <emphasis role="comment">; pvsifd analysis</emphasis>
-fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .003, 1,3, 500 <emphasis role="comment">; partial tracking</emphasis>
-aout <emphasis role="opc">resyn</emphasis> fst, 1, 1.5, 500, 1 <emphasis role="comment">; resynthesis (up a 5th)</emphasis>
- <emphasis role="opc">out</emphasis> aout
-<emphasis role="oblock">endin</emphasis>
+ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512, 1 <emphasis role="comment">; pvsifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .1, 1,3, 500 <emphasis role="comment">; partial tracking</emphasis>
+aout <emphasis role="opc">resyn</emphasis> fst, 1, 1.5, 500, 1 <emphasis role="comment">; resynthesis (up a 5th)</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="comment">;sine</emphasis>
@@ -32,7 +30,6 @@ aout <emphasis role="opc">resyn</emphasis> fst, 1, 1.5, 500, 1 <emphasis role=
<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvsinfo.csd.xml b/examples-xml/pvsinfo.csd.xml
index 9e7b844..4acb1ed 100644
--- a/examples-xml/pvsinfo.csd.xml
+++ b/examples-xml/pvsinfo.csd.xml
@@ -2,39 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o pvsinfo.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; create a PVOC-EX (*.pvx) file with PVANAL first</emphasis>
-idur <emphasis role="opc">filelen</emphasis> "fox.pvx" <emphasis role="comment">; find dur of (stereo) analysis file</emphasis>
-kpos <emphasis role="opc">line</emphasis> 0,p3,idur <emphasis role="comment">; to ensure we process whole file</emphasis>
-fsrc <emphasis role="opc">pvsfread</emphasis> kpos, "fox.pvx" <emphasis role="comment">; create fsig from R channel</emphasis>
+idur <emphasis role="opc">filelen</emphasis> "fox.pvx" <emphasis role="comment">;find duration of analysis file</emphasis>
+kpos <emphasis role="opc">line</emphasis> 0,p3,idur <emphasis role="comment">;to ensure we process whole file</emphasis>
+fsrc <emphasis role="opc">pvsfread</emphasis> kpos, "fox.pvx" <emphasis role="comment">;create fsig from (mono) file</emphasis>
-iovl,inb,iws,ifmt <emphasis role="opc">pvsinfo</emphasis> fsrc <emphasis role="comment">; get inumbins info</emphasis>
-<emphasis role="opc">print</emphasis> iovl,inb,iws,ifmt <emphasis role="comment">; print the info</emphasis>
+iovl,inb,iws,ifmt <emphasis role="opc">pvsinfo</emphasis> fsrc <emphasis role="comment">;get info</emphasis>
+<emphasis role="opc">print</emphasis> iovl,inb,iws,ifmt <emphasis role="comment">;print info</emphasis>
-aout <emphasis role="opc">pvsynth</emphasis> fsrc
- <emphasis role="opc">out</emphasis> aout
+aout <emphasis role="opc">pvsynth</emphasis> fsrc
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 3
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvslock.csd.xml b/examples-xml/pvslock.csd.xml
new file mode 100644
index 0000000..aafe725
--- /dev/null
+++ b/examples-xml/pvslock.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pvslock.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gifil <emphasis role="ohdr">ftgen</emphasis> 0, 0, 0, 1, "fox.wav", 0, 0, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+klock <emphasis role="op">=</emphasis> p4
+fsig <emphasis role="opc">pvstanal</emphasis> 1, 1, 1, gifil <emphasis role="comment">; no further transformations </emphasis>
+fsigout <emphasis role="opc">pvslock</emphasis> fsig, klock <emphasis role="comment">; lock frequency </emphasis>
+aout <emphasis role="opc">pvsynth</emphasis> fsigout
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2.6 1 <emphasis role="comment">; locked</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 2.6 0 <emphasis role="comment">; not locked </emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvsmix.csd.xml b/examples-xml/pvsmix.csd.xml
new file mode 100644
index 0000000..6c847ff
--- /dev/null
+++ b/examples-xml/pvsmix.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pvsmix.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisin <emphasis role="ohdr">ftgen</emphasis> 1, 0, 2048, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig1 <emphasis role="opc">diskin2</emphasis> "fox.wav", 1 <emphasis role="comment">;signal in 1</emphasis>
+asig2 <emphasis role="opc">oscil</emphasis> .3, 100, gisin <emphasis role="comment">;signal in 2</emphasis>
+fsig1 <emphasis role="opc">pvsanal</emphasis> asig1,1024,256,1024,0 <emphasis role="comment">;pvoc analysis </emphasis>
+fsig2 <emphasis role="opc">pvsanal</emphasis> asig2,1024,256,1024,0 <emphasis role="comment">;of both signals</emphasis>
+fsall <emphasis role="opc">pvsmix</emphasis> fsig1, fsig2
+asig <emphasis role="opc">pvsynth</emphasis> fsall
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvsmooth.csd.xml b/examples-xml/pvsmooth.csd.xml
new file mode 100644
index 0000000..71eac24
--- /dev/null
+++ b/examples-xml/pvsmooth.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pvsmooth.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kacf <emphasis role="op">=</emphasis> p4
+kfcf <emphasis role="op">=</emphasis> p5
+asig <emphasis role="opc">soundin</emphasis> "fox.wav"
+fsig <emphasis role="opc">pvsanal</emphasis> asig, 1024, 256, 1024, 1 <emphasis role="comment">; analyse it</emphasis>
+ftps <emphasis role="opc">pvsmooth</emphasis> fsig, kacf, kfcf
+atps <emphasis role="opc">pvsynth</emphasis> ftps <emphasis role="comment">; synthesise it </emphasis>
+ <emphasis role="opc">outs</emphasis> atps<emphasis role="op">*</emphasis>3, atps<emphasis role="op">*</emphasis>3
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; amp freq </emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 3 0.01 0.01 <emphasis role="comment">;smooth amplitude and frequency with cutoff frequency of filter at 1% of 1/2 frame-rate (ca 0.86 Hz)</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 1 0.01 <emphasis role="comment">;no smoothing on amplitude, but frequency with cf at 1% of 1/2 frame-rate (ca 0.86 Hz)</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 10 .001 1 <emphasis role="comment">;smooth amplitude with cf at 0.1% of 1/2 frame-rate (ca 0.086 Hz)</emphasis>
+ <emphasis role="comment">;and no smoothing of frequency</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvstanal.csd.xml b/examples-xml/pvstanal.csd.xml
new file mode 100644
index 0000000..f6c50ba
--- /dev/null
+++ b/examples-xml/pvstanal.csd.xml
@@ -0,0 +1,46 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pvstanal.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gifil <emphasis role="ohdr">ftgen</emphasis> 0, 0, 0, 1, "fox.wav", 0, 0, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+fsig <emphasis role="opc">pvstanal</emphasis> p4, 1, p5, gifil, p6, p7
+aout <emphasis role="opc">pvsynth</emphasis> fsig
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+kspeed <emphasis role="opc">randi</emphasis> 2, 2, 2 <emphasis role="comment">;speed randomly between -2 and 2</emphasis>
+kpitch <emphasis role="opc">randi</emphasis> 2, 2, 2 <emphasis role="comment">;pitch between 2 octaves lower or higher</emphasis>
+fsig <emphasis role="opc">pvstanal</emphasis> kspeed, 1, <emphasis role="opc">octave</emphasis>(kpitch), gifil
+aout <emphasis role="opc">pvsynth</emphasis> fsig
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; speed pch det wrap</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2.757 1 1 0 0
+<emphasis role="stamnt">i</emphasis> 1 3 . 2 1 0 0
+<emphasis role="stamnt">i</emphasis> 1 6 . 2 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 9 . 1 .75
+<emphasis role="stamnt">i</emphasis> 2 12 10 <emphasis role="comment">;random scratching</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvsvoc.csd.xml b/examples-xml/pvsvoc.csd.xml
new file mode 100644
index 0000000..bf8361b
--- /dev/null
+++ b/examples-xml/pvsvoc.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pvsvoc.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisaw <emphasis role="ohdr">ftgen</emphasis> 1, 0, 2048, 10, 1, 0.5, 0.3, 0.25, 0.2 <emphasis role="comment">;sawtooth-like</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">in</emphasis> <emphasis role="comment">;get the signal in</emphasis>
+asyn <emphasis role="opc">poscil</emphasis> .6, 150, gisaw <emphasis role="comment">;excitation signal of 150 Hz</emphasis>
+
+famp <emphasis role="opc">pvsanal</emphasis> asig, 1024, 256, 1024, 1 <emphasis role="comment">;analyse in signal</emphasis>
+fexc <emphasis role="opc">pvsanal</emphasis> asyn, 1024, 256, 1024, 1 <emphasis role="comment">;analyse excitation signal</emphasis>
+ftps <emphasis role="opc">pvsvoc</emphasis> famp, fexc, 1, 1 <emphasis role="comment">;cross it</emphasis>
+atps <emphasis role="opc">pvsynth</emphasis> ftps <emphasis role="comment">;synthesise it </emphasis>
+ <emphasis role="opc">outs</emphasis> atps, atps
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pvswarp.csd.xml b/examples-xml/pvswarp.csd.xml
new file mode 100644
index 0000000..87d4b43
--- /dev/null
+++ b/examples-xml/pvswarp.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o pvswarp.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kscal <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">soundin</emphasis> "fox.wav" <emphasis role="comment">; get the signal in</emphasis>
+fsig <emphasis role="opc">pvsanal</emphasis> asig, 1024, 256, 1024, 1 <emphasis role="comment">; analyse it</emphasis>
+ftps <emphasis role="opc">pvswarp</emphasis> fsig, kscal, 0 <emphasis role="comment">; warp it</emphasis>
+atps <emphasis role="opc">pvsynth</emphasis> ftps <emphasis role="comment">; synthesise it </emphasis>
+ <emphasis role="opc">outs</emphasis> atps, atps
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3 1
+<emphasis role="stamnt">i</emphasis> 1 + 3 1.5
+<emphasis role="stamnt">i</emphasis> 1 + 3 3
+<emphasis role="stamnt">i</emphasis> 1 + 3 .25
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/pwd.csd.xml b/examples-xml/pwd.csd.xml
new file mode 100644
index 0000000..3316d96
--- /dev/null
+++ b/examples-xml/pwd.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in</emphasis>
+-odac <emphasis role="comment">; -iadc ;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o system.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="comment">; Initialize the global variables.</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">; Waits for command to execute before continuing</emphasis>
+Swd <emphasis role="opc">pwd</emphasis>
+<emphasis role="opc">puts</emphasis> Swd, 1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; Play Instrument #1 for minimal time.</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0.1
+<emphasis role="stamnt">e</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/q.csd.xml b/examples-xml/q.csd.xml
new file mode 100644
index 0000000..59b6833
--- /dev/null
+++ b/examples-xml/q.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o q.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aenv <emphasis role="opc">expseg</emphasis> .01, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0.01
+asig <emphasis role="opc">poscil3</emphasis> .8<emphasis role="op">*</emphasis>aenv, p4, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1<emphasis role="comment">;sine wave</emphasis>
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">q</emphasis> 1 6 0 <emphasis role="comment">;mute at 6 seconds in this section</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 110
+<emphasis role="stamnt">i</emphasis> 1 3 2 220
+<emphasis role="stamnt">i</emphasis> 1 6 2 440
+<emphasis role="stamnt">i</emphasis> 1 9 2 880
+
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">q</emphasis> 1 6 1 <emphasis role="comment">;unmute again at 6 seconds in this section</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 110
+<emphasis role="stamnt">i</emphasis> 1 3 2 220
+<emphasis role="stamnt">i</emphasis> 1 6 2 440
+<emphasis role="stamnt">i</emphasis> 1 9 2 880
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/qinf.csd.xml b/examples-xml/qinf.csd.xml
new file mode 100644
index 0000000..22d0900
--- /dev/null
+++ b/examples-xml/qinf.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-+rtaudio=alsa -o dac:hw:0
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 400
+
+<emphasis role="omacro">#define</emphasis> WII_B #3#
+<emphasis role="omacro">#define</emphasis> WII_A #4#
+<emphasis role="omacro">#define</emphasis> WII_R_A #304#
+<emphasis role="omacro">#define</emphasis> WII_PITCH #20#
+<emphasis role="omacro">#define</emphasis> WII_ROLL #21#
+
+gkcnt <emphasis role="opc">init</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+ i1 wiiconnect 3,1
+
+ wiirange $WII_PITCH., <emphasis role="op">-</emphasis>20, 0
+ kt wiidata $WII_B.
+ ka wiidata $WII_A.
+ kra wiidata $WII_R_A.
+ gka wiidata $WII_PITCH.
+ gkp wiidata $WII_ROLL.
+<emphasis role="comment">; If the B (trigger) button is pressed then activate a note</emphasis>
+ <emphasis role="octrl">if</emphasis> (kt<emphasis role="op">==</emphasis>0) <emphasis role="octrl">goto</emphasis> ee
+ <emphasis role="octrl">if</emphasis> (<emphasis role="opc">qinf</emphasis>(gka)) <emphasis role="octrl">goto</emphasis> ee
+ <emphasis role="octrl">if</emphasis> (<emphasis role="opc">qinf</emphasis>(gkp)) <emphasis role="octrl">goto</emphasis> ee
+ <emphasis role="opc">event</emphasis> "i", 2, 0, 5
+ gkcnt <emphasis role="op">=</emphasis> gkcnt <emphasis role="op">+</emphasis> 1
+ <emphasis role="opc">printk2</emphasis> kb
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+ a1 <emphasis role="opc">oscil</emphasis> <emphasis role="opc">ampdbfs</emphasis>(gka), 440<emphasis role="op">+</emphasis>gkp, 1
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
+<emphasis role="stamnt">i</emphasis>1 0 300
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/qnan.csd.xml b/examples-xml/qnan.csd.xml
new file mode 100644
index 0000000..3743fcd
--- /dev/null
+++ b/examples-xml/qnan.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-+rtaudio=alsa -o dac:hw:0
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 400
+
+<emphasis role="omacro">#define</emphasis> WII_B #3#
+<emphasis role="omacro">#define</emphasis> WII_A #4#
+<emphasis role="omacro">#define</emphasis> WII_R_A #304#
+<emphasis role="omacro">#define</emphasis> WII_PITCH #20#
+<emphasis role="omacro">#define</emphasis> WII_ROLL #21#
+
+gkcnt <emphasis role="opc">init</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+ i1 wiiconnect 3,1
+
+ wiirange $WII_PITCH., <emphasis role="op">-</emphasis>20, 0
+ kt wiidata $WII_B.
+ ka wiidata $WII_A.
+ kra wiidata $WII_R_A.
+ gka wiidata $WII_PITCH.
+ gkp wiidata $WII_ROLL.
+<emphasis role="comment">; If the B (trigger) button is pressed then activate a note</emphasis>
+ <emphasis role="octrl">if</emphasis> (kt<emphasis role="op">==</emphasis>0) <emphasis role="octrl">goto</emphasis> ee
+ <emphasis role="octrl">if</emphasis> (<emphasis role="opc">qnan</emphasis>(gka)) <emphasis role="octrl">goto</emphasis> ee
+ <emphasis role="octrl">if</emphasis> (<emphasis role="opc">qnan</emphasis>(gkp)) <emphasis role="octrl">goto</emphasis> ee
+ <emphasis role="opc">event</emphasis> "i", 2, 0, 5
+ gkcnt <emphasis role="op">=</emphasis> gkcnt <emphasis role="op">+</emphasis> 1
+ <emphasis role="opc">printk2</emphasis> kb
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+ a1 <emphasis role="opc">oscil</emphasis> <emphasis role="opc">ampdbfs</emphasis>(gka), 440<emphasis role="op">+</emphasis>gkp, 1
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
+<emphasis role="stamnt">i</emphasis>1 0 300
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/raises.csd.xml b/examples-xml/raises.csd.xml
index faaf757..59fadfb 100644
--- a/examples-xml/raises.csd.xml
+++ b/examples-xml/raises.csd.xml
@@ -2,34 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o raises.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">;-o ^.wav ; output to audio file</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="op">=</emphasis> 2 <emphasis role="op">^</emphasis> 12
- <emphasis role="opc">print</emphasis> i1
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; Lo-Fi sound</emphasis>
+kpow <emphasis role="op">=</emphasis> 10 <emphasis role="comment">;exponent</emphasis>
+kbase <emphasis role="opc">line</emphasis> 1, p3, 2.2 <emphasis role="comment">;vary the base</emphasis>
+kQuantize <emphasis role="op">=</emphasis> kbase^kpow
+kQuantize <emphasis role="op">=</emphasis> kQuantize<emphasis role="op">*</emphasis>0.5 <emphasis role="comment">;half the number of steps for each side of a bipolar signal</emphasis>
+<emphasis role="opc">printk2</emphasis> kQuantize
+asig <emphasis role="opc">diskin2</emphasis> "fox.wav", 1, 0, 1 <emphasis role="comment">;loop the fox</emphasis>
+asig <emphasis role="op">=</emphasis> <emphasis role="opc">round</emphasis>(asig <emphasis role="op">*</emphasis> kQuantize) <emphasis role="op">/</emphasis> kQuantize <emphasis role="comment">;quantize and scale audio signal</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis>1 0 19.2
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/rand.csd.xml b/examples-xml/rand.csd.xml
index 5c23d71..522b0fc 100644
--- a/examples-xml/rand.csd.xml
+++ b/examples-xml/rand.csd.xml
@@ -2,41 +2,43 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o rand.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Choose a random frequency between 4,100 and 44,100.</emphasis>
- kfreq <emphasis role="opc">rand</emphasis> 20000
- kcps <emphasis role="op">=</emphasis> kfreq <emphasis role="op">+</emphasis> 24100
-
- a1 <emphasis role="opc">oscil</emphasis> 30000, kcps, 1
- <emphasis role="opc">out</emphasis> a1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;same values every time</emphasis>
+
+krnd <emphasis role="opc">rand</emphasis> 100
+ <emphasis role="opc">printk</emphasis> .5, krnd <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>krnd, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;different values every time</emphasis>
+
+krnd <emphasis role="opc">rand</emphasis> 100, 10 <emphasis role="comment">; seed from system clock</emphasis>
+ <emphasis role="opc">printk</emphasis> .5, krnd <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>krnd, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave.</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 2 2 1
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/randh.csd.xml b/examples-xml/randh.csd.xml
index d86cad8..0197341 100644
--- a/examples-xml/randh.csd.xml
+++ b/examples-xml/randh.csd.xml
@@ -2,48 +2,42 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o randh.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Choose a random frequency between 200 and 1000.</emphasis>
- <emphasis role="comment">; Generate new random numbers at 4 Hz.</emphasis>
- <emphasis role="comment">; kamp = 400</emphasis>
- <emphasis role="comment">; kcps = 4</emphasis>
- <emphasis role="comment">; iseed = 0.5</emphasis>
- <emphasis role="comment">; isize = 0</emphasis>
- <emphasis role="comment">; ioffset = 600</emphasis>
-
- kcps <emphasis role="opc">randh</emphasis> 400, 4, 0.5, 0, 600
- <emphasis role="opc">printk2</emphasis> kcps
-
- a1 <emphasis role="opc">oscil</emphasis> 30000, kcps, 1
- <emphasis role="opc">out</emphasis> a1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;same values every time</emphasis>
+
+krnd <emphasis role="opc">randh</emphasis> 100, 10
+ <emphasis role="opc">printk2</emphasis> krnd <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>krnd, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;different values every time</emphasis>
+
+krnd <emphasis role="opc">randh</emphasis> 100, 10, 10 <emphasis role="comment">; seed from system clock</emphasis>
+ <emphasis role="opc">printk2</emphasis> krnd <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>krnd, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave.</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 2 2 1
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/randi.csd.xml b/examples-xml/randi.csd.xml
index 3e49961..7f04eb3 100644
--- a/examples-xml/randi.csd.xml
+++ b/examples-xml/randi.csd.xml
@@ -2,47 +2,42 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o randi.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Choose a random frequency between 4,100 and 44,100.</emphasis>
- <emphasis role="comment">; Generate new random numbers at 10 Hz.</emphasis>
- <emphasis role="comment">; kamp = 40000</emphasis>
- <emphasis role="comment">; kcps = 10</emphasis>
- <emphasis role="comment">; iseed = 0.5</emphasis>
- <emphasis role="comment">; isize = 0</emphasis>
- <emphasis role="comment">; ioffset = 4100</emphasis>
-
- kcps <emphasis role="opc">randi</emphasis> 40000, 10, 0.5, 0, 4100
-
- a1 <emphasis role="opc">oscil</emphasis> 30000, kcps, 1
- <emphasis role="opc">out</emphasis> a1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;same values every time</emphasis>
+
+krnd <emphasis role="opc">randi</emphasis> 100, 10
+ <emphasis role="opc">printk</emphasis> .5, krnd <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>krnd, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;different values every time</emphasis>
+
+krnd <emphasis role="opc">randi</emphasis> 100, 10, 10 <emphasis role="comment">; seed from system clock</emphasis>
+ <emphasis role="opc">printk</emphasis> .5, krnd <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>krnd, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave.</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 2 2 1
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/random.csd.xml b/examples-xml/random.csd.xml
index ec5c040..448a797 100644
--- a/examples-xml/random.csd.xml
+++ b/examples-xml/random.csd.xml
@@ -2,38 +2,43 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o random.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a random number between 220 and 440.</emphasis>
- kmin <emphasis role="opc">init</emphasis> 220
- kmax <emphasis role="opc">init</emphasis> 440
- k1 <emphasis role="opc">random</emphasis> kmin, kmax
-
- <emphasis role="opc">printks</emphasis> "k1 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\\n", 0.1, k1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;same values every time</emphasis>
+
+krnd <emphasis role="opc">random</emphasis> 100, 1000
+ <emphasis role="opc">printk</emphasis> .5, krnd <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>krnd, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;different values every time</emphasis>
+
+<emphasis role="ohdr">seed</emphasis> 0
+krnd <emphasis role="opc">random</emphasis> 100, 1000 <emphasis role="comment">; seed from system clock</emphasis>
+ <emphasis role="opc">printk</emphasis> .5, krnd <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>krnd, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave.</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 2 2 1
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/randomh.csd.xml b/examples-xml/randomh.csd.xml
index 37263fc..04ae7a9 100644
--- a/examples-xml/randomh.csd.xml
+++ b/examples-xml/randomh.csd.xml
@@ -15,31 +15,33 @@
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+ <emphasis role="ohdr">seed</emphasis> 0
+
<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; Choose a random frequency between 220 and 440 Hz.</emphasis>
<emphasis role="comment">; Generate new random numbers at 10 Hz.</emphasis>
- kmin <emphasis role="op">=</emphasis> 220
- kmax <emphasis role="op">=</emphasis> 440
- kcps <emphasis role="op">=</emphasis> 10
-
- k1 <emphasis role="opc">randomh</emphasis> kmin, kmax, kcps
-
- <emphasis role="opc">printks</emphasis> "k1 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\\n", 0.1, k1
+ kmin <emphasis role="opc">init</emphasis> 220
+ kmax <emphasis role="opc">init</emphasis> 440
+ kcps <emphasis role="opc">init</emphasis> 10
+ imode <emphasis role="op">=</emphasis> p4
+ ifstval <emphasis role="op">=</emphasis> p5
+
+ <emphasis role="opc">printf_i</emphasis> "\nMode<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>d\n", 1, imode
+ k1 <emphasis role="opc">randomh</emphasis> kmin, kmax, kcps, imode, ifstval
+ <emphasis role="opc">printk2</emphasis> k1
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
+<emphasis role="comment">; Play Instrument #1 for one second,</emphasis>
+<emphasis role="comment">; each time with a different mode.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 1 1 2 330
+<emphasis role="stamnt">i</emphasis> 1 2 1 3
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/randomi.csd.xml b/examples-xml/randomi.csd.xml
index 53a1f61..44c967e 100644
--- a/examples-xml/randomi.csd.xml
+++ b/examples-xml/randomi.csd.xml
@@ -15,28 +15,34 @@
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+ <emphasis role="ohdr">seed</emphasis> 0
+
<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; Choose a random frequency between 220 and 440.</emphasis>
<emphasis role="comment">; Generate new random numbers at 10 Hz.</emphasis>
- kmin <emphasis role="opc">init</emphasis> 220
- kmax <emphasis role="opc">init</emphasis> 440
- kcps <emphasis role="opc">init</emphasis> 10
-
- k1 <emphasis role="opc">randomi</emphasis> kmin, kmax, kcps
-
- <emphasis role="opc">printks</emphasis> "k1 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\\n", 0.1, k1
+ kmin <emphasis role="opc">init</emphasis> 220
+ kmax <emphasis role="opc">init</emphasis> 440
+ kcps <emphasis role="opc">init</emphasis> 10
+ imode <emphasis role="op">=</emphasis> p4
+ ifstval <emphasis role="op">=</emphasis> p5
+
+ <emphasis role="opc">printf_i</emphasis> "\nMode<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>d\n", 1, imode
+ k1 <emphasis role="opc">randomi</emphasis> kmin, kmax, kcps, imode, ifstval
+ <emphasis role="opc">printks</emphasis> "k1 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 0.1, k1
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
+<emphasis role="comment">; each time with a different mode.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 1 1 1
+<emphasis role="stamnt">i</emphasis> 1 2 1 2 330
+<emphasis role="stamnt">i</emphasis> 1 3 1 3
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/rbjeq.csd.xml b/examples-xml/rbjeq.csd.xml
index 9ad132c..19404db 100644
--- a/examples-xml/rbjeq.csd.xml
+++ b/examples-xml/rbjeq.csd.xml
@@ -2,34 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o rbjeq.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="oblock">instr</emphasis> 1
-
-a1 <emphasis role="opc">vco2</emphasis> 10000, 155.6 <emphasis role="comment">; sawtooth wave</emphasis>
-kfco <emphasis role="opc">expon</emphasis> 8000, p3, 200 <emphasis role="comment">; filter frequency</emphasis>
-a1 <emphasis role="opc">rbjeq</emphasis> a1, kfco, 1, kfco <emphasis role="op">*</emphasis> 0.005, 1, 0 <emphasis role="comment">; resonant lowpass</emphasis>
- <emphasis role="opc">out</emphasis> a1
-
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+imode <emphasis role="op">=</emphasis> p4
+a1 <emphasis role="opc">vco2</emphasis> .3, 155.6 <emphasis role="comment">; sawtooth wave</emphasis>
+kfco <emphasis role="opc">expon</emphasis> 8000, p3, 200 <emphasis role="comment">; filter frequency</emphasis>
+asig <emphasis role="opc">rbjeq</emphasis> a1, kfco, 1, kfco <emphasis role="op">*</emphasis> 0.005, 1, imode
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 5
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 5 0 <emphasis role="comment">;lowpass</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 6 5 2 <emphasis role="comment">;highpass</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 12 5 4 <emphasis role="comment">;bandpass</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 18 5 8 <emphasis role="comment">;equalizer</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/readf.csd.xml b/examples-xml/readf.csd.xml
new file mode 100644
index 0000000..d3da654
--- /dev/null
+++ b/examples-xml/readf.csd.xml
@@ -0,0 +1,26 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+ Swd <emphasis role="opc">pwd</emphasis>
+ <emphasis role="opc">printf_i</emphasis> "Working directory is '<emphasis role="op">%</emphasis>s'\n", 1, Swd
+ <emphasis role="opc">prints</emphasis> "Reading myself <emphasis role="op">=</emphasis>)<emphasis role="op">:</emphasis>\n"
+<emphasis role="olabel">read</emphasis><emphasis role="op">:</emphasis>
+ Sline, kLinNum <emphasis role="opc">readf</emphasis> "readf.csd"
+ <emphasis role="opc">printf</emphasis> "Line <emphasis role="op">%</emphasis>d<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>s", kLinNum, kLinNum, Sline
+ <emphasis role="octrl">if</emphasis> kLinNum <emphasis role="op">!=</emphasis> <emphasis role="op">-</emphasis>1 then
+ <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">read</emphasis>
+ <emphasis role="octrl">else</emphasis>
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="octrl">endif</emphasis>
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/readfi.csd.xml b/examples-xml/readfi.csd.xml
new file mode 100644
index 0000000..cabf458
--- /dev/null
+++ b/examples-xml/readfi.csd.xml
@@ -0,0 +1,22 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+ Swd <emphasis role="opc">pwd</emphasis>
+ <emphasis role="opc">printf_i</emphasis> "Working directory is '<emphasis role="op">%</emphasis>s'\n", 1, Swd
+ <emphasis role="opc">prints</emphasis> "Reading myself <emphasis role="op">=</emphasis>)<emphasis role="op">:</emphasis>\n"
+<emphasis role="olabel">read</emphasis><emphasis role="op">:</emphasis>
+Sline, iLineNum <emphasis role="opc">readfi</emphasis> "readfi.csd"
+ <emphasis role="opc">printf_i</emphasis> "Line <emphasis role="op">%</emphasis>d<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>s", iLineNum, iLineNum, Sline
+ <emphasis role="octrl">if</emphasis> iLineNum <emphasis role="op">!=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">read</emphasis>
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 0.1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/readk-2.csd.xml b/examples-xml/readk-2.csd.xml
new file mode 100644
index 0000000..82c5b04
--- /dev/null
+++ b/examples-xml/readk-2.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o readk-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;writes a control signal to a file</emphasis>
+kfreq <emphasis role="opc">randh</emphasis> 100, 1, 2, 1, 500 <emphasis role="comment">;generates one random number between 400 and 600 per second</emphasis>
+ <emphasis role="opc">dumpk</emphasis> kfreq, "dumpk.txt", 8, 1 <emphasis role="comment">;writes the control signal</emphasis>
+ <emphasis role="opc">printk</emphasis> 1, kfreq <emphasis role="comment">;prints it</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;reads the file written by instr 1</emphasis>
+kfreq <emphasis role="opc">readk</emphasis> "dumpk.txt", 8, 1
+ <emphasis role="opc">printk</emphasis> 1, kfreq <emphasis role="comment">;prints it</emphasis>
+aout <emphasis role="opc">poscil</emphasis> .2, kfreq, giSine
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 5 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/readk2.csd.xml b/examples-xml/readk2.csd.xml
new file mode 100644
index 0000000..7fd8d1b
--- /dev/null
+++ b/examples-xml/readk2.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o readk2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;writes two control signals to a file</emphasis>
+kfreq <emphasis role="opc">randh</emphasis> 100, 1, 2, 1, 500 <emphasis role="comment">;generates one random number between 400 and 600 per second</emphasis>
+kdb <emphasis role="opc">randh</emphasis> 12, 1, 2, 1, <emphasis role="op">-</emphasis>12 <emphasis role="comment">;amplitudes in dB between -24 and 0</emphasis>
+ <emphasis role="opc">dumpk2</emphasis> kfreq, kdb, "dumpk2.txt", 8, 1 <emphasis role="comment">;writes the control signals</emphasis>
+ <emphasis role="opc">prints</emphasis> "WRITING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kfreq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kfreq, kdb <emphasis role="comment">;prints them</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;reads the file written by instr 1</emphasis>
+kf,kdb <emphasis role="opc">readk2</emphasis> "dumpk2.txt", 8, 1
+ <emphasis role="opc">prints</emphasis> "READING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kfreq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kf, kdb <emphasis role="comment">;prints again</emphasis>
+kdb <emphasis role="opc">lineto</emphasis> kdb, .1 <emphasis role="comment">;smoothing amp transition</emphasis>
+aout <emphasis role="opc">poscil</emphasis> <emphasis role="opc">ampdb</emphasis>(kdb), kf, giSine
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 5 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/readk3.csd.xml b/examples-xml/readk3.csd.xml
new file mode 100644
index 0000000..2e8fd2d
--- /dev/null
+++ b/examples-xml/readk3.csd.xml
@@ -0,0 +1,46 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o readk3.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;writes three control signals to a file</emphasis>
+kfreq <emphasis role="opc">randh</emphasis> 100, 1, 2, 1, 500 <emphasis role="comment">;generates one random number between 400 and 600 per second</emphasis>
+kdb <emphasis role="opc">randh</emphasis> 12, 1, 2, 1, <emphasis role="op">-</emphasis>12 <emphasis role="comment">;amplitudes in dB between -24 and 0</emphasis>
+kpan <emphasis role="opc">randh</emphasis> .5, 1, 2, 1, .5 <emphasis role="comment">;panning between 0 and 1</emphasis>
+ <emphasis role="opc">dumpk3</emphasis> kfreq, kdb, kpan, "dumpk3.txt", 8, 1 <emphasis role="comment">;writes the control signals</emphasis>
+ <emphasis role="opc">prints</emphasis> "WRITING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kfreq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kpan <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kfreq, kdb, kpan <emphasis role="comment">;prints them</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;reads the file written by instr 1</emphasis>
+kf,kdb,kp <emphasis role="opc">readk3</emphasis> "dumpk3.txt", 8, 1
+ <emphasis role="opc">prints</emphasis> "READING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kfreq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kpan <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kf, kdb, kp <emphasis role="comment">;prints again</emphasis>
+kdb <emphasis role="opc">lineto</emphasis> kdb, .1 <emphasis role="comment">;smoothing amp transition</emphasis>
+kp <emphasis role="opc">lineto</emphasis> kp, .1 <emphasis role="comment">;smoothing pan transition</emphasis>
+aout <emphasis role="opc">poscil</emphasis> <emphasis role="opc">ampdb</emphasis>(kdb), kf, giSine
+aL, aR <emphasis role="opc">pan2</emphasis> aout, kp
+ <emphasis role="opc">outs</emphasis> aL, aR
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 5 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/readk4.csd.xml b/examples-xml/readk4.csd.xml
new file mode 100644
index 0000000..643ccab
--- /dev/null
+++ b/examples-xml/readk4.csd.xml
@@ -0,0 +1,50 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o readk4.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;writes four control signals to a file</emphasis>
+kcf <emphasis role="opc">randh</emphasis> 950, 1, 2, 1, 1050 <emphasis role="comment">;generates one random number between 100 and 2000 per second</emphasis>
+kq <emphasis role="opc">randh</emphasis> 10, 1, 2, 1, 11 <emphasis role="comment">;generates another random number between 1 and 21 per second</emphasis>
+kdb <emphasis role="opc">randh</emphasis> 9, 1, 2, 1, <emphasis role="op">-</emphasis>15 <emphasis role="comment">;amplitudes in dB between -24 and -6</emphasis>
+kpan <emphasis role="opc">randh</emphasis> .5, 1, 2, 1, .5 <emphasis role="comment">;panning between 0 and 1</emphasis>
+ <emphasis role="opc">dumpk4</emphasis> kcf, kq, kdb, kpan, "dumpk4.txt", 8, 1 <emphasis role="comment">;writes the control signals</emphasis>
+ <emphasis role="opc">prints</emphasis> "WRITING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kcf <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kpan <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kcf, kq, kdb, kpan <emphasis role="comment">;prints them</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;reads the file written by instr 1</emphasis>
+kcf,kq,kdb,kp <emphasis role="opc">readk4</emphasis> "dumpk4.txt", 8, 1
+ <emphasis role="opc">prints</emphasis> "READING<emphasis role="op">:</emphasis>\n"
+ <emphasis role="opc">printks</emphasis> "kcf <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kq <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kdb <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, kpan <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", 1, kcf, kq, kdb, kp <emphasis role="comment">;prints values</emphasis>
+kdb <emphasis role="opc">lineto</emphasis> kdb, .1 <emphasis role="comment">;smoothing amp transition</emphasis>
+kp <emphasis role="opc">lineto</emphasis> kp, .1 <emphasis role="comment">;smoothing pan transition</emphasis>
+anoise <emphasis role="opc">rand</emphasis> <emphasis role="opc">ampdb</emphasis>(kdb), 2, 1
+kbw <emphasis role="op">=</emphasis> kcf<emphasis role="op">/</emphasis>kq <emphasis role="comment">;bandwidth of resonant filter</emphasis>
+abp <emphasis role="opc">reson</emphasis> anoise, kcf, kbw
+aout <emphasis role="opc">balance</emphasis> abp, anoise
+aL, aR <emphasis role="opc">pan2</emphasis> aout, kp
+ <emphasis role="opc">outs</emphasis> aL, aR
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 5 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/readscore.csd.xml b/examples-xml/readscore.csd.xml
new file mode 100644
index 0000000..c948df7
--- /dev/null
+++ b/examples-xml/readscore.csd.xml
@@ -0,0 +1,33 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-d -o dac
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 1
+a1 <emphasis role="opc">flooper2</emphasis> 1000,p4,2,5,0.1,1
+ <emphasis role="opc">out</emphasis> a1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+ires <emphasis role="opc">readscore</emphasis> {{
+{12 COUNT
+i1 $COUNT 1 [1 <emphasis role="op">+</emphasis> $COUNT<emphasis role="op">/</emphasis>12]
+}
+}}
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 12
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 1
+
+<emphasis role="stamnt">i</emphasis>2 0 1
+
+
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/readscratch.csd.xml b/examples-xml/readscratch.csd.xml
new file mode 100644
index 0000000..654aa9c
--- /dev/null
+++ b/examples-xml/readscratch.csd.xml
@@ -0,0 +1,31 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ilast <emphasis role="opc">readscratch</emphasis>
+ <emphasis role="opc">writescratch</emphasis> p2
+ilen <emphasis role="opc">readscratch</emphasis> 1
+ <emphasis role="opc">writescratch</emphasis> p3, 1
+ <emphasis role="opc">printf_i</emphasis> "last run at <emphasis role="op">%</emphasis>f for <emphasis role="op">%</emphasis>f\n", ilen, ilast, ilen
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 2 3
+<emphasis role="stamnt">i</emphasis> 1 6 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/repluck.csd.xml b/examples-xml/repluck.csd.xml
index 81da7d4..0f80880 100644
--- a/examples-xml/repluck.csd.xml
+++ b/examples-xml/repluck.csd.xml
@@ -2,45 +2,51 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o repluck.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- iplk <emphasis role="op">=</emphasis> 0.75
- kamp <emphasis role="op">=</emphasis> 30000
- icps <emphasis role="op">=</emphasis> 220
- kpick <emphasis role="op">=</emphasis> 0.75
- krefl <emphasis role="op">=</emphasis> 0.5
- axcite <emphasis role="opc">oscil</emphasis> 1, 1, 1
- apluck <emphasis role="opc">repluck</emphasis> iplk, kamp, icps, kpick, krefl, axcite
+iplk <emphasis role="op">=</emphasis> 0.75
+kamp <emphasis role="op">=</emphasis> .8
+icps <emphasis role="op">=</emphasis> 110
+krefl <emphasis role="op">=</emphasis> p4
+kpick <emphasis role="op">=</emphasis> p5
- <emphasis role="opc">out</emphasis> apluck
-<emphasis role="oblock">endin</emphasis>
+axcite <emphasis role="opc">oscil</emphasis> 1, 1, 1
+asig <emphasis role="opc">repluck</emphasis> iplk, kamp, icps, kpick, krefl, axcite
+asig <emphasis role="opc">dcblock2</emphasis> asig <emphasis role="comment">;get rid of DC offset</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave.</emphasis>
+
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1 0.95 0.75 <emphasis role="comment">;sounds heavier (=p5)</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 1 &lt;
+<emphasis role="stamnt">i</emphasis> 1 + 1 &lt;
+<emphasis role="stamnt">i</emphasis> 1 + 1 &lt;
+<emphasis role="stamnt">i</emphasis> 1 + 10 0.6
+
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1 0.95 0.15 <emphasis role="comment">;sounds softer (=p5)</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 1 &lt;
+<emphasis role="stamnt">i</emphasis> 1 + 1 &lt;
+<emphasis role="stamnt">i</emphasis> 1 + 1 &lt;
+<emphasis role="stamnt">i</emphasis> 1 + 10 0.6
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/reson.csd.xml b/examples-xml/reson.csd.xml
index 9abbf89..f74d7a3 100644
--- a/examples-xml/reson.csd.xml
+++ b/examples-xml/reson.csd.xml
@@ -2,49 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o reson.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a sine waveform.</emphasis>
- asine <emphasis role="opc">buzz</emphasis> 15000, 440, 3, 1
- <emphasis role="comment">; Vary the cut-off frequency from 220 to 1280.</emphasis>
- kcf <emphasis role="opc">line</emphasis> 220, p3, 1320
- kbw <emphasis role="opc">init</emphasis> 20
+asaw <emphasis role="opc">vco2</emphasis> .2, 220 <emphasis role="comment">;sawtooth</emphasis>
+kcf <emphasis role="opc">line</emphasis> 220, p3, 1760 <emphasis role="comment">;vary cut-off frequency from 220 to 1280 Hz</emphasis>
+kbw <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;vary bandwidth of filter too </emphasis>
+ares <emphasis role="opc">reson</emphasis> asaw, kcf, kbw
+asig <emphasis role="opc">balance</emphasis> ares, asaw
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; Run the sine through a resonant filter.</emphasis>
- ares <emphasis role="opc">reson</emphasis> asine, kcf, kbw
-
- <emphasis role="comment">; Give the filtered signal the same amplitude </emphasis>
- <emphasis role="comment">; as the original signal. </emphasis>
- a1 <emphasis role="opc">balance</emphasis> ares, asine
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, an ordinary sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 4 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 4
+<emphasis role="stamnt">i</emphasis> 1 0 4 10 <emphasis role="comment">;bandwidth of filter = 10 Hz</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 4 50 <emphasis role="comment">;50 Hz and</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 4 200 <emphasis role="comment">;200 Hz</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/resonk.csd.xml b/examples-xml/resonk.csd.xml
new file mode 100644
index 0000000..f8e2875
--- /dev/null
+++ b/examples-xml/resonk.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o resonk.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisin <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ksig <emphasis role="opc">randomh</emphasis> 400, 1800, 150
+aout <emphasis role="opc">poscil</emphasis> .2, 1000<emphasis role="op">+</emphasis>ksig, gisin
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ksig <emphasis role="opc">randomh</emphasis> 400, 1800, 150
+khp <emphasis role="opc">line</emphasis> 1, p3, 400 <emphasis role="comment">;vary high-pass</emphasis>
+ksig <emphasis role="opc">resonk</emphasis> ksig, khp, 50
+aout <emphasis role="opc">poscil</emphasis> .2, 1000<emphasis role="op">+</emphasis>ksig, gisin
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 5.5 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/resonx.csd.xml b/examples-xml/resonx.csd.xml
new file mode 100644
index 0000000..7864d1d
--- /dev/null
+++ b/examples-xml/resonx.csd.xml
@@ -0,0 +1,44 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o resonx.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; unfiltered noise</emphasis>
+
+kenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 1, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;envelope</emphasis>
+asig <emphasis role="opc">rand</emphasis> 0.7 <emphasis role="comment">;white noise</emphasis>
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>kenv, asig<emphasis role="op">*</emphasis>kenv
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; filtered noise</emphasis>
+
+kenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 1, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;envelope</emphasis>
+asig <emphasis role="opc">rand</emphasis> 0.7
+kcf <emphasis role="opc">line</emphasis> 300, p3, 2000
+afilt <emphasis role="opc">resonx</emphasis> asig, kcf, 300, 4
+asig <emphasis role="opc">balance</emphasis> afilt, asig
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>kenv, asig<emphasis role="op">*</emphasis>kenv
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 2 3 2
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/resonxk.csd.xml b/examples-xml/resonxk.csd.xml
new file mode 100644
index 0000000..27d8220
--- /dev/null
+++ b/examples-xml/resonxk.csd.xml
@@ -0,0 +1,46 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o resonxk.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisin <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ksig <emphasis role="opc">randomh</emphasis> 400, 1800, 150
+aout <emphasis role="opc">poscil</emphasis> .2, 1000<emphasis role="op">+</emphasis>ksig, gisin
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ksig <emphasis role="opc">randomh</emphasis> 400, 1800, 150
+kcf <emphasis role="opc">line</emphasis> 1, p3, 1000 <emphasis role="comment">;vary high-pass</emphasis>
+ilay <emphasis role="op">=</emphasis> p4
+ksig <emphasis role="opc">resonxk</emphasis> ksig, kcf, 100, ilay
+aout <emphasis role="opc">poscil</emphasis> .2, 1000<emphasis role="op">+</emphasis>ksig, gisin
+asig <emphasis role="opc">interp</emphasis> ksig <emphasis role="comment">;convert k-rate to a-rate</emphasis>
+aout <emphasis role="opc">balance</emphasis> asig, aout <emphasis role="comment">;avoid getting asig out of range</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 6 5 1 <emphasis role="comment">;number of filter stack = 1</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 12 5 5 <emphasis role="comment">;number of filter stack = 5</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/resony.csd.xml b/examples-xml/resony.csd.xml
index 93093e4..09dd969 100644
--- a/examples-xml/resony.csd.xml
+++ b/examples-xml/resony.csd.xml
@@ -2,49 +2,45 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o resony.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o resonx.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use a nice sawtooth waveform.</emphasis>
- asig <emphasis role="opc">vco</emphasis> 32000, 220, 1
-
- <emphasis role="comment">; Vary the base frequency from 60 to 600 Hz.</emphasis>
- kbf <emphasis role="opc">line</emphasis> 60, p3, 600
- kbw <emphasis role="op">=</emphasis> 50
- inum <emphasis role="op">=</emphasis> 2
- ksep <emphasis role="op">=</emphasis> 1
- isepmode <emphasis role="op">=</emphasis> 0
- iscl <emphasis role="op">=</emphasis> 1
-
- a1 <emphasis role="opc">resony</emphasis> asig, kbf, kbw, inum, ksep, isepmode, iscl
-
- <emphasis role="opc">out</emphasis> a1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; unfiltered noise</emphasis>
+
+kenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 1, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;envelope</emphasis>
+asig <emphasis role="opc">rand</emphasis> 0.7 <emphasis role="comment">;white noise</emphasis>
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>kenv, asig<emphasis role="op">*</emphasis>kenv
+
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; filtered noise</emphasis>
+ksep <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;vary seperation of center frequency of filters in octaves</emphasis>
+kenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, 1, p3<emphasis role="op">*</emphasis>.5, 0 <emphasis role="comment">;envelope</emphasis>
+asig <emphasis role="opc">rand</emphasis> 0.7
+kbf <emphasis role="opc">line</emphasis> 300, p3, 2000 <emphasis role="comment">;vary base frequency</emphasis>
+afilt <emphasis role="opc">resony</emphasis> asig, kbf, 300, 4, ksep
+asig <emphasis role="opc">balance</emphasis> afilt, asig
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>kenv, asig<emphasis role="op">*</emphasis>kenv
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave for the vco opcode.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 2 3 2 1
+<emphasis role="stamnt">i</emphasis> 2 6 2 3
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/resonz.csd.xml b/examples-xml/resonz.csd.xml
new file mode 100644
index 0000000..5873028
--- /dev/null
+++ b/examples-xml/resonz.csd.xml
@@ -0,0 +1,72 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in No messages</emphasis>
+-odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o resonz.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> Written by Sean Costello <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+ <emphasis role="comment">; Orchestra file for resonant filter sweep of a sawtooth-like waveform. </emphasis>
+ <emphasis role="comment">; The outputs of reson, resonr, and resonz are scaled by coefficients</emphasis>
+ <emphasis role="comment">; specified in the score, so that each filter can be heard on its own</emphasis>
+ <emphasis role="comment">; from the same instrument.</emphasis>
+
+ <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+ <emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+ <emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+ <emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ idur <emphasis role="op">=</emphasis> p3
+ ibegfreq <emphasis role="op">=</emphasis> p4 <emphasis role="comment">; beginning of sweep frequency</emphasis>
+ iendfreq <emphasis role="op">=</emphasis> p5 <emphasis role="comment">; ending of sweep frequency</emphasis>
+ ibw <emphasis role="op">=</emphasis> p6 <emphasis role="comment">; bandwidth of filters in Hz</emphasis>
+ ifreq <emphasis role="op">=</emphasis> p7 <emphasis role="comment">; frequency of gbuzz that is to be filtered</emphasis>
+ iamp <emphasis role="op">=</emphasis> p8 <emphasis role="comment">; amplitude to scale output by</emphasis>
+ ires <emphasis role="op">=</emphasis> p9 <emphasis role="comment">; coefficient to scale amount of reson in output</emphasis>
+ iresr <emphasis role="op">=</emphasis> p10 <emphasis role="comment">; coefficient to scale amount of resonr in output</emphasis>
+ iresz <emphasis role="op">=</emphasis> p11 <emphasis role="comment">; coefficient to scale amount of resonz in output</emphasis>
+
+ <emphasis role="comment">; Frequency envelope for reson cutoff</emphasis>
+ kfreq <emphasis role="opc">linseg</emphasis> ibegfreq, idur <emphasis role="op">*</emphasis> .5, iendfreq, idur <emphasis role="op">*</emphasis> .5, ibegfreq
+
+ <emphasis role="comment">; Amplitude envelope to prevent clicking</emphasis>
+ kenv <emphasis role="opc">linseg</emphasis> 0, .1, iamp, idur <emphasis role="op">-</emphasis> .2, iamp, .1, 0
+
+ <emphasis role="comment">; Number of harmonics for gbuzz scaled to avoid aliasing</emphasis>
+ iharms <emphasis role="op">=</emphasis> (<emphasis role="ohdr">sr</emphasis><emphasis role="op">*</emphasis>.4)<emphasis role="op">/</emphasis>ifreq
+
+ asig <emphasis role="opc">gbuzz</emphasis> 1, ifreq, iharms, 1, .9, 1 <emphasis role="comment">; "Sawtooth" waveform</emphasis>
+ ain <emphasis role="op">=</emphasis> kenv <emphasis role="op">*</emphasis> asig <emphasis role="comment">; output scaled by amp envelope</emphasis>
+ ares <emphasis role="opc">reson</emphasis> ain, kfreq, ibw, 1
+ aresr <emphasis role="opc">resonr</emphasis> ain, kfreq, ibw, 1
+ aresz <emphasis role="opc">resonz</emphasis> ain, kfreq, ibw, 1
+
+ <emphasis role="opc">out</emphasis> ares <emphasis role="op">*</emphasis> ires <emphasis role="op">+</emphasis> aresr <emphasis role="op">*</emphasis> iresr <emphasis role="op">+</emphasis> aresz <emphasis role="op">*</emphasis> iresz
+
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+/* Written by Sean Costello */
+<emphasis role="stamnt">f</emphasis>1 0 8192 9 1 1 .25 <emphasis role="comment">; cosine table for gbuzz generator</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 10 1 3000 200 100 4000 1 0 0 <emphasis role="comment">; reson output with bw = 200</emphasis>
+<emphasis role="stamnt">i</emphasis>1 10 10 1 3000 200 100 4000 0 1 0 <emphasis role="comment">; resonr output with bw = 200</emphasis>
+<emphasis role="stamnt">i</emphasis>1 20 10 1 3000 200 100 4000 0 0 1 <emphasis role="comment">; resonz output with bw = 200</emphasis>
+<emphasis role="stamnt">i</emphasis>1 30 10 1 3000 50 200 8000 1 0 0 <emphasis role="comment">; reson output with bw = 50</emphasis>
+<emphasis role="stamnt">i</emphasis>1 40 10 1 3000 50 200 8000 0 1 0 <emphasis role="comment">; resonr output with bw = 50</emphasis>
+<emphasis role="stamnt">i</emphasis>1 50 10 1 3000 50 200 8000 0 0 1 <emphasis role="comment">; resonz output with bw = 50</emphasis>
+<emphasis role="stamnt">e</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/resyn.csd.xml b/examples-xml/resyn.csd.xml
index a22f425..43e9574 100644
--- a/examples-xml/resyn.csd.xml
+++ b/examples-xml/resyn.csd.xml
@@ -2,37 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o resyn.wav -W ;;; for file output any platform</emphasis>
-<emphasis role="comment">;heavy on CPU</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
-fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512, 1 <emphasis role="comment">; pvsifd analysis</emphasis>
-fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .003, 1,3, 500 <emphasis role="comment">; partial tracking</emphasis>
-aout <emphasis role="opc">resyn</emphasis> fst, 1, 1.5, 100, 1 <emphasis role="comment">; resynthesis (up a 5th)</emphasis>
- <emphasis role="opc">out</emphasis> aout
-<emphasis role="oblock">endin</emphasis>
+ktracks <emphasis role="op">=</emphasis> p4
+ain <emphasis role="opc">diskin2</emphasis> "fox.wav", 1, 0, 1
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512, 1 <emphasis role="comment">; pvsifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .1, 1,3, 500 <emphasis role="comment">; partial tracking</emphasis>
+aout <emphasis role="opc">resyn</emphasis> fst, 1, 1.5, ktracks, 1 <emphasis role="comment">; resynthesis (up a 5th)</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="comment">;sine</emphasis>
<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2.7 500
+<emphasis role="stamnt">i</emphasis> 1 3 2.7 10 <emphasis role="comment">;non-linear filtering effect </emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/reverb.csd.xml b/examples-xml/reverb.csd.xml
index e19aa20..eada94a 100644
--- a/examples-xml/reverb.csd.xml
+++ b/examples-xml/reverb.csd.xml
@@ -2,64 +2,49 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o reverb.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; init an audio receiver/mixer</emphasis>
ga1 <emphasis role="opc">init</emphasis> 0
-<emphasis role="comment">; Instrument #1. (there may be many copies)</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; generate a source signal</emphasis>
- a1 <emphasis role="opc">oscili</emphasis> 7000, <emphasis role="opc">cpspch</emphasis>(p4), 1
- <emphasis role="comment">; output the direct sound</emphasis>
- <emphasis role="opc">out</emphasis> a1
- <emphasis role="comment">; and add to audio receiver</emphasis>
- ga1 <emphasis role="op">=</emphasis> ga1 <emphasis role="op">+</emphasis> a1
+
+asig <emphasis role="opc">poscil</emphasis> .2, <emphasis role="opc">cpspch</emphasis>(p4), 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+ga1 <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> asig <emphasis role="comment">;add direct signal to global reverb</emphasis>
+
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; (highest instr number executed last)</emphasis>
-<emphasis role="oblock">instr</emphasis> 99
- <emphasis role="comment">; reverberate whatever is in ga1</emphasis>
- a3 <emphasis role="opc">reverb</emphasis> ga1, 1.5
- <emphasis role="comment">; and output the result</emphasis>
- <emphasis role="opc">out</emphasis> a3
- <emphasis role="comment">; empty the receiver for the next pass</emphasis>
- ga1 <emphasis role="op">=</emphasis> 0
+<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">;(highest instr number executed last)</emphasis>
+
+arev <emphasis role="opc">reverb</emphasis> ga1, 1.5
+ <emphasis role="opc">outs</emphasis> arev, arev
+
+ga1 <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;clear</emphasis>
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 128 10 1 <emphasis role="comment">;sine</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 128 10 1
-
-<emphasis role="comment">; p4 = frequency (in a pitch-class)</emphasis>
-<emphasis role="comment">; Play Instrument #1 for a tenth of a second, p4=8.00</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 0.1 8.00
-<emphasis role="comment">; Play Instrument #1 for a tenth of a second, p4=8.02</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0.1 7.00 <emphasis role="comment">;short sounds</emphasis>
<emphasis role="stamnt">i</emphasis> 1 1 0.1 8.02
-<emphasis role="comment">; Play Instrument #1 for a tenth of a second, p4=8.04</emphasis>
<emphasis role="stamnt">i</emphasis> 1 2 0.1 8.04
-<emphasis role="comment">; Play Instrument #1 for a tenth of a second, p4=8.06</emphasis>
<emphasis role="stamnt">i</emphasis> 1 3 0.1 8.06
-<emphasis role="comment">; Make sure the reverb remains active.</emphasis>
-<emphasis role="stamnt">i</emphasis> 99 0 6
+<emphasis role="stamnt">i</emphasis> 99 0 6 <emphasis role="comment">;reverb runs for 6 seconds</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/rewindscore.csd.xml b/examples-xml/rewindscore.csd.xml
new file mode 100644
index 0000000..8a364fd
--- /dev/null
+++ b/examples-xml/rewindscore.csd.xml
@@ -0,0 +1,47 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o rewindscore.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kenv <emphasis role="opc">expon</emphasis> 1, p3, 0.0001
+aout <emphasis role="opc">poscil</emphasis> .5<emphasis role="op">*</emphasis>kenv, <emphasis role="opc">cpspch</emphasis>(p4), 1
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 100
+
+<emphasis role="opc">rewindscore</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 1 8.00
+<emphasis role="stamnt">i</emphasis>1 + 1 8.03
+<emphasis role="stamnt">i</emphasis>1 + 1 8.04
+<emphasis role="stamnt">i</emphasis>1 + 1 8.07
+<emphasis role="stamnt">i</emphasis>1 + 1 8.09
+<emphasis role="stamnt">i</emphasis>1 + 1 8.10
+<emphasis role="stamnt">i</emphasis>1 + 1 8.09
+<emphasis role="stamnt">i</emphasis>1 + 1 8.07
+<emphasis role="stamnt">i</emphasis>1 + 1 8.03
+
+<emphasis role="stamnt">i</emphasis>100 9 1 <emphasis role="comment">;rewind from 9th second</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/rezzy.csd.xml b/examples-xml/rezzy.csd.xml
index 166babf..02253b5 100644
--- a/examples-xml/rezzy.csd.xml
+++ b/examples-xml/rezzy.csd.xml
@@ -2,47 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o rezzy.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use a nice sawtooth waveform.</emphasis>
- asig <emphasis role="opc">vco</emphasis> 32000, 220, 1
- <emphasis role="comment">; Vary the filter-cutoff frequency from .2 to 2 KHz.</emphasis>
- kfco <emphasis role="opc">line</emphasis> 200, p3, 2000
+asaw <emphasis role="opc">vco2</emphasis> .3, 110 <emphasis role="comment">;sawtooth</emphasis>
+kcf <emphasis role="opc">line</emphasis> 1760, p3, 220 <emphasis role="comment">;vary cut-off frequency from 220 to 1280 Hz</emphasis>
+kres <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;vary resonance too </emphasis>
+ares <emphasis role="opc">rezzy</emphasis> asaw, kcf, kres
+asig <emphasis role="opc">balance</emphasis> ares, asaw
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; Set the resonance amount.</emphasis>
- kres <emphasis role="opc">init</emphasis> 25
-
- a1 <emphasis role="opc">rezzy</emphasis> asig, kfco, kres
-
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave for the vco opcode.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">i</emphasis> 1 0 4 10
+<emphasis role="stamnt">i</emphasis> 1 + 4 30
+<emphasis role="stamnt">i</emphasis> 1 + 4 120 <emphasis role="comment">;lots of resonance</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/round.csd.xml b/examples-xml/round.csd.xml
index 12911a6..60ab5f9 100644
--- a/examples-xml/round.csd.xml
+++ b/examples-xml/round.csd.xml
@@ -2,32 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">;-o round.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="op">=</emphasis> 1 <emphasis role="op">/</emphasis> p4
- i2 <emphasis role="op">=</emphasis> <emphasis role="opc">round</emphasis>(i1)
- <emphasis role="opc">print</emphasis> i2
-<emphasis role="oblock">endin</emphasis>
+idiv <emphasis role="opc">init</emphasis> 1
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+inumber <emphasis role="op">=</emphasis> 9
+i1 <emphasis role="op">=</emphasis> inumber <emphasis role="op">/</emphasis> idiv
+iro <emphasis role="op">=</emphasis> <emphasis role="opc">round</emphasis>(i1)
+<emphasis role="opc">print</emphasis> inumber, idiv, iro <emphasis role="comment">;print number / idiv = result using round</emphasis>
+idiv <emphasis role="op">=</emphasis> idiv <emphasis role="op">+</emphasis> 1
+<emphasis role="octrl">if</emphasis> (idiv <emphasis role="op">&lt;=</emphasis> 10) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">loop</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1 2 <emphasis role="comment">;0.5 becomes 1, not 0</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 + 1 3
-<emphasis role="stamnt">i</emphasis> 1 + 1 2.1
+<emphasis role="stamnt">i</emphasis> 1 0 0
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/rspline.csd.xml b/examples-xml/rspline.csd.xml
index a36016a..24dba30 100644
--- a/examples-xml/rspline.csd.xml
+++ b/examples-xml/rspline.csd.xml
@@ -2,54 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o rspline.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o jspline.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 -- plain instrument.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- aplain <emphasis role="opc">vco</emphasis> 10000, 220, 2, 0.83
- <emphasis role="opc">outs</emphasis> aplain, aplain
-<emphasis role="oblock">endin</emphasis>
-
-<emphasis role="comment">; Instrument #2 </emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Create a signal modulated the rspline opcode.</emphasis>
- kamp <emphasis role="opc">init</emphasis> 2
- kcpsmin <emphasis role="opc">init</emphasis> 4
- kcpsmax <emphasis role="opc">init</emphasis> 10
- kj <emphasis role="opc">rspline</emphasis> <emphasis role="op">-</emphasis>20,20, kcpsmin, kcpsmax
+krangeMin <emphasis role="opc">init</emphasis> p4
+krangeMax <emphasis role="opc">init</emphasis> p5
+kcpsmin <emphasis role="opc">init</emphasis> 2
+kcpsmax <emphasis role="opc">init</emphasis> 3
- aplain <emphasis role="opc">vco</emphasis> 10000, 220, 2, 0.83
- ajitter <emphasis role="opc">vco</emphasis> 10000, 220<emphasis role="op">+</emphasis>kj, 2, 0.83
+ksp <emphasis role="opc">rspline</emphasis> krangeMin, krangeMax, kcpsmin, kcpsmax
+aout <emphasis role="opc">pluck</emphasis> 1, 200<emphasis role="op">+</emphasis>ksp, 1000, 0, 1
+aout <emphasis role="opc">dcblock</emphasis> aout <emphasis role="comment">;remove DC</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="opc">outs</emphasis> aplain, ajitter
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for 3 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="comment">; Play Instrument #2 for 3 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 3 5
+<emphasis role="stamnt">i</emphasis> 1 0 10 2 5 <emphasis role="comment">;a bit jitter</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 8 10 10 20 <emphasis role="comment">;some more</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 16 10 20 50 <emphasis role="comment">;lots more</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/rtclock.csd.xml b/examples-xml/rtclock.csd.xml
index 55ec0de..d6f869d 100644
--- a/examples-xml/rtclock.csd.xml
+++ b/examples-xml/rtclock.csd.xml
@@ -2,36 +2,54 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-n <emphasis role="comment">;;;no sound</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o rtclock.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
+<emphasis role="comment">;after an example by Iain McCurdy</emphasis>
+
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Instrument #1</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Get the system time.</emphasis>
- k1 <emphasis role="opc">rtclock</emphasis>
- <emphasis role="comment">; Print it once per second.</emphasis>
- <emphasis role="opc">printk</emphasis> 1, k1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">FLcolor</emphasis> 200, 200, 200, 0, 0, 0
+<emphasis role="comment">; LABEL | WIDTH | HEIGHT | X | Y</emphasis>
+<emphasis role="opc">FLpanel</emphasis> "rtclock", 500, 130, 0, 0
+<emphasis role="comment">; ON,OFF,TYPE,WIDTH, HEIGHT, X, Y, OPCODE, INS,START,IDUR</emphasis>
+gkOnOff,ihOnOff <emphasis role="opc">FLbutton</emphasis> "On<emphasis role="op">/</emphasis>Off", 1, 0, 22, 150, 25, 5, 5, 0, 1, 0, 3600
+gkExit,ihExit <emphasis role="opc">FLbutton</emphasis> "exitnow",1, 0, 21, 150, 25, 345, 5, 0, 999, 0, 0.001
+<emphasis role="opc">FLsetColor2</emphasis> 255, 0, 50, ihOnOff <emphasis role="comment">;reddish color</emphasis>
+
+<emphasis role="comment">;VALUE DISPLAY BOXES WIDTH,HEIGHT,X, Y</emphasis>
+gidclock <emphasis role="opc">FLvalue</emphasis> "clock", 100, 25, 200, 60
+<emphasis role="opc">FLsetVal_i</emphasis> 1, ihOnOff
+<emphasis role="opc">FLpanel_end</emphasis>
+<emphasis role="opc">FLrun</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="octrl">if</emphasis> gkOnOff <emphasis role="op">!=</emphasis>0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">CONTINUE</emphasis> <emphasis role="comment">;sense if FLTK on/off switch is not off (in which case skip the next line) </emphasis>
+<emphasis role="opc">turnoff</emphasis> <emphasis role="comment">;turn this instr. off now</emphasis>
+<emphasis role="olabel">CONTINUE</emphasis><emphasis role="op">:</emphasis>
+ktime <emphasis role="opc">rtclock</emphasis> <emphasis role="comment">;clock continues to run even </emphasis>
+<emphasis role="opc">FLprintk2</emphasis> ktime, gidclock <emphasis role="comment">;after the on/off button was used to stop</emphasis>
+
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 999
+
+<emphasis role="opc">exitnow</emphasis> <emphasis role="comment">;exit Csound as fast as possible</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">f</emphasis> 0 60 <emphasis role="comment">;runs 60 seconds</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/s.csd.xml b/examples-xml/s.csd.xml
new file mode 100644
index 0000000..a270f03
--- /dev/null
+++ b/examples-xml/s.csd.xml
@@ -0,0 +1,42 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o s.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aenv <emphasis role="opc">expseg</emphasis> .01, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0.01
+asig <emphasis role="opc">poscil3</emphasis> .8<emphasis role="op">*</emphasis>aenv, p4, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1<emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">s</emphasis> <emphasis role="comment">;first section</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 110
+<emphasis role="stamnt">i</emphasis> 1 3 2 220
+<emphasis role="stamnt">i</emphasis> 1 6 2 440
+<emphasis role="stamnt">i</emphasis> 1 9 2 880
+
+<emphasis role="stamnt">s</emphasis> <emphasis role="comment">;second section</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 880
+<emphasis role="stamnt">i</emphasis> 1 3 2 440
+<emphasis role="stamnt">i</emphasis> 1 6 2 220
+<emphasis role="stamnt">i</emphasis> 1 9 2 110
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/samphold.csd.xml b/examples-xml/samphold.csd.xml
new file mode 100644
index 0000000..02eebbb
--- /dev/null
+++ b/examples-xml/samphold.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o samphold.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kx <emphasis role="opc">line</emphasis> <emphasis role="op">-</emphasis>1, p3, 1 <emphasis role="comment">; between -1 and +1 </emphasis>
+ktrig <emphasis role="opc">metro</emphasis> 1 <emphasis role="comment">; triggers 1 time per second </emphasis>
+kval <emphasis role="opc">samphold</emphasis> kx, ktrig <emphasis role="comment">; change value whenever ktrig = 1 </emphasis>
+ <emphasis role="opc">printk2</emphasis> kval <emphasis role="comment">; will print every time kval changes </emphasis>
+asig <emphasis role="opc">diskin2</emphasis> "flute.aiff", 1<emphasis role="op">+</emphasis>kval, 0, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+
+<emphasis role="stamnt">i</emphasis> 1 0 11
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sandpaper.csd.xml b/examples-xml/sandpaper.csd.xml
index f62ab09..468a099 100644
--- a/examples-xml/sandpaper.csd.xml
+++ b/examples-xml/sandpaper.csd.xml
@@ -2,37 +2,33 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sandpaper.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">;orchestra ---------------</emphasis>
-
- <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
- <emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
- <emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
- <emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="oblock">instr</emphasis> 01 <emphasis role="comment">;an example of sandpaper blocks</emphasis>
- a1 <emphasis role="opc">line</emphasis> 2, p3, 2 <emphasis role="comment">;preset amplitude increase</emphasis>
- a2 <emphasis role="opc">sandpaper</emphasis> p4, 0.01 <emphasis role="comment">;sandpaper needs a little amp help at these settings</emphasis>
- a3 <emphasis role="opc">product</emphasis> a1, a2 <emphasis role="comment">;increase amplitude</emphasis>
- <emphasis role="opc">out</emphasis> a3
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="oblock">instr</emphasis> 1
+idmp <emphasis role="op">=</emphasis> p4
+a1 <emphasis role="opc">line</emphasis> 2, p3, 2 <emphasis role="comment">;preset amplitude increase</emphasis>
+a2 <emphasis role="opc">sandpaper</emphasis> 1, 0.01, 128, idmp <emphasis role="comment">;sandpaper needs a little amp help at these settings</emphasis>
+asig <emphasis role="opc">product</emphasis> a1, a2 <emphasis role="comment">;increase amplitude</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 1 0.5
+<emphasis role="stamnt">i</emphasis>1 + 1 0.95
-<emphasis role="comment">;score -------------------</emphasis>
-
- <emphasis role="stamnt">i</emphasis>1 0 1 26000
- <emphasis role="stamnt">e</emphasis>
-
-
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/scalearray.csd.xml b/examples-xml/scalearray.csd.xml
new file mode 100644
index 0000000..4252b2d
--- /dev/null
+++ b/examples-xml/scalearray.csd.xml
@@ -0,0 +1,40 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by joachim heintz</emphasis>
+
+ <emphasis role="ohdr">seed</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">;create an array with 10 elements</emphasis>
+kArr[] <emphasis role="opc">init</emphasis> 10
+<emphasis role="comment">;fill in random numbers and print them out</emphasis>
+ <emphasis role="opc">printks</emphasis> "kArr <emphasis role="opc">in</emphasis> maximum range 0..100<emphasis role="op">:</emphasis>\n", 0
+kIndx <emphasis role="op">=</emphasis> 0
+ until kIndx <emphasis role="op">==</emphasis> 10 do
+kNum <emphasis role="opc">random</emphasis> 0, 100
+kArr[kIndx] <emphasis role="op">=</emphasis> kNum
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>10f\n", kIndx<emphasis role="op">+</emphasis>1, kIndx, kNum
+kIndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+<emphasis role="comment">;scale numbers 0...1 and print them out again</emphasis>
+ <emphasis role="opc">scalearray</emphasis> kArr, 0, 1
+kIndx <emphasis role="op">=</emphasis> 0
+ <emphasis role="opc">printks</emphasis> "kArr <emphasis role="opc">in</emphasis> range 0..1\n", 0
+ until kIndx <emphasis role="op">==</emphasis> 10 do
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>10f\n", kIndx<emphasis role="op">+</emphasis>1, kIndx, kArr[kIndx]
+kIndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+ <emphasis role="opc">turnoff</emphasis>
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 0.1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/scans-2.csd.xml b/examples-xml/scans-2.csd.xml
new file mode 100644
index 0000000..c31130b
--- /dev/null
+++ b/examples-xml/scans-2.csd.xml
@@ -0,0 +1,64 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o scans-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">strset</emphasis> 1, "mary.wav"
+<emphasis role="ohdr">strset</emphasis> 2, "fox.wav"
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;show 2 different trajectories, with samples as excitation signal</emphasis>
+
+ismp <emphasis role="op">=</emphasis> p6
+iamp <emphasis role="op">=</emphasis> p7
+itrj <emphasis role="op">=</emphasis> p8
+aout <emphasis role="opc">soundin</emphasis> p6 <emphasis role="comment">;choose wave file</emphasis>
+ <emphasis role="opc">scanu</emphasis> ismp, .01, 6, 2, 33, 44, 5, 2, .01, .05, <emphasis role="op">-</emphasis>.05, .1, .5, 0, 0, aout, 1, 0
+asig <emphasis role="opc">scans</emphasis> iamp, <emphasis role="opc">cpspch</emphasis>(p5), itrj , 0
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 128 7 0 64 1 64 0 <emphasis role="comment">; Initial condition</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 128 -7 1 128 0.3 <emphasis role="comment">; Masses</emphasis>
+<emphasis role="stamnt">f</emphasis>33 0 16384 -23 "cylinder-128,8" <emphasis role="comment">; Spring matrices</emphasis>
+<emphasis role="stamnt">f</emphasis>44 0 128 -7 2 4 0 124 2 <emphasis role="comment">; Centering force</emphasis>
+<emphasis role="stamnt">f</emphasis>5 0 128 -7 1 128 0 <emphasis role="comment">; Damping</emphasis>
+<emphasis role="stamnt">f</emphasis>6 0 128 -7 -.0 128 0 <emphasis role="comment">; Initial velocity</emphasis>
+<emphasis role="stamnt">f</emphasis>7 0 128 -5 .001 128 128 <emphasis role="comment">; Trajectories</emphasis>
+<emphasis role="stamnt">f</emphasis>77 0 128 -23 "spiral-8,16,128,2,1over2"
+
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>2 0 5 63 6.00 1 .9 7 <emphasis role="comment">;"mary.wav" &amp;</emphasis>
+<emphasis role="stamnt">i</emphasis>2 6 5 60 7.00 <emphasis role="comment">;trajectory table 7</emphasis>
+<emphasis role="stamnt">i</emphasis>2 10 5 60 8.00
+
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>2 0 5 63 6.00 2 .08 7 <emphasis role="comment">;"fox.wav", at much lower volume</emphasis>
+<emphasis role="stamnt">i</emphasis>2 6 5 60 7.00
+<emphasis role="stamnt">i</emphasis>2 10 5 60 8.00
+
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>2 0 5 63 6.00 1 .9 77 <emphasis role="comment">;"mary.wav" &amp;</emphasis>
+<emphasis role="stamnt">i</emphasis>2 6 5 60 7.00 <emphasis role="comment">;trajectory table 77</emphasis>
+<emphasis role="stamnt">i</emphasis>2 10 5 60 8.00
+
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>2 0 5 63 6.00 2 .08 77 <emphasis role="comment">;"fox.wav", at much lower volume</emphasis>
+<emphasis role="stamnt">i</emphasis>2 6 5 60 7.00
+<emphasis role="stamnt">i</emphasis>2 10 5 60 8.00
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/scantable.csd.xml b/examples-xml/scantable.csd.xml
index 36fdcff..105d119 100644
--- a/examples-xml/scantable.csd.xml
+++ b/examples-xml/scantable.csd.xml
@@ -2,55 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o scantable.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="comment">; Table #1 - initial position</emphasis>
-git1 <emphasis role="ohdr">ftgen</emphasis> 1, 0, 128, 7, 0, 64, 1, 64, 0
-<emphasis role="comment">; Table #2 - masses</emphasis>
-git2 <emphasis role="ohdr">ftgen</emphasis> 2, 0, 128, <emphasis role="op">-</emphasis>7, 1, 128, 1
-<emphasis role="comment">; Table #3 - stiffness</emphasis>
-git3 <emphasis role="ohdr">ftgen</emphasis> 3, 0, 128, <emphasis role="op">-</emphasis>7, 0, 64, 100, 64, 0
-<emphasis role="comment">; Table #4 - damping</emphasis>
-git4 <emphasis role="ohdr">ftgen</emphasis> 4, 0, 128, <emphasis role="op">-</emphasis>7, 1, 128, 1
-<emphasis role="comment">; Table #5 - initial velocity</emphasis>
-git5 <emphasis role="ohdr">ftgen</emphasis> 5, 0, 128, <emphasis role="op">-</emphasis>7, 0, 128, 0
-
-<emphasis role="comment">; Instrument #1.</emphasis>
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gi1 <emphasis role="ohdr">ftgen</emphasis> 1, 0, 128, 7, 0, 64, 1, 64, 0 <emphasis role="comment">; initial position</emphasis>
+gi2 <emphasis role="ohdr">ftgen</emphasis> 2, 0, 128, <emphasis role="op">-</emphasis>7, 1, 128, 1 <emphasis role="comment">; masses</emphasis>
+gi3 <emphasis role="ohdr">ftgen</emphasis> 3, 0, 128, <emphasis role="op">-</emphasis>7, 0, 64, 100, 64, 0 <emphasis role="comment">; stiffness</emphasis>
+gi4 <emphasis role="ohdr">ftgen</emphasis> 4, 0, 128, <emphasis role="op">-</emphasis>7, 1, 128, 1 <emphasis role="comment">; damping</emphasis>
+gi5 <emphasis role="ohdr">ftgen</emphasis> 5, 0, 128, <emphasis role="op">-</emphasis>7, 0, 128, 0.5 <emphasis role="comment">; initial velocity</emphasis>
+
+
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="opc">init</emphasis> 20000
- kpch <emphasis role="opc">init</emphasis> 220
- ipos <emphasis role="op">=</emphasis> 1
- imass <emphasis role="op">=</emphasis> 2
- istiff <emphasis role="op">=</emphasis> 3
- idamp <emphasis role="op">=</emphasis> 4
- ivel <emphasis role="op">=</emphasis> 5
-
- a1 <emphasis role="opc">scantable</emphasis> kamp, kpch, ipos, imass, istiff, idamp, ivel
- a2 <emphasis role="opc">dcblock</emphasis> a1
-
- <emphasis role="opc">out</emphasis> a2
-<emphasis role="oblock">endin</emphasis>
+iamp <emphasis role="opc">ampmidi</emphasis> .5
+ipch <emphasis role="opc">cpsmidi</emphasis>
+kenv <emphasis role="opc">madsr</emphasis> .1, .1, .8, .3
+asig <emphasis role="opc">scantable</emphasis> iamp, ipch, 1, 2, 3, 4, 5
+asig <emphasis role="opc">dcblock</emphasis> asig
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>kenv, asig<emphasis role="op">*</emphasis>kenv
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for ten seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; play for 60 seconds</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/schedwhen.csd.xml b/examples-xml/schedwhen.csd.xml
index 153f0d6..439f458 100644
--- a/examples-xml/schedwhen.csd.xml
+++ b/examples-xml/schedwhen.csd.xml
@@ -2,57 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o schedwhen.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - oscillator with a high note.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use the fourth p-field as the trigger.</emphasis>
- ktrigger <emphasis role="op">=</emphasis> p4
- kinsnum <emphasis role="op">=</emphasis> 2
- kwhen <emphasis role="op">=</emphasis> 0
- kdur <emphasis role="op">=</emphasis> p3
-
- <emphasis role="comment">; Play Instrument #2 at the same time, if the trigger is set.</emphasis>
- <emphasis role="opc">schedwhen</emphasis> ktrigger, kinsnum, kwhen, kdur
-
- <emphasis role="comment">; Play a high note.</emphasis>
- a1 <emphasis role="opc">oscils</emphasis> 10000, 880, 1
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #2 - oscillator with a low note.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Play a low note.</emphasis>
- a1 <emphasis role="opc">oscils</emphasis> 10000, 220, 1
- <emphasis role="opc">out</emphasis> a1
+kmtr <emphasis role="opc">metro</emphasis> 100 <emphasis role="comment">;produce 100 triggers per second</emphasis>
+ <emphasis role="opc">schedwhen</emphasis> kmtr, 2, 1, .3 <emphasis role="comment">;but schedwhen plays instr. 2 only once </emphasis>
+
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2
+aenv <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.1, 1, p3<emphasis role="op">*</emphasis>.3, 1, p3<emphasis role="op">*</emphasis>.6, 0 <emphasis role="comment">;envelope</emphasis>
+a1 <emphasis role="opc">poscil</emphasis> .3<emphasis role="op">*</emphasis>aenv, 1000, 1
+ <emphasis role="opc">outs</emphasis> a1, a1
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine </emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; p4 = trigger for Instrument #2 (when p4 > 0).</emphasis>
-<emphasis role="comment">; Play Instrument #1 for half a second, trigger Instrument #2.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 0.5 1
-<emphasis role="comment">; Play Instrument #1 for half a second, no trigger.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 1 0.5 0
+<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">i</emphasis> 1 3 5
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/scoreline.csd.xml b/examples-xml/scoreline.csd.xml
new file mode 100644
index 0000000..324cbb1
--- /dev/null
+++ b/examples-xml/scoreline.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o scoreline.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ktrig <emphasis role="opc">metro</emphasis> 3 <emphasis role="comment">;trigger 3 times a second</emphasis>
+<emphasis role="opc">scoreline</emphasis> {{ <emphasis role="comment">;so it sounds like an echo</emphasis>
+ <emphasis role="opc">i</emphasis> 2 0 3 "flute.aiff"
+ <emphasis role="opc">i</emphasis> 2 1 3 "beats.wav"
+ }}, ktrig
+ktrig <emphasis role="op">=</emphasis> 0
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+asig <emphasis role="opc">soundin</emphasis> p4
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>.3, asig<emphasis role="op">*</emphasis>.3
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 2 <emphasis role="comment">;play for 2 seconds, so the samples are played 6 times </emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/scoreline_i.csd.xml b/examples-xml/scoreline_i.csd.xml
new file mode 100644
index 0000000..e7e18c4
--- /dev/null
+++ b/examples-xml/scoreline_i.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac --old-parser <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o scoreline.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="opc">scoreline_i</emphasis> {{
+ <emphasis role="opc">i</emphasis> 2 0 3 "flute.aiff"
+ <emphasis role="opc">i</emphasis> 2 1 3 "beats.wav"
+ }}
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+asig <emphasis role="opc">soundin</emphasis> p4
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>.8, asig<emphasis role="op">*</emphasis>.8
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/seed.csd.xml b/examples-xml/seed.csd.xml
index 14aa1b0..14d4d67 100644
--- a/examples-xml/seed.csd.xml
+++ b/examples-xml/seed.csd.xml
@@ -2,40 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o seed.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;same values every time</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a random number between -1 and 1.</emphasis>
- <emphasis role="comment">; krange = 1</emphasis>
-<emphasis role="ohdr">seed</emphasis> 10 <emphasis role="comment">; same seed values produces same result</emphasis>
- i1 <emphasis role="opc">trirand</emphasis> 1
+<emphasis role="ohdr">seed</emphasis> 10
+krnd <emphasis role="opc">randomh</emphasis> 100, 200, 5
+ <emphasis role="opc">printk</emphasis> .5, krnd <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>krnd, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="opc">print</emphasis> i1
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;different values every time - value is derived from system clock</emphasis>
+<emphasis role="ohdr">seed</emphasis> 0 <emphasis role="comment">; seed from system clock</emphasis>
+krnd <emphasis role="opc">randomh</emphasis> 100, 200, 5
+ <emphasis role="opc">printk</emphasis> .5, krnd <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>krnd, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">i</emphasis> 1 + 1
-<emphasis role="stamnt">i</emphasis> 1 + 1
+<emphasis role="stamnt">i</emphasis> 2 2 1
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sekere.csd.xml b/examples-xml/sekere.csd.xml
index 4228888..e296122 100644
--- a/examples-xml/sekere.csd.xml
+++ b/examples-xml/sekere.csd.xml
@@ -2,35 +2,31 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sekere.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">;orchestra ---------------</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
- <emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
- <emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
- <emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="oblock">instr</emphasis> 01 <emphasis role="comment">;an example of a sekere</emphasis>
-a1 <emphasis role="opc">sekere</emphasis> p4, 0.01
- <emphasis role="opc">out</emphasis> a1
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+idamp <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;vary damping amount</emphasis>
+asig <emphasis role="opc">sekere</emphasis> 1, 0.01, 64, idamp
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">;score -------------------</emphasis>
-
- <emphasis role="stamnt">i</emphasis>1 0 1 26000
- <emphasis role="stamnt">e</emphasis>
-
-
+<emphasis role="stamnt">i</emphasis>1 0 1 .1
+<emphasis role="stamnt">i</emphasis>1 + 1 .9
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/semitone.csd.xml b/examples-xml/semitone.csd.xml
index ff42638..a3dcc88 100644
--- a/examples-xml/semitone.csd.xml
+++ b/examples-xml/semitone.csd.xml
@@ -2,46 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o semitone.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; The root note is A above middle-C (440 Hz)</emphasis>
- iroot <emphasis role="op">=</emphasis> 440
- <emphasis role="comment">; Raise the root note by three semitones to C.</emphasis>
- isemitone <emphasis role="op">=</emphasis> 3
+iroot <emphasis role="op">=</emphasis> 440 <emphasis role="comment">; root note is A above middle-C (440 Hz)</emphasis>
+ksem <emphasis role="opc">lfo</emphasis> 12, .5, 5 <emphasis role="comment">; generate sawtooth, go from 5 octaves higher to root</emphasis>
+ksm <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(ksem) <emphasis role="comment">; produce only whole numbers</emphasis>
+kfactor <emphasis role="op">=</emphasis> <emphasis role="opc">semitone</emphasis>(ksm) <emphasis role="comment">; for semitones</emphasis>
+knew <emphasis role="op">=</emphasis> iroot <emphasis role="op">*</emphasis> kfactor
+<emphasis role="opc">printk2</emphasis> knew
+<emphasis role="opc">printk2</emphasis> kfactor
+asig <emphasis role="opc">pluck</emphasis> 1, knew, 1000, 0, 1
+asig <emphasis role="opc">dcblock</emphasis> asig <emphasis role="comment">;remove DC</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; Calculate the new note.</emphasis>
- ifactor <emphasis role="op">=</emphasis> <emphasis role="opc">semitone</emphasis>(isemitone)
- inew <emphasis role="op">=</emphasis> iroot <emphasis role="op">*</emphasis> ifactor
-
- <emphasis role="comment">; Print out all of the values.</emphasis>
- <emphasis role="opc">print</emphasis> iroot
- <emphasis role="opc">print</emphasis> ifactor
- <emphasis role="opc">print</emphasis> inew
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 5
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/seqtime2.csd.xml b/examples-xml/seqtime2.csd.xml
new file mode 100644
index 0000000..bda2442
--- /dev/null
+++ b/examples-xml/seqtime2.csd.xml
@@ -0,0 +1,54 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o seqtime2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gitabMap2 <emphasis role="ohdr">ftgen</emphasis> 57,0,512,<emphasis role="op">-</emphasis>2, 1,1<emphasis role="op">/</emphasis>4,1<emphasis role="op">/</emphasis>4,1<emphasis role="op">/</emphasis>8,1<emphasis role="op">/</emphasis>8,1<emphasis role="op">/</emphasis>8,1<emphasis role="op">/</emphasis>8,1<emphasis role="op">/</emphasis>4,1<emphasis role="op">/</emphasis>4,.5,1<emphasis role="op">/</emphasis>4,1<emphasis role="op">/</emphasis>4,1<emphasis role="op">/</emphasis>16,1<emphasis role="op">/</emphasis>16,1<emphasis role="op">/</emphasis>16,1<emphasis role="op">/</emphasis>16,1<emphasis role="op">/</emphasis>16,1<emphasis role="op">/</emphasis>16,1<emphasis role="op">/</emphasis>16,1<emphasis role="op">/</emphasis>16
+gisine <emphasis role="ohdr">ftgen</emphasis> 1,0,512,10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ktrigin <emphasis role="opc">metro</emphasis> .333333333333
+ktrig2 <emphasis role="opc">metro</emphasis> 1
+ <emphasis role="opc">schedkwhen</emphasis> ktrig2, 0,0, 2, 0, .1 <emphasis role="comment">; just to set the metronome!</emphasis>
+kspeed <emphasis role="opc">init</emphasis> 1
+<emphasis role="comment">; ktime_unit, kstart, kloop, initndx, kfn_times </emphasis>
+ktrig <emphasis role="opc">seqtime2</emphasis> ktrigin, kspeed, 0, 20, 2, gitabMap2
+<emphasis role="comment">;ktrig seqtime kspeed, 0, 20, 0, gitabMap2 ; try with seqtime too... </emphasis>
+ <emphasis role="opc">schedkwhen</emphasis> ktrig, 0, 0, 3, 0, ktrig <emphasis role="comment">; the duration is got from seqtime2 output!</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+a1 <emphasis role="opc">line</emphasis> 1,p3,0
+aout <emphasis role="opc">oscili</emphasis> 0.7<emphasis role="op">*</emphasis>a1,500,gisine
+ <emphasis role="opc">outs1</emphasis> aout
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 3
+
+a1 <emphasis role="opc">line</emphasis> 1,p3,0
+aout <emphasis role="opc">oscili</emphasis> 0.7<emphasis role="op">*</emphasis>a1,1000,gisine
+ <emphasis role="opc">outs2</emphasis> aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 20
+
+<emphasis role="comment">;f0 3600</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/serialBegin.csd.xml b/examples-xml/serialBegin.csd.xml
new file mode 100644
index 0000000..bd1883f
--- /dev/null
+++ b/examples-xml/serialBegin.csd.xml
@@ -0,0 +1,42 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n <emphasis role="comment">;;;no output</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o serialBegin.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 500 <emphasis role="comment">; the default krate can be too fast for the arduino to handle</emphasis>
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+iPort <emphasis role="opc">serialBegin</emphasis> "<emphasis role="op">/</emphasis>dev<emphasis role="op">/</emphasis>cu.usbmodemfa131", 9600 <emphasis role="comment">;connect to the arduino with baudrate = 9600</emphasis>
+
+kGain <emphasis role="opc">init</emphasis> 16 <emphasis role="comment">;read our knob value</emphasis>
+kVal <emphasis role="opc">serialRead</emphasis> iPort
+<emphasis role="octrl">if</emphasis> (kVal <emphasis role="op">!=</emphasis> <emphasis role="op">-</emphasis>1) then
+ kGain <emphasis role="op">=</emphasis> kVal<emphasis role="op">/</emphasis>128
+<emphasis role="octrl">endif</emphasis>
+
+aSig <emphasis role="opc">in</emphasis> <emphasis role="comment">;get our audio input and get its rms</emphasis>
+kRms <emphasis role="opc">rms</emphasis> aSig<emphasis role="op">*</emphasis>kGain
+
+kRms <emphasis role="op">=</emphasis> kRms<emphasis role="op">*</emphasis>kRms<emphasis role="op">*</emphasis>255 <emphasis role="comment">;scale the rms to a good value for the LED and send it out</emphasis>
+<emphasis role="opc">serialWrite</emphasis> iPort, (kRms <emphasis role="op">&lt;</emphasis> 255 <emphasis role="op">?</emphasis> kRms <emphasis role="op">:</emphasis> 255) <emphasis role="comment">;must be in range: 0-255</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 1024 10 1 1 1 1 1 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 200
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/serialRead.csd.xml b/examples-xml/serialRead.csd.xml
new file mode 100644
index 0000000..ecb030f
--- /dev/null
+++ b/examples-xml/serialRead.csd.xml
@@ -0,0 +1,42 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n <emphasis role="comment">;;;no output</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o serialRead.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 500 <emphasis role="comment">; the default krate can be too fast for the arduino to handle</emphasis>
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+iPort <emphasis role="opc">serialBegin</emphasis> "<emphasis role="op">/</emphasis>dev<emphasis role="op">/</emphasis>cu.usbmodemfa131", 9600 <emphasis role="comment">;connect to the arduino with baudrate = 9600</emphasis>
+
+kGain <emphasis role="opc">init</emphasis> 16 <emphasis role="comment">;read our knob value</emphasis>
+kVal <emphasis role="opc">serialRead</emphasis> iPort
+<emphasis role="octrl">if</emphasis> (kVal <emphasis role="op">!=</emphasis> <emphasis role="op">-</emphasis>1) then
+ kGain <emphasis role="op">=</emphasis> kVal<emphasis role="op">/</emphasis>128
+<emphasis role="octrl">endif</emphasis>
+
+aSig <emphasis role="opc">in</emphasis> <emphasis role="comment">;get our audio input and get its rms</emphasis>
+kRms <emphasis role="opc">rms</emphasis> aSig<emphasis role="op">*</emphasis>kGain
+
+kRms <emphasis role="op">=</emphasis> kRms<emphasis role="op">*</emphasis>kRms<emphasis role="op">*</emphasis>255 <emphasis role="comment">;scale the rms to a good value for the LED and send it out</emphasis>
+<emphasis role="opc">serialWrite</emphasis> iPort, (kRms <emphasis role="op">&lt;</emphasis> 255 <emphasis role="op">?</emphasis> kRms <emphasis role="op">:</emphasis> 255) <emphasis role="comment">;must be in range: 0-255</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 1024 10 1 1 1 1 1 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 200
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/serialWrite.csd.xml b/examples-xml/serialWrite.csd.xml
new file mode 100644
index 0000000..3daa4e9
--- /dev/null
+++ b/examples-xml/serialWrite.csd.xml
@@ -0,0 +1,42 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n <emphasis role="comment">;;;no output</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o serialWrite.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 500 <emphasis role="comment">; the default krate can be too fast for the arduino to handle</emphasis>
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+iPort <emphasis role="opc">serialBegin</emphasis> "<emphasis role="op">/</emphasis>dev<emphasis role="op">/</emphasis>cu.usbmodemfa131", 9600 <emphasis role="comment">;connect to the arduino with baudrate = 9600</emphasis>
+
+kGain <emphasis role="opc">init</emphasis> 16 <emphasis role="comment">;read our knob value</emphasis>
+kVal <emphasis role="opc">serialRead</emphasis> iPort
+<emphasis role="octrl">if</emphasis> (kVal <emphasis role="op">!=</emphasis> <emphasis role="op">-</emphasis>1) then
+ kGain <emphasis role="op">=</emphasis> kVal<emphasis role="op">/</emphasis>128
+<emphasis role="octrl">endif</emphasis>
+
+aSig <emphasis role="opc">in</emphasis> <emphasis role="comment">;get our audio input and get its rms</emphasis>
+kRms <emphasis role="opc">rms</emphasis> aSig<emphasis role="op">*</emphasis>kGain
+
+kRms <emphasis role="op">=</emphasis> kRms<emphasis role="op">*</emphasis>kRms<emphasis role="op">*</emphasis>255 <emphasis role="comment">;scale the rms to a good value for the LED and send it out</emphasis>
+<emphasis role="opc">serialWrite</emphasis> iPort, (kRms <emphasis role="op">&lt;</emphasis> 255 <emphasis role="op">?</emphasis> kRms <emphasis role="op">:</emphasis> 255) <emphasis role="comment">;must be in range: 0-255</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 1024 10 1 1 1 1 1 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 200
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/setctrl.csd.xml b/examples-xml/setctrl.csd.xml
index bec3afe..986291c 100644
--- a/examples-xml/setctrl.csd.xml
+++ b/examples-xml/setctrl.csd.xml
@@ -18,12 +18,12 @@
<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; Display the label "Volume" on Slider #1.</emphasis>
- <emphasis role="opc">setctrl</emphasis> 1, "Volume", 4
+ setctrl 1, "Volume", 4
<emphasis role="comment">; Set Slider #1's initial value to 20.</emphasis>
- <emphasis role="opc">setctrl</emphasis> 1, 20, 1
+ setctrl 1, 20, 1
<emphasis role="comment">; Capture and display the values for Slider #1.</emphasis>
- k1 <emphasis role="opc">control</emphasis> 1
+ k1 control 1
<emphasis role="opc">printk2</emphasis> k1
<emphasis role="comment">; Play a simple oscillator.</emphasis>
diff --git a/examples-xml/setscorepos.csd.xml b/examples-xml/setscorepos.csd.xml
index 90fabb6..f9b270e 100644
--- a/examples-xml/setscorepos.csd.xml
+++ b/examples-xml/setscorepos.csd.xml
@@ -2,89 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o setscorepos.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">;---------------------------------------------------------</emphasis>
-<emphasis role="comment">; TBVCF Test</emphasis>
-<emphasis role="comment">; Coded by Hans Mikelson December, 2000</emphasis>
-<emphasis role="comment">;---------------------------------------------------------</emphasis>
- <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100 <emphasis role="comment">; Sample rate</emphasis>
- <emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10 <emphasis role="comment">; Samples/Kontrol period</emphasis>
- <emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2 <emphasis role="comment">; Normal stereo</emphasis>
- <emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8192, 10, 1
<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">;setscorepos 0 ; uncomment to hear from beginning</emphasis>
-<emphasis role="opc">setscorepos</emphasis> 8 <emphasis role="comment">; start at 8 seconds, comment this </emphasis>
- <emphasis role="comment">; when uncommenting setscorepos 0</emphasis>
+asig <emphasis role="opc">poscil</emphasis> 0.5, p4, giSine <emphasis role="comment">;play something</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
- <emphasis role="oblock">instr</emphasis> 10
-
- idur <emphasis role="op">=</emphasis> p3 <emphasis role="comment">; Duration</emphasis>
- iamp <emphasis role="op">=</emphasis> p4 <emphasis role="comment">; Amplitude</emphasis>
- ifqc <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p5) <emphasis role="comment">; Pitch to frequency</emphasis>
- ipanl <emphasis role="op">=</emphasis> <emphasis role="opc">sqrt</emphasis>(p6) <emphasis role="comment">; Pan left</emphasis>
- ipanr <emphasis role="op">=</emphasis> <emphasis role="opc">sqrt</emphasis>(1<emphasis role="op">-</emphasis>p6) <emphasis role="comment">; Pan right</emphasis>
- iq <emphasis role="op">=</emphasis> p7
- idist <emphasis role="op">=</emphasis> p8
- iasym <emphasis role="op">=</emphasis> p9
-
-kdclck <emphasis role="opc">linseg</emphasis> 0, .002, 1, idur<emphasis role="op">-</emphasis>.004, 1, .002, 0 <emphasis role="comment">; Declick envelope</emphasis>
-kfco <emphasis role="opc">expseg</emphasis> 10000, idur, 1000 <emphasis role="comment">; Frequency envelope</emphasis>
-ax <emphasis role="opc">vco</emphasis> 1, ifqc, 2, 0.5 <emphasis role="comment">; Square wave</emphasis>
-ay <emphasis role="opc">tbvcf</emphasis> ax, kfco, iq, idist, iasym <emphasis role="comment">; TB-VCF</emphasis>
-ay <emphasis role="opc">buthp</emphasis> ay<emphasis role="op">/</emphasis>1, 100 <emphasis role="comment">; Hi-pass</emphasis>
-
- <emphasis role="opc">outs</emphasis> ay<emphasis role="op">*</emphasis>iamp<emphasis role="op">*</emphasis>ipanl<emphasis role="op">*</emphasis>kdclck, ay<emphasis role="op">*</emphasis>iamp<emphasis role="op">*</emphasis>ipanr<emphasis role="op">*</emphasis>kdclck
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 11
+<emphasis role="opc">setscorepos</emphasis> 8.5
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>1 0 65536 10 1
-<emphasis role="stamnt">i</emphasis>1 0 1
-<emphasis role="comment">; TeeBee Test</emphasis>
-<emphasis role="comment">; Sta Dur Amp Pitch Pan Q Dist1 Asym</emphasis>
-<emphasis role="stamnt">i</emphasis>10 0 0.2 0.5 7.00 .5 0.0 2.0 0.0
-<emphasis role="stamnt">i</emphasis>10 0.3 0.2 0.5 7.00 .5 0.8 2.0 0.0
-<emphasis role="stamnt">i</emphasis>10 0.6 0.2 0.5 7.00 .5 1.6 2.0 0.0
-<emphasis role="stamnt">i</emphasis>10 0.9 0.2 0.5 7.00 .5 2.4 2.0 0.0
-<emphasis role="stamnt">i</emphasis>10 1.2 0.2 0.5 7.00 .5 3.2 2.0 0.0
-<emphasis role="comment">;i10 1.5 0.2 0.5 7.00 .5 4.0 2.0 0.0</emphasis>
-<emphasis role="stamnt">i</emphasis>10 1.8 0.2 0.5 7.00 .5 0.0 2.0 0.25
-<emphasis role="stamnt">i</emphasis>10 2.1 0.2 0.5 7.00 .5 0.8 2.0 0.25
-<emphasis role="stamnt">i</emphasis>10 2.4 0.2 0.5 7.00 .5 1.6 2.0 0.25
-<emphasis role="stamnt">i</emphasis>10 2.7 0.2 0.5 7.00 .5 2.4 2.0 0.25
-<emphasis role="stamnt">i</emphasis>10 3.0 0.2 0.5 7.00 .5 3.2 2.0 0.25
-<emphasis role="stamnt">i</emphasis>10 3.3 0.2 0.5 7.00 .5 4.0 2.0 0.25
-<emphasis role="stamnt">i</emphasis>10 3.6 0.2 0.5 7.00 .5 0.0 2.0 0.5
-<emphasis role="stamnt">i</emphasis>10 3.9 0.2 0.5 7.00 .5 0.8 2.0 0.5
-<emphasis role="stamnt">i</emphasis>10 4.2 0.2 0.5 7.00 .5 1.6 2.0 0.5
-<emphasis role="stamnt">i</emphasis>10 4.5 0.2 0.5 7.00 .5 2.4 2.0 0.5
-<emphasis role="stamnt">i</emphasis>10 4.8 0.2 0.5 7.00 .5 3.2 2.0 0.5
-<emphasis role="stamnt">i</emphasis>10 5.1 0.2 0.5 7.00 .5 4.0 2.0 0.5
-<emphasis role="stamnt">i</emphasis>10 5.4 0.2 0.5 7.00 .5 0.0 2.0 0.75
-<emphasis role="stamnt">i</emphasis>10 5.7 0.2 0.5 7.00 .5 0.8 2.0 0.75
-<emphasis role="stamnt">i</emphasis>10 6.0 0.2 0.5 7.00 .5 1.6 2.0 0.75
-<emphasis role="stamnt">i</emphasis>10 6.3 0.2 0.5 7.00 .5 2.4 2.0 0.75
-<emphasis role="stamnt">i</emphasis>10 6.6 0.2 0.5 7.00 .5 3.2 2.0 0.75
-<emphasis role="stamnt">i</emphasis>10 6.9 0.2 0.5 7.00 .5 4.0 2.0 0.75
-<emphasis role="stamnt">i</emphasis>10 7.2 0.2 0.5 7.00 .5 0.0 2.0 1.0
-<emphasis role="stamnt">i</emphasis>10 7.5 0.2 0.5 7.00 .5 0.8 2.0 1.0
-<emphasis role="stamnt">i</emphasis>10 7.8 0.2 0.5 7.00 .5 1.6 2.0 1.0
-<emphasis role="stamnt">i</emphasis>10 8.1 0.2 0.5 7.00 .5 2.4 2.0 1.0
-<emphasis role="stamnt">i</emphasis>10 8.4 0.2 0.5 7.00 .5 3.2 2.0 1.0
-<emphasis role="stamnt">i</emphasis>10 8.7 0.2 0.5 7.00 .5 4.0 2.0 1.0
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis>1 0 2 220 <emphasis role="comment">;this one will be played</emphasis>
+<emphasis role="stamnt">i</emphasis>11 2.5 1 <emphasis role="comment">;start setscorepos now</emphasis>
+<emphasis role="stamnt">i</emphasis>1 3 2 330 <emphasis role="comment">;skip this note</emphasis>
+<emphasis role="stamnt">i</emphasis>1 6 2 440 <emphasis role="comment">;and this one</emphasis>
+<emphasis role="stamnt">i</emphasis>1 9 2 550 <emphasis role="comment">;play this one </emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/sfilist.csd.xml b/examples-xml/sfilist.csd.xml
index 66bcb5c..45cac39 100644
--- a/examples-xml/sfilist.csd.xml
+++ b/examples-xml/sfilist.csd.xml
@@ -2,69 +2,46 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O, midi in</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out, virtual midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sfilist.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; load two soundfonts</emphasis>
-isf <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
-ir <emphasis role="opc">sfload</emphasis> "01hpschd.sf2"
- <emphasis role="opc">sfplist</emphasis> isf <emphasis role="comment">; print presets of</emphasis>
- <emphasis role="opc">sfplist</emphasis> ir <emphasis role="comment">; soundfonts</emphasis>
- <emphasis role="opc">sfpassign</emphasis> 0, isf
- <emphasis role="opc">sfpassign</emphasis> 1, ir
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; play from score and midi keyboard (=midi channel 1)</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3
- <emphasis role="opc">midinoteonkey</emphasis> p4, p5
-inum <emphasis role="opc">init</emphasis> p4
-ivel <emphasis role="opc">init</emphasis> p5
-<emphasis role="opc">print</emphasis> ivel
+gisf <emphasis role="opc">sfload</emphasis> "sf_GMbank.sf2"
+ <emphasis role="opc">sfilist</emphasis> gisf <emphasis role="comment">;list all instruments</emphasis>
-ivel <emphasis role="opc">init</emphasis> 3<emphasis role="op">*</emphasis>(ivel<emphasis role="op">/</emphasis>127) <emphasis role="comment">; velocity-dependent</emphasis>
-kamp <emphasis role="opc">linsegr</emphasis> 1,1,1,.1,0
-kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
-a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0, 0
- <emphasis role="opc">outs</emphasis> a1, a2
-
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> 2
-<emphasis role="comment">; play from score and midi keyboard (=midi channel 2)</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play from score and midi keyboard</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
<emphasis role="opc">midinoteonkey</emphasis> p4, p5
inum <emphasis role="opc">init</emphasis> p4
ivel <emphasis role="opc">init</emphasis> p5
-<emphasis role="opc">print</emphasis> ivel
-
-ivel <emphasis role="opc">init</emphasis> 10<emphasis role="op">*</emphasis>(ivel<emphasis role="op">/</emphasis>127) <emphasis role="comment">; 01hpschd.sf2 needs extra volume</emphasis>
-kamp <emphasis role="opc">linsegr</emphasis> 1,1,1,.1,0 <emphasis role="comment">; velocity-dependent</emphasis>
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>3000 <emphasis role="comment">;scale amplitude</emphasis>
kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
-a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 1, 0
+a1, a2 <emphasis role="opc">sfinstr3</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 100, gisf <emphasis role="comment">;choose Halo Pad</emphasis>
<emphasis role="opc">outs</emphasis> a1, a2
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
-<emphasis role="stamnt">i</emphasis>1 0 1 60 100
+<emphasis role="stamnt">i</emphasis>1 0 1 60 127
<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt;
<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt;
<emphasis role="stamnt">i</emphasis>1 + 1 69 10
-<emphasis role="stamnt">i</emphasis>2 5 1 60 100
-<emphasis role="stamnt">i</emphasis>2 + 1 62 &lt;
-<emphasis role="stamnt">i</emphasis>2 7 1 65 &lt;
-<emphasis role="stamnt">i</emphasis>2 7 1 69 10
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sfinstr.csd.xml b/examples-xml/sfinstr.csd.xml
new file mode 100644
index 0000000..d2b4376
--- /dev/null
+++ b/examples-xml/sfinstr.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o sfinstr.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+
+gisf <emphasis role="opc">sfload</emphasis> "sf_GMbank.sf2"
+ <emphasis role="opc">sfilist</emphasis> isf
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play from score and midi keyboard</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+inum <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>5000 <emphasis role="comment">;scale amplitude</emphasis>
+kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
+a1,a2 <emphasis role="opc">sfinstr</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 194, gisf <emphasis role="comment">;= Strings 2 tighter</emphasis>
+ <emphasis role="opc">outs</emphasis> a1, a2
+
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 1 60 127
+<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt;
+<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt;
+<emphasis role="stamnt">i</emphasis>1 + 1 69 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sfinstr3.csd.xml b/examples-xml/sfinstr3.csd.xml
new file mode 100644
index 0000000..1cf9d5b
--- /dev/null
+++ b/examples-xml/sfinstr3.csd.xml
@@ -0,0 +1,55 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o sfinstr3.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gi24 <emphasis role="ohdr">ftgen</emphasis> 1, 0, 32, <emphasis role="op">-</emphasis>2, 24, 2, 261.626, 60, 1, 1.0293022, 1.059463, 1.0905076, 1.1224619, 1.1553525, 1.1892069, \
+ 1.2240532, 1.2599207, 1.2968391, 1.33483924, 1.3739531, 1.414213, 1.4556525, 1.4983063, 1.54221, 1.5874001, \
+ 1.6339145, 1.6817917, 1.73107, 1.7817962, 1.8340067, 1.8877471, 1.9430623, 2 <emphasis role="comment">;table for microtuning, a 24 tone equal temperament</emphasis>
+
+giSF <emphasis role="opc">sfload</emphasis> "sf_GMbank.sf2"
+ <emphasis role="opc">sfilist</emphasis> giSF
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="op">=</emphasis> p4
+ivel <emphasis role="op">=</emphasis> p5
+aenv <emphasis role="opc">linsegr</emphasis> 1, 1, 1, 1, 0 <emphasis role="comment">;envelope</emphasis>
+icps <emphasis role="opc">cpstuni</emphasis> ikey, 1 <emphasis role="comment">;24 tones per octave</emphasis>
+iamp <emphasis role="op">=</emphasis> 0.0002 <emphasis role="comment">;scale amplitude</emphasis>
+iamp <emphasis role="op">=</emphasis> iamp <emphasis role="op">*</emphasis> ivel <emphasis role="op">*</emphasis> 1<emphasis role="op">/</emphasis>128 <emphasis role="comment">;make velocity-dependent</emphasis>
+aL, aR <emphasis role="opc">sfinstr3</emphasis> ivel, ikey, iamp, icps, 180, giSF, 1 <emphasis role="comment">;= Slap Bass 3</emphasis>
+aL <emphasis role="op">=</emphasis> aL <emphasis role="op">*</emphasis> aenv
+aR <emphasis role="op">=</emphasis> aR <emphasis role="op">*</emphasis> aenv
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">;play for 60 seconds</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 1 60 100 1 <emphasis role="comment">;using ftable 1</emphasis>
+<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt; .
+<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt; .
+<emphasis role="stamnt">i</emphasis>1 + 1 69 40 .
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sfinstr3m.csd.xml b/examples-xml/sfinstr3m.csd.xml
new file mode 100644
index 0000000..14bcb05
--- /dev/null
+++ b/examples-xml/sfinstr3m.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o sfinstr3m.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+
+gisf <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
+ <emphasis role="opc">sfilist</emphasis> isf
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play from score and midi keyboard</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+inum <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>7000 <emphasis role="comment">;scale amplitude</emphasis>
+kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
+aout <emphasis role="opc">sfinstr3m</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0, gisf
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 1 60 127
+<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt;
+<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt;
+<emphasis role="stamnt">i</emphasis>1 + 1 69 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sfload.csd.xml b/examples-xml/sfload.csd.xml
index 9bff221..8956b3e 100644
--- a/examples-xml/sfload.csd.xml
+++ b/examples-xml/sfload.csd.xml
@@ -2,53 +2,55 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O, midi in</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out, virtual midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sfload.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; load two soundfonts</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">;load two soundfonts</emphasis>
isf <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
ir <emphasis role="opc">sfload</emphasis> "01hpschd.sf2"
+ <emphasis role="opc">sfplist</emphasis> isf
+ <emphasis role="opc">sfplist</emphasis> ir
<emphasis role="opc">sfpassign</emphasis> 0, isf
<emphasis role="opc">sfpassign</emphasis> 1, ir
- <emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; play from score and midi keyboard (=midi channel 1)</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play guitar from score and midi keyboard - preset index = 0</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
<emphasis role="opc">midinoteonkey</emphasis> p4, p5
inum <emphasis role="opc">init</emphasis> p4
ivel <emphasis role="opc">init</emphasis> p5
-<emphasis role="opc">print</emphasis> ivel
-
-ivel <emphasis role="opc">init</emphasis> 3<emphasis role="op">*</emphasis>(ivel<emphasis role="op">/</emphasis>127) <emphasis role="comment">; velocity-dependent</emphasis>
-kamp <emphasis role="opc">linsegr</emphasis> 1,1,1,.1,0
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>3000 <emphasis role="comment">;scale amplitude</emphasis>
kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
-a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0, 0
+a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0 <emphasis role="comment">;preset index = 0</emphasis>
<emphasis role="opc">outs</emphasis> a1, a2
<emphasis role="oblock">endin</emphasis>
- <emphasis role="oblock">instr</emphasis> 2
-<emphasis role="comment">; play from score and midi keyboard (=midi channel 2)</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; play harpsichord from score and midi keyboard - preset index = 1</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
<emphasis role="opc">midinoteonkey</emphasis> p4, p5
inum <emphasis role="opc">init</emphasis> p4
ivel <emphasis role="opc">init</emphasis> p5
-<emphasis role="opc">print</emphasis> ivel
-
-ivel <emphasis role="opc">init</emphasis> 10<emphasis role="op">*</emphasis>(ivel<emphasis role="op">/</emphasis>127) <emphasis role="comment">; 01hpschd.sf2 needs extra volume</emphasis>
-kamp <emphasis role="opc">linsegr</emphasis> 1,1,1,.1,0 <emphasis role="comment">; velocity-dependent</emphasis>
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>1000 <emphasis role="comment">;scale amplitude</emphasis>
kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
-a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 1, 0
+a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 1 <emphasis role="comment">;preset index = 1</emphasis>
<emphasis role="opc">outs</emphasis> a1, a2
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
@@ -63,6 +65,8 @@ a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp<emphasis role="op
<emphasis role="stamnt">i</emphasis>2 + 1 62 &lt;
<emphasis role="stamnt">i</emphasis>2 7 1 65 &lt;
<emphasis role="stamnt">i</emphasis>2 7 1 69 10
+
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sflooper.csd.xml b/examples-xml/sflooper.csd.xml
index 20c9368..dc01382 100644
--- a/examples-xml/sflooper.csd.xml
+++ b/examples-xml/sflooper.csd.xml
@@ -3,46 +3,48 @@
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O, midi in</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio in, midi in</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sflooper.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-isf <emphasis role="opc">sfload</emphasis> "<emphasis role="op">/</emphasis>home<emphasis role="op">/</emphasis>menno<emphasis role="op">/</emphasis>CVS<emphasis role="op">/</emphasis>manual<emphasis role="op">/</emphasis>examples<emphasis role="op">/</emphasis>07AcousticGuitar.sf2"
- <emphasis role="opc">sfilist</emphasis> isf
- <emphasis role="opc">sfplist</emphasis> isf
- <emphasis role="opc">sfpassign</emphasis> 0, isf
- <emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; play from score and midi keyboard</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3
- <emphasis role="opc">midinoteonkey</emphasis> p4, p5
-inum <emphasis role="opc">init</emphasis> p4
-ivel <emphasis role="opc">init</emphasis> p5
-<emphasis role="opc">print</emphasis> ivel
+isf <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
+ <emphasis role="opc">sfpassign</emphasis> 0, isf
-ivel <emphasis role="opc">init</emphasis> 3<emphasis role="op">*</emphasis>(ivel<emphasis role="op">/</emphasis>127) <emphasis role="comment">; pre-amplify</emphasis>
-kamp <emphasis role="opc">linsegr</emphasis> 1,1,1,.1,0
-kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
-<emphasis role="comment">; ivel, inum, kamp ,kfreq, ind,loopstrt,loopend,xfade, ifn</emphasis>
-a1,a2 <emphasis role="opc">sflooper</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0, 0, .3, .5, 0
- <emphasis role="opc">outs</emphasis> a1, a2
-
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play from score and midi keyboard</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+inum <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+<emphasis role="opc">print</emphasis> ivel
+
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1,1,1,.1,0 <emphasis role="comment">;envelope</emphasis>
+kamp <emphasis role="op">=</emphasis> kamp <emphasis role="op">*</emphasis> .0002 <emphasis role="comment">;scale amplitude (= kamp/5000)</emphasis>
+kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
+<emphasis role="comment">;"07AcousticGuitar.sf2" contains 2 samples, on notes E1 and C#4</emphasis>
+<emphasis role="comment">;start loop from beginning, loop .2 seconds - on the root key of these samples</emphasis>
+aL,aR <emphasis role="opc">sflooper</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0, 0, .2, .05
+ <emphasis role="opc">outs</emphasis> aL, aR
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
+<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
<emphasis role="stamnt">i</emphasis>1 0 1 60 100
<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt;
<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt;
<emphasis role="stamnt">i</emphasis>1 + 1 69 10
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sfpassign.csd.xml b/examples-xml/sfpassign.csd.xml
new file mode 100644
index 0000000..042cc27
--- /dev/null
+++ b/examples-xml/sfpassign.csd.xml
@@ -0,0 +1,72 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out, virtual midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o sfpassign.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">;load two soundfonts</emphasis>
+gisf <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
+gir <emphasis role="opc">sfload</emphasis> "01hpschd.sf2"
+ <emphasis role="opc">sfplist</emphasis> gisf
+ <emphasis role="opc">sfplist</emphasis> gir
+ <emphasis role="opc">sfpassign</emphasis> 0, gisf
+ <emphasis role="opc">sfpassign</emphasis> 1, gir
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play guitar from score and midi keyboard - preset index = 0</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+inum <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>5000 <emphasis role="comment">;scale amplitude</emphasis>
+kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
+a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0 <emphasis role="comment">;preset index = 0</emphasis>
+ <emphasis role="opc">outs</emphasis> a1, a2
+
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; play harpsichord from score and midi keyboard - preset index = 1</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+inum <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>1000 <emphasis role="comment">;scale amplitude</emphasis>
+kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
+a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 1 <emphasis role="comment">;preset index = 1</emphasis>
+ <emphasis role="opc">outs</emphasis> a1, a2
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 1 60 100
+<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt;
+<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt;
+<emphasis role="stamnt">i</emphasis>1 + 1 69 10
+
+<emphasis role="stamnt">i</emphasis>2 5 1 60 100
+<emphasis role="stamnt">i</emphasis>2 + 1 62 &lt;
+<emphasis role="stamnt">i</emphasis>2 7 1 65 &lt;
+<emphasis role="stamnt">i</emphasis>2 7 1 69 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sfplay.csd.xml b/examples-xml/sfplay.csd.xml
index 12839f0..d44862f 100644
--- a/examples-xml/sfplay.csd.xml
+++ b/examples-xml/sfplay.csd.xml
@@ -2,34 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O, midi in</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sfplay.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
isf <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
- <emphasis role="opc">sfilist</emphasis> isf
<emphasis role="opc">sfplist</emphasis> isf
- <emphasis role="opc">sfpassign</emphasis> 0, isf
+ <emphasis role="opc">sfpassign</emphasis> 0, isf
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play from score and midi keyboard</emphasis>
- <emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; play from score and midi keyboard</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">mididefault</emphasis> 60, p3
<emphasis role="opc">midinoteonkey</emphasis> p4, p5
inum <emphasis role="opc">init</emphasis> p4
ivel <emphasis role="opc">init</emphasis> p5
-<emphasis role="opc">print</emphasis> ivel
-
-ivel <emphasis role="opc">init</emphasis> 3<emphasis role="op">*</emphasis>(ivel<emphasis role="op">/</emphasis>127) <emphasis role="comment">; pre-amplify</emphasis>
-kamp <emphasis role="opc">linsegr</emphasis> 1,1,1,.1,0
-kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
-a1,a2 <emphasis role="opc">sfplay</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0, 0
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>5000 <emphasis role="comment">;scale amplitude</emphasis>
+kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
+a1,a2 <emphasis role="opc">sfplay</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0 <emphasis role="comment">;preset index = 0</emphasis>
<emphasis role="opc">outs</emphasis> a1, a2
<emphasis role="oblock">endin</emphasis>
@@ -42,6 +42,8 @@ a1,a2 <emphasis role="opc">sfplay</emphasis> ivel, inum, kamp<emphasis role="op"
<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt;
<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt;
<emphasis role="stamnt">i</emphasis>1 + 1 69 10
+
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sfplay3.csd.xml b/examples-xml/sfplay3.csd.xml
index f31d1d5..5382ce6 100644
--- a/examples-xml/sfplay3.csd.xml
+++ b/examples-xml/sfplay3.csd.xml
@@ -1,47 +1,77 @@
<programlisting>
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O, midi in</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sfplay3.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-isf <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
- <emphasis role="opc">sfilist</emphasis> isf
- <emphasis role="opc">sfplist</emphasis> isf
- <emphasis role="opc">sfpassign</emphasis> 0, isf
+gitwelve <emphasis role="ohdr">ftgen</emphasis> 1, 0, 16, <emphasis role="op">-</emphasis>2, 12, 2, 440, 69, 1, 16<emphasis role="op">/</emphasis>15, 9<emphasis role="op">/</emphasis>8, 6<emphasis role="op">/</emphasis>5, 5<emphasis role="op">/</emphasis>4, 4<emphasis role="op">/</emphasis>3, 7<emphasis role="op">/</emphasis>5, 3<emphasis role="op">/</emphasis>2, 8<emphasis role="op">/</emphasis>5, 5<emphasis role="op">/</emphasis>3, 9<emphasis role="op">/</emphasis>5, 15<emphasis role="op">/</emphasis>8, 2
+givife <emphasis role="ohdr">ftgen</emphasis> 2, 0, 16, <emphasis role="op">-</emphasis>2, 5, 2, 261.659, 60, 1, 1.1486, 1.3195, 1.5157, 1.7411, 2.00
- <emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; play from score and midi keyboard</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3
+giSF <emphasis role="opc">sfload</emphasis> "01hpschd.sf2"
+ <emphasis role="opc">sfplist</emphasis> giSF
+gipre <emphasis role="opc">sfpreset</emphasis> 0, 0, giSF, 0
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
<emphasis role="opc">midinoteonkey</emphasis> p4, p5
-inum <emphasis role="opc">init</emphasis> p4
-ivel <emphasis role="opc">init</emphasis> p5
-<emphasis role="opc">print</emphasis> ivel
-
-ivel <emphasis role="opc">init</emphasis> 3<emphasis role="op">*</emphasis>(ivel<emphasis role="op">/</emphasis>127) <emphasis role="comment">; pre-amplify</emphasis>
-kamp <emphasis role="opc">linsegr</emphasis> 1,1,1,.1,0
-kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
-a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0, 0
- <emphasis role="opc">outs</emphasis> a1, a2
-
- <emphasis role="oblock">endin</emphasis>
-
+ikey <emphasis role="op">=</emphasis> p4
+ivel <emphasis role="op">=</emphasis> p5
+aenv <emphasis role="opc">linsegr</emphasis> 1, 1, 1, 1, 0 <emphasis role="comment">;envelope</emphasis>
+icps <emphasis role="opc">cpstuni</emphasis> ikey, gitwelve <emphasis role="comment">;12 tones per octave</emphasis>
+iamp <emphasis role="op">=</emphasis> 0.0004 <emphasis role="comment">;scale amplitude</emphasis>
+iamp <emphasis role="op">=</emphasis> iamp <emphasis role="op">*</emphasis> ivel <emphasis role="op">*</emphasis> 1<emphasis role="op">/</emphasis>128 <emphasis role="comment">;make velocity-dependent</emphasis>
+aL, aR <emphasis role="opc">sfplay3</emphasis> ivel, ikey, iamp, icps, gipre, 1
+aL <emphasis role="op">=</emphasis> aL <emphasis role="op">*</emphasis> aenv
+aR <emphasis role="op">=</emphasis> aR <emphasis role="op">*</emphasis> aenv
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+ikey <emphasis role="op">=</emphasis> p4
+ivel <emphasis role="op">=</emphasis> p5
+aenv <emphasis role="opc">linsegr</emphasis> 1, 1, 1, 1, 0 <emphasis role="comment">;envelope</emphasis>
+icps <emphasis role="opc">cpstuni</emphasis> ikey, givife <emphasis role="comment">;5 tones per octave</emphasis>
+iamp <emphasis role="op">=</emphasis> 0.0004 <emphasis role="comment">;scale amplitude</emphasis>
+iamp <emphasis role="op">=</emphasis> iamp <emphasis role="op">*</emphasis> ivel <emphasis role="op">*</emphasis> 1<emphasis role="op">/</emphasis>128 <emphasis role="comment">;make velocity-dependent</emphasis>
+aL, aR <emphasis role="opc">sfplay3</emphasis> ivel, ikey, iamp, icps, gipre, 1
+aL <emphasis role="op">=</emphasis> aL <emphasis role="op">*</emphasis> aenv
+aR <emphasis role="op">=</emphasis> aR <emphasis role="op">*</emphasis> aenv
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
+
+<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">;play for 60 seconds</emphasis>
+<emphasis role="comment">;instr.1 using ftable 1</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 1 60 100
+<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt;
+<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt;
+<emphasis role="stamnt">i</emphasis>1 + 1 69 40
-<emphasis role="stamnt">i</emphasis>1 0 1 60 127
-<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt;
-<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt;
-<emphasis role="stamnt">i</emphasis>1 + 1 69 10
+<emphasis role="comment">;instr.2 using ftable 2</emphasis>
+<emphasis role="stamnt">i</emphasis>2 5 1 60 100
+<emphasis role="stamnt">i</emphasis>2 + 1 62 &lt;
+<emphasis role="stamnt">i</emphasis>2 + 1 65 &lt;
+<emphasis role="stamnt">i</emphasis>2 + 1 69 40
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sfplay3m.csd.xml b/examples-xml/sfplay3m.csd.xml
index 6c6bf5f..a5f2361 100644
--- a/examples-xml/sfplay3m.csd.xml
+++ b/examples-xml/sfplay3m.csd.xml
@@ -2,46 +2,48 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O, midi in</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sfplay3m.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-isf <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
- <emphasis role="opc">sfilist</emphasis> isf
- <emphasis role="opc">sfplist</emphasis> isf
- <emphasis role="opc">sfpassign</emphasis> 0, isf
- <emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; play from score and midi keyboard</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3
+gisf <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
+ <emphasis role="opc">sfplist</emphasis> gisf
+ <emphasis role="opc">sfpassign</emphasis> 10, gisf
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play from score and midi keyboard</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
<emphasis role="opc">midinoteonkey</emphasis> p4, p5
inum <emphasis role="opc">init</emphasis> p4
ivel <emphasis role="opc">init</emphasis> p5
-<emphasis role="opc">print</emphasis> ivel
-
-ivel <emphasis role="opc">init</emphasis> 2<emphasis role="op">*</emphasis>(ivel<emphasis role="op">/</emphasis>127) <emphasis role="comment">; pre-amplify</emphasis>
-kamp <emphasis role="opc">linsegr</emphasis> 1,1,1,.1,0
-kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
-a1 <emphasis role="opc">sfplay3m</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0, 0
- <emphasis role="opc">outs</emphasis> a1, a1
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>7000 <emphasis role="comment">;scale amplitude</emphasis>
+kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
+aout <emphasis role="opc">sfplay3m</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 10 <emphasis role="comment">;preset index = 10</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
+<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
<emphasis role="stamnt">i</emphasis>1 0 1 60 127
<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt;
<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt;
<emphasis role="stamnt">i</emphasis>1 + 1 69 10
+
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sfplaym.csd.xml b/examples-xml/sfplaym.csd.xml
index 6e8111c..be91065 100644
--- a/examples-xml/sfplaym.csd.xml
+++ b/examples-xml/sfplaym.csd.xml
@@ -2,46 +2,48 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O, midi in</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sfplaym.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-isf <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
- <emphasis role="opc">sfilist</emphasis> isf
- <emphasis role="opc">sfplist</emphasis> isf
- <emphasis role="opc">sfpassign</emphasis> 0, isf
- <emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; play from score and midi keyboard</emphasis>
- <emphasis role="opc">mididefault</emphasis> 60, p3
+gisf <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
+ <emphasis role="opc">sfplist</emphasis> gisf
+ <emphasis role="opc">sfpassign</emphasis> 100, gisf
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play from score and midi keyboard</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
<emphasis role="opc">midinoteonkey</emphasis> p4, p5
inum <emphasis role="opc">init</emphasis> p4
ivel <emphasis role="opc">init</emphasis> p5
-<emphasis role="opc">print</emphasis> ivel
-
-ivel <emphasis role="opc">init</emphasis> 2<emphasis role="op">*</emphasis>(ivel<emphasis role="op">/</emphasis>127) <emphasis role="comment">; pre-amplify</emphasis>
-kamp <emphasis role="opc">linsegr</emphasis> 1,1,1,.1,0
-kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
-a1 <emphasis role="opc">sfplaym</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 0, 0
- <emphasis role="opc">outs</emphasis> a1, a1
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>7000 <emphasis role="comment">;scale amplitude</emphasis>
+kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
+aout <emphasis role="opc">sfplaym</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, 100 <emphasis role="comment">;preset index = 100</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
+<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
<emphasis role="stamnt">i</emphasis>1 0 1 60 127
<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt;
<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt;
<emphasis role="stamnt">i</emphasis>1 + 1 69 10
+
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sfplist.csd.xml b/examples-xml/sfplist.csd.xml
new file mode 100644
index 0000000..e516388
--- /dev/null
+++ b/examples-xml/sfplist.csd.xml
@@ -0,0 +1,48 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out, virtual midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o sfplist.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisf <emphasis role="opc">sfload</emphasis> "sf_GMbank.sf2"
+ <emphasis role="opc">sfplist</emphasis> gisf <emphasis role="comment">;list all presets</emphasis>
+gir <emphasis role="opc">sfpreset</emphasis> 125, 3, gisf, 0 <emphasis role="comment">;preset = Car Pass</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play from score and midi keyboard</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+inum <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>6000 <emphasis role="comment">;scale amplitude</emphasis>
+kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
+a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp, kfreq, gir
+ <emphasis role="opc">outs</emphasis> a1, a2
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 1 60 127
+<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt;
+<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt;
+<emphasis role="stamnt">i</emphasis>1 + 1 69 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sfpreset.csd.xml b/examples-xml/sfpreset.csd.xml
new file mode 100644
index 0000000..986361e
--- /dev/null
+++ b/examples-xml/sfpreset.csd.xml
@@ -0,0 +1,57 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out, virtual midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o sfpreset.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisf1 <emphasis role="opc">sfload</emphasis> "sf_GMbank.sf2"
+ <emphasis role="opc">sfplist</emphasis> gisf1 <emphasis role="comment">;list presets of first soundfont</emphasis>
+gisf2 <emphasis role="opc">sfload</emphasis> "07AcousticGuitar.sf2"
+ <emphasis role="opc">sfplist</emphasis> gisf2 <emphasis role="comment">;list presets of second soundfont</emphasis>
+gir <emphasis role="opc">sfpreset</emphasis> 50, 0, gisf1, 0 <emphasis role="comment">;assign Synth Strings to index 0</emphasis>
+giv <emphasis role="opc">sfpreset</emphasis> 0, 0, gisf2, 1 <emphasis role="comment">;assign AcousticGuitar to index 1</emphasis>
+<emphasis role="opc">print</emphasis> gir
+<emphasis role="opc">print</emphasis> giv
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; play from score and midi keyboard</emphasis>
+
+ <emphasis role="opc">mididefault</emphasis> 60, p3
+ <emphasis role="opc">midinoteonkey</emphasis> p4, p5
+inum <emphasis role="opc">init</emphasis> p4
+ivel <emphasis role="opc">init</emphasis> p5
+ivel <emphasis role="opc">init</emphasis> ivel<emphasis role="op">/</emphasis>127 <emphasis role="comment">;make velocity dependent</emphasis>
+kamp <emphasis role="opc">linsegr</emphasis> 1, 1, 1, .1, 0
+kamp <emphasis role="op">=</emphasis> kamp<emphasis role="op">/</emphasis>5000 <emphasis role="comment">;scale amplitude</emphasis>
+kfreq <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change freq from sf</emphasis>
+a1,a2 <emphasis role="opc">sfplay3</emphasis> ivel, inum, kamp<emphasis role="op">*</emphasis>ivel, kfreq, p6
+ <emphasis role="opc">outs</emphasis> a1, a2
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>0 60 <emphasis role="comment">; stay active for 1 minute</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 1 60 127 0 <emphasis role="comment">;= Synth Strings I from first soundfont</emphasis>
+<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt; .
+<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt; .
+<emphasis role="stamnt">i</emphasis>1 + 1 69 10 .
+
+<emphasis role="stamnt">i</emphasis>1 5 1 60 127 1 <emphasis role="comment">;= AcousticGuitar from second soundfont</emphasis>
+<emphasis role="stamnt">i</emphasis>1 + 1 62 &lt; .
+<emphasis role="stamnt">i</emphasis>1 + 1 65 &lt; .
+<emphasis role="stamnt">i</emphasis>1 + 1 69 10 .
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/signum.csd.xml b/examples-xml/signum.csd.xml
new file mode 100644
index 0000000..84a51bf
--- /dev/null
+++ b/examples-xml/signum.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o oscil.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gaArr[] <emphasis role="opc">init</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+kEnv <emphasis role="opc">transeg</emphasis> 1, p3, <emphasis role="op">-</emphasis>3, 0
+
+a_pi <emphasis role="op">=</emphasis> 4 <emphasis role="op">*</emphasis> <emphasis role="opc">taninv</emphasis>(1.0)<emphasis role="comment">;</emphasis>
+a1 <emphasis role="opc">phasor</emphasis> 440<emphasis role="comment">;</emphasis>
+a2 <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>(2 <emphasis role="op">*</emphasis> a_pi <emphasis role="op">*</emphasis> 1<emphasis role="op">/</emphasis><emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">*</emphasis> a1)<emphasis role="comment">;</emphasis>
+a3 <emphasis role="opc">dcblock2</emphasis> a2
+asig <emphasis role="op">=</emphasis> <emphasis role="opc">signum</emphasis>(a3)
+
+gaArr[0] <emphasis role="op">=</emphasis> a2 <emphasis role="op">*</emphasis> 0.6 <emphasis role="op">*</emphasis> kEnv
+gaArr[1] <emphasis role="op">=</emphasis> asig <emphasis role="op">*</emphasis> 0.6 <emphasis role="op">*</emphasis> kEnv
+
+<emphasis role="opc">outs</emphasis> gaArr[0], gaArr[1]
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 3
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sin.csd.xml b/examples-xml/sin.csd.xml
index c044f2d..f1e0494 100644
--- a/examples-xml/sin.csd.xml
+++ b/examples-xml/sin.csd.xml
@@ -2,36 +2,45 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sin.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- irad <emphasis role="op">=</emphasis> 25
- i1 <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>(irad)
- <emphasis role="opc">print</emphasis> i1
+isin1 <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>(0) <emphasis role="comment">;sine of 0 is 0</emphasis>
+isin2 <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>($M_PI_2) <emphasis role="comment">;sine of pi/2 (1.5707...) is 1</emphasis>
+isin3 <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>($M_PI) <emphasis role="comment">;sine of pi (3.1415...) is 0</emphasis>
+isin4 <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>($M_PI_2 <emphasis role="op">*</emphasis> 3) <emphasis role="comment">;sine of 3/2pi (4.7123...) is -1</emphasis>
+isin5 <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>($M_PI <emphasis role="op">*</emphasis> 2) <emphasis role="comment">;sine of 2pi (6.2831...) is 0</emphasis>
+isin6 <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>($M_PI <emphasis role="op">*</emphasis> 4) <emphasis role="comment">;sine of 4pi is also 0</emphasis>
+ <emphasis role="opc">print</emphasis> isin1, isin2, isin3, isin4, isin5, isin6
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;sin used in panning, after an example from Hans Mikelson</emphasis>
+
+aout <emphasis role="opc">vco2</emphasis> 0.8, 220 <emphasis role="comment">; sawtooth</emphasis>
+kpan <emphasis role="opc">linseg</emphasis> p4, p3, p5 <emphasis role="comment">;0 = left, 1 = right</emphasis>
+kpan <emphasis role="op">=</emphasis> kpan<emphasis role="op">*</emphasis>$M_PI_2 <emphasis role="comment">;range 0-1 becomes 0-pi/2</emphasis>
+kpanl <emphasis role="op">=</emphasis> <emphasis role="opc">cos</emphasis>(kpan)
+kpanr <emphasis role="op">=</emphasis> <emphasis role="opc">sin</emphasis>(kpan)
+ <emphasis role="opc">outs</emphasis> aout<emphasis role="op">*</emphasis>kpanl, aout<emphasis role="op">*</emphasis>kpanr
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 0
+<emphasis role="stamnt">i</emphasis> 2 0 5 0 1 <emphasis role="comment">;move left to right</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 5 5 1 0 <emphasis role="comment">;move right to left</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sinsyn.csd.xml b/examples-xml/sinsyn.csd.xml
new file mode 100644
index 0000000..85c9727
--- /dev/null
+++ b/examples-xml/sinsyn.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o sinsyn.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kmxtr <emphasis role="opc">init</emphasis> p4
+ain <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512,1 <emphasis role="comment">; ifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .03, 1, 3, 500 <emphasis role="comment">; partial tracking</emphasis>
+aout <emphasis role="opc">sinsyn</emphasis> fst, .5, kmxtr, 1 <emphasis role="comment">; scale amplitude down</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 2.7 15 <emphasis role="comment">;filtering effect by using low number of tracks</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2.7 500 <emphasis role="comment">;maximum number of tracks</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sleighbells.csd.xml b/examples-xml/sleighbells.csd.xml
index e313df7..8903df9 100644
--- a/examples-xml/sleighbells.csd.xml
+++ b/examples-xml/sleighbells.csd.xml
@@ -2,43 +2,42 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sleighbells.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 22050
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 2205
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1: An example of sleighbells.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- a1 <emphasis role="opc">sleighbells</emphasis> 20000, 0.01
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+idamp <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">sleighbells</emphasis> .7, 0.01, 32, idamp
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0.00 0.25
+<emphasis role="stamnt">i</emphasis> 1 0.00 0.25 0 <emphasis role="comment">;short sound</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0.30 0.25
<emphasis role="stamnt">i</emphasis> 1 0.60 0.25
<emphasis role="stamnt">i</emphasis> 1 0.90 0.25
<emphasis role="stamnt">i</emphasis> 1 1.20 0.25
-<emphasis role="stamnt">i</emphasis> 1 1.50 0.25
-<emphasis role="stamnt">i</emphasis> 1 1.80 0.25
+<emphasis role="stamnt">i</emphasis> 1 1.50 1 .3 <emphasis role="comment">;longer sound</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 1.80 0.25 0 <emphasis role="comment">;short sound again</emphasis>
<emphasis role="stamnt">i</emphasis> 1 2.10 0.25
<emphasis role="stamnt">i</emphasis> 1 2.40 0.25
<emphasis role="stamnt">i</emphasis> 1 2.70 0.25
<emphasis role="stamnt">i</emphasis> 1 3.00 0.25
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/slicearray.csd.xml b/examples-xml/slicearray.csd.xml
new file mode 100644
index 0000000..44c5735
--- /dev/null
+++ b/examples-xml/slicearray.csd.xml
@@ -0,0 +1,58 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+<emphasis role="comment">;create and fill an array</emphasis>
+kArr[] <emphasis role="opc">genarray_i</emphasis> 1, 9
+
+<emphasis role="comment">;print the content</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "kArr <emphasis role="op">=</emphasis> whole array\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr) do
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+<emphasis role="comment">;build new arrays for the slices</emphasis>
+kArr1[] <emphasis role="opc">init</emphasis> 5
+kArr2[] <emphasis role="opc">init</emphasis> 4
+
+<emphasis role="comment">;put in first five and last four elements</emphasis>
+kArr1 <emphasis role="opc">slicearray</emphasis> kArr, 0, 4
+kArr2 <emphasis role="opc">slicearray</emphasis> kArr, 5, 8
+
+<emphasis role="comment">;print the content</emphasis>
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nkArr1 <emphasis role="op">=</emphasis> slice from index 0 to index 4\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr1) do
+ <emphasis role="opc">printf</emphasis> "kArr1[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr1[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+ <emphasis role="opc">printf</emphasis> "<emphasis role="op">%</emphasis>s", 1, "\nkArr2 <emphasis role="op">=</emphasis> slice from index 5 to index 8\n"
+kndx <emphasis role="op">=</emphasis> 0
+ until kndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr2) do
+ <emphasis role="opc">printf</emphasis> "kArr2[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kndx<emphasis role="op">+</emphasis>1, kndx, kArr2[kndx]
+kndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+
+ <emphasis role="opc">turnoff</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sndloop.csd.xml b/examples-xml/sndloop.csd.xml
index 995275b..35b236b 100644
--- a/examples-xml/sndloop.csd.xml
+++ b/examples-xml/sndloop.csd.xml
@@ -2,38 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o sndloop.wav -W -t60 ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o sndloop.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-ifade <emphasis role="op">=</emphasis> p4
-asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1 <emphasis role="comment">; get the signal in</emphasis>
-ktrig <emphasis role="opc">line</emphasis> 0, 1, 1 <emphasis role="comment">; trigger signal</emphasis>
-aout,krec <emphasis role="opc">sndloop</emphasis> asig, .8, ktrig, .4, ifade <emphasis role="comment">; rec starts at 1 sec, for 4 secs 0.05 crossfade</emphasis>
- <emphasis role="opc">printk</emphasis> 1, krec <emphasis role="comment">; prints the recording signal</emphasis>
- <emphasis role="opc">out</emphasis> aout
+
+itrig <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;get the signal in, loop it</emphasis>
+ktrig <emphasis role="opc">line</emphasis> 0, itrig, 1 <emphasis role="comment">;when to trigger signal = p4</emphasis>
+kpitch <emphasis role="opc">line</emphasis> 1.2, p3, .5 <emphasis role="comment">;vary pitch of recorded signal</emphasis>
+aout,krec <emphasis role="opc">sndloop</emphasis> asig, kpitch, ktrig, .4, 0.05 <emphasis role="comment">;rec starts at p4 sec, for .4 secs and 0.05 crossfade</emphasis>
+ <emphasis role="opc">printk2</emphasis> krec <emphasis role="comment">; prints the recording signal</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis>1 0 3.5 .05
-<emphasis role="stamnt">i</emphasis>1 + 3.5 .25
+<emphasis role="stamnt">i</emphasis>1 0 5 .5 <emphasis role="comment">;trigger in seconds (=p4)</emphasis>
+<emphasis role="stamnt">i</emphasis>1 + 5 .8
+<emphasis role="stamnt">i</emphasis>1 + 10 1.2
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sndwarp.csd.xml b/examples-xml/sndwarp.csd.xml
index e12758f..f996d35 100644
--- a/examples-xml/sndwarp.csd.xml
+++ b/examples-xml/sndwarp.csd.xml
@@ -2,65 +2,42 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sndwarp.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1 - play an audio file.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use the audio file defined in Table #1.</emphasis>
- a1 <emphasis role="opc">loscil</emphasis> 30000, 1, 1, 1
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+ktimewarp <emphasis role="opc">line</emphasis> 0, p3, 2.7 <emphasis role="comment">;length of "fox.wav"</emphasis>
+kresample <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;do not change pitch</emphasis>
+ibeg <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;start at beginning</emphasis>
+iwsize <emphasis role="op">=</emphasis> 4410 <emphasis role="comment">;window size in samples with</emphasis>
+irandw <emphasis role="op">=</emphasis> 882 <emphasis role="comment">;bandwidth of a random number generator</emphasis>
+itimemode <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;ktimewarp is "time" pointer</emphasis>
+ioverlap <emphasis role="op">=</emphasis> p4
-<emphasis role="comment">; Instrument #2 - time-stretch an audio file.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- kamp <emphasis role="opc">init</emphasis> 6500
- <emphasis role="comment">; Start at 1 second and end at 3.5 seconds.</emphasis>
- ktimewarp <emphasis role="opc">line</emphasis> 1, p3, 3.5
- <emphasis role="comment">; Playback at the normal speed.</emphasis>
- kresample <emphasis role="opc">init</emphasis> 1
- <emphasis role="comment">; Use the audio file defined in Table #1.</emphasis>
- ifn1 <emphasis role="op">=</emphasis> 1
- ibeg <emphasis role="op">=</emphasis> 0
- iwsize <emphasis role="op">=</emphasis> 4410
- irandw <emphasis role="op">=</emphasis> 882
- ioverlap <emphasis role="op">=</emphasis> 15
- <emphasis role="comment">; Use Table #2 for the windowing function.</emphasis>
- ifn2 <emphasis role="op">=</emphasis> 2
- <emphasis role="comment">; Use the ktimewarp parameter as a "time" pointer.</emphasis>
- itimemode <emphasis role="op">=</emphasis> 1
+asig <emphasis role="opc">sndwarp</emphasis> .5, ktimewarp, kresample, 1, ibeg, iwsize, irandw, ioverlap, 2, itimemode
+ <emphasis role="opc">outs</emphasis> asig, asig
- a1 <emphasis role="opc">sndwarp</emphasis> kamp, ktimewarp, kresample, ifn1, ibeg, iwsize, irandw, ioverlap, ifn2, itimemode
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 131072 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 0 <emphasis role="comment">; audio file</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 1024 9 0.5 1 0 <emphasis role="comment">; half of a sine wave</emphasis>
-<emphasis role="comment">; Table #1: an audio file.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 262144 1 "mary.wav" 0 0 0
-<emphasis role="comment">; Table #2: half of a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 9 0.5 1 0
-
-<emphasis role="comment">; Play Instrument #1 for 3.5 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3.5
-<emphasis role="comment">; Play Instrument #2 for 7 seconds (time-stretched).</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 3.5 10.5
+<emphasis role="stamnt">i</emphasis> 1 0 7 2 <emphasis role="comment">;different overlaps</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 7 5
+<emphasis role="stamnt">i</emphasis> 1 + 7 15
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sndwarpst.csd.xml b/examples-xml/sndwarpst.csd.xml
index fa943af..fbe4ac5 100644
--- a/examples-xml/sndwarpst.csd.xml
+++ b/examples-xml/sndwarpst.csd.xml
@@ -2,54 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sndwarpst.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="opc">init</emphasis> 10000
- <emphasis role="comment">; Start at 1 second and end at 3.5 seconds.</emphasis>
- ktimewarp <emphasis role="opc">line</emphasis> 1, p3, 1.5
- <emphasis role="comment">; Playback at the normal speed.</emphasis>
- kresample <emphasis role="opc">init</emphasis> 4
- <emphasis role="comment">; Use the audio file defined in Table #1.</emphasis>
- ifn1 <emphasis role="op">=</emphasis> 1
- ibeg <emphasis role="op">=</emphasis> 0
- iwsize <emphasis role="op">=</emphasis> 4410
- irandw <emphasis role="op">=</emphasis> 100
- ioverlap <emphasis role="op">=</emphasis> 15
- <emphasis role="comment">; Use Table #2 for the windowing function.</emphasis>
- ifn2 <emphasis role="op">=</emphasis> 2
- <emphasis role="comment">; Use the ktimewarp parameter as a "time" pointer.</emphasis>
- itimemode <emphasis role="op">=</emphasis> 1
- a1, a2 <emphasis role="opc">sndwarp</emphasis> kamp, ktimewarp, kresample, ifn1, ibeg, iwsize, irandw, ioverlap, ifn2, itimemode
- <emphasis role="opc">outs</emphasis> a1, a2
+ktimewarp <emphasis role="opc">line</emphasis> 0, p3, 1 <emphasis role="comment">;length of stereo file "kickroll.wav"</emphasis>
+kresample <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;playback at the normal speed</emphasis>
+ibeg <emphasis role="op">=</emphasis> 0
+iwsize <emphasis role="op">=</emphasis> 4410
+irandw <emphasis role="op">=</emphasis> 441
+ioverlap <emphasis role="op">=</emphasis> p4
+itimemode <emphasis role="op">=</emphasis> 1 <emphasis role="comment">; Use the ktimewarp parameter as a "time" pointer</emphasis>
+
+aL, aR <emphasis role="opc">sndwarpst</emphasis> .3, ktimewarp, kresample, 1, ibeg, iwsize, irandw, ioverlap, 2, itimemode
+aL <emphasis role="opc">dcblock</emphasis> aL <emphasis role="comment">;get rid of DC offsets for left channel &amp;</emphasis>
+aR <emphasis role="opc">dcblock</emphasis> aR <emphasis role="comment">;right channel</emphasis>
+ <emphasis role="opc">outs</emphasis> aL, aR
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Table #1: an audio file.</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 65536 1 "kickroll.wav" 0 0 0
-<emphasis role="comment">; Table #2: half of a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 9 0.5 1 0
+<emphasis role="stamnt">f</emphasis> 2 0 16384 9 0.5 1 0 <emphasis role="comment">;half of a sine wave</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">i</emphasis> 1 0 7 2 <emphasis role="comment">;different overlaps</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 7 5
+<emphasis role="stamnt">i</emphasis> 1 + 7 15
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/soundin.csd.xml b/examples-xml/soundin.csd.xml
index 35ebe11..5ac0540 100644
--- a/examples-xml/soundin.csd.xml
+++ b/examples-xml/soundin.csd.xml
@@ -2,34 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">;-odac ;;;realtime audio out</emphasis>
+-iadc <emphasis role="comment">;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o soundin.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">;-o soundin.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1 - play an audio file.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- asig <emphasis role="opc">soundin</emphasis> "beats.wav"
- <emphasis role="opc">out</emphasis> asig
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; choose between mono or stereo file</emphasis>
+
+ichn <emphasis role="opc">filenchnls</emphasis> p4 <emphasis role="comment">;check number of channels</emphasis>
+<emphasis role="opc">print</emphasis> ichn
+<emphasis role="octrl">if</emphasis> ichn <emphasis role="op">==</emphasis> 1 then
+asig <emphasis role="opc">soundin</emphasis> p4 <emphasis role="comment">;mono signal</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="octrl">else</emphasis> <emphasis role="comment">;stereo signal</emphasis>
+aL, aR <emphasis role="opc">soundin</emphasis> p4
+ <emphasis role="opc">outs</emphasis> aL, aR
+<emphasis role="octrl">endif</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1, the audio file, for three seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 3 "fox.wav" <emphasis role="comment">;mono signal</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 5 2 "k<emphasis role="stamnt">i</emphasis>ckroll.wav" <emphasis role="comment">;stereo signal</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/space_quad.csd.xml b/examples-xml/space_quad.csd.xml
index d9bc837..09094c1 100644
--- a/examples-xml/space_quad.csd.xml
+++ b/examples-xml/space_quad.csd.xml
@@ -2,15 +2,16 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o space_quad.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
ga1 <emphasis role="opc">init</emphasis> 0
@@ -18,45 +19,44 @@ ga2 <emphasis role="opc">init</emphasis> 0
ga3 <emphasis role="opc">init</emphasis> 0
ga4 <emphasis role="opc">init</emphasis> 0
-<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;uses GEN28 file "move", as found in /manual/examples</emphasis>
-asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
-a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 0, 0, .1, p4, p5 <emphasis role="comment">; take position values from p4, p5</emphasis>
-ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis>
+kx <emphasis role="opc">init</emphasis> 0
+ky <emphasis role="opc">init</emphasis> 0
+ktime <emphasis role="opc">line</emphasis> 0, 5, 5 <emphasis role="comment">;same time as in table 1 (="move")</emphasis>
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;sound source is looped</emphasis>
+a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 1, ktime, .1, kx, ky <emphasis role="comment">;use table 1 = GEN28</emphasis>
+ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis> <emphasis role="comment">;send to reverb</emphasis>
ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
ga3 <emphasis role="op">=</emphasis> ga3<emphasis role="op">+</emphasis>ar3
ga4 <emphasis role="op">=</emphasis> ga4<emphasis role="op">+</emphasis>ar4
- <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
+ <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
+
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb instrument</emphasis>
-a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
-a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
-a3 <emphasis role="opc">reverb2</emphasis> ga3, 2.5, .5
-a4 <emphasis role="opc">reverb2</emphasis> ga4, 2.5, .5
- <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
+a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
+a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
+a3 <emphasis role="opc">reverb2</emphasis> ga3, 2.5, .5
+a4 <emphasis role="opc">reverb2</emphasis> ga4, 2.5, .5
+ <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
-ga1<emphasis role="op">=</emphasis>0
+ga1<emphasis role="op">=</emphasis>0
ga2<emphasis role="op">=</emphasis>0
ga3<emphasis role="op">=</emphasis>0
ga4<emphasis role="op">=</emphasis>0
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">;place the sound in the left speaker and near</emphasis>
- <emphasis role="stamnt">i</emphasis>1 0 1 -1 1
-<emphasis role="comment">;place the sound in the right speaker and far</emphasis>
- <emphasis role="stamnt">i</emphasis>1 1 1 45 45
-<emphasis role="comment">;place the sound equally between left and right and in the middle ground distance</emphasis>
- <emphasis role="stamnt">i</emphasis>1 2 1 0 12
-
- <emphasis role="stamnt">i</emphasis> 99 0 5
- <emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 0 28 "move"
+
+<emphasis role="stamnt">i</emphasis>1 0 5 <emphasis role="comment">;same time as ktime</emphasis>
+<emphasis role="stamnt">i</emphasis> 99 0 10 <emphasis role="comment">;keep reverb active</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/space_stereo.csd.xml b/examples-xml/space_stereo.csd.xml
index 0ebd1d2..d2fbfc2 100644
--- a/examples-xml/space_stereo.csd.xml
+++ b/examples-xml/space_stereo.csd.xml
@@ -2,37 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o space_stereo.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
- <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-ga1 <emphasis role="opc">init</emphasis> 0
-ga2 <emphasis role="opc">init</emphasis> 0
+ga1 <emphasis role="opc">init</emphasis> 0
+ga2 <emphasis role="opc">init</emphasis> 0
<emphasis role="oblock">instr</emphasis> 1
-asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
-a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 0, 0, .1, p4, p5 <emphasis role="comment">; take position values from p4, p5</emphasis>
-ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis> <emphasis role="comment">; a3, a4, ar3, ar4 are dummies</emphasis>
+kx <emphasis role="op">=</emphasis> p4
+ky <emphasis role="op">=</emphasis> p5
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
+a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 0, 0, .1, kx, ky <emphasis role="comment">;take position values from p4, p5</emphasis>
+ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis> <emphasis role="comment">;send to reverb</emphasis>
-ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
-ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
+ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
+ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
+ <emphasis role="opc">outs</emphasis> a1, a2
- <emphasis role="opc">outs</emphasis> a1, a2
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb instrument</emphasis>
-a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
-a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
- <emphasis role="opc">outs</emphasis> a1, a2
+a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
+a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
+ <emphasis role="opc">outs</emphasis> a1, a2
+
ga1<emphasis role="op">=</emphasis>0
ga2<emphasis role="op">=</emphasis>0
@@ -41,14 +45,14 @@ ga2<emphasis role="op">=</emphasis>0
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="comment">;place the sound in the left speaker and near</emphasis>
- <emphasis role="stamnt">i</emphasis>1 0 1 -1 1
+<emphasis role="stamnt">i</emphasis>1 0 1 -1 1
<emphasis role="comment">;place the sound in the right speaker and far</emphasis>
- <emphasis role="stamnt">i</emphasis>1 1 1 45 45
+<emphasis role="stamnt">i</emphasis>1 1 1 45 45
<emphasis role="comment">;place the sound equally between left and right and in the middle ground distance</emphasis>
- <emphasis role="stamnt">i</emphasis>1 2 1 0 12
+<emphasis role="stamnt">i</emphasis>1 2 1 0 12
- <emphasis role="stamnt">i</emphasis> 99 0 5
- <emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">i</emphasis> 99 0 7 <emphasis role="comment">;keep reverb active</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/spat3d_UHJ.csd.xml b/examples-xml/spat3d_UHJ.csd.xml
index 5b84d02..4301e92 100644
--- a/examples-xml/spat3d_UHJ.csd.xml
+++ b/examples-xml/spat3d_UHJ.csd.xml
@@ -46,7 +46,7 @@ affrq <emphasis role="opc">upsamp</emphasis> kffrq1
affrq <emphasis role="opc">pareq</emphasis> affrq, 5.0, 0.0, 1.0, 2
kffrq <emphasis role="opc">downsamp</emphasis> affrq
aenv4 <emphasis role="opc">phasor</emphasis> 3.0
-aenv4 <emphasis role="opc">limit</emphasis> 2.0 <emphasis role="op">-</emphasis> aenv4 <emphasis role="op">*</emphasis> 8.0, 0.0, 1.0
+aenv4 limit 2.0 <emphasis role="op">-</emphasis> aenv4 <emphasis role="op">*</emphasis> 8.0, 0.0, 1.0
a1 <emphasis role="opc">butterbp</emphasis> a1 <emphasis role="op">*</emphasis> aenv4, kffrq, 160.0
aenv <emphasis role="opc">linseg</emphasis> 1.0, p3 <emphasis role="op">-</emphasis> 1.0, 1.0, 0.04, 0.0, 1.0, 0.0
a_ <emphasis role="op">=</emphasis> 4000000 <emphasis role="op">*</emphasis> a1 <emphasis role="op">*</emphasis> aenv <emphasis role="op">+</emphasis> 0.00000001
diff --git a/examples-xml/spat3d_quad.csd.xml b/examples-xml/spat3d_quad.csd.xml
index a697c7c..a642a37 100644
--- a/examples-xml/spat3d_quad.csd.xml
+++ b/examples-xml/spat3d_quad.csd.xml
@@ -37,8 +37,8 @@ a1 <emphasis role="opc">phasor</emphasis> 150 <emphasis role="
a1 <emphasis role="opc">butterbp</emphasis> a1, 500, 200 <emphasis role="comment">; filter</emphasis>
a1 <emphasis role="op">=</emphasis> <emphasis role="opc">taninv</emphasis>(a1 <emphasis role="op">*</emphasis> 100)
a2 <emphasis role="opc">phasor</emphasis> 3 <emphasis role="comment">; envelope</emphasis>
-a2 <emphasis role="opc">mirror</emphasis> 40<emphasis role="op">*</emphasis>a2, <emphasis role="op">-</emphasis>100, 5
-a2 <emphasis role="opc">limit</emphasis> a2, 0, 1
+a2 mirror 40<emphasis role="op">*</emphasis>a2, <emphasis role="op">-</emphasis>100, 5
+a2 limit a2, 0, 1
a1 <emphasis role="op">=</emphasis> a1 <emphasis role="op">*</emphasis> a2 <emphasis role="op">*</emphasis> 9000
kazim <emphasis role="opc">line</emphasis> 0, 2.5, 360 <emphasis role="comment">; move sound source around</emphasis>
diff --git a/examples-xml/spat3d_stereo.csd.xml b/examples-xml/spat3d_stereo.csd.xml
index 71fa6c7..754c560 100644
--- a/examples-xml/spat3d_stereo.csd.xml
+++ b/examples-xml/spat3d_stereo.csd.xml
@@ -37,8 +37,8 @@ a1 <emphasis role="opc">phasor</emphasis> 150 <emphasis role="
a1 <emphasis role="opc">butterbp</emphasis> a1, 500, 200 <emphasis role="comment">; filter</emphasis>
a1 <emphasis role="op">=</emphasis> <emphasis role="opc">taninv</emphasis>(a1 <emphasis role="op">*</emphasis> 100)
a2 <emphasis role="opc">phasor</emphasis> 3 <emphasis role="comment">; envelope</emphasis>
-a2 <emphasis role="opc">mirror</emphasis> 40<emphasis role="op">*</emphasis>a2, <emphasis role="op">-</emphasis>100, 5
-a2 <emphasis role="opc">limit</emphasis> a2, 0, 1
+a2 mirror 40<emphasis role="op">*</emphasis>a2, <emphasis role="op">-</emphasis>100, 5
+a2 limit a2, 0, 1
a1 <emphasis role="op">=</emphasis> a1 <emphasis role="op">*</emphasis> a2 <emphasis role="op">*</emphasis> 9000
kazim <emphasis role="opc">line</emphasis> 0, 2.5, 360 <emphasis role="comment">; move sound source around</emphasis>
diff --git a/examples-xml/spat3dt.csd.xml b/examples-xml/spat3dt.csd.xml
new file mode 100644
index 0000000..b58c65e
--- /dev/null
+++ b/examples-xml/spat3dt.csd.xml
@@ -0,0 +1,94 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o spat3dt.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+garvb <emphasis role="opc">init</emphasis> 0
+gaW <emphasis role="opc">init</emphasis> 0
+gaX <emphasis role="opc">init</emphasis> 0
+gaY <emphasis role="opc">init</emphasis> 0
+
+itmp <emphasis role="ohdr">ftgen</emphasis> 1, 0, 64, <emphasis role="op">-</emphasis>2, 2, 40, <emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, 123, \
+ 1, 13.000, 0.05, 0.85, 20000.0, 0.0, 0.50, 2, \
+ 1, 2.000, 0.05, 0.85, 20000.0, 0.0, 0.25, 2, \
+ 1, 16.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 9.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 12.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 8.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2
+
+itmp <emphasis role="ohdr">ftgen</emphasis> 2, 0, 262144, <emphasis role="op">-</emphasis>2, 0
+ <emphasis role="opc">spat3dt</emphasis> 2, <emphasis role="op">-</emphasis>0.2, 1, 0, 1, 1, 2, 0.005
+
+itmp <emphasis role="ohdr">ftgen</emphasis> 3, 0, 262144, <emphasis role="op">-</emphasis>52, 3, 2, 0, 4, 2, 1, 4, 2, 2, 4
+
+<emphasis role="oblock">instr</emphasis> 1
+
+a1 <emphasis role="opc">vco2</emphasis> 1, 440, 10
+kfrq <emphasis role="opc">port</emphasis> 100, 0.008, 20000
+a1 <emphasis role="opc">butterlp</emphasis> a1, kfrq
+a2 <emphasis role="opc">linseg</emphasis> 0, 0.003, 1, 0.01, 0.7, 0.005, 0, 1, 0
+a1 <emphasis role="op">=</emphasis> a1 <emphasis role="op">*</emphasis> a2 <emphasis role="op">*</emphasis> 2
+ <emphasis role="opc">denorm</emphasis> a1
+ <emphasis role="opc">vincr</emphasis> garvb, a1
+aw, ax, ay, az <emphasis role="opc">spat3di</emphasis> a1, p4, p5, p6, 1, 1, 2
+ <emphasis role="opc">vincr</emphasis> gaW, aw
+ <emphasis role="opc">vincr</emphasis> gaX, ax
+ <emphasis role="opc">vincr</emphasis> gaY, ay
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+<emphasis role="opc">denorm</emphasis> garvb
+<emphasis role="comment">; skip as many samples as possible without truncating the IR </emphasis>
+arW, arX, arY <emphasis role="opc">ftconv</emphasis> garvb, 3, 2048, 2048, (65536 <emphasis role="op">-</emphasis> 2048)
+aW <emphasis role="op">=</emphasis> gaW <emphasis role="op">+</emphasis> arW
+aX <emphasis role="op">=</emphasis> gaX <emphasis role="op">+</emphasis> arX
+aY <emphasis role="op">=</emphasis> gaY <emphasis role="op">+</emphasis> arY
+garvb <emphasis role="op">=</emphasis> 0
+gaW <emphasis role="op">=</emphasis> 0
+gaX <emphasis role="op">=</emphasis> 0
+gaY <emphasis role="op">=</emphasis> 0
+
+aWre, aWim <emphasis role="opc">hilbert</emphasis> aW
+aXre, aXim <emphasis role="opc">hilbert</emphasis> aX
+aYre, aYim <emphasis role="opc">hilbert</emphasis> aY
+aWXr <emphasis role="op">=</emphasis> 0.0928<emphasis role="op">*</emphasis>aXre <emphasis role="op">+</emphasis> 0.4699<emphasis role="op">*</emphasis>aWre
+aWXiYr <emphasis role="op">=</emphasis> 0.2550<emphasis role="op">*</emphasis>aXim <emphasis role="op">-</emphasis> 0.1710<emphasis role="op">*</emphasis>aWim <emphasis role="op">+</emphasis> 0.3277<emphasis role="op">*</emphasis>aYre
+aL <emphasis role="op">=</emphasis> aWXr <emphasis role="op">+</emphasis> aWXiYr
+aR <emphasis role="op">=</emphasis> aWXr <emphasis role="op">-</emphasis> aWXiYr
+ <emphasis role="opc">outs</emphasis> aL, aR
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+
+<emphasis role="stamnt">i</emphasis> 1 0 0.5 0.0 2.0 -0.8
+<emphasis role="stamnt">i</emphasis> 1 1 0.5 1.4 1.4 -0.6
+<emphasis role="stamnt">i</emphasis> 1 2 0.5 2.0 0.0 -0.4
+<emphasis role="stamnt">i</emphasis> 1 3 0.5 1.4 -1.4 -0.2
+<emphasis role="stamnt">i</emphasis> 1 4 0.5 0.0 -2.0 0.0
+<emphasis role="stamnt">i</emphasis> 1 5 0.5 -1.4 -1.4 0.2
+<emphasis role="stamnt">i</emphasis> 1 6 0.5 -2.0 0.0 0.4
+<emphasis role="stamnt">i</emphasis> 1 7 0.5 -1.4 1.4 0.6
+<emphasis role="stamnt">i</emphasis> 1 8 0.5 0.0 2.0 0.8
+<emphasis role="stamnt">i</emphasis> 2 0 10
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/spdist.csd.xml b/examples-xml/spdist.csd.xml
new file mode 100644
index 0000000..ce78bdf
--- /dev/null
+++ b/examples-xml/spdist.csd.xml
@@ -0,0 +1,66 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o spdist.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+
+ga1 <emphasis role="opc">init</emphasis> 0
+ga2 <emphasis role="opc">init</emphasis> 0
+ga3 <emphasis role="opc">init</emphasis> 0
+ga4 <emphasis role="opc">init</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;uses GEN28 file "move2", as found in /manual/examples</emphasis>
+
+ifreq <emphasis role="op">=</emphasis> 1
+kx <emphasis role="opc">init</emphasis> 0
+ky <emphasis role="opc">init</emphasis> 0
+ktime <emphasis role="opc">line</emphasis> 0, 5.6, 5.6 <emphasis role="comment">;same time as in table 1 (="move2")</emphasis>
+kdist <emphasis role="opc">spdist</emphasis> 1, ktime, kx, ky
+kfreq <emphasis role="op">=</emphasis> (ifreq<emphasis role="op">*</emphasis>340) <emphasis role="op">/</emphasis> (340 <emphasis role="op">+</emphasis> kdist) <emphasis role="comment">;calculate doppler shift</emphasis>
+<emphasis role="opc">printk2</emphasis> kdist <emphasis role="comment">;print distance values</emphasis>
+asig <emphasis role="opc">diskin2</emphasis> "flute.aiff", kfreq, 0, 1 <emphasis role="comment">;sound source is looped</emphasis>
+a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 1, ktime, .1, kx, ky <emphasis role="comment">;use table 1 = GEN28</emphasis>
+ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis> <emphasis role="comment">;send to reverb</emphasis>
+
+ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
+ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
+ga3 <emphasis role="op">=</emphasis> ga3<emphasis role="op">+</emphasis>ar3
+ga4 <emphasis role="op">=</emphasis> ga4<emphasis role="op">+</emphasis>ar4
+ <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb instrument</emphasis>
+
+a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
+a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
+a3 <emphasis role="opc">reverb2</emphasis> ga3, 2.5, .5
+a4 <emphasis role="opc">reverb2</emphasis> ga4, 2.5, .5
+ <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
+
+ga1<emphasis role="op">=</emphasis>0
+ga2<emphasis role="op">=</emphasis>0
+ga3<emphasis role="op">=</emphasis>0
+ga4<emphasis role="op">=</emphasis>0
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 0 28 "move2" <emphasis role="comment">;from left front and left rear to the middle in front</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 5.6 <emphasis role="comment">;same time as ktime</emphasis>
+<emphasis role="stamnt">i</emphasis> 99 0 10 <emphasis role="comment">;keep reverb active</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sprintf.csd.xml b/examples-xml/sprintf.csd.xml
new file mode 100644
index 0000000..8aa3d13
--- /dev/null
+++ b/examples-xml/sprintf.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o sprintf.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">;the file "impuls20.aiff" can be found in /manual/examples</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+
+ifn <emphasis role="op">=</emphasis> 20
+Sname <emphasis role="opc">sprintf</emphasis> "impuls<emphasis role="op">%</emphasis>02d.aiff", ifn
+Smsg <emphasis role="opc">sprintf</emphasis> "The file name is<emphasis role="op">:</emphasis> '<emphasis role="op">%</emphasis>s'", Sname
+ <emphasis role="opc">puts</emphasis> Smsg, 1
+asig <emphasis role="opc">soundin</emphasis> Sname
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/spsend.csd.xml b/examples-xml/spsend.csd.xml
new file mode 100644
index 0000000..8847191
--- /dev/null
+++ b/examples-xml/spsend.csd.xml
@@ -0,0 +1,66 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o spsend.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2 <emphasis role="comment">;stereo output</emphasis>
+
+ga1 <emphasis role="opc">init</emphasis> 0
+ga2 <emphasis role="opc">init</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;sends different amounts to reverb</emphasis>
+
+irev <emphasis role="op">=</emphasis> p6
+asig <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 0, 0, irev, p4, p5 <emphasis role="comment">;take position values from p4, p5</emphasis>
+ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis> <emphasis role="comment">;send to reverb</emphasis>
+
+ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
+ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
+ <emphasis role="opc">outs</emphasis> a1, a2
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb instrument</emphasis>
+
+a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
+a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
+ <emphasis role="opc">outs</emphasis> a1, a2
+
+ga1<emphasis role="op">=</emphasis>0
+ga2<emphasis role="op">=</emphasis>0
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">;WITH REVERB</emphasis>
+<emphasis role="comment">;place the sound in the left speaker and near</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 1 -1 1 .1
+<emphasis role="comment">;place the sound in the right speaker and far</emphasis>
+<emphasis role="stamnt">i</emphasis>1 1 1 45 45 .1
+<emphasis role="comment">;place the sound equally between left and right and in the middle ground distance</emphasis>
+<emphasis role="stamnt">i</emphasis>1 2 1 0 12 .1
+
+<emphasis role="comment">;NO REVERB</emphasis>
+<emphasis role="comment">;place the sound in the left speaker and near</emphasis>
+<emphasis role="stamnt">i</emphasis>1 6 1 -1 1 0
+<emphasis role="comment">;place the sound in the right speaker and far</emphasis>
+<emphasis role="stamnt">i</emphasis>1 7 1 45 45 0
+<emphasis role="comment">;place the sound equally between left and right and in the middle ground distance</emphasis>
+<emphasis role="stamnt">i</emphasis>1 8 1 0 12 0
+
+<emphasis role="stamnt">i</emphasis> 99 0 12 <emphasis role="comment">;keep reverb active all the time</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sqrt.csd.xml b/examples-xml/sqrt.csd.xml
index f58e65e..b4aa612 100644
--- a/examples-xml/sqrt.csd.xml
+++ b/examples-xml/sqrt.csd.xml
@@ -2,34 +2,33 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o sqrt.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="op">=</emphasis> <emphasis role="opc">sqrt</emphasis>(64)
- <emphasis role="opc">print</emphasis> i1
-<emphasis role="oblock">endin</emphasis>
+asig <emphasis role="opc">pluck</emphasis> 0.7, 55, 55, 0, 1
+kpan <emphasis role="opc">line</emphasis> 0,p3,1
+kleft <emphasis role="op">=</emphasis> <emphasis role="opc">sqrt</emphasis>(1<emphasis role="op">-</emphasis>kpan)
+kright <emphasis role="op">=</emphasis> <emphasis role="opc">sqrt</emphasis>(kpan)
+<emphasis role="opc">printks</emphasis> "square root of left channel <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\\n", 1, kleft <emphasis role="comment">;show coarse of sqaure root values</emphasis>
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>kleft, asig<emphasis role="op">*</emphasis>kright <emphasis role="comment">;where 0.707126 is between 2 speakers</emphasis>
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 10
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sr.csd.xml b/examples-xml/sr.csd.xml
new file mode 100644
index 0000000..c38608c
--- /dev/null
+++ b/examples-xml/sr.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">; -iadc ;;;uncomment -iadc if real audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o sr.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;use sr to find maximum harmonics</emphasis>
+
+ihar <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(<emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>2<emphasis role="op">/</emphasis>p4) <emphasis role="comment">; maximum possible number of harmonics w/o aliasing</emphasis>
+<emphasis role="opc">prints</emphasis> "maximum number of harmonics <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d \\n", ihar
+kenv <emphasis role="opc">linen</emphasis> .5, 1, p3, .2 <emphasis role="comment">; envelope</emphasis>
+asig <emphasis role="opc">buzz</emphasis> kenv, p4, ihar, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3 100 <emphasis role="comment">;different frequencies</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 1000
+<emphasis role="stamnt">i</emphasis> 1 + 3 10000
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/stack.csd.xml b/examples-xml/stack.csd.xml
new file mode 100644
index 0000000..7eccbf3
--- /dev/null
+++ b/examples-xml/stack.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o stack.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="opc">stack</emphasis> 100000
+
+<emphasis role="oblock">instr</emphasis> 1
+
+a1 <emphasis role="opc">oscils</emphasis> 0.7, 220, 0
+k1 <emphasis role="opc">line</emphasis> 0, p3, 1
+ <emphasis role="opc">push</emphasis> "blah", 123.45, a1, k1
+ <emphasis role="opc">push</emphasis> <emphasis role="opc">rnd</emphasis>(k1)
+
+k_rnd <emphasis role="opc">pop</emphasis>
+S01, i01, a01, k01 <emphasis role="opc">pop</emphasis>
+ <emphasis role="opc">printf_i</emphasis> "S01 <emphasis role="op">=</emphasis> '<emphasis role="op">%</emphasis>s', i01 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>g\n", 1, S01, i01
+ktrig <emphasis role="opc">metro</emphasis> 5.0
+ <emphasis role="opc">printf</emphasis> "k01 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.3f, k_rnd <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.3f\n", ktrig, k01, k_rnd
+ <emphasis role="opc">outs</emphasis> a01, a01
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/statevar.csd.xml b/examples-xml/statevar.csd.xml
new file mode 100644
index 0000000..794e457
--- /dev/null
+++ b/examples-xml/statevar.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o statevar.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kenv <emphasis role="opc">linseg</emphasis> 0,0.1,1, p3<emphasis role="op">-</emphasis>0.2,1, 0.1, 0 <emphasis role="comment">;declick envelope </emphasis>
+asig <emphasis role="opc">buzz</emphasis> .6<emphasis role="op">*</emphasis>kenv, 100, 100, 1
+kf <emphasis role="opc">expseg</emphasis> 100, p3<emphasis role="op">/</emphasis>2, 5000, p3<emphasis role="op">/</emphasis>2, 1000 <emphasis role="comment">;envelope for filter cutoff</emphasis>
+ahp,alp,abp,abr <emphasis role="opc">statevar</emphasis> asig, kf, 4
+ <emphasis role="opc">outs</emphasis> alp,ahp <emphasis role="comment">; lowpass left, highpass right</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/stix.csd.xml b/examples-xml/stix.csd.xml
index 15c2cd8..9d14106 100644
--- a/examples-xml/stix.csd.xml
+++ b/examples-xml/stix.csd.xml
@@ -2,37 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o stix.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">;orchestra ---------------</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
- <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
- <emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
- <emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
- <emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
-
-<emphasis role="oblock">instr</emphasis> 01 <emphasis role="comment">;an example of stix</emphasis>
- a1 <emphasis role="opc">line</emphasis> 20, p3, 20 <emphasis role="comment">;preset amplitude increase</emphasis>
- a2 <emphasis role="opc">stix</emphasis> p4, 0.01 <emphasis role="comment">;stix needs a little amp help at these settings</emphasis>
- a3 <emphasis role="opc">product</emphasis> a1, a2 <emphasis role="comment">;increase amplitude</emphasis>
- <emphasis role="opc">out</emphasis> a3
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+idamp <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;vary damping amount</emphasis>
+asig <emphasis role="opc">stix</emphasis> .5, 0.01, 30, idamp
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">;score -------------------</emphasis>
-
- <emphasis role="stamnt">i</emphasis>1 0 1 26000
- <emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis>1 0 1 .3
+<emphasis role="stamnt">i</emphasis>1 + 1 >
+<emphasis role="stamnt">i</emphasis>1 + 1 >
+<emphasis role="stamnt">i</emphasis>1 + 1 .95
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/strcat.csd.xml b/examples-xml/strcat.csd.xml
new file mode 100644
index 0000000..c5c96b7
--- /dev/null
+++ b/examples-xml/strcat.csd.xml
@@ -0,0 +1,32 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o strcat.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+Sname <emphasis role="op">=</emphasis> "beats"
+Sname <emphasis role="opc">strcat</emphasis> Sname, ".wav"
+asig <emphasis role="opc">soundin</emphasis> Sname
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/strcatk.csd.xml b/examples-xml/strcatk.csd.xml
new file mode 100644
index 0000000..efee624
--- /dev/null
+++ b/examples-xml/strcatk.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in</emphasis>
+-odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o strcatk.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+ <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 48000
+ <emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 16
+ <emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+ <emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="comment">; Example by Jonathan Murphy 2007</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> 1
+
+ S1 <emphasis role="op">=</emphasis> "1"
+ S2 <emphasis role="op">=</emphasis> " <emphasis role="op">+</emphasis> 1"
+ ktrig <emphasis role="opc">init</emphasis> 0
+ kval <emphasis role="opc">init</emphasis> 2
+<emphasis role="octrl">if</emphasis> (ktrig <emphasis role="op">==</emphasis> 1) then
+ S1 <emphasis role="opc">strcatk</emphasis> S1, S2
+ kval <emphasis role="op">=</emphasis> kval <emphasis role="op">+</emphasis> 1
+<emphasis role="octrl">endif</emphasis>
+ String <emphasis role="opc">sprintfk</emphasis> "<emphasis role="op">%</emphasis>s <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d", S1, kval
+ <emphasis role="opc">puts</emphasis> String, kval
+ ktrig <emphasis role="opc">metro</emphasis> 1
+
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/strchar.csd.xml b/examples-xml/strchar.csd.xml
new file mode 100644
index 0000000..cda6be9
--- /dev/null
+++ b/examples-xml/strchar.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+-ndm0
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by joachim heintz 2013</emphasis>
+
+ <emphasis role="oblock">opcode</emphasis> ToAscii, S, S <emphasis role="comment">;returns the ASCII numbers of the input string as string</emphasis>
+
+Sin <emphasis role="opc">xin</emphasis> <emphasis role="comment">;input string</emphasis>
+ilen <emphasis role="opc">strlen</emphasis> Sin <emphasis role="comment">;its length</emphasis>
+ipos <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;set counter to zero</emphasis>
+Sres <emphasis role="op">=</emphasis> "" <emphasis role="comment">;initialize output string</emphasis>
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis> <emphasis role="comment">;for all characters in input string:</emphasis>
+ichr <emphasis role="opc">strchar</emphasis> Sin, ipos <emphasis role="comment">;get its ascii code number</emphasis>
+Snew <emphasis role="opc">sprintf</emphasis> "<emphasis role="op">%</emphasis>d ", ichr <emphasis role="comment">;put this number into a new string</emphasis>
+Sres <emphasis role="opc">strcat</emphasis> Sres, Snew <emphasis role="comment">;append this to the output string</emphasis>
+ <emphasis role="octrl">loop_lt</emphasis> ipos, 1, ilen, <emphasis role="olabel">loop</emphasis> <emphasis role="comment">;see comment for 'loop:'</emphasis>
+ <emphasis role="opc">xout</emphasis> Sres <emphasis role="comment">;return output string</emphasis>
+ <emphasis role="oblock">endop</emphasis>
+
+ <emphasis role="oblock">instr</emphasis> Characters
+
+<emphasis role="opc">printf_i</emphasis> "\nCharacters<emphasis role="op">:</emphasis>\n given as single strings<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>s<emphasis role="op">%</emphasis>s<emphasis role="op">%</emphasis>s<emphasis role="op">%</emphasis>s<emphasis role="op">%</emphasis>s<emphasis role="op">%</emphasis>s\n", 1, "c", "s", "o", "u", "n", "d"
+<emphasis role="opc">printf_i</emphasis> " but can also be given as numbers<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>c<emphasis role="op">%</emphasis>c<emphasis role="op">%</emphasis>c<emphasis role="op">%</emphasis>c<emphasis role="op">%</emphasis>c<emphasis role="op">%</emphasis>c\n", 1, 99, 115, 111, 117, 110, 100
+Scsound ToAscii "csound"
+<emphasis role="opc">printf_i</emphasis> " <emphasis role="opc">in</emphasis> csound, the ASCII code of <emphasis role="opc">a</emphasis> character can be accessed with the <emphasis role="oblock">opcode</emphasis> strchar.<emphasis role="op">%</emphasis>s", 1, "\n"
+<emphasis role="opc">printf_i</emphasis> " the name 'csound' returns the numbers <emphasis role="op">%</emphasis>s\n\n", 1, Scsound
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> "Characters" 0 0
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/strcmp.csd.xml b/examples-xml/strcmp.csd.xml
new file mode 100644
index 0000000..9b062d1
--- /dev/null
+++ b/examples-xml/strcmp.csd.xml
@@ -0,0 +1,49 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o strcmp.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;modified example from Joachim Heintz</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+ <emphasis role="oblock">opcode</emphasis> Triad, iii, S <emphasis role="comment">;define UDO</emphasis>
+Sname <emphasis role="opc">xin</emphasis>
+iMaj <emphasis role="opc">strcmp</emphasis> "maj", Sname
+iMin <emphasis role="opc">strcmp</emphasis> "min", Sname
+iPrim <emphasis role="op">=</emphasis> 8.00 <emphasis role="comment">;notes in pitch notattion</emphasis>
+iQuint <emphasis role="op">=</emphasis> 8.05
+ <emphasis role="octrl">if</emphasis> iMaj <emphasis role="op">==</emphasis> 0 then
+iTer <emphasis role="op">=</emphasis> 8.03
+ <emphasis role="octrl">elseif</emphasis> iMin <emphasis role="op">==</emphasis> 0 then
+iTer <emphasis role="op">=</emphasis> 8.02
+ <emphasis role="octrl">endif</emphasis>
+ <emphasis role="opc">xout</emphasis> iPrim, iTer, iQuint
+ <emphasis role="oblock">endop</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+Sname <emphasis role="opc">strget</emphasis> p4
+ia, ib, ic Triad Sname <emphasis role="comment">;apply UDO</emphasis>
+ <emphasis role="opc">print</emphasis> ia, ib, ic
+asig1 <emphasis role="opc">pluck</emphasis> 0.7, <emphasis role="opc">cpspch</emphasis>(ia), 220, 0, 1
+asig2 <emphasis role="opc">pluck</emphasis> 0.7, <emphasis role="opc">cpspch</emphasis>(ib), 220, 0, 1
+asig3 <emphasis role="opc">pluck</emphasis> 0.7, <emphasis role="opc">cpspch</emphasis>(ic), 220, 0, 1
+asig <emphasis role="op">=</emphasis> (asig1<emphasis role="op">+</emphasis>asig2<emphasis role="op">+</emphasis>asig3)<emphasis role="op">*</emphasis>.5
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 3 "maj"
+<emphasis role="stamnt">i</emphasis>1 4 3 "m<emphasis role="stamnt">i</emphasis>n"
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/strcpyk.csd.xml b/examples-xml/strcpyk.csd.xml
new file mode 100644
index 0000000..78fa494
--- /dev/null
+++ b/examples-xml/strcpyk.csd.xml
@@ -0,0 +1,87 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o strcpyk.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">;get one element of the input string whenever the metro</emphasis>
+<emphasis role="comment">;triggers, and call a subinstrument to play the file</emphasis>
+
+Smember <emphasis role="opc">strget</emphasis> p4
+istrlen <emphasis role="opc">strlen</emphasis> Smember
+kprint <emphasis role="opc">init</emphasis> 0
+ktrig <emphasis role="opc">metro</emphasis> .6
+
+ <emphasis role="comment">;whenever the trigger gives signal</emphasis>
+ <emphasis role="octrl">if</emphasis> ktrig <emphasis role="op">==</emphasis> 1 then
+ <emphasis role="comment">;choose a random element (0, 1 or 2)</emphasis>
+kel <emphasis role="opc">random</emphasis> 0, 3.9999
+kel <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(kel)
+ <emphasis role="comment">;make a copy for leaving Smember intact</emphasis>
+Scopy <emphasis role="opc">strcpyk</emphasis> Smember
+ <emphasis role="comment">;set the initial index for reading substrings</emphasis>
+kndx <emphasis role="op">=</emphasis> 0
+ <emphasis role="comment">;set counter for searching the element</emphasis>
+kcount <emphasis role="op">=</emphasis> 0
+ <emphasis role="comment">;start looping over the elements in Smember</emphasis>
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+kdelim <emphasis role="opc">strindexk</emphasis> Scopy, "<emphasis role="op">:</emphasis>"
+ <emphasis role="comment">;as long as ":" occurs in Scopy, do:</emphasis>
+ <emphasis role="octrl">if</emphasis> kdelim <emphasis role="op">></emphasis> 0 then
+ <emphasis role="comment">;if this is the element to get</emphasis>
+ <emphasis role="octrl">if</emphasis> kel <emphasis role="op">==</emphasis> kcount then
+ <emphasis role="comment">;read it as substring</emphasis>
+Sfile <emphasis role="opc">strsubk</emphasis> Scopy, kndx, kdelim
+kprint <emphasis role="op">=</emphasis> kprint<emphasis role="op">+</emphasis>1
+ <emphasis role="comment">;and jump out</emphasis>
+ <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">call</emphasis>
+ <emphasis role="comment">;if not</emphasis>
+ <emphasis role="octrl">else</emphasis>
+ <emphasis role="comment">;cut off this element from Scopy</emphasis>
+Scopy <emphasis role="opc">strsubk</emphasis> Scopy, kdelim<emphasis role="op">+</emphasis>1, istrlen
+ <emphasis role="octrl">endif</emphasis>
+ <emphasis role="comment">;if no element has been found,go back to loop </emphasis>
+ <emphasis role="comment">;and look for the next element</emphasis>
+kcount <emphasis role="op">=</emphasis> kcount<emphasis role="op">+</emphasis>1
+ <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">loop</emphasis>
+ <emphasis role="comment">;if there is no delimiter left, the rest is the searched element</emphasis>
+ <emphasis role="octrl">else</emphasis>
+Sfile <emphasis role="opc">strcpyk</emphasis> Scopy
+ <emphasis role="octrl">endif</emphasis>
+<emphasis role="olabel">call</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="comment">;print the result, call the subinstrument and play the file</emphasis>
+ <emphasis role="opc">printf</emphasis> "kel <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d, file <emphasis role="op">=</emphasis> '<emphasis role="op">%</emphasis>s'\n", ktrig<emphasis role="op">+</emphasis>kprint, kel, Sfile
+S_call <emphasis role="opc">sprintfk</emphasis> {{i 2 0 1 "<emphasis role="op">%</emphasis>s"}}, Sfile
+ <emphasis role="opc">scoreline</emphasis> S_call, ktrig
+ <emphasis role="octrl">endif</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;play</emphasis>
+Sfile <emphasis role="opc">strget</emphasis> p4
+ilen <emphasis role="opc">filelen</emphasis> Sfile
+p3 <emphasis role="op">=</emphasis> ilen
+asig <emphasis role="opc">soundin</emphasis> Sfile
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 30 "mary.wav:fox.wav:beats.wav:flute.a<emphasis role="stamnt">i</emphasis>ff"
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/streson.csd.xml b/examples-xml/streson.csd.xml
index c4e311b..b9c9797 100644
--- a/examples-xml/streson.csd.xml
+++ b/examples-xml/streson.csd.xml
@@ -2,47 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o streson.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a normal sine wave.</emphasis>
- asig <emphasis role="opc">oscils</emphasis> 1500, 440, 1
- <emphasis role="comment">; Vary the fundamental frequency of the string </emphasis>
- <emphasis role="comment">; resonator linearly from 220 to 880 Hertz. </emphasis>
- kfr <emphasis role="opc">line</emphasis> 220, p3, 880
- ifdbgain <emphasis role="op">=</emphasis> 0.95
+asig <emphasis role="opc">diskin2</emphasis> "fox.wav", 1, 0, 1
+
+kfr <emphasis role="op">=</emphasis> p4
+ifdbgain <emphasis role="op">=</emphasis> 0.90
- <emphasis role="comment">; Run our sine wave through the string resonator.</emphasis>
- astres <emphasis role="opc">streson</emphasis> asig, kfr, ifdbgain
+astr <emphasis role="opc">streson</emphasis> asig, kfr, ifdbgain
+asig <emphasis role="opc">clip</emphasis> astr, 0, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; The resonance can get quite loud.</emphasis>
- <emphasis role="comment">; So we'll clip the signal at 30,000.</emphasis>
- a1 <emphasis role="opc">clip</emphasis> astres, 1, 30000
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for five seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 1 0 1 20
+<emphasis role="stamnt">i</emphasis> 1 + . >
+<emphasis role="stamnt">i</emphasis> 1 + . >
+<emphasis role="stamnt">i</emphasis> 1 + . >
+<emphasis role="stamnt">i</emphasis> 1 + . >
+<emphasis role="stamnt">i</emphasis> 1 + . >
+<emphasis role="stamnt">i</emphasis> 1 + . 1000
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/strfromurl.csd.xml b/examples-xml/strfromurl.csd.xml
new file mode 100644
index 0000000..c3bb872
--- /dev/null
+++ b/examples-xml/strfromurl.csd.xml
@@ -0,0 +1,32 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o strget.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="omacro">#include</emphasis> "http<emphasis role="op">:</emphasis><emphasis role="op">/</emphasis><emphasis role="op">/</emphasis>codemist.co.uk<emphasis role="op">/</emphasis>jpff<emphasis role="op">/</emphasis>test.in"
+
+<emphasis role="oblock">instr</emphasis> 2
+
+Sfile <emphasis role="opc">strget</emphasis> "http<emphasis role="op">:</emphasis><emphasis role="op">/</emphasis><emphasis role="op">/</emphasis>codemist.co.uk<emphasis role="op">/</emphasis>jpff<emphasis role="op">/</emphasis>test.in"
+ <emphasis role="opc">prints</emphasis> Sfile
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 2 + .
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/strget.csd.xml b/examples-xml/strget.csd.xml
new file mode 100644
index 0000000..01e498e
--- /dev/null
+++ b/examples-xml/strget.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o strget.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">strset</emphasis> 1, "fox.wav"
+<emphasis role="ohdr">strset</emphasis> 2, "beats.wav"
+
+<emphasis role="oblock">instr</emphasis> 1
+
+Sfile <emphasis role="opc">strget</emphasis> p4
+asig <emphasis role="opc">soundin</emphasis> Sfile
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2.7 1
+<emphasis role="stamnt">i</emphasis> 1 + 2 2
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/strindexk.csd.xml b/examples-xml/strindexk.csd.xml
new file mode 100644
index 0000000..a48db85
--- /dev/null
+++ b/examples-xml/strindexk.csd.xml
@@ -0,0 +1,87 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o strindexk.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">;get one element of the input string whenever the metro</emphasis>
+<emphasis role="comment">;triggers, and call a subinstrument to play the file</emphasis>
+
+Smember <emphasis role="opc">strget</emphasis> p4
+istrlen <emphasis role="opc">strlen</emphasis> Smember
+kprint <emphasis role="opc">init</emphasis> 0
+ktrig <emphasis role="opc">metro</emphasis> .5
+
+ <emphasis role="comment">;whenever the trigger gives signal</emphasis>
+ <emphasis role="octrl">if</emphasis> ktrig <emphasis role="op">==</emphasis> 1 then
+ <emphasis role="comment">;choose a random element (0, 1 or 2)</emphasis>
+kel <emphasis role="opc">random</emphasis> 0, 2.9999
+kel <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(kel)
+ <emphasis role="comment">;make a copy for leaving Smember intact</emphasis>
+Scopy <emphasis role="opc">strcpyk</emphasis> Smember
+ <emphasis role="comment">;set the initial index for reading substrings</emphasis>
+kndx <emphasis role="op">=</emphasis> 0
+ <emphasis role="comment">;set counter for searching the element</emphasis>
+kcount <emphasis role="op">=</emphasis> 0
+ <emphasis role="comment">;start looping over the elements in Smember</emphasis>
+<emphasis role="olabel">loop</emphasis><emphasis role="op">:</emphasis>
+kdelim <emphasis role="opc">strindexk</emphasis> Scopy, "<emphasis role="op">:</emphasis>"
+ <emphasis role="comment">;as long as ":" occurs in Scopy, do:</emphasis>
+ <emphasis role="octrl">if</emphasis> kdelim <emphasis role="op">></emphasis> 0 then
+ <emphasis role="comment">;if this is the element to get</emphasis>
+ <emphasis role="octrl">if</emphasis> kel <emphasis role="op">==</emphasis> kcount then
+ <emphasis role="comment">;read it as substring</emphasis>
+Sfile <emphasis role="opc">strsubk</emphasis> Scopy, kndx, kdelim
+kprint <emphasis role="op">=</emphasis> kprint<emphasis role="op">+</emphasis>1
+ <emphasis role="comment">;and jump out</emphasis>
+ <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">call</emphasis>
+ <emphasis role="comment">;if not</emphasis>
+ <emphasis role="octrl">else</emphasis>
+ <emphasis role="comment">;cut off this element from Scopy</emphasis>
+Scopy <emphasis role="opc">strsubk</emphasis> Scopy, kdelim<emphasis role="op">+</emphasis>1, istrlen
+ <emphasis role="octrl">endif</emphasis>
+ <emphasis role="comment">;if no element has been found,go back to loop </emphasis>
+ <emphasis role="comment">;and look for the next element</emphasis>
+kcount <emphasis role="op">=</emphasis> kcount<emphasis role="op">+</emphasis>1
+ <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">loop</emphasis>
+ <emphasis role="comment">;if there is no delimiter left, the rest is the searched element</emphasis>
+ <emphasis role="octrl">else</emphasis>
+Sfile <emphasis role="opc">strcpyk</emphasis> Scopy
+ <emphasis role="octrl">endif</emphasis>
+<emphasis role="olabel">call</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="comment">;print the result, call the subinstrument and play the file</emphasis>
+ <emphasis role="opc">printf</emphasis> "kel <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d, file <emphasis role="op">=</emphasis> '<emphasis role="op">%</emphasis>s'\n", ktrig<emphasis role="op">+</emphasis>kprint, kel, Sfile
+S_call <emphasis role="opc">sprintfk</emphasis> {{i 2 0 1 "<emphasis role="op">%</emphasis>s"}}, Sfile
+ <emphasis role="opc">scoreline</emphasis> S_call, ktrig
+ <emphasis role="octrl">endif</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;play</emphasis>
+Sfile <emphasis role="opc">strget</emphasis> p4
+ilen <emphasis role="opc">filelen</emphasis> Sfile
+p3 <emphasis role="op">=</emphasis> ilen
+asig <emphasis role="opc">soundin</emphasis> Sfile
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 30 "mary.wav:fox.wav:beats.wav"
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/strlower.csd.xml b/examples-xml/strlower.csd.xml
new file mode 100644
index 0000000..8b13c38
--- /dev/null
+++ b/examples-xml/strlower.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n <emphasis role="comment">;;;no sound output</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example of Joachim Heintz</emphasis>
+
+ <emphasis role="oblock">opcode</emphasis> FilSuf, S, So
+ <emphasis role="comment">;returns the suffix of a filename or path, optional in lower case </emphasis>
+Spath,ilow <emphasis role="opc">xin</emphasis>
+ipos <emphasis role="opc">strrindex</emphasis> Spath, "." <emphasis role="comment">;look for the rightmost '.'</emphasis>
+Suf <emphasis role="opc">strsub</emphasis> Spath, ipos<emphasis role="op">+</emphasis>1 <emphasis role="comment">;extract the substring after "."</emphasis>
+ <emphasis role="octrl">if</emphasis> ilow <emphasis role="op">!=</emphasis> 0 then <emphasis role="comment">;if ilow input is not 0 then </emphasis>
+Suf <emphasis role="opc">strlower</emphasis> Suf <emphasis role="comment">;convert to lower case</emphasis>
+ <emphasis role="octrl">endif</emphasis>
+ <emphasis role="opc">xout</emphasis> Suf
+ <emphasis role="oblock">endop</emphasis>
+
+<emphasis role="oblock">instr</emphasis> suff
+
+ilow <emphasis role="op">=</emphasis> p4
+ <emphasis role="opc">prints</emphasis> "Printing suffix<emphasis role="op">:</emphasis>\n"
+Suf FilSuf "<emphasis role="op">/</emphasis>my<emphasis role="op">/</emphasis>dir<emphasis role="op">/</emphasis>my<emphasis role="op">/</emphasis>file.WAV", ilow
+ <emphasis role="opc">puts</emphasis> Suf, 1
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> "suff" 0 1 0 <emphasis role="comment">;do not convert to lower case</emphasis>
+<emphasis role="stamnt">i</emphasis> "suff" 3 1 1 <emphasis role="comment">;convert to lower case</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/strrindex.csd.xml b/examples-xml/strrindex.csd.xml
new file mode 100644
index 0000000..53de58f
--- /dev/null
+++ b/examples-xml/strrindex.csd.xml
@@ -0,0 +1,31 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n <emphasis role="comment">;;;no sound output</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by Joachim Heintz</emphasis>
+
+ <emphasis role="oblock">opcode</emphasis> FilNam, S, S
+<emphasis role="comment">;returns the name of a file path</emphasis>
+Spath <emphasis role="opc">xin</emphasis>
+ipos <emphasis role="opc">strrindex</emphasis> Spath, "<emphasis role="op">/</emphasis>" <emphasis role="comment">;look for the rightmost '/'</emphasis>
+Snam <emphasis role="opc">strsub</emphasis> Spath, ipos<emphasis role="op">+</emphasis>1 <emphasis role="comment">;extract the substring </emphasis>
+ <emphasis role="opc">xout</emphasis> Snam
+ <emphasis role="oblock">endop</emphasis>
+
+<emphasis role="oblock">instr</emphasis> name
+ <emphasis role="opc">prints</emphasis> "Printing name<emphasis role="op">:</emphasis>\n"
+Snam FilNam "<emphasis role="op">/</emphasis>my<emphasis role="op">/</emphasis>dir<emphasis role="op">/</emphasis>my<emphasis role="op">/</emphasis>file.WAV"
+ <emphasis role="opc">puts</emphasis> Snam, 1
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> "name" 0 0
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/subtracts.csd.xml b/examples-xml/subtracts.csd.xml
index 60af2c9..fac2563 100644
--- a/examples-xml/subtracts.csd.xml
+++ b/examples-xml/subtracts.csd.xml
@@ -2,34 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; Audio out Audio in No messages</emphasis>
+-odac <emphasis role="comment">;;;realtime audio I/O</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o subtracts.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o -.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="op">=</emphasis> 24 <emphasis role="op">-</emphasis> 8
- <emphasis role="opc">print</emphasis> i1
-<emphasis role="oblock">endin</emphasis>
+idur <emphasis role="op">=</emphasis> p3
+iatt <emphasis role="op">=</emphasis> p4
+idec <emphasis role="op">=</emphasis> p5
+isus <emphasis role="op">=</emphasis> p3<emphasis role="op">-</emphasis>iatt<emphasis role="op">-</emphasis>idec <emphasis role="comment">;calculate sustain time from subtracting attack and decay</emphasis>
+<emphasis role="opc">printf_i</emphasis> "sutain time<emphasis role="op">=</emphasis> note duration <emphasis role="op">-</emphasis> attack <emphasis role="op">-</emphasis> decay <emphasis role="op">-</emphasis><emphasis role="op">-</emphasis><emphasis role="op">></emphasis> <emphasis role="op">%</emphasis>.1f<emphasis role="op">-</emphasis><emphasis role="op">%</emphasis>.1f<emphasis role="op">-</emphasis><emphasis role="op">%</emphasis>.1f <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>.1f\n", 1, idur, iatt, idec, isus
+
+kenv <emphasis role="opc">expseg</emphasis> 0.01, iatt, 1, isus, 1, idec, 0.01 <emphasis role="comment">;envelope</emphasis>
+asig <emphasis role="opc">poscil</emphasis> 1<emphasis role="op">*</emphasis>kenv, 200, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="comment">; attack decay</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 3 .1 .2
+<emphasis role="stamnt">i</emphasis> 1 4 3 .5 1.5
+<emphasis role="stamnt">i</emphasis> 1 8 5 4 .5
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/sum.csd.xml b/examples-xml/sum.csd.xml
new file mode 100644
index 0000000..e76bd0f
--- /dev/null
+++ b/examples-xml/sum.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o sum.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+a1 <emphasis role="opc">oscili</emphasis> 1, 10.0, gisine <emphasis role="comment">;combine 3 sinusses</emphasis>
+a2 <emphasis role="opc">oscili</emphasis> 1, 1.0, gisine <emphasis role="comment">;at different rates</emphasis>
+a3 <emphasis role="opc">oscili</emphasis> 1, 3.0, gisine
+ares <emphasis role="opc">sum</emphasis> a1, a2, a3 <emphasis role="comment">;sum them</emphasis>
+
+ares <emphasis role="op">=</emphasis> ares<emphasis role="op">*</emphasis>100 <emphasis role="comment">;scale result and</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .5, ares<emphasis role="op">+</emphasis>110, gisine <emphasis role="comment">;add to frequency </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/sumarray.csd.xml b/examples-xml/sumarray.csd.xml
new file mode 100644
index 0000000..d44bb20
--- /dev/null
+++ b/examples-xml/sumarray.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;example by joachim heintz</emphasis>
+
+ <emphasis role="ohdr">seed</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">;create an array with 10 elements</emphasis>
+kArr[] <emphasis role="opc">init</emphasis> 10
+<emphasis role="comment">;fill in random numbers and print them out</emphasis>
+kIndx <emphasis role="op">=</emphasis> 0
+ until kIndx <emphasis role="op">==</emphasis> 10 do
+kNum <emphasis role="opc">random</emphasis> 0, 10
+kArr[kIndx] <emphasis role="op">=</emphasis> kNum
+ <emphasis role="opc">printf</emphasis> "kArr[<emphasis role="op">%</emphasis>d] <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>10f\n", kIndx<emphasis role="op">+</emphasis>1, kIndx, kNum
+kIndx <emphasis role="op">+</emphasis><emphasis role="op">=</emphasis> 1
+ od
+<emphasis role="comment">;calculate sum of all values and print it out</emphasis>
+kSum <emphasis role="opc">sumarray</emphasis> kArr
+ <emphasis role="opc">printf</emphasis> "Sum of all values <emphasis role="opc">in</emphasis> kArr <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", kIndx<emphasis role="op">+</emphasis>1, kSum
+ <emphasis role="opc">turnoff</emphasis>
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 0.1
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/syncgrain.csd.xml b/examples-xml/syncgrain.csd.xml
index 55e7748..99fda79 100644
--- a/examples-xml/syncgrain.csd.xml
+++ b/examples-xml/syncgrain.csd.xml
@@ -2,16 +2,16 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o syncgrain.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
<emphasis role="oblock">instr</emphasis> 1
@@ -21,21 +21,22 @@ igrsize <emphasis role="op">=</emphasis> 0.04
ifreq <emphasis role="op">=</emphasis> iolaps<emphasis role="op">/</emphasis>igrsize
ips <emphasis role="op">=</emphasis> 1<emphasis role="op">/</emphasis>iolaps
-istr <emphasis role="op">=</emphasis> .5 <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> timescale <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
-ipitch <emphasis role="op">=</emphasis> 1 <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> pitchscale <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
-
-a1 <emphasis role="opc">syncgrain</emphasis> 16000, ifreq, ipitch, igrsize, ips<emphasis role="op">*</emphasis>istr, 1, 2, iolaps
- <emphasis role="opc">outs</emphasis> a1, a1
-<emphasis role="oblock">endin</emphasis>
+istr <emphasis role="op">=</emphasis> .3 <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> timescale <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+ipitch <emphasis role="op">=</emphasis> p4 <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> pitchscale <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+asig <emphasis role="opc">syncgrain</emphasis> 1, ifreq, ipitch, igrsize, ips<emphasis role="op">*</emphasis>istr, 1, 2, iolaps
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>1 0 0 1 "beats.wav" 0 0 0
+<emphasis role="stamnt">f</emphasis>1 0 0 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 0 <emphasis role="comment">;deferred table</emphasis>
<emphasis role="stamnt">f</emphasis>2 0 8192 20 2 1
-<emphasis role="stamnt">i</emphasis>1 0 4
- <emphasis role="stamnt">e</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 5 1
+<emphasis role="stamnt">i</emphasis>1 + 5 4
+<emphasis role="stamnt">i</emphasis>1 + 5 .8
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/syncloop.csd.xml b/examples-xml/syncloop.csd.xml
index b67d79e..11bacba 100644
--- a/examples-xml/syncloop.csd.xml
+++ b/examples-xml/syncloop.csd.xml
@@ -2,16 +2,16 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o syncloop.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
<emphasis role="oblock">instr</emphasis> 1
@@ -21,20 +21,20 @@ igrsize <emphasis role="op">=</emphasis> 0.01
ifreq <emphasis role="op">=</emphasis> iolaps<emphasis role="op">/</emphasis>igrsize
ips <emphasis role="op">=</emphasis> 1<emphasis role="op">/</emphasis>iolaps
-istr <emphasis role="op">=</emphasis> .5 <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> timescale <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
+istr <emphasis role="op">=</emphasis> p4 <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> timescale <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
ipitch <emphasis role="op">=</emphasis> 1 <emphasis role="op">/</emphasis><emphasis role="op">*</emphasis> pitchscale <emphasis role="op">*</emphasis><emphasis role="op">/</emphasis>
-a1 <emphasis role="opc">syncloop</emphasis> 16000, ifreq, ipitch, igrsize, ips<emphasis role="op">*</emphasis>istr, .3, .75, 1, 2, iolaps
- <emphasis role="opc">outs</emphasis> a1, a1
-<emphasis role="oblock">endin</emphasis>
-
+asig <emphasis role="opc">syncloop</emphasis> 1, ifreq, ipitch, igrsize, ips<emphasis role="op">*</emphasis>istr, .3, .75, 1, 2, iolaps
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">f</emphasis>1 0 0 1 "beats.wav" 0 0 0
<emphasis role="stamnt">f</emphasis>2 0 8192 20 2 1
-<emphasis role="stamnt">i</emphasis>1 0 6
+<emphasis role="stamnt">i</emphasis>1 0 6 .5
+<emphasis role="stamnt">i</emphasis>1 7 6 .15
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/system.csd.xml b/examples-xml/system.csd.xml
index 6bca290..d67e936 100644
--- a/examples-xml/system.csd.xml
+++ b/examples-xml/system.csd.xml
@@ -20,7 +20,7 @@
ires <emphasis role="opc">system_i</emphasis> 1,{{ ps
<emphasis role="opc">date</emphasis>
cd <emphasis role="op">~</emphasis><emphasis role="op">/</emphasis>Desktop
- pwd
+ <emphasis role="opc">pwd</emphasis>
ls <emphasis role="op">-</emphasis>l
whois csounds.com
}}
@@ -33,7 +33,7 @@ ires <emphasis role="opc">system_i</emphasis> 1,{{ ps
ires <emphasis role="opc">system_i</emphasis> 1,{{ ps
<emphasis role="opc">date</emphasis>
cd <emphasis role="op">~</emphasis><emphasis role="op">/</emphasis>Desktop
- pwd
+ <emphasis role="opc">pwd</emphasis>
ls <emphasis role="op">-</emphasis>l
whois csounds.com
}}, 1
diff --git a/examples-xml/t.csd.xml b/examples-xml/t.csd.xml
new file mode 100644
index 0000000..c4ad7cb
--- /dev/null
+++ b/examples-xml/t.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o t.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aenv <emphasis role="opc">expseg</emphasis> .01, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0.01
+asig <emphasis role="opc">poscil3</emphasis> .8<emphasis role="op">*</emphasis>aenv, p4, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">t</emphasis> 0 240 12 30 15 240 <emphasis role="comment">;start tempo = 240 </emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 110 <emphasis role="comment">;tempo = 240</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 2 220 <emphasis role="comment">;slow down &amp;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 6 2 440 <emphasis role="comment">;slow down &amp;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 9 2 880 <emphasis role="comment">;slow down &amp; </emphasis>
+<emphasis role="stamnt">i</emphasis> 1 12 2 110 <emphasis role="comment">;slow down to 30 at 12 seconds</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 15 2 220 <emphasis role="comment">;speed up to 240 again</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 18 2 440 <emphasis role="comment">;stay at tempo 240</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 21 2 880
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tab.csd.xml b/examples-xml/tab.csd.xml
new file mode 100644
index 0000000..af9b501
--- /dev/null
+++ b/examples-xml/tab.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tab.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gifn1 <emphasis role="ohdr">ftgen</emphasis> 1, 0, 0, 1, "flute.aiff", 0, 4, 0 <emphasis role="comment">;deferred-size table</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+atab <emphasis role="opc">init</emphasis> 0
+isize <emphasis role="opc">tableng</emphasis> 1 <emphasis role="comment">;length of table?</emphasis>
+<emphasis role="opc">print</emphasis> isize
+andx <emphasis role="opc">phasor</emphasis> 1 <emphasis role="op">/</emphasis> (isize <emphasis role="op">/</emphasis> sr)
+asig <emphasis role="opc">tab</emphasis> andx, 1, 1 <emphasis role="comment">;has a 0 to 1 range</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+
+<emphasis role="stamnt">i</emphasis> 1 0 2.3
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tablecopy.csd.xml b/examples-xml/tablecopy.csd.xml
new file mode 100644
index 0000000..3d7cbe2
--- /dev/null
+++ b/examples-xml/tablecopy.csd.xml
@@ -0,0 +1,69 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tablecopy.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">;after an example from Jonathan Murphy </emphasis>
+
+gilen <emphasis role="op">=</emphasis> 7
+gilist <emphasis role="ohdr">ftgen</emphasis> 1, 0, gilen <emphasis role="op">+</emphasis> 1, <emphasis role="op">-</emphasis>2, 2, 3, 4, 5, 6, 7 <emphasis role="comment">;only 6 elements, so 1 is doubled</emphasis>
+gitmp <emphasis role="ohdr">ftgen</emphasis> 2, 0, gilen <emphasis role="op">+</emphasis> 1, <emphasis role="op">-</emphasis>2, 0 <emphasis role="comment">;empty table</emphasis>
+gkmax <emphasis role="opc">init</emphasis> gilen
+
+<emphasis role="ohdr">seed</emphasis> 0 <emphasis role="comment">;each time different </emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ktrig <emphasis role="opc">metro</emphasis> 3 <emphasis role="comment">;trigger values</emphasis>
+krnd <emphasis role="opc">random</emphasis> 0, gkmax
+
+<emphasis role="octrl">if</emphasis> (ktrig <emphasis role="op">==</emphasis> 1) then
+ kval <emphasis role="opc">table</emphasis> krnd, gilist
+ <emphasis role="opc">tablew</emphasis> 0, krnd, gilist
+ kread <emphasis role="op">=</emphasis> 0
+ kwrite <emphasis role="op">=</emphasis> 0
+<emphasis role="olabel">start</emphasis><emphasis role="op">:</emphasis>
+ knew <emphasis role="opc">table</emphasis> kread, gilist
+<emphasis role="octrl">if</emphasis> (knew <emphasis role="op">!=</emphasis> 0) then
+ <emphasis role="opc">tablew</emphasis> knew, kwrite, gitmp
+ kwrite <emphasis role="op">=</emphasis> kwrite <emphasis role="op">+</emphasis> 1
+<emphasis role="octrl">endif</emphasis>
+ kread <emphasis role="op">=</emphasis> kread <emphasis role="op">+</emphasis> 1
+<emphasis role="octrl">if</emphasis> (kread <emphasis role="op">&lt;=</emphasis> gilen) <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">start</emphasis>
+ <emphasis role="opc">tablecopy</emphasis> gilist, gitmp <emphasis role="comment">;fill with zeroes</emphasis>
+ gkmax <emphasis role="op">=</emphasis> gkmax <emphasis role="op">-</emphasis> 1
+<emphasis role="octrl">endif</emphasis>
+
+<emphasis role="opc">printk2</emphasis> kval
+
+<emphasis role="octrl">if</emphasis> (gkmax <emphasis role="op">&lt;</emphasis> 0) then
+ <emphasis role="opc">event</emphasis> "i", 2, 0, 1<emphasis role="op">/</emphasis><emphasis role="ohdr">kr</emphasis> <emphasis role="comment">;when ready, then stop</emphasis>
+<emphasis role="octrl">endif</emphasis>
+
+asig <emphasis role="opc">vco2</emphasis> .5, 40<emphasis role="op">*</emphasis>kval <emphasis role="comment">;sound generation</emphasis>
+<emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+<emphasis role="opc">exitnow</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tablefilter.csd.xml b/examples-xml/tablefilter.csd.xml
index f79dabe..03f3abc 100644
--- a/examples-xml/tablefilter.csd.xml
+++ b/examples-xml/tablefilter.csd.xml
@@ -9,20 +9,22 @@
<emphasis role="ohdr">ksmps</emphasis><emphasis role="op">=</emphasis>10
<emphasis role="ohdr">nchnls</emphasis><emphasis role="op">=</emphasis>1
- gifarn <emphasis role="opc">init</emphasis> 8 <emphasis role="comment">; initialise integer for Farey Sequence F_8</emphasis>
+ gifarn <emphasis role="opc">init</emphasis> 8 <emphasis role="comment">; initialise integer for Farey Sequence F_8</emphasis>
gires <emphasis role="opc">fareyleni</emphasis> gifarn <emphasis role="comment">; calculate length of F_8, returns 23</emphasis>
- <emphasis role="comment">; the table length won't be a power of 2 </emphasis>
+ <emphasis role="comment">; the table length won't be a power of 2</emphasis>
<emphasis role="comment">; (The length of a Farey Sequence with n > 1 is always odd)</emphasis>
- gilen <emphasis role="opc">init</emphasis> gires <emphasis role="op">*</emphasis> <emphasis role="op">-</emphasis>1
-
+ gilen <emphasis role="opc">init</emphasis> gires <emphasis role="op">*</emphasis> <emphasis role="op">-</emphasis>1
+
+ gifarey <emphasis role="ohdr">ftgen</emphasis> 200, 0, gilen, "farey", gifarn, 0
+
<emphasis role="comment">; initialize destiniation table with 0s</emphasis>
gifiltered <emphasis role="ohdr">ftgen</emphasis> 0, 0, gilen, 21, 1, 0
<emphasis role="comment">; initialize second destiniation table with 0s</emphasis>
gifiltered2 <emphasis role="ohdr">ftgen</emphasis> 0, 0, gilen, 21, 1, 0
-
- <emphasis role="comment">; table filtering opcode: dest. source, mode, threshold</emphasis>
- ginumpassed <emphasis role="opc">tablefilteri</emphasis> gifiltered, gifarey, 1, 6
+
+ <emphasis role="comment">; table filtering opcode: dest. source, mode, threshold</emphasis>
+ ginumpassed <emphasis role="opc">tablefilteri</emphasis> gifiltered, gifarey, 1, 6
<emphasis role="comment">; the threshold parameter indicates that denominators whose weights are heavier</emphasis>
<emphasis role="comment">; than 6 are not passing through the filter. The weight is calculated using</emphasis>
<emphasis role="comment">; Clarence Barlow's function of indigestibility of a number. According to this function,</emphasis>
@@ -31,36 +33,36 @@
<emphasis role="comment">; that have passed the test and which have been copied to the destination table 'gifiltered'</emphasis>
<emphasis role="comment">; apply a different filter:</emphasis>
- ginumpassed2 <emphasis role="opc">tablefilteri</emphasis> gifiltered2, gifarey, 2, 5
+ ginumpassed2 <emphasis role="opc">tablefilteri</emphasis> gifiltered2, gifarey, 2, 5
<emphasis role="comment">; In mode=2 we again test the digestibility of the denominators of the</emphasis>
<emphasis role="comment">; fractions in the source table.</emphasis>
<emphasis role="comment">; The difference to mode=1 is that we now let pass only vaules from the</emphasis>
- <emphasis role="comment">; source that are as heavy as the threshold or greater. </emphasis>
+ <emphasis role="comment">; source that are as heavy as the threshold or greater.</emphasis>
-<emphasis role="oblock">instr</emphasis> 4
+<emphasis role="oblock">instr</emphasis> 4
kndx <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">; read out elements of now filtered F_8 sequentially and print to file</emphasis>
- <emphasis role="octrl">if</emphasis> (kndx <emphasis role="op">&lt;</emphasis> ginumpassed) then
- kelem <emphasis role="opc">tab</emphasis> kndx, gifiltered
- <emphasis role="opc">fprintks</emphasis> "fareyfilter_lp.txt", "<emphasis role="op">%</emphasis>2.6f\\n", kelem
- kndx <emphasis role="op">=</emphasis> kndx<emphasis role="op">+</emphasis>1
- <emphasis role="octrl">endif</emphasis>
+ <emphasis role="octrl">if</emphasis> (kndx <emphasis role="op">&lt;</emphasis> ginumpassed) then
+ kelem <emphasis role="opc">tab</emphasis> kndx, gifiltered
+ <emphasis role="opc">fprintks</emphasis> "fareyfilter_lp.txt", "<emphasis role="op">%</emphasis>2.6f\\n", kelem
+ kndx <emphasis role="op">=</emphasis> kndx<emphasis role="op">+</emphasis>1
+ <emphasis role="octrl">endif</emphasis>
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 5
kndx <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">; read out elements and print to file</emphasis>
- <emphasis role="octrl">if</emphasis> (kndx <emphasis role="op">&lt;</emphasis> ginumpassed2) then
- kelem <emphasis role="opc">tab</emphasis> kndx, gifiltered2
- <emphasis role="opc">fprintks</emphasis> "fareyfilter_hp.txt", "<emphasis role="op">%</emphasis>2.6f\\n", kelem
- kndx <emphasis role="op">=</emphasis> kndx<emphasis role="op">+</emphasis>1
+ <emphasis role="octrl">if</emphasis> (kndx <emphasis role="op">&lt;</emphasis> ginumpassed2) then
+ kelem <emphasis role="opc">tab</emphasis> kndx, gifiltered2
+ <emphasis role="opc">fprintks</emphasis> "fareyfilter_hp.txt", "<emphasis role="op">%</emphasis>2.6f\\n", kelem
+ kndx <emphasis role="op">=</emphasis> kndx<emphasis role="op">+</emphasis>1
<emphasis role="octrl">endif</emphasis>
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>1 0 23 "<emphasis role="stamnt">f</emphasis>arey" 8
-<emphasis role="stamnt">i</emphasis>4 0 1
-<emphasis role="stamnt">i</emphasis>5 0 1
+
+<emphasis role="stamnt">i</emphasis>4 0 1
+<emphasis role="stamnt">i</emphasis>5 0 1
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/tablei.csd.xml b/examples-xml/tablei.csd.xml
new file mode 100644
index 0000000..19fccc1
--- /dev/null
+++ b/examples-xml/tablei.csd.xml
@@ -0,0 +1,68 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tablei.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0 <emphasis role="comment">;generate new values every time the instr is played</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ifn <emphasis role="op">=</emphasis> p4
+isize <emphasis role="op">=</emphasis> p5
+ithresh <emphasis role="op">=</emphasis> 0.5
+
+itemp <emphasis role="ohdr">ftgen</emphasis> ifn, 0, isize, 21, 2
+
+iwrite_value <emphasis role="op">=</emphasis> 0
+i_index <emphasis role="op">=</emphasis> 0
+
+<emphasis role="olabel">loop_start</emphasis><emphasis role="op">:</emphasis>
+ iread_value <emphasis role="opc">tablei</emphasis> i_index, ifn
+
+ <emphasis role="octrl">if</emphasis> iread_value <emphasis role="op">></emphasis> ithresh then
+ iwrite_value <emphasis role="op">=</emphasis> 1
+ <emphasis role="octrl">else</emphasis>
+ iwrite_value <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1
+ <emphasis role="octrl">endif</emphasis>
+<emphasis role="opc">tableiw</emphasis> iwrite_value, i_index, ifn
+<emphasis role="octrl">loop_lt</emphasis> i_index, 1, isize, <emphasis role="olabel">loop_start</emphasis>
+ <emphasis role="opc">turnoff</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ifn <emphasis role="op">=</emphasis> p4
+isize <emphasis role="op">=</emphasis> <emphasis role="opc">ftlen</emphasis>(ifn)
+<emphasis role="opc">prints</emphasis> "Index\tValue\n"
+
+i_index <emphasis role="op">=</emphasis> 0
+<emphasis role="olabel">loop_start</emphasis><emphasis role="op">:</emphasis>
+ ivalue <emphasis role="opc">tablei</emphasis> i_index, ifn
+ <emphasis role="opc">prints</emphasis> "<emphasis role="op">%</emphasis>d<emphasis role="op">:</emphasis>\t<emphasis role="op">%</emphasis>f\n", i_index, ivalue
+
+ <emphasis role="octrl">loop_lt</emphasis> i_index, 1, isize, <emphasis role="olabel">loop_start</emphasis> <emphasis role="comment">;read table 1 with our index</emphasis>
+
+aout <emphasis role="opc">oscili</emphasis> .5, 100, ifn <emphasis role="comment">;use table to play the polypulse</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1 100 16
+<emphasis role="stamnt">i</emphasis> 2 0 2 100
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tableikt.csd.xml b/examples-xml/tableikt.csd.xml
new file mode 100644
index 0000000..64411e3
--- /dev/null
+++ b/examples-xml/tableikt.csd.xml
@@ -0,0 +1,53 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tableikt.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ilowfn <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;lowest ftable wave</emphasis>
+ihighfn <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;highest ftable wave</emphasis>
+
+kswpenv <emphasis role="opc">line</emphasis> 1, p3, 0 <emphasis role="comment">;sweep envelope, calculate current table pair and interpolation amount</emphasis>
+inumtables <emphasis role="op">=</emphasis> ihighfn <emphasis role="op">-</emphasis> ilowfn <emphasis role="comment">;1 less than number of tables</emphasis>
+kfn1 <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(kswpenv<emphasis role="op">*</emphasis>inumtables) <emphasis role="op">+</emphasis> ilowfn
+ <emphasis role="opc">printks</emphasis> "play <emphasis role="opc">table</emphasis> no<emphasis role="op">:</emphasis> <emphasis role="op">%</emphasis>d\n", 1, kfn1
+kfn2 <emphasis role="op">=</emphasis> kfn1 <emphasis role="op">+</emphasis> 1
+kinterp <emphasis role="op">=</emphasis> <emphasis role="opc">frac</emphasis>(kswpenv<emphasis role="op">*</emphasis>inumtables)
+ixmode <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;read tables with phasor</emphasis>
+aphase <emphasis role="opc">phasor</emphasis> 40
+asig <emphasis role="opc">tableikt</emphasis> aphase, kfn1, ixmode <emphasis role="comment">;normalized index</emphasis>
+ <emphasis role="octrl">if</emphasis> kswpenv <emphasis role="op">==</emphasis> 1.0 <emphasis role="octrl">kgoto</emphasis> skipfn2 <emphasis role="comment">;if kfn1 is last table, there is no kfn2</emphasis>
+ asig2 <emphasis role="opc">tableikt</emphasis> aphase, kfn2, ixmode
+ skipfn2<emphasis role="op">:</emphasis>
+ amix <emphasis role="opc">ntrpol</emphasis> asig, asig2, kinterp <emphasis role="comment">;interpolate between tables and output</emphasis>
+ <emphasis role="opc">outs</emphasis> amix<emphasis role="op">*</emphasis>.5, amix<emphasis role="op">*</emphasis>.5
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1 .5
+<emphasis role="stamnt">f</emphasis> 3 0 16384 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 0 0 <emphasis role="comment">;a sample</emphasis>
+<emphasis role="stamnt">f</emphasis> 4 0 16384 10 1 .5 .3 .25 .2 .16 .14 .125 .111 <emphasis role="comment">;sawtooth </emphasis>
+<emphasis role="stamnt">f</emphasis> 5 0 16384 10 1 .4 .3 .25 .2
+<emphasis role="stamnt">f</emphasis> 6 0 16384 10 1 .3 .3 .25 .2 .16
+<emphasis role="stamnt">f</emphasis> 7 0 16384 10 1 1 1 1 .7 .5 .3 .1 <emphasis role="comment">;pulse</emphasis>
+<emphasis role="stamnt">f</emphasis> 8 0 16384 1 "beats.wav" 0 0 0 <emphasis role="comment">;a sample</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10 1 8
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tableimix.csd.xml b/examples-xml/tableimix.csd.xml
new file mode 100644
index 0000000..33f246b
--- /dev/null
+++ b/examples-xml/tableimix.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tableimix.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisine <emphasis role="ohdr">ftgen</emphasis> 1, 0, 256, 10, 1, 0, 0, .4 <emphasis role="comment">;sinoid</emphasis>
+gisaw <emphasis role="ohdr">ftgen</emphasis> 2, 0, 1024, 7, 0, 256, 1 <emphasis role="comment">;saw</emphasis>
+gimix <emphasis role="ohdr">ftgen</emphasis> 100, 0, 256, 7, 0, 256, 1 <emphasis role="comment">;used to mix</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ <emphasis role="opc">tableimix</emphasis> 100, 0, 256, 1, 0, 1, 2, 0, .5
+asig <emphasis role="opc">poscil</emphasis> .5, 110, gimix <emphasis role="comment">;mix table 1 &amp; 2 </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tableiw.csd.xml b/examples-xml/tableiw.csd.xml
new file mode 100644
index 0000000..943135d
--- /dev/null
+++ b/examples-xml/tableiw.csd.xml
@@ -0,0 +1,68 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tableiw.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0 <emphasis role="comment">;generate new values every time the instr is played</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ifn <emphasis role="op">=</emphasis> p4
+isize <emphasis role="op">=</emphasis> p5
+ithresh <emphasis role="op">=</emphasis> 0.5
+
+itemp <emphasis role="ohdr">ftgen</emphasis> ifn, 0, isize, 21, 2
+
+iwrite_value <emphasis role="op">=</emphasis> 0
+i_index <emphasis role="op">=</emphasis> 0
+
+<emphasis role="olabel">loop_start</emphasis><emphasis role="op">:</emphasis>
+ iread_value <emphasis role="opc">tablei</emphasis> i_index, ifn
+
+ <emphasis role="octrl">if</emphasis> iread_value <emphasis role="op">></emphasis> ithresh then
+ iwrite_value <emphasis role="op">=</emphasis> 1
+ <emphasis role="octrl">else</emphasis>
+ iwrite_value <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1
+ <emphasis role="octrl">endif</emphasis>
+<emphasis role="opc">tableiw</emphasis> iwrite_value, i_index, ifn
+<emphasis role="octrl">loop_lt</emphasis> i_index, 1, isize, <emphasis role="olabel">loop_start</emphasis>
+ <emphasis role="opc">turnoff</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ifn <emphasis role="op">=</emphasis> p4
+isize <emphasis role="op">=</emphasis> <emphasis role="opc">ftlen</emphasis>(ifn)
+<emphasis role="opc">prints</emphasis> "Index\tValue\n"
+
+i_index <emphasis role="op">=</emphasis> 0
+<emphasis role="olabel">loop_start</emphasis><emphasis role="op">:</emphasis>
+ ivalue <emphasis role="opc">tablei</emphasis> i_index, ifn
+ <emphasis role="opc">prints</emphasis> "<emphasis role="op">%</emphasis>d<emphasis role="op">:</emphasis>\t<emphasis role="op">%</emphasis>f\n", i_index, ivalue
+
+ <emphasis role="octrl">loop_lt</emphasis> i_index, 1, isize, <emphasis role="olabel">loop_start</emphasis> <emphasis role="comment">;read table 1 with our index</emphasis>
+
+aout <emphasis role="opc">oscili</emphasis> .5, 100, ifn <emphasis role="comment">;use table to play the polypulse</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1 100 16
+<emphasis role="stamnt">i</emphasis> 2 0 2 100
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tablekt.csd.xml b/examples-xml/tablekt.csd.xml
new file mode 100644
index 0000000..f287104
--- /dev/null
+++ b/examples-xml/tablekt.csd.xml
@@ -0,0 +1,45 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tablekt.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0
+
+gift1 <emphasis role="ohdr">ftgen</emphasis> 1, 0, 1024, 10, 1 <emphasis role="comment">;sine wave</emphasis>
+gift2 <emphasis role="ohdr">ftgen</emphasis> 2, 0, 1024, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1 <emphasis role="comment">;pulse</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 1
+andx <emphasis role="opc">phasor</emphasis> 400 <emphasis role="comment">;phasor for reading the index</emphasis>
+kfn <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;initialize the choice of the function table</emphasis>
+kmetro <emphasis role="opc">init</emphasis> 1 <emphasis role="comment">;initialize the frequency of the metro</emphasis>
+knewft <emphasis role="opc">metro</emphasis> kmetro <emphasis role="comment">;make a new choice for selecting the function table once a second</emphasis>
+
+<emphasis role="octrl">if</emphasis> knewft <emphasis role="op">==</emphasis> 1 then
+ kfn <emphasis role="op">=</emphasis> (kfn <emphasis role="op">==</emphasis> 1 <emphasis role="op">?</emphasis> 2 <emphasis role="op">:</emphasis> 1) <emphasis role="comment">;switch between 1 and 2</emphasis>
+ kmetro <emphasis role="opc">random</emphasis> .5, 2 <emphasis role="comment">;create new metro frequency</emphasis>
+ <emphasis role="opc">printk2</emphasis> kfn
+<emphasis role="octrl">endif</emphasis>
+
+ares <emphasis role="opc">tablekt</emphasis> andx, kfn, 1
+<emphasis role="opc">outs</emphasis> ares, ares
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tablemix.csd.xml b/examples-xml/tablemix.csd.xml
new file mode 100644
index 0000000..b290bd6
--- /dev/null
+++ b/examples-xml/tablemix.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tablemix.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisinoid <emphasis role="ohdr">ftgen</emphasis> 1, 0, 256, 10, 1, 0, 0, .4 <emphasis role="comment">;sinoid</emphasis>
+gisaw <emphasis role="ohdr">ftgen</emphasis> 2, 0, 1024, 7, 0, 256, 1 <emphasis role="comment">;saw</emphasis>
+gimix <emphasis role="ohdr">ftgen</emphasis> 100, 0, 256, 7, 0, 256, 1 <emphasis role="comment">;destination table</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kgain <emphasis role="opc">linseg</emphasis> 0, p3<emphasis role="op">*</emphasis>.5, .5, p3<emphasis role="op">*</emphasis>.5, 0
+ <emphasis role="opc">tablemix</emphasis> 100, 0, 256, 1, 0, 1, 2, 0, kgain
+asig <emphasis role="opc">poscil</emphasis> .5, 110, gimix <emphasis role="comment">;mix table 1 &amp; 2 </emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tableng.csd.xml b/examples-xml/tableng.csd.xml
index d3567db..242d4e1 100644
--- a/examples-xml/tableng.csd.xml
+++ b/examples-xml/tableng.csd.xml
@@ -2,40 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o tableng.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Let's look at Table #1.</emphasis>
- ifn <emphasis role="op">=</emphasis> 1
- ilen <emphasis role="opc">tableng</emphasis> ifn
+gifn1 <emphasis role="ohdr">ftgen</emphasis> 1, 0, 0, 1, "flute.aiff", 0, 4, 0 <emphasis role="comment">;deferred-size table</emphasis>
- <emphasis role="opc">print</emphasis> ilen
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+isize <emphasis role="opc">tableng</emphasis> 1
+<emphasis role="opc">print</emphasis> isize
+andx <emphasis role="opc">phasor</emphasis> 1 <emphasis role="op">/</emphasis> (isize <emphasis role="op">/</emphasis> sr) <emphasis role="comment">;play at correct pitch</emphasis>
+asig <emphasis role="opc">tab</emphasis> andx, 1, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 2.3
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/tableseg.csd.xml b/examples-xml/tableseg.csd.xml
new file mode 100644
index 0000000..d57e86a
--- /dev/null
+++ b/examples-xml/tableseg.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tableseg.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">; analyze "fox.wav" with PVANAL first</emphasis>
+iend <emphasis role="op">=</emphasis> p4
+ktime <emphasis role="opc">line</emphasis> 0, p3, iend
+ <emphasis role="opc">tableseg</emphasis> p5, p3, p6 <emphasis role="comment">;morph from table 1</emphasis>
+asig <emphasis role="opc">vpvoc</emphasis> ktime, 1, "fox.pvx" <emphasis role="comment">;to table 2</emphasis>
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>3, asig<emphasis role="op">*</emphasis>3
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 512 9 .5 1 0
+<emphasis role="stamnt">f</emphasis> 2 0 512 7 0 20 1 30 0 230 0 232 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 10 2.7 1 2
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tablexseg.csd.xml b/examples-xml/tablexseg.csd.xml
new file mode 100644
index 0000000..bfad608
--- /dev/null
+++ b/examples-xml/tablexseg.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tablexseg.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">; analyze "fox.wav" with PVANAL first</emphasis>
+iend <emphasis role="op">=</emphasis> p4
+ktime <emphasis role="opc">line</emphasis> 0, p3, iend
+ <emphasis role="opc">tablexseg</emphasis> p5, p3, p6 <emphasis role="comment">;morph from table 1</emphasis>
+asig <emphasis role="opc">vpvoc</emphasis> ktime, 1, "fox.pvx" <emphasis role="comment">;to table 2</emphasis>
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>3, asig<emphasis role="op">*</emphasis>3
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 512 9 .5 1 0
+<emphasis role="stamnt">f</emphasis> 2 0 512 5 1 60 0.01 390 0.01 62 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 5 2.7 1 2
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tabmap.csd.xml b/examples-xml/tabmap.csd.xml
new file mode 100644
index 0000000..f92a4d9
--- /dev/null
+++ b/examples-xml/tabmap.csd.xml
@@ -0,0 +1,33 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+ kS[] <emphasis role="opc">init</emphasis> 10
+ kT[] <emphasis role="opc">init</emphasis> 10
+ kS tabgen 0,10,0.01
+ kT tabmap kS,"sin"
+ <emphasis role="opc">printk2</emphasis> kS[0]
+ <emphasis role="opc">printk2</emphasis> kS[4]
+ <emphasis role="opc">printk2</emphasis> kS[9]
+ <emphasis role="opc">printk2</emphasis> kT[0]
+ <emphasis role="opc">printk2</emphasis> kT[4]
+ <emphasis role="opc">printk2</emphasis> kT[9]
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tabmorph.csd.xml b/examples-xml/tabmorph.csd.xml
new file mode 100644
index 0000000..a5f352c
--- /dev/null
+++ b/examples-xml/tabmorph.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tabmorph.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 10, 1 <emphasis role="comment">;sine wave</emphasis>
+giSquare <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 1, 4096, 1, 0, <emphasis role="op">-</emphasis>1, 4096, <emphasis role="op">-</emphasis>1 <emphasis role="comment">;square wave</emphasis>
+giTri <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 0, 2048, 1, 4096, <emphasis role="op">-</emphasis>1, 2048, 0 <emphasis role="comment">;triangle wave</emphasis>
+giSaw <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 1, 8192, <emphasis role="op">-</emphasis>1 <emphasis role="comment">;sawtooth wave, downward slope</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+iamp <emphasis role="op">=</emphasis> .7
+kindex <emphasis role="opc">phasor</emphasis> 440 <emphasis role="comment">;read table value at this index</emphasis>
+kindex <emphasis role="op">=</emphasis> kindex<emphasis role="op">*</emphasis>8192 <emphasis role="comment">;for all 8192 index points</emphasis>
+kweightpoint <emphasis role="op">=</emphasis> 0.5 <emphasis role="comment">;set weightpoint</emphasis>
+ktabnum1 <emphasis role="opc">line</emphasis> 0, p3, 3 <emphasis role="comment">;morph through all tables</emphasis>
+ktabnum2 <emphasis role="op">=</emphasis> 2 <emphasis role="comment">;set to triangle wave</emphasis>
+ksig <emphasis role="opc">tabmorph</emphasis> kindex, kweightpoint, ktabnum1, ktabnum2, giSine, giSquare, giTri, giSaw
+ksig <emphasis role="op">=</emphasis> ksig<emphasis role="op">*</emphasis>iamp
+asig <emphasis role="opc">interp</emphasis> ksig <emphasis role="comment">;convert to audio signal</emphasis>
+<emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tabmorpha.csd.xml b/examples-xml/tabmorpha.csd.xml
new file mode 100644
index 0000000..73e4ee4
--- /dev/null
+++ b/examples-xml/tabmorpha.csd.xml
@@ -0,0 +1,42 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tabmorpha.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis>1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 10, 1 <emphasis role="comment">; sine wave</emphasis>
+giSquare <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 1, 4096, 1, 0, <emphasis role="op">-</emphasis>1, 4096, <emphasis role="op">-</emphasis>1 <emphasis role="comment">; square wave </emphasis>
+giTri <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 0, 2048, 1, 4096, <emphasis role="op">-</emphasis>1, 2048, 0 <emphasis role="comment">; triangle wave </emphasis>
+giSaw <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 1, 8192, <emphasis role="op">-</emphasis>1 <emphasis role="comment">; sawtooth wave, downward slope </emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 1
+
+iamp <emphasis role="op">=</emphasis> .7
+aindex <emphasis role="opc">phasor</emphasis> 110 <emphasis role="comment">; read table value at this index</emphasis>
+aweightpoint <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; set weightpoint</emphasis>
+atabnum1 <emphasis role="opc">line</emphasis> 0, p3, 3 <emphasis role="comment">; morph through all tables</emphasis>
+atabnum2 <emphasis role="op">=</emphasis> 2 <emphasis role="comment">; set to triangle wave</emphasis>
+asig <emphasis role="opc">tabmorpha</emphasis> aindex, aweightpoint, atabnum1,atabnum2, giSine, giSquare, giTri, giSaw
+asig <emphasis role="op">=</emphasis> asig<emphasis role="op">*</emphasis>iamp
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tabmorphak.csd.xml b/examples-xml/tabmorphak.csd.xml
new file mode 100644
index 0000000..af42458
--- /dev/null
+++ b/examples-xml/tabmorphak.csd.xml
@@ -0,0 +1,42 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tabmorphak.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis>1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 10, 1 <emphasis role="comment">; sine wave</emphasis>
+giSquare <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 1, 4096, 1, 0, <emphasis role="op">-</emphasis>1, 4096, <emphasis role="op">-</emphasis>1 <emphasis role="comment">; square wave </emphasis>
+giTri <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 0, 2048, 1, 4096, <emphasis role="op">-</emphasis>1, 2048, 0 <emphasis role="comment">; triangle wave </emphasis>
+giSaw <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 1, 8192, <emphasis role="op">-</emphasis>1 <emphasis role="comment">; sawtooth wave, downward slope </emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+iamp <emphasis role="op">=</emphasis> .7
+aindex <emphasis role="opc">phasor</emphasis> 110 <emphasis role="comment">; read table value at this index</emphasis>
+kweightpoint <emphasis role="opc">expon</emphasis> 0.001, p3, 1 <emphasis role="comment">; using the weightpoint to morph between two tables exponentially</emphasis>
+ktabnum1 <emphasis role="op">=</emphasis> p4 <emphasis role="comment">; first wave, it morphs to</emphasis>
+ktabnum2 <emphasis role="op">=</emphasis> p5 <emphasis role="comment">; the second wave</emphasis>
+asig <emphasis role="opc">tabmorphak</emphasis> aindex, kweightpoint, ktabnum1,ktabnum2, giSine, giSquare, giTri, giSaw
+asig <emphasis role="op">=</emphasis> asig<emphasis role="op">*</emphasis>iamp
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 5 0 1 <emphasis role="comment">;from sine to square wave</emphasis>
+<emphasis role="stamnt">i</emphasis>1 6 5 2 3 <emphasis role="comment">;from triangle to saw</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tabmorphi.csd.xml b/examples-xml/tabmorphi.csd.xml
new file mode 100644
index 0000000..87c260c
--- /dev/null
+++ b/examples-xml/tabmorphi.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tabmorphi.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 10, 1 <emphasis role="comment">;sine wave</emphasis>
+giSquare <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 1, 4096, 1, 0, <emphasis role="op">-</emphasis>1, 4096, <emphasis role="op">-</emphasis>1 <emphasis role="comment">;square wave</emphasis>
+giTri <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 0, 2048, 1, 4096, <emphasis role="op">-</emphasis>1, 2048, 0 <emphasis role="comment">;triangle wave</emphasis>
+giSaw <emphasis role="ohdr">ftgen</emphasis> 0, 0, 8193, 7, 1, 8192, <emphasis role="op">-</emphasis>1 <emphasis role="comment">;sawtooth wave, downward slope</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+iamp <emphasis role="op">=</emphasis> .7
+kindex <emphasis role="opc">phasor</emphasis> 440 <emphasis role="comment">;read table value at this index</emphasis>
+kindex <emphasis role="op">=</emphasis> kindex<emphasis role="op">*</emphasis>8192 <emphasis role="comment">;for all 8192 index points</emphasis>
+kweightpoint <emphasis role="op">=</emphasis> 0.5 <emphasis role="comment">;set weightpoint</emphasis>
+ktabnum1 <emphasis role="opc">line</emphasis> 0, p3, 3 <emphasis role="comment">;morph through all tables</emphasis>
+ktabnum2 <emphasis role="op">=</emphasis> 2 <emphasis role="comment">;set to triangle wave</emphasis>
+ksig <emphasis role="opc">tabmorphi</emphasis> kindex, kweightpoint, ktabnum1, ktabnum2, giSine, giSquare, giTri, giSaw
+ksig <emphasis role="op">=</emphasis> ksig<emphasis role="op">*</emphasis>iamp
+asig <emphasis role="opc">interp</emphasis> ksig <emphasis role="comment">;convert to audio signal</emphasis>
+<emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tabslice.csd.xml b/examples-xml/tabslice.csd.xml
new file mode 100644
index 0000000..6492e8d
--- /dev/null
+++ b/examples-xml/tabslice.csd.xml
@@ -0,0 +1,32 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-n
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+ kS[] <emphasis role="opc">init</emphasis> 10
+ kT[] <emphasis role="opc">init</emphasis> 5
+ kS tabgen 0,10,0.01
+ kT[] tabslice kS,3,7
+ <emphasis role="opc">printk2</emphasis> kT[0]
+ <emphasis role="opc">printk2</emphasis> kT[1]
+ <emphasis role="opc">printk2</emphasis> kT[2]
+ <emphasis role="opc">printk2</emphasis> kT[3]
+ <emphasis role="opc">printk2</emphasis> kT[4]
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 0
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tabsum.csd.xml b/examples-xml/tabsum.csd.xml
new file mode 100644
index 0000000..7def5e8
--- /dev/null
+++ b/examples-xml/tabsum.csd.xml
@@ -0,0 +1,44 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tab.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 2205
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;;; Give a value to the increment</emphasis>
+ kmax <emphasis role="op">=</emphasis> 256
+ knorm <emphasis role="opc">tabsum</emphasis> 1, 0, kmax
+ gkinc <emphasis role="op">=</emphasis> knorm<emphasis role="op">/</emphasis>10
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+ kmax <emphasis role="op">=</emphasis> 256
+ kx <emphasis role="op">=</emphasis> <emphasis role="opc">rnd</emphasis>(kmax)
+ krnd <emphasis role="opc">tabsum</emphasis> 1, 0, kx
+ knorm <emphasis role="opc">tabsum</emphasis> 1, 0, kmax
+ kvar <emphasis role="op">=</emphasis> krnd <emphasis role="op">/</emphasis> knorm <emphasis role="comment">;;; now n [0,1] range</emphasis>
+ asig <emphasis role="opc">oscil</emphasis> kvar, p4, 2
+ <emphasis role="opc">out</emphasis> asig
+<emphasis role="comment">;;; Make randomness give 1 more often</emphasis>
+ kc <emphasis role="opc">tab</emphasis> 0, 1
+ <emphasis role="opc">tablew</emphasis> kc<emphasis role="op">+</emphasis>gkinc, 0, 1
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 256 21 1
+<emphasis role="stamnt">f</emphasis>2 0 4096 10 1
+<emphasis role="stamnt">i</emphasis>1 0 0.1
+<emphasis role="stamnt">i</emphasis>2 0.1 3 440
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tambourine.csd.xml b/examples-xml/tambourine.csd.xml
index e91ce48..5d296d9 100644
--- a/examples-xml/tambourine.csd.xml
+++ b/examples-xml/tambourine.csd.xml
@@ -2,33 +2,32 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o tambourine.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 22050
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 2205
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1: An example of a tambourine.</emphasis>
-<emphasis role="oblock">instr</emphasis> 01
- a1 <emphasis role="opc">tambourine</emphasis> 15000, 0.01
-
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+idamp <emphasis role="op">=</emphasis> p4
+asig <emphasis role="opc">tambourine</emphasis> .8, 0.01, 30, idamp
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 .2 0
+<emphasis role="stamnt">i</emphasis> 1 + .2 >
+<emphasis role="stamnt">i</emphasis> 1 + 1 .7
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/tanh.csd.xml b/examples-xml/tanh.csd.xml
index 3606f90..61ff789 100644
--- a/examples-xml/tanh.csd.xml
+++ b/examples-xml/tanh.csd.xml
@@ -14,19 +14,21 @@
<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- irad <emphasis role="op">=</emphasis> 1
- i1 <emphasis role="op">=</emphasis> <emphasis role="opc">tanh</emphasis>(irad)
-
- <emphasis role="opc">print</emphasis> i1
+ asig1 <emphasis role="opc">vco</emphasis> 1, 440, 2, 0.4, 1
+ asig2 <emphasis role="opc">vco</emphasis> 1, 800, 3, 0.5, 1
+ asig <emphasis role="op">=</emphasis> asig1<emphasis role="op">+</emphasis>asig2 <emphasis role="comment">;; will go out of range</emphasis>
+ <emphasis role="opc">out</emphasis> <emphasis role="opc">tanh</emphasis>(asig) <emphasis role="comment">;; but tanh is a limiter</emphasis>
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 65536 10 1
<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 1
<emphasis role="stamnt">e</emphasis>
diff --git a/examples-xml/temposcal.csd.xml b/examples-xml/temposcal.csd.xml
new file mode 100644
index 0000000..f62c9fc
--- /dev/null
+++ b/examples-xml/temposcal.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o temposcal.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ilock <emphasis role="op">=</emphasis> p4
+itab <emphasis role="op">=</emphasis> 1
+ipitch <emphasis role="op">=</emphasis> 1
+iamp <emphasis role="op">=</emphasis> 0.8
+ktime <emphasis role="opc">linseg</emphasis> 0.3, p3<emphasis role="op">/</emphasis>2, 0.8, p3<emphasis role="op">/</emphasis>2, 0.3
+asig <emphasis role="opc">temposcal</emphasis> ktime, iamp, ipitch, itab, ilock
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 0 1 "<emphasis role="stamnt">f</emphasis>ox.wav" 0 4 0
+
+<emphasis role="stamnt">i</emphasis> 1 0 3.8 0 <emphasis role="comment">;no locking</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 4 3.8 1 <emphasis role="comment">;locking</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tigoto.csd.xml b/examples-xml/tigoto.csd.xml
new file mode 100644
index 0000000..0a1639e
--- /dev/null
+++ b/examples-xml/tigoto.csd.xml
@@ -0,0 +1,47 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tigoto.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+idur <emphasis role="op">=</emphasis> <emphasis role="opc">abs</emphasis>(p3) <emphasis role="comment">;make p3 positive even if p3 is negative in score</emphasis>
+itiv <emphasis role="opc">tival</emphasis>
+i1 <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">;assume this is tied note, so keep fase of oscili</emphasis>
+ <emphasis role="octrl">tigoto</emphasis> <emphasis role="olabel">slur</emphasis> <emphasis role="comment">;no reinitialisation on tied notes</emphasis>
+i1 <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;first note, so reset phase</emphasis>
+aatt <emphasis role="opc">line</emphasis> p4, idur, 0 <emphasis role="comment">;primary envelope</emphasis>
+
+<emphasis role="olabel">slur</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="octrl">if</emphasis> itiv<emphasis role="op">==</emphasis>0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">note</emphasis> <emphasis role="comment">;no expression on first and second note</emphasis>
+aslur <emphasis role="opc">linseg</emphasis> 0, idur<emphasis role="op">*</emphasis>.3, p4, idur<emphasis role="op">*</emphasis>.7, 0 <emphasis role="comment">;envelope for slurred note</emphasis>
+aatt <emphasis role="op">=</emphasis> aatt <emphasis role="op">+</emphasis> aslur
+
+<emphasis role="olabel">note</emphasis><emphasis role="op">:</emphasis>
+asig <emphasis role="opc">oscili</emphasis> aatt, p5, 1, i1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 -5 .8 451 <emphasis role="comment">;p3 = 5 seconds</emphasis>
+<emphasis role="stamnt">i</emphasis>1 1.5 -1.5 .1 512
+<emphasis role="stamnt">i</emphasis>1 3 2 .7 440 <emphasis role="comment">;3 notes together--> duration = 5 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/timedseq.csd.xml b/examples-xml/timedseq.csd.xml
new file mode 100644
index 0000000..75fa3dd
--- /dev/null
+++ b/examples-xml/timedseq.csd.xml
@@ -0,0 +1,59 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o timedseq.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giseq <emphasis role="ohdr">ftgen</emphasis> 0,0,128,<emphasis role="op">-</emphasis>2, 2, 0, 0.5, 8.00,\ <emphasis role="comment">;first note</emphasis>
+ 2, 1, 0.5, 8.02,\ <emphasis role="comment">;second note</emphasis>
+ 2, 2, 0.5, 8.04,\ <emphasis role="comment">;third</emphasis>
+ 2, 3, 0.5, 8.05,\ <emphasis role="comment">;fourth</emphasis>
+ 2, 4, 0.5, 8.07,\ <emphasis role="comment">;fifth</emphasis>
+ 2, 5, 0.5, 8.09,\ <emphasis role="comment">;sixth</emphasis>
+ 2, 6, 0.5, 8.11,\ <emphasis role="comment">;seventh</emphasis>
+ 2, 7, 0.5, 9.00,\ <emphasis role="comment">;eight note</emphasis>
+ 2, 8, 0.5, 8.00,\ <emphasis role="comment">;due to a quirk in the opcode, it needs an extra note - a copy of the first note</emphasis>
+ <emphasis role="op">-</emphasis>1, 8, <emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1 <emphasis role="comment">;last line is a dummy event that indicates to timedseq when to loop back to the beginning</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ibeats <emphasis role="op">=</emphasis> 8 <emphasis role="comment">;lengths of sequence in beats</emphasis>
+itempo <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;tempo</emphasis>
+iBPS <emphasis role="op">=</emphasis> itempo<emphasis role="op">/</emphasis>60 <emphasis role="comment">;beats per second </emphasis>
+kphase <emphasis role="opc">phasor</emphasis> iBPS<emphasis role="op">/</emphasis>ibeats <emphasis role="comment">;phasor to move through table</emphasis>
+kpointer <emphasis role="op">=</emphasis> kphase<emphasis role="op">*</emphasis>ibeats <emphasis role="comment">;multiply phase (range 0 - 1) by the number of beats contained within the sequence</emphasis>
+kp1 <emphasis role="opc">init</emphasis> 0
+kp2 <emphasis role="opc">init</emphasis> 0
+kp3 <emphasis role="opc">init</emphasis> 0
+kp4 <emphasis role="opc">init</emphasis> 0
+ktrigger <emphasis role="opc">timedseq</emphasis> kpointer, giseq, kp1, kp2,kp3, kp4
+<emphasis role="opc">schedkwhen</emphasis> ktrigger, 0, 0, 2, 0, kp3<emphasis role="op">/</emphasis><emphasis role="opc">abs</emphasis>(iBPS), kp4 <emphasis role="comment">;p3 values have been scaled according to tempo so that they maesure beats rather than seconds</emphasis>
+<emphasis role="oblock">endin</emphasis> <emphasis role="comment">;abs(iBPS)(absolute value) is used because the tempo provided by the fourth note of the score is negative.</emphasis>
+ <emphasis role="comment">;Durations here should be positive, because negative values for duration would indicate a held note.</emphasis>
+<emphasis role="oblock">instr</emphasis> 2
+
+aenv <emphasis role="opc">linseg</emphasis> 0,0.01,1,p3<emphasis role="op">-</emphasis>0.01,0 <emphasis role="comment">;amplitude envelope</emphasis>
+asig <emphasis role="opc">vco2</emphasis> 0.4, <emphasis role="opc">cpspch</emphasis>(p4), 4, 0.5
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>aenv, asig<emphasis role="op">*</emphasis>aenv
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 4 120
+<emphasis role="stamnt">i</emphasis> 1 + . 240
+<emphasis role="stamnt">i</emphasis> 1 + . 480
+<emphasis role="stamnt">i</emphasis> 1 + . -480 <emphasis role="comment">;when negative it plays backwards </emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/timeinsts.csd.xml b/examples-xml/timeinsts.csd.xml
index c928beb..663fa55 100644
--- a/examples-xml/timeinsts.csd.xml
+++ b/examples-xml/timeinsts.csd.xml
@@ -2,35 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o timeinsts.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Print out the value from timeinsts every half-second.</emphasis>
- k1 <emphasis role="opc">timeinsts</emphasis>
- <emphasis role="opc">printks</emphasis> "k1 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f seconds\\n", 0.5, k1
-<emphasis role="oblock">endin</emphasis>
+kvib <emphasis role="opc">init</emphasis> 1
+ktim <emphasis role="opc">timeinsts</emphasis> <emphasis role="comment">;read time </emphasis>
+
+<emphasis role="octrl">if</emphasis> ktim <emphasis role="op">></emphasis> 2 then <emphasis role="comment">;do something after 2 seconds</emphasis>
+ kvib <emphasis role="opc">oscili</emphasis> 2, 3, giSine <emphasis role="comment">;make a vibrato</emphasis>
+<emphasis role="octrl">endif</emphasis>
+
+asig <emphasis role="opc">poscil</emphasis> .5, 600<emphasis role="op">+</emphasis>kvib, giSine <emphasis role="comment">;add vibrato</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 5
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/times_complex.csd.xml b/examples-xml/times_complex.csd.xml
new file mode 100644
index 0000000..38b34c1
--- /dev/null
+++ b/examples-xml/times_complex.csd.xml
@@ -0,0 +1,73 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+
+<emphasis role="comment">; Select audio/midi flags here according to platform </emphasis>
+-odac <emphasis role="comment">;;;realtime audio out </emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too </emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below: </emphasis>
+<emphasis role="comment">; -o times_complex.wav -W ;;; for file output any platform </emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="comment">;by joachim heintz and rory walsh </emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giWave <emphasis role="ohdr">ftgen</emphasis> 0, 0, 1024, 10, 1, .5, .25
+
+<emphasis role="oblock">instr</emphasis> again
+
+<emphasis role="opc">instance</emphasis> <emphasis role="op">=</emphasis> p4
+ <emphasis role="comment">;reset the duration of this instance </emphasis>
+iDur <emphasis role="opc">rnd31</emphasis> 5, 3 <emphasis role="comment">;shorter values are more probable </emphasis>
+iDur <emphasis role="op">=</emphasis> <emphasis role="opc">abs</emphasis>(iDur) <emphasis role="op">+</emphasis> 0.2
+p3 <emphasis role="op">=</emphasis> iDur
+ <emphasis role="comment">;trigger the effect instrument of this instance </emphasis>
+ <emphasis role="opc">event_i</emphasis> "i", "fx_processor", 0, iDur, <emphasis role="opc">instance</emphasis>
+ <emphasis role="comment">;print the status quo </emphasis>
+kTime <emphasis role="opc">times</emphasis>
+ <emphasis role="opc">prints</emphasis> "instance <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d, start <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f, duration <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", instance, <emphasis role="opc">i</emphasis>(kTime), iDur
+ <emphasis role="comment">;make sound </emphasis>
+iamp <emphasis role="opc">active</emphasis> 1 <emphasis role="comment">;scale amplitudes </emphasis>
+iOct <emphasis role="opc">random</emphasis> 5, 10 <emphasis role="comment">;find pitch </emphasis>
+aEnv <emphasis role="opc">transeg</emphasis> 0, 0.02, 0, 1<emphasis role="op">/</emphasis>iamp, p3<emphasis role="op">-</emphasis>0.02, <emphasis role="op">-</emphasis>6, 0 <emphasis role="comment">;output envelope </emphasis>
+aSend <emphasis role="opc">poscil</emphasis> aEnv, <emphasis role="opc">cpsoct</emphasis>(iOct), giWave <emphasis role="comment">;audio signal </emphasis>
+ <emphasis role="comment">;send signal to effect instrument </emphasis>
+Sbus <emphasis role="opc">sprintf</emphasis> "audio_<emphasis role="op">%</emphasis>d", <emphasis role="opc">instance</emphasis> <emphasis role="comment">;create unique software bus </emphasis>
+ <emphasis role="opc">chnset</emphasis> aSend<emphasis role="op">/</emphasis>2, Sbus <emphasis role="comment">;send audio on this bus </emphasis>
+ <emphasis role="comment">;get the last k-cycle of this instance and trigger the successor in it </emphasis>
+kLast <emphasis role="opc">release</emphasis>
+ <emphasis role="opc">schedkwhen</emphasis> kLast, 0, 0, "again", 0, 1, <emphasis role="opc">instance</emphasis><emphasis role="op">+</emphasis>1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> fx_processor
+ <emphasis role="comment">;apply feedback delay to the above instrument </emphasis>
+iwhich <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;receive instance number ... </emphasis>
+Sbus <emphasis role="opc">sprintf</emphasis> "audio_<emphasis role="op">%</emphasis>d", iwhich <emphasis role="comment">; ... and related software bus </emphasis>
+audio <emphasis role="opc">chnget</emphasis> Sbus <emphasis role="comment">;receive audio on this bus </emphasis>
+irvbtim <emphasis role="opc">random</emphasis> 1, 5 <emphasis role="comment">;find reverb time </emphasis>
+p3 <emphasis role="op">=</emphasis> p3<emphasis role="op">+</emphasis>irvbtim <emphasis role="comment">;adjust instrument duration </emphasis>
+iltptmL <emphasis role="opc">random</emphasis> .1, .5 <emphasis role="comment">;find looptime left ... </emphasis>
+iltptmR <emphasis role="opc">random</emphasis> .1, .5 <emphasis role="comment">;...and right </emphasis>
+ipan <emphasis role="opc">random</emphasis> 0, 1 <emphasis role="comment">; pan and ... </emphasis>
+imix <emphasis role="opc">random</emphasis> 0, 1 <emphasis role="comment">;... mix audio </emphasis>
+aL,aR <emphasis role="opc">pan2</emphasis> audio, ipan <emphasis role="comment">;create stereo </emphasis>
+awetL <emphasis role="opc">comb</emphasis> aL, irvbtim, iltptmL <emphasis role="comment">;comb filter </emphasis>
+awetR <emphasis role="opc">comb</emphasis> aR, irvbtim, iltptmR
+aoutL <emphasis role="opc">ntrpol</emphasis> aL, awetL, imix <emphasis role="comment">;wet-dry mix </emphasis>
+aoutR <emphasis role="opc">ntrpol</emphasis> aR, awetR, imix
+ <emphasis role="opc">outs</emphasis> aoutL<emphasis role="op">/</emphasis>2, aoutR<emphasis role="op">/</emphasis>2
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> "aga<emphasis role="stamnt">i</emphasis>n" 0 1 1
+
+<emphasis role="stamnt">e</emphasis> 3600
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/timout.csd.xml b/examples-xml/timout.csd.xml
new file mode 100644
index 0000000..8ae3c60
--- /dev/null
+++ b/examples-xml/timout.csd.xml
@@ -0,0 +1,54 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o timout.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+indx <emphasis role="op">=</emphasis> 0
+itim <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;change time for one step</emphasis>
+
+<emphasis role="olabel">clock</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="octrl">timout</emphasis> 0, itim, <emphasis role="olabel">time</emphasis>
+ <emphasis role="opc">reinit</emphasis> <emphasis role="olabel">clock</emphasis>
+
+<emphasis role="olabel">time</emphasis><emphasis role="op">:</emphasis>
+ itmp <emphasis role="opc">table</emphasis> indx, 2, 0, 0, 1
+ <emphasis role="octrl">if</emphasis> itmp <emphasis role="op">==</emphasis> 1 then
+ <emphasis role="opc">print</emphasis> itmp
+ <emphasis role="opc">event_i</emphasis> "i",2, 0, .1 <emphasis role="comment">;event has duration of .1 second</emphasis>
+<emphasis role="octrl">endif</emphasis>
+indx <emphasis role="op">=</emphasis> indx<emphasis role="op">+</emphasis>1
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;play it</emphasis>
+
+kenv <emphasis role="opc">transeg</emphasis> 0.01, p3<emphasis role="op">*</emphasis>0.25, 1, 1, p3<emphasis role="op">*</emphasis>0.75, .5, 0.01
+asig <emphasis role="opc">oscili</emphasis> kenv<emphasis role="op">*</emphasis>.4, 400, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 1024 10 1 <emphasis role="comment">;sine</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 16 2 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 <emphasis role="comment">;the rythm table</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 10 .1
+<emphasis role="stamnt">i</emphasis>1 + 10 .05
+<emphasis role="stamnt">i</emphasis>1 + 10 .01
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tival.csd.xml b/examples-xml/tival.csd.xml
new file mode 100644
index 0000000..9bd494d
--- /dev/null
+++ b/examples-xml/tival.csd.xml
@@ -0,0 +1,47 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tival.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+idur <emphasis role="op">=</emphasis> <emphasis role="opc">abs</emphasis>(p3) <emphasis role="comment">;make p3 positive even if p3 is negative in score</emphasis>
+itiv <emphasis role="opc">tival</emphasis>
+i1 <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>1 <emphasis role="comment">;assume this is tied note, so keep fase of oscili</emphasis>
+ <emphasis role="octrl">tigoto</emphasis> <emphasis role="olabel">slur</emphasis> <emphasis role="comment">;no reinitialisation on tied notes</emphasis>
+i1 <emphasis role="op">=</emphasis> 0 <emphasis role="comment">;first note, so reset phase</emphasis>
+aatt <emphasis role="opc">line</emphasis> p4, idur, 0 <emphasis role="comment">;primary envelope</emphasis>
+
+<emphasis role="olabel">slur</emphasis><emphasis role="op">:</emphasis>
+ <emphasis role="octrl">if</emphasis> itiv<emphasis role="op">==</emphasis>0 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">note</emphasis> <emphasis role="comment">;no expression on first and second note</emphasis>
+aslur <emphasis role="opc">linseg</emphasis> 0, idur<emphasis role="op">*</emphasis>.3, p4, idur<emphasis role="op">*</emphasis>.7, 0 <emphasis role="comment">;envelope for slurred note</emphasis>
+aatt <emphasis role="op">=</emphasis> aatt <emphasis role="op">+</emphasis> aslur
+
+<emphasis role="olabel">note</emphasis><emphasis role="op">:</emphasis>
+asig <emphasis role="opc">oscili</emphasis> aatt, p5, 1, i1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 -5 .8 451 <emphasis role="comment">;p3 = 5 seconds</emphasis>
+<emphasis role="stamnt">i</emphasis>1 1.5 -1.5 .1 512
+<emphasis role="stamnt">i</emphasis>1 3 2 .7 440 <emphasis role="comment">;3 notes together--> duration = 5 seconds</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tlineto.csd.xml b/examples-xml/tlineto.csd.xml
new file mode 100644
index 0000000..fa1994a
--- /dev/null
+++ b/examples-xml/tlineto.csd.xml
@@ -0,0 +1,40 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tlineto.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+
+kmtr <emphasis role="opc">lfo</emphasis> 1, .5, 1 <emphasis role="comment">;produce trigger signal </emphasis>
+ktr <emphasis role="opc">trigger</emphasis> kmtr, .5, 0 <emphasis role="comment">;with triangle wave</emphasis>
+
+ktime <emphasis role="op">=</emphasis> p4
+kfreq <emphasis role="opc">randh</emphasis> 1000, 3, .2, 0, 500 <emphasis role="comment">;generate random values</emphasis>
+kfreq <emphasis role="opc">tlineto</emphasis> kfreq, ktime, ktr <emphasis role="comment">;different glissando times</emphasis>
+aout <emphasis role="opc">poscil</emphasis> .4, kfreq, giSine
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 10 .2 <emphasis role="comment">;short glissando</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 11 10 .8 <emphasis role="comment">;longer glissande</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tone.csd.xml b/examples-xml/tone.csd.xml
index cd8db9a..59debe1 100644
--- a/examples-xml/tone.csd.xml
+++ b/examples-xml/tone.csd.xml
@@ -2,31 +2,30 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o tone.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-
<emphasis role="oblock">instr</emphasis> 1
-a1 <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
- <emphasis role="opc">outs</emphasis> a1, a1
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2
-a1 <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
-a1 <emphasis role="opc">tone</emphasis> a1, 500
- <emphasis role="opc">outs</emphasis> a1, a1
+kton <emphasis role="opc">line</emphasis> 10000, p3, 0 <emphasis role="comment">;all the way down to 0 Hz</emphasis>
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
+asig <emphasis role="opc">tone</emphasis> asig, kton <emphasis role="comment">;half-power point at 500 Hz</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
diff --git a/examples-xml/tonek.csd.xml b/examples-xml/tonek.csd.xml
new file mode 100644
index 0000000..6fe5b5d
--- /dev/null
+++ b/examples-xml/tonek.csd.xml
@@ -0,0 +1,43 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o tonek.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisin <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^10, 10, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ksig <emphasis role="opc">randomh</emphasis> 400, 1800, 150
+aout <emphasis role="opc">poscil</emphasis> .2, 100<emphasis role="op">+</emphasis>ksig, gisin
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+ksig <emphasis role="opc">randomh</emphasis> 400, 1800, 150
+khp <emphasis role="opc">line</emphasis> 1, p3, 100 <emphasis role="comment">;vary high-pass</emphasis>
+ksig <emphasis role="opc">tonek</emphasis> ksig, khp
+aout <emphasis role="opc">poscil</emphasis> .2, 100<emphasis role="op">+</emphasis>ksig, gisin
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 5.5 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/tonex.csd.xml b/examples-xml/tonex.csd.xml
index 39a4c01..c145eef 100644
--- a/examples-xml/tonex.csd.xml
+++ b/examples-xml/tonex.csd.xml
@@ -2,45 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o tonex.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-
<emphasis role="oblock">instr</emphasis> 1
-a1 <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
- <emphasis role="opc">outs</emphasis> a1, a1
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
<emphasis role="oblock">instr</emphasis> 2
-a1 <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
-a1 <emphasis role="opc">tonex</emphasis> a1, 500, 12
- <emphasis role="opc">outs</emphasis> a1, a1
+kton <emphasis role="opc">line</emphasis> 10000, p3, 0 <emphasis role="comment">;all the way down to 0 Hz</emphasis>
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
+asig <emphasis role="opc">tonex</emphasis> asig, kton, 8 <emphasis role="comment">;8 filters</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="stamnt">i</emphasis> 2 2 2
+<emphasis role="stamnt">i</emphasis> 2 3 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/tradsyn.csd.xml b/examples-xml/tradsyn.csd.xml
index 156cb15..998d371 100644
--- a/examples-xml/tradsyn.csd.xml
+++ b/examples-xml/tradsyn.csd.xml
@@ -2,39 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o tradsyn.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
-fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain,2048,512,1 <emphasis role="comment">; ifd analysis</emphasis>
-fst <emphasis role="opc">partials</emphasis> fs1,fsi2,.003,1,3,500 <emphasis role="comment">; partial tracking</emphasis>
-aout <emphasis role="opc">tradsyn</emphasis> fst, 1, 1.5, 500, 1 <emphasis role="comment">; resynthesis (up a 5th)</emphasis>
+ipch <emphasis role="op">=</emphasis> p4
+ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain,2048,512,1 <emphasis role="comment">; ifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1,fsi2,.003,1,3,500 <emphasis role="comment">; partial tracking</emphasis>
+aout <emphasis role="opc">tradsyn</emphasis> fst, 1, ipch, 500, 1 <emphasis role="comment">; resynthesis</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 3
-
+<emphasis role="stamnt">i</emphasis> 1 0 2 1.5 <emphasis role="comment">;up a 5th</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 .5 <emphasis role="comment">;octave down</emphasis>
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/trandom.csd.xml b/examples-xml/trandom.csd.xml
index b080b74..d2f7a01 100644
--- a/examples-xml/trandom.csd.xml
+++ b/examples-xml/trandom.csd.xml
@@ -2,40 +2,38 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
-
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o trandom.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a random number between 220 and 440.</emphasis>
- kmin <emphasis role="opc">init</emphasis> 220
- kmax <emphasis role="opc">init</emphasis> 440
- ktrig <emphasis role="op">=</emphasis> p4
- k1 <emphasis role="opc">trandom</emphasis> ktrig, kmin, kmax
-
- <emphasis role="opc">printks</emphasis> "k1 <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\\n", 0.1, k1
-<emphasis role="oblock">endin</emphasis>
+<emphasis role="ohdr">seed</emphasis> 0 <emphasis role="comment">; every run time different values </emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+
+kmin <emphasis role="opc">init</emphasis> 0 <emphasis role="comment">;random number between 0 and 220</emphasis>
+kmax <emphasis role="opc">init</emphasis> 220
+ktrig <emphasis role="op">=</emphasis> p4
+k1 <emphasis role="opc">trandom</emphasis> ktrig, kmin, kmax
+ <emphasis role="opc">printk2</emphasis> k1 <emphasis role="comment">;print when k1 changes</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .4, 220<emphasis role="op">+</emphasis>k1, 1 <emphasis role="comment">;if triggered, add random values to frequency</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1 0
-<emphasis role="stamnt">i</emphasis> 1 + 1 1
+<emphasis role="stamnt">i</emphasis> 1 0 2 0 <emphasis role="comment">;not triggered</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 1 <emphasis role="comment">;triggered</emphasis>
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/transegb.csd.xml b/examples-xml/transegb.csd.xml
new file mode 100644
index 0000000..5729a54
--- /dev/null
+++ b/examples-xml/transegb.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in</emphasis>
+-odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o transeg.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 128
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="comment">;p4 and p5 determine the type of curve for each</emphasis>
+<emphasis role="comment">;section of the envelope</emphasis>
+kenv <emphasis role="opc">transegb</emphasis> 0.01, p3<emphasis role="op">*</emphasis>0.25, p4, 1, p3, p5, 0.01
+a1 <emphasis role="opc">oscil</emphasis> kenv, 440, 1
+<emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; Table #1, a sine wave.</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 2 2
+<emphasis role="stamnt">i</emphasis> 1 + . 5 5
+<emphasis role="stamnt">i</emphasis> 1 + . 1 1
+<emphasis role="stamnt">i</emphasis> 1 + . 0 0
+<emphasis role="stamnt">i</emphasis> 1 + . -2 -2
+<emphasis role="stamnt">i</emphasis> 1 + . -2 2
+<emphasis role="stamnt">i</emphasis> 1 + . 2 -2
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/transegr.csd.xml b/examples-xml/transegr.csd.xml
new file mode 100644
index 0000000..e1e29f5
--- /dev/null
+++ b/examples-xml/transegr.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio out and realtime midi in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o transegr.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+icps <emphasis role="opc">cpsmidi</emphasis>
+iamp <emphasis role="opc">ampmidi</emphasis> .2
+<emphasis role="comment">; st,dur1,typ1,val,dur2,typ2,end </emphasis>
+kenv <emphasis role="opc">transegr</emphasis> 0, .2, 2, .5, 1, <emphasis role="op">-</emphasis> 3, 0
+asig <emphasis role="opc">pluck</emphasis> kenv<emphasis role="op">*</emphasis>iamp, icps, icps, 1, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1 <emphasis role="comment">;sine</emphasis>
+
+<emphasis role="stamnt">f</emphasis>0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/trcross.csd.xml b/examples-xml/trcross.csd.xml
index 7999c5a..240fefc 100644
--- a/examples-xml/trcross.csd.xml
+++ b/examples-xml/trcross.csd.xml
@@ -2,45 +2,43 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o trcross.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ain1 <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
-ain2 <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
-fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain1,2048,512,1 <emphasis role="comment">; ifd analysis</emphasis>
-fst <emphasis role="opc">partials</emphasis> fs1,fsi2,.003,1,3,500 <emphasis role="comment">; partial tracking</emphasis>
-fs11,fsi12 <emphasis role="opc">pvsifd</emphasis> ain2,2048,512,1 <emphasis role="comment">; ifd analysis (second input)</emphasis>
-fst1 <emphasis role="opc">partials</emphasis> fs11,fsi12,.003,1,3,500 <emphasis role="comment">; partial tracking \(second input</emphasis>
-fcr <emphasis role="opc">trcross</emphasis> fst,fst1, 1.05, 1,p4 <emphasis role="comment">; cross-synthesis (mode 0 and mode 1)</emphasis>
-aout <emphasis role="opc">tradsyn</emphasis> fcr, 1, 1, 500, 1 <emphasis role="comment">; resynthesis of tracks</emphasis>
- <emphasis role="opc">outs</emphasis> aout<emphasis role="op">*</emphasis>10, aout<emphasis role="op">*</emphasis>10
+ain1 <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
+ain2 <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
-<emphasis role="oblock">endin</emphasis>
+imode <emphasis role="op">=</emphasis> p4
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain1, 2048, 512, 1 <emphasis role="comment">; ifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .01, 1, 3, 500 <emphasis role="comment">; partial tracking</emphasis>
+fs11,fsi12 <emphasis role="opc">pvsifd</emphasis> ain2, 2048, 512, 1 <emphasis role="comment">; ifd analysis (second input)</emphasis>
+fst1 <emphasis role="opc">partials</emphasis> fs11, fsi12, .01, 1, 3, 500 <emphasis role="comment">; partial tracking (second input</emphasis>
+fcr <emphasis role="opc">trcross</emphasis> fst, fst1, 1.05, 1, imode <emphasis role="comment">; cross-synthesis (mode 0 and mode 1)</emphasis>
+aout <emphasis role="opc">tradsyn</emphasis> fcr, 1, 1, 500, 1 <emphasis role="comment">; resynthesis of tracks</emphasis>
+ <emphasis role="opc">outs</emphasis> aout<emphasis role="op">*</emphasis>3, aout<emphasis role="op">*</emphasis>3
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 4 0
-<emphasis role="stamnt">i</emphasis> 1 + 4 1
+<emphasis role="stamnt">i</emphasis> 1 0 3 0
+<emphasis role="stamnt">i</emphasis> 1 5 3 1
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/trfilter.csd.xml b/examples-xml/trfilter.csd.xml
new file mode 100644
index 0000000..75dc5de
--- /dev/null
+++ b/examples-xml/trfilter.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o trfilter.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gifn <emphasis role="ohdr">ftgen</emphasis> 2, 0, <emphasis role="op">-</emphasis>22050, 5, 1, 1000, 1, 4000, 0.000001, 17050, 0.000001 <emphasis role="comment">; low-pass filter curve of 22050 points </emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kam <emphasis role="opc">line</emphasis> 1, p3, p4
+ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512, 1 <emphasis role="comment">; ifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .003, 1, 3, 500 <emphasis role="comment">; partial tracking</emphasis>
+fscl <emphasis role="opc">trfilter</emphasis> fst, kam, gifn <emphasis role="comment">; filtering using function table 2</emphasis>
+aout <emphasis role="opc">tradsyn</emphasis> fscl, 1, 1, 500, 1 <emphasis role="comment">; resynthesis </emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 4 1
+<emphasis role="stamnt">i</emphasis> 1 5 4 0 <emphasis role="comment">;reduce filter effect</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/trhighest.csd.xml b/examples-xml/trhighest.csd.xml
index 8d54420..a4ea387 100644
--- a/examples-xml/trhighest.csd.xml
+++ b/examples-xml/trhighest.csd.xml
@@ -2,40 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o trhighest.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
-fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain,2048,512,1 <emphasis role="comment">; ifd analysis</emphasis>
-fst <emphasis role="opc">partials</emphasis> fs1,fsi2,.003,1,3,500 <emphasis role="comment">; partial tracking</emphasis>
-fhi,kfr,kamp <emphasis role="opc">trhighest</emphasis> fst,1 <emphasis role="comment">; highest freq-track </emphasis>
+ain <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512, 1 <emphasis role="comment">; ifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .1, 1, 3, 500 <emphasis role="comment">; partial tracking</emphasis>
+fhi,kfr,kamp <emphasis role="opc">trhighest</emphasis> fst, 1 <emphasis role="comment">; highest freq-track </emphasis>
aout <emphasis role="opc">tradsyn</emphasis> fhi, 1, 1, 1, 1 <emphasis role="comment">; resynthesis of highest frequency</emphasis>
- <emphasis role="opc">outs</emphasis> aout<emphasis role="op">*</emphasis>100, aout<emphasis role="op">*</emphasis>100 <emphasis role="comment">; compensate energy loss</emphasis>
+ <emphasis role="opc">outs</emphasis> aout<emphasis role="op">*</emphasis>40, aout<emphasis role="op">*</emphasis>40 <emphasis role="comment">; compensate energy loss</emphasis>
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 3
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/trigger.csd.xml b/examples-xml/trigger.csd.xml
index af5145e..0bfe33f 100644
--- a/examples-xml/trigger.csd.xml
+++ b/examples-xml/trigger.csd.xml
@@ -2,44 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o trigger.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use a square-wave low frequency oscillator as the trigger.</emphasis>
- klf <emphasis role="opc">lfo</emphasis> 1, 10, 3
- ktr <emphasis role="opc">trigger</emphasis> klf, 1, 2
-
- <emphasis role="comment">; When the value of the trigger isn't equal to 0, print it out.</emphasis>
- <emphasis role="octrl">if</emphasis> (ktr <emphasis role="op">==</emphasis> 0) <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">contin</emphasis>
- <emphasis role="comment">; Print the value of the trigger and the time it occurred.</emphasis>
- ktm <emphasis role="opc">times</emphasis>
- <emphasis role="opc">printks</emphasis> "time <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f seconds, <emphasis role="opc">trigger</emphasis> <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\\n", 0, ktm, ktr
-
-<emphasis role="olabel">contin</emphasis><emphasis role="op">:</emphasis>
- <emphasis role="comment">; Continue with processing.</emphasis>
+
+kmtr <emphasis role="opc">lfo</emphasis> 1, 1, 1 <emphasis role="comment">;triangle wave</emphasis>
+kmode <emphasis role="op">=</emphasis> p4
+ktr <emphasis role="opc">trigger</emphasis> kmtr, .5, kmode
+ <emphasis role="opc">printk2</emphasis> ktr
+ <emphasis role="opc">schedkwhen</emphasis> ktr, 0, 3, 2, 0, .3
+
+
<emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 2
+
+aenv <emphasis role="opc">linseg</emphasis> 0,p3<emphasis role="op">*</emphasis>.1,1,p3<emphasis role="op">*</emphasis>.3,1,p3<emphasis role="op">*</emphasis>.6,0 <emphasis role="comment">;envelope</emphasis>
+a1 <emphasis role="opc">poscil</emphasis> .3<emphasis role="op">*</emphasis>aenv, 1000, 1
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine </emphasis>
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 3 0 <emphasis role="comment">;down-up</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 4 3 2 <emphasis role="comment">;down-up &amp; up=down</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/trigseq.csd.xml b/examples-xml/trigseq.csd.xml
new file mode 100644
index 0000000..b8050bd
--- /dev/null
+++ b/examples-xml/trigseq.csd.xml
@@ -0,0 +1,112 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o trigseq.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giTimes <emphasis role="ohdr">ftgen</emphasis> 91, 0, 128, <emphasis role="op">-</emphasis>2, 1, 1<emphasis role="op">/</emphasis>2, 1<emphasis role="op">/</emphasis>2, 1<emphasis role="op">/</emphasis>8, 1<emphasis role="op">/</emphasis>8, 1<emphasis role="op">/</emphasis>2,1<emphasis role="op">/</emphasis>2, 1<emphasis role="op">/</emphasis>16, 1<emphasis role="op">/</emphasis>16, 1<emphasis role="op">/</emphasis>16, 1<emphasis role="op">/</emphasis>16, 1<emphasis role="op">/</emphasis>16, 1<emphasis role="op">/</emphasis>16, 1<emphasis role="op">/</emphasis>16, 1<emphasis role="op">/</emphasis>16<emphasis role="comment">; times</emphasis>
+giSeq <emphasis role="ohdr">ftgen</emphasis> 90, 0, 128, <emphasis role="op">-</emphasis>2, 1, 2, .5, 3, .25, 4, .10, 5, .05, 6 <emphasis role="comment">;** sequence amplitude and freq-ratio bins</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 1
+
+icps <emphasis role="opc">init</emphasis> p4
+iamp <emphasis role="opc">init</emphasis> .3
+
+kloop <emphasis role="opc">init</emphasis> p5
+initndx <emphasis role="opc">init</emphasis> p6
+kloop2 <emphasis role="opc">init</emphasis> p7
+initndx2 <emphasis role="opc">init</emphasis> p8
+kdur <emphasis role="opc">init</emphasis> p9
+iminTime <emphasis role="opc">init</emphasis> p10
+imaxTime <emphasis role="opc">init</emphasis> p11
+kampratio <emphasis role="opc">init</emphasis> 1
+kfreqratio <emphasis role="opc">init</emphasis> 1
+
+ktime_unit <emphasis role="opc">expseg</emphasis> iminTime,p3<emphasis role="op">/</emphasis>8,iminTime,p3<emphasis role="op">*</emphasis> 3<emphasis role="op">/</emphasis>4,imaxTime,p3<emphasis role="op">/</emphasis>8,imaxTime
+
+
+<emphasis role="comment">;**ktrig seqtime ktime_unit, kstart, kloop, initndx, kfn_times </emphasis>
+<emphasis role="comment">;ktrig seqtime 1/ktime_unit, 0, 15, 0, giTimes </emphasis>
+
+ktrig <emphasis role="opc">metro</emphasis> ktime_unit
+
+<emphasis role="comment">;**** trigseq ktrig_in, kstart, kloop, initndx, kfn_values, kout1 [, kout2, kout3, ...., koutN] </emphasis>
+ <emphasis role="opc">trigseq</emphasis> ktrig, 0, kloop2,initndx2, giSeq, kampratio, kfreqratio
+
+<emphasis role="comment">;atrig = ktrig*10000</emphasis>
+ <emphasis role="opc">schedkwhen</emphasis> ktrig, <emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, 3, 0, kdur, kampratio<emphasis role="op">*</emphasis>iamp, kfreqratio<emphasis role="op">*</emphasis>icps
+<emphasis role="comment">; schedkwhen ktrig, -1, -1, 2, 0, ktrig, kampratio*iamp, kfreqratio*icps</emphasis>
+ <emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+icps <emphasis role="opc">init</emphasis> p4
+iamp <emphasis role="opc">init</emphasis> 20000
+
+kloop <emphasis role="opc">init</emphasis> p5
+initndx <emphasis role="opc">init</emphasis> p6
+kloop2 <emphasis role="opc">init</emphasis> p7
+initndx2 <emphasis role="opc">init</emphasis> p8
+kdur <emphasis role="opc">init</emphasis> p9
+iminTime <emphasis role="opc">init</emphasis> p10
+imaxTime <emphasis role="opc">init</emphasis> p11
+kampratio <emphasis role="opc">init</emphasis> 1
+kfreqratio <emphasis role="opc">init</emphasis> 1
+
+ktime_unit <emphasis role="opc">expseg</emphasis> iminTime,p3<emphasis role="op">/</emphasis>8,iminTime,p3<emphasis role="op">*</emphasis> 3<emphasis role="op">/</emphasis>4,imaxTime,p3<emphasis role="op">/</emphasis>8,imaxTime
+
+
+<emphasis role="comment">;**ktrig seqtime ktime_unit, kstart, kloop, initndx, kfn_times </emphasis>
+ktrig <emphasis role="opc">seqtime</emphasis> 1<emphasis role="op">/</emphasis>ktime_unit, 0, 15, 0, giTimes
+
+<emphasis role="comment">;ktrig metro ktime_unit</emphasis>
+
+<emphasis role="comment">;**** trigseq ktrig_in, kstart, kloop, initndx, kfn_values, kout1 [, kout2, kout3, ...., koutN] </emphasis>
+ <emphasis role="opc">trigseq</emphasis> ktrig, 0, kloop2, initndx2, giSeq, kampratio, kfreqratio
+<emphasis role="opc">printk2</emphasis> ktrig
+<emphasis role="comment">;atrig = ktrig*10000</emphasis>
+<emphasis role="comment">; schedkwhen ktrig, -1, -1, 2, 0, kdur, kampratio*iamp, kfreqratio*icps</emphasis>
+ <emphasis role="opc">schedkwhen</emphasis> ktrig, <emphasis role="op">-</emphasis>1, <emphasis role="op">-</emphasis>1, 3, 0, ktrig, kampratio<emphasis role="op">*</emphasis>iamp, kfreqratio<emphasis role="op">*</emphasis>icps
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 3
+
+<emphasis role="opc">print</emphasis> p3
+kenv <emphasis role="opc">expseg</emphasis> 1.04, p3,.04
+a1 <emphasis role="opc">foscili</emphasis> p4<emphasis role="op">*</emphasis><emphasis role="opc">a</emphasis>(kenv<emphasis role="op">-</emphasis>0.04), p5,1,1,kenv<emphasis role="op">*</emphasis>5, 2
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 8192 10 1
+
+<emphasis role="comment">; icps unused unused kloop2 initndx2 kdur iminTime imaxTime</emphasis>
+
+<emphasis role="stamnt">s</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 6 100 0 0 5 0 .2 3 15
+<emphasis role="stamnt">i</emphasis>1 8 6 150 0 0 4 1 .1 4 30
+<emphasis role="stamnt">i</emphasis>1 16 6 200 0 0 5 3 .25 8 50
+<emphasis role="stamnt">i</emphasis>1 24 6 300 0 0 3 0 .1 1 30
+
+<emphasis role="stamnt">i</emphasis>2 32 6 100 0 0 5 0 .2 1 1
+<emphasis role="stamnt">i</emphasis>2 40 6 150 0 0 4 1 .1 .5 .5
+<emphasis role="stamnt">i</emphasis>2 48 6 200 0 0 5 3 .25 3 .5
+<emphasis role="stamnt">i</emphasis>2 56 6 300 0 0 5 0 .1 1 8
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/trirand.csd.xml b/examples-xml/trirand.csd.xml
index 14f44a3..84230ee 100644
--- a/examples-xml/trirand.csd.xml
+++ b/examples-xml/trirand.csd.xml
@@ -2,51 +2,43 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o trirand.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a random number between -1 and 1.</emphasis>
- <emphasis role="comment">; krange = 1</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; every run time same values</emphasis>
- i1 <emphasis role="opc">trirand</emphasis> 1
-
- <emphasis role="opc">print</emphasis> i1
+ktri <emphasis role="opc">trirand</emphasis> 100
+ <emphasis role="opc">printk</emphasis> .2, ktri <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>ktri, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #2.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Generate a random number between -1 and 1.</emphasis>
- <emphasis role="comment">; krange = 1</emphasis>
-
- <emphasis role="ohdr">seed</emphasis> 0
-
- i1 <emphasis role="opc">trirand</emphasis> 1
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; every run time different values</emphasis>
- <emphasis role="opc">print</emphasis> i1
+ <emphasis role="ohdr">seed</emphasis> 0
+ktri <emphasis role="opc">trirand</emphasis> 100
+ <emphasis role="opc">printk</emphasis> .2, ktri <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>ktri, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="comment">; Play Instrument #2 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 1 1
+<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 2 3 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/trlowest.csd.xml b/examples-xml/trlowest.csd.xml
index 87459ce..f3590a4 100644
--- a/examples-xml/trlowest.csd.xml
+++ b/examples-xml/trlowest.csd.xml
@@ -2,40 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o trlowest.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 48000
-<emphasis role="comment">;kr = 4410</emphasis>
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 128
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
-fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain,2048,512,1 <emphasis role="comment">; ifd analysis</emphasis>
-fst <emphasis role="opc">partials</emphasis> fs1,fsi2,.003,1,3,500 <emphasis role="comment">; partial tracking</emphasis>
-flow,kfr,kamp <emphasis role="opc">trlowest</emphasis> fst,1 <emphasis role="comment">; lowest freq-track </emphasis>
-aout <emphasis role="opc">tradsyn</emphasis> flow, 1, 1, 1, 1 <emphasis role="comment">; resynthesis of lowest frequenc</emphasis>
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512, 1 <emphasis role="comment">; ifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .003, 1, 3, 500 <emphasis role="comment">; partial tracking</emphasis>
+flow,kfr,kamp <emphasis role="opc">trlowest</emphasis> fst, 1 <emphasis role="comment">; lowest freq-track </emphasis>
+aout <emphasis role="opc">tradsyn</emphasis> flow, 1, 1, 1, 1 <emphasis role="comment">; resynthesis of lowest frequency</emphasis>
<emphasis role="opc">outs</emphasis> aout<emphasis role="op">*</emphasis>2, aout<emphasis role="op">*</emphasis>2
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 3
-
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/trmix.csd.xml b/examples-xml/trmix.csd.xml
index d8e2b1a..8a327a0 100644
--- a/examples-xml/trmix.csd.xml
+++ b/examples-xml/trmix.csd.xml
@@ -2,40 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o trmix.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ain <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
-fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain,2048,512,1 <emphasis role="comment">; ifd analysis</emphasis>
-fst <emphasis role="opc">partials</emphasis> fs1,fsi2,.003,1,3,500 <emphasis role="comment">; partial tracking</emphasis>
-fslo,fshi <emphasis role="opc">trsplit</emphasis> fst, 500 <emphasis role="comment">; split partial tracks at 1500 Hz</emphasis>
-fscl <emphasis role="opc">trscale</emphasis> fshi, 1.15 <emphasis role="comment">; shift the upper tracks</emphasis>
+ain <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512, 1 <emphasis role="comment">; ifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .003, 1, 3, 500 <emphasis role="comment">; partial tracking</emphasis>
+fslo,fshi <emphasis role="opc">trsplit</emphasis> fst, 1000 <emphasis role="comment">; split partial tracks at 1000 Hz</emphasis>
+fscl <emphasis role="opc">trscale</emphasis> fshi, 1.3 <emphasis role="comment">; shift the upper tracks</emphasis>
fmix <emphasis role="opc">trmix</emphasis> fslo,fscl <emphasis role="comment">; mix the shifted and unshifted tracks</emphasis>
aout <emphasis role="opc">tradsyn</emphasis> fmix, 1, 1, 500, 1 <emphasis role="comment">; resynthesis of tracks</emphasis>
- <emphasis role="opc">outs</emphasis> aout, aout
-<emphasis role="oblock">endin</emphasis>
-
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 3
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/trscale.csd.xml b/examples-xml/trscale.csd.xml
index 95f5f8b..5f5e2eb 100644
--- a/examples-xml/trscale.csd.xml
+++ b/examples-xml/trscale.csd.xml
@@ -2,39 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o trscale.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ain <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
-fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain,2048,512,1 <emphasis role="comment">; ifd analysis</emphasis>
-fst <emphasis role="opc">partials</emphasis> fs1,fsi2,.003,1,3,500 <emphasis role="comment">; partial tracking</emphasis>
-fscl <emphasis role="opc">trscale</emphasis> fst, 2.5 <emphasis role="comment">; frequency scale (up a 5th)</emphasis>
-aout <emphasis role="opc">tradsyn</emphasis> fscl, 1, 1, 500, 1 <emphasis role="comment">; resynthesis </emphasis>
+kpitch <emphasis role="op">=</emphasis> p4
+ain <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512, 1 <emphasis role="comment">; ifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .003, 1, 3, 500 <emphasis role="comment">; partial tracking</emphasis>
+fscl <emphasis role="opc">trscale</emphasis> fst, kpitch <emphasis role="comment">; frequency scale</emphasis>
+aout <emphasis role="opc">tradsyn</emphasis> fscl, 1, 1, 500, 1 <emphasis role="comment">; resynthesis </emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
-<emphasis role="stamnt">i</emphasis> 1 0 3
+<emphasis role="stamnt">i</emphasis> 1 0 3 1.5 <emphasis role="comment">;up a 5th</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 3 3 <emphasis role="comment">;two octaves higher</emphasis>
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/trshift.csd.xml b/examples-xml/trshift.csd.xml
new file mode 100644
index 0000000..94ab358
--- /dev/null
+++ b/examples-xml/trshift.csd.xml
@@ -0,0 +1,37 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o trshift.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+kpsft <emphasis role="op">=</emphasis> p4
+ain <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+fs1, fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512, 1 <emphasis role="comment">; ifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1, fsi2, 0.003, 1, 3, 500 <emphasis role="comment">; partial tracking</emphasis>
+fscl <emphasis role="opc">trshift</emphasis> fst, kpsft <emphasis role="comment">; frequency shift</emphasis>
+aout <emphasis role="opc">tradsyn</emphasis> fscl, 1, 1, 500, 1 <emphasis role="comment">; resynthesis</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1 <emphasis role="comment">;sine</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 3 150 <emphasis role="comment">;adds 150Hz to all tracks</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 500 <emphasis role="comment">;adds 500Hz to all tracks</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/trsplit.csd.xml b/examples-xml/trsplit.csd.xml
index 3afa0cd..48ba89a 100644
--- a/examples-xml/trsplit.csd.xml
+++ b/examples-xml/trsplit.csd.xml
@@ -2,39 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o trsplit.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
-fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain,2048,512,1 <emphasis role="comment">; ifd analysis</emphasis>
-fst <emphasis role="opc">partials</emphasis> fs1,fsi2,.003,1,3,500 <emphasis role="comment">; partial tracking</emphasis>
-fslo,fshi <emphasis role="opc">trsplit</emphasis> fst, 1500 <emphasis role="comment">; split partial tracks at 1500 Hz</emphasis>
-aout <emphasis role="opc">tradsyn</emphasis> fshi, 1, 1, 500, 1 <emphasis role="comment">; resynthesis of tracks above 1500Hz</emphasis>
+ain <emphasis role="opc">diskin2</emphasis> "beats.wav", 1
+fs1,fsi2 <emphasis role="opc">pvsifd</emphasis> ain, 2048, 512, 1 <emphasis role="comment">; ifd analysis</emphasis>
+fst <emphasis role="opc">partials</emphasis> fs1, fsi2, .003, 1, 3, 500 <emphasis role="comment">; partial tracking</emphasis>
+fslo,fshi <emphasis role="opc">trsplit</emphasis> fst, 1500 <emphasis role="comment">; split partial tracks at 1500 Hz</emphasis>
+aout <emphasis role="opc">tradsyn</emphasis> fshi, 1, 1, 500, 1 <emphasis role="comment">; resynthesis of tracks above 1500Hz</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
- <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1 <emphasis role="comment">;sine</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/unirand.csd.xml b/examples-xml/unirand.csd.xml
index eaa48b5..6bcd568 100644
--- a/examples-xml/unirand.csd.xml
+++ b/examples-xml/unirand.csd.xml
@@ -2,51 +2,43 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o unirand.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a random number between 0 and 1.</emphasis>
- <emphasis role="comment">; krange = 1</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; every run time same values</emphasis>
- i1 <emphasis role="opc">unirand</emphasis> 1
-
- <emphasis role="opc">print</emphasis> i1
+ktri <emphasis role="opc">unirand</emphasis> 100
+ <emphasis role="opc">printk</emphasis> .2, ktri <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>ktri, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #2.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Generate a random number between 0 and 1.</emphasis>
- <emphasis role="comment">; krange = 1</emphasis>
-
- <emphasis role="ohdr">seed</emphasis> 0
-
- i1 <emphasis role="opc">unirand</emphasis> 1
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; every run time different values</emphasis>
- <emphasis role="opc">print</emphasis> i1
+ <emphasis role="ohdr">seed</emphasis> 0
+ktri <emphasis role="opc">unirand</emphasis> 100
+ <emphasis role="opc">printk</emphasis> .2, ktri <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>ktri, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="comment">; Play Instrument #2 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 1 1
+<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 2 3 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/until.csd.xml b/examples-xml/until.csd.xml
new file mode 100644
index 0000000..2f2ca95
--- /dev/null
+++ b/examples-xml/until.csd.xml
@@ -0,0 +1,40 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+<emphasis role="comment">; Audio out Audio in</emphasis>
+-odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o ifthen.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+<emphasis role="olabel">lab99</emphasis><emphasis role="op">:</emphasis>
+<emphasis role="octrl">if</emphasis> p4<emphasis role="op">&lt;</emphasis>0 <emphasis role="octrl">goto</emphasis> <emphasis role="olabel">lab100</emphasis>
+ p4 <emphasis role="op">=</emphasis> p4<emphasis role="op">-</emphasis>1
+ <emphasis role="opc">print</emphasis> p4
+ <emphasis role="octrl">goto</emphasis> <emphasis role="olabel">lab99</emphasis>
+<emphasis role="olabel">lab100</emphasis><emphasis role="op">:</emphasis>
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+ until p4<emphasis role="op">&lt;</emphasis>0 do
+ p4 <emphasis role="op">=</emphasis> p4<emphasis role="op">-</emphasis>1
+ <emphasis role="opc">print</emphasis> p4
+ od
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 1 1 4
+<emphasis role="stamnt">i</emphasis> 2 2 1 4
+<emphasis role="stamnt">e</emphasis>
+
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/upsamp.csd.xml b/examples-xml/upsamp.csd.xml
new file mode 100644
index 0000000..b27a346
--- /dev/null
+++ b/examples-xml/upsamp.csd.xml
@@ -0,0 +1,69 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o upsamp.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+<emphasis role="comment">;;with code from Steven Cook / David Akbari, Menno Knevel and Joachim Heintz</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="ohdr">seed</emphasis> 0
+
+ <emphasis role="oblock">opcode</emphasis> Decimator, a, akk <emphasis role="comment">;UDO Sample rate / Bit depth reducer</emphasis>
+ <emphasis role="comment">;see http://www.csounds.com/udo/displayOpcode.php?opcode_id=73</emphasis>
+ <emphasis role="opc">setksmps</emphasis> 1
+ain, kbit, ksrate <emphasis role="opc">xin</emphasis>
+
+kbits <emphasis role="op">=</emphasis> 2^kbit <emphasis role="comment">;bit depth (1 to 16)</emphasis>
+kfold <emphasis role="op">=</emphasis> (<emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis>ksrate) <emphasis role="comment">;sample rate</emphasis>
+kin <emphasis role="opc">downsamp</emphasis> ain <emphasis role="comment">;convert to kr</emphasis>
+kin <emphasis role="op">=</emphasis> (kin<emphasis role="op">+</emphasis>0dbfs) <emphasis role="comment">;add DC to avoid (-)</emphasis>
+kin <emphasis role="op">=</emphasis> kin<emphasis role="op">*</emphasis>(kbits<emphasis role="op">/</emphasis>(<emphasis role="ohdr">0dbfs</emphasis><emphasis role="op">*</emphasis>2)) <emphasis role="comment">;scale signal level</emphasis>
+kin <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(kin) <emphasis role="comment">;quantise</emphasis>
+aout <emphasis role="opc">upsamp</emphasis> kin <emphasis role="comment">;convert to sr</emphasis>
+aout <emphasis role="op">=</emphasis> aout<emphasis role="op">*</emphasis>(2<emphasis role="op">/</emphasis>kbits)<emphasis role="op">-</emphasis><emphasis role="ohdr">0dbfs</emphasis> <emphasis role="comment">;rescale and remove DC</emphasis>
+a0ut <emphasis role="opc">fold</emphasis> aout, kfold <emphasis role="comment">;resample</emphasis>
+ <emphasis role="opc">xout</emphasis> a0ut
+ <emphasis role="oblock">endop</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">;avoid playing this too loud</emphasis>
+
+kbit <emphasis role="op">=</emphasis> p4
+ksr <emphasis role="op">=</emphasis> 44100
+asig <emphasis role="opc">diskin</emphasis> "fox.wav", 1
+aout Decimator asig, kbit, ksr
+ <emphasis role="opc">printks</emphasis> "bitrate <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d, ", 3, kbit
+ <emphasis role="opc">printks</emphasis> "with samplerate <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\\n", 3, ksr
+ <emphasis role="opc">outs</emphasis> aout<emphasis role="op">*</emphasis>.7, aout<emphasis role="op">*</emphasis>.7
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">;moving randomly between different bit values (1 - 6)</emphasis>
+
+kbit <emphasis role="opc">randomi</emphasis> 1, 6, .5, 1
+asig <emphasis role="opc">diskin</emphasis> "fox.wav", 1, 0, 1 <emphasis role="comment">;loop play</emphasis>
+aout Decimator asig, kbit, 44100
+ <emphasis role="opc">printks</emphasis> "bitrate <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>f\n", .3, kbit
+ <emphasis role="opc">outs</emphasis> aout<emphasis role="op">*</emphasis>.7, aout<emphasis role="op">*</emphasis>.7
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 3 16 <emphasis role="comment">;sounds allright but</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 5 <emphasis role="comment">;it's getting worse</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 3 2 <emphasis role="comment">;and worse...</emphasis>
+<emphasis role="stamnt">i</emphasis> 2 9 22 <emphasis role="comment">;or quality moves randomly</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/urandom.csd.xml b/examples-xml/urandom.csd.xml
index 7596fb3..d820e9d 100644
--- a/examples-xml/urandom.csd.xml
+++ b/examples-xml/urandom.csd.xml
@@ -18,7 +18,7 @@
<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; Create random numbers at a-rate in the range -2 to 2</emphasis>
- aur <emphasis role="opc">urandom</emphasis> <emphasis role="op">-</emphasis>2, 2
+ aur urandom <emphasis role="op">-</emphasis>2, 2
<emphasis role="comment">; Use the random numbers to choose a frequency.</emphasis>
afreq <emphasis role="op">=</emphasis> aur <emphasis role="op">*</emphasis> 500 <emphasis role="op">+</emphasis> 100
diff --git a/examples-xml/urandom_krate.csd.xml b/examples-xml/urandom_krate.csd.xml
index 01f8235..4dd0bfe 100644
--- a/examples-xml/urandom_krate.csd.xml
+++ b/examples-xml/urandom_krate.csd.xml
@@ -19,7 +19,7 @@
<emphasis role="oblock">instr</emphasis> 1
<emphasis role="comment">; Create random numbers at k-rate in the range -1 to 1 </emphasis>
<emphasis role="comment">; with a uniform distribution.</emphasis>
- k1 <emphasis role="opc">urandom</emphasis>
+ k1 urandom
<emphasis role="opc">printks</emphasis> "k1<emphasis role="op">=</emphasis><emphasis role="op">%</emphasis>f\\n", 0.1, k1
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/urd.csd.xml b/examples-xml/urd.csd.xml
new file mode 100644
index 0000000..4833498
--- /dev/null
+++ b/examples-xml/urd.csd.xml
@@ -0,0 +1,51 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o urd.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ktab <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;ftable 1</emphasis>
+kurd <emphasis role="op">=</emphasis> <emphasis role="opc">urd</emphasis>(ktab)
+ktrig <emphasis role="opc">metro</emphasis> 5 <emphasis role="comment">;triggers 5 times per second</emphasis>
+kres <emphasis role="opc">samphold</emphasis> kurd, ktrig <emphasis role="comment">;sample and hold value of kurd</emphasis>
+ <emphasis role="opc">printk2</emphasis> kres <emphasis role="comment">;print it</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .5, 220<emphasis role="op">+</emphasis>kres, 2
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2
+
+<emphasis role="ohdr">seed</emphasis> 0 <emphasis role="comment">;every run new values</emphasis>
+
+ktab <emphasis role="op">=</emphasis> 1 <emphasis role="comment">;ftable 1</emphasis>
+kurd <emphasis role="op">=</emphasis> <emphasis role="opc">urd</emphasis>(ktab)
+ktrig <emphasis role="opc">metro</emphasis> 5 <emphasis role="comment">;triggers 5 times per second</emphasis>
+kres <emphasis role="opc">samphold</emphasis> kurd, ktrig <emphasis role="comment">;sample and hold value of kurd</emphasis>
+ <emphasis role="opc">printk2</emphasis> kres <emphasis role="comment">;print it</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .5, 220<emphasis role="op">+</emphasis>kres, 2
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 -20 -42 10 20 .3 100 200 .7 <emphasis role="comment">;30% choose between 10 and 20 and 70% between 100 and 200</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+<emphasis role="stamnt">i</emphasis> 2 6 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/v.csd.xml b/examples-xml/v.csd.xml
new file mode 100644
index 0000000..dd48326
--- /dev/null
+++ b/examples-xml/v.csd.xml
@@ -0,0 +1,40 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o v.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aenv <emphasis role="opc">expseg</emphasis> .01, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0.01
+asig <emphasis role="opc">poscil3</emphasis> .4<emphasis role="op">*</emphasis>aenv, p4, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
+<emphasis role="comment">;because note 3 and 5 are played simultaneously and are nearly of the same frequency,</emphasis>
+<emphasis role="comment">;played together they will create a "beating" sound.</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 2 110 <emphasis role="comment">; note1</emphasis>
+<emphasis role="stamnt">v</emphasis>2
+<emphasis role="stamnt">i</emphasis> 1 3 . 220 <emphasis role="comment">; note2</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 6 . 110 <emphasis role="comment">; note3</emphasis>
+<emphasis role="stamnt">v</emphasis>1
+<emphasis role="stamnt">i</emphasis> 1 9 . 880 <emphasis role="comment">; note4</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 12 . 100 <emphasis role="comment">; note5</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/valpass-2.csd.xml b/examples-xml/valpass-2.csd.xml
new file mode 100644
index 0000000..25c1848
--- /dev/null
+++ b/examples-xml/valpass-2.csd.xml
@@ -0,0 +1,39 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o valpass-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+giSine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 65536, 10, 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1
+krvt <emphasis role="opc">line</emphasis> 0.01, p3, p3 <emphasis role="comment">;reverb time</emphasis>
+adepth <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;sine depth </emphasis>
+krate <emphasis role="op">=</emphasis> 0.3 <emphasis role="comment">;sine rate (speed)</emphasis>
+adel <emphasis role="opc">oscil</emphasis> 0.5, krate, giSine <emphasis role="comment">;delay time oscillator (LFO)</emphasis>
+adel <emphasis role="op">=</emphasis> ((adel<emphasis role="op">+</emphasis>0.5)<emphasis role="op">*</emphasis>adepth) <emphasis role="comment">;scale and offset LFO</emphasis>
+aout <emphasis role="opc">valpass</emphasis> asig, krvt, adel<emphasis role="op">*</emphasis>0.01, 0.5
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 10 1
+<emphasis role="stamnt">i</emphasis>1 11 10 5
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/valpass.csd.xml b/examples-xml/valpass.csd.xml
index 5bee75b..8b79209 100644
--- a/examples-xml/valpass.csd.xml
+++ b/examples-xml/valpass.csd.xml
@@ -2,39 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o valpass.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
krvt <emphasis role="op">=</emphasis> 1.5
-klpt <emphasis role="opc">line</emphasis> p4, p3, p5
+klpt <emphasis role="opc">line</emphasis> p4, p3, p5
imaxlpt <emphasis role="op">=</emphasis> .1
-a1 <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
-a1 <emphasis role="opc">valpass</emphasis> a1, krvt, klpt, imaxlpt
-a2 <emphasis role="opc">valpass</emphasis> a1, krvt, klpt<emphasis role="op">*</emphasis>.5, imaxlpt
- <emphasis role="opc">outs</emphasis> a1, a2
+a1 <emphasis role="opc">diskin2</emphasis> "fox.wav", 1
+a1 <emphasis role="opc">valpass</emphasis> a1, krvt, klpt, imaxlpt
+a2 <emphasis role="opc">valpass</emphasis> a1, krvt, klpt<emphasis role="op">*</emphasis>.5, imaxlpt
+ <emphasis role="opc">outs</emphasis> a1, a2
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 5 .01 .2
-
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/vbap.csd.xml b/examples-xml/vbap.csd.xml
new file mode 100644
index 0000000..410fd93
--- /dev/null
+++ b/examples-xml/vbap.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vbap.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4 <emphasis role="comment">;quad</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">vbaplsinit</emphasis> 2, 4, 0, 90, 180, 270
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;loop beats.wav</emphasis>
+kaz <emphasis role="opc">line</emphasis> 0, p3, p4 <emphasis role="comment">;come from right rear speaker &amp; </emphasis>
+a1,a2,a3,a4 <emphasis role="opc">vbap</emphasis> asig, 180, 100, kaz <emphasis role="comment">;change spread of soundsource</emphasis>
+ <emphasis role="opc">printks</emphasis> "spread of source <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\n", 1, kaz <emphasis role="comment">;print spread value</emphasis>
+ <emphasis role="opc">outq</emphasis> a1,a2,a3,a4
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 12 100
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vbap4.csd.xml b/examples-xml/vbap4.csd.xml
new file mode 100644
index 0000000..c0a9dd4
--- /dev/null
+++ b/examples-xml/vbap4.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vbap4.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4 <emphasis role="comment">;quad</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">vbaplsinit</emphasis> 2, 4, 0, 90, 180, 270
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;loop beats.wav</emphasis>
+kaz <emphasis role="opc">line</emphasis> 0, p3, p4 <emphasis role="comment">;come from right rear speaker &amp; </emphasis>
+a1,a2,a3,a4 <emphasis role="opc">vbap4</emphasis> asig, 180, 100, kaz <emphasis role="comment">;change spread of soundsource</emphasis>
+ <emphasis role="opc">printks</emphasis> "spread of source <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\n", 1, kaz <emphasis role="comment">;print spread value</emphasis>
+ <emphasis role="opc">outq</emphasis> a1,a2,a3,a4
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 12 100
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vbap4move.csd.xml b/examples-xml/vbap4move.csd.xml
new file mode 100644
index 0000000..c22d467
--- /dev/null
+++ b/examples-xml/vbap4move.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vbap4move.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4 <emphasis role="comment">;quad</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">vbaplsinit</emphasis> 2, 4, 0, 90, 180, 270
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;loop beats.wav</emphasis>
+a1,a2,a3,a4 <emphasis role="opc">vbap4move</emphasis> asig, p3, 1, 2, 310, 180 <emphasis role="comment">;change movement of soundsource in</emphasis>
+ <emphasis role="opc">outq</emphasis> a1,a2,a3,a4 <emphasis role="comment">;the rear speakers</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vbap8.csd.xml b/examples-xml/vbap8.csd.xml
index f1940a6..91c9c41 100644
--- a/examples-xml/vbap8.csd.xml
+++ b/examples-xml/vbap8.csd.xml
@@ -9,7 +9,7 @@
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
- <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 41000
+ <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 441
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
@@ -31,9 +31,9 @@
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
+<emphasis role="stamnt">f</emphasis> 1 0 8192 10 1
<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-, azimuth
+<emphasis role="comment">; azimuth</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 1 20
<emphasis role="stamnt">i</emphasis> 1 + . 40
<emphasis role="stamnt">i</emphasis> 1 + . 60
diff --git a/examples-xml/vbapg.csd.xml b/examples-xml/vbapg.csd.xml
new file mode 100644
index 0000000..9b87391
--- /dev/null
+++ b/examples-xml/vbapg.csd.xml
@@ -0,0 +1,36 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vbap4.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4 <emphasis role="comment">;quad</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">vbaplsinit</emphasis> 2.01, 4, 0, 90, 180, 270
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;loop beats.wav</emphasis>
+kaz <emphasis role="opc">line</emphasis> 0, p3, p4 <emphasis role="comment">;come from right rear speaker &amp; </emphasis>
+k1,k2,k3,k4 <emphasis role="opc">vbapg</emphasis> 180, 100, kaz, 1 <emphasis role="comment">;change spread of soundsource</emphasis>
+ <emphasis role="opc">printks</emphasis> "spread of source <emphasis role="op">=</emphasis> <emphasis role="op">%</emphasis>d\n", 1, kaz <emphasis role="comment">;print spread value</emphasis>
+ <emphasis role="opc">outq</emphasis> asig<emphasis role="op">*</emphasis>k1,asig<emphasis role="op">*</emphasis>k2,asig<emphasis role="op">*</emphasis>k3,asig<emphasis role="op">*</emphasis>k4
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 12 100
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vbapgmove.csd.xml b/examples-xml/vbapgmove.csd.xml
new file mode 100644
index 0000000..d0ab43b
--- /dev/null
+++ b/examples-xml/vbapgmove.csd.xml
@@ -0,0 +1,35 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vbapgmove.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4 <emphasis role="comment">;quad</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">vbaplsinit</emphasis> 2, 4, 0, 90, 180, 270
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;loop beats.wav</emphasis>
+
+k0,k1,k2,k3 <emphasis role="opc">vbapgmove</emphasis> p3, 1, 2, 310, 180 <emphasis role="comment">;change movement of soundsource in</emphasis>
+ <emphasis role="opc">outq</emphasis> k0<emphasis role="op">*</emphasis>asig,k1<emphasis role="op">*</emphasis>asig,k2<emphasis role="op">*</emphasis>asig,k3<emphasis role="op">*</emphasis>asig <emphasis role="comment">;the rear speakers</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vbaplsinit.csd.xml b/examples-xml/vbaplsinit.csd.xml
new file mode 100644
index 0000000..20d54bf
--- /dev/null
+++ b/examples-xml/vbaplsinit.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vbaplsinit.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 8
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">vbaplsinit</emphasis> 2, 8, 0, 45, 90, 180, 270, 0, 0, 0 <emphasis role="comment">;5 speakers for 5.1 amps</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;loop beats.wav</emphasis>
+kazim <emphasis role="opc">line</emphasis> 1, p3, 355
+a1,a2,a3,a4,a5,a6,a7,a8 <emphasis role="opc">vbap8</emphasis> asig, kazim, 0, 1 <emphasis role="comment">;change azimuth of soundsource</emphasis>
+<emphasis role="comment">; Speaker mapping</emphasis>
+aFL <emphasis role="op">=</emphasis> a1 <emphasis role="comment">; Front Left</emphasis>
+aMF <emphasis role="op">=</emphasis> a5 <emphasis role="comment">; Mid Front </emphasis>
+aFR <emphasis role="op">=</emphasis> a2 <emphasis role="comment">; Front Right</emphasis>
+aBL <emphasis role="op">=</emphasis> a3 <emphasis role="comment">; Back Left</emphasis>
+aBR <emphasis role="op">=</emphasis> a4 <emphasis role="comment">; Back Right</emphasis>
+ <emphasis role="opc">outo</emphasis> aFL,aFR,aBL,aBR,aMF,a6,a7,a8 <emphasis role="comment">;a6, a7 and a8 are dummies </emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vbapmove.csd.xml b/examples-xml/vbapmove.csd.xml
new file mode 100644
index 0000000..c913c48
--- /dev/null
+++ b/examples-xml/vbapmove.csd.xml
@@ -0,0 +1,34 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vbapmove.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4 <emphasis role="comment">;quad</emphasis>
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="opc">vbaplsinit</emphasis> 2, 4, 0, 90, 180, 270
+
+<emphasis role="oblock">instr</emphasis> 1
+
+asig <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;loop beats.wav</emphasis>
+a1,a2,a3,a4 <emphasis role="opc">vbapmove</emphasis> asig, p3, 1, 2, 310, 180 <emphasis role="comment">;change movement of soundsource in</emphasis>
+ <emphasis role="opc">outq</emphasis> a1,a2,a3,a4 <emphasis role="comment">;the rear speakers</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 5
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vco2ift.csd.xml b/examples-xml/vco2ift.csd.xml
index 468e96c..1d639f7 100644
--- a/examples-xml/vco2ift.csd.xml
+++ b/examples-xml/vco2ift.csd.xml
@@ -2,67 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o vco2ift.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; user defined waveform -1: trapezoid wave with default parameters (can be</emphasis>
-<emphasis role="comment">; accessed at ftables starting from 10000)</emphasis>
-itmp <emphasis role="ohdr">ftgen</emphasis> 1, 0, 16384, 7, 0, 2048, 1, 4096, 1, 4096, <emphasis role="op">-</emphasis>1, 4096, <emphasis role="op">-</emphasis>1, 2048, 0
-ift <emphasis role="opc">vco2init</emphasis> <emphasis role="op">-</emphasis>1, 10000, 0, 0, 0, 1
-<emphasis role="comment">; user defined waveform -2: fixed table size (4096), number of partials</emphasis>
-<emphasis role="comment">; multiplier is 1.02 (~238 tables)</emphasis>
-itmp <emphasis role="ohdr">ftgen</emphasis> 2, 0, 16384, 7, 1, 4095, 1, 1, <emphasis role="op">-</emphasis>1, 4095, <emphasis role="op">-</emphasis>1, 1, 0, 8192, 0
-ift <emphasis role="opc">vco2init</emphasis> <emphasis role="op">-</emphasis>2, ift, 1.02, 4096, 4096, 2
+<emphasis role="comment">; user defined waveform -2: fixed table size (64), number of partials</emphasis>
+<emphasis role="comment">; multiplier is 1.4</emphasis>
+itmp <emphasis role="ohdr">ftgen</emphasis> 2, 0, 64, 5, 1, 2, 120, 60, 1, 1, 0.001, 1
+ift <emphasis role="opc">vco2init</emphasis> <emphasis role="op">-</emphasis>2, 2, 1.4, 4096, 4096, 2
- <emphasis role="oblock">instr</emphasis> 1
-kcps <emphasis role="opc">expon</emphasis> p4, p3, p5 <emphasis role="comment">; instr 1: basic vco2 example</emphasis>
-a1 <emphasis role="opc">vco2</emphasis> 12000, kcps <emphasis role="comment">; (sawtooth wave with default</emphasis>
- <emphasis role="opc">out</emphasis> a1 <emphasis role="comment">; parameters)</emphasis>
- <emphasis role="oblock">endin</emphasis>
- <emphasis role="oblock">instr</emphasis> 2
-kcps <emphasis role="opc">expon</emphasis> p4, p3, p5 <emphasis role="comment">; instr 2:</emphasis>
-kpw <emphasis role="opc">linseg</emphasis> 0.1, p3<emphasis role="op">/</emphasis>2, 0.9, p3<emphasis role="op">/</emphasis>2, 0.1 <emphasis role="comment">; PWM example</emphasis>
-a1 <emphasis role="opc">vco2</emphasis> 10000, kcps, 2, kpw
- <emphasis role="opc">out</emphasis> a1
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> 3
-kcps <emphasis role="opc">expon</emphasis> p4, p3, p5 <emphasis role="comment">; instr 3: vco2 with user</emphasis>
-a1 <emphasis role="opc">vco2</emphasis> 14000, kcps, 14 <emphasis role="comment">; defined waveform (-1)</emphasis>
-aenv <emphasis role="opc">linseg</emphasis> 1, p3 <emphasis role="op">-</emphasis> 0.1, 1, 0.1, 0 <emphasis role="comment">; de-click envelope</emphasis>
- <emphasis role="opc">out</emphasis> a1 <emphasis role="op">*</emphasis> aenv
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> 4
-icps <emphasis role="op">=</emphasis> p4 <emphasis role="comment">; instr 4: vco2ift example,</emphasis>
-ifn <emphasis role="opc">vco2ift</emphasis> icps, <emphasis role="op">-</emphasis>2, 0.25 <emphasis role="comment">; with user defined waveform</emphasis>
-a1 <emphasis role="opc">oscili</emphasis> 12000, icps, ifn <emphasis role="comment">; (-2), and sr/4 bandwidth</emphasis>
- <emphasis role="opc">out</emphasis> a1
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+icps <emphasis role="op">=</emphasis> p4
+ifn <emphasis role="opc">vco2ift</emphasis> icps, <emphasis role="op">-</emphasis>2, 0.5 <emphasis role="comment">;with user defined waveform</emphasis>
+<emphasis role="opc">print</emphasis> ifn
+asig <emphasis role="opc">oscili</emphasis> 1, 220, ifn <emphasis role="comment">; (-2), and sr/2 bandwidth</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 3 20 2000
-<emphasis role="stamnt">i</emphasis> 2 4 2 200 400
-<emphasis role="stamnt">i</emphasis> 3 7 3 400 20
-<emphasis role="stamnt">i</emphasis> 4 11 2 200
-
-<emphasis role="stamnt">f</emphasis> 0 14
+<emphasis role="stamnt">i</emphasis> 1 0 2 20
+<emphasis role="stamnt">i</emphasis> 1 3 2 2000
+<emphasis role="stamnt">i</emphasis> 1 6 2 20000
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/vco2init.csd.xml b/examples-xml/vco2init.csd.xml
index 8f30f3b..801b90a 100644
--- a/examples-xml/vco2init.csd.xml
+++ b/examples-xml/vco2init.csd.xml
@@ -2,67 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o vco2init.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">sr</emphasis><emphasis role="op">=</emphasis>44100
+<emphasis role="ohdr">ksmps</emphasis><emphasis role="op">=</emphasis>1
+<emphasis role="ohdr">nchnls</emphasis><emphasis role="op">=</emphasis>2
-<emphasis role="comment">; user defined waveform -1: trapezoid wave with default parameters (can be</emphasis>
-<emphasis role="comment">; accessed at ftables starting from 10000)</emphasis>
-itmp <emphasis role="ohdr">ftgen</emphasis> 1, 0, 16384, 7, 0, 2048, 1, 4096, 1, 4096, <emphasis role="op">-</emphasis>1, 4096, <emphasis role="op">-</emphasis>1, 2048, 0
-ift <emphasis role="opc">vco2init</emphasis> <emphasis role="op">-</emphasis>1, 10000, 0, 0, 0, 1
-<emphasis role="comment">; user defined waveform -2: fixed table size (4096), number of partials</emphasis>
-<emphasis role="comment">; multiplier is 1.02 (~238 tables)</emphasis>
-itmp <emphasis role="ohdr">ftgen</emphasis> 2, 0, 16384, 7, 1, 4095, 1, 1, <emphasis role="op">-</emphasis>1, 4095, <emphasis role="op">-</emphasis>1, 1, 0, 8192, 0
-ift <emphasis role="opc">vco2init</emphasis> <emphasis role="op">-</emphasis>2, ift, 1.02, 4096, 4096, 2
+<emphasis role="comment">; create waveform with discontinuities, so it has a lot of high freq content</emphasis>
+gitable <emphasis role="ohdr">ftgen</emphasis> 0, 0, 2^16<emphasis role="op">+</emphasis>1, 7, <emphasis role="op">-</emphasis>1, 2^14, 1, 0, <emphasis role="op">-</emphasis>1, 2^14, 1, 0, <emphasis role="op">-</emphasis>1, 2^15, 1
+<emphasis role="comment">; make bandlimited tables of the waveform</emphasis>
+gi_nextfree <emphasis role="opc">vco2init</emphasis> <emphasis role="op">-</emphasis>gitable, gitable<emphasis role="op">+</emphasis>1, 1.05, 128, 2^16, gitable
+gitable_bl <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>gitable
- <emphasis role="oblock">instr</emphasis> 1
-kcps <emphasis role="opc">expon</emphasis> p4, p3, p5 <emphasis role="comment">; instr 1: basic vco2 example</emphasis>
-a1 <emphasis role="opc">vco2</emphasis> 12000, kcps <emphasis role="comment">; (sawtooth wave with default</emphasis>
- <emphasis role="opc">outs</emphasis> a1, a1 <emphasis role="comment">; parameters)</emphasis>
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="oblock">instr</emphasis> 2
-kcps <emphasis role="opc">expon</emphasis> p4, p3, p5 <emphasis role="comment">; instr 2:</emphasis>
-kpw <emphasis role="opc">linseg</emphasis> 0.1, p3<emphasis role="op">/</emphasis>2, 0.9, p3<emphasis role="op">/</emphasis>2, 0.1 <emphasis role="comment">; PWM example</emphasis>
-a1 <emphasis role="opc">vco2</emphasis> 10000, kcps, 2, kpw
- <emphasis role="opc">outs</emphasis> a1, a1
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> 3
-kcps <emphasis role="opc">expon</emphasis> p4, p3, p5 <emphasis role="comment">; instr 3: vco2 with user</emphasis>
-a1 <emphasis role="opc">vco2</emphasis> 14000, kcps, 14 <emphasis role="comment">; defined waveform (-1)</emphasis>
-aenv <emphasis role="opc">linseg</emphasis> 1, p3 <emphasis role="op">-</emphasis> 0.1, 1, 0.1, 0 <emphasis role="comment">; de-click envelope</emphasis>
- <emphasis role="opc">outs</emphasis> a1 <emphasis role="op">*</emphasis> aenv, a1 <emphasis role="op">*</emphasis> aenv
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> 4
-kcps <emphasis role="opc">expon</emphasis> p4, p3, p5 <emphasis role="comment">; instr 4: vco2ft example,</emphasis>
-kfn <emphasis role="opc">vco2ft</emphasis> kcps, <emphasis role="op">-</emphasis>2, 0.25 <emphasis role="comment">; with user defined waveform</emphasis>
-a1 <emphasis role="opc">oscilikt</emphasis> 12000, kcps, kfn <emphasis role="comment">; (-2), and sr/4 bandwidth</emphasis>
- <emphasis role="opc">outs</emphasis> a1, a1
- <emphasis role="oblock">endin</emphasis>
+kfreq <emphasis role="opc">expon</emphasis> 14000, p3, 500
+kfn <emphasis role="opc">vco2ft</emphasis> kfreq, gitable_bl
+asig <emphasis role="opc">oscilikt</emphasis> 5000, kfreq, kfn
+<emphasis role="opc">printk</emphasis> 0.1, kfn
+<emphasis role="comment">; remove semicolon on next line to hear original waveform, demonstrating the aliasing</emphasis>
+<emphasis role="comment">;asig oscili 5000, kfreq, gitable</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
-<emphasis role="stamnt">i</emphasis> 1 0 3 20 2000
-<emphasis role="stamnt">i</emphasis> 2 4 2 200 400
-<emphasis role="stamnt">i</emphasis> 3 7 3 400 20
-<emphasis role="stamnt">i</emphasis> 4 11 2 100 200
-
-<emphasis role="stamnt">f</emphasis> 0 14
-
+<emphasis role="stamnt">i</emphasis>1 0 5
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/vdelay.csd.xml b/examples-xml/vdelay.csd.xml
index a0f8762..5755d81 100644
--- a/examples-xml/vdelay.csd.xml
+++ b/examples-xml/vdelay.csd.xml
@@ -2,38 +2,35 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o vdelay.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ims <emphasis role="op">=</emphasis> 100 <emphasis role="comment">; Maximum delay time in msec</emphasis>
-a1 <emphasis role="opc">oscil</emphasis> 10000, 1737, 1 <emphasis role="comment">; Make a signal</emphasis>
-a2 <emphasis role="opc">oscil</emphasis> ims<emphasis role="op">/</emphasis>2, 1<emphasis role="op">/</emphasis>p3, 1 <emphasis role="comment">; Make an LFO</emphasis>
-a2 <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">; Offset the LFO so that it is positive</emphasis>
-a3 <emphasis role="opc">vdelay</emphasis> a1, a2, ims <emphasis role="comment">; Use the LFO to control delay time</emphasis>
- <emphasis role="opc">outs</emphasis> a3, a3
+ims <emphasis role="op">=</emphasis> 100 <emphasis role="comment">;maximum delay time in msec</emphasis>
+aout <emphasis role="opc">poscil</emphasis> .8, 220, 1 <emphasis role="comment">;make a signal</emphasis>
+a2 <emphasis role="opc">poscil3</emphasis> ims<emphasis role="op">/</emphasis>2, 1<emphasis role="op">/</emphasis>p3, 1 <emphasis role="comment">;make an LFO</emphasis>
+a2 <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">;offset the LFO so that it is positive</emphasis>
+asig <emphasis role="opc">vdelay</emphasis> aout, a2, ims <emphasis role="comment">;use the LFO to control delay time</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1 <emphasis role="comment">;sine wave</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 5
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/vdelay3.csd.xml b/examples-xml/vdelay3.csd.xml
index 8b920bf..fbc06a9 100644
--- a/examples-xml/vdelay3.csd.xml
+++ b/examples-xml/vdelay3.csd.xml
@@ -2,27 +2,26 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o vdelay3.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-ims <emphasis role="op">=</emphasis> 100 <emphasis role="comment">; Maximum delay time in msec</emphasis>
-a1 <emphasis role="opc">oscil</emphasis> 10000, 1737, 1 <emphasis role="comment">; Make a signal</emphasis>
-a2 <emphasis role="opc">oscil</emphasis> ims<emphasis role="op">/</emphasis>2, 1<emphasis role="op">/</emphasis>p3, 1 <emphasis role="comment">; Make an LFO</emphasis>
-a2 <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">; Offset the LFO so that it is positive</emphasis>
-a3 <emphasis role="opc">vdelay3</emphasis> a1, a2, ims <emphasis role="comment">; Use the LFO to control delay time</emphasis>
- <emphasis role="opc">outs</emphasis> a3, a3
+ims <emphasis role="op">=</emphasis> 100 <emphasis role="comment">;maximum delay time in msec</emphasis>
+aout <emphasis role="opc">poscil</emphasis> .8, 220, 1 <emphasis role="comment">;make a signal</emphasis>
+a2 <emphasis role="opc">poscil</emphasis> ims<emphasis role="op">/</emphasis>2, 1<emphasis role="op">/</emphasis>p3, 1 <emphasis role="comment">;make an LFO</emphasis>
+a2 <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">;offset the LFO so that it is positive</emphasis>
+asig <emphasis role="opc">vdelay3</emphasis> aout, a2, ims <emphasis role="comment">;use the LFO to control delay time</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/vdelayx.csd.xml b/examples-xml/vdelayx.csd.xml
new file mode 100644
index 0000000..3c72ef2
--- /dev/null
+++ b/examples-xml/vdelayx.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vdelayx.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ims <emphasis role="op">=</emphasis> .5 <emphasis role="comment">;maximum delay time in seconds</emphasis>
+iws <emphasis role="op">=</emphasis> 1024 <emphasis role="comment">;window size</emphasis>
+adl <emphasis role="op">=</emphasis> .5 <emphasis role="comment">;delay time</emphasis>
+asig <emphasis role="opc">diskin2</emphasis> "fox.wav", 1, 0, 1 <emphasis role="comment">;loop fox.wav</emphasis>
+a2 <emphasis role="opc">poscil</emphasis> .2, .2, 1 <emphasis role="comment">;make an LFO</emphasis>
+adl <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">;offset the LFO so that it is positive</emphasis>
+aout <emphasis role="opc">vdelayx</emphasis> asig, adl, ims, iws <emphasis role="comment">;use the LFO to control delay time</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vdelayxq.csd.xml b/examples-xml/vdelayxq.csd.xml
new file mode 100644
index 0000000..b0c48e6
--- /dev/null
+++ b/examples-xml/vdelayxq.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vdelayxq.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ims <emphasis role="op">=</emphasis> .5 <emphasis role="comment">;maximum delay time in seconds</emphasis>
+iws <emphasis role="op">=</emphasis> 1024 <emphasis role="comment">;window size</emphasis>
+adl <emphasis role="op">=</emphasis> .5
+aout1 <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;loop beats.wav</emphasis>
+aout2 <emphasis role="opc">diskin2</emphasis> "fox.wav", 1, 0, 1 <emphasis role="comment">;loop fox.wav</emphasis>
+aout3 <emphasis role="opc">diskin2</emphasis> "Church.wav", 1, 0, 1 <emphasis role="comment">;loop Church.wav</emphasis>
+aout4 <emphasis role="opc">diskin2</emphasis> "flute.aiff", 1, 0, 1 <emphasis role="comment">;loop flute.aiff</emphasis>
+a2 <emphasis role="opc">poscil</emphasis> .1, .5, 1 <emphasis role="comment">;make an LFO, 1 cycle per 2 seconds</emphasis>
+adl <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">;offset the LFO so that it is positive</emphasis>
+aout1, aout2, aout3, aout4 <emphasis role="opc">vdelayxq</emphasis> aout1, aout2, aout3, aout4, adl, ims, iws<emphasis role="comment">; Use the LFO to control delay time</emphasis>
+ <emphasis role="opc">outq</emphasis> aout1, aout2, aout3, aout4
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vdelayxs.csd.xml b/examples-xml/vdelayxs.csd.xml
new file mode 100644
index 0000000..62ae67d
--- /dev/null
+++ b/examples-xml/vdelayxs.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vdelayxs.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ims <emphasis role="op">=</emphasis> .5 <emphasis role="comment">;maximum delay time in seconds</emphasis>
+iws <emphasis role="op">=</emphasis> 1024 <emphasis role="comment">;window size</emphasis>
+adl <emphasis role="op">=</emphasis> .5 <emphasis role="comment">;delay time</emphasis>
+asig1, asig2 <emphasis role="opc">diskin2</emphasis> "kickroll.wav", 1, 0, 1 <emphasis role="comment">;loop stereo file kickroll.wav</emphasis>
+a2 <emphasis role="opc">poscil</emphasis> .25, .1, 1 <emphasis role="comment">;make an LFO, 1 cycle per 2 seconds</emphasis>
+adl <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">;offset the LFO so that it is positive</emphasis>
+aoutL, aoutR <emphasis role="opc">vdelayxs</emphasis> asig1, asig2, adl, ims, iws <emphasis role="comment">;use the LFO to control delay time</emphasis>
+ <emphasis role="opc">outs</emphasis> aoutL, aoutR
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vdelayxw.csd.xml b/examples-xml/vdelayxw.csd.xml
new file mode 100644
index 0000000..02780f7
--- /dev/null
+++ b/examples-xml/vdelayxw.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vdelayxw.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ims <emphasis role="op">=</emphasis> .5 <emphasis role="comment">;maximum delay time in seconds</emphasis>
+iws <emphasis role="op">=</emphasis> 1024 <emphasis role="comment">;best quality</emphasis>
+adl <emphasis role="op">=</emphasis> .5 <emphasis role="comment">;delay time</emphasis>
+asig <emphasis role="opc">diskin2</emphasis> "flute.aiff", .5, 0, 1 <emphasis role="comment">;loop flute.aiff at half speed</emphasis>
+a2 <emphasis role="opc">poscil3</emphasis> .2, .1, 1 <emphasis role="comment">;make an LFO, 1 cycle per 2 seconds</emphasis>
+adl <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">;offset the LFO so that it is positive</emphasis>
+aout <emphasis role="opc">vdelayxw</emphasis> asig, adl, ims, iws <emphasis role="comment">;use the LFO to control delay time</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vdelayxwq.csd.xml b/examples-xml/vdelayxwq.csd.xml
new file mode 100644
index 0000000..2179c1a
--- /dev/null
+++ b/examples-xml/vdelayxwq.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vdelayxwq.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 4
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ims <emphasis role="op">=</emphasis> .5 <emphasis role="comment">;maximum delay time in seconds</emphasis>
+iws <emphasis role="op">=</emphasis> 1024 <emphasis role="comment">;best quality</emphasis>
+adl <emphasis role="op">=</emphasis> .5 <emphasis role="comment">;delay time</emphasis>
+aout1 <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;loop beats.wav</emphasis>
+aout2 <emphasis role="opc">diskin2</emphasis> "fox.wav", 1, 0, 1 <emphasis role="comment">;loop fox.wav</emphasis>
+aout3 <emphasis role="opc">diskin2</emphasis> "Church.wav", 1, 0, 1 <emphasis role="comment">;loop Church.wav</emphasis>
+aout4 <emphasis role="opc">diskin2</emphasis> "flute.aiff", 1, 0, 1 <emphasis role="comment">;loop flute.aiff</emphasis>
+a2 <emphasis role="opc">poscil3</emphasis> .2, .1, 1 <emphasis role="comment">;make an LFO, 1 cycle per 2 seconds</emphasis>
+adl <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">;offset the LFO so that it is positive</emphasis>
+aout1, aout2, aout3, aout4 <emphasis role="opc">vdelayxwq</emphasis> aout1, aout2, aout3, aout4, adl, ims, iws <emphasis role="comment">;use the LFO to control delay time</emphasis>
+ <emphasis role="opc">outq</emphasis> aout1, aout2, aout3, aout4
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vdelayxws.csd.xml b/examples-xml/vdelayxws.csd.xml
new file mode 100644
index 0000000..e173d12
--- /dev/null
+++ b/examples-xml/vdelayxws.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vdelayxws.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ims <emphasis role="op">=</emphasis> .5 <emphasis role="comment">;maximum delay time in seconds</emphasis>
+iws <emphasis role="op">=</emphasis> 1024 <emphasis role="comment">;window size</emphasis>
+adl <emphasis role="op">=</emphasis> .5 <emphasis role="comment">;delay time</emphasis>
+asig1, asig2 <emphasis role="opc">diskin2</emphasis> "kickroll.wav", 1, 0, 1 <emphasis role="comment">;loop stereo file kickroll.wav</emphasis>
+a2 <emphasis role="opc">poscil</emphasis> .2, .1, 1 <emphasis role="comment">;make an LFO, 1 cycle per 10 seconds</emphasis>
+adl <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">;offset the LFO so that it is positive</emphasis>
+aoutL, aoutR <emphasis role="opc">vdelayxws</emphasis> asig1, asig2, adl, ims, iws <emphasis role="comment">;use the LFO to control delay time</emphasis>
+ <emphasis role="opc">outs</emphasis> aoutL, aoutR
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 8192 10 1
+
+<emphasis role="stamnt">i</emphasis> 1 0 10
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/veloc.csd.xml b/examples-xml/veloc.csd.xml
index f7bb85b..3248d0b 100644
--- a/examples-xml/veloc.csd.xml
+++ b/examples-xml/veloc.csd.xml
@@ -2,35 +2,32 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages MIDI in</emphasis>
--odac -iadc -d -M0 <emphasis role="comment">;;;RT audio I/O with MIDI in</emphasis>
-<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o veloc.wav -W ;;; for file output any platform</emphasis>
+-odac -+rtmidi=virtual -M0 <emphasis role="comment">;;;realtime audio I/O with MIDI in</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gisine <emphasis role="ohdr">ftgen</emphasis> 0, 0, 1024, 10, 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- i1 <emphasis role="opc">veloc</emphasis>
- <emphasis role="opc">print</emphasis> i1
+ivel <emphasis role="opc">veloc</emphasis> 0, 1 <emphasis role="comment">;scale 0 - 1</emphasis>
+<emphasis role="opc">print</emphasis> ivel <emphasis role="comment">;print velocity</emphasis>
+asig <emphasis role="opc">poscil</emphasis> .5<emphasis role="op">*</emphasis>ivel, 220, gisine <emphasis role="comment">;and use it as amplitude</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for 12 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 12
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">f</emphasis> 0 30 <emphasis role="comment">;runs 30 seconds</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/vibr.csd.xml b/examples-xml/vibr.csd.xml
index e821d20..fc52b0e 100644
--- a/examples-xml/vibr.csd.xml
+++ b/examples-xml/vibr.csd.xml
@@ -2,47 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o vibr.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create a vibrato waveform.</emphasis>
- kaverageamp <emphasis role="opc">init</emphasis> 7500
- kaveragefreq <emphasis role="opc">init</emphasis> 5
- ifn <emphasis role="op">=</emphasis> 1
- kvamp <emphasis role="opc">vibr</emphasis> kaverageamp, kaveragefreq, ifn
- <emphasis role="comment">; Generate a tone including the vibrato.</emphasis>
- a1 <emphasis role="opc">oscili</emphasis> 10000<emphasis role="op">+</emphasis>kvamp, 440, 2
+kaverageamp <emphasis role="opc">init</emphasis> 500
+kaveragefreq <emphasis role="opc">init</emphasis> 4
+kvib <emphasis role="opc">vibr</emphasis> kaverageamp, kaveragefreq, 1
+asig <emphasis role="opc">poscil</emphasis> .8, 220<emphasis role="op">+</emphasis>kvib, 1 <emphasis role="comment">;add vibrato</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Table #1, a sine wave for the vibrato.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 256 10 1
-<emphasis role="comment">; Table #1, a sine wave for the oscillator.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
+<emphasis role="stamnt">i</emphasis> 1 0 10
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/vibrato.csd.xml b/examples-xml/vibrato.csd.xml
index 8605d79..002a876 100644
--- a/examples-xml/vibrato.csd.xml
+++ b/examples-xml/vibrato.csd.xml
@@ -2,55 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o vibrato.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Create a vibrato waveform.</emphasis>
- kaverageamp <emphasis role="opc">init</emphasis> 2500
- kaveragefreq <emphasis role="opc">init</emphasis> 6
- krandamountamp <emphasis role="opc">init</emphasis> 0.3
- krandamountfreq <emphasis role="opc">init</emphasis> 0.5
- kampminrate <emphasis role="opc">init</emphasis> 3
- kampmaxrate <emphasis role="opc">init</emphasis> 5
- kcpsminrate <emphasis role="opc">init</emphasis> 3
- kcpsmaxrate <emphasis role="opc">init</emphasis> 5
- ifn <emphasis role="op">=</emphasis> 1
- kvamp <emphasis role="opc">vibrato</emphasis> kaverageamp, kaveragefreq, krandamountamp, \
- krandamountfreq, kampminrate, kampmaxrate, \
- kcpsminrate, kcpsmaxrate, ifn
- <emphasis role="comment">; Generate a tone including the vibrato.</emphasis>
- a1 <emphasis role="opc">oscili</emphasis> 10000<emphasis role="op">+</emphasis>kvamp, 440, 2
+kaverageamp <emphasis role="opc">init</emphasis> .5
+kaveragefreq <emphasis role="opc">init</emphasis> 5
+krandamountamp <emphasis role="opc">line</emphasis> p4, p3, p5 <emphasis role="comment">;increase random amplitude of vibrato</emphasis>
+krandamountfreq <emphasis role="opc">init</emphasis> .3
+kampminrate <emphasis role="opc">init</emphasis> 3
+kampmaxrate <emphasis role="opc">init</emphasis> 5
+kcpsminrate <emphasis role="opc">init</emphasis> 3
+kcpsmaxrate <emphasis role="opc">init</emphasis> 5
+kvib <emphasis role="opc">vibrato</emphasis> kaverageamp, kaveragefreq, krandamountamp, krandamountfreq, kampminrate, kampmaxrate, kcpsminrate, kcpsmaxrate, 1
+asig <emphasis role="opc">poscil</emphasis> .8, 220<emphasis role="op">+</emphasis>kvib, 1 <emphasis role="comment">;add vibrato</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Table #1, a sine wave for the vibrato.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 256 10 1
-<emphasis role="comment">; Table #1, a sine wave for the oscillator.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 16384 10 1
+<emphasis role="stamnt">i</emphasis> 1 0 15 .01 20
-<emphasis role="comment">; Play Instrument #1 for 2 seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/vincr-complex.csd.xml b/examples-xml/vincr-complex.csd.xml
new file mode 100644
index 0000000..8d30d29
--- /dev/null
+++ b/examples-xml/vincr-complex.csd.xml
@@ -0,0 +1,51 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vincr-complex.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gaReverbSend <emphasis role="opc">init</emphasis> 0
+
+<emphasis role="oblock">instr</emphasis> 1
+
+iamp <emphasis role="op">=</emphasis> p4
+ifreq <emphasis role="op">=</emphasis> p5
+aenv <emphasis role="opc">linseg</emphasis> 0.0, 0.1<emphasis role="op">*</emphasis>p3, iamp, 0.6<emphasis role="op">*</emphasis>p3, iamp, 0.3<emphasis role="op">*</emphasis>p3, 0.0
+aosc <emphasis role="opc">poscil</emphasis> aenv, ifreq, 1
+ <emphasis role="opc">vincr</emphasis> gaReverbSend, aosc
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; global reverb instrument</emphasis>
+
+al, ar <emphasis role="opc">reverbsc</emphasis> gaReverbSend, gaReverbSend, 0.85, 12000
+ <emphasis role="opc">outs</emphasis> gaReverbSend<emphasis role="op">+</emphasis>al, gaReverbSend<emphasis role="op">+</emphasis>ar
+ <emphasis role="opc">clear</emphasis> gaReverbSend
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
+
+{ 4 CNT
+ { 8 PARTIAL
+ <emphasis role="comment">; start time duration amplitude frequency </emphasis>
+ <emphasis role="stamnt">i</emphasis>1 [0.5 * $CNT.] [1 + ($CNT * 0.2)] [.04 + (~ * .02)] [800 + (200 * $CNT.) + ($PARTIAL. * 20)]
+ }
+}
+
+<emphasis role="stamnt">i</emphasis>2 0 6
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vincr.csd.xml b/examples-xml/vincr.csd.xml
index 199b6ee..fb835ec 100644
--- a/examples-xml/vincr.csd.xml
+++ b/examples-xml/vincr.csd.xml
@@ -2,40 +2,41 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o vincr.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
- <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
- <emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
- <emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
gaReverb <emphasis role="opc">init</emphasis> 0
<emphasis role="oblock">instr</emphasis> 1
-idur <emphasis role="op">=</emphasis> p3
-kpitch <emphasis role="op">=</emphasis> p4
+idur <emphasis role="op">=</emphasis> p3
+kpitch <emphasis role="op">=</emphasis> p4
a1 <emphasis role="opc">diskin2</emphasis> "fox.wav", kpitch
-a1 <emphasis role="op">=</emphasis> a1<emphasis role="op">*</emphasis>.5 <emphasis role="comment">;reduce volume</emphasis>
+a1 <emphasis role="op">=</emphasis> a1<emphasis role="op">*</emphasis>.5 <emphasis role="comment">;reduce volume</emphasis>
<emphasis role="opc">vincr</emphasis> gaReverb, a1
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; global reverb</emphasis>
-<emphasis role="oblock">instr</emphasis> 99
-kfb <emphasis role="opc">line</emphasis> 1, p3, 0
-al, ar <emphasis role="opc">reverbsc</emphasis> gaReverb, gaReverb, kfb, 10000
+<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; global reverb </emphasis>
+al, ar <emphasis role="opc">reverbsc</emphasis> gaReverb, gaReverb, .8, 10000
<emphasis role="opc">outs</emphasis> gaReverb<emphasis role="op">+</emphasis>al, gaReverb<emphasis role="op">+</emphasis>ar
- <emphasis role="opc">clear</emphasis> gaReverb
+
+<emphasis role="opc">clear</emphasis> gaReverb
+
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
<emphasis role="stamnt">i</emphasis>1 0 3 1
-<emphasis role="stamnt">i</emphasis>1 0.1 3 1.1
<emphasis role="stamnt">i</emphasis>99 0 5
<emphasis role="stamnt">e</emphasis>
diff --git a/examples-xml/vlowres.csd.xml b/examples-xml/vlowres.csd.xml
index e8738f2..fa1603d 100644
--- a/examples-xml/vlowres.csd.xml
+++ b/examples-xml/vlowres.csd.xml
@@ -2,48 +2,44 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o vlowres.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Use a nice sawtooth waveform.</emphasis>
- asig <emphasis role="opc">vco</emphasis> 10000, 220, 1
-
- <emphasis role="comment">; Vary the cutoff frequency from 30 to 300 Hz.</emphasis>
- kfco <emphasis role="opc">line</emphasis> 30, p3, 300
- kres <emphasis role="op">=</emphasis> 25
- iord <emphasis role="op">=</emphasis> 2
- ksep <emphasis role="op">=</emphasis> 20
- <emphasis role="comment">; Apply the filters.</emphasis>
- avlr <emphasis role="opc">vlowres</emphasis> asig, kfco, kres, iord, ksep
+<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; It gets loud, so clip the output amplitude to 30,000.</emphasis>
- a1 <emphasis role="opc">clip</emphasis> avlr, 1, 30000
- <emphasis role="opc">outs</emphasis> a1, a1
+kamp <emphasis role="opc">init</emphasis> p4
+asig <emphasis role="opc">vco2</emphasis> kamp, 110 <emphasis role="comment">;saw wave</emphasis>
+kfco <emphasis role="opc">line</emphasis> 30, p3, 300 <emphasis role="comment">;vary the cutoff frequency from 30 to 300 Hz.</emphasis>
+kres <emphasis role="op">=</emphasis> 20
+ksep <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;different resonance values</emphasis>
+iord <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;and different number of filters</emphasis>
+aout <emphasis role="opc">vlowres</emphasis> asig, kfco, kres, iord, ksep
+aclp <emphasis role="opc">clip</emphasis> aout, 1, 1 <emphasis role="comment">;avoid distortion</emphasis>
+ <emphasis role="opc">outs</emphasis> aclp, aclp
+
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 10 .1 5 2 <emphasis role="comment">;compensate volume and </emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 10 .1 25 2 <emphasis role="comment">;number of filters = 2</emphasis>
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 10 .01 5 6 <emphasis role="comment">;compensate volume and </emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 10 .04 15 6 <emphasis role="comment">;number of filters = 6</emphasis>
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 10
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/voice.csd.xml b/examples-xml/voice.csd.xml
index 09f2aa0..a5f279c 100644
--- a/examples-xml/voice.csd.xml
+++ b/examples-xml/voice.csd.xml
@@ -2,51 +2,50 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o voice.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
-<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 22050
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 2205
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 3
- kfreq <emphasis role="op">=</emphasis> 0.8
- kphoneme <emphasis role="op">=</emphasis> 6
- kform <emphasis role="op">=</emphasis> 0.488
- kvibf <emphasis role="op">=</emphasis> 0.04
- kvamp <emphasis role="op">=</emphasis> 1
- ifn <emphasis role="op">=</emphasis> 1
- ivfn <emphasis role="op">=</emphasis> 2
- av <emphasis role="opc">voice</emphasis> kamp, kfreq, kphoneme, kform, kvibf, kvamp, ifn, ivfn
+kamp <emphasis role="op">=</emphasis> p4
+kphon <emphasis role="op">=</emphasis> p5
+asig <emphasis role="opc">voice</emphasis> kamp, 200, kphon, 0.488, 0, 1, 1, 2
+ <emphasis role="opc">outs</emphasis> asig, asig
- <emphasis role="comment">; It tends to get loud, so clip voice's amplitude at 30,000.</emphasis>
- a1 <emphasis role="opc">clip</emphasis> av, 2, 30000
- <emphasis role="opc">out</emphasis> a1
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 256 1 "impuls20.ai<emphasis role="stamnt">f</emphasis><emphasis role="stamnt">f</emphasis>" 0 0 0 <emphasis role="comment">;audio file for the carrier waveform</emphasis>
+<emphasis role="stamnt">f</emphasis> 2 0 256 10 1 <emphasis role="comment">;sine wave for the vibrato waveform</emphasis>
+
+<emphasis role="comment">; ampl phoneme</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 0.8 1
+<emphasis role="stamnt">i</emphasis> 1 + . 0.6 2
+<emphasis role="stamnt">i</emphasis> 1 + . 1.8 3
+<emphasis role="stamnt">i</emphasis> 1 + . 15.0 4
+<emphasis role="stamnt">i</emphasis> 1 + . 0.05 5
+<emphasis role="stamnt">i</emphasis> 1 + . 0.06 6
+<emphasis role="stamnt">i</emphasis> 1 + . 0.03 7
+<emphasis role="stamnt">i</emphasis> 1 + . 0.0002 8
+<emphasis role="stamnt">i</emphasis> 1 + . 0.1 9
+<emphasis role="stamnt">i</emphasis> 1 + . 0.5 10
+<emphasis role="stamnt">i</emphasis> 1 + . 100 11
+<emphasis role="stamnt">i</emphasis> 1 + . 0.03 12
+<emphasis role="stamnt">i</emphasis> 1 + . 0.04 13
+<emphasis role="stamnt">i</emphasis> 1 + . 0.04 14
+<emphasis role="stamnt">i</emphasis> 1 + . 0.04 15
+<emphasis role="stamnt">i</emphasis> 1 + . 0.05 16
-<emphasis role="comment">; Table #1, an audio file for the carrier waveform.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 256 1 "impuls20.ai<emphasis role="stamnt">f</emphasis><emphasis role="stamnt">f</emphasis>" 0 0 0
-<emphasis role="comment">; Table #2, a sine wave for the vibrato waveform.</emphasis>
-<emphasis role="stamnt">f</emphasis> 2 0 256 10 1
-
-<emphasis role="comment">; Play Instrument #1 for a half-second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 0.5
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/vpow-2.csd.xml b/examples-xml/vpow-2.csd.xml
new file mode 100644
index 0000000..504df9c
--- /dev/null
+++ b/examples-xml/vpow-2.csd.xml
@@ -0,0 +1,41 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vpow-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ain <emphasis role="opc">diskin2</emphasis> "fox.wav", 1 <emphasis role="comment">;soundfile</emphasis>
+fsrc <emphasis role="opc">pvsanal</emphasis> ain, 1024, 256, 1024, 1
+ifn <emphasis role="ohdr">ftgen</emphasis> 0, 0, 1024<emphasis role="op">/</emphasis>2, 2, 0 <emphasis role="comment">;create empty function table for the 513 bins</emphasis>
+kflag <emphasis role="opc">pvsftw</emphasis> fsrc,ifn <emphasis role="comment">;export only amplitudes to table </emphasis>
+kval <emphasis role="opc">line</emphasis> .001, p3, 1 <emphasis role="comment">;start with big distortion, cahnge over note duration to clean sound</emphasis>
+kbin <emphasis role="opc">line</emphasis> p4, p3, p5 <emphasis role="comment">;vary the bins</emphasis>
+<emphasis role="opc">vpow</emphasis> ifn, kval, kbin, 0 <emphasis role="comment">;note that this operation is applied each k-cycle!</emphasis>
+<emphasis role="comment">;vpow ifn, kval, kbin, 10 ;if you set kdstoffset to 10 it will affect bins 10+(kbin line p4, p3, p5)</emphasis>
+ <emphasis role="opc">pvsftr</emphasis> fsrc,ifn <emphasis role="comment">;read modified data back to fsrc</emphasis>
+aout <emphasis role="opc">pvsynth</emphasis> fsrc <emphasis role="comment">;and resynth</emphasis>
+ <emphasis role="opc">outs</emphasis> aout<emphasis role="op">*</emphasis>p6, aout<emphasis role="op">*</emphasis>p6 <emphasis role="comment">;adjust volume to compensate</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 4 100 100 .02 <emphasis role="comment">;first 100 bins are affected</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 4 10 10 .1 <emphasis role="comment">;first 10 bins</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 4 1 400 .05 <emphasis role="comment">;sweep from bin 1 to 400</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vpow_i-2.csd.xml b/examples-xml/vpow_i-2.csd.xml
new file mode 100644
index 0000000..e64c8a9
--- /dev/null
+++ b/examples-xml/vpow_i-2.csd.xml
@@ -0,0 +1,38 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o vpow_i-2.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+gifil <emphasis role="ohdr">ftgen</emphasis> 1, 0, 0, 1, "fox.wav", 0, 0, 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+ival <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;different distortion settings</emphasis>
+ielements <emphasis role="op">=</emphasis> p5
+idstoffset <emphasis role="op">=</emphasis> p6 <emphasis role="comment">;index offset</emphasis>
+<emphasis role="opc">vpow_i</emphasis> 1, ival, ielements, idstoffset
+asig <emphasis role="opc">lposcil</emphasis> 1, 1, 0, 0, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis>1 0 2.7 .5 70000 0 <emphasis role="comment">;no offset</emphasis>
+<emphasis role="stamnt">i</emphasis>1 3 2.7 .01 50000 70000 <emphasis role="comment">;add another period of distortion, starting at sample 70000 </emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/vpvoc.csd.xml b/examples-xml/vpvoc.csd.xml
index 1968d1c..ad60a46 100644
--- a/examples-xml/vpvoc.csd.xml
+++ b/examples-xml/vpvoc.csd.xml
@@ -2,40 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o vpvoc.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">;analyze "fox.wav" with pvanal first</emphasis>
<emphasis role="oblock">instr</emphasis> 1
-
-ktime <emphasis role="opc">line</emphasis> 0, p3,3 <emphasis role="comment">; time pointer, in seconds, into file</emphasis>
- <emphasis role="opc">tablexseg</emphasis> 3, p3<emphasis role="op">*</emphasis>.5, 1, p3<emphasis role="op">*</emphasis>.5, 2
-apv <emphasis role="opc">vpvoc</emphasis> ktime,1, "fox.pvx"
-apv <emphasis role="op">=</emphasis> apv<emphasis role="op">*</emphasis>1
-<emphasis role="opc">outs</emphasis> apv, apv
-<emphasis role="oblock">endin</emphasis>
-
-
+<emphasis role="comment">; analyze "fox.wav" with PVANAL first</emphasis>
+iend <emphasis role="op">=</emphasis> p4
+ktime <emphasis role="opc">line</emphasis> 0, p3, iend
+ <emphasis role="opc">tablexseg</emphasis> p5, p3, p6 <emphasis role="comment">;morph from table 1</emphasis>
+asig <emphasis role="opc">vpvoc</emphasis> ktime, 1, "fox.pvx" <emphasis role="comment">;to table 2</emphasis>
+ <emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>3, asig<emphasis role="op">*</emphasis>3
+
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 512 9 .5 1 0
+<emphasis role="stamnt">f</emphasis> 2 0 512 5 1 60 0.01 390 0.01 62 1
-<emphasis role="stamnt">f</emphasis> 1 0 256 5 .001 128 1 128 .001
-<emphasis role="stamnt">f</emphasis> 2 0 256 5 1 128 .001 128 1
-<emphasis role="stamnt">f</emphasis> 3 0 256 7 1 256 1
-
-<emphasis role="stamnt">i</emphasis>1 0 10
+<emphasis role="stamnt">i</emphasis> 1 0 5 2.7 1 2
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/vst4cs.csd.xml b/examples-xml/vst4cs.csd.xml
index 7508b3c..7966283 100644
--- a/examples-xml/vst4cs.csd.xml
+++ b/examples-xml/vst4cs.csd.xml
@@ -12,13 +12,13 @@
<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 20
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
<emphasis role="comment">; Load the Pianoteq into memory.</emphasis>
-gipianoteq vstinit "C<emphasis role="op">:</emphasis>\\Program Files\\Steinberg\\VstPlugins\\Pianoteq 3.0 Trial\\Pianoteq30 Trial.dll", 1
+gipianoteq <emphasis role="opc">vstinit</emphasis> "C<emphasis role="op">:</emphasis>\\Program Files\\Steinberg\\VstPlugins\\Pianoteq 3.0 Trial\\Pianoteq30 Trial.dll", 1
<emphasis role="comment">; Print information about the Pianoteq, such as parameter names and numbers.</emphasis>
- vstinfo gipianoteq
+ <emphasis role="opc">vstinfo</emphasis> gipianoteq
<emphasis role="comment">; Open the Pianoteq's GUI.</emphasis>
- vstedit gipianoteq
+ <emphasis role="opc">vstedit</emphasis> gipianoteq
<emphasis role="comment">; Send notes from the score to the Pianoteq.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
@@ -27,20 +27,20 @@ gipianoteq vstinit "C<emphasis role="op">:</emphasis>\\Program File
<emphasis role="comment">; p4 contains the MIDI key number (pitch),</emphasis>
<emphasis role="comment">; p5 contains the MIDI velocity number (loudness),</emphasis>
imidichannel <emphasis role="opc">init</emphasis> 0
- vstnote gipianoteq, imidichannel, p4, p5, p3
+ <emphasis role="opc">vstnote</emphasis> gipianoteq, imidichannel, p4, p5, p3
<emphasis role="oblock">endin</emphasis>
<emphasis role="comment">; Send parameter changes to the Pianoteq.</emphasis>
<emphasis role="oblock">instr</emphasis> 2
<emphasis role="comment">; p4 is the parameter number.</emphasis>
<emphasis role="comment">; p5 is the parameter value.</emphasis>
- vstparamset gipianoteq, p4, p5
+ <emphasis role="opc">vstparamset</emphasis> gipianoteq, p4, p5
<emphasis role="oblock">endin</emphasis>
<emphasis role="comment">; Send audio from the Pianoteq to the output.</emphasis>
<emphasis role="oblock">instr</emphasis> 3
ablankinput <emphasis role="opc">init</emphasis> 0
-aleft, aright vstaudio gipianoteq, ablankinput, ablankinput
+aleft, aright <emphasis role="opc">vstaudio</emphasis> gipianoteq, ablankinput, ablankinput
<emphasis role="opc">outs</emphasis> aleft, aright
<emphasis role="oblock">endin</emphasis>
diff --git a/examples-xml/vtablewa.csd.xml b/examples-xml/vtablewa.csd.xml
index 8f4a52b..c6fb1fb 100644
--- a/examples-xml/vtablewa.csd.xml
+++ b/examples-xml/vtablewa.csd.xml
@@ -10,11 +10,12 @@
<emphasis role="ohdr">kr</emphasis><emphasis role="op">=</emphasis>4410
<emphasis role="ohdr">ksmps</emphasis><emphasis role="op">=</emphasis>10
<emphasis role="ohdr">nchnls</emphasis><emphasis role="op">=</emphasis>2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="opc">vcopy</emphasis>
+<emphasis role="opc">vcopy</emphasis> 2, 1, 262144
ar <emphasis role="opc">random</emphasis> 0, 1
-<emphasis role="opc">vtablewa</emphasis> ar
+<emphasis role="opc">vtablewa</emphasis> ar,2,1,ar
<emphasis role="opc">out</emphasis> ar,ar
<emphasis role="oblock">endin</emphasis>
@@ -24,15 +25,6 @@ ar <emphasis role="opc">random</emphasis> 0, 1
<emphasis role="stamnt">f</emphasis>1 0 262144 -1 "beats.wav" 0 4 0
<emphasis role="stamnt">f</emphasis>2 0 262144 2 0
-
-<emphasis role="stamnt">i</emphasis>1 0 4
-<emphasis role="stamnt">i</emphasis>2 3 1
-
-<emphasis role="stamnt">s</emphasis>
-<emphasis role="stamnt">i</emphasis>1 0 4
-<emphasis role="stamnt">i</emphasis>3 3 1
-<emphasis role="stamnt">s</emphasis>
-
<emphasis role="stamnt">i</emphasis>1 0 4
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
diff --git a/examples-xml/vtablewk.csd.xml b/examples-xml/vtablewk.csd.xml
index c8935bf..16257aa 100644
--- a/examples-xml/vtablewk.csd.xml
+++ b/examples-xml/vtablewk.csd.xml
@@ -13,7 +13,7 @@
<emphasis role="ohdr">nchnls</emphasis><emphasis role="op">=</emphasis>2
<emphasis role="oblock">instr</emphasis> 1
-ilen <emphasis role="op">=</emphasis> <emphasis role="opc">ftlen</emphasis> (1)
+ilen <emphasis role="op">=</emphasis> <emphasis role="opc">ftlen</emphasis>(1)
knew1 <emphasis role="opc">oscil</emphasis> 10000, 440, 3
knew2 <emphasis role="opc">oscil</emphasis> 15000, 440, 3, 0.5
@@ -26,7 +26,7 @@ asig <emphasis role="opc">oscil</emphasis> 1, <emphasis role="ohdr">sr</emphasis
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>1 0 262144 -1 "beats.ai<emphasis role="stamnt">f</emphasis><emphasis role="stamnt">f</emphasis>" 0 4 0
+<emphasis role="stamnt">f</emphasis>1 0 262144 -1 "beats.wav" 0 4 0
<emphasis role="stamnt">f</emphasis>2 0 262144 2 0
<emphasis role="stamnt">f</emphasis>3 0 1024 10 1
diff --git a/examples-xml/waveset.csd.xml b/examples-xml/waveset.csd.xml
index df58d1c..bfa0d97 100644
--- a/examples-xml/waveset.csd.xml
+++ b/examples-xml/waveset.csd.xml
@@ -2,45 +2,34 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o waveset.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis>1
-<emphasis role="comment">; Instrument #1 - play an audio file.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- asig <emphasis role="opc">soundin</emphasis> "beats.wav"
- <emphasis role="opc">out</emphasis> asig
-<emphasis role="oblock">endin</emphasis>
-
-<emphasis role="comment">; Instrument #2 - stretch the audio file with waveset.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- asig <emphasis role="opc">soundin</emphasis> "beats.wav"
- a1 <emphasis role="opc">waveset</emphasis> asig, 2
-
- <emphasis role="opc">out</emphasis> a1
+krep <emphasis role="opc">init</emphasis> p4
+asig <emphasis role="opc">soundin</emphasis> "flute.aiff"
+aout <emphasis role="opc">waveset</emphasis> asig, krep
+ <emphasis role="opc">outs</emphasis> aout, aout
+
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
-<emphasis role="comment">; Play Instrument #2 for four seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 3 4
-<emphasis role="stamnt">e</emphasis>
-
+<emphasis role="stamnt">i</emphasis> 1 0 3 1 <emphasis role="comment">;no repetitions</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 10 3 <emphasis role="comment">;stretching 3 times</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 14 6 <emphasis role="comment">;6 times</emphasis>
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/weibull.csd.xml b/examples-xml/weibull.csd.xml
index 33b2e97..9c0306f 100644
--- a/examples-xml/weibull.csd.xml
+++ b/examples-xml/weibull.csd.xml
@@ -2,53 +2,52 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in</emphasis>
--odac -iadc <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o weibull.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="comment">; Generate a random number in a Weibull distribution.</emphasis>
- <emphasis role="comment">; ksigma = 1</emphasis>
- <emphasis role="comment">; ktau = 1</emphasis>
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; every run time same values</emphasis>
- i1 <emphasis role="opc">weibull</emphasis> 1, 1
-
- <emphasis role="opc">print</emphasis> i1
+ktri <emphasis role="opc">weibull</emphasis> 100, 1
+ <emphasis role="opc">printk</emphasis> .2, ktri <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>ktri, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
-<emphasis role="comment">; Instrument #2.</emphasis>
-<emphasis role="oblock">instr</emphasis> 2
- <emphasis role="comment">; Generate a random number in a Weibull distribution.</emphasis>
- <emphasis role="comment">; ksigma = 1</emphasis>
- <emphasis role="comment">; ktau = 1</emphasis>
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; every run time different values</emphasis>
- <emphasis role="ohdr">seed</emphasis> 0
+ <emphasis role="ohdr">seed</emphasis> 0
+ktri <emphasis role="opc">weibull</emphasis> 100, 1
+ <emphasis role="opc">printk</emphasis> .2, ktri <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>ktri, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
+<emphasis role="oblock">endin</emphasis>
- i1 <emphasis role="opc">weibull</emphasis> 1, 1
+<emphasis role="oblock">instr</emphasis> 3 <emphasis role="comment">; every run time different values</emphasis>
- <emphasis role="opc">print</emphasis> i1
+ <emphasis role="ohdr">seed</emphasis> 0
+ktri <emphasis role="opc">weibull</emphasis> 100, 10 <emphasis role="comment">; closer to ksigma..</emphasis>
+ <emphasis role="opc">printk</emphasis> .2, ktri <emphasis role="comment">; look </emphasis>
+aout <emphasis role="opc">oscili</emphasis> 0.8, 440<emphasis role="op">+</emphasis>ktri, 1 <emphasis role="comment">; &amp; listen</emphasis>
+ <emphasis role="opc">outs</emphasis> aout, aout
<emphasis role="oblock">endin</emphasis>
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; sine wave</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
-<emphasis role="comment">; Play Instrument #2 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 2 1 1
+<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 2 3 2
+<emphasis role="stamnt">i</emphasis> 3 6 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/wgbow.csd.xml b/examples-xml/wgbow.csd.xml
index 9cb0b74..856e0f5 100644
--- a/examples-xml/wgbow.csd.xml
+++ b/examples-xml/wgbow.csd.xml
@@ -2,48 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o wgbow.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 31129.60
- kfreq <emphasis role="op">=</emphasis> 440
- kpres <emphasis role="op">=</emphasis> 3.0
- krat <emphasis role="op">=</emphasis> 0.127236
- kvibf <emphasis role="op">=</emphasis> 6.12723
- ifn <emphasis role="op">=</emphasis> 1
- <emphasis role="comment">; Create an amplitude envelope for the vibrato.</emphasis>
- kv <emphasis role="opc">linseg</emphasis> 0, 0.5, 0, 1, 1, p3<emphasis role="op">-</emphasis>0.5, 1
- kvamp <emphasis role="op">=</emphasis> kv <emphasis role="op">*</emphasis> 0.01
-
- a1 <emphasis role="opc">wgbow</emphasis> kamp, kfreq, kpres, krat, kvibf, kvamp, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kpres <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;pressure value</emphasis>
+krat <emphasis role="op">=</emphasis> p5 <emphasis role="comment">;position along string</emphasis>
+kvibf <emphasis role="op">=</emphasis> 6.12723
+kvib <emphasis role="opc">linseg</emphasis> 0, 0.5, 0, 1, 1, p3<emphasis role="op">-</emphasis>0.5, 1 <emphasis role="comment">; amplitude envelope for the vibrato. </emphasis>
+kvamp <emphasis role="op">=</emphasis> kvib <emphasis role="op">*</emphasis> 0.01
+asig <emphasis role="opc">wgbow</emphasis> .7, 55, kpres, krat, kvibf, kvamp, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 2048 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 128 10 1
+<emphasis role="stamnt">i</emphasis> 1 0 3 3 0.127236
+<emphasis role="stamnt">i</emphasis> 1 + 3 5 0.127236
+<emphasis role="stamnt">i</emphasis> 1 + 3 5 0.23
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/wgbowedbar.csd.xml b/examples-xml/wgbowedbar.csd.xml
index 673c749..16edafc 100644
--- a/examples-xml/wgbowedbar.csd.xml
+++ b/examples-xml/wgbowedbar.csd.xml
@@ -2,44 +2,37 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o wgbowedbar.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
- <emphasis role="oblock">instr</emphasis> 1
-<emphasis role="comment">; pos = [0, 1]</emphasis>
-<emphasis role="comment">; bowpress = [1, 10]</emphasis>
-<emphasis role="comment">; gain = [0.8, 1]</emphasis>
-<emphasis role="comment">; intr = [0,1]</emphasis>
-<emphasis role="comment">; trackvel = [0, 1]</emphasis>
-<emphasis role="comment">; bowpos = [0, 1]</emphasis>
-
- kb <emphasis role="opc">line</emphasis> 0.5, p3, 0.1
- kp <emphasis role="opc">line</emphasis> 0.6, p3, 0.7
- kc <emphasis role="opc">line</emphasis> 1, p3, 1
-
- a1 <emphasis role="opc">wgbowedbar</emphasis> p4, <emphasis role="opc">cpspch</emphasis>(p5), kb, kp, 0.995, p6, 0
-
- <emphasis role="opc">out</emphasis> a1
- <emphasis role="oblock">endin</emphasis>
+<emphasis role="oblock">instr</emphasis> 1
+kp <emphasis role="op">=</emphasis> p6
+asig <emphasis role="opc">wgbowedbar</emphasis> p4, <emphasis role="opc">cpspch</emphasis>(p5), 1, kp, 0.995
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-
- <emphasis role="stamnt">i</emphasis>1 0 3 32000 7.00 0
- <emphasis role="stamnt">e</emphasis>
-
-
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 .5 .5 7.00 .1 <emphasis role="comment">;short sound</emphasis>
+<emphasis role="stamnt">i</emphasis>1 + . .3 8.00 .1
+<emphasis role="stamnt">i</emphasis>1 + . .5 9.00 .1
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 .5 .5 7.00 1 <emphasis role="comment">;longer sound</emphasis>
+<emphasis role="stamnt">i</emphasis>1 + . .3 8.00 1
+<emphasis role="stamnt">i</emphasis>1 + . .5 9.00 1
+
+<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/wgclar.csd.xml b/examples-xml/wgclar.csd.xml
index 01e4225..e03bf06 100644
--- a/examples-xml/wgclar.csd.xml
+++ b/examples-xml/wgclar.csd.xml
@@ -2,48 +2,40 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o wgclar.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="opc">init</emphasis> 31129.60
- kfreq <emphasis role="op">=</emphasis> 440
- kstiff <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>0.3
- iatt <emphasis role="op">=</emphasis> 0.1
- idetk <emphasis role="op">=</emphasis> 0.1
- kngain <emphasis role="op">=</emphasis> 0.2
- kvibf <emphasis role="op">=</emphasis> 5.735
- kvamp <emphasis role="op">=</emphasis> 0.1
- ifn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">wgclar</emphasis> kamp, kfreq, kstiff, iatt, idetk, kngain, kvibf, kvamp, ifn
-
- <emphasis role="opc">out</emphasis> a1
+kfreq <emphasis role="op">=</emphasis> 330
+kstiff <emphasis role="op">=</emphasis> <emphasis role="op">-</emphasis>0.3
+iatt <emphasis role="op">=</emphasis> 0.1
+idetk <emphasis role="op">=</emphasis> 0.1
+kngain <emphasis role="opc">init</emphasis> p4 <emphasis role="comment">;vary breath</emphasis>
+kvibf <emphasis role="op">=</emphasis> 5.735
+kvamp <emphasis role="op">=</emphasis> 0.1
+
+asig <emphasis role="opc">wgclar</emphasis> .9, kfreq, kstiff, iatt, idetk, kngain, kvibf, kvamp, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
<emphasis role="oblock">endin</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for one second.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="stamnt">i</emphasis> 1 0 2 0.2
+<emphasis role="stamnt">i</emphasis> 1 + 2 0.5 <emphasis role="comment">;more breath</emphasis>
<emphasis role="stamnt">e</emphasis>
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/wgflute.csd.xml b/examples-xml/wgflute.csd.xml
index 1719b67..b2f0a3f 100644
--- a/examples-xml/wgflute.csd.xml
+++ b/examples-xml/wgflute.csd.xml
@@ -2,47 +2,39 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
<emphasis role="comment">; -o wgflute.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
-<emphasis role="comment">; Initialize the global variables.</emphasis>
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
-<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
-<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
-<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
-<emphasis role="comment">; Instrument #1.</emphasis>
<emphasis role="oblock">instr</emphasis> 1
- kamp <emphasis role="op">=</emphasis> 31129.60
- kfreq <emphasis role="op">=</emphasis> 440
- kjet <emphasis role="op">=</emphasis> 0.32
- iatt <emphasis role="op">=</emphasis> 0.1
- idetk <emphasis role="op">=</emphasis> 0.1
- kngain <emphasis role="op">=</emphasis> 0.15
- kvibf <emphasis role="op">=</emphasis> 5.925
- kvamp <emphasis role="op">=</emphasis> 0.05
- ifn <emphasis role="op">=</emphasis> 1
- a1 <emphasis role="opc">wgflute</emphasis> kamp, kfreq, kjet, iatt, idetk, kngain, kvibf, kvamp, ifn
- <emphasis role="opc">out</emphasis> a1
-<emphasis role="oblock">endin</emphasis>
+kfreq <emphasis role="op">=</emphasis> 440
+kjet <emphasis role="opc">init</emphasis> p4 <emphasis role="comment">;vary air jet</emphasis>
+iatt <emphasis role="op">=</emphasis> 0.1
+idetk <emphasis role="op">=</emphasis> 0.1
+kngain <emphasis role="op">=</emphasis> 0.15
+kvibf <emphasis role="op">=</emphasis> 5.925
+kvamp <emphasis role="op">=</emphasis> 0.05
+asig <emphasis role="opc">wgflute</emphasis> .8, kfreq, kjet, iatt, idetk, kngain, kvibf, kvamp, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
-<emphasis role="comment">; Table #1, a sine wave.</emphasis>
-<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
-
-<emphasis role="comment">; Play Instrument #1 for two seconds.</emphasis>
-<emphasis role="stamnt">i</emphasis> 1 0 2
+<emphasis role="stamnt">i</emphasis> 1 0 2 0.02 <emphasis role="comment">;more air jet</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 + 2 0.32
<emphasis role="stamnt">e</emphasis>
-
-
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
</programlisting> \ No newline at end of file
diff --git a/examples-xml/wguide2.csd.xml b/examples-xml/wguide2.csd.xml
index e7a9df7..c3a9a2b 100644
--- a/examples-xml/wguide2.csd.xml
+++ b/examples-xml/wguide2.csd.xml
@@ -2,26 +2,36 @@
<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
-<emphasis role="comment">; Audio out Audio in No messages</emphasis>
--odac -iadc -d <emphasis role="comment">;;;RT audio I/O</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
-<emphasis role="comment">; -o wguide1.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="comment">; -o wguide2.wav -W ;;; for file output any platform</emphasis>
<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-<emphasis role="oblock">instr</emphasis> 1
- afrq <emphasis role="opc">line</emphasis> 50, 10, 100
- asig <emphasis role="opc">oscil</emphasis> 3000, afrq, 1
- aenv <emphasis role="opc">expon</emphasis> 1,10,0.000001
- aexc <emphasis role="op">=</emphasis> aenv<emphasis role="op">*</emphasis>asig
- ares <emphasis role="opc">wguide2</emphasis> aexc, 500, 1200, 777, 1500, 0.2, 0.25
- <emphasis role="opc">out</emphasis> ares,asig
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aout <emphasis role="opc">diskin2</emphasis> "beats.wav", 1, 0, 1 <emphasis role="comment">;in signal</emphasis>
+afreq1 <emphasis role="opc">line</emphasis> 100, p3, 2000
+afreq2 <emphasis role="opc">line</emphasis> 1200, p3, p4 <emphasis role="comment">;vary second frequency in the score </emphasis>
+kcutoff1 <emphasis role="op">=</emphasis> 3000
+kcutoff2 <emphasis role="op">=</emphasis> 1500
+kfeedback1 <emphasis role="op">=</emphasis> 0.25 <emphasis role="comment">;the sum of the two feedback</emphasis>
+kfeedback2 <emphasis role="op">=</emphasis> 0.25 <emphasis role="comment">;values should not exceed 0.5</emphasis>
+asig <emphasis role="opc">wguide2</emphasis> aout, afreq1, afreq2, kcutoff1, kcutoff2, kfeedback1, kfeedback2
+asig <emphasis role="opc">dcblock2</emphasis> asig <emphasis role="comment">;get rid of DC</emphasis>
+ <emphasis role="opc">outs</emphasis> asig, asig
+
<emphasis role="oblock">endin</emphasis>
<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
-<emphasis role="stamnt">f</emphasis>1 0 4096 10 1
-<emphasis role="stamnt">i</emphasis>1 0 3
+<emphasis role="stamnt">i</emphasis> 1 0 8 1200 <emphasis role="comment">;freqency of afreq2 remains the same</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 9 8 100 <emphasis role="comment">;freqency of afreq2 gets lower</emphasis>
<emphasis role="stamnt">e</emphasis>
<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
diff --git a/examples-xml/wrap.csd.xml b/examples-xml/wrap.csd.xml
new file mode 100644
index 0000000..9c30af2
--- /dev/null
+++ b/examples-xml/wrap.csd.xml
@@ -0,0 +1,55 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o wrap.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; Limit / Mirror / Wrap</emphasis>
+
+igain <emphasis role="op">=</emphasis> p4 <emphasis role="comment">;gain</emphasis>
+ilevl1 <emphasis role="op">=</emphasis> p5 <emphasis role="comment">; + level</emphasis>
+ilevl2 <emphasis role="op">=</emphasis> p6 <emphasis role="comment">; - level</emphasis>
+imode <emphasis role="op">=</emphasis> p7 <emphasis role="comment">;1 = limit, 2 = mirror, 3 = wrap</emphasis>
+
+ain <emphasis role="opc">soundin</emphasis> "fox.wav"
+ain <emphasis role="op">=</emphasis> ain<emphasis role="op">*</emphasis>igain
+
+<emphasis role="octrl">if</emphasis> imode <emphasis role="op">=</emphasis> 1 <emphasis role="octrl">goto</emphasis> <emphasis role="olabel">limit</emphasis>
+<emphasis role="octrl">if</emphasis> imode <emphasis role="op">=</emphasis> 2 <emphasis role="octrl">goto</emphasis> <emphasis role="olabel">mirror</emphasis>
+
+asig <emphasis role="opc">wrap</emphasis> ain, ilevl2, ilevl1
+<emphasis role="octrl">goto</emphasis> <emphasis role="olabel">outsignal</emphasis>
+
+<emphasis role="olabel">limit</emphasis><emphasis role="op">:</emphasis>
+asig <emphasis role="olabel">limit</emphasis> ain, ilevl2, ilevl1
+<emphasis role="octrl">goto</emphasis> <emphasis role="olabel">outsignal</emphasis>
+
+<emphasis role="olabel">mirror</emphasis><emphasis role="op">:</emphasis>
+asig <emphasis role="olabel">mirror</emphasis> ain, ilevl2, ilevl1
+<emphasis role="olabel">outsignal</emphasis><emphasis role="op">:</emphasis>
+
+<emphasis role="opc">outs</emphasis> asig<emphasis role="op">*</emphasis>.5, asig<emphasis role="op">*</emphasis>.5 <emphasis role="comment">;mind your speakers</emphasis>
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; Gain +Levl -Levl Mode</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 3 4.00 .25 -1.00 1 <emphasis role="comment">;limit</emphasis>
+<emphasis role="stamnt">i</emphasis>1 4 3 4.00 .25 -1.00 2 <emphasis role="comment">;mirror</emphasis>
+<emphasis role="stamnt">i</emphasis>1 8 3 4.00 .25 -1.00 3 <emphasis role="comment">;wrap</emphasis>
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/x.csd.xml b/examples-xml/x.csd.xml
new file mode 100644
index 0000000..036e62e
--- /dev/null
+++ b/examples-xml/x.csd.xml
@@ -0,0 +1,47 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o x.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+aenv <emphasis role="opc">expseg</emphasis> .01, p3<emphasis role="op">*</emphasis>0.25, 1, p3<emphasis role="op">*</emphasis>0.75, 0.01
+asig <emphasis role="opc">poscil3</emphasis> .8<emphasis role="op">*</emphasis>aenv, p4, 1
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1 <emphasis role="comment">;sine wave</emphasis>
+
+<emphasis role="stamnt">s</emphasis> <emphasis role="comment">;first section</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 110
+<emphasis role="stamnt">i</emphasis> 1 3 2 220
+<emphasis role="stamnt">i</emphasis> 1 6 2 440
+<emphasis role="stamnt">i</emphasis> 1 9 2 880
+<emphasis role="stamnt">s</emphasis> <emphasis role="comment">;second section</emphasis>
+<emphasis role="stamnt">x</emphasis> <emphasis role="comment">;skip the rest</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 110 <emphasis role="comment">;of this section</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 3 2 220
+<emphasis role="stamnt">i</emphasis> 1 6 2 440
+<emphasis role="stamnt">i</emphasis> 1 9 2 880
+<emphasis role="stamnt">s</emphasis> <emphasis role="comment">;but continue with this one</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 2 880
+<emphasis role="stamnt">i</emphasis> 1 3 2 440
+<emphasis role="stamnt">i</emphasis> 1 6 2 220
+<emphasis role="stamnt">i</emphasis> 1 9 2 110
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/xadsr.csd.xml b/examples-xml/xadsr.csd.xml
new file mode 100644
index 0000000..8222680
--- /dev/null
+++ b/examples-xml/xadsr.csd.xml
@@ -0,0 +1,42 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if RT audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o xadsr.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+
+<emphasis role="oblock">instr</emphasis> 1
+
+iatt <emphasis role="op">=</emphasis> p5
+idec <emphasis role="op">=</emphasis> p6
+islev <emphasis role="op">=</emphasis> p7
+irel <emphasis role="op">=</emphasis> p8
+
+kenv <emphasis role="opc">xadsr</emphasis> iatt, idec, islev, irel
+kcps <emphasis role="op">=</emphasis> <emphasis role="opc">cpspch</emphasis>(p4) <emphasis role="comment">;frequency</emphasis>
+
+asig <emphasis role="opc">vco2</emphasis> kenv <emphasis role="op">*</emphasis> 0.8, kcps
+ <emphasis role="opc">outs</emphasis> asig, asig
+
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="stamnt">i</emphasis> 1 0 1 7.00 .0001 1 .01 .001 <emphasis role="comment">; short attack</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 2 1 7.02 1 .5 .01 .001 <emphasis role="comment">; long attack</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 4 2 6.09 .0001 1 .1 .7 <emphasis role="comment">; long release</emphasis>
+
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/xscanmap.csd.xml b/examples-xml/xscanmap.csd.xml
new file mode 100644
index 0000000..03108a8
--- /dev/null
+++ b/examples-xml/xscanmap.csd.xml
@@ -0,0 +1,75 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o xscanmap.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">;the matrices can be found in /manual/examples</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; Plain scanned syntnesis</emphasis>
+ <emphasis role="comment">; note - scanu display is turned off</emphasis>
+a0 <emphasis role="op">=</emphasis> 0
+ <emphasis role="opc">xscanu</emphasis> 1, .01, 6, 2, "128<emphasis role="op">-</emphasis>stringcircularX", 4, 5, 2, .1, .1, <emphasis role="op">-</emphasis>.01, .1, .5, 0, 0, a0, 0, 0
+ a1 <emphasis role="opc">xscans</emphasis> p4, <emphasis role="opc">cpspch</emphasis>(p5), 7, 0, 3
+k1,k2 <emphasis role="opc">xscanmap</emphasis> 0, 1000, 1000, 64
+ <emphasis role="opc">display</emphasis> k1, .25 <emphasis role="comment">; note - display is updated every second</emphasis>
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; Scan synthesis with audio injection and dual scan paths</emphasis>
+ <emphasis role="comment">; note - scanu display is turned off</emphasis>
+ain <emphasis role="opc">diskin2</emphasis> "fox.wav",1,0,1
+ain <emphasis role="opc">in</emphasis>
+a0 <emphasis role="op">=</emphasis> ain<emphasis role="op">/</emphasis>10000
+ <emphasis role="opc">xscanu</emphasis> 1, .01, 6, 2, "128,8<emphasis role="op">-</emphasis>gridX", 14, 5, 2, .01, .05, <emphasis role="op">-</emphasis>.05, .1, .5, 0, 0, a0, 0, 0
+a1 <emphasis role="opc">xscans</emphasis> p4, <emphasis role="opc">cpspch</emphasis>(p5), 7, 0, 2
+a2 <emphasis role="opc">xscans</emphasis> p4, <emphasis role="opc">cpspch</emphasis>(p6), 77, 0, 3
+k1,k2 <emphasis role="opc">xscanmap</emphasis> 0, 1000, 1000, 127
+ <emphasis role="opc">display</emphasis> k2, .5 <emphasis role="comment">; note - display is updated ever 500ms</emphasis>
+ <emphasis role="opc">outs</emphasis> a1,a2
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; Initial condition</emphasis>
+<emphasis role="comment">;f1 0 16 7 0 8 1 8 0</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 128 7 0 64 1 64 0
+
+<emphasis role="comment">; Masses</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 128 -7 1 128 1
+
+<emphasis role="comment">; Centering force</emphasis>
+<emphasis role="stamnt">f</emphasis>4 0 128 -7 0 128 2
+<emphasis role="stamnt">f</emphasis>14 0 128 -7 2 64 0 64 2
+
+<emphasis role="comment">; Damping</emphasis>
+<emphasis role="stamnt">f</emphasis>5 0 128 -7 1 128 1
+
+<emphasis role="comment">; Initial velocity</emphasis>
+<emphasis role="stamnt">f</emphasis>6 0 128 -7 -.0 128 .0
+
+<emphasis role="comment">; Trajectories</emphasis>
+<emphasis role="stamnt">f</emphasis>7 0 128 -5 .001 128 128
+<emphasis role="stamnt">f</emphasis>77 0 128 -23 "128-spiral-8,16,128,2,1over2"
+
+<emphasis role="comment">; Sine</emphasis>
+<emphasis role="stamnt">f</emphasis>9 0 1024 10 1
+<emphasis role="comment">;--------------------------------</emphasis>
+<emphasis role="comment">; Note list</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10 .9 7.00
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>2 0 10 1 8.00 6.00
+<emphasis role="stamnt">i</emphasis>2 0 10 1 7.00 8.05
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/xscans.csd.xml b/examples-xml/xscans.csd.xml
new file mode 100644
index 0000000..054a26e
--- /dev/null
+++ b/examples-xml/xscans.csd.xml
@@ -0,0 +1,109 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o xscans.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">;the matrices can be found in /manual/examples</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; Plain scanned syntnesis</emphasis>
+
+ a0 <emphasis role="op">=</emphasis> 0
+ <emphasis role="opc">xscanu</emphasis> 1, .01, 6, 2, "128,8<emphasis role="op">-</emphasis>cylinderX", 4, 5, 2, .1, .1, <emphasis role="op">-</emphasis>.01, .1, .5, 0, 0, a0, 0, 0
+ a1 <emphasis role="opc">xscans</emphasis> .7, <emphasis role="opc">cpspch</emphasis>(p4), 7, 0, 1
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; Scan synthesis with audio injection and dual scan paths</emphasis>
+ <emphasis role="comment">; tap the mic or sing to inject audio into the resonators</emphasis>
+
+ a0,aa <emphasis role="opc">ins</emphasis>
+ a0 <emphasis role="op">=</emphasis> a0<emphasis role="op">/</emphasis>.8
+ <emphasis role="opc">xscanu</emphasis> 1, .01, 6, 2, "128,8<emphasis role="op">-</emphasis>gridX", 14, 5, 2, .01, .05, <emphasis role="op">-</emphasis>.05, .1, .5, 0, 0, a0, 0, 0
+ a1 <emphasis role="opc">xscans</emphasis> .5, <emphasis role="opc">cpspch</emphasis>(7.00), 7, 0, 1
+ a2 <emphasis role="opc">xscans</emphasis> .5, <emphasis role="opc">cpspch</emphasis>(7.001), 77, 0, 1
+ <emphasis role="opc">outs</emphasis> a1<emphasis role="op">+</emphasis>a2,a1<emphasis role="op">+</emphasis>a2
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 3 <emphasis role="comment">; Vibrating structure with audio injection</emphasis>
+ <emphasis role="comment">; Tap the MIC - to inject audio into the resonators</emphasis>
+
+ a0,aa <emphasis role="opc">ins</emphasis>
+ a0 <emphasis role="op">=</emphasis> a0<emphasis role="op">/</emphasis>.8
+ <emphasis role="opc">xscanu</emphasis> 1, .01, 6, 2, "128<emphasis role="op">-</emphasis>stringcircularX", 14, 5, 2, .01, .05, <emphasis role="op">-</emphasis>.05, .25, .75, 0, 0, a0, 0, 1
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 4 <emphasis role="comment">; Modulated scanners</emphasis>
+
+ i1 <emphasis role="opc">bexprnd</emphasis> 5
+ i2 <emphasis role="opc">bexprnd</emphasis> 1
+ ko <emphasis role="opc">oscil</emphasis> i1, i2, 9
+ ka1 <emphasis role="opc">oscili</emphasis> .5, .15<emphasis role="op">*</emphasis>8, p7
+ ka2 <emphasis role="opc">oscili</emphasis> .5, .15<emphasis role="op">*</emphasis>8, p8
+ kf <emphasis role="opc">oscili</emphasis> 1, .15, p4
+ kf <emphasis role="op">=</emphasis> 2^(kf<emphasis role="op">/</emphasis>12)<emphasis role="op">*</emphasis>p6<emphasis role="op">*</emphasis>440<emphasis role="op">+</emphasis>ko
+ a1 <emphasis role="opc">xscans</emphasis> p9<emphasis role="op">*</emphasis>ka1, kf<emphasis role="op">+</emphasis>i1, 777, 1, 1
+ a2 <emphasis role="opc">xscans</emphasis> p9<emphasis role="op">*</emphasis>ka2, (kf<emphasis role="op">+</emphasis>i1)<emphasis role="op">*</emphasis>2.1, 77, 1, 1
+ <emphasis role="opc">outs</emphasis> a1<emphasis role="op">+</emphasis>a2, a1<emphasis role="op">+</emphasis>a2
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="comment">; Initial condition</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 128 7 0 64 1 64 0
+<emphasis role="comment">; Masses</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 128 -7 1 128 1
+<emphasis role="comment">; Centering force</emphasis>
+<emphasis role="stamnt">f</emphasis>4 0 128 -7 0 128 2
+<emphasis role="stamnt">f</emphasis>14 0 128 -7 2 64 0 64 2
+<emphasis role="comment">; Damping</emphasis>
+<emphasis role="stamnt">f</emphasis>5 0 128 -7 1 128 1
+<emphasis role="comment">; Initial velocity</emphasis>
+<emphasis role="stamnt">f</emphasis>6 0 128 -7 -.0 128 .0
+<emphasis role="comment">; Trajectories</emphasis>
+<emphasis role="stamnt">f</emphasis>7 0 128 -5 .001 128 128
+<emphasis role="stamnt">f</emphasis>777 0 128 -23 "128-stringcircular"
+<emphasis role="stamnt">f</emphasis>77 0 128 -23 "128-spiral-8,16,128,2,1over2"
+<emphasis role="comment">; Sine</emphasis>
+<emphasis role="stamnt">f</emphasis>9 0 16384 10 1
+
+<emphasis role="comment">; Pitch tables</emphasis>
+<emphasis role="stamnt">f</emphasis>100 0 1024 -7 +3 128 +3 128 -2 128 -2 128 +0 128 +0 128 -4 128 -4 128 +3
+<emphasis role="stamnt">f</emphasis>101 0 1024 -7 -2 128 -2 128 -2 128 -2 128 -5 128 -5 128 -4 128 -4 128 -2
+<emphasis role="stamnt">f</emphasis>102 0 1024 -7 +3 128 +3 128 +2 128 +2 128 +0 128 +0 128 +0 128 +0 128 +3
+<emphasis role="stamnt">f</emphasis>103 0 1024 -7 +7 128 +7 128 +5 128 +5 128 +3 128 +3 128 +3 128 +3 128 +7
+
+<emphasis role="comment">; Amplitude tables</emphasis>
+<emphasis role="stamnt">f</emphasis>200 0 1024 7 1 128 0 128 0 127 0 1 1 128 0 128 0 127 0 1 1 128 0 127 0 1 1
+<emphasis role="stamnt">f</emphasis>201 0 1024 7 0 127 0 1 1 127 0 1 1 128 0 127 0 1 1 127 0 1 1 128 0 127 0 1 1 127 0 1 1
+<emphasis role="stamnt">f</emphasis>202 0 1024 7 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1
+<emphasis role="stamnt">f</emphasis>203 0 1024 7 1 1024 0
+
+<emphasis role="comment">;----------------------------------</emphasis>
+
+<emphasis role="comment">; Note list</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10 6.00 1
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>2 1 10
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>3 1 23
+<emphasis role="stamnt">i</emphasis>4 1 23 101 1 .5 200 202 1.5
+<emphasis role="stamnt">i</emphasis>4 . . 102 0 .5 200 201 1
+<emphasis role="stamnt">i</emphasis>4 . . 103 0 .5 200 201 1
+<emphasis role="stamnt">i</emphasis>4 . . 100 0 .25 200 200 2
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples-xml/xscanu.csd.xml b/examples-xml/xscanu.csd.xml
new file mode 100644
index 0000000..fb3ca36
--- /dev/null
+++ b/examples-xml/xscanu.csd.xml
@@ -0,0 +1,99 @@
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="comment">; Select audio/midi flags here according to platform</emphasis>
+-odac <emphasis role="comment">;;;realtime audio out</emphasis>
+<emphasis role="comment">;-iadc ;;;uncomment -iadc if realtime audio input is needed too</emphasis>
+<emphasis role="comment">; For Non-realtime ouput leave only the line below:</emphasis>
+<emphasis role="comment">; -o xscanu.wav -W ;;; for file output any platform</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 32
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+<emphasis role="ohdr">0dbfs</emphasis> <emphasis role="op">=</emphasis> 1
+<emphasis role="comment">;the matrices can be found in /manual/examples</emphasis>
+
+<emphasis role="oblock">instr</emphasis> 1 <emphasis role="comment">; Plain scanned syntnesis</emphasis>
+ <emphasis role="comment">; Note Also that I am using quadratic interpolation on these.</emphasis>
+ a0 <emphasis role="op">=</emphasis> 0
+ <emphasis role="opc">xscanu</emphasis> 1, .01, 6, 2, "128,8<emphasis role="op">-</emphasis>gridX", 4, 5, 2, .1, .1, <emphasis role="op">-</emphasis>.01, .1, .5, 0, 0, a0, 0, 0
+ a1 <emphasis role="opc">xscans</emphasis> .5, <emphasis role="opc">cpspch</emphasis>(p4), 333, 0, p6 <emphasis role="comment">; NOTE LEFT RIGHT TRAJECTORY (f333) IS CLEAN!</emphasis>
+ a1 <emphasis role="opc">dcblock</emphasis> a1
+ <emphasis role="opc">outs</emphasis> a1, a1
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="oblock">instr</emphasis> 2 <emphasis role="comment">; Scan synthesis with audio injection and dual scan paths</emphasis>
+
+ a0 <emphasis role="opc">diskin2</emphasis> "fox.wav",1,0,1
+ <emphasis role="comment">; a0,aa ins</emphasis>
+ a0 <emphasis role="op">=</emphasis> a0<emphasis role="op">/</emphasis>.8
+ <emphasis role="opc">xscanu</emphasis> 1, .01, 6, 2, "128,8<emphasis role="op">-</emphasis>torusX", 14, 5, 2, .01, .05, <emphasis role="op">-</emphasis>.05, .1, .5, 0, 0, a0, 0, 0
+ a1 <emphasis role="opc">xscans</emphasis> .3, <emphasis role="opc">cpspch</emphasis>(7.00), 333, 0, 2 <emphasis role="comment">; NOTE LEFT RIGHT TRAJECTORY (f333) IS CLEAN!</emphasis>
+ a2 <emphasis role="opc">xscans</emphasis> .3, <emphasis role="opc">cpspch</emphasis>(6.00), 77, 0, 2
+ a1 <emphasis role="opc">dcblock</emphasis> a1
+ a2 <emphasis role="opc">dcblock</emphasis> a2
+ <emphasis role="opc">outs</emphasis> a1<emphasis role="op">*</emphasis>.5,a2<emphasis role="op">*</emphasis>.1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+
+<emphasis role="comment">; Initial condition</emphasis>
+<emphasis role="comment">;f1 0 16 7 0 8 1 8 0</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 128 7 0 64 1 64 0
+
+<emphasis role="comment">; Masses</emphasis>
+<emphasis role="stamnt">f</emphasis>2 0 128 -7 1 128 1
+
+<emphasis role="comment">; Centering force</emphasis>
+<emphasis role="stamnt">f</emphasis>4 0 128 -7 0 128 2
+<emphasis role="stamnt">f</emphasis>14 0 128 -7 2 64 0 64 2
+
+<emphasis role="comment">; Damping</emphasis>
+<emphasis role="stamnt">f</emphasis>5 0 128 -7 1 128 1
+
+<emphasis role="comment">; Initial velocity</emphasis>
+<emphasis role="stamnt">f</emphasis>6 0 128 -7 -.0 128 .0
+
+<emphasis role="comment">; Trajectories</emphasis>
+<emphasis role="stamnt">f</emphasis>7 0 128 -5 .001 128 128
+<emphasis role="stamnt">f</emphasis>77 0 128 -23 "128-spiral-8,16,128,2,1over2"
+<emphasis role="stamnt">f</emphasis>777 0 128 -23 "128,8-torusX"
+
+<emphasis role="comment">; Spring matrices</emphasis>
+<emphasis role="stamnt">f</emphasis>3 0 128 -23 "128-stringX"
+<emphasis role="stamnt">f</emphasis>33 0 128 -23 "128-stringcircularX"
+<emphasis role="stamnt">f</emphasis>333 0 128 -23 "128-le<emphasis role="stamnt">f</emphasis>t_rightX"
+<emphasis role="stamnt">f</emphasis>3333 0 128 -23 "128,8-torusX"
+<emphasis role="stamnt">f</emphasis>33333 0 128 -23 "128,8-cylinderX"
+<emphasis role="stamnt">f</emphasis>333333 0 128 -23 "128,8-gridX"
+
+<emphasis role="comment">; Sine</emphasis>
+<emphasis role="stamnt">f</emphasis>9 0 1024 10 1
+
+<emphasis role="comment">; Pitch tables</emphasis>
+<emphasis role="stamnt">f</emphasis>100 0 1024 -7 +3 128 +3 128 -2 128 -2 128 +0 128 +0 128 -4 128 -4 128 +3
+<emphasis role="stamnt">f</emphasis>101 0 1024 -7 -2 128 -2 128 -2 128 -2 128 -5 128 -5 128 -4 128 -4 128 -2
+<emphasis role="stamnt">f</emphasis>102 0 1024 -7 +3 128 +3 128 +2 128 +2 128 +0 128 +0 128 +0 128 +0 128 +3
+<emphasis role="stamnt">f</emphasis>103 0 1024 -7 +7 128 +7 128 +5 128 +5 128 +3 128 +3 128 +3 128 +3 128 +7
+
+<emphasis role="comment">; Amplitude tables</emphasis>
+<emphasis role="stamnt">f</emphasis>200 0 1024 7 1 128 0 128 0 127 0 1 1 128 0 128 0 127 0 1 1 128 0 127 0 1 1
+<emphasis role="stamnt">f</emphasis>201 0 1024 7 0 127 0 1 1 127 0 1 1 128 0 127 0 1 1 127 0 1 1 128 0 127 0 1 1 127 0 1 1
+<emphasis role="stamnt">f</emphasis>202 0 1024 7 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1
+<emphasis role="stamnt">f</emphasis>203 0 1024 7 1 1024 0
+<emphasis role="comment">;;f204 0 1024 7 1 512 0 511 0 1 1</emphasis>
+
+<emphasis role="comment">;-----------------------</emphasis>
+
+<emphasis role="comment">; Note list</emphasis>
+<emphasis role="stamnt">i</emphasis>1 0 10 6.00 1 2
+<emphasis role="stamnt">s</emphasis>
+<emphasis role="stamnt">i</emphasis>2 0 15
+<emphasis role="stamnt">e</emphasis>
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis>
+</programlisting> \ No newline at end of file
diff --git a/examples/07AcousticGuitar.sf2 b/examples/07AcousticGuitar.sf2
index 5f11973..5f11973 100755..100644
--- a/examples/07AcousticGuitar.sf2
+++ b/examples/07AcousticGuitar.sf2
Binary files differ
diff --git a/examples/128,8-cylinderX b/examples/128,8-cylinderX
new file mode 100755
index 0000000..8ed832a
--- /dev/null
+++ b/examples/128,8-cylinderX
@@ -0,0 +1,482 @@
+<MATRIX>
+0 1
+0 8
+0 120
+1 0
+1 2
+1 9
+1 121
+2 1
+2 3
+2 10
+2 122
+3 2
+3 4
+3 11
+3 123
+4 3
+4 5
+4 12
+4 124
+5 4
+5 6
+5 13
+5 125
+6 5
+6 7
+6 14
+6 126
+7 6
+7 15
+7 127
+8 0
+8 9
+8 16
+9 1
+9 8
+9 10
+9 17
+10 2
+10 9
+10 11
+10 18
+11 3
+11 10
+11 12
+11 19
+12 4
+12 11
+12 13
+12 20
+13 5
+13 12
+13 14
+13 21
+14 6
+14 13
+14 15
+14 22
+15 7
+15 14
+15 23
+16 8
+16 17
+16 24
+17 9
+17 16
+17 18
+17 25
+18 10
+18 17
+18 19
+18 26
+19 11
+19 18
+19 20
+19 27
+20 12
+20 19
+20 21
+20 28
+21 13
+21 20
+21 22
+21 29
+22 14
+22 21
+22 23
+22 30
+23 15
+23 22
+23 31
+24 16
+24 25
+24 32
+25 17
+25 24
+25 26
+25 33
+26 18
+26 25
+26 27
+26 34
+27 19
+27 26
+27 28
+27 35
+28 20
+28 27
+28 29
+28 36
+29 21
+29 28
+29 30
+29 37
+30 22
+30 29
+30 31
+30 38
+31 23
+31 30
+31 39
+32 24
+32 33
+32 40
+33 25
+33 32
+33 34
+33 41
+34 26
+34 33
+34 35
+34 42
+35 27
+35 34
+35 36
+35 43
+36 28
+36 35
+36 37
+36 44
+37 29
+37 36
+37 38
+37 45
+38 30
+38 37
+38 39
+38 46
+39 31
+39 38
+39 47
+40 32
+40 41
+40 48
+41 33
+41 40
+41 42
+41 49
+42 34
+42 41
+42 43
+42 50
+43 35
+43 42
+43 44
+43 51
+44 36
+44 43
+44 45
+44 52
+45 37
+45 44
+45 46
+45 53
+46 38
+46 45
+46 47
+46 54
+47 39
+47 46
+47 55
+48 40
+48 49
+48 56
+49 41
+49 48
+49 50
+49 57
+50 42
+50 49
+50 51
+50 58
+51 43
+51 50
+51 52
+51 59
+52 44
+52 51
+52 53
+52 60
+53 45
+53 52
+53 54
+53 61
+54 46
+54 53
+54 55
+54 62
+55 47
+55 54
+55 63
+56 48
+56 57
+56 64
+57 49
+57 56
+57 58
+57 65
+58 50
+58 57
+58 59
+58 66
+59 51
+59 58
+59 60
+59 67
+60 52
+60 59
+60 61
+60 68
+61 53
+61 60
+61 62
+61 69
+62 54
+62 61
+62 63
+62 70
+63 55
+63 62
+63 71
+64 56
+64 65
+64 72
+65 57
+65 64
+65 66
+65 73
+66 58
+66 65
+66 67
+66 74
+67 59
+67 66
+67 68
+67 75
+68 60
+68 67
+68 69
+68 76
+69 61
+69 68
+69 70
+69 77
+70 62
+70 69
+70 71
+70 78
+71 63
+71 70
+71 79
+72 64
+72 73
+72 80
+73 65
+73 72
+73 74
+73 81
+74 66
+74 73
+74 75
+74 82
+75 67
+75 74
+75 76
+75 83
+76 68
+76 75
+76 77
+76 84
+77 69
+77 76
+77 78
+77 85
+78 70
+78 77
+78 79
+78 86
+79 71
+79 78
+79 87
+80 72
+80 81
+80 88
+81 73
+81 80
+81 82
+81 89
+82 74
+82 81
+82 83
+82 90
+83 75
+83 82
+83 84
+83 91
+84 76
+84 83
+84 85
+84 92
+85 77
+85 84
+85 86
+85 93
+86 78
+86 85
+86 87
+86 94
+87 79
+87 86
+87 95
+88 80
+88 89
+88 96
+89 81
+89 88
+89 90
+89 97
+90 82
+90 89
+90 91
+90 98
+91 83
+91 90
+91 92
+91 99
+92 84
+92 91
+92 93
+92 100
+93 85
+93 92
+93 94
+93 101
+94 86
+94 93
+94 95
+94 102
+95 87
+95 94
+95 103
+96 88
+96 97
+96 104
+97 89
+97 96
+97 98
+97 105
+98 90
+98 97
+98 99
+98 106
+99 91
+99 98
+99 100
+99 107
+100 92
+100 99
+100 101
+100 108
+101 93
+101 100
+101 102
+101 109
+102 94
+102 101
+102 103
+102 110
+103 95
+103 102
+103 111
+104 96
+104 105
+104 112
+105 97
+105 104
+105 106
+105 113
+106 98
+106 105
+106 107
+106 114
+107 99
+107 106
+107 108
+107 115
+108 100
+108 107
+108 109
+108 116
+109 101
+109 108
+109 110
+109 117
+110 102
+110 109
+110 111
+110 118
+111 103
+111 110
+111 119
+112 104
+112 113
+112 120
+113 105
+113 112
+113 114
+113 121
+114 106
+114 113
+114 115
+114 122
+115 107
+115 114
+115 116
+115 123
+116 108
+116 115
+116 117
+116 124
+117 109
+117 116
+117 118
+117 125
+118 110
+118 117
+118 119
+118 126
+119 111
+119 118
+119 127
+120 0
+120 112
+120 121
+121 1
+121 113
+121 120
+121 122
+122 2
+122 114
+122 121
+122 123
+123 3
+123 115
+123 122
+123 124
+124 4
+124 116
+124 123
+124 125
+125 5
+125 117
+125 124
+125 126
+126 6
+126 118
+126 125
+126 127
+127 7
+127 119
+127 126
+</MATRIX>
diff --git a/examples/128,8-gridX b/examples/128,8-gridX
new file mode 100755
index 0000000..1df4eff
--- /dev/null
+++ b/examples/128,8-gridX
@@ -0,0 +1,466 @@
+<MATRIX>
+0 1
+0 8
+1 0
+1 2
+1 9
+2 1
+2 3
+2 10
+3 2
+3 4
+3 11
+4 3
+4 5
+4 12
+5 4
+5 6
+5 13
+6 5
+6 7
+6 14
+7 6
+7 15
+8 0
+8 9
+8 16
+9 1
+9 8
+9 10
+9 17
+10 2
+10 9
+10 11
+10 18
+11 3
+11 10
+11 12
+11 19
+12 4
+12 11
+12 13
+12 20
+13 5
+13 12
+13 14
+13 21
+14 6
+14 13
+14 15
+14 22
+15 7
+15 14
+15 23
+16 8
+16 17
+16 24
+17 9
+17 16
+17 18
+17 25
+18 10
+18 17
+18 19
+18 26
+19 11
+19 18
+19 20
+19 27
+20 12
+20 19
+20 21
+20 28
+21 13
+21 20
+21 22
+21 29
+22 14
+22 21
+22 23
+22 30
+23 15
+23 22
+23 31
+24 16
+24 25
+24 32
+25 17
+25 24
+25 26
+25 33
+26 18
+26 25
+26 27
+26 34
+27 19
+27 26
+27 28
+27 35
+28 20
+28 27
+28 29
+28 36
+29 21
+29 28
+29 30
+29 37
+30 22
+30 29
+30 31
+30 38
+31 23
+31 30
+31 39
+32 24
+32 33
+32 40
+33 25
+33 32
+33 34
+33 41
+34 26
+34 33
+34 35
+34 42
+35 27
+35 34
+35 36
+35 43
+36 28
+36 35
+36 37
+36 44
+37 29
+37 36
+37 38
+37 45
+38 30
+38 37
+38 39
+38 46
+39 31
+39 38
+39 47
+40 32
+40 41
+40 48
+41 33
+41 40
+41 42
+41 49
+42 34
+42 41
+42 43
+42 50
+43 35
+43 42
+43 44
+43 51
+44 36
+44 43
+44 45
+44 52
+45 37
+45 44
+45 46
+45 53
+46 38
+46 45
+46 47
+46 54
+47 39
+47 46
+47 55
+48 40
+48 49
+48 56
+49 41
+49 48
+49 50
+49 57
+50 42
+50 49
+50 51
+50 58
+51 43
+51 50
+51 52
+51 59
+52 44
+52 51
+52 53
+52 60
+53 45
+53 52
+53 54
+53 61
+54 46
+54 53
+54 55
+54 62
+55 47
+55 54
+55 63
+56 48
+56 57
+56 64
+57 49
+57 56
+57 58
+57 65
+58 50
+58 57
+58 59
+58 66
+59 51
+59 58
+59 60
+59 67
+60 52
+60 59
+60 61
+60 68
+61 53
+61 60
+61 62
+61 69
+62 54
+62 61
+62 63
+62 70
+63 55
+63 62
+63 71
+64 56
+64 65
+64 72
+65 57
+65 64
+65 66
+65 73
+66 58
+66 65
+66 67
+66 74
+67 59
+67 66
+67 68
+67 75
+68 60
+68 67
+68 69
+68 76
+69 61
+69 68
+69 70
+69 77
+70 62
+70 69
+70 71
+70 78
+71 63
+71 70
+71 79
+72 64
+72 73
+72 80
+73 65
+73 72
+73 74
+73 81
+74 66
+74 73
+74 75
+74 82
+75 67
+75 74
+75 76
+75 83
+76 68
+76 75
+76 77
+76 84
+77 69
+77 76
+77 78
+77 85
+78 70
+78 77
+78 79
+78 86
+79 71
+79 78
+79 87
+80 72
+80 81
+80 88
+81 73
+81 80
+81 82
+81 89
+82 74
+82 81
+82 83
+82 90
+83 75
+83 82
+83 84
+83 91
+84 76
+84 83
+84 85
+84 92
+85 77
+85 84
+85 86
+85 93
+86 78
+86 85
+86 87
+86 94
+87 79
+87 86
+87 95
+88 80
+88 89
+88 96
+89 81
+89 88
+89 90
+89 97
+90 82
+90 89
+90 91
+90 98
+91 83
+91 90
+91 92
+91 99
+92 84
+92 91
+92 93
+92 100
+93 85
+93 92
+93 94
+93 101
+94 86
+94 93
+94 95
+94 102
+95 87
+95 94
+95 103
+96 88
+96 97
+96 104
+97 89
+97 96
+97 98
+97 105
+98 90
+98 97
+98 99
+98 106
+99 91
+99 98
+99 100
+99 107
+100 92
+100 99
+100 101
+100 108
+101 93
+101 100
+101 102
+101 109
+102 94
+102 101
+102 103
+102 110
+103 95
+103 102
+103 111
+104 96
+104 105
+104 112
+105 97
+105 104
+105 106
+105 113
+106 98
+106 105
+106 107
+106 114
+107 99
+107 106
+107 108
+107 115
+108 100
+108 107
+108 109
+108 116
+109 101
+109 108
+109 110
+109 117
+110 102
+110 109
+110 111
+110 118
+111 103
+111 110
+111 119
+112 104
+112 113
+112 120
+113 105
+113 112
+113 114
+113 121
+114 106
+114 113
+114 115
+114 122
+115 107
+115 114
+115 116
+115 123
+116 108
+116 115
+116 117
+116 124
+117 109
+117 116
+117 118
+117 125
+118 110
+118 117
+118 119
+118 126
+119 111
+119 118
+119 127
+120 112
+120 121
+121 113
+121 120
+121 122
+122 114
+122 121
+122 123
+123 115
+123 122
+123 124
+124 116
+124 123
+124 125
+125 117
+125 124
+125 126
+126 118
+126 125
+126 127
+127 119
+127 126
+</MATRIX>
diff --git a/examples/128,8-torus b/examples/128,8-torus
new file mode 100755
index 0000000..272c453
--- /dev/null
+++ b/examples/128,8-torus
@@ -0,0 +1 @@
+0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 \ No newline at end of file
diff --git a/examples/128,8-torusX b/examples/128,8-torusX
new file mode 100755
index 0000000..715246c
--- /dev/null
+++ b/examples/128,8-torusX
@@ -0,0 +1,514 @@
+<MATRIX>
+0 1
+0 7
+0 8
+0 120
+1 0
+1 2
+1 9
+1 121
+2 1
+2 3
+2 10
+2 122
+3 2
+3 4
+3 11
+3 123
+4 3
+4 5
+4 12
+4 124
+5 4
+5 6
+5 13
+5 125
+6 5
+6 7
+6 14
+6 126
+7 0
+7 6
+7 15
+7 127
+8 0
+8 9
+8 15
+8 16
+9 1
+9 8
+9 10
+9 17
+10 2
+10 9
+10 11
+10 18
+11 3
+11 10
+11 12
+11 19
+12 4
+12 11
+12 13
+12 20
+13 5
+13 12
+13 14
+13 21
+14 6
+14 13
+14 15
+14 22
+15 7
+15 8
+15 14
+15 23
+16 8
+16 17
+16 23
+16 24
+17 9
+17 16
+17 18
+17 25
+18 10
+18 17
+18 19
+18 26
+19 11
+19 18
+19 20
+19 27
+20 12
+20 19
+20 21
+20 28
+21 13
+21 20
+21 22
+21 29
+22 14
+22 21
+22 23
+22 30
+23 15
+23 16
+23 22
+23 31
+24 16
+24 25
+24 31
+24 32
+25 17
+25 24
+25 26
+25 33
+26 18
+26 25
+26 27
+26 34
+27 19
+27 26
+27 28
+27 35
+28 20
+28 27
+28 29
+28 36
+29 21
+29 28
+29 30
+29 37
+30 22
+30 29
+30 31
+30 38
+31 23
+31 24
+31 30
+31 39
+32 24
+32 33
+32 39
+32 40
+33 25
+33 32
+33 34
+33 41
+34 26
+34 33
+34 35
+34 42
+35 27
+35 34
+35 36
+35 43
+36 28
+36 35
+36 37
+36 44
+37 29
+37 36
+37 38
+37 45
+38 30
+38 37
+38 39
+38 46
+39 31
+39 32
+39 38
+39 47
+40 32
+40 41
+40 47
+40 48
+41 33
+41 40
+41 42
+41 49
+42 34
+42 41
+42 43
+42 50
+43 35
+43 42
+43 44
+43 51
+44 36
+44 43
+44 45
+44 52
+45 37
+45 44
+45 46
+45 53
+46 38
+46 45
+46 47
+46 54
+47 39
+47 40
+47 46
+47 55
+48 40
+48 49
+48 55
+48 56
+49 41
+49 48
+49 50
+49 57
+50 42
+50 49
+50 51
+50 58
+51 43
+51 50
+51 52
+51 59
+52 44
+52 51
+52 53
+52 60
+53 45
+53 52
+53 54
+53 61
+54 46
+54 53
+54 55
+54 62
+55 47
+55 48
+55 54
+55 63
+56 48
+56 57
+56 63
+56 64
+57 49
+57 56
+57 58
+57 65
+58 50
+58 57
+58 59
+58 66
+59 51
+59 58
+59 60
+59 67
+60 52
+60 59
+60 61
+60 68
+61 53
+61 60
+61 62
+61 69
+62 54
+62 61
+62 63
+62 70
+63 55
+63 56
+63 62
+63 71
+64 56
+64 65
+64 71
+64 72
+65 57
+65 64
+65 66
+65 73
+66 58
+66 65
+66 67
+66 74
+67 59
+67 66
+67 68
+67 75
+68 60
+68 67
+68 69
+68 76
+69 61
+69 68
+69 70
+69 77
+70 62
+70 69
+70 71
+70 78
+71 63
+71 64
+71 70
+71 79
+72 64
+72 73
+72 79
+72 80
+73 65
+73 72
+73 74
+73 81
+74 66
+74 73
+74 75
+74 82
+75 67
+75 74
+75 76
+75 83
+76 68
+76 75
+76 77
+76 84
+77 69
+77 76
+77 78
+77 85
+78 70
+78 77
+78 79
+78 86
+79 71
+79 72
+79 78
+79 87
+80 72
+80 81
+80 87
+80 88
+81 73
+81 80
+81 82
+81 89
+82 74
+82 81
+82 83
+82 90
+83 75
+83 82
+83 84
+83 91
+84 76
+84 83
+84 85
+84 92
+85 77
+85 84
+85 86
+85 93
+86 78
+86 85
+86 87
+86 94
+87 79
+87 80
+87 86
+87 95
+88 80
+88 89
+88 95
+88 96
+89 81
+89 88
+89 90
+89 97
+90 82
+90 89
+90 91
+90 98
+91 83
+91 90
+91 92
+91 99
+92 84
+92 91
+92 93
+92 100
+93 85
+93 92
+93 94
+93 101
+94 86
+94 93
+94 95
+94 102
+95 87
+95 88
+95 94
+95 103
+96 88
+96 97
+96 103
+96 104
+97 89
+97 96
+97 98
+97 105
+98 90
+98 97
+98 99
+98 106
+99 91
+99 98
+99 100
+99 107
+100 92
+100 99
+100 101
+100 108
+101 93
+101 100
+101 102
+101 109
+102 94
+102 101
+102 103
+102 110
+103 95
+103 96
+103 102
+103 111
+104 96
+104 105
+104 111
+104 112
+105 97
+105 104
+105 106
+105 113
+106 98
+106 105
+106 107
+106 114
+107 99
+107 106
+107 108
+107 115
+108 100
+108 107
+108 109
+108 116
+109 101
+109 108
+109 110
+109 117
+110 102
+110 109
+110 111
+110 118
+111 103
+111 104
+111 110
+111 119
+112 104
+112 113
+112 119
+112 120
+113 105
+113 112
+113 114
+113 121
+114 106
+114 113
+114 115
+114 122
+115 107
+115 114
+115 116
+115 123
+116 108
+116 115
+116 117
+116 124
+117 109
+117 116
+117 118
+117 125
+118 110
+118 117
+118 119
+118 126
+119 111
+119 112
+119 118
+119 127
+120 0
+120 112
+120 121
+120 127
+121 1
+121 113
+121 120
+121 122
+122 2
+122 114
+122 121
+122 123
+123 3
+123 115
+123 122
+123 124
+124 4
+124 116
+124 123
+124 125
+125 5
+125 117
+125 124
+125 126
+126 6
+126 118
+126 125
+126 127
+127 7
+127 119
+127 120
+127 126
+</MATRIX>
diff --git a/examples/128-left_rightX b/examples/128-left_rightX
new file mode 100755
index 0000000..2613c3a
--- /dev/null
+++ b/examples/128-left_rightX
@@ -0,0 +1,258 @@
+<MATRIX>
+0 1
+0 127
+1 0
+1 2
+2 1
+2 3
+3 2
+3 4
+4 3
+4 5
+5 4
+5 6
+6 5
+6 7
+7 6
+7 8
+8 7
+8 9
+9 8
+9 10
+10 9
+10 11
+11 10
+11 12
+12 11
+12 13
+13 12
+13 14
+14 13
+14 15
+15 14
+15 16
+16 15
+16 17
+17 16
+17 18
+18 17
+18 19
+19 18
+19 20
+20 19
+20 21
+21 20
+21 22
+22 21
+22 23
+23 22
+23 24
+24 23
+24 25
+25 24
+25 26
+26 25
+26 27
+27 26
+27 28
+28 27
+28 29
+29 28
+29 30
+30 29
+30 31
+31 30
+31 32
+32 31
+32 33
+33 32
+33 34
+34 33
+34 35
+35 34
+35 36
+36 35
+36 37
+37 36
+37 38
+38 37
+38 39
+39 38
+39 40
+40 39
+40 41
+41 40
+41 42
+42 41
+42 43
+43 42
+43 44
+44 43
+44 45
+45 44
+45 46
+46 45
+46 47
+47 46
+47 48
+48 47
+48 49
+49 48
+49 50
+50 49
+50 51
+51 50
+51 52
+52 51
+52 53
+53 52
+53 54
+54 53
+54 55
+55 54
+55 56
+56 55
+56 57
+57 56
+57 58
+58 57
+58 59
+59 58
+59 60
+60 59
+60 61
+61 60
+61 62
+62 61
+62 63
+63 62
+63 64
+64 63
+64 65
+65 64
+65 66
+66 65
+66 67
+67 66
+67 68
+68 67
+68 69
+69 68
+69 70
+70 69
+70 71
+71 70
+71 72
+72 71
+72 73
+73 72
+73 74
+74 73
+74 75
+75 74
+75 76
+76 75
+76 77
+77 76
+77 78
+78 77
+78 79
+79 78
+79 80
+80 79
+80 81
+81 80
+81 82
+82 81
+82 83
+83 82
+83 84
+84 83
+84 85
+85 84
+85 86
+86 85
+86 87
+87 86
+87 88
+88 87
+88 89
+89 88
+89 90
+90 89
+90 91
+91 90
+91 92
+92 91
+92 93
+93 92
+93 94
+94 93
+94 95
+95 94
+95 96
+96 95
+96 97
+97 96
+97 98
+98 97
+98 99
+99 98
+99 100
+100 99
+100 101
+101 100
+101 102
+102 101
+102 103
+103 102
+103 104
+104 103
+104 105
+105 104
+105 106
+106 105
+106 107
+107 106
+107 108
+108 107
+108 109
+109 108
+109 110
+110 109
+110 111
+111 110
+111 112
+112 111
+112 113
+113 112
+113 114
+114 113
+114 115
+115 114
+115 116
+116 115
+116 117
+117 116
+117 118
+118 117
+118 119
+119 118
+119 120
+120 119
+120 121
+121 120
+121 122
+122 121
+122 123
+123 122
+123 124
+124 123
+124 125
+125 124
+125 126
+126 125
+126 127
+127 0
+127 126
+</MATRIX>
diff --git a/examples/128-spiral-8,16,128,2,1over2 b/examples/128-spiral-8,16,128,2,1over2
new file mode 100755
index 0000000..5eba4ed
--- /dev/null
+++ b/examples/128-spiral-8,16,128,2,1over2
@@ -0,0 +1 @@
+123 17 71 97 4 110 48 30 123 10 79 89 12 117 40 47 114 10 86 80 13 116 33 55 106 11 94 64 21 116 25 63 97 12 102 56 30 115 18 78 89 12 109 49 46 107 18 86 81 21 108 41 54 106 19 94 73 29 108 33 62 98 19 93 65 37 107 26 70 90 20 101 57 46 107 26 78 81 28 101 49 54 99 27 86 73 29 100 42 62 90 27 85 65 37 100 34 62 90 28 93 57 45 99 34 70 82 28 93 50 53 99 35 77 74 36 92 50 53 91 35 85 66 37 92 42 61 82 35 \ No newline at end of file
diff --git a/examples/128-stringX b/examples/128-stringX
new file mode 100755
index 0000000..e703add
--- /dev/null
+++ b/examples/128-stringX
@@ -0,0 +1,256 @@
+<MATRIX>
+0 1
+1 0
+1 2
+2 1
+2 3
+3 2
+3 4
+4 3
+4 5
+5 4
+5 6
+6 5
+6 7
+7 6
+7 8
+8 7
+8 9
+9 8
+9 10
+10 9
+10 11
+11 10
+11 12
+12 11
+12 13
+13 12
+13 14
+14 13
+14 15
+15 14
+15 16
+16 15
+16 17
+17 16
+17 18
+18 17
+18 19
+19 18
+19 20
+20 19
+20 21
+21 20
+21 22
+22 21
+22 23
+23 22
+23 24
+24 23
+24 25
+25 24
+25 26
+26 25
+26 27
+27 26
+27 28
+28 27
+28 29
+29 28
+29 30
+30 29
+30 31
+31 30
+31 32
+32 31
+32 33
+33 32
+33 34
+34 33
+34 35
+35 34
+35 36
+36 35
+36 37
+37 36
+37 38
+38 37
+38 39
+39 38
+39 40
+40 39
+40 41
+41 40
+41 42
+42 41
+42 43
+43 42
+43 44
+44 43
+44 45
+45 44
+45 46
+46 45
+46 47
+47 46
+47 48
+48 47
+48 49
+49 48
+49 50
+50 49
+50 51
+51 50
+51 52
+52 51
+52 53
+53 52
+53 54
+54 53
+54 55
+55 54
+55 56
+56 55
+56 57
+57 56
+57 58
+58 57
+58 59
+59 58
+59 60
+60 59
+60 61
+61 60
+61 62
+62 61
+62 63
+63 62
+63 64
+64 63
+64 65
+65 64
+65 66
+66 65
+66 67
+67 66
+67 68
+68 67
+68 69
+69 68
+69 70
+70 69
+70 71
+71 70
+71 72
+72 71
+72 73
+73 72
+73 74
+74 73
+74 75
+75 74
+75 76
+76 75
+76 77
+77 76
+77 78
+78 77
+78 79
+79 78
+79 80
+80 79
+80 81
+81 80
+81 82
+82 81
+82 83
+83 82
+83 84
+84 83
+84 85
+85 84
+85 86
+86 85
+86 87
+87 86
+87 88
+88 87
+88 89
+89 88
+89 90
+90 89
+90 91
+91 90
+91 92
+92 91
+92 93
+93 92
+93 94
+94 93
+94 95
+95 94
+95 96
+96 95
+96 97
+97 96
+97 98
+98 97
+98 99
+99 98
+99 100
+100 99
+100 101
+101 100
+101 102
+102 101
+102 103
+103 102
+103 104
+104 103
+104 105
+105 104
+105 106
+106 105
+106 107
+107 106
+107 108
+108 107
+108 109
+109 108
+109 110
+110 109
+110 111
+111 110
+111 112
+112 111
+112 113
+113 112
+113 114
+114 113
+114 115
+115 114
+115 116
+116 115
+116 117
+117 116
+117 118
+118 117
+118 119
+119 118
+119 120
+120 119
+120 121
+121 120
+121 122
+122 121
+122 123
+123 122
+123 124
+124 123
+124 125
+125 124
+125 126
+126 125
+126 127
+127 126
+</MATRIX>
diff --git a/examples/128-stringcircular b/examples/128-stringcircular
new file mode 100755
index 0000000..6900528
--- /dev/null
+++ b/examples/128-stringcircular
@@ -0,0 +1 @@
+0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 \ No newline at end of file
diff --git a/examples/128-stringcircularX b/examples/128-stringcircularX
new file mode 100755
index 0000000..2613c3a
--- /dev/null
+++ b/examples/128-stringcircularX
@@ -0,0 +1,258 @@
+<MATRIX>
+0 1
+0 127
+1 0
+1 2
+2 1
+2 3
+3 2
+3 4
+4 3
+4 5
+5 4
+5 6
+6 5
+6 7
+7 6
+7 8
+8 7
+8 9
+9 8
+9 10
+10 9
+10 11
+11 10
+11 12
+12 11
+12 13
+13 12
+13 14
+14 13
+14 15
+15 14
+15 16
+16 15
+16 17
+17 16
+17 18
+18 17
+18 19
+19 18
+19 20
+20 19
+20 21
+21 20
+21 22
+22 21
+22 23
+23 22
+23 24
+24 23
+24 25
+25 24
+25 26
+26 25
+26 27
+27 26
+27 28
+28 27
+28 29
+29 28
+29 30
+30 29
+30 31
+31 30
+31 32
+32 31
+32 33
+33 32
+33 34
+34 33
+34 35
+35 34
+35 36
+36 35
+36 37
+37 36
+37 38
+38 37
+38 39
+39 38
+39 40
+40 39
+40 41
+41 40
+41 42
+42 41
+42 43
+43 42
+43 44
+44 43
+44 45
+45 44
+45 46
+46 45
+46 47
+47 46
+47 48
+48 47
+48 49
+49 48
+49 50
+50 49
+50 51
+51 50
+51 52
+52 51
+52 53
+53 52
+53 54
+54 53
+54 55
+55 54
+55 56
+56 55
+56 57
+57 56
+57 58
+58 57
+58 59
+59 58
+59 60
+60 59
+60 61
+61 60
+61 62
+62 61
+62 63
+63 62
+63 64
+64 63
+64 65
+65 64
+65 66
+66 65
+66 67
+67 66
+67 68
+68 67
+68 69
+69 68
+69 70
+70 69
+70 71
+71 70
+71 72
+72 71
+72 73
+73 72
+73 74
+74 73
+74 75
+75 74
+75 76
+76 75
+76 77
+77 76
+77 78
+78 77
+78 79
+79 78
+79 80
+80 79
+80 81
+81 80
+81 82
+82 81
+82 83
+83 82
+83 84
+84 83
+84 85
+85 84
+85 86
+86 85
+86 87
+87 86
+87 88
+88 87
+88 89
+89 88
+89 90
+90 89
+90 91
+91 90
+91 92
+92 91
+92 93
+93 92
+93 94
+94 93
+94 95
+95 94
+95 96
+96 95
+96 97
+97 96
+97 98
+98 97
+98 99
+99 98
+99 100
+100 99
+100 101
+101 100
+101 102
+102 101
+102 103
+103 102
+103 104
+104 103
+104 105
+105 104
+105 106
+106 105
+106 107
+107 106
+107 108
+108 107
+108 109
+109 108
+109 110
+110 109
+110 111
+111 110
+111 112
+112 111
+112 113
+113 112
+113 114
+114 113
+114 115
+115 114
+115 116
+116 115
+116 117
+117 116
+117 118
+118 117
+118 119
+119 118
+119 120
+120 119
+120 121
+121 120
+121 122
+122 121
+122 123
+123 122
+123 124
+124 123
+124 125
+125 124
+125 126
+126 125
+126 127
+127 0
+127 126
+</MATRIX>
diff --git a/examples/19Trumpet.sf2 b/examples/19Trumpet.sf2
index 26ce4ea..26ce4ea 100755..100644
--- a/examples/19Trumpet.sf2
+++ b/examples/19Trumpet.sf2
Binary files differ
diff --git a/examples/ATSadd-2.csd b/examples/ATSadd-2.csd
new file mode 100644
index 0000000..823d69a
--- /dev/null
+++ b/examples/ATSadd-2.csd
@@ -0,0 +1,54 @@
+<CsoundSynthesizer>
+<CsOptions>
+-odac -d -m1
+</CsOptions>
+<CsInstruments>
+;example by joachim heintz
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 1024, 10, 1
+
+ instr AllTheTones
+Sfile = "fox.ats"
+ prints "Resynthesizing with all the tones.\n"
+iDur ATSinfo Sfile, 7
+p3 = iDur
+iNumParts ATSinfo Sfile, 3
+ prints "Overall number of partials = %d\n", iNumParts
+ktime line 0, iDur, iDur
+asig ATSadd ktime, 1, Sfile, giSine, iNumParts
+ outs asig, asig
+
+;start next instr
+ event_i "i", "TonesInBandsOfTen", iDur+1, iDur, 0, iNumParts
+ endin
+
+ instr TonesInBandsOfTen
+Sfile = "fox.ats"
+iOffset = p4 ;start at this partial
+iNumParts = p5 ;overall number of partials
+ prints "Resynthesizing with partials %d - %d.\n", iOffset+1, iOffset+10
+ktime line 0, p3, p3
+asig ATSadd ktime, 1, Sfile, giSine, 10, iOffset
+ outs asig, asig
+
+;start next instance until there are enough partials left
+ if iOffset+20 < iNumParts then
+ event_i "i", "TonesInBandsOfTen", p3+1, p3, iOffset+10, iNumParts
+ else
+ event_i "i", "End", p3, 1
+ endif
+ endin
+
+ instr End
+ exitnow
+ endin
+</CsInstruments>
+<CsScore>
+i "AllTheTones" 0 1
+e 999
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/ATSadd.csd b/examples/ATSadd.csd
index 24b0f4e..24b0f4e 100755..100644
--- a/examples/ATSadd.csd
+++ b/examples/ATSadd.csd
diff --git a/examples/ATSaddnz-2.csd b/examples/ATSaddnz-2.csd
new file mode 100644
index 0000000..4ae65d1
--- /dev/null
+++ b/examples/ATSaddnz-2.csd
@@ -0,0 +1,44 @@
+<CsoundSynthesizer>
+<CsOptions>
+-odac -d -m1
+</CsOptions>
+<CsInstruments>
+;example by joachim heintz
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr AllTheNoise
+Sfile = "fox.ats"
+ prints "Resynthesizing with all the noise.\n"
+iDur ATSinfo Sfile, 7
+p3 = iDur
+ktime line 0, iDur, iDur
+asig ATSaddnz ktime, Sfile, 25
+ outs asig, asig
+
+;start next instr
+ event_i "i", "NoiseInBandsOfFive", iDur+1, 1, 0
+endin
+
+instr NoiseInBandsOfFive
+Sfile = "fox.ats"
+ prints "Resynthesizing with noise bands %d - %d.\n", p4, p4+5
+iDur ATSinfo Sfile, 7
+p3 = iDur
+ktime line 0, iDur, iDur
+asig ATSaddnz ktime, Sfile, 5, p4
+ outs asig, asig
+
+;start next instr
+if p4 < 20 then
+ event_i "i", "NoiseInBandsOfFive", iDur+1, 1, p4+5
+endif
+endin
+</CsInstruments>
+<CsScore>
+i "AllTheNoise" 0 1
+e 25
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/ATSaddnz.csd b/examples/ATSaddnz.csd
index 9d4bdef..9d4bdef 100755..100644
--- a/examples/ATSaddnz.csd
+++ b/examples/ATSaddnz.csd
diff --git a/examples/ATSbufread.csd b/examples/ATSbufread.csd
index 3441e61..3441e61 100755..100644
--- a/examples/ATSbufread.csd
+++ b/examples/ATSbufread.csd
diff --git a/examples/ATScross.csd b/examples/ATScross.csd
index 8d9690b..8d9690b 100755..100644
--- a/examples/ATScross.csd
+++ b/examples/ATScross.csd
diff --git a/examples/ATSinfo-2.csd b/examples/ATSinfo-2.csd
new file mode 100644
index 0000000..a2bbd1c
--- /dev/null
+++ b/examples/ATSinfo-2.csd
@@ -0,0 +1,40 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n ;;;no audio out
+</CsOptions>
+<CsInstruments>
+;example by joachim heintz
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; "fox.ats" has been created by ATSanal
+Sfile = "fox.ats"
+isr ATSinfo Sfile, 0
+ifs ATSinfo Sfile, 1
+iws ATSinfo Sfile, 2
+inp ATSinfo Sfile, 3
+inf ATSinfo Sfile, 4
+ima ATSinfo Sfile, 5
+imf ATSinfo Sfile, 6
+id ATSinfo Sfile, 7
+ift ATSinfo Sfile, 8
+ prints {{
+Sample rate = %d Hz
+Frame Size = %d samples
+Window Size = %d samples
+Number of Partials = %d
+Number of Frames = %d
+Maximum Amplitude = %f
+Maximum Frequency = %f Hz
+Duration = %f seconds
+ATS file Type = %d
+}}, isr, ifs, iws, inp, inf, ima, imf, id, ift
+endin
+</CsInstruments>
+<CsScore>
+i 1 0 0
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/ATSinfo.csd b/examples/ATSinfo.csd
index 09c845f..09c845f 100755..100644
--- a/examples/ATSinfo.csd
+++ b/examples/ATSinfo.csd
diff --git a/examples/ATSinterpread.csd b/examples/ATSinterpread.csd
index d75aa23..d75aa23 100755..100644
--- a/examples/ATSinterpread.csd
+++ b/examples/ATSinterpread.csd
diff --git a/examples/ATSpartialtap.csd b/examples/ATSpartialtap.csd
index 383d700..383d700 100755..100644
--- a/examples/ATSpartialtap.csd
+++ b/examples/ATSpartialtap.csd
diff --git a/examples/ATSread-2.csd b/examples/ATSread-2.csd
new file mode 100644
index 0000000..795aed7
--- /dev/null
+++ b/examples/ATSread-2.csd
@@ -0,0 +1,118 @@
+<CsoundSynthesizer>
+<CsOptions>
+-odac -d -m128
+</CsOptions>
+<CsInstruments>
+;example by joachim heintz
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 1024, 10, 1
+gSfile = "fox.ats"
+giNumParts ATSinfo gSfile, 3 ;overall number of partials
+giDur ATSinfo gSfile, 7 ;duration
+ seed 0
+
+
+ instr ReadOnePartial
+iPartial = p4
+p3 = giDur
+ktime line 0, giDur, giDur
+ prints "Resynthesizing partial number %d.\n", iPartial
+kFq,kAmp ATSread ktime, gSfile, iPartial
+kAmp port kAmp, .1 ;smooth amplitudes - still not satisfactoring
+aOut poscil kAmp, kFq, giSine
+aOut linen aOut, 0, p3, .01 ;anti-click
+ outs aOut*10, aOut*10
+
+;start next instr: normal speed, three loops, pause between loops one second
+ event_i "i", "MasterRand", giDur+3, 1, 1, 3, 2
+ endin
+
+ instr MasterRand
+ ;random selections of 10 partials per second, overlapping
+iSpeed = p4 ;speed of reading / playing
+iNumLoops = p5 ;number of loops
+iPause = p6 ;length of pause between loops
+ prints "Resynthesizing random partials.\n"
+p3 = (giDur/iSpeed+iPause) * iNumLoops
+;start next instr: half speed, three loops, three seonds pause between loops
+ event_i "i", "MasterArp", p3+3, 1, .5, 3, 3
+;loop over duration plus pause
+loop:
+ timout 0, giDur/iSpeed+iPause, play
+ reinit loop
+play:
+gkTime line 0, giDur/iSpeed, giDur ;start time from 0 in each loop
+kTrig metro 10 ;10 new partials per second
+ ;call subinstrument if trigger and no pause
+ if kTrig == 1 && gkTime < giDur then
+kPart random 1, giNumParts+.999
+ event "i", "PlayRand", 0, 1, int(kPart)
+ endif
+
+ endin
+
+ instr MasterArp
+ ;argeggio-like reading and playing of partials
+iSpeed = p4 ;speed of reading / playing
+iNumLoops = p5 ;number of loops
+iPause = p6 ;length of pause between loops
+ prints "Arpeggiating partials.\n"
+p3 = (giDur/iSpeed+iPause) * iNumLoops
+loop:
+ timout 0, giDur/iSpeed+iPause, play
+ reinit loop
+play:
+gkTime line 0, giDur/iSpeed, giDur
+kArp linseg 1, (giDur/iSpeed)/2, giNumParts, (giDur/iSpeed)/2, 1 ;arp up and down
+kTrig metro 10 ;10 new partials per second
+ if kTrig == 1 && gkTime < giDur then
+ event "i", "PlayArp", 0, 5, int(kArp)
+ endif
+
+;exit csound when finished
+ event_i "i", "End", p3+5, 1
+ endin
+
+ instr PlayRand
+iPartial = p4
+kFq,kAmp ATSread gkTime, gSfile, iPartial
+kamp port kAmp, .15 ;smooth amplitudes
+aOut poscil kAmp, kFq, giSine
+aOut linen aOut, .01, p3, .01
+ outs aOut, aOut
+ endin
+
+ instr PlayArp
+kCount init 1 ;k-cycle
+iPartial = p4
+kFq,kAmp ATSread gkTime, gSfile, iPartial
+ if kCount == 1 then ;get freq from first k-cycle
+kModFq = kFq
+ ;avoid to go with 0 Hz as this blocks the mode filter
+ if kModFq == 0 then
+ turnoff
+ endif
+ endif
+iVol random -42, -12 ;db
+iOffset random .01, .1 ;no too regularily ...
+aImp mpulse ampdb(iVol), p3, iOffset
+iQ random 500, 5000
+aOut mode aImp, kModFq, iQ
+aOut linen aOut, 0, p3, p3/3
+ outs aOut, aOut
+kCount = 2
+ endin
+
+ instr End
+ exitnow
+ endin
+</CsInstruments>
+<CsScore>
+i "ReadOnePartial" 0 1 10
+e 999
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/ATSread.csd b/examples/ATSread.csd
index c023926..c023926 100755..100644
--- a/examples/ATSread.csd
+++ b/examples/ATSread.csd
diff --git a/examples/ATSreadnz.csd b/examples/ATSreadnz.csd
index 3eee689..3eee689 100755..100644
--- a/examples/ATSreadnz.csd
+++ b/examples/ATSreadnz.csd
diff --git a/examples/ATSsinnoi-2.csd b/examples/ATSsinnoi-2.csd
new file mode 100644
index 0000000..311b5ec
--- /dev/null
+++ b/examples/ATSsinnoi-2.csd
@@ -0,0 +1,79 @@
+<CsoundSynthesizer>
+<CsOptions>
+-odac -d -m128
+</CsOptions>
+<CsInstruments>
+;example by joachim heintz
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 1024, 10, 1
+gSfile = "fox.ats"
+giNumParts ATSinfo gSfile, 3 ;overall number of partials
+giDur ATSinfo gSfile, 7 ;duration
+ seed 0
+
+
+ instr PlayList
+event_i "i", "PlayAll", 0, 1, 1, 0, .5 ;sine only, half speed
+event_i "i", "PlayAll", giDur*2+1, 1, 0, 1, .5 ;noise only
+event_i "i", "PlayAll", giDur*4+2, 1, .5, .5, .5 ;half sine, half noise
+ endin
+
+ instr PlayAll
+iSinAmnt = p4 ;sinee amount (0-1)
+iNzAmnt = p5 ;noise amount (0-1)
+iSpeed = p6 ;speed
+p3 = giDur/iSpeed
+ktime line 0, giDur/iSpeed, giDur
+ prints "Resynthesizing all partials with tone = %.1f and noise = %.1f.\n", iSinAmnt, iNzAmnt
+aOut ATSsinnoi ktime, iSinAmnt, iNzAmnt, 1, gSfile, giNumParts
+ outs aOut, aOut
+ endin
+
+ instr PlayBand
+iOffset = p4 ;offset in partials
+iSpeed = p5 ;speed
+p3 = giDur/iSpeed
+ktime line 0, giDur/iSpeed, giDur
+ prints "Resynthesizing partials %d to %d with related noise.\n", iOffset+1, iOffset+10
+aOut ATSsinnoi ktime, 1, 1, 1, gSfile, 10, iOffset, 1
+ outs aOut, aOut
+;call itself again
+ if iOffset < giNumParts - 20 then
+ event_i "i", "PlayBand", giDur/iSpeed+1, 1, iOffset+10, iSpeed
+ endif
+ endin
+
+ instr PlayWeighted
+ ;sine amount, noise amount and speeed are varying
+kSinAmnt randomi 0, 1, 1, 3
+kNzAmnt = 1-kSinAmnt
+kSpeed randomi .01, .3, 1, 3
+async init 0
+atime, aEnd syncphasor kSpeed/giDur, async
+kTrig metro 100
+kEnd max_k aEnd, kTrig, 1 ;1 if phasor signal crosses zero
+ktime downsamp atime
+aOut ATSsinnoi ktime*giDur, kSinAmnt, kNzAmnt, 1, gSfile, giNumParts
+ outs aOut, aOut
+ ;exit if file is at the end
+ if kEnd == 1 then
+ event "i", "End", 0, 1
+ endif
+ endin
+
+ instr End
+ exitnow
+ endin
+
+
+</CsInstruments>
+<CsScore>
+i "PlayList" 0 1
+i "PlayBand" 20 1 0 .5
+i "PlayWeighted" 110 100
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/ATSsinnoi.csd b/examples/ATSsinnoi.csd
index 6627fbc..6627fbc 100755..100644
--- a/examples/ATSsinnoi.csd
+++ b/examples/ATSsinnoi.csd
diff --git a/examples/Church.wav b/examples/Church.wav
new file mode 100644
index 0000000..219a02a
--- /dev/null
+++ b/examples/Church.wav
Binary files differ
diff --git a/examples/FLsavesnap.csd b/examples/FLsavesnap.csd
index c4259a5..4865b4f 100644
--- a/examples/FLsavesnap.csd
+++ b/examples/FLsavesnap.csd
@@ -28,7 +28,7 @@ FLpanel "Snapshots", 530, 350, 40, 410, 3
gksliderD, gislidSM4 FLslider "Slider D", 0, 1, 0, 3, ivalSM4, 250, 20, 20, 140
itext1 FLbox "store", 1, 1, 14, 50, 25, 355, 15
itext2 FLbox "load", 1, 1, 14, 50, 25, 415, 15
- itext3 FLbox "G\nr\no\nu\np\n \n1", 1, 1, 14, 30, 145, 485, 15
+ itext3 FLbox "Group 1", 1, 1, 14, 30, 145, 485, 15
gksnap, ibuttn1 FLbutton "1", 1, 0, 11, 25, 25, 364, 45, 0, 3, 0, 3, 1
gksnap, ibuttn2 FLbutton "2", 1, 0, 11, 25, 25, 364, 75, 0, 3, 0, 3, 2
gksnap, ibuttn3 FLbutton "3", 1, 0, 11, 25, 25, 364, 105, 0, 3, 0, 3, 3
@@ -50,7 +50,7 @@ FLpanel "Snapshots", 530, 350, 40, 410, 3
gkknobD, gislidSM8 FLknob "Knob D", 0, 1, 0, 3, ivalSM8, 45, 205, 230
itext4 FLbox "store", 1, 1, 14, 50, 25, 355, 185
itext5 FLbox "load", 1, 1, 14, 50, 25, 415, 185
- itext6 FLbox "G\nr\no\nu\np\n \n2", 1, 1, 14, 30, 145, 485, 185
+ itext6 FLbox "Group 2", 1, 1, 14, 30, 145, 485, 185
gksnap, ibuttn1 FLbutton "5", 1, 0, 11, 25, 25, 364, 215, 0, 3, 0, 3, 5
gksnap, ibuttn2 FLbutton "6", 1, 0, 11, 25, 25, 364, 245, 0, 3, 0, 3, 6
gksnap, ibuttn3 FLbutton "7", 1, 0, 11, 25, 25, 364, 275, 0, 3, 0, 3, 7
diff --git a/examples/JackoInfo.csd b/examples/JackoInfo.csd
new file mode 100644
index 0000000..7f368d1
--- /dev/null
+++ b/examples/JackoInfo.csd
@@ -0,0 +1,24 @@
+<CsoundSynthesizer>
+<CsOptions>
+-n
+</CsOptions>
+<CsInstruments>
+
+sr = 48000
+ksmps = 128
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+JackoInit "default", "csound"
+JackoInfo
+
+endin
+</CsInstruments>
+<CsScore>
+
+ i 1 0 0
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/JackoInit.csd b/examples/JackoInit.csd
new file mode 100644
index 0000000..7f368d1
--- /dev/null
+++ b/examples/JackoInit.csd
@@ -0,0 +1,24 @@
+<CsoundSynthesizer>
+<CsOptions>
+-n
+</CsOptions>
+<CsInstruments>
+
+sr = 48000
+ksmps = 128
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+JackoInit "default", "csound"
+JackoInfo
+
+endin
+</CsInstruments>
+<CsScore>
+
+ i 1 0 0
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/Mixer.csd b/examples/Mixer.csd
new file mode 100644
index 0000000..2740382
--- /dev/null
+++ b/examples/Mixer.csd
@@ -0,0 +1,54 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+; Audio out Audio in
+-odac ; -iadc ;;;RT audio out
+; For Non-realtime ouput leave only the line below:
+; -o Mixer.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+katt expon 0.01, p3, 1 ;create an attack
+aout poscil .7, 440,1
+ MixerSetLevel 1, 3, katt ;impose attack on the gain level
+ MixerSend aout, 1, 3, 0 ;send to channel 0
+endin
+
+instr 2
+
+aout vco2 .5, 110 ;saw wave
+ MixerSetLevel 2, 3, .25 ;set level to .25 of vco2
+ MixerSend aout, 2, 3, 1 ;send to channel 1
+endin
+
+instr 3 ;mix instr.1 and 2 with reverb
+
+kgain1 MixerGetLevel 1,3 ;get level form buss 3
+kgain2 MixerGetLevel 2,3 ;get level form buss 3
+a1 MixerReceive 3,0 ;receive channel 0
+a2 MixerReceive 3,1 ;receive channel 1
+aout = a1*kgain1+a2*kgain2 ;mix them
+aoutL, aoutR reverbsc aout, aout, 0.85, 12000 ;add a nice reverb
+ outs aoutL, aoutR
+ MixerClear
+endin
+
+</CsInstruments>
+<CsScore>
+f1 0 4096 10 1
+
+i1 0 2
+i2 0 2
+i3 0 8 ;reverb stays on for 8 sec.
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/STKBandedWG.csd b/examples/STKBandedWG.csd
index 3de4a12..dd164a3 100755..100644
--- a/examples/STKBandedWG.csd
+++ b/examples/STKBandedWG.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKBandedWG.wav -W ;;; for file output any platform
@@ -11,25 +11,25 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
-ifrq = p4
-kblw line p5, p3, p6
-kenv line 1, p3, 0
+ifrq = p4
+kv1 line p5, p3, p6 ;pressure of bow
+kenv line 1, p3, 0
-asig STKBandedWG cpspch(ifrq), 1, 2, p5, 4, 100, 11, 0, 1, 0, 64, 100, 128, 120, 16, 2
-asig = asig * kenv ;envelope
- outs asig, asig
+asig STKBandedWG cpspch(ifrq), 1, 2, kv1, 4, 100, 11, 0, 1, 0, 64, 100, 128, 120, 16, 2
+asig = asig * kenv ;simple envelope
+ outs asig, asig
endin
</CsInstruments>
<CsScore>
i 1 0 10 5.00 100 0
-i 1 2 8 6.03 10 .
-i 1 5 5 7.05 50 127
+i 1 10 8 6.03 10 .
+i 1 20 5 7.05 50 127
e
</CsScore>
diff --git a/examples/STKBeeThree.csd b/examples/STKBeeThree.csd
index 24e143e..a8acc41 100755..100644
--- a/examples/STKBeeThree.csd
+++ b/examples/STKBeeThree.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKBeeThree.wav -W ;;; for file output any platform
@@ -11,16 +11,16 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
-kfdb = p6
-kop3 line p4, p3, p5
-kvol line 0, p3, 100
+kv1 = p6 ;feedback of operator 4
+kv2 line p4, p3, p5 ;gain of operator 3
+kv5 line 0, p3, 100
ipch = p7
-asig STKBeeThree cpspch(ipch), 1, 2, kfdb, 4, kop3, 11, 50, 1, 0, 128, kvol
+asig STKBeeThree cpspch(ipch), 1, 2, kv1, 4, kv2, 11, 50, 1, 0, 128, kv5
outs asig, asig
endin
@@ -28,7 +28,7 @@ endin
<CsScore>
i 1 0 2 20 100 127 8.00
-i 1 + 3 120 0 0 6.09
+i 1 + 8 120 0 0 6.09
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/STKBlowBotl.csd b/examples/STKBlowBotl.csd
index 17fbb16..c97ec7e 100755..100644
--- a/examples/STKBlowBotl.csd
+++ b/examples/STKBlowBotl.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKBlowBotl.wav -W ;;; for file output any platform
@@ -11,16 +11,16 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ipch = p4
-knoise line p5, p3, p6 ;noise
-kvol line 100, p3, 70 ;volume
+kv1 line p5, p3, p6 ;gain of noise
+kv4 line 100, p3, 70 ;volume
-asig STKBlowBotl cpspch(ipch), 1, 4, knoise, 11, 10, 1, 50, 128, kvol
-asig = asig * .7 ;too loud
+asig STKBlowBotl cpspch(ipch), 1, 4, kv1, 11, 10, 1, 50, 128, kv4
+asig = asig * .5 ;too loud
outs asig, asig
endin
@@ -28,7 +28,7 @@ endin
<CsScore>
i 1 0 2 9.00 20 100
-i 1 + 3 8.03 120 0
+i 1 + 5 8.03 120 0
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/STKBlowHole.csd b/examples/STKBlowHole.csd
index 14deb6d..9308e56 100755..100644
--- a/examples/STKBlowHole.csd
+++ b/examples/STKBlowHole.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKBlowHole.wav -W ;;; for file output any platform
@@ -11,15 +11,15 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
-ipch = p4
-kstiff = p7
-khole line p5, p3, p6
+ipch = p4
+kv1 = p7 ;stiffness of reed
+kv3 line p5, p3, p6 ;state of tonehole
-asig STKBlowHole cpspch(ipch), 1, 2, kstiff, 4, 100, 11, khole, 1, 10, 128, 100
+asig STKBlowHole cpspch(ipch), 1, 2, kv1, 4, 100, 11, kv3, 1, 10, 128, 100
outs asig, asig
endin
@@ -27,7 +27,7 @@ endin
<CsScore>
i 1 0 4 10.00 20 127 100
-i 1 + 3 6.09 120 0 10
+i 1 + 7 6.09 120 0 10
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/STKBowed.csd b/examples/STKBowed.csd
index 841b864..b078e58 100755..100644
--- a/examples/STKBowed.csd
+++ b/examples/STKBowed.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKBowed.wav -W ;;; for file output any platform
@@ -11,27 +11,27 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ipch = p4
-kpos = p7
-kpres line p5, p3, p6
-kvib line 0, p3, 7
+kv2 = p7 ;position on bow
+kv1 line p5, p3, p6 ;bow pressure
+kv4 line 0, p3, 7 ;depth of low-frequency oscillator
-asig STKBowed cpspch(ipch), 1, 2, kpres, 4, kpos, 11, 40, 1, kvib, 128, 100
-asig = asig*4 ;amplify
+asig STKBowed cpspch(ipch), 1, 2, kv1, 4, kv2, 11, 40, 1, kv4, 128, 100
+asig = asig*2 ;amplify
outs asig, asig
endin
</CsInstruments>
<CsScore>
-i 1 0 5 6.00 20 100 127
-i 1 + 3 7.00 120 0 0
-i 1 8 3 7.05 120 0 30
-i 1 8 4 7.03 50 0 0
+i 1 0 15 6.00 20 100 115
+i 1 17 3 7.00 120 0 0
+i 1 21 3 7.09 120 0 30
+i 1 21 4 7.03 50 0 0
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/STKBrass.csd b/examples/STKBrass.csd
index bed8292..4c2dad5 100755..100644
--- a/examples/STKBrass.csd
+++ b/examples/STKBrass.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKBrass.wav -W ;;; for file output any platform
@@ -11,15 +11,16 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
+
ifrq = p4
-kjet line p5, p3, p6
-ktrl line p7, p3, p8
+kv1 line p5, p3, p6 ;lip tension
+kv3 line p7, p3, p8 ;speed of low-frequency oscillator
-asig STKBrass cpspch(ifrq), 1, 2, kjet, 4, 100, 11, ktrl, 1, 10, 128, 50
-asig = asig * 3 ;amplify
+asig STKBrass cpspch(ifrq), 1, 2, kv1, 4, 100, 11, kv3, 1, 10, 128, 40
+asig = asig *3 ;amplify
outs asig, asig
endin
diff --git a/examples/STKClarinet.csd b/examples/STKClarinet.csd
index be483e0..94a9508 100755..100644
--- a/examples/STKClarinet.csd
+++ b/examples/STKClarinet.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKclarinet.wav -W ;;; for file output any platform
@@ -11,14 +11,14 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kpress = p5
-kstiff line p6, p3, p7
-asig STKClarinet cpspch(p4), 1, 2, kstiff, 4, 100, 11, 60, 1, 10, 128, kpress
+kv5 = p5 ;breath pressure
+kv1 line p6, p3, p7 ;reed stiffness
+asig STKClarinet cpspch(p4), 1, 2, kv1, 4, 100, 11, 60, 1, 10, 128, kv5
outs asig, asig
endin
diff --git a/examples/STKDrummer.csd b/examples/STKDrummer.csd
index 56b0a9c..ceb185f 100755..100644
--- a/examples/STKDrummer.csd
+++ b/examples/STKDrummer.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac -M0 ;;;RT audio out and midi in
+-odac -M0 ;;;realtime audio out and midi in
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKDrummer.wav -W ;;; for file output any platform
@@ -11,9 +11,9 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
-instr 1 ;STK Drummer - has no controllers but plays samples
+instr 1 ;STK Drummer - has no controllers but plays samples (11)
icps cpsmidi
iamp ampmidi 1
diff --git a/examples/STKFMVoices.csd b/examples/STKFMVoices.csd
index 77f8b35..b212ee0 100755..100644
--- a/examples/STKFMVoices.csd
+++ b/examples/STKFMVoices.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKFMVoices.wav -W ;;; for file output any platform
@@ -11,16 +11,16 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kjet line p5, p3, p6 ;vowel
-ktlt line p7, p3, p8 ;specral tilt
+kv1 line p5, p3, p6 ;vowel
+kv2 line p7, p3, p8 ;specral tilt
-asig STKFMVoices cpspch(ifrq), 1, 2, kjet, 4, ktlt, 11, 10, 1, 10, 128, 50
-asig = asig * 4 ;amplify
+asig STKFMVoices cpspch(ifrq), 1, 2, kv1, 4, kv2, 11, 10, 1, 10, 128, 50
+asig = asig * 4 ;amplify
outs asig, asig
endin
diff --git a/examples/STKFlute.csd b/examples/STKFlute.csd
index 50ec8f3..cad84d5 100755..100644
--- a/examples/STKFlute.csd
+++ b/examples/STKFlute.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKFlute.wav -W ;;; for file output any platform
@@ -11,22 +11,22 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kjet line p5, p3, p6 ;jet delay
-kvib line 0, p3, 100 ;vibrato depth
+kv1 line p5, p3, p6 ;jet delay
+kv4 line 0, p3, 100 ;vibrato depth
-asig STKFlute cpspch(ifrq), 1, 2, kjet, 4, 100, 11, 100, 1, kvib, 128, 100
+asig STKFlute cpspch(ifrq), 1, 2, kv1, 4, 100, 11, 100, 1, kv4, 128, 100
outs asig, asig
endin
</CsInstruments>
<CsScore>
-i 1 0 2 8.00 0 0
-i 1 3 3 9.00 20 120
+i 1 0 5 8.00 0 0
+i 1 7 3 9.00 20 120
e
</CsScore>
</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/STKHevyMetl.csd b/examples/STKHevyMetl.csd
index 3f2bf1b..26a3d62 100755..100644
--- a/examples/STKHevyMetl.csd
+++ b/examples/STKHevyMetl.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKHevyMetl.wav -W ;;; for file output any platform
@@ -11,15 +11,15 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kndx line p5, p3, p6 ;Total Modulator Index
-kfad line p7, p3, 0 ;Modulator Crossfade
+kv1 line p5, p3, p6 ;Total Modulator Index
+kv2 line p7, p3, 0 ;Modulator Crossfade
-asig STKHevyMetl cpspch(ifrq), 1, 2, kndx, 4, kfad, 11, 0, 1, 100, 128, 40
+asig STKHevyMetl cpspch(ifrq), 1, 2, kv1, 4, kv2, 11, 0, 1, 100, 128, 40
outs asig, asig
endin
diff --git a/examples/STKMandolin.csd b/examples/STKMandolin.csd
index fc96801..94d26a9 100755..100644
--- a/examples/STKMandolin.csd
+++ b/examples/STKMandolin.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKMandolin.wav -W ;;; for file output any platform
@@ -11,15 +11,15 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kbody line p5, p3, p6 ;body size
-ksus = p7 ;sustain
+kv1 line p5, p3, p6 ;body size
+kv3 = p7 ;sustain
-asig STKMandolin cpspch(ifrq), 1, 2, kbody, 4, 10, 11, ksus, 1, 100, 128, 100
+asig STKMandolin cpspch(ifrq), 1, 2, kv1, 4, 10, 11, kv3, 1, 100, 128, 100
outs asig, asig
endin
diff --git a/examples/STKModalBar.csd b/examples/STKModalBar.csd
index b33e72a..d35dcc8 100755..100644
--- a/examples/STKModalBar.csd
+++ b/examples/STKModalBar.csd
@@ -11,15 +11,15 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-khard = p5 ;stick hardness ;
+kv1 = p5 ;stick hardness ;
-asig STKModalBar cpspch(ifrq), 1, 2, khard, 4, 120, 11, 0, 1, 0, 8, 10, 16, 1
-asig = asig * 3 ;amplify
+asig STKModalBar cpspch(ifrq), 1, 2, kv1, 4, 120, 11, 0, 1, 0, 8, 10, 16, 1
+asig = asig * 3 ;amplify
outs asig, asig
endin
diff --git a/examples/STKMoog.csd b/examples/STKMoog.csd
index 013755f..49d7a29 100755..100644
--- a/examples/STKMoog.csd
+++ b/examples/STKMoog.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKMoog.wav -W ;;; for file output any platform
@@ -11,14 +11,14 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kfil line p5, p3, p6 ;filter Q
+kv1 line p5, p3, p6 ;filter Q
-asig STKMoog cpspch(ifrq), 1, 2,kfil, 4, 120, 11, 40, 1, 1, 128, 120
+asig STKMoog cpspch(ifrq), 1, 2,kv1, 4, 120, 11, 40, 1, 1, 128, 120
asig = asig * .3 ;too loud
outs asig, asig
endin
diff --git a/examples/STKPercFlut.csd b/examples/STKPercFlut.csd
index 2bf4b5a..9ea0c9e 100755..100644
--- a/examples/STKPercFlut.csd
+++ b/examples/STKPercFlut.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKPercFlut.wav -W ;;; for file output any platform
@@ -11,15 +11,15 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kndx line p5, p3, p6 ;Total Modulator Index
-kfad line p7, p3, 0 ;Modulator Crossfade
+kv1 line p5, p3, p6 ;Total Modulator Index
+kv2 line p7, p3, 0 ;Modulator Crossfade
-asig STKPercFlut cpspch(ifrq), 1, 2, kndx, 4, kfad, 11, 0, 1, 100, 128, 40
+asig STKPercFlut cpspch(ifrq), 1, 2, kv1, 4, kv2, 11, 0, 1, 100, 128, 40
outs asig, asig
endin
diff --git a/examples/STKPlucked.csd b/examples/STKPlucked.csd
index 2ba10c5..fe1e5d4 100755..100644
--- a/examples/STKPlucked.csd
+++ b/examples/STKPlucked.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKPlucked.wav -W ;;; for file output any platform
@@ -11,7 +11,7 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1 ;STKPlucked - has no controllers
diff --git a/examples/STKResonate.csd b/examples/STKResonate.csd
index f1d21e3..1b293c7 100755..100644
--- a/examples/STKResonate.csd
+++ b/examples/STKResonate.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKResonate.wav -W ;;; for file output any platform
@@ -11,15 +11,15 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
-instr 1 ; frequency of STKResonate has no effect on sound
+instr 1 ; frequency and amplitude of STKResonate have no effect
-kpol = p4 ;pole radii
-kfrq line 100, p3, 0 ;resonance freq + notch freq
-
-asig STKResonate 1, 1, 2, kfrq, 4, kpol, 1, 10, 11, kfrq, 128, 127
-asig = asig * .7 ;too loud
+kv2 = p4 ;pole radii
+kv1 line 100, p3, 0 ;resonance freq + notch freq
+kv3 = kv1
+asig STKResonate 1, 1, 2, kv1, 4, kv2, 1, 10, 11, kv3, 128, 100
+asig = asig * .3 ;too loud
outs asig, asig
endin
diff --git a/examples/STKRhodey.csd b/examples/STKRhodey.csd
index 0ca285e..51ae6bb 100755..100644
--- a/examples/STKRhodey.csd
+++ b/examples/STKRhodey.csd
@@ -1,34 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o STKWurley.wav -W ;;; for file output any platform
+; -o STKRhodey.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kndx line p5, p3, p6 ;(FM) Modulator Index One
-
-asig STKRhodey cpspch(p4), 1, 2, kndx, 4, 10, 11, 100, 1, 3, 128, 75
+kv1 line p5, p3, p6 ;(FM) Modulator Index One
+kv5 = p7 ;ADSR 2 and 4 target
+asig STKRhodey cpspch(p4), 1, 2, kv1, 4, 10, 11, 100, 1, 3, 128, kv5
outs asig, asig
endin
</CsInstruments>
<CsScore>
-i 1 0 .5 7.00 75 0 20
-i 1 + . 8.00 120 0 20
-i 1 + 1 6.00 50 120 20
-i 1 + 4 8.00 10 10 127
+i 1 0 .5 7.00 75 0 0
+i 1 + . 8.00 120 0 120
+i 1 + 1 6.00 50 120 50
+i 1 + 4 8.00 10 120 100
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/STKSaxofony.csd b/examples/STKSaxofony.csd
index ffa7b8f..79978e3 100755..100644
--- a/examples/STKSaxofony.csd
+++ b/examples/STKSaxofony.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKSaxofony.wav -W ;;; for file output any platform
@@ -11,16 +11,16 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifreq = p4
-kstiff = p5 ;reed stiffness
-kblw line p6, p3, p7 ;blow position
-kvib line 0, p3, 127 ;vibrato speed
+kv1 = p5 ;reed stiffness
+kv3 line p6, p3, p7 ;blow position
+kv6 line 0, p3, 127 ;depth of low-frequency oscillator
-asig STKSaxofony cpspch(p4), 1, 2, kstiff, 4, 100, 26, 70, 11, kblw, 1, kvib, 29, 100
+asig STKSaxofony cpspch(p4), 1, 2, kv1, 4, 100, 26, 70, 11, kv3, 1, kv6, 29, 100
asig = asig * .5 ;too loud
outs asig, asig
endin
diff --git a/examples/STKShakers.csd b/examples/STKShakers.csd
index a00dcf4..52fad2f 100755..100644
--- a/examples/STKShakers.csd
+++ b/examples/STKShakers.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKShakers.wav -W ;;; for file output any platform
@@ -11,14 +11,14 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
asig STKShakers cpspch(p4), 1, 2, 10, 4, 10, 11, 10, 1, 112, 128, 80, 1071, 5
-asig = asig ;amplify
+asig = asig *2 ;amplify
outs asig, asig
endin
diff --git a/examples/STKSimple.csd b/examples/STKSimple.csd
index 9d9e6dc..ab25fa9 100755..100644
--- a/examples/STKSimple.csd
+++ b/examples/STKSimple.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKSimple.wav -W ;;; for file output any platform
@@ -11,25 +11,25 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kfil line p5, p3, p6 ;Filter Pole Position
-knois line 20, p3, 90 ;Noise/Pitched Cross-Fade
+kv1 line p5, p3, p6 ;Filter Pole Position
+kv2 line 20, p3, 90 ;Noise/Pitched Cross-Fade
-asig STKSimple cpspch(p4), 1, 2, kfil, 4, knois, 11, 100, 128, 120
+asig STKSimple cpspch(p4), 1, 2, kv1, 4, kv2, 11, 10, 128, 120
outs asig, asig
endin
</CsInstruments>
<CsScore>
-i 1 0 .5 7.00 100 0 120
-i 1 + . 7.05 10 127 220
-i 1 + . 8.03 100 0 320
-i 1 + 5 5.00 10 10 127
+i 1 0 5 7.00 100 0
+i 1 + . 7.05 10 127
+i 1 + . 8.03 100 0
+i 1 + . 5.00 10 10
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/STKSitar.csd b/examples/STKSitar.csd
index d9784af..f6dcd10 100755..100644
--- a/examples/STKSitar.csd
+++ b/examples/STKSitar.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKSitar.wav -W ;;; for file output any platform
@@ -11,14 +11,14 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1 ;STKSitar - has no controllers
ifrq = p4
asig STKSitar cpspch(p4), 1
-asig = asig * 3 ;amplify
+asig = asig * 2 ;amplify
outs asig, asig
endin
@@ -27,7 +27,7 @@ endin
i 1 0 4 6.00
i 1 + 2 7.05
-i 1 + 4 5.05
+i 1 + 7 5.05
e
</CsScore>
</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/STKStifKarp.csd b/examples/STKStifKarp.csd
index cf71eaa..b486ec7 100755..100644
--- a/examples/STKStifKarp.csd
+++ b/examples/STKStifKarp.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKStifKarp.wav -W ;;; for file output any platform
@@ -11,15 +11,15 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kpos line p6, p3, p7 ;Pickup Position
-ksus = p5 ;String Sustain
+kv1 line p6, p3, p7 ;Pickup Position
+kv2 = p5 ;String Sustain
-asig STKStifKarp cpspch(p4), 1, 4, kpos, 11, ksus, 1, 10
+asig STKStifKarp cpspch(p4), 1, 4, kv1, 11, kv2, 1, 10
outs asig, asig
endin
diff --git a/examples/STKTubeBell.csd b/examples/STKTubeBell.csd
index 6ed4261..08202d2 100755..100644
--- a/examples/STKTubeBell.csd
+++ b/examples/STKTubeBell.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKTubeBell.wav -W ;;; for file output any platform
@@ -11,15 +11,15 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kfad line p6, p3, p7 ;Crossfade of Outputs
-kindx = p5 ;(FM) Modulator Index One
+kv2 line p6, p3, p7 ;Crossfade of Outputs
+kv1 = p5 ;(FM) Modulator Index One
-asig STKTubeBell cpspch(p4), 1, 2, kindx, 4, kfad, 11, 10, 1, 70, 128,50
+asig STKTubeBell cpspch(p4), 1, 2, kv1, 4, kv2, 11, 10, 1, 70, 128,50
outs asig, asig
endin
diff --git a/examples/STKVoicForm.csd b/examples/STKVoicForm.csd
index c99ba8d..3cda52f 100755..100644
--- a/examples/STKVoicForm.csd
+++ b/examples/STKVoicForm.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKVoicForm.wav -W ;;; for file output any platform
@@ -11,14 +11,14 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-ksel line p5, p3, p6 ;Vowel/Phoneme Selection
+kv2 line p5, p3, p6 ;Vowel/Phoneme Selection
-asig STKVoicForm cpspch(p4), 1, 2, 1, 4, ksel, 128, 100, 1, 10, 11, 100
+asig STKVoicForm cpspch(p4), 1, 2, 1, 4, kv2, 128, 100, 1, 10, 11, 100
asig = asig * .5 ;too loud
outs asig, asig
endin
diff --git a/examples/STKWhistle.csd b/examples/STKWhistle.csd
index f0e3a70..11b90b6 100755..100644
--- a/examples/STKWhistle.csd
+++ b/examples/STKWhistle.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKWhistle.wav -W ;;; for file output any platform
@@ -11,15 +11,15 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kblw line p5, p3, p6 ;Blowing Frequency Modulation
-kflp = p7 ;Fipple Modulation Frequency
+kv1 line p5, p3, p6 ;Blowing Frequency Modulation
+kv3 = p7 ;Fipple Modulation Frequency
-asig STKWhistle cpspch(p4), 1, 4, 20, 11, kflp, 1, 100, 2, kblw, 128, 127
+asig STKWhistle cpspch(p4), 1, 4, 20, 11, kv3, 1, 100, 2, kv1, 128, 127
asig = asig*.7 ;too loud
outs asig, asig
endin
diff --git a/examples/STKWurley.csd b/examples/STKWurley.csd
index a69e141..3b43653 100755..100644
--- a/examples/STKWurley.csd
+++ b/examples/STKWurley.csd
@@ -1,7 +1,7 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o STKWurley.wav -W ;;; for file output any platform
@@ -11,15 +11,15 @@
sr = 44100
ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
instr 1
ifrq = p4
-kndx line p5, p3, p6 ;(FM) Modulator Index One
-kspd = p7
+kv1 line p5, p3, p6 ;(FM) Modulator Index One
+kv3 = p7
-asig STKWurley cpspch(p4), 1, 2,kndx, 4, 10, 11, kspd, 1, 30, 128, 75
+asig STKWurley cpspch(p4), 1, 2,kv1, 4, 10, 11, kv3, 1, 30, 128, 75
outs asig, asig
endin
diff --git a/examples/a.csd b/examples/a.csd
new file mode 100644
index 0000000..43cc256
--- /dev/null
+++ b/examples/a.csd
@@ -0,0 +1,42 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o a.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+aenv expseg .01, p3*0.25, 1, p3*0.75, 0.01
+asig poscil3 .8*aenv, p4, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 16384 10 1 ;sine wave
+;two sections
+s
+a 0 0 6 ;advance score 6 seconds
+i 1 0 2 110 ;these first 2 notes
+i 1 3 2 220 ;will not sound
+i 1 6 2 440
+i 1 9 2 880
+s
+a 0 3 6 ;advance score 6 seconds, but do this after 3 seconds
+i 1 0 2 110 ;this will sound, because action time (p2) from a statement = 3
+i 1 3 2 220 ;so these 2 notes
+i 1 6 2 440 ;will not sound
+i 1 9 2 880 ;and this one will
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/adsynt2.csd b/examples/adsynt2.csd
index eb20f32..eb20f32 100755..100644
--- a/examples/adsynt2.csd
+++ b/examples/adsynt2.csd
diff --git a/examples/alpass.csd b/examples/alpass.csd
index 905b6f6..bc4fcbe 100644
--- a/examples/alpass.csd
+++ b/examples/alpass.csd
@@ -9,7 +9,7 @@
<CsInstruments>
sr = 44100
-ksmps = 32
+ksmps = 100
nchnls = 2
0dbfs = 1
@@ -17,8 +17,8 @@ gamix init 0
instr 1
-kcps expon p4, p3, p5
-asig vco2 0.6, kcps
+acps expon p4, p3, p5
+asig vco 0.6, acps, 1
outs asig, asig
gamix = gamix + asig
@@ -27,10 +27,11 @@ endin
instr 99
-krvt = 3.5
+arvt1 line 3.5*1.5, p3, 6
+arvt2 line 3.5, p3, 4
ilpt = 0.1
-aleft alpass gamix, krvt*1.5, ilpt
-aright alpass gamix, krvt, ilpt*2
+aleft alpass gamix, arvt1, ilpt
+aright alpass gamix, arvt2, ilpt*2
outs aleft, aright
gamix = 0 ; clear mixer
@@ -39,7 +40,7 @@ endin
</CsInstruments>
<CsScore>
-
+f1 0 4096 10 1
i 1 0 3 20 2000
i 99 0 8
diff --git a/examples/alwayson.csd b/examples/alwayson.csd
index dfc8240..dfc8240 100755..100644
--- a/examples/alwayson.csd
+++ b/examples/alwayson.csd
diff --git a/examples/array.csd b/examples/array.csd
new file mode 100644
index 0000000..8e01741
--- /dev/null
+++ b/examples/array.csd
@@ -0,0 +1,26 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ kS[] = array(1,7,5)
+ printk2 kS[0]
+ printk2 kS[1]
+ printk2 kS[2]
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 0
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/array_array_math.csd b/examples/array_array_math.csd
new file mode 100644
index 0000000..574d027
--- /dev/null
+++ b/examples/array_array_math.csd
@@ -0,0 +1,80 @@
+<CsoundSynthesizer>
+<CsOptions>
+-n -m128
+</CsOptions>
+<CsInstruments>
+
+ instr 1
+
+;create array and fill with numbers 1..10 resp .1..1
+kArr1[] fillarray 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
+kArr2[] fillarray 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
+
+;print contents
+ printf "%s", 1, "\nkArr1:\n"
+kndx = 0
+ until kndx == lenarray(kArr1) do
+ printf "kArr1[%d] = %f\n", kndx+1, kndx, kArr1[kndx]
+kndx += 1
+ od
+ printf "%s", 1, "\nkArr2:\n"
+kndx = 0
+ until kndx == lenarray(kArr2) do
+ printf "kArr2[%d] = %f\n", kndx+1, kndx, kArr2[kndx]
+kndx += 1
+ od
+
+;add arrays
+kArr3[] = kArr1 + kArr2
+
+;print content
+ printf "%s", 1, "\nkArr1 + kArr2:\n"
+kndx = 0
+ until kndx == lenarray(kArr3) do
+ printf "kArr3[%d] = %f\n", kndx+1, kndx, kArr3[kndx]
+kndx += 1
+ od
+
+;subtract arrays
+kArr4[] = kArr1 - kArr2
+
+;print content
+ printf "%s", 1, "\nkArr1 - kArr2:\n"
+kndx = 0
+ until kndx == lenarray(kArr4) do
+ printf "kArr4[%d] = %f\n", kndx+1, kndx, kArr4[kndx]
+kndx += 1
+ od
+
+;multiply arrays
+kArr5[] = kArr1 * kArr2
+
+;print content
+ printf "%s", 1, "\nkArr1 * kArr2:\n"
+kndx = 0
+ until kndx == lenarray(kArr5) do
+ printf "kArr5[%d] = %f\n", kndx+1, kndx, kArr5[kndx]
+kndx += 1
+ od
+
+;divide arrays
+kArr6[] = kArr1 / kArr2
+
+;print content
+ printf "%s", 1, "\nkArr1 / kArr2:\n"
+kndx = 0
+ until kndx == lenarray(kArr6) do
+ printf "kArr5[%d] = %f\n", kndx+1, kndx, kArr6[kndx]
+kndx += 1
+ od
+
+;turnoff
+ turnoff
+
+ endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 .1
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/array_scalar_math.csd b/examples/array_scalar_math.csd
new file mode 100644
index 0000000..73172cb
--- /dev/null
+++ b/examples/array_scalar_math.csd
@@ -0,0 +1,74 @@
+<CsoundSynthesizer>
+<CsOptions>
+-n -m128
+</CsOptions>
+<CsInstruments>
+
+
+ instr 1
+
+;create array and fill with numbers 1..10
+kArr1[] fillarray 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
+
+;print content
+ printf "%s", 1, "\nInitial content:\n"
+kndx = 0
+ until kndx == lenarray(kArr1) do
+ printf "kArr[%d] = %f\n", kndx+1, kndx, kArr1[kndx]
+kndx += 1
+ od
+
+;add 10
+kArr2[] = kArr1 + 10
+
+;print content
+ printf "%s", 1, "\nAfter adding 10:\n"
+kndx = 0
+ until kndx == lenarray(kArr2) do
+ printf "kArr[%d] = %f\n", kndx+1, kndx, kArr2[kndx]
+kndx += 1
+ od
+
+;subtract 5
+kArr3[] = kArr2 - 5
+
+;print content
+ printf "%s", 1, "\nAfter subtracting 5:\n"
+kndx = 0
+ until kndx == lenarray(kArr3) do
+ printf "kArr[%d] = %f\n", kndx+1, kndx, kArr3[kndx]
+kndx += 1
+ od
+
+;multiply by -1.5
+kArr4[] = kArr3 * -1.5
+
+;print content
+ printf "%s", 1, "\nAfter multiplying by -1.5:\n"
+kndx = 0
+ until kndx == lenarray(kArr4) do
+ printf "kArr[%d] = %f\n", kndx+1, kndx, kArr4[kndx]
+kndx += 1
+ od
+
+;divide by -3/2
+kArr5[] = kArr4 / -(3/2)
+
+;print content
+ printf "%s", 1, "\nAfter dividing by -3/2:\n"
+kndx = 0
+ until kndx == lenarray(kArr5) do
+ printf "kArr[%d] = %f\n", kndx+1, kndx, kArr5[kndx]
+kndx += 1
+ od
+
+;turnoff
+ turnoff
+ endin
+
+
+</CsInstruments>
+<CsScore>
+i 1 0 .1
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/array_udo.csd b/examples/array_udo.csd
new file mode 100644
index 0000000..35bc91b
--- /dev/null
+++ b/examples/array_udo.csd
@@ -0,0 +1,24 @@
+<CsoundSynthesizer>
+<CsOptions>
+-nm128
+</CsOptions>
+<CsInstruments>
+
+ opcode FirstEl, k, k[]
+ ;returns the first element of vector kArr
+kArr[] xin
+xout kArr[0]
+ endop
+
+ instr 1
+kArr[] fillarray 6, 3, 9, 5, 1
+kFirst FirstEl kArr
+printf "kFirst = %d\n", 1, kFirst
+turnoff
+ endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 .1
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/atonex.csd b/examples/atonex.csd
index f674f96..f674f96 100755..100644
--- a/examples/atonex.csd
+++ b/examples/atonex.csd
diff --git a/examples/b.csd b/examples/b.csd
new file mode 100644
index 0000000..bff1306
--- /dev/null
+++ b/examples/b.csd
@@ -0,0 +1,66 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o b.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+aenv expseg .01, p3*0.25, 1, p3*0.75, 0.01
+asig poscil3 .4*aenv, 220, 1
+ outs asig, asig
+
+endin
+
+instr 2
+
+asig pluck 0.7, p4, 220, 0, 1
+ outs asig, asig
+
+endin
+
+instr 3
+
+asig loscil .8, 1, 2, 1
+ outs asig, asig
+
+endin
+
+instr 4
+asig bamboo .8, 0.01
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1 ;sine wave
+f 2 0 0 1 "fox.wav" 0 0 0 ;sample
+
+i1 0 2
+i1 10 2
+
+b 5 ; set the clock "forward"
+i2 1 2 220 ; start time = 6
+i2 2 2 110 ; start time = 7
+
+b -1
+i3 3 2 ; start time = 2
+i3 5.5 1 ; start time = 4.5
+
+
+b 0 ; reset clock to normal
+i4 10 2 ; start time = 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/bbcuts.csd b/examples/bbcuts.csd
index 6decf0f..6decf0f 100755..100644
--- a/examples/bbcuts.csd
+++ b/examples/bbcuts.csd
diff --git a/examples/beats.ats b/examples/beats.ats
new file mode 100644
index 0000000..b56f84d
--- /dev/null
+++ b/examples/beats.ats
Binary files differ
diff --git a/examples/bformenc1.csd b/examples/bformenc1.csd
index 9f2ff76..8df29ad 100644
--- a/examples/bformenc1.csd
+++ b/examples/bformenc1.csd
@@ -8,35 +8,65 @@
</CsOptions>
<CsInstruments>
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 8
+0dbfs = 1
-instr 1
- ; generate pink noise
- anoise pinkish 1000
+instr 1 ;without arrays
+; generate pink noise
+anoise pinkish 1
- ; two full turns
- kalpha line 0, p3, 720
- kbeta = 0
+; two full turns
+kalpha line 0, p3, 720
+kbeta = 0
- ; generate B format
- aw, ax, ay, az, ar, as, at, au, av bformenc1 anoise, kalpha, kbeta
+; generate B format
+aw, ax, ay, az, ar, as, at, au, av bformenc1 anoise, kalpha, kbeta
- ; decode B format for 8 channel circle loudspeaker setup
- a1, a2, a3, a4, a5, a6, a7, a8 bformdec1 4, aw, ax, ay, az, ar, as, at, au, av
+; decode B format for 8 channel circle loudspeaker setup
+a1, a2, a3, a4, a5, a6, a7, a8 bformdec1 4, aw, ax, ay, az, ar, as, at, au, av
+
+; write audio out
+outo a1, a2, a3, a4, a5, a6, a7, a8
+endin
+
+instr 2 ;with arrays (csound6)
+;set file names for:
+S_bform = "bform_out.wav" ;b-format (2nd order) output
+S_sound = "sound_out.wav" ;sound output
+
+; generate pink noise
+anoise pinkish 1
- ; write audio out
- outo a1, a2, a3, a4, a5, a6, a7, a8
+; two full turns
+kalpha line 0, p3, 720
+kbeta = 0
+
+;create array for B-format 2nd order (9 chnls)
+aBform[] init 9
+
+; generate B-format
+aBform bformenc1 anoise, kalpha, kbeta
+
+;write out b-format
+fout "fout.wav", 18, aBform
+
+;create array for audio output (8 channels)
+aAudio[] init 8
+
+;decode B format for 8 channel circle loudspeaker setup
+aAudio bformdec1 4, aBform
+
+; write audio out
+fout S_sound, 18, aAudio
endin
+
</CsInstruments>
<CsScore>
-
-; Play Instrument #1 for 20 seconds.
-i 1 0 20
+i 1 0 8
+i 2 8 8
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/binit.csd b/examples/binit.csd
index 83220f4..83220f4 100755..100644
--- a/examples/binit.csd
+++ b/examples/binit.csd
diff --git a/examples/bitwise.csd b/examples/bitwise.csd
index dfbc833..5f9aa3c 100644
--- a/examples/bitwise.csd
+++ b/examples/bitwise.csd
@@ -43,7 +43,7 @@ i 1 + . 1 3
i 1 + . 2 4
i 1 + . 3 10
-i 2 2 . 12
+i 2 2 0.1 12
i 2 + . 9
i 2 + . 15
i 2 + . 49
diff --git a/examples/butterbr.csd b/examples/butterbr.csd
index a9cf6c5..d652aaa 100644
--- a/examples/butterbr.csd
+++ b/examples/butterbr.csd
@@ -23,7 +23,7 @@ endin
instr 2 ; filtered noise
asig rand 0.7
-abr butterbr asig, 3000, 2000 ;cutting 2000 to 5000 Hz
+abr butterbr asig, 3000, 2000 ;center frequency = 3000, bandwidth = +/- (2000)/2, so 2000-4000
outs abr, abr
endin
diff --git a/examples/cauchyi.csd b/examples/cauchyi.csd
new file mode 100644
index 0000000..a7e3aee
--- /dev/null
+++ b/examples/cauchyi.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o exprand.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+klambda cauchyi 100, 1, 3
+ printk2 klambda ; look
+aout oscili 0.8, 440+klambda, 1 ; & listen
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+; sine wave
+f 1 0 16384 10 1
+
+i 1 0 4
+e
+
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/ceil.csd b/examples/ceil.csd
index 140b6b1..140b6b1 100755..100644
--- a/examples/ceil.csd
+++ b/examples/ceil.csd
diff --git a/examples/cell.csd b/examples/cell.csd
new file mode 100644
index 0000000..f994887
--- /dev/null
+++ b/examples/cell.csd
@@ -0,0 +1,75 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+;-odac -iadc ;;;RT audio I/O
+; For Non-realtime ouput leave only the line below:
+; -o cell.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+; cell.csd by Gleb Rogozinsky
+
+sr = 44100
+kr = 4410
+ksmps = 10
+nchnls = 1
+0dbfs = 1
+
+; Cellular automaton-driven synthesis in spectral domain
+instr 1
+
+ iatt = p4 ; envelope attack time
+ isus = p5 ; envelope sustain time
+ irel = p6 ; envelope release time
+ ivol = p7 ; overall volume
+
+ ; create some white noise
+ asig rand 0.8
+
+ ; spectral analysis of asig
+ fsig pvsanal asig, 2048, 1024, 2048, 0 ; get a vector of magnitudes
+
+ ; calculate cellular automaton state
+ kfreq line 50, 5, 1 ; variable CA triggering frequency
+ ktrig metro kfreq ; trigger the CA to update cells
+ cell ktrig, 0, 3, 1, 2, 2048 ; cells are written into ftable 3
+
+
+ ; use current row of cells in spectral domain
+ fmas pvstencil fsig, 0, 1, 3 ; apply spectral mask
+ aout pvsynth fmas ; reconstruct time signal
+
+ ; apply envelope and out signal
+ kenv expseg .001, iatt, 1, isus, 1, irel, .001
+ out aout*kenv*ivol
+endin
+
+</CsInstruments>
+<CsScore>
+
+; This example uses one-dimensional cellular automaton
+; to produce structures in spectral domain
+
+; We have to prepare initial row of cells.
+; One alive cell is enough to produce a simple fractal,
+; so two alivee cells will make structure more sophisticated
+f1 0 2048 7 0 150 0 0 1 1 1 0 0 45 0 0 1 1 1 0 0
+
+; The CA rule is used as follows:
+; the states (values) of each cell are summed with their neighboring cells.
+; Each sum is used as an index to read a next state of cell
+; from the rule table.
+; Let us try rule # 129 (LSB binary 1 0 0 0 0 0 0 1).
+; This rule will produce a fractal structure for single active cell
+; For more rules see http://mathworld.wolfram.com/ElementaryCellularAutomaton.html
+f2 0 8 -2 1 0 0 0 0 0 0 1
+; Try some different rules i.E. 254 (0 1 1 1 1 1 1 1) or 169 (1 0 0 1 0 1 0 1)
+
+; Prepare the output table of ielements size
+f3 0 2048 10 0
+
+; Time to make it sound!
+i1 0 13 0.3 7 3 1
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/centroid.csd b/examples/centroid.csd
new file mode 100644
index 0000000..c0fc1b0
--- /dev/null
+++ b/examples/centroid.csd
@@ -0,0 +1,38 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o centroid.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 16384, 10, 1
+
+instr 1
+
+ktrig init 1 ;calculate centroid
+a1 oscil3 0.5, p4, giSine ;of the sine wave
+k1 centroid a1, ktrig, 16384
+asig oscil3 0.5, k1, giSine
+ printk2 k1 ;print & compare:
+ outs a1, asig ;left = original, right = centroid signal
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 2 20
+i1 + 2 200
+i1 + 2 2000
+e
+
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/chanctrl.csd b/examples/chanctrl.csd
index c46b5b2..c46b5b2 100755..100644
--- a/examples/chanctrl.csd
+++ b/examples/chanctrl.csd
diff --git a/examples/chnclear.csd b/examples/chnclear.csd
new file mode 100644
index 0000000..3332624
--- /dev/null
+++ b/examples/chnclear.csd
@@ -0,0 +1,83 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o chnclear.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+;Example by Joachim Heintz
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+ instr 1; send i-values
+ chnset 1, "sio"
+ chnset -1, "non"
+ endin
+
+ instr 2; send k-values
+kfreq randomi 100, 300, 1
+ chnset kfreq, "cntrfreq"
+kbw = kfreq/10
+ chnset kbw, "bandw"
+ endin
+
+ instr 3; send a-values
+anois rand .1
+ chnset anois, "noise"
+ loop:
+idur random .3, 1.5
+ timout 0, idur, do
+ reinit loop
+ do:
+ifreq random 400, 1200
+iamp random .1, .3
+asig oscils iamp, ifreq, 0
+aenv transeg 1, idur, -10, 0
+asine = asig * aenv
+ chnset asine, "sine"
+ endin
+
+ instr 11; receive some chn values and send again
+ival1 chnget "sio"
+ival2 chnget "non"
+ print ival1, ival2
+kcntfreq chnget "cntrfreq"
+kbandw chnget "bandw"
+anoise chnget "noise"
+afilt reson anoise, kcntfreq, kbandw
+afilt balance afilt, anoise
+ chnset afilt, "filtered"
+ endin
+
+ instr 12; mix the two audio signals
+amix1 chnget "sine"
+amix2 chnget "filtered"
+ chnmix amix1, "mix"
+ chnmix amix2, "mix"
+ endin
+
+ instr 20; receive and reverb
+amix chnget "mix"
+aL, aR freeverb amix, amix, .8, .5
+ outs aL, aR
+ endin
+
+ instr 100; clear
+ chnclear "mix"
+ endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 20
+i 2 0 20
+i 3 0 20
+i 11 0 20
+i 12 0 20
+i 20 0 20
+i 100 0 20
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/chnget.csd b/examples/chnget.csd
new file mode 100644
index 0000000..ccfef06
--- /dev/null
+++ b/examples/chnget.csd
@@ -0,0 +1,83 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o chnget.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+;Example by Joachim Heintz
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+ instr 1; send i-values
+ chnset 1, "sio"
+ chnset -1, "non"
+ endin
+
+ instr 2; send k-values
+kfreq randomi 100, 300, 1
+ chnset kfreq, "cntrfreq"
+kbw = kfreq/10
+ chnset kbw, "bandw"
+ endin
+
+ instr 3; send a-values
+anois rand .1
+ chnset anois, "noise"
+ loop:
+idur random .3, 1.5
+ timout 0, idur, do
+ reinit loop
+ do:
+ifreq random 400, 1200
+iamp random .1, .3
+asig oscils iamp, ifreq, 0
+aenv transeg 1, idur, -10, 0
+asine = asig * aenv
+ chnset asine, "sine"
+ endin
+
+ instr 11; receive some chn values and send again
+ival1 chnget "sio"
+ival2 chnget "non"
+ print ival1, ival2
+kcntfreq chnget "cntrfreq"
+kbandw chnget "bandw"
+anoise chnget "noise"
+afilt reson anoise, kcntfreq, kbandw
+afilt balance afilt, anoise
+ chnset afilt, "filtered"
+ endin
+
+ instr 12; mix the two audio signals
+amix1 chnget "sine"
+amix2 chnget "filtered"
+ chnmix amix1, "mix"
+ chnmix amix2, "mix"
+ endin
+
+ instr 20; receive and reverb
+amix chnget "mix"
+aL, aR freeverb amix, amix, .8, .5
+ outs aL, aR
+ endin
+
+ instr 100; clear
+ chnclear "mix"
+ endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 20
+i 2 0 20
+i 3 0 20
+i 11 0 20
+i 12 0 20
+i 20 0 20
+i 100 0 20
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/chnmix.csd b/examples/chnmix.csd
new file mode 100644
index 0000000..44833fb
--- /dev/null
+++ b/examples/chnmix.csd
@@ -0,0 +1,83 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o chnmix.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+;Example by Joachim Heintz
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+ instr 1; send i-values
+ chnset 1, "sio"
+ chnset -1, "non"
+ endin
+
+ instr 2; send k-values
+kfreq randomi 100, 300, 1
+ chnset kfreq, "cntrfreq"
+kbw = kfreq/10
+ chnset kbw, "bandw"
+ endin
+
+ instr 3; send a-values
+anois rand .1
+ chnset anois, "noise"
+ loop:
+idur random .3, 1.5
+ timout 0, idur, do
+ reinit loop
+ do:
+ifreq random 400, 1200
+iamp random .1, .3
+asig oscils iamp, ifreq, 0
+aenv transeg 1, idur, -10, 0
+asine = asig * aenv
+ chnset asine, "sine"
+ endin
+
+ instr 11; receive some chn values and send again
+ival1 chnget "sio"
+ival2 chnget "non"
+ print ival1, ival2
+kcntfreq chnget "cntrfreq"
+kbandw chnget "bandw"
+anoise chnget "noise"
+afilt reson anoise, kcntfreq, kbandw
+afilt balance afilt, anoise
+ chnset afilt, "filtered"
+ endin
+
+ instr 12; mix the two audio signals
+amix1 chnget "sine"
+amix2 chnget "filtered"
+ chnmix amix1, "mix"
+ chnmix amix2, "mix"
+ endin
+
+ instr 20; receive and reverb
+amix chnget "mix"
+aL, aR freeverb amix, amix, .8, .5
+ outs aL, aR
+ endin
+
+ instr 100; clear
+ chnclear "mix"
+ endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 20
+i 2 0 20
+i 3 0 20
+i 11 0 20
+i 12 0 20
+i 20 0 20
+i 100 0 20
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/chnset.csd b/examples/chnset.csd
new file mode 100644
index 0000000..bb388d0
--- /dev/null
+++ b/examples/chnset.csd
@@ -0,0 +1,83 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o chnset.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+;Example by Joachim Heintz
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+ instr 1; send i-values
+ chnset 1, "sio"
+ chnset -1, "non"
+ endin
+
+ instr 2; send k-values
+kfreq randomi 100, 300, 1
+ chnset kfreq, "cntrfreq"
+kbw = kfreq/10
+ chnset kbw, "bandw"
+ endin
+
+ instr 3; send a-values
+anois rand .1
+ chnset anois, "noise"
+ loop:
+idur random .3, 1.5
+ timout 0, idur, do
+ reinit loop
+ do:
+ifreq random 400, 1200
+iamp random .1, .3
+asig oscils iamp, ifreq, 0
+aenv transeg 1, idur, -10, 0
+asine = asig * aenv
+ chnset asine, "sine"
+ endin
+
+ instr 11; receive some chn values and send again
+ival1 chnget "sio"
+ival2 chnget "non"
+ print ival1, ival2
+kcntfreq chnget "cntrfreq"
+kbandw chnget "bandw"
+anoise chnget "noise"
+afilt reson anoise, kcntfreq, kbandw
+afilt balance afilt, anoise
+ chnset afilt, "filtered"
+ endin
+
+ instr 12; mix the two audio signals
+amix1 chnget "sine"
+amix2 chnget "filtered"
+ chnmix amix1, "mix"
+ chnmix amix2, "mix"
+ endin
+
+ instr 20; receive and reverb
+amix chnget "mix"
+aL, aR freeverb amix, amix, .8, .5
+ outs aL, aR
+ endin
+
+ instr 100; clear
+ chnclear "mix"
+ endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 20
+i 2 0 20
+i 3 0 20
+i 11 0 20
+i 12 0 20
+i 20 0 20
+i 100 0 20
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/clarinet.sdif b/examples/clarinet.sdif
index 173cee0..173cee0 100755..100644
--- a/examples/clarinet.sdif
+++ b/examples/clarinet.sdif
Binary files differ
diff --git a/examples/clear.csd b/examples/clear.csd
index 7e6a547..62815d2 100644
--- a/examples/clear.csd
+++ b/examples/clear.csd
@@ -1,16 +1,17 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
--odac ;;;RT audio out
+-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o clear.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 32
-nchnls = 2
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
gaReverb init 0
diff --git a/examples/combinv.csd b/examples/combinv.csd
new file mode 100644
index 0000000..71143f1
--- /dev/null
+++ b/examples/combinv.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;RT audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o comb.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kcps expon p5, p3, p4
+asig oscil3 0.3, kcps, 1
+krvt = 3.5
+ilpt = 0.1
+aleft combinv asig, krvt, ilpt
+ outs aleft, asig
+
+endin
+
+</CsInstruments>
+<CsScore>
+f1 0 4096 10 1
+i 1 0 3 20 2000
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/compileorc.csd b/examples/compileorc.csd
new file mode 100644
index 0000000..e39f354
--- /dev/null
+++ b/examples/compileorc.csd
@@ -0,0 +1,24 @@
+<CsoundSynthesizer>
+<CsOptions>
+-o dac -d
+</CsOptions>
+<CsInstruments>
+sr = 44100
+nchnls = 1
+ksmps = 32
+0dbfs = 1
+
+instr 1
+ires compileorc "does_not_exist.orc"
+print ires ; -1 as could not compile
+ires compileorc "my.orc"
+print ires ; 0 as compiled successfully
+event_i "i", 2, 0, 3, .2, 465 ;send event
+endin
+
+</CsInstruments>
+<CsScore>
+i1 0 1
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/compilestr.csd b/examples/compilestr.csd
new file mode 100644
index 0000000..5291632
--- /dev/null
+++ b/examples/compilestr.csd
@@ -0,0 +1,42 @@
+<CsoundSynthesizer>
+<CsOptions>
+-o dac -d
+</CsOptions>
+<CsInstruments>
+sr = 44100
+nchnls = 1
+ksmps = 32
+0dbfs = 1
+
+instr 1
+
+ ;will fail because of wrong code
+ires compilestr {{
+instr 2
+a1 oscilb p4, p5, 0
+out a1
+endin
+}}
+print ires ; returns -1 because not successfull
+
+ ;will compile ...
+ires compilestr {{
+instr 2
+a1 oscils p4, p5, 0
+out a1
+endin
+}}
+print ires ; ... and returns 0
+
+ ;call the new instrument
+ ;(note that the overall performance is extended)
+scoreline_i "i 2 0 3 .2 415"
+
+endin
+
+</CsInstruments>
+<CsScore>
+i1 0 1
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/compress.csd b/examples/compress.csd
index 1e52fb2..1e52fb2 100755..100644
--- a/examples/compress.csd
+++ b/examples/compress.csd
diff --git a/examples/connect.csd b/examples/connect.csd
index dd3fd08..dd3fd08 100755..100644
--- a/examples/connect.csd
+++ b/examples/connect.csd
diff --git a/examples/copya2ftab.csd b/examples/copya2ftab.csd
new file mode 100644
index 0000000..53a4d95
--- /dev/null
+++ b/examples/copya2ftab.csd
@@ -0,0 +1,62 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+;an 'empty' function table with 10 points
+giTable ftgen 0, 0, -10, 2, 0
+
+
+ instr 1
+
+;print inital values of giTable
+ puts "\nInitial table content:", 1
+indx = 0
+ until indx == ftlen(giTable) do
+iVal table indx, giTable
+ printf_i "Table index %d = %f\n", 1, indx, iVal
+indx += 1
+ od
+
+;create array
+kArr[] init 10
+
+;fill in values
+kArr genarray 1, 10
+
+;print array values
+ printf "%s", 1, "\nArray content:\n"
+kndx = 0
+ until kndx == lenarray(kArr) do
+ printf "kArr[%d] = %f\n", kndx+1, kndx, kArr[kndx]
+kndx += 1
+ od
+
+;copy array values to table
+ copya2ftab kArr, giTable
+
+;print modified values of giTable
+ printf "%s", 1, "\nModified table content after copya2ftab:\n"
+kndx = 0
+ until kndx == ftlen(giTable) do
+kVal table kndx, giTable
+ printf "Table index %d = %f\n", kndx+1, kndx, kVal
+kndx += 1
+ od
+
+;turn instrument off
+ turnoff
+ endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 0.1
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/copyf2array.csd b/examples/copyf2array.csd
new file mode 100644
index 0000000..3fb779a
--- /dev/null
+++ b/examples/copyf2array.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+;8 points sine wave function table
+giSine ftgen 0, 0, 8, 10, 1
+
+
+ instr 1
+;create array
+kArr[] init 8
+
+;copy table values in it
+ copyf2array kArr, giSine
+
+;print values
+kndx = 0
+ until kndx == lenarray(kArr) do
+ printf "kArr[%d] = %f\n", kndx+1, kndx, kArr[kndx]
+kndx += 1
+ od
+
+;turn instrument off
+ turnoff
+ endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 0.1
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/cosseg.csd b/examples/cosseg.csd
new file mode 100644
index 0000000..cfa60c6
--- /dev/null
+++ b/examples/cosseg.csd
@@ -0,0 +1,56 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o linseg.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+kcps = cpspch(p4)
+kenv cosseg 0, 0.25, 1, 0.75, 0 ; together = 1 sec
+asig poscil kenv, kcps, giSine
+ outs asig, asig
+
+endin
+
+instr 2 ; scaling to duration
+
+kcps = cpspch(p4)
+kenv cosseg 0, p3*0.25, 1, p3*0.75, 0
+asig poscil kenv, kcps, giSine
+ outs asig, asig
+
+endin
+
+instr 3 ; with negative value
+
+kcps = cpspch(p4)
+aenv cosseg 0, 0.1, 1, 0.5, -0.9, 0.4, 0
+asig poscil aenv, kcps, giSine
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 1 7.00 ; = 1 sec, p3 fits exactly
+i 1 2 2 7.00 ; = 2 sec, p3 truncated at 1 sec
+
+i 2 4 1 7.00 ; scales to duration
+i 2 6 2 7.00 ; of p3
+
+i 3 9 2 7.00
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/cossegb.csd b/examples/cossegb.csd
new file mode 100644
index 0000000..dc7bb07
--- /dev/null
+++ b/examples/cossegb.csd
@@ -0,0 +1,47 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o linseg.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+kcps = cpspch(p4)
+kenv cossegb 0, 0.25, 1, 1, 0
+asig poscil kenv, kcps, giSine
+ outs asig, asig
+
+endin
+
+instr 2 ; scaling to duration
+
+kcps = cpspch(p4)
+kenv cossegb 0, p3*0.25, 1, p3, 0
+asig poscil kenv, kcps, giSine
+ outs asig, asig
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+i 1 0 1 7.00 ; = 1 sec, p3 fits exactly
+i 1 2 2 7.00 ; = 2 sec, p3 truncated at 1 sec
+
+i 2 4 1 7.00 ; scales to duration
+i 2 6 2 7.00 ; of p3
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/cossegr.csd b/examples/cossegr.csd
new file mode 100644
index 0000000..cd22326
--- /dev/null
+++ b/examples/cossegr.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o linsegr.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+
+icps cpsmidi
+iamp ampmidi .3
+
+kenv cossegr 1, .05, 0.5, 1, 0
+asig pluck kenv, icps, 200, 1, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 4096 10 1 ;sine wave
+
+f0 30 ;runs 30 seconds
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/cpumeter.csd b/examples/cpumeter.csd
new file mode 100644
index 0000000..969b21e
--- /dev/null
+++ b/examples/cpumeter.csd
@@ -0,0 +1,42 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o cpumeter.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 1
+0dbfs = 1
+
+
+instr 1 ;cpu metering; stop when too large
+k0 cpumeter 0.1
+ printk2 k0
+ if k0>70 then
+ event "i", 3, 0.1, 1
+ endif
+endin
+
+instr 2
+ event_i "i", 2, 1, 1000
+ asig oscil 0.2, 440, 1
+ out asig
+endin
+
+instr 3
+ exitnow
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 32768 10 1 ; sine wave
+
+i 1 0 1000
+i 2 0 1000
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/crossfm.csd b/examples/crossfm.csd
index fd99003..fd99003 100755..100644
--- a/examples/crossfm.csd
+++ b/examples/crossfm.csd
diff --git a/examples/csbeats.csd b/examples/csbeats.csd
new file mode 100644
index 0000000..13bad4f
--- /dev/null
+++ b/examples/csbeats.csd
@@ -0,0 +1,111 @@
+<CsoundSynthesizer>
+<CsOptions>
+</CsOptions>
+
+<CsInstruments>
+sr = 44100
+nchnls = 2
+
+gi1 ftgen 1, 0, 4096, 10, 1
+gi2 ftgen 2, 0, 4096, 7, -1, 4096, 1 ; sawtooth
+gi3 ftgen 3, 0, 4096, 7, 0, 1024, 1, 2048, -1, 1024, 0 ;triangle
+
+instr 101,102,103
+ iamp = ampdbfs(p5)
+ a1 oscil iamp, p4, p1-100
+ kenv expseg 1, p3, .01
+ a1 = a1 * kenv
+ outs a1, a1
+endin
+
+</CsInstruments>
+<CsScore bin="csbeats">
+; by Brian Baughn 3-14-05
+; bbaughn@berklee.net
+
+beats = 100
+permeasure = 4
+
+i101 m1 b1 q mp D3
+i101 F3
+i101 D3
+
+i101 m2 b1 D3
+i101 b3 D3
+
+i101 m3 b1 D3
+i101 F3
+i101 D3
+
+i101 m4 b1 D3
+i101 b3 D3
+
+i101 m5 b1 D3
+i101 b4 G5
+
+i101 m6 b1 E5
+i101 b2 F5
+i101 b3 e Eb5
+i101 b3.5 e
+i101 b4 q
+
+i101 m7 b1 e D5
+i101
+i101 q
+i101 e Db5
+i101
+i101 q
+
+i101 m8 b1 q D5
+i101 E5
+i101 D5
+
+i102 m1 b2 q D4
+i102 b4 E4
+i102 b4 Bb3
+
+i102 m2 b2 F4
+i102 b2 B3
+i102 b4 C#4
+i102 b4 Bb3
+
+i102 m3 b2 q D4
+i102 b4 E4
+i102 b4 Bb3
+
+i102 m4 b2 F4
+i102 b2 B3
+i102 b4 C#4
+i102 b4 Bb3
+
+i103 m5 b2 e F6
+i103 b2 e A5
+i103 b2.5 e D6
+i103 b3 e F6
+i103 b3 e A5
+i103 b4 e E6
+
+i103 m6 b1 q C#6
+i103 q D6
+i103 e C6
+i103
+i103 q
+
+i103 m7 b1 e B5
+i103
+i103 q
+i103 e Bb5
+i103
+i103 q
+
+i103 m8 b1 e F5
+i103 b1 e A5
+i103 b1.5 e D6
+i103 b2 e Bb5
+i103 b2.5 e D6
+i103 b3 q F5
+i103 b3 A5
+end
+</CsScore>
+
+</CsoundSynthesizer>
diff --git a/examples/ctrl7.csd b/examples/ctrl7.csd
index 0da96b8..0da96b8 100755..100644
--- a/examples/ctrl7.csd
+++ b/examples/ctrl7.csd
diff --git a/examples/cuserrnd.csd b/examples/cuserrnd.csd
new file mode 100644
index 0000000..e806ef7
--- /dev/null
+++ b/examples/cuserrnd.csd
@@ -0,0 +1,42 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o cuserrnd.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; every run time same values
+
+kuser cuserrnd 0, 100, 1
+ printk .2, kuser
+asig poscil .5, 220+kuser, 3
+ outs asig, asig
+endin
+
+instr 2 ; every run time different values
+
+ seed 0
+kuser cuserrnd 0, 100, 1
+ printk .2, kuser
+asig poscil .5, 220+kuser, 3
+ outs asig, asig
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16 -7 1 4 0 8 0 4 1 ;distrubution using GEN07
+f 2 0 16384 40 1 ;GEN40 is to be used with cuserrnd
+f 3 0 8192 10 1 ;sine
+
+i 1 0 2
+i 2 3 2
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/dcblock2.csd b/examples/dcblock2.csd
index 71a69f3..71a69f3 100755..100644
--- a/examples/dcblock2.csd
+++ b/examples/dcblock2.csd
diff --git a/examples/deltap.csd b/examples/deltap.csd
index 4ea29f6..4ea29f6 100755..100644
--- a/examples/deltap.csd
+++ b/examples/deltap.csd
diff --git a/examples/deltap3.csd b/examples/deltap3.csd
index 4b24c49..4b24c49 100755..100644
--- a/examples/deltap3.csd
+++ b/examples/deltap3.csd
diff --git a/examples/deltapi.csd b/examples/deltapi.csd
index 05125b7..05125b7 100755..100644
--- a/examples/deltapi.csd
+++ b/examples/deltapi.csd
diff --git a/examples/deltapx.csd b/examples/deltapx.csd
index 7dcde93..37b863a 100644
--- a/examples/deltapx.csd
+++ b/examples/deltapx.csd
@@ -19,10 +19,10 @@ a1 phasor 300
a1 = a1 - 0.5
a_ delayr 1
adel phasor 4
-adel = sin (2 * 3.14159265 * adel) * 0.01 + 0.2
+adel = sin(2 * 3.14159265 * adel) * 0.01 + 0.2
deltapxw a1, adel, 32
adel phasor 2
-adel = sin (2 * 3.14159265 * adel) * 0.01 + 0.2
+adel = sin(2 * 3.14159265 * adel) * 0.01 + 0.2
deltapxw a1, adel, 32
adel = 0.3
a2 deltapx adel, 32
diff --git a/examples/deltapxw.csd b/examples/deltapxw.csd
index c529cbc..3395aab 100644
--- a/examples/deltapxw.csd
+++ b/examples/deltapxw.csd
@@ -19,10 +19,10 @@ a1 phasor 300
a1 = a1 - 0.5
a_ delayr 1
adel phasor 4
-adel = sin (2 * 3.14159265 * adel) * 0.01 + 0.2
+adel = sin(2 * 3.14159265 * adel) * 0.01 + 0.2
deltapxw a1, adel, 32
adel phasor 2
-adel = sin (2 * 3.14159265 * adel) * 0.01 + 0.2
+adel = sin(2 * 3.14159265 * adel) * 0.01 + 0.2
deltapxw a1, adel, 32
adel = 0.3
a2 deltapx adel, 32
diff --git a/examples/distort.csd b/examples/distort.csd
index 56f0118..56f0118 100755..100644
--- a/examples/distort.csd
+++ b/examples/distort.csd
diff --git a/examples/divides.csd b/examples/divides.csd
index b199bb6..bbb3f32 100644
--- a/examples/divides.csd
+++ b/examples/divides.csd
@@ -1,33 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o divides.wav -W ;;; for file output any platform
+; -o /.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- i1 = 24 / 8
- print i1
-endin
+idiv = 1/p3 * p4
+ktrm oscil 1, idiv, 1 ;use oscil as an envelope
+printf "retrigger rate per note duration = %f\n",1, idiv
+kndx line 5, p3, 1 ;vary index of FM
+asig foscil ktrm, 200, 1, 1.4, kndx, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 1 0 4096 10 1 ;sine wave
-; Play Instrument #1 for one second.
-i 1 0 1
-e
-
+i 1 0 3 10
+i 1 4 3 15
+i 1 8 3 2
+e
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/dripwater.csd b/examples/dripwater.csd
index 1ac944a..a1f2bf8 100644
--- a/examples/dripwater.csd
+++ b/examples/dripwater.csd
@@ -1,32 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o dripwater.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-instr 01 ;example of a water drip
-a1 line 5, p3, 5 ;preset an amplitude boost
-a2 dripwater p4, 0.01, 0, .9 ;dripwater needs a little amplitude help at these values
-a3 product a1, a2 ;increase amplitude
- out a3
- endin
+instr 1
+imaxshake = p4
+ifreq = p5
+ifreq1 = p6
+ifreq2 = p7
+;low amplitude
+adrp dripwater .1, 0.09, 10, .9, imaxshake, ifreq, ifreq1, ifreq2
+asig clip adrp, 2, 0.9 ; avoid drips that drip too loud
+ outs asig, asig
+
+endin
</CsInstruments>
<CsScore>
-i1 0 1 20000
-e
+{100 CNT
+i1 [0.1 * $CNT] 0.5 0.5 430 1000 800
+}
+
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/dssiactivate.csd b/examples/dssiactivate.csd
index 7231f8f..7231f8f 100755..100644
--- a/examples/dssiactivate.csd
+++ b/examples/dssiactivate.csd
diff --git a/examples/dssictls.csd b/examples/dssictls.csd
index b26ee59..b26ee59 100755..100644
--- a/examples/dssictls.csd
+++ b/examples/dssictls.csd
diff --git a/examples/dssiinit.csd b/examples/dssiinit.csd
index 75d37fb..75d37fb 100755..100644
--- a/examples/dssiinit.csd
+++ b/examples/dssiinit.csd
diff --git a/examples/dssilist.csd b/examples/dssilist.csd
index a6f3be4..a6f3be4 100755..100644
--- a/examples/dssilist.csd
+++ b/examples/dssilist.csd
diff --git a/examples/dssiplay_mono.csd b/examples/dssiplay_mono.csd
index 5620900..5620900 100755..100644
--- a/examples/dssiplay_mono.csd
+++ b/examples/dssiplay_mono.csd
diff --git a/examples/dssiplay_stereo.csd b/examples/dssiplay_stereo.csd
index e37a886..e37a886 100755..100644
--- a/examples/dssiplay_stereo.csd
+++ b/examples/dssiplay_stereo.csd
diff --git a/examples/dumpk-2.csd b/examples/dumpk-2.csd
new file mode 100644
index 0000000..356c73f
--- /dev/null
+++ b/examples/dumpk-2.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o dumpk-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1 ;writes a control signal to a file
+kfreq randh 100, 1, 2, 1, 500 ;generates one random number between 400 and 600 per second
+ dumpk kfreq, "dumpk.txt", 8, 1 ;writes the control signal
+ printk 1, kfreq ;prints it
+endin
+
+instr 2 ;reads the file written by instr 1
+kfreq readk "dumpk.txt", 8, 1
+ printk 1, kfreq ;prints it
+aout poscil .2, kfreq, giSine
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 5
+i 2 5 5
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/dumpk2.csd b/examples/dumpk2.csd
new file mode 100644
index 0000000..7c1d25f
--- /dev/null
+++ b/examples/dumpk2.csd
@@ -0,0 +1,42 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o dumpk2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1 ;writes two control signals to a file
+kfreq randh 100, 1, 2, 1, 500 ;generates one random number between 400 and 600 per second
+kdb randh 12, 1, 2, 1, -12 ;amplitudes in dB between -24 and 0
+ dumpk2 kfreq, kdb, "dumpk2.txt", 8, 1 ;writes the control signals
+ prints "WRITING:\n"
+ printks "kfreq = %f, kdb = %f\n", 1, kfreq, kdb ;prints them
+endin
+
+instr 2 ;reads the file written by instr 1
+kf,kdb readk2 "dumpk2.txt", 8, 1
+ prints "READING:\n"
+ printks "kfreq = %f, kdb = %f\n", 1, kf, kdb ;prints again
+kdb lineto kdb, .1 ;smoothing amp transition
+aout poscil ampdb(kdb), kf, giSine
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 5
+i 2 5 5
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/dumpk3.csd b/examples/dumpk3.csd
new file mode 100644
index 0000000..f0dbe92
--- /dev/null
+++ b/examples/dumpk3.csd
@@ -0,0 +1,45 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o dumpk3.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1 ;writes three control signals to a file
+kfreq randh 100, 1, 2, 1, 500 ;generates one random number between 400 and 600 per second
+kdb randh 12, 1, 2, 1, -12 ;amplitudes in dB between -24 and 0
+kpan randh .5, 1, 2, 1, .5 ;panning between 0 and 1
+ dumpk3 kfreq, kdb, kpan, "dumpk3.txt", 8, 1 ;writes the control signals
+ prints "WRITING:\n"
+ printks "kfreq = %f, kdb = %f, kpan = %f\n", 1, kfreq, kdb, kpan ;prints them
+endin
+
+instr 2 ;reads the file written by instr 1
+kf,kdb,kp readk3 "dumpk3.txt", 8, 1
+ prints "READING:\n"
+ printks "kfreq = %f, kdb = %f, kpan = %f\n", 1, kf, kdb, kp ;prints again
+kdb lineto kdb, .1 ;smoothing amp transition
+kp lineto kp, .1 ;smoothing pan transition
+aout poscil ampdb(kdb), kf, giSine
+aL, aR pan2 aout, kp
+ outs aL, aR
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 5
+i 2 5 5
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/dumpk4.csd b/examples/dumpk4.csd
new file mode 100644
index 0000000..3e96d18
--- /dev/null
+++ b/examples/dumpk4.csd
@@ -0,0 +1,48 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o dumpk4.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1 ;writes four control signals to a file
+kcf randh 950, 1, 2, 1, 1050 ;generates one random number between 100 and 2000 per second
+kq randh 10, 1, 2, 1, 11 ;generates another random number between 1 and 21 per second
+kdb randh 9, 1, 2, 1, -15 ;amplitudes in dB between -24 and -6
+kpan randh .5, 1, 2, 1, .5 ;panning between 0 and 1
+ dumpk4 kcf, kq, kdb, kpan, "dumpk4.txt", 8, 1 ;writes the control signals
+ prints "WRITING:\n"
+ printks "kcf = %f, kq = %f, kdb = %f, kpan = %f\n", 1, kcf, kq, kdb, kpan ;prints them
+endin
+
+instr 2 ;reads the file written by instr 1
+kcf,kq,kdb,kp readk4 "dumpk4.txt", 8, 1
+ prints "READING:\n"
+ printks "kcf = %f, kq = %f, kdb = %f, kpan = %f\n", 1, kcf, kq, kdb, kp ;prints values
+kdb lineto kdb, .1 ;smoothing amp transition
+kp lineto kp, .1 ;smoothing pan transition
+anoise rand ampdb(kdb), 2, 1
+kbw = kcf/kq ;bandwidth of resonant filter
+abp reson anoise, kcf, kbw
+aout balance abp, anoise
+aL, aR pan2 aout, kp
+ outs aL, aR
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 5
+i 2 5 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/duserrnd.csd b/examples/duserrnd.csd
new file mode 100644
index 0000000..073d1df
--- /dev/null
+++ b/examples/duserrnd.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o duserrnd.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+k1 duserrnd 1
+ printk 0, k1
+asig poscil .5, 220*k1, 2 ;multiply frequency with random value
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 -20 -41 2 .1 8 .9 ;choose 2 at 10% probability, and 8 at 90%
+
+f2 0 8192 10 1
+
+i1 0 2
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/dust.csd b/examples/dust.csd
new file mode 100644
index 0000000..01d6402
--- /dev/null
+++ b/examples/dust.csd
@@ -0,0 +1,28 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kdens expon 2, p3, 20000
+aout dust 0.5, kdens
+outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+i1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/dust2.csd b/examples/dust2.csd
new file mode 100644
index 0000000..e1affaf
--- /dev/null
+++ b/examples/dust2.csd
@@ -0,0 +1,28 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kdens expon 2, p3, 20000
+aout dust2 0.5, kdens
+outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+i1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/e.csd b/examples/e.csd
new file mode 100644
index 0000000..61184c6
--- /dev/null
+++ b/examples/e.csd
@@ -0,0 +1,47 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o e.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+ga1 init 0
+
+instr 1
+
+aenv expseg .01, p3*0.1, 1, p3*0.9, 0.01
+ga1 poscil3 .5*aenv, cpspch(p4), 1
+ outs ga1,ga1
+endin
+
+instr 99
+
+aL, aR reverbsc ga1, ga1, 0.85, 12000, sr, 0.5, 1
+outs aL,aR
+
+ga1 = 0
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 128 10 1 ;sine wave
+
+i 1 1 0.1 8.00
+i 1 2 0.1 8.02
+i 1 3 0.1 8.04
+i 1 4 0.1 9.06
+
+i 99 0 6 ;remains active for 6 seconds
+
+e10
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/eqfil.csd b/examples/eqfil.csd
index 4cd88b7..4cd88b7 100755..100644
--- a/examples/eqfil.csd
+++ b/examples/eqfil.csd
diff --git a/examples/equal.csd b/examples/equal.csd
index 2b67d98..2b67d98 100755..100644
--- a/examples/equal.csd
+++ b/examples/equal.csd
diff --git a/examples/equals.csd b/examples/equals.csd
index b2502b6..87d6219 100644
--- a/examples/equals.csd
+++ b/examples/equals.csd
@@ -1,43 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o equal.wav -W ;;; for file output any platform
+; -o equals.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 44100
-ksmps = 1
-nchnls = 1
-
-; Instrument #1.
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
instr 1
- ; Get the 4th p-field from the score.
- k1 = p4
- ; Is it equal to 3? (1 = true, 0 = false)
- k2 = (p4 == 3 ? 1 : 0)
+ienv = p4 ;choose envelope in score
- ; Print the values of k1 and k2.
- printks "k1 = %f, k2 = %f\\n", 1, k1, k2
-endin
+if (ienv == 0) kthen
+ kenv adsr 0.05, 0.05, 0.95, 0.05 ;sustained envelope
+elseif (ienv == 1) kthen
+ kenv adsr 0.5, 1, 0.5, 0.5 ;triangular envelope
+elseif (ienv == 2) kthen
+ kenv adsr 1, 1, 1, 0 ;ramp up
+endif
+aout vco2 .1, 110, 10
+aout = aout * kenv
+ outs aout, aout
+
+endin
</CsInstruments>
<CsScore>
-; Call Instrument #1 with a p4 = 2.
-i 1 0 0.5 2
-; Call Instrument #1 with a p4 = 3.
-i 1 1 0.5 3
-; Call Instrument #1 with a p4 = 4.
-i 1 2 0.5 4
-e
-
+i1 0 2 0
+i1 3 2 1
+i1 6 2 2
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/event_i.csd b/examples/event_i.csd
new file mode 100644
index 0000000..d6a5625
--- /dev/null
+++ b/examples/event_i.csd
@@ -0,0 +1,50 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;RT audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o event_i.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+seed 0
+gisine ftgen 0, 0, 2^10, 10, 1
+
+instr 1 ;master instrument
+
+ininstr = 10 ;number of called instances
+indx = 0
+loop:
+ipan random 0, 1
+ifreq random 100, 1000
+iamp = 1/ininstr
+event_i "i", 10, 0, p3, iamp, ifreq, ipan
+loop_lt indx, 1, ininstr, loop
+
+endin
+
+instr 10
+
+ print p4, p5, p6
+ipeak random 0, 1 ;where is the envelope peak
+asig poscil3 p4, p5, gisine
+aenv transeg 0, p3*ipeak, 6, 1, p3-p3*ipeak, -6, 0
+aL,aR pan2 asig*aenv, p6
+ outs aL, aR
+
+endin
+
+</CsInstruments>
+<CsScore>
+i1 0 10
+i1 8 10
+i1 16 15
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/exitnow.csd b/examples/exitnow.csd
new file mode 100644
index 0000000..366efd5
--- /dev/null
+++ b/examples/exitnow.csd
@@ -0,0 +1,53 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n ;;;no sound
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o exitnow.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+;after an example by Iain McCurdy
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+FLcolor 200, 200, 200, 0, 0, 0
+; LABEL | WIDTH | HEIGHT | X | Y
+FLpanel "rtclock", 500, 130, 0, 0
+; ON,OFF,TYPE,WIDTH, HEIGHT, X, Y, OPCODE, INS,START,IDUR
+gkOnOff,ihOnOff FLbutton "On/Off", 1, 0, 22, 150, 25, 5, 5, 0, 1, 0, 3600
+gkExit,ihExit FLbutton "exitnow",1, 0, 21, 150, 25, 345, 5, 0, 999, 0, 0.001
+FLsetColor2 255, 0, 50, ihOnOff ;reddish color
+
+;VALUE DISPLAY BOXES WIDTH,HEIGHT,X, Y
+gidclock FLvalue "clock", 100, 25, 200, 60
+FLsetVal_i 1, ihOnOff
+FLpanel_end
+FLrun
+
+instr 1
+
+if gkOnOff !=0 kgoto CONTINUE ;sense if FLTK on/off switch is not off (in which case skip the next line)
+turnoff ;turn this instr. off now
+CONTINUE:
+ktime rtclock ;clock continues to run even
+FLprintk2 ktime, gidclock ;after the on/off button was used to stop
+
+endin
+
+instr 999
+
+exitnow ;exit Csound as fast as possible
+
+endin
+</CsInstruments>
+<CsScore>
+
+f 0 60 ;runs 60 seconds
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/exprandi.csd b/examples/exprandi.csd
new file mode 100644
index 0000000..ee6d8f4
--- /dev/null
+++ b/examples/exprandi.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o exprand.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+klambda exprandi 20, 1, 3
+ printk2 klambda ; look
+aout oscili 0.8, 440+klambda, 1 ; & listen
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+; sine wave
+f 1 0 16384 10 1
+
+i 1 0 4
+e
+
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/expsegb.csd b/examples/expsegb.csd
new file mode 100644
index 0000000..e719f4a
--- /dev/null
+++ b/examples/expsegb.csd
@@ -0,0 +1,49 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+; Audio out Audio in
+-odac -iadc ;;;RT audio I/O
+; For Non-realtime ouput leave only the line below:
+; -o expseg.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+; Initialize the global variables.
+sr = 44100
+kr = 4410
+ksmps = 10
+nchnls = 1
+
+; Instrument #1.
+instr 1
+ ; p4 = frequency in pitch-class notation.
+ kcps = cpspch(p4)
+
+ ; Create an amplitude envelope.
+ kenv expsegb 0.01, p3*0.25, 1, p3, 0.01
+ kamp = kenv * 30000
+
+ a1 oscil kamp, kcps, 1
+ out a1
+endin
+
+
+</CsInstruments>
+<CsScore>
+
+; Table #1, a sine wave.
+f 1 0 16384 10 1
+
+; Play Instrument #1 for a half-second, p4=8.00
+i 1 0 0.5 8.00
+; Play Instrument #1 for a half-second, p4=8.01
+i 1 1 0.5 8.01
+; Play Instrument #1 for a half-second, p4=8.02
+i 1 2 0.5 8.02
+; Play Instrument #1 for a half-second, p4=8.03
+i 1 3 0.5 8.03
+e
+
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/expsegba.csd b/examples/expsegba.csd
new file mode 100644
index 0000000..214708e
--- /dev/null
+++ b/examples/expsegba.csd
@@ -0,0 +1,46 @@
+<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 expsega.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+; Initialize the global variables.
+sr = 44100
+kr = 4410
+ksmps = 10
+nchnls = 1
+
+; Instrument #1.
+instr 1
+ ; Define a short percussive amplitude envelope that
+ ; goes from 0.01 to 20,000 and back.
+ aenv expsegba 0.01, 0.1, 20000, 0.2, 0.01
+
+ a1 oscil aenv, 440, 1
+ out a1
+endin
+
+
+</CsInstruments>
+<CsScore>
+
+; Table #1, a sine wave.
+f 1 0 16384 10 1
+
+; Play Instrument #1 for one second.
+i 1 0 1
+; Play Instrument #1 for one second.
+i 1 1 1
+; Play Instrument #1 for one second.
+i 1 2 1
+; Play Instrument #1 for one second.
+i 1 3 1
+e
+
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/fareyleni.csd b/examples/fareyleni.csd
new file mode 100644
index 0000000..b6e2d65
--- /dev/null
+++ b/examples/fareyleni.csd
@@ -0,0 +1,89 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc for RT audio input as well
+; For Non-realtime ouput leave only the line below:
+; -o fareyleni.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+ ; initialise integer n for Farey Sequence F_8
+ gifarn init 8
+
+ ; calculate length of F_8, it should return 23 for |F_8|
+ gires fareyleni gifarn
+
+ ; convert to negative number for the GEN routine because
+ ; the table length won't be a power of 2
+ ; (The length of a Farey Sequence of n > 1 is always an odd number)
+ gilen init gires * -1
+
+ ; create F_8 with GENfarey, the negative table number prevents
+ ; unnecessary normalisation (F_8 IS already normalised)
+ ; n mode:
+ gifarey ftgen 100, 0, gilen, "farey", gifarn, 4
+ ; if mode=4 then 1 is added to each element of F_n.
+ ; Useful for creating just tuning tables that can be read by the cps2pch opcode.
+
+instr 1
+ ; the very last element of F_n is not needed in the case of tuning tables
+ ires = gires - 1
+ ; read out and print to file
+ kndx init 0
+ if (kndx < ires) then
+ kelem tab kndx, gifarey
+ fprintks "farey8_tuning.txt", "%2.6f\\n", kelem
+ kndx = kndx+1
+ endif
+
+endin
+
+instr 2
+
+ip cps2pch p4, -100
+asig poscil .5, ip, 1
+aenv linseg 0, 0.1, 1, p3-0.2, 1, 0.1, 0
+ outs asig * aenv, asig * aenv
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1 ;sine wave
+
+i1 0 .1
+
+i2 1 .5 8.00
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + . >
+i2 + 1 8.22
+
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/ficlose.csd b/examples/ficlose.csd
new file mode 100644
index 0000000..b763c23
--- /dev/null
+++ b/examples/ficlose.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o ficlose.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gihand fiopen "test1.txt", 0
+
+instr 1
+
+ires random 0, 100
+ fouti gihand, 0, 1, ires
+ ficlose gihand
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 1
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/filelen.csd b/examples/filelen.csd
index b185dd3..43ba8cf 100644
--- a/examples/filelen.csd
+++ b/examples/filelen.csd
@@ -1,35 +1,44 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+;-odac ;;;realtime audio out
+-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o filelen.wav -W ;;; for file output any platform
+;-o filelen.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Print out the length of the audio file
- ; "mary.wav" in seconds.
- ilen filelen "mary.wav"
- print ilen
-endin
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; choose between mono or stereo file
+
+ilen filelen p4 ;calculate length of soundfile
+print ilen
+ichn filenchnls p4 ;check number of channels
+;print ichn
+
+if (ichn == 1) then
+;mono signal
+asig diskin2 p4, 1
+ outs asig, asig
+
+else
+;stereo signal
+aL, aR diskin2 p4, .5, 0, 1
+ outs aL, aR
+endif
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for 1 second.
-i 1 0 1
-e
-
+i 1 0 3 "fox.wav" ;mono signal
+i 1 5 2 "kickroll.wav" ;stereo signal
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/filenchnls.csd b/examples/filenchnls.csd
index 5b7ff30..ab075a0 100644
--- a/examples/filenchnls.csd
+++ b/examples/filenchnls.csd
@@ -1,35 +1,44 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+;-odac ;;;realtime audio out
+-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o filenchnls.wav -W ;;; for file output any platform
+;-o filechnls.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Print out the number of channels in the
- ; audio file "mary.wav".
- ichnls filenchnls "mary.wav"
- print ichnls
-endin
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; choose between mono or stereo file
+
+ilen filelen p4 ;calculate length of soundfile
+;print ilen
+ichn filenchnls p4 ;check number of channels
+print ichn
+
+if (ichn == 1) then
+;mono signal
+asig diskin2 p4, 1
+ outs asig, asig
+
+else
+;stereo signal
+aL, aR diskin2 p4, .5, 0, 1
+ outs aL, aR
+endif
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for 1 second.
-i 1 0 1
-e
-
+i 1 0 3 "fox.wav" ;mono signal
+i 1 5 2 "kickroll.wav" ;stereo signal
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/filepeak.csd b/examples/filepeak.csd
index 5b74d43..39d594d 100644
--- a/examples/filepeak.csd
+++ b/examples/filepeak.csd
@@ -1,35 +1,46 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o filepeak.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Print out the peak absolute value of the
- ; audio file "mary.wav".
- ipeak filepeak "mary.wav"
- print ipeak
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+iscaldb = p4 ;set peak amplitude in dB
+ipeak filepeak "Church.wav"
+iscal = ampdb(iscaldb)/ipeak ;calculate amp multiplier
+printf_i "\nPeak value in file '%s' is %f (%.3f dB).\n\n", 1, "Church.wav", ipeak, dbamp(ipeak)
+
+asnd soundin "Church.wav"
+ outs asnd, asnd
+; scale & write file to disk
+asig = asnd*iscal ;scale to p4
+fout "Church_norm.wav", 14, asig
+
endin
+instr 2 ; play scaled file
+aout soundin "Church_norm.wav"
+ipknew filepeak "Church_norm.wav"
+printf_i "\nPeak value in file '%s' is %f (%.3f dB).\n\n", 1, "Church_norm.wav", ipknew, dbamp(ipknew)
+ outs aout, aout
+
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for 1 second.
-i 1 0 1
+i 1 0 2 -6 ; normalize audio to -6 dB
+i 2 2 2
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/filesr.csd b/examples/filesr.csd
index dbafb7e..ac74261 100644
--- a/examples/filesr.csd
+++ b/examples/filesr.csd
@@ -1,35 +1,39 @@
-<CsoundSynthesizer>
-<CsOptions>
+<CsoundSynthesizer>
+<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o filesr.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- ; Print out the sampling rate of the
- ; audio file "mary.wav".
- isr filesr "mary.wav"
- print isr
-endin
+;after an example from Jonathan Murphy
+instr 1
+;load sound into an ftable
+ Sfile strcpy "beats.wav"
+ ilen filelen Sfile
+ isr filesr Sfile
+ isamps = ilen * isr
+;adjust the length of the table to be a power of two closest
+;to the actual size of the sound
+ isize init 1
+loop:
+ isize = isize * 2
+ if (isize < isamps) igoto loop
+ itab ftgen 0, 0, isize, 1, Sfile, 0, 0, 0
+prints "sample rate = %f, size = %f\n", isr, isize ;prints them
-</CsInstruments>
-<CsScore>
-
-; Play Instrument #1 for 1 second.
-i 1 0 1
-e
-
-
-</CsScore>
-</CsoundSynthesizer>
+endin
+</CsInstruments>
+<CsScore>
+i1 0 2
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/filevalid.csd b/examples/filevalid.csd
index 799c02e..4706709 100644
--- a/examples/filevalid.csd
+++ b/examples/filevalid.csd
@@ -1,34 +1,36 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o filelen.wav -W ;;; for file output any platform
+;-o filevalid.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Check that the audio file "mary.wav" is avalable
- ivld filevalid "mary.wav"
- print ivld
-endin
+Sfile strget p4
+ivld filevalid Sfile
+if ivld>0 then
+asig diskin2 Sfile, 1
+ outs asig, asig
+else
+ printf_i "Audiofile '%s' does not exist!\n", 1, Sfile
+endif
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for 0.1 second.
-i 1 0 0.1
-e
-
+i 1 0 3 "frox.wav";file does not exist!!!
+i 1 + 3 "fox.wav" ;but this one certainly does...
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fillarray.csd b/examples/fillarray.csd
new file mode 100644
index 0000000..1955679
--- /dev/null
+++ b/examples/fillarray.csd
@@ -0,0 +1,26 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ kS[] fillarray 1,7,5
+ printk2 kS[0]
+ printk2 kS[1]
+ printk2 kS[2]
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 0
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/filter2.csd b/examples/filter2.csd
new file mode 100644
index 0000000..5101781
--- /dev/null
+++ b/examples/filter2.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o filter2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; 2 saw waves of which one is slightly detuned
+
+ib1 = p5
+ivol = p6 ;volume to compensate
+kcps init cpspch(p4)
+asig1 vco2 .05, kcps ;saw 1
+asaw1 filter2 asig1, 1, 1, 1, ib1 ;filter 1
+asig2 vco2 .05, kcps+1 ;saw 2
+asaw2 filter2 asig2, 1, 1, 1, ib1 ;filter 2
+aout = (asaw1+asaw2)*ivol ;mix
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 4 6.00 -.001 5 ;different filter values
+i 1 + 4 6.00 -.6 2 ;and different volumes
+i 1 + 4 6.00 -.95 .3 ;to compensate
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/fin.csd b/examples/fin.csd
new file mode 100644
index 0000000..dec5140
--- /dev/null
+++ b/examples/fin.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o fin.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+asnd init 0 ;input of fin must be initialized
+ fin "fox.wav", 0, 0, asnd ;read audiofile
+aenv follow asnd, 0.01 ;envelope follower
+kenv downsamp aenv
+asig rand kenv ;gate the noise with audiofile
+ outs asig, asig
+endin
+
+</CsInstruments>
+<CsScore>
+
+i 1 0 3
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/fiopen.csd b/examples/fiopen.csd
new file mode 100644
index 0000000..72aba67
--- /dev/null
+++ b/examples/fiopen.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o fiopen.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gihand fiopen "test1.txt", 0
+
+instr 1
+
+ires random 0, 100
+ fouti gihand, 0, 1, ires
+ ficlose gihand
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 1
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/flanger.csd b/examples/flanger.csd
index cf63f4d..f9f1852 100644
--- a/examples/flanger.csd
+++ b/examples/flanger.csd
@@ -1,44 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o flanger.wav -W ;;; for file output any platform
+;-o flanger.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Use the "beat.wav" audio file.
- asig soundin "beats.wav"
- ; Vary the delay amount from 0 to 0.01 seconds.
- adel line 0, p3, 0.01
- kfeedback = 0.7
+kfeedback = p4
+asnd vco2 .2, 50
+adel linseg 0, p3*.5, 0.02, p3*.5, 0 ;max delay time =20ms
+aflg flanger asnd, adel, kfeedback
+asig clip aflg, 1, 1
+ outs asig+asnd, asig+asnd ;mix flanger with original
- ; Apply flange to the input signal.
- aflang flanger asig, adel, kfeedback
-
- ; It can get loud, so clip its amplitude to 30,000.
- a1 clip aflang, 1, 30000
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for two seconds.
-i 1 0 2
+i 1 0 10 .2
+i 1 11 10 .8 ;lot of feedback
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/flooper.csd b/examples/flooper.csd
index 6865bda..f05f3b9 100755..100644
--- a/examples/flooper.csd
+++ b/examples/flooper.csd
@@ -1,32 +1,32 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o flooper.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 10
-nchnls = 1
- instr 1
-kpitch line 1, p3, 4
-aout flooper 26000, kpitch, 1, .53, 0.05, 1 ; loop starts at 1 sec, for .53 secs, 0.05 crossfade
- out aout
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
- endin
+instr 1
+kpitch line 1, p3, .9 ;lower pitch a bit during the note
+aout flooper .9, kpitch, 1, .53, 0.05, 1 ; loop starts at 1 sec, for .53 secs, 0.05 crossfade
+ outs aout, aout
+
+endin
</CsInstruments>
<CsScore>
-; Table #1: an audio file.
-; Its table size is deferred,
-; and format taken from the soundfile header.
-f 1 0 0 1 "beats.wav" 0 0 0
+;table size is deferred,
+; and format taken from the soundfile header
+f 1 0 0 1 "fox.wav" 0 0 0
-i 1 0 4
+i 1 0 8.2
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/flooper2.csd b/examples/flooper2.csd
index ac94723..50d148d 100755..100644
--- a/examples/flooper2.csd
+++ b/examples/flooper2.csd
@@ -1,32 +1,32 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o flooper2.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 10
-nchnls = 1
- instr 1
-; looping back and forth, 0.05 crossfade
-aout flooper2 16000, 1, 0, 1.6, 0.05, 1, 0, 2
- out aout
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
- endin
+instr 1
+; looping back and forth, 0.05 crossfade
+kst line .2, p3, 2 ;vary loopstartpoint
+aout flooper2 .8, 1, 0, kst, 0.05, 1, 0, 2
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
-; Table #1: an audio file.
; Its table size is deferred,
-; and format taken from the soundfile header.
-f 1 0 0 1 "beats.wav" 0 0 0
+; and format taken from the soundfile header
+f 1 0 0 1 "fox.wav" 0 0 0
-i 1 0 6.5
+i 1 0 12
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/floor.csd b/examples/floor.csd
index 09cece7..60cef23 100755..100644
--- a/examples/floor.csd
+++ b/examples/floor.csd
@@ -1,31 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o floor.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- i1 = 6 / 5
- i2 = floor(i1)
- print i2
-endin
+idiv init 1
+loop:
+inumber = 9
+i1 = inumber / idiv
+ifl = floor(i1)
+print inumber, idiv, ifl ;print number / idiv = result using floor
+idiv = idiv + 1
+if (idiv <= 10) igoto loop
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for one second.
-i 1 0 1
+i 1 0 0
e
</CsScore>
diff --git a/examples/fluid-2.csd b/examples/fluid-2.csd
index a9646a5..9ffe692 100755..100644
--- a/examples/fluid-2.csd
+++ b/examples/fluid-2.csd
@@ -1,35 +1,36 @@
<CsoundSynthesizer>
-
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages Look for midifile in folder manual/examples
--odac -iadc -d -F midichn_advanced.mid ;;;RT audio I/O
+; Audio out No messages Look for midifile in folder manual/examples
+-odac -d -F midichn_advanced.mid ;;;reatime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o fluid2.wav -W ;;; for file output any platform
+; -o fluid-2.wav -W ;;; for file output any platform
</CsOptions>
-
<CsInstruments>
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
-0dbfs = 32767
+0dbfs = 1
; LOAD SOUNDFONTS
gienginenum1 fluidEngine
gienginenum2 fluidEngine
-isfnum1 fluidLoad "Piano Steinway Grand Model C (21,738KB).sf2", gienginenum1, 1 ; Bright Steinway, program 1, channel 1
- fluidProgramSelect gienginenum1, 1, isfnum1, 0, 1 ; Concert Steinway with reverb, program 2, channel 3
+isfnum1 fluidLoad "Piano Steinway Grand Model C (21,738KB).sf2", gienginenum1, 1
+; Bright Steinway, program 1, channel 1
+ fluidProgramSelect gienginenum1, 1, isfnum1, 0, 1
+; Concert Steinway with reverb, program 2, channel 3
fluidProgramSelect gienginenum1, 3, isfnum1, 0, 2
-isfnum2 fluidLoad "63.3mg The Sound Site Album Bank V1.0.sf2", gienginenum2, 1 ; General MIDI, program 50, channel 2
+isfnum2 fluidLoad "63.3mg The Sound Site Album Bank V1.0.SF2", gienginenum2, 1
+; General MIDI, program 50, channel 2
fluidProgramSelect gienginenum2, 2, isfnum2, 0, 50
; SEND NOTES TO STEINWAY SOUNDFONT
instr 1 ; FluidSynth Steinway Rev
; INITIALIZATION
- mididefault 60, p3 ; Default duration of 60 -- overridden by score.
+ mididefault 60, p3 ; Default duration of 60 -- overridden by score.
midinoteonkey p4, p5 ; Channels MIDI input to pfields.
; Use channel assigned in fluidload.
ichannel = 1
@@ -40,33 +41,32 @@ endin
instr 2 ; GM soundfont
; INITIALIZATION
- mididefault 60, p3 ; Default duration of 60 -- overridden by score.
- midinoteonkey p4, p5 ; Channels MIDI input to pfields.
+ mididefault 60, p3 ; Default duration of 60 -- overridden by score.
+ midinoteonkey p4, p5 ; Channels MIDI input to pfields.
; Use channel assigned in fluidload.
ichannel = 2
ikey = p4
ivelocity = p5
- fluidNote gienginenum2, ichannel, ikey, ivelocity
+ fluidNote gienginenum2, ichannel, ikey, ivelocity
endin
instr 3 ; FluidSynth Steinway Rev
; INITIALIZATION
- mididefault 60, p3 ; Default duration of 60 -- overridden by score.
- midinoteonkey p4, p5 ; Channels MIDI input to pfields.
+ mididefault 60, p3 ; Default duration of 60 -- overridden by score.
+ midinoteonkey p4, p5 ; Channels MIDI input to pfields.
; Use channel assigned in fluidload.
ichannel = 3
ikey = p4
ivelocity = p5
- fluidNote gienginenum1, ichannel, ikey, ivelocity
+ fluidNote gienginenum1, ichannel, ikey, ivelocity
endin
; COLLECT AUDIO FROM ALL SOUNDFONTS
instr 100 ; Fluidsynth output
- ; INITIALIZATION
- ; Normalize so iamplitude for p5 of 80 == ampdb(80).
- iamplitude1 = ampdb(p4) * 100000
- iamplitude2 = ampdb(p5) * 100000
+
+ iamplitude1 = 7
+ iamplitude2 = 7
; AUDIO
aleft1, aright1 fluidOut gienginenum1
@@ -74,18 +74,14 @@ aleft2, aright2 fluidOut gienginenum2
outs (aleft1 * iamplitude1) + (aleft2 * iamplitude2), \
(aright1 * iamplitude1) + (aright2 * iamplitude2)
endin
-
-
</CsInstruments>
-
<CsScore>
-i 1 0 36 60 100
-i 2 1 36 60 100
-i 3 3 36 63 100
-i 100 0 40 8 8
-e
+i 1 0 3 60 100
+i 2 1 3 60 100
+i 3 3 3 63 100
+i 100 0 10 ;run for 10seconds
+e
</CsScore>
-
</CsoundSynthesizer>
diff --git a/examples/fluid.csd b/examples/fluid.csd
index baa2e29..baa2e29 100755..100644
--- a/examples/fluid.csd
+++ b/examples/fluid.csd
diff --git a/examples/fluidAllOut.csd b/examples/fluidAllOut.csd
new file mode 100644
index 0000000..5b1d9ce
--- /dev/null
+++ b/examples/fluidAllOut.csd
@@ -0,0 +1,60 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o fluidAllOut.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giengine1 fluidEngine
+isfnum1 fluidLoad "sf_GMbank.sf2", giengine1, 1
+ fluidProgramSelect giengine1, 1, isfnum1, 0, 0
+
+giengine2 fluidEngine
+; soundfont path to manual/examples
+isfnum2 fluidLoad "22Bassoon.sf2", giengine2, 1
+ fluidProgramSelect giengine2, 1, isfnum2, 0, 70
+
+instr 1
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey init p4
+ivel init p5
+ fluidNote giengine1, 1, ikey, ivel
+
+endin
+
+instr 2
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey init p4
+ivel init p5
+ fluidNote giengine2, 1, ikey, ivel
+
+endin
+
+instr 100
+
+imvol init 7 ;amplify a bit
+asigl, asigr fluidAllOut
+ outs asigl*imvol, asigr*imvol
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2 60 127 ;play one note on instr 1
+i 2 2 2 60 127 ;play another note on instr 2 and...
+i 100 0 60 ;play virtual midi keyboard
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/fluidCCi.csd b/examples/fluidCCi.csd
new file mode 100644
index 0000000..36cdb0d
--- /dev/null
+++ b/examples/fluidCCi.csd
@@ -0,0 +1,48 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o fluidCCi.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giengine fluidEngine
+; soundfont path to manual/examples
+isfnum fluidLoad "19Trumpet.sf2", giengine, 1
+ fluidProgramSelect giengine, 1, isfnum, 0, 56
+
+instr 1
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey init p4
+ivel init p5
+ fluidCCi giengine, 1, 93, 127 ;full chorus &
+ fluidCCi giengine, 1, 91, 127 ;full reverb!
+ fluidNote giengine, 1, ikey, ivel
+
+endin
+
+instr 99
+
+imvol init 7
+asigl, asigr fluidOut giengine
+ outs asigl*imvol, asigr*imvol
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 5 60 100 ;play one note from score and...
+i 99 0 60 ;play virtual keyboard for 60 sec.
+e
+
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/fluidCCk.csd b/examples/fluidCCk.csd
new file mode 100644
index 0000000..462619a
--- /dev/null
+++ b/examples/fluidCCk.csd
@@ -0,0 +1,52 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o fluidCCk.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giengine fluidEngine
+; soundfont path to manual/examples
+isfnum fluidLoad "22Bassoon.sf2", giengine, 1
+ fluidProgramSelect giengine, 1, isfnum, 0, 70
+
+instr 1
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey init p4
+ivel init p5
+kpan line 0, p3, 127 ;panning from left to right
+ fluidCCk giengine, 1, 10, kpan ;CC 10 = pan
+ fluidNote giengine, 1, ikey, ivel
+
+endin
+
+instr 99
+
+imvol init 7
+asigl, asigr fluidOut giengine
+ outs asigl*imvol, asigr*imvol
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 4 48 100
+i 1 4 2 50 120
+i 1 6 1 53 80
+i 1 7 1 45 70
+i 1 8 1.5 48 80
+
+i 99 0 10 ;keep instr 99 active
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/fluidEngine.csd b/examples/fluidEngine.csd
new file mode 100644
index 0000000..4deef91
--- /dev/null
+++ b/examples/fluidEngine.csd
@@ -0,0 +1,87 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -F midichn_advanced.mid ;;;reatime audio out and midifile in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o fluidEngine.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+; LOAD SOUNDFONTS
+gienginenum1 fluidEngine
+gienginenum2 fluidEngine
+isfnum1 fluidLoad "sf_GMbank.sf2", gienginenum1, 1
+ ; Piano 2, program 1, channel 1
+ fluidProgramSelect gienginenum1, 1, isfnum1, 0, 1
+ ; Piano 3, program 2, channel 2
+ fluidProgramSelect gienginenum1, 2, isfnum1, 0, 2
+isfnum2 fluidLoad "19Trumpet.sf2", gienginenum2, 1
+ ; Trumpet, program 56, channel 3
+ fluidProgramSelect gienginenum2, 3, isfnum2, 0, 56
+
+;Look for midifile in folder manual/examples
+;"midichn_advanced.mid" sends notes to the soundfonts
+
+instr 1 ; GM soundfont
+ ; INITIALIZATION
+ mididefault 60, p3 ; Default duration of 60 -- overridden by score.
+ midinoteonkey p4, p5 ; Channels MIDI input to pfields.
+ ; Use channel assigned in fluidload.
+ ichannel = 1
+ ikey = p4
+ ivelocity = p5
+ fluidNote gienginenum1, ichannel, ikey, ivelocity
+endin
+
+instr 2 ; GM soundfont
+ ; INITIALIZATION
+ mididefault 60, p3 ; Default duration of 60 -- overridden by score.
+ midinoteonkey p4, p5 ; Channels MIDI input to pfields.
+ ; Use channel assigned in fluidload.
+ ichannel = 2
+ ikey = p4
+ ivelocity = p5
+ fluidNote gienginenum1, ichannel, ikey, ivelocity
+endin
+
+instr 3 ; Trumpet
+ ; INITIALIZATION
+ mididefault 60, p3 ; Default duration of 60 -- overridden by score.
+ midinoteonkey p4, p5 ; Channels MIDI input to pfields.
+ ; Use channel assigned in fluidload.
+ ichannel = 3
+ ikey = p4
+ ivelocity = p5
+ fluidNote gienginenum2, ichannel, ikey, ivelocity
+endin
+
+; COLLECT AUDIO FROM ALL SOUNDFONTS
+
+instr 100 ; Fluidsynth output
+
+ iamplitude1 = 7
+ iamplitude2 = 7
+
+; AUDIO
+aleft1, aright1 fluidOut gienginenum1
+aleft2, aright2 fluidOut gienginenum2
+ outs (aleft1 * iamplitude1) + (aleft2 * iamplitude2), \
+ (aright1 * iamplitude1) + (aright2 * iamplitude2)
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3 60 100
+i 2 1 3 60 100
+i 3 3 3 63 100
+i 100 0 10 ;run for 10 seconds
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/fluidLoad.csd b/examples/fluidLoad.csd
new file mode 100644
index 0000000..89422b1
--- /dev/null
+++ b/examples/fluidLoad.csd
@@ -0,0 +1,46 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o fluidLoad.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giengine fluidEngine
+; soundfont path to manual/examples
+isfnum fluidLoad "07AcousticGuitar.sf2", giengine, 1
+ fluidProgramSelect giengine, 1, isfnum, 0, 0
+
+instr 1
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey init p4
+ivel init p5
+ fluidNote giengine, 1, ikey, ivel
+
+endin
+
+instr 99
+
+imvol init 7
+asigl, asigr fluidOut giengine
+ outs asigl*imvol, asigr*imvol
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2 60 100 ;play one note from score and...
+i 99 0 60 ;play virtual keyboard for 60 sec.
+e
+
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/fluidNote.csd b/examples/fluidNote.csd
new file mode 100644
index 0000000..3342ec2
--- /dev/null
+++ b/examples/fluidNote.csd
@@ -0,0 +1,46 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o fluidNote.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giengine fluidEngine
+; soundfont path to manual/examples
+isfnum fluidLoad "19Trumpet.sf2", giengine, 1
+ fluidProgramSelect giengine, 1, isfnum, 0, 56
+
+instr 1
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey init p4
+ivel init p5
+ fluidNote giengine, 1, ikey, ivel
+
+endin
+
+instr 99
+
+imvol init 7
+asigl, asigr fluidOut giengine
+ outs asigl*imvol, asigr*imvol
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2 60 100 ;play one note from score and...
+i 99 0 60 ;play virtual keyboard for 60 sec.
+e
+
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/fluidOut.csd b/examples/fluidOut.csd
new file mode 100644
index 0000000..64bfb69
--- /dev/null
+++ b/examples/fluidOut.csd
@@ -0,0 +1,72 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o fluidOut.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giengine1 fluidEngine
+; soundfont path to manual/examples
+isfnum1 fluidLoad "01hpschd.sf2", giengine1, 1
+ fluidProgramSelect giengine1, 1, isfnum1, 0, 0
+
+giengine2 fluidEngine
+; soundfont path to manual/examples
+isfnum2 fluidLoad "22Bassoon.sf2", giengine2, 1
+ fluidProgramSelect giengine2, 1, isfnum2, 0, 70
+
+instr 1
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey init p4
+ivel init p5
+ fluidNote giengine1, 1, ikey, ivel
+
+endin
+
+instr 2
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey init p4
+ivel init p5
+ fluidNote giengine2, 1, ikey, ivel
+
+endin
+
+instr 98
+
+imvol init 7
+asigl, asigr fluidOut giengine1
+ outs asigl*imvol, asigr*imvol
+endin
+
+instr 99
+
+imvol init 4
+asigl, asigr fluidOut giengine2 ;add a stereo flanger
+adelL linseg 0, p3*.5, 0.02, p3*.5, 0 ;max delay time =20ms
+adelR linseg 0.02, p3*.5, 0, p3*.5, 0.02 ;max delay time =20ms
+asigL flanger asigl, adelL, .6
+asigR flanger asigr, adelR, .6
+ outs asigL*imvol, asigR*imvol
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2 60 100 ;play one note of instr 1
+i 2 2 2 60 100 ;play another note of instr 2 and...
+i 98 0 60 ;play virtual keyboard for 60 sec.
+i 99 0 60
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/fluidProgramSelect.csd b/examples/fluidProgramSelect.csd
new file mode 100644
index 0000000..b21bcf0
--- /dev/null
+++ b/examples/fluidProgramSelect.csd
@@ -0,0 +1,46 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o fluidProgramSelect.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giengine fluidEngine
+; soundfont path to manual/examples
+isfnum fluidLoad "19Trumpet.sf2", giengine, 1
+ fluidProgramSelect giengine, 1, isfnum, 0, 56
+
+instr 1
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey init p4
+ivel init p5
+ fluidNote giengine, 1, ikey, ivel
+
+endin
+
+instr 99
+
+imvol init 7
+asigl, asigr fluidOut giengine
+ outs asigl*imvol, asigr*imvol
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2 60 100 ;play one note from score and...
+i 99 0 60 ;play virtual keyboard for 60 sec.
+e
+
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/fluidSetInterpMethod.csd b/examples/fluidSetInterpMethod.csd
new file mode 100644
index 0000000..c9e54f8
--- /dev/null
+++ b/examples/fluidSetInterpMethod.csd
@@ -0,0 +1,52 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o fluidSetInterpMethod.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giengine fluidEngine
+; soundfont path to manual/examples
+isfnum fluidLoad "07AcousticGuitar.sf2", giengine, 1
+ fluidProgramSelect giengine, 1, isfnum, 0, 0
+
+instr 1
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey init p4
+ivel init p5
+iInterpMethod = p6
+fluidSetInterpMethod giengine, 1, iInterpMethod
+ fluidNote giengine, 1, ikey, ivel
+
+endin
+
+instr 99
+
+imvol init 7
+asigl, asigr fluidOut giengine
+ outs asigl*imvol, asigr*imvol
+
+endin
+</CsInstruments>
+<CsScore>
+;hear the difference
+i 1 0 2 60 120 0 ;no interpolation
+i 1 3 2 72 120 0
+i 1 6 2 60 120 7 ;7th order interpolation
+i 1 9 2 72 120 7
+
+i 99 0 12
+
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/fluidcomplex.csd b/examples/fluidcomplex.csd
index 2b99883..f8d63bb 100644
--- a/examples/fluidcomplex.csd
+++ b/examples/fluidcomplex.csd
@@ -1,15 +1,18 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages Load external midi file
--d -m2 -o dac -T -F Anna.mid ;;;RT audio I/O
-
+;Load external midi file from manual/examples
+-odac -T -F Anna.mid;;;realtime audio I/O and midifile in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o fluidcomplex.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
+
sr = 44100
-ksmps = 128
+ksmps = 32
nchnls = 2
-0dbfs = 1
+0dbfs = 1
; Example by Istvan Varga
@@ -24,7 +27,7 @@ lp1:
; initialize FluidSynth
gifld fluidEngine
-gisf2 fluidLoad "07AcousticGuitar.sf2", gifld, 1
+gisf2 fluidLoad "sf_GMbank.sf2", gifld, 1
; k-rate version of fluidProgramSelect
@@ -61,9 +64,10 @@ nxt:
kgoto nxt
endif
- ; get audio output from FluidSynth
+; get audio output from FluidSynth
+ ivol init 3 ;a bit louder
aL, aR fluidOut gifld
- outs aL, aR
+ outs aL*ivol, aR*ivol
endin
</CsInstruments>
diff --git a/examples/flute.aiff b/examples/flute.aiff
new file mode 100644
index 0000000..7a1c9b7
--- /dev/null
+++ b/examples/flute.aiff
Binary files differ
diff --git a/examples/fmb3.csd b/examples/fmb3.csd
index 8117073..be3a5f8 100644
--- a/examples/fmb3.csd
+++ b/examples/fmb3.csd
@@ -1,49 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fmb3.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 15000
- kfreq = 440
- kc1 = 5
- kc2 = 5
- kvdepth = 0.005
- kvrate = 6
- ifn1 = 1
- ifn2 = 1
- ifn3 = 1
- ifn4 = 1
- ivfn = 1
- a1 fmb3 kamp, kfreq, kc1, kc2, kvdepth, kvrate, \
- ifn1, ifn2, ifn3, ifn4, ivfn
- out a1
-endin
+kfreq = 220
+kc1 = p4
+kc2 = p5
+kvrate = 6
+kvdpth line 0, p3, p6
+asig fmb3 .4, kfreq, kc1, kc2, kvdpth, kvrate
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
+;sine wave.
f 1 0 32768 10 1
-; Play Instrument #1 for two seconds.
-i 1 0 2
+i 1 0 2 5 5 0.1
+i 1 3 2 .5 .5 0.01
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fmbell.csd b/examples/fmbell.csd
index 85216b4..fe14a25 100644
--- a/examples/fmbell.csd
+++ b/examples/fmbell.csd
@@ -1,48 +1,56 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fmbell.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 10000
- kfreq = 880
- kc1 = 5
- kc2 = 5
- kvdepth = 0.005
- kvrate = 6
- ifn1 = 1
- ifn2 = 1
- ifn3 = 1
- ifn4 = 1
- ivfn = 1
-
- a1 fmbell kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
- out a1
+
+kamp = p4
+kfreq = 880
+kc1 = p5
+kc2 = p6
+kvdepth = 0.005
+kvrate = 6
+
+asig fmbell kamp, kfreq, kc1, kc2, kvdepth, kvrate
+ outs asig, asig
endin
+instr 2
+
+kamp = p4
+kfreq = 880
+kc1 = p5
+kc2 = p6
+kvdepth = 0.005
+kvrate = 6
+
+asig fmbell kamp, kfreq, kc1, kc2, kvdepth, kvrate, 1, 1, 1, 1, 1, p7
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
+; sine wave.
f 1 0 32768 10 1
-; Play Instrument #1 for three seconds.
-i 1 0 3
-e
+i 1 0 3 .2 5 5
+i 1 + 4 .3 .5 1
+s
+i 2 0 12 .2 5 5 16
+i 2 + 12 .3 .5 1 12
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fmmetal.csd b/examples/fmmetal.csd
index ccdb8bc..e833b66 100644
--- a/examples/fmmetal.csd
+++ b/examples/fmmetal.csd
@@ -1,50 +1,45 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fmmetal.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 10000
- kfreq = 440
- kc1 = 6
- kc2 = 5
- kvdepth = 0
- kvrate = 0
- ifn1 = 1
- ifn2 = 2
- ifn3 = 2
- ifn4 = 1
- ivfn = 1
- a1 fmmetal kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
- out a1
-endin
+kfreq = 440
+kvdepth = 0
+kvrate = 0
+ifn1 = 1
+ifn2 = 2
+ifn3 = 2
+ifn4 = 1
+ivfn = 1
+kc2 = p5
+kc1 line p4, p3, 1
+asig fmmetal .5, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a normal sine wave.
+; sine wave.
f 1 0 32768 10 1
-; Table #2, the "twopeaks.aiff" audio file.
+; the "twopeaks.aiff" audio file.
f 2 0 256 1 "twopeaks.aiff" 0 0 0
-; Play Instrument #1 for one second.
-i 1 0 1
-e
-
+i 1 0 4 6 5
+i 1 5 4 .2 10
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fmpercfl.csd b/examples/fmpercfl.csd
index 9a0b62c..7d4f6d1 100644
--- a/examples/fmpercfl.csd
+++ b/examples/fmpercfl.csd
@@ -1,48 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fmpercfl.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- kfreq = 220
- kc1 = 5
- kc2 = 5
- kvdepth = 0.005
- kvrate = 6
- ifn1 = 1
- ifn2 = 1
- ifn3 = 1
- ifn4 = 1
- ivfn = 1
-
- a1 fmpercfl kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
- out a1
+
+kfreq = 220
+kc1 = 5
+kvdepth = .01
+kvrate = 6
+
+kc2 line 5, p3, p4
+asig fmpercfl .5, kfreq, kc1, kc2, kvdepth, kvrate
+ outs asig, asig
endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
+; sine wave.
f 1 0 32768 10 1
-; Play Instrument #1 for one second.
-i 1 0 1
-e
-
+i 1 0 4 5
+i 1 5 8 .1
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fmrhode.csd b/examples/fmrhode.csd
index d2ad965..c38aadc 100644
--- a/examples/fmrhode.csd
+++ b/examples/fmrhode.csd
@@ -1,50 +1,45 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fmrhode.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- kfreq = 220
- kc1 = 6
- kc2 = 0
- kvdepth = 0.01
- kvrate = 3
- ifn1 = 1
- ifn2 = 1
- ifn3 = 1
- ifn4 = 2
- ivfn = 1
- a1 fmrhode kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
- out a1
-endin
+kfreq = 220
+kc1 = p4
+kc2 = p5
+kvdepth = 0.01
+kvrate = 3
+ifn1 = 1
+ifn2 = 1
+ifn3 = 1
+ifn4 = 2
+ivfn = 1
+asig fmrhode .5, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
+; sine wave.
f 1 0 32768 10 1
-; Table #2, the "fwavblnk.aiff" audio file.
+; audio file.
f 2 0 256 1 "fwavblnk.aiff" 0 0 0
-; Play Instrument #1 for two seconds.
-i 1 0 2
+i 1 0 3 6 0
+i 1 + . 6 3
+i 1 + . 20 0
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fmvoice.csd b/examples/fmvoice.csd
index 357844e..3ef85ec 100644
--- a/examples/fmvoice.csd
+++ b/examples/fmvoice.csd
@@ -1,58 +1,53 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fmvoice.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- kfreq = 110
- ; Use the fourth p-field for the vowel.
- kvowel = p4
- ktilt = 0
- kvibamt = 0.005
- kvibrate = 6
- ifn1 = 1
- ifn2 = 1
- ifn3 = 1
- ifn4 = 1
- ivibfn = 1
-
- a1 fmvoice kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate, ifn1, ifn2, ifn3, ifn4, ivibfn
- out a1
-endin
+kfreq = 110
+kvowel = p4 ; p4 = vowel (0 - 64)
+ktilt = p5
+kvibamt = 0.005
+kvibrate = 6
+
+asig fmvoice .5, kfreq, kvowel, ktilt, kvibamt, kvibrate
+outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
+; sine wave.
f 1 0 16384 10 1
-; p4 = vowel (a value from 0 to 64)
-; Play Instrument #1 for one second, vowel=1.
-i 1 0 1 1
-; Play Instrument #1 for one second, vowel=2.
-i 1 1 1 2
-; Play Instrument #1 for one second, vowel=3.
-i 1 2 1 3
-; Play Instrument #1 for one second, vowel=4.
-i 1 3 1 4
-; Play Instrument #1 for one second, vowel=5.
-i 1 4 1 5
-e
-
+i 1 0 1 1 0 ; tilt=0
+i 1 1 1 > .
+i 1 2 1 > .
+i 1 3 1 > .
+i 1 4 1 > .
+i 1 5 1 > .
+i 1 6 1 > .
+i 1 7 1 12 .
+
+i 1 10 1 1 90 ; tilt=90
+i 1 11 1 > .
+i 1 12 1 > .
+i 1 13 1 > .
+i 1 14 1 > .
+i 1 15 1 > .
+i 1 16 1 > .
+i 1 17 1 12 .
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fmwurlie.csd b/examples/fmwurlie.csd
index 96df346..6251c21 100644
--- a/examples/fmwurlie.csd
+++ b/examples/fmwurlie.csd
@@ -1,50 +1,45 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fmwurlie.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 22050
-kr = 2205
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- kfreq = 440
- kc1 = 6
- kc2 = 1
- kvdepth = 0.005
- kvrate = 6
- ifn1 = 1
- ifn2 = 1
- ifn3 = 1
- ifn4 = 2
- ivfn = 1
- a1 fmwurlie kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
- out a1
-endin
+kfreq = 440
+kc1 = p4
+kc2 = 1
+kvdepth = 0.05
+kvrate = 6
+ifn1 = 1
+ifn2 = 1
+ifn3 = 1
+ifn4 = 2
+ivfn = 1
+asig fmwurlie .5, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
+; sine wave
f 1 0 32768 10 1
-; Table #2, the "fwavblnk.aiff" audio file.
+; audio file
f 2 0 256 1 "fwavblnk.aiff" 0 0 0
-; Play Instrument #1 for two seconds.
-i 1 0 2
+i 1 0 3 6
+i 1 + 3 30
+i 1 + 2 60
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fof.csd b/examples/fof.csd
index b9413cc..4888853 100644
--- a/examples/fof.csd
+++ b/examples/fof.csd
@@ -1,60 +1,56 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fof.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
-; Instrument #1.
instr 1
; Combine five formants together to create
- ; an alto-"a" sound.
-
+ ; a transformation from an alto-"a" sound
+ ; to an alto-"i" sound.
; Values common to all of the formants.
kfund init 261.659
koct init 0
kris init 0.003
kdur init 0.02
kdec init 0.007
- iolaps = 14850
+ iolaps = 100
ifna = 1
ifnb = 2
itotdur = p3
; First formant.
k1amp = ampdb(0)
- k1form init 800
- k1band init 80
+ k1form line 800, p3, 350
+ k1band line 80, p3, 50
; Second formant.
- k2amp = ampdb(-4)
- k2form init 1150
- k2band init 90
+ k2amp line ampdb(-4), p3, ampdb(-20)
+ k2form line 1150, p3, 1700
+ k2band line 90, p3, 100
; Third formant.
- k3amp = ampdb(-20)
- k3form init 2800
+ k3amp line ampdb(-20), p3, ampdb(-30)
+ k3form line 2800, p3, 2700
k3band init 120
; Fourth formant.
- k4amp = ampdb(-36)
- k4form init 3500
- k4band init 130
+ k4amp init ampdb(-36)
+ k4form line 3500, p3, 3700
+ k4band line 130, p3, 150
; Fifth formant.
- k5amp = ampdb(-60)
+ k5amp init ampdb(-60)
k5form init 4950
- k5band init 140
+ k5band line 140, p3, 200
a1 fof k1amp, kfund, k1form, koct, k1band, kris, \
kdur, kdec, iolaps, ifna, ifnb, itotdur
@@ -67,24 +63,20 @@ instr 1
a5 fof k5amp, kfund, k5form, koct, k5band, kris, \
kdur, kdec, iolaps, ifna, ifnb, itotdur
- ; Combine all of the formants together.
- out (a1+a2+a3+a4+a5) * 16384
-endin
-
+ ; Combine all of the formants together
+asig sum (a1+a2+a3+a4+a5) * 13000
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-
-; Table #1, a sine wave.
+; sine wave
f 1 0 4096 10 1
-; Table #2.
+; sigmoid wave
f 2 0 1024 19 0.5 0.5 270 0.5
-; Play Instrument #1 for three seconds.
-i 1 0 3
+i 1 0 1
+i 1 2 5 ; same but slower
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fofilter.csd b/examples/fofilter.csd
index ac37c13..6fbab40 100755..100644
--- a/examples/fofilter.csd
+++ b/examples/fofilter.csd
@@ -1,32 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fofilter.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 10
-nchnls = 1
- instr 1
-kfe expseg 10, p3*0.9, 180, p3*0.1, 175
-kenv linen 1000, 0.05, p3, 0.05
-asig buzz kenv, kfe, sr/(2*kfe), 1
-afil fofilter asig, 900, 0.007, 0.04
-
- out afil
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
- endin
+instr 1
+
+kfe expseg 10, p3*0.9, 180, p3*0.1, 175
+kenv linen .1, 0.05, p3, 0.05
+asig buzz kenv, kfe, sr/(2*kfe), 1
+afil fofilter asig, 900, 0.007, 0.04
+ outs afil, afil
+
+endin
</CsInstruments>
<CsScore>
-; Table #1, a sine wave.
+; sine wave
f 1 0 16384 10 1
+
i 1 0 10
e
</CsScore>
-
-
</CsoundSynthesizer>
diff --git a/examples/fog.csd b/examples/fog.csd
index f97862d..3fde86f 100755..100644
--- a/examples/fog.csd
+++ b/examples/fog.csd
@@ -1,36 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fog.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
+
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
instr 1
;p4 = transposition factor
;p5 = speed factor
;p6 = function table for grain data
-i1 = sr/ftlen(p6) ;scaling to reflect sample rate and table length
-a1 phasor i1*p5 ;index for speed
-a2 fog 15000, 20, p4, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3
-
- out a2
+i1 = sr/ftlen(1) ;scaling to reflect sample rate and table length
+a1 phasor i1*p5 ;index for speed
+asigl fog .5, 15, p4, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3 ;left channel
+asigr fog .4, 25, p4+.2, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3, .5 ;right channel
+ outs asigl, asigr
endin
</CsInstruments>
<CsScore>
-f 1 0 131072 1 "beats.wav" 0 0 0
+f 1 0 131072 1 "fox.wav" 0 0 0
f 2 0 1024 19 .5 .5 270 .5
-i 1 0 6 1 .01 1
+i 1 0 10 .7 .1
+i 1 + 4 1.2 2
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fold.csd b/examples/fold.csd
index aa21186..db1c9b9 100644
--- a/examples/fold.csd
+++ b/examples/fold.csd
@@ -1,39 +1,36 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fold.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Use an ordinary sine wave.
- asig oscils 30000, 100, 1
- ; Vary the fold-over amount from 1 to 200.
- kincr line 1, p3, 200
- a1 fold asig, kincr
+asig poscil3 .8, 400, 1 ;very clean sine
+kincr line p4, p3, p5
+asig fold asig, kincr
+ outs asig, asig
- out a1
endin
-
-
</CsInstruments>
<CsScore>
+;sine wave.
+f 1 0 16384 10 1
-; Play Instrument #1 for four seconds.
-i 1 0 4
-e
-
+i 1 0 4 2 2
+i 1 5 4 5 5
+i 1 10 4 10 10
+i 1 15 4 1 100 ; Vary the fold-over amount from 1 to 100
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/follow.csd b/examples/follow.csd
index 907d43f..2736df8 100644
--- a/examples/follow.csd
+++ b/examples/follow.csd
@@ -1,52 +1,45 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o follow.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - play a WAV file.
instr 1
- a1 soundin "beats.wav"
- out a1
-endin
-
-; Instrument #2 - have another waveform follow the WAV file.
-instr 2
- ; Follow the WAV file.
- as soundin "beats.wav"
- af follow as, 0.01
- ; Use a sine waveform.
- as oscil 4000, 440, 1
- ; Have it use the amplitude of the followed WAV file.
- a1 balance as, af
+asig soundin "beats.wav"
+ outs asig, asig
- out a1
endin
+instr 2 ;envelope follower
+as soundin "beats.wav"
+as = as*.7 ;reduce volume a bit
+at tone as, 500 ;smooth estimated envelope
+af follow at, p4
+asin poscil3 .5, 440, 1
+; "beats.wav" provides amplitude for poscil
+asig balance asin, af
+ outs asig, asig
+
+endin
</CsInstruments>
<CsScore>
-
-; Just generate a nice, ordinary sine wave.
+;sine wave.
f 1 0 32768 10 1
-; Play Instrument #1 for two seconds.
i 1 0 2
-; Play Instrument #2 for two seconds.
-i 2 2 2
+i 2 2 2 0.001 ;follow quickly
+i 2 5 3 0.2 ;follow slowly
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/follow2.csd b/examples/follow2.csd
index 5f11a7d..e49b6ee 100644
--- a/examples/follow2.csd
+++ b/examples/follow2.csd
@@ -1,49 +1,41 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o follow2.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - play a WAV file.
instr 1
- a1 soundin "beats.wav"
- out a1
+
+asig soundin "beats.wav"
+ outs asig, asig
endin
-; Instrument #2 - have another waveform follow the WAV file.
-instr 2
- ; Follow the WAV file.
- as soundin "beats.wav"
- af follow2 as, 0.01, 0.1
+instr 2 ;using follow2
- ; Use a noise waveform.
- ar rand 44100
- ; Have it use the amplitude of the followed WAV file.
- a1 balance ar, af
+as soundin "beats.wav"
+af follow2 as, p4, p5
+ar rand 44100 ;noise
+; "beats.wav" provides amplitude for noise
+asig balance ar, af
+ outs asig, asig
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for two seconds.
i 1 0 2
-; Play Instrument #2 for two seconds.
-i 2 2 2
-e
-
+i 2 2 2 0.001 0.01 ;quick attack & deacy
+i 2 5 2 0.1 0.5 ;slow attack & deacy
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/foscil.csd b/examples/foscil.csd
index 614a5b4..8e31e69 100644
--- a/examples/foscil.csd
+++ b/examples/foscil.csd
@@ -1,43 +1,38 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o foscil.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - a basic FM waveform.
instr 1
- kamp = 10000
- kcps = 440
- kcar = 600
- kmod = 210
- kndx = 2
- ifn = 1
- a1 foscil kamp, kcps, kcar, kmod, kndx, ifn
- out a1
-endin
+kcps = 440
+kcar = 1
+kmod = p4
+kndx line 0, p3, 20 ;intensivy sidebands
+asig foscil .5, kcps, kcar, kmod, kndx, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
+; sine
f 1 0 16384 10 1
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+i 1 0 9 .01 ;vibrato
+i 1 10 . 1
+i 1 20 . 1.414 ;gong-ish
+i 1 30 5 2.05 ;with "beat"
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/foscili.csd b/examples/foscili.csd
index 2e0771a..8be8cf3 100644
--- a/examples/foscili.csd
+++ b/examples/foscili.csd
@@ -1,61 +1,38 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o foscili.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - a basic FM waveform.
instr 1
- kamp = 10000
- kcps = 440
- kcar = 600
- kmod = 210
- kndx = 2
- ifn = 1
- a1 foscil kamp, kcps, kcar, kmod, kndx, ifn
- out a1
-endin
+kcps = 440
+kcar = 1
+kmod = p4
+kndx line 0, p3, 20 ;intensivy sidebands
-; Instrument #2 - the basic FM waveform with extra interpolation.
-instr 2
- kamp = 10000
- kcps = 440
- kcar = 600
- kmod = 210
- kndx = 2
- ifn = 1
+asig foscili .5, kcps, kcar, kmod, kndx, 1
+ outs asig, asig
- a1 foscili kamp, kcps, kcar, kmod, kndx, ifn
- out a1
endin
-
-
</CsInstruments>
<CsScore>
+; sine
+f 1 0 16384 10 1
-; Table #1, a sine wave table with a small amount of data.
-f 1 0 4096 10 1
-
-; Play Instrument #1, the basic FM instrument, for
-; two seconds. This should sound relatively rough.
-i 1 0 2
-
-; Play Instrument #2, the interpolated FM instrument, for
-; two seconds. This should sound relatively smooth.
-i 2 2 2
+i 1 0 9 .01 ;vibrato
+i 1 10 . 1
+i 1 20 . 1.414 ;gong-ish
+i 1 30 5 2.05 ;with "beat"
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fout.csd b/examples/fout.csd
index 89526af..33ea409 100644
--- a/examples/fout.csd
+++ b/examples/fout.csd
@@ -1,41 +1,54 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fout.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
-; Instrument #1.
instr 1
- iamp = 10000
- icps = 440
- iphs = 0
- ; Create an audio signal.
- asig oscils iamp, icps, iphs
+asig poscil3 .5, 880, giSine
+;write a raw file: 32 bits with header
+ fout "fout_880.wav", 15, asig
+ outs asig, asig
+
+endin
+
+instr 2
+
+klfo lfo 1, 2, 0
+asig poscil3 .5*klfo, 220, giSine
+;write an aiff file: 32 bits with header
+ fout "fout_aif.aiff", 25, asig
+; fout "fout_all3.wav", 14, asig
+ outs asig, asig
- ; Write the audio signal to a headerless audio file
- ; called "fout.raw".
- fout "fout.raw", 1, asig
endin
+instr 99 ;read the stereo csound output buffer
+allL, allR monitor
+;write the output of csound to an audio file
+;to a wav file: 16 bits with header
+ fout "fout_all.wav", 14, allL, allR
+
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for 2 seconds.
i 1 0 2
+i 2 0 3
+i 99 0 3
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/fouti.csd b/examples/fouti.csd
new file mode 100644
index 0000000..d794b88
--- /dev/null
+++ b/examples/fouti.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o fouti.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gihand fiopen "test.txt", 0
+
+instr 1
+
+ires random 0, 10
+ fouti gihand, 0, 1, ires
+ ficlose gihand
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 1
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/foutir.csd b/examples/foutir.csd
new file mode 100644
index 0000000..b2f0df1
--- /dev/null
+++ b/examples/foutir.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o foutir.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gihand fiopen "foutir.sco", 0
+
+instr 1 ; play virtual midi keyboard
+
+inot notnum ;just for priting on screen
+icps cpsmidi
+iamp ampmidi 1
+
+ foutir gihand, 0, 1, icps, iamp
+ prints "WRITING:\n"
+ prints "note = %f,velocity = %f\n", icps, iamp ;prints them
+ ficlose gihand
+asig pluck iamp, icps, 1000, 0, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+f 0 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/fox.ats b/examples/fox.ats
new file mode 100644
index 0000000..9bd7f2c
--- /dev/null
+++ b/examples/fox.ats
Binary files differ
diff --git a/examples/fractalnoise.csd b/examples/fractalnoise.csd
new file mode 100644
index 0000000..9a5a467
--- /dev/null
+++ b/examples/fractalnoise.csd
@@ -0,0 +1,29 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kbeta linseg 0, p3/4, 2, p3/4, 0, p3*0.1, 2, p3*0.15, 0
+seed 20120124
+aout fractalnoise 0.05, kbeta
+outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+i1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/ftchnls.csd b/examples/ftchnls.csd
index 99733de..d4545a2 100644
--- a/examples/ftchnls.csd
+++ b/examples/ftchnls.csd
@@ -1,37 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+;-odac ;;;realtime audio out
+-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o ftchnls.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Print out the number of channels in Table #1.
- ichnls = ftchnls(1)
- print ichnls
-endin
+ichnls = ftchnls(p4)
+print ichnls
+
+if (ichnls == 1) then
+ asigL loscil3 .8, 4, p4
+ asigR = asigL
+elseif (ichnls == 2) then
+ asigL, asigR loscil3 .8, 4, p4
+;safety precaution if not mono or stereo
+else
+ asigL = 0
+ asigR = 0
+endif
+ outs asigL, asigR
+endin
</CsInstruments>
<CsScore>
-
-; Table #1: Use an audio file, Csound will determine its size.
f 1 0 0 1 "mary.wav" 0 0 0
+f 2 0 0 1 "kickroll.wav" 0 0 0
-; Play Instrument #1 for 1 second.
-i 1 0 1
+i 1 0 3 1 ;mono file
+i 1 + 2 2 ;stereo file
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/ftfree.csd b/examples/ftfree.csd
new file mode 100644
index 0000000..556150a
--- /dev/null
+++ b/examples/ftfree.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o ftfree.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gitempTable ftgen 0, 0, 65537, 10, 1
+
+instr 1
+
+aout oscili .5, 440, gitempTable
+ outs aout, aout
+
+;free temp table at deinit time
+ftfree gitempTable, 1
+print gitempTable
+
+endin
+</CsInstruments>
+<CsScore>
+f 0 5
+
+i 1 0 .1
+i 1 3 1
+
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/ftgen.csd b/examples/ftgen.csd
index 710c254..2333d87 100644
--- a/examples/ftgen.csd
+++ b/examples/ftgen.csd
@@ -1,41 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o ftgen.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs =1
-; Table #1, a sine wave using the GEN10 routine.
-gitemp ftgen 1, 0, 16384, 10, 1
+gisine ftgen 1, 0, 16384, 10, 1 ;sine wave
+gisquare ftgen 2, 0, 16384, 10, 1, 0 , .33, 0, .2 , 0, .14, 0 , .11, 0, .09 ;odd harmonics
+gisaw ftgen 3, 0, 16384, 10, 0, .2, 0, .4, 0, .6, 0, .8, 0, 1, 0, .8, 0, .6, 0, .4, 0,.2 ;even harmonics
-; Instrument #1 - a basic oscillator.
instr 1
- kamp = 10000
- kcps = 440
- ; Use Table #1.
- ifn = 1
-
- a1 oscil kamp, kcps, ifn
- out a1
-endin
+ifn = p4
+asig poscil .6, 200, ifn
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+i 1 0 2 1 ;sine wave
+i 1 3 2 2 ;odd harmonics
+i 1 6 2 3 ;even harmonics
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/ftgenonce.csd b/examples/ftgenonce.csd
new file mode 100644
index 0000000..fbde12a
--- /dev/null
+++ b/examples/ftgenonce.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o ftgenonce.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+; Use ftgenonce instead of ftgen, ftgentmp, or f statement
+iHz = p4
+isine ftgenonce 0, 0, 1024, 10, 1
+aoscili pluck .7, iHz, 100, isine, 1
+aadsr adsr 0.015, 0.07, 0.6, 0.3
+asig = aoscili * aadsr
+ outs asig, asig
+endin
+
+</CsInstruments>
+<CsScore>
+
+i 1 0 1 220
+i 1 2 1 261
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/ftlen.csd b/examples/ftlen.csd
index 5844458..57f4391 100644
--- a/examples/ftlen.csd
+++ b/examples/ftlen.csd
@@ -1,38 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o ftlen.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs =1
-; Instrument #1.
instr 1
- ; Print out the size of Table #1.
- ; The size will be the number of points excluding the guard point.
- ilen = ftlen(1)
- print ilen
-endin
+ift = ftlen(p4)
+ print ift
+aout loscil3 .8, 4, p4
+ outs aout, aout
-</CsInstruments>
-<CsScore>
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 0 1 "fox.wav" 0 0 0 ;Csound computes tablesize
+f 2 0 0 1 "beats.wav" 0 0 0 ;Csound computes tablesize
-; Table #1: Use an audio file, Csound will determine its size.
-f 1 0 0 1 "mary.wav" 0 0 0
+i 1 0 3 1 ;"fox.wav"
+i 1 3 3 2 ;"beats.wav"
-; Play Instrument #1 for 1 second.
-i 1 0 1
e
-
-
</CsScore>
-</CsoundSynthesizer>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/ftlptim.csd b/examples/ftlptim.csd
index 16448de..92527c2 100644
--- a/examples/ftlptim.csd
+++ b/examples/ftlptim.csd
@@ -1,37 +1,31 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o ftlptim.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs =1
-; Instrument #1.
instr 1
- ; Print out the loop-segment start time in Table #1.
- itim = ftlptim(1)
- print itim
-endin
+itim = ftlptim(1)
+ print itim
+aout loscil3 .8, 40, 1
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
+f 1 0 0 1 "Church.wav" 0 0 0 ;Csound computes tablesize
-; Table #1: Use an audio file, Csound will determine its size.
-f 1 0 0 1 "mary.wav" 0 0 0
-
-; Play Instrument #1 for 1 second.
-i 1 0 1
+i 1 0 5
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/ftmorf.csd b/examples/ftmorf.csd
index 1b41b1c..cd7e471 100644
--- a/examples/ftmorf.csd
+++ b/examples/ftmorf.csd
@@ -1,26 +1,26 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o ftmorf.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs =1
instr 1
-kndx line 0, p3, 7
- ftmorf kndx, 1, 2
-asig oscili 30000, 440, 2
- out asig
-endin
+kndx line 0, p3, 7
+ ftmorf kndx, 1, 2
+asig oscili .8, 440, 2
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
@@ -35,9 +35,7 @@ f8 0 1024 10 0 0 0 0 0 1
f9 0 1024 10 0 0 0 0 0 0 1
f10 0 1024 10 1 1 1 1 1 1 1
-i1 0 10
+i1 0 15
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/ftsr.csd b/examples/ftsr.csd
index 914a16f..96376b8 100644
--- a/examples/ftsr.csd
+++ b/examples/ftsr.csd
@@ -1,37 +1,36 @@
-<CsoundSynthesizer>
-<CsOptions>
-; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
-; For Non-realtime ouput leave only the line below:
-; -o ftsr.wav -W ;;; for file output any platform
-</CsOptions>
-<CsInstruments>
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o ftsr.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
instr 1
- ; Print out the sampling rate of Table #1.
- isr = ftsr(1)
- print isr
-endin
-
+itab = p4
+isr = ftsr(itab)
+prints "sampling-rate of table number %d = %d\n", itab, isr
+
+endin
</CsInstruments>
<CsScore>
-
-; Table #1: Use an audio file.
-f 1 0 262144 1 "mary.wav" 0 0 0
-
-; Play Instrument #1 for 1 second.
-i 1 0 1
+f 1 0 0 1 "kickroll.wav" 0 0 0 ;stereo file
+f 2 0 0 1 "ahh.aiff" 0 0 0 ;& different formats
+f 3 0 0 1 "beats.mp3" 0 0 0
+f 4 0 0 1 "beats.ogg" 0 0 0
+
+i 1 0 1 1
+i 1 + 1 2
+i 1 + 1 3
+i 1 + 1 4
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/gain.csd b/examples/gain.csd
index 43112c4..7e21311 100644
--- a/examples/gain.csd
+++ b/examples/gain.csd
@@ -1,39 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gain.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- asrc buzz 30000, 440, sr/440, 1 ; band-limited pulse train.
+
+ asrc buzz .8, 440, sr/440, 1 ; band-limited pulse train.
a1 reson asrc, 1000, 100 ; Sent through
a2 reson a1, 3000, 500 ; 2 filters
krms rms asrc ; then balanced
afin gain a2, krms ; with source
- out afin
+ outs afin, afin
endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
+;sine wave.
f 1 0 16384 10 1
-; Play Instrument #1 for two seconds.
i 1 0 2
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/gaussi.csd b/examples/gaussi.csd
new file mode 100644
index 0000000..1e2d893
--- /dev/null
+++ b/examples/gaussi.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o exprand.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+klambda gaussi 100, 1, 3
+ printk2 klambda ; look
+aout oscili 0.8, 440+klambda, 1 ; & listen
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+; sine wave
+f 1 0 16384 10 1
+
+i 1 0 4
+e
+
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/gausstrig-2.csd b/examples/gausstrig-2.csd
new file mode 100644
index 0000000..1a06d61
--- /dev/null
+++ b/examples/gausstrig-2.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kfrq0 oscil 8, 0.25, 1
+ktrig metro 1
+kfrq samphold kfrq0+8, ktrig
+seed 20120125
+aimp gausstrig 0.5, kfrq, 0.5, 1
+aenv filter2 aimp, 1, 1, 0.993, 0.993
+anoi fractalnoise 0.2, 1.7
+al = anoi*aenv
+ar delay al, 0.02
+outs al, ar
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1
+i1 0 16
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gausstrig.csd b/examples/gausstrig.csd
new file mode 100644
index 0000000..e544ff0
--- /dev/null
+++ b/examples/gausstrig.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kdev line 0, p3, 0.9
+seed 20120125
+aimp gausstrig 0.5, 10, kdev
+aenv filter2 aimp, 1, 1, 0.993, 0.993
+anoi fractalnoise 0.2, 1.7
+al = anoi*aenv
+ar delay al, 0.02
+outs al, ar
+
+endin
+</CsInstruments>
+<CsScore>
+i1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gbuzz.csd b/examples/gbuzz.csd
index 86c5aae..60085e4 100644
--- a/examples/gbuzz.csd
+++ b/examples/gbuzz.csd
@@ -1,43 +1,38 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gbuzz.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs =1
-; Instrument #1.
instr 1
- kamp = 20000
- kcps = 440
- knh = 3
- klh = 2
- kmul = 0.7
- ifn = 1
-
- a1 gbuzz kamp, kcps, knh, klh, kmul, ifn
- out a1
-endin
+kcps = 220
+knh = p4 ;total no. of harmonics
+klh = p5 ;lowest harmonic
+kmul line 0, p3, 1 ;increase amplitude of
+ ;higer partials
+asig gbuzz .6, kcps, knh, klh, kmul, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a simple cosine waveform.
+; a cosine wave
f 1 0 16384 11 1
-; Play Instrument #1 for one second.
-i 1 0 1
+i 1 0 3 3 1 ;3 harmonics, lowest harmonic=1
+i 1 + 3 30 1 ;30 harmonics, lowest harmonic=1
+i 1 + 3 3 2 ;3 harmonics, lowest harmonic=3
+i 1 + 3 30 2 ;30 harmonics, lowest harmonic=3
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/gen01.csd b/examples/gen01.csd
index 9a2c0b4..bcd58b1 100644
--- a/examples/gen01.csd
+++ b/examples/gen01.csd
@@ -1,42 +1,48 @@
-<CsoundSynthesizer>
-<CsOptions>
-; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
-; For Non-realtime ouput leave only the line below:
-; -o gen01.wav -W ;;; for file output any platform
-</CsOptions>
-<CsInstruments>
-
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- kamp = 30000
- kcps = 1
- ifn = 1
- ibas = 1
-
- ; Play the audio sample stored in Table #1.
- a1 loscil kamp, kcps, ifn, ibas
- out a1
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen01.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;plays deferred and non-deferred sounds with loscil
+
+ifn = p4
+ibas = 1
+
+asig loscil 1, 1, ifn, ibas
+ outs asig, asig
+
endin
+instr 2 ;plays only non-deffered sound
+isnd = p4
+aread line sr*p3, p3, 0 ;play this backward
+asig tablei aread, isnd ;use table 1
+ outs asig, asig
+
+endin
</CsInstruments>
<CsScore>
+f 1 0 131072 1 "beats.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
-; Table #1: read an audio file (using GEN01).
-f 1 0 131072 1 "beats.wav" 0 4 0
+i 1 0 1 1
+i 1 + 1 2
+i 1 + 1 3
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+i 2 4 2 1 ;non-deffered sound for instr. 2
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/gen02.csd b/examples/gen02.csd
index eec5385..3213307 100644
--- a/examples/gen02.csd
+++ b/examples/gen02.csd
@@ -1,49 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen02.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Create an index over the length of our entire note.
- kcps init 1/p3
- kndx phasor kcps
- ; Read Table #1 with our index.
- ifn = 1
- ixmode = 1
- kamp tablei kndx, ifn, ixmode
+ifn = p4 ;choose different tables of GEN02
+kcps init 1/p3 ;index over the length of entire note
+kndx phasor kcps
+ixmode = 1 ;normalize index data
+kamp tablei kndx, ifn, ixmode
+asig poscil kamp, 440, 1 ;use GEN02 as envelope for amplitude
+ outs asig, asig
- ; Create a sine wave, use the Table #1 values to control
- ; the amplitude. This creates a sound with a long attack.
- a1 oscil kamp*30000, 440, 2
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-
-; Table #1: an envelope with a long attack (using GEN02).
-f 1 0 16 2 0 1 2 3 4 5 6 7 8 9 10 11 0
-; Table #2, a sine wave.
-f 2 0 16384 10 1
-
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+f 1 0 8192 10 1 ;sine wave
+f 2 0 5 2 0 2 0
+f 3 0 5 2 0 2 10 0
+f 4 0 9 2 0 2 10 100 0
+
+i 1 0 2 2
+i 1 3 2 3
+i 1 6 2 4
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/gen03.csd b/examples/gen03.csd
index b7d8613..69e86d9 100644
--- a/examples/gen03.csd
+++ b/examples/gen03.csd
@@ -1,49 +1,65 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen03.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Create an index over the length of our entire note.
- kcps init 1/p3
- kndx phasor kcps
-
- ; Read Table #1 with our index.
- ifn = 1
- ixmode = 1
- kamp table kndx, ifn, ixmode
-
- ; Create a sine wave, use the Table #1 values to control
- ; the amplitude.
- a1 oscil kamp*30000, 440, 2
- out a1
-endin
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+;example by Russell Pinkston - Univ. of Texas (but slightly modified)
+
+gisine ftgen 1, 0, 16384, 10, 1 ;sine wave
+instr 1
+ihertz = cpspch(p4)
+ipkamp = p5
+iwsfn = p6 ;waveshaping function
+inmfn = p7 ;normalization function
+aenv linen 1, .01, p3, .1 ;overall amp envelope
+actrl linen 1, 2, p3, 2 ;waveshaping index control
+aindex poscil actrl/2, ihertz, gisine ;sine wave to be distorted
+asignal tablei .5+aindex, iwsfn, 1 ;waveshaping
+anormal tablei actrl, inmfn,1 ;amplitude normalization
+asig = asignal*anormal*ipkamp*aenv
+asig dcblock2 asig ;get rid of possible DC
+ outs asig, asig
+
+endin
</CsInstruments>
<CsScore>
+; first four notes are specific Chebyshev polynomials using gen03. The values were obtained from Dodge page 147
-; Table #1: a polynomial function (using GEN03).
-f 1 0 1025 3 -1 1 5 4 3 2 2 1
-; Table #2, a sine wave.
-f 2 0 16384 10 1
+f4 0 513 3 -1 1 0 1 ; First-order Chebyshev: x
+f5 0 257 4 4 1 ; Normalizing function for fn4
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
-e
+f6 0 513 3 -1 1 -1 0 2 ; Second-order Chebyshev: 2x2 - 1
+f7 0 257 4 6 1 ; Normalizing function for fn6
+
+f8 0 513 3 -1 1 0 -3 0 4 ; Third-order Chebyshev: 4x3 - 3x
+f9 0 257 4 8 1 ; Normalizing function for fn8
+f10 0 513 3 -1 10 0 -7 0 56 0 -112 0 64 ; Seventh-order Chebyshev: 64x7 - 112x5 + 56x3 - 7x
+f11 0 257 4 10 1 ; Normalizing function for fn10
+f12 0 513 3 -1 1 5 4 3 2 2 1 ; a 4th order polynomial function over the x-interval -1 to 1
+f13 0 257 4 12 1 ; Normalizing function for fn12
+
+; five notes with same fundamental, different waveshape & normalizing functions
+; pch amp wsfn nmfn
+i1 0 3 8.00 .7 4 5
+i1 + . . . 6 7
+i1 + . . . 8 9
+i1 + . . . 10 11
+i1 + . . . 12 13
+
+e
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/gen04.csd b/examples/gen04.csd
new file mode 100644
index 0000000..54b31b3
--- /dev/null
+++ b/examples/gen04.csd
@@ -0,0 +1,53 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen04.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisine ftgen 0, 0, 16384, 10, 1 ;sine wave
+
+instr 1
+
+ihertz = cpspch(p4)
+ipkamp = p5
+iwsfn = p6 ;waveshaping function
+inmfn = p7 ;normalization function
+agate linen 1, .01, p3, .1 ;overall amp envelope
+kctrl linen .9, 2, p3, 2 ;waveshaping index control
+aindex poscil kctrl/2, ihertz, gisine ;sine wave to be distorted
+asignal tablei .5+aindex, iwsfn, 1 ;waveshaping
+knormal tablei 1/kctrl, inmfn , 1 ;amplitude normalization
+ outs asignal*knormal*ipkamp*agate, asignal*knormal*ipkamp*agate
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 64 21 6 ;Gaussian (random) distribution
+f2 0 33 4 1 1 ;normalizing function with midpoint bipolar offset
+
+s
+; st dur pch amp wsfn inmfn
+i1 0 4 6.00 .7 1 2
+i1 4 . 7.00 .
+i1 8 . 8.00 .
+;-------------------------------------------------------------------------------------
+f3 0 1025 13 1 1 0 5 0 5 0 10 ;Chebyshev algorithm
+f4 0 513 4 3 1 ;normalizing function with midpoint bipolar offset
+s
+; st dur pch amp wsfn inmfn
+i1 0 4 6.00 .9 3 4
+i1 4 . 7.00 .
+i1 8 . 8.00 .
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen05.csd b/examples/gen05.csd
index effef65..33ba717 100644
--- a/examples/gen05.csd
+++ b/examples/gen05.csd
@@ -1,49 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen05.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Create an index over the length of our entire note.
- kcps init 1/p3
- kndx phasor kcps
-
- ; Read Table #1 with our index.
- ifn = 1
- ixmode = 1
- kamp table kndx, ifn, ixmode
-
- ; Create a sine wave, use the Table #1 values to control
- ; the amplitude. This creates a nice percussive sound.
- a1 oscil kamp*30000, 440, 2
- out a1
-endin
+ifn = p4 ;choose different tables for GEN05
+kcps init 1/p3 ;index over the length of entire note
+kndx phasor kcps
+ixmode = 1 ;normalize index data
+kamp tablei kndx, ifn, ixmode
+asig poscil kamp, 440, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 1 0 8192 10 1 ;sine wave
+f 2 0 129 5 1 100 0.0001 29 ;short attack
+f 3 0 129 5 0.00001 87 1 22 .5 20 0.0001 ;long attack
-; Table #1: a percussive envelope (using GEN05).
-f 1 0 64 5 1 2 120 60 1 1 0.001 1
-; Table #2, a sine wave.
-f 2 0 16384 10 1
-
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
-e
+i 1 0 2 2
+i 1 3 2 3
+e
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/gen06.csd b/examples/gen06.csd
index af802ae..fee9247 100644
--- a/examples/gen06.csd
+++ b/examples/gen06.csd
@@ -1,51 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen06.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Create an index over the length of our entire note.
- kcps init 1/p3
- kndx phasor kcps
- ; Read Table #1 with our index.
- ifn = 1
- ixmode = 1
- kval table kndx, ifn, ixmode
+ifn = p4 ;choose between tables
+kcps init 1/p3 ;create index over duration of note.
+kndx phasor kcps
+ixmode = 1
+kval table kndx, ifn, ixmode ;normalize mode
- ; Generate a sine waveform, use our Table #1 value to
- ; vary its frequency by 100 Hz from its base frequency.
- ibasefreq = 440
- kfreq = kval * 100
- a1 oscil 20000, ibasefreq + kfreq, 2
- out a1
+kfreq = kval * 30 ;scale frequency to emphasixe effect
+asig poscil .7, 220 + kfreq, 1 ;add to frequency
+ outs asig, asig
+
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave.
+f 2 0 513 6 1 128 -1 128 1 64 -.5 64 .5 16 -.5 8 1 16 -.5 8 1 16 -.5 84 1 16 -.5 8 .1 16 -.1 17 0
+f 3 0 513 6 0 128 0.5 128 1 128 0 129 -1
-; Table #1: a curve (using GEN06).
-f 1 0 65 6 0 16 0.5 16 1 16 0 16 -1
-; Table #2, a sine wave.
-f 2 0 16384 10 1
-
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+i 1 0 3 2
+i 1 4 3 3
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/gen07.csd b/examples/gen07.csd
index ef0c3ef..8666ce4 100644
--- a/examples/gen07.csd
+++ b/examples/gen07.csd
@@ -1,41 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen07.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- kamp = 30000
- kcps = 440
- ifn = 1
-
- ; Play the sine wave stored in Table #1.
- a1 oscil kamp, kcps, ifn
- out a1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;use GEN07 to alter frequency
+
+ifn = p4 ;use different GEN07 tables
+kcps init 10/p3 ;index ftable 10 times over the duration of entire note
+kndx phasor kcps
+ixmode = 1 ;normalize index data
+kfrq tablei kndx, ifn, ixmode
+kfrq = kfrq*1000 ;scale
+asig poscil .8, 1220+kfrq, 1 ;add to frequency
+ outs asig, asig
+
endin
-
-
</CsInstruments>
<CsScore>
-
-; Table #1: a sawtooth wave (using GEN07).
-f 1 0 256 7 0 128 1 0 -1 128 0
-
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+f 1 0 8192 10 1 ;sine wave
+f 2 0 1024 7 0 512 1 0 -1 512 0 ;sawtooth up and down
+f 3 0 1024 7 1 512 1 0 -1 512 -1 ;square
+f 4 0 1024 7 1 1024 -1 ;saw down
+
+i 1 0 2 2
+i 1 + 2 3
+i 1 + 1 4
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/gen08.csd b/examples/gen08.csd
index 3da161d..8c853b1 100644
--- a/examples/gen08.csd
+++ b/examples/gen08.csd
@@ -1,51 +1,41 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen08.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Create an index over the length of our entire note.
- kcps init 1/p3
- kndx phasor kcps
- ; Read Table #1 with our index.
- ifn = 1
- ixmode = 1
- kval table kndx, ifn, ixmode
-
- ; Generate a sine waveform, use our Table #1 value to
- ; vary its frequency by 100 Hz from its base frequency.
- ibasefreq = 440
- kfreq = kval * 100
- a1 oscil 20000, ibasefreq + kfreq, 2
- out a1
+ifn = p4 ;choose between tables
+kcps init 1/p3 ;create index over duration of note.
+kndx phasor kcps
+ixmode = 1
+kval table kndx, 2, ixmode ;normalize index data
+
+ibasefreq = 440
+kfreq = kval * 100 ;scale
+asig poscil .7, ibasefreq + kfreq, 1 ;and add to frequency
+ outs asig, asig
+
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave.
+f 2 0 65 8 0 16 1 16 1 16 0 17 0
+f 3 0 65 8 -1 32 1 2 0 14 0 17 0
-; Table #1: a curve with a smooth hump (using GEN08).
-f 1 0 65 8 0 16 0 16 1 16 0 16 0
-; Table #2, a sine wave.
-f 2 0 16384 10 1
-
-; Play Instrument #1 for two seconds.
-i 1 0 2
+i 1 0 2 1
+i 1 3 2 2
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/gen09.csd b/examples/gen09.csd
index c2fb8e7..5ebe56c 100644
--- a/examples/gen09.csd
+++ b/examples/gen09.csd
@@ -1,42 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen09.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gi1 ftgen 1,0,2^10,9, 1,3,0, 3,1,0, 9,0.333,180 ;an approximation of a square wave
+gi2 ftgen 2,0,2^10,9, 1,3,180, 3,1,0, 9,0.333,0 ;same values as gi1, except some phase values
+gi3 ftgen 3,0,2^10,9, 1, .4, 0, 2.2, .5, 0, 3.8, 1, 0 ;inharmonic, but does not sound well --> wave does not end at same point as where it begins --> artefacts
+gi4 ftgen 4,0,2^10,9, 10, .4, 0, 22, .5, 0, 38, 1, 0 ;the same proportions, but value of partial number is multiplied 10 times -->the sound is much clearer,
+ ;because the sudden "jump" like the one in gi3 will pop up only once in 10 repetitions
-; Instrument #1.
instr 1
- kamp = 30000
- kcps = 440
- ifn = 1
- ; Play the waveform stored in Table #1.
- a1 oscil kamp, kcps, ifn
- out a1
-endin
+kamp = .6
+kcps = 220
+ifn = p4
+asig poscil kamp, kcps*p5, ifn
+ outs asig,asig
+endin
</CsInstruments>
<CsScore>
-; Table #1: a cosine wave (using GEN09).
-; This is a sine wave with an initial phase of 90 degrees.
-f 1 0 16384 9 1 1 90
+i 1 0 2 1 1 ;subtle difference between table 1 and 2
+i 1 3 2 2 1
+i 1 7 2 3 1 ;big difference between table 3 and 4
+i 1 10 2 4 .1 ;p5 has to compensate for the 10 repetitions of gi4 as opposed to gi3 to get the same pitch
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/gen10.csd b/examples/gen10.csd
index 1f14880..77c757a 100644
--- a/examples/gen10.csd
+++ b/examples/gen10.csd
@@ -1,41 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen10.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- kcps = 440
- ifn = 1
- ; Play the sine wave stored in Table #1.
- a1 oscil kamp, kcps, ifn
- out a1
-endin
+kamp = .6
+kcps = 440
+ifn = p4
+asig oscil kamp, kcps, ifn
+ outs asig,asig
+endin
</CsInstruments>
<CsScore>
+f1 0 16384 10 1 ; Sine
+f2 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 ; Sawtooth
+f3 0 16384 10 1 0 0.3 0 0.2 0 0.14 0 .111 ; Square
+f4 0 16384 10 1 1 1 1 0.7 0.5 0.3 0.1 ; Pulse
-; Table #1: a simple sine wave (using GEN10).
-f 1 0 16384 10 1
+i 1 0 2 1
+i 1 3 2 2
+i 1 6 2 3
+i 1 9 2 4
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/gen11.csd b/examples/gen11.csd
index 35f2750..1b0ed73 100644
--- a/examples/gen11.csd
+++ b/examples/gen11.csd
@@ -1,41 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen11.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- kcps = 440
- ifn = 1
- ; Play the cosine wave stored in Table #1.
- a1 oscil kamp, kcps, ifn
- out a1
+ifn = p4
+asig oscil .8, 220, ifn
+ outs asig,asig
+
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 16384 11 1 1 ;number of harmonics = 1
+f 2 0 16384 11 10 1 .7 ;number of harmonics = 10
+f 3 0 16384 11 10 5 2 ;number of harmonics = 10, 5th harmonic is amplified 2 times
-; Table #1: a simple cosine wave (using GEN11).
-f 1 0 16384 11 1 1
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+i 1 0 2 1
+i 1 + 2 2
+i 1 + 2 3
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/gen12.csd b/examples/gen12.csd
index 56c9939..8932aac 100644
--- a/examples/gen12.csd
+++ b/examples/gen12.csd
@@ -1,49 +1,70 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen12.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-
-; Initialize the global variables.
+;example from the Csound Book, page 87
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Create an index over the length of our entire note.
- kcps init 1/p3
- kndx phasor kcps
-
- ; Read Table #1 with our index.
- ifn = 1
- ixmode = 1
- kamp tablei kndx, ifn, ixmode
- ; Create a sine wave, use the Table #1 values to control
- ; the amplitude. This creates a sound with a long attack.
- a1 oscil kamp*30000, 440, 2
- out a1
-endin
+idur = p3
+iamp = p4
+icarfrq = p5
+imodfrq = p6
+aenv expseg .01, idur*.1, iamp, idur*.8, iamp*.75, idur*.1, .01
+i1 = p7*imodfrq ;p7=modulation index start
+i2 = p8*imodfrq ;p8=modulation index end
+adev line i1, idur, i2 ;modulation frequency
+aindex line p7, idur, p8 ;modulation index
+ar linseg 1, .1, p9, p3-.2, p10, .1, 1 ; r value envelope: p9-p10 =exp. partial strength parameter start and end
+amp1 = (aindex*(ar+(1/ar)))/2
+afmod oscili amp1, imodfrq, 1 ;FM modulator (sine)
+atab = (aindex*(ar-(1/ar)))/2 ;index to table
+alook tablei atab, 37 ;table lookup to GEN12
+aamod oscili atab, adev, 2 ;am modulator (cosine)
+aamod = (exp(alook+aamod))*aenv
+acar oscili aamod, afmod+icarfrq, 1 ;AFM (carrier)
+asig balance acar, aenv
+ outs asig, asig
+
+endin
</CsInstruments>
<CsScore>
+f 1 0 8192 10 1
+f 2 0 8192 9 1 1 90
+f37 0 1024 -12 40 ;Bessel function-defined from 0 to 40
-; Table #1: a modified Bessel function (using GEN12).
-f 1 0 2049 12 20
-; Table #2, a sine wave.
-f 2 0 16384 10 1
-
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+i 1 0 2 .2 800 800 1 6 .1 2
+i 1 + . . 1900 147 8 1 4 .2
+i 1 . . . 1100 380 2 9 .5 2
+i 1 . 10 . 100 100 11 3 .2 5
+s
+i 1 0 1 .1 200 100 1 6 .1 2
+i 1 + . < < < < < < <
+i 1 + . . < < < < < <
+i 1 + . . < < < < < <
+i 1 + . . < < < < < <
+i 1 + . . < < < < < <
+i 1 + . . < < < < < <
+i 1 + 10 .2 800 800 9 1 .9 6
+s
+i 1 0 11 .25 50 51 1 6 .1 2
+i 1 1 9 .05 700 401 1 6 .1 2
+i 1 2 8 . 900 147 8 1 4 .2
+i 1 3 7 . 1100 381 2 9 .5 2
+i 1 4 6 . 200 102 11 3 .2 5
+i 1 5 6 . 800 803 9 1 .9 6
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/gen13.csd b/examples/gen13.csd
index c9593d3..f7982e2 100644
--- a/examples/gen13.csd
+++ b/examples/gen13.csd
@@ -1,51 +1,114 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen13.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Create an index over the length of our entire note.
- kcps init 1/p3
- kndx phasor kcps
-
- ; Read Table #1 with our index.
- ifn = 1
- ixmode = 1
- kval table kndx, ifn, ixmode
-
- ; Generate a sine waveform, use our Table #1 value to
- ; vary its frequency by 100 Hz from its base frequency.
- ibasefreq = 440
- kfreq = kval * 100
- a1 oscil 20000, ibasefreq + kfreq, 2
- out a1
-endin
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+;example by Russell Pinkston - Univ. of Texas (but slightly modified)
+
+gisine ftgen 0, 0, 16384, 10, 1 ;sine wave
+instr 1
+ihertz = cpspch(p4)
+ipkamp = p5
+iwsfn = p6 ;waveshaping function
+inmfn = p7 ;normalization function
+agate linen 1, .01, p3, .1 ;overall amp envelope
+kctrl linen .99, 2, p3, 2 ;waveshaping index control
+aindex poscil kctrl/2, ihertz, gisine ;sine wave to be distorted
+asignal tablei .5+aindex, iwsfn, 1 ;waveshaping
+knormal tablei kctrl, inmfn, 1 ;amplitude normalization
+asig = asignal*knormal*ipkamp*agate
+ outs asig, asig
+
+endin
</CsInstruments>
<CsScore>
+; This proves the statement in Dodge (p. 147) that Chebyshev polynomials
+; of order K have "only the kth harmonic." This is only true when the
+; waveshaping index is at the maximum - i.e., when the entire transfer
+; function is being accessed. RP.
+;--------------------------------------------------------------------------------------------------------------------------------------------
+; quasi sawtooth transfer function:
+; h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19 h20
+f1 0 513 13 1 1 0 100 -50 -33 25 20 -16.7 -14.2 12.5 11.1 -10 -9.09 8.333 7.69 -7.14 -6.67 6.25 5.88 -5.55 -5.26 5
+f2 0 257 4 1 1 ; normalizing function with midpoint bipolar offset
-; Table #1: a polynomial function (using GEN13).
-f 1 0 1025 13 1 1 0 5 0 3 0 1
-; Table #2, a sine wave.
-f 2 0 16384 10 1
+; st dur pch amp wsfn nmfn
+i1 0 4 6.00 .7 1 2
+i1 4 . 7.00 .
+i1 8 . 8.00 .
+;--------------------------------------------------------------------------------------------------------------------------------------------
+; quasi square wave transfer function:
+; h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19
+f3 0 513 13 1 1 0 100 0 -33 0 20 0 -14.2 0 11.1 0 -9.09 0 7.69 0 -6.67 0 5.88 0 -5.26
+f4 0 257 4 3 1 ; normalizing function with midpoint bipolar offset
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
-e
+; st dur pch amp wsfn nmfn
+i1 16 4 6.00 .7 3 4
+i1 20 . 7.00 .
+i1 24 . 8.00 .
+;--------------------------------------------------------------------------------------------------------------------------------------------
+; quasi triangle wave transfer function:
+; h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19
+f5 0 513 13 1 1 0 100 0 -11.11 0 4 0 -2.04 0 1.23 0 -.826 0 .59 0 -.444 0 .346 0 -.277
+f6 0 257 4 5 1 ; normalizing function with midpoint bipolar offset
+; st dur pch amp wsfn nmfn
+i1 32 4 6.00 .7 5 6
+i1 36 . 7.00 .
+i1 40 . 8.00 .
+;--------------------------------------------------------------------------------------------------------------------------------------------
+; transfer function1: h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16
+f7 0 513 13 1 1 0 1 -.8 0 .6 0 0 0 .4 0 0 0 0 .1 -.2 -.3 .5
+f8 0 257 4 7 1 ; normalizing function with midpoint bipolar offset
+; st dur pch amp wsfn nmfn
+i1 48 4 5.00 .7 7 8
+i1 52 . 6.00 .
+i1 56 . 7.00 .
+;--------------------------------------------------------------------------------------------------------------------------------------------
+;=========================================================================;
+; This demonstrates the use of high partials, sometimes without a ;
+; fundamental, to get quasi-inharmonic spectra from waveshaping. ;
+;=========================================================================;
+; transfer function2: h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16
+f9 0 513 13 1 1 0 0 0 -.1 0 .3 0 -.5 0 .7 0 -.9 0 1 0 -1 0
+f10 0 257 4 9 1 ; normalizing function with midpoint bipolar offset
+; st dur pch amp wsfn nmfn
+i1 64 4 5.00 .7 9 10
+i1 68 . 6.00 .
+i1 72 . 7.00 .
+;--------------------------------------------------------------------------------------------------------------------------------------------
+; transfer function3: h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19 h17 h18 h19 h20
+f11 0 513 13 1 1 0 0 0 0 0 0 0 -1 0 1 0 0 -.1 0 .1 0 -.2 .3 0 -.7 0 .2 0 -.1
+f12 0 257 4 11 1 ; normalizing function with midpoint bipolar offset
+; st dur pch amp wsfn nmfn
+i1 80 4 5.00 .7 11 12
+i1 84 . 5.06 .
+i1 88 . 6.00 .
+;--------------------------------------------------------------------------------------------------------------------------------------------
+;=========================================================================;
+; split a sinusoid into 3 odd-harmonic partials of relative strength 5:3:1
+;=========================================================================;
+;--------------------------------------------------------------------------------------------------------------------------------------------
+; transfer function4: h0 h1 h2 h3 h4 h5
+f13 0 513 13 1 1 0 5 0 3 0 1
+f14 0 257 4 13 1 ; normalizing function with midpoint bipolar offset
+; st dur pch amp wsfn nmfn
+i1 96 4 5.00 .7 13 14
+i1 100 . 5.06 .
+i1 104 . 6.00 .
+e
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/gen14.csd b/examples/gen14.csd
index eaf8970..6419ad4 100644
--- a/examples/gen14.csd
+++ b/examples/gen14.csd
@@ -1,51 +1,55 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen14.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Create an index over the length of our entire note.
- kcps init 1/p3
- kndx phasor kcps
-
- ; Read Table #1 with our index.
- ifn = 1
- ixmode = 1
- kval table kndx, ifn, ixmode
-
- ; Generate a sine waveform, use our Table #1 value to
- ; vary its frequency by 100 Hz from its base frequency.
- ibasefreq = 440
- kfreq = kval * 100
- a1 oscil 20000, ibasefreq + kfreq, 2
- out a1
-endin
-
-
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+;after the example from The Csound Book, page 83
+
+instr 1 ;compare results from GEN13 & GEN14
+
+iwshpfn = p6
+inrmfn = p7
+aswp linseg 0.01, p3*.5, .49, p3*.5, 0.01 ;index sweep function
+aindex poscil aswp, p5, 2 ;sound to waveshape
+atable tablei aindex, iwshpfn, 1, .5 ;waveshape index
+anrm tablei aswp*2, inrmfn, 1 ;normalization
+aenv linen p4, .01, p3, .02 ;amplitude envelope
+asig = (atable*anrm)*aenv ;normalize and impose envelope
+asig dcblock2 asig ;get rid of DC
+ outs asig, asig
+
+endin
</CsInstruments>
<CsScore>
-; Table #1: a polynomial function (using GEN14).
-f 1 0 1025 14 1 1 0 5 0 3 0 1
-; Table #2, a sine wave.
-f 2 0 16384 10 1
+f 2 0 8192 10 1 ;sine wave
+
+f 28 0 4097 13 1 1 1 0 .8 0 .5 0 .2 ;waveshaping function: GEN13 - odd harmonics
+f 280 0 2049 4 28 1 ;normalization function for f28
+f 29 0 4097 14 1 1 1 0 .8 0 .5 0 .2 ;waveshaping function: GEN14 - same harmonics
+f 290 0 2049 4 29 1 ;normalization function for f29
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
-e
+f 30 0 4097 13 1 1 0 1 0 .6 0 .4 0 .1 ;waveshaping function: GEN13 - even harmonics
+f 301 0 2049 4 30 1 ;normalization function for f30
+f 31 0 4097 14 1 1 0 1 0 .6 0 .4 0 .1 ;waveshaping function: GEN13 - even harmonics
+f 310 0 2049 4 31 1 ;normalization function for 31
+s
+i1 0 3 .7 440 28 280
+i1 4 . .7 . 29 290
+i1 8 . .7 . 30 301
+i1 12 3 .7 . 31 310
+e
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/gen15.csd b/examples/gen15.csd
new file mode 100644
index 0000000..82c9bd2
--- /dev/null
+++ b/examples/gen15.csd
@@ -0,0 +1,87 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen15.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+;example from the Csound Book, page 85
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+idur = p3
+iamp = p4
+ifrq = cpspch(p5) ;pitch
+iswp1 = p6
+iswp2 = p7
+kswp line iswp1, p3, iswp2 ;amplitude sweep values
+acosi oscili kswp*.5, ifrq, 2 ;f2=cosine wave
+asine oscili kswp, ifrq, 1 ;f1=sine wave
+atab1 tablei acosi, 33, 1, .5 ;tables a1 to GEN13
+atab2 tablei acosi, 34, 1, .5 ;tables a1 to GEN14
+knrm1 tablei kswp, 35, 1 ;normalizing f35
+knrm2 tablei kswp, 36, 1 ;normalizing f36
+anrm1 = atab1*knrm1 ;normalize GEN13 signal
+anrm2 = atab2*knrm2*asine ;normalize GEN14 signal
+amix = anrm1+anrm2 ;mix GEN13 and GEN14
+kenv expseg .001, idur*.1, iamp, idur*.1, iamp*.8, idur*.8, .001
+asig = amix*kenv
+ outs asig, asig
+
+endin
+
+</CsInstruments>
+<CsScore>
+f 1 0 8193 10 1 ;sine wave
+f 2 0 8193 9 1 1 90 ;cosine wave
+
+; Note that all the f33 tables in the following sections are defined with p4=-15,
+; which means that tables 33 and 34 will not be normalized. Thus if we display
+; tables when running this example, we'll get correct diagrams even if one table
+; has very small values instead of 0 values, due to cpu approximations in processing
+; sin(180), as in sections 2, 4, and 5. This has no consequence on the audio result,
+; because of the use of amp normalization (tables 35 and 36).
+
+f 33 0 8193 -15 1 1 1 0 1 180 .8 45 .6 270 .5 90 .4 225 .2 135 .1 315 ;makes function tables 33 and 34
+f 35 0 4097 4 33 1 ;amp normalization for f33
+f 36 0 4097 4 34 1 ;amp normalization for f34
+i 1 0 5 .6 8.00 0 1
+i 1 + . .6 8.00 1 0
+s
+;even harmonics with no phase shift, odd harmonics with phase shift
+f 33 0 8193 -15 1 1 1 0 1 0 1 180 1 180 1 0 1 0 1 180 1 180 1 0 1 0 1 180 1 180
+f 35 0 4097 4 33 1 ;amp normalization for f33
+f 36 0 4097 4 34 1 ;amp normalization for f34
+i 1 0 5 .6 8.00 0 1
+i 1 + . .6 8.00 1 0
+s
+;different harmonic strenghts and phases
+f 33 0 8193 -15 1 1 1 0 1 0 .9 180 .5 270 .75 90 .4 45 .2 225 .1 0
+f 35 0 4097 4 33 1 ;amp normalization for f33
+f 36 0 4097 4 34 1 ;amp normalization for f34
+i 1 0 5 .6 8.00 0 1
+i 1 + . .6 8.00 1 0
+s
+;lower harmonics no phase shift, upper harmonics with phase shift
+f 33 0 8193 -15 1 1 1 0 1 0 .5 0 .9 0 .3 0 .75 0 .2 180 .6 180 .15 180 .5 180 .1 180
+f 35 0 4097 4 33 1 ;amp normalization for f33
+f 36 0 4097 4 34 1 ;amp normalization for f34
+i 1 0 5 .6 8.00 0 1
+i 1 + . .6 8.00 1 0
+
+s
+;lower harmonics with phase shift, upper harmonics no phase shift
+f 33 0 8193 -15 1 1 1 180 1 180 .5 180 .9 180 .3 180 .75 180 .2 0 .6 0 .15 0 .5 0 .1 0
+f 35 0 4097 4 33 1 ;amp normalization for f33
+f 36 0 4097 4 34 1 ;amp normalization for f34
+i 1 0 5 .6 8.00 0 1
+i 1 + . .6 8.00 1 0
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gen17.csd b/examples/gen17.csd
new file mode 100644
index 0000000..ef8bbfc
--- /dev/null
+++ b/examples/gen17.csd
@@ -0,0 +1,40 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -M0 -+rtmidi=virtual ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen17.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+ instr 1
+
+inote cpsmidi
+iveloc ampmidi .5
+ictl midictrl 5 ;move slider of controller 5 to change ftable
+itab table ictl, 2
+aout poscil iveloc, inote, itab
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 8193 10 1
+f 2 0 128 -17 0 10 32 20 64 30 96 40 ;inhibit rescaling
+
+f 10 0 16384 10 1 ; Sine
+f 20 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111; Sawtooth
+f 30 0 16384 10 1 0 0.3 0 0.2 0 0.14 0 .111; Square
+f 40 0 16384 10 1 1 1 1 0.7 0.5 0.3 0.1 ; Pulse
+
+f 0 30 ;run for 30 seconds
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen18.csd b/examples/gen18.csd
new file mode 100644
index 0000000..9e579ef
--- /dev/null
+++ b/examples/gen18.csd
@@ -0,0 +1,45 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen18.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ifn = p4
+ilen = ftlen(ifn)
+aphase phasor 220
+asig tablei aphase*ilen, ifn
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+f 1 0 4096 10 1 ;sine
+f 2 0 4096 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 ;sawtooth
+f 3 0 4096 11 10 5 2 ;cosine partials
+
+f 11 0 8192 18 1 1 0 4095 2 1 4096 8191 ;sine+sawtooth
+f 12 0 8192 18 1 1 0 4095 3 1 4096 8191 ;sine+cosine partials
+f 13 0 1024 18 1 0.7 0 767 3 0.7 512 1023 ;sine+cosine partials overlapped, shorter table
+
+i 1 0 2 2 ;play sawtooth
+i 1 + 2 3 ;then cosine partials
+i 1 5 2 11 ;now sine+sawtooth
+i 1 + 2 12 ;and sine+cosine partials
+i 1 + 2 13 ;and sine+cosine partials overlapped, shorter table
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen19.csd b/examples/gen19.csd
index 726bc3a..6dbebec 100644
--- a/examples/gen19.csd
+++ b/examples/gen19.csd
@@ -1,51 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gen19.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Create an index over the length of our entire note.
- kcps init 1/p3
- kndx phasor kcps
- ; Read Table #1 with our index.
- ifn = 1
- ixmode = 1
- kval table kndx, ifn, ixmode
-
- ; Generate a sine waveform, use our Table #1 value to
- ; vary its frequency by 100 Hz from its base frequency.
- ibasefreq = 440
- kfreq = kval * 100
- a1 oscil 20000, ibasefreq + kfreq, 2
- out a1
+;p4 = transposition factor
+;p5 = speed factor
+;p6 = function table for grain data
+i1 = sr/ftlen(1) ;scaling to reflect sample rate and table length
+a1 phasor i1*p5 ;index for speed
+asigl fog .5, 15, p4, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3 ;left channel
+asigr fog .4, 25, p4+.2, a1, 1, 0, .01, .5, .01, 30, 1, 2, p3, .5 ;right channel
+ outs asigl, asigr
endin
-
</CsInstruments>
<CsScore>
+f 1 0 131072 1 "fox.wav" 0 0 0
+f 2 0 1024 19 .5 .5 270 .5
-; Table #1: a bell curve (using GEN19).
-f 1 0 16384 -19 1 1 260 1
-; Table #2, a sine wave.
-f 2 0 16384 10 1
-
-; Play Instrument #1 for 3 seconds.
-i 1 0 3
+i 1 0 10 .7 .1
+i 1 + 4 1.2 2
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/gen20.csd b/examples/gen20.csd
new file mode 100644
index 0000000..74f9b6f
--- /dev/null
+++ b/examples/gen20.csd
@@ -0,0 +1,45 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen20.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+insnd = 10 ;"fox.wav"
+ibasfrq = 44100 / ftlen(insnd) ;use original sample rate of insnd file
+
+kamp expseg .001, p3/2, .7, p3/2, .8 ;envelope
+kpitch line ibasfrq, p3, ibasfrq * .8
+kdens line 600, p3, 10
+kaoff line 0, p3, .1
+kpoff line 0, p3, ibasfrq * .5
+kgdur line .04, p3, .001 ;shorten duration of grain during note
+imaxgdur = .5
+igfn = p4 ;different windows
+asigL grain kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, igfn, imaxgdur, 0.0
+asigR grain kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, igfn, imaxgdur, 0.0
+ outs asigL, asigR
+
+endin
+</CsInstruments>
+<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
+
+i1 0 5 1 ;use Hanning window
+i1 + 5 2 ;use Gaussian window
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen21.csd b/examples/gen21.csd
new file mode 100644
index 0000000..86d0a90
--- /dev/null
+++ b/examples/gen21.csd
@@ -0,0 +1,55 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen21.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ifn = p4
+isize = ftlen(ifn)
+prints "TABLE NUMBER: %d\n", ifn
+prints "Index\tValue\n"
+
+iindex = 0 ;start loop
+begin_loop:
+ ivalue tab_i iindex, ifn
+ prints "%d:\t%f\n", iindex, ivalue
+ iindex = iindex + 1
+ if (iindex < isize) igoto begin_loop
+
+;produce sound - and repeat it 10 times so you can hear the patterns:
+aphase phasor 10/10 ;play all 32 values 10x over 10 seconds
+aphase = aphase*isize ;step through table
+afrq table aphase, p4 ;read table number
+asig poscil .5, (afrq*500)+1000,10 ;scale values of table 500 times, add 1000 Hz
+ outs asig , asig ;so we can distinguish the different tables
+endin
+
+</CsInstruments>
+<CsScore>
+f1 0 32 21 1 ;Uniform (white noise)
+f2 0 32 21 6 ;Gaussian (mu=0.0, sigma=1/3.83=0.261)
+f3 0 32 21 6 5.745 ;Gaussian (mu=0.0, sigma=5.745/3.83=1.5)
+f4 0 32 21 9 1 1 2 ;Beta (note that level precedes arguments)
+f5 0 32 21 10 1 2 ;Weibull
+f10 0 8192 10 1 ;Sine wave
+
+i 1 0 10 1
+i 1 11 10 2
+i 1 22 10 3
+i 1 33 10 4
+i 1 44 10 5
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen23.csd b/examples/gen23.csd
new file mode 100644
index 0000000..e7ebb0d
--- /dev/null
+++ b/examples/gen23.csd
@@ -0,0 +1,47 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen23.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+;"spectrum.txt" is created by the spectrum plotter of Audacity (set at size 128), using "fox.wav".
+
+instr 1 ;performs additive synthesis based on spectrum.txt
+
+indx =0 ;start reading at first value
+loop:
+ifreq tab_i indx, 2 ;take odd values of list (= frequency)
+iamp tab_i indx+1, 2 ;take even values of list (= amplitude)
+event_i "i", 10, 0, p3, iamp, ifreq ;use "event_i" to trigger instr. 10
+ loop_lt indx, 2, 128, loop ;use all 128 frequency and amplitude values
+
+endin
+
+instr 10 ;generate sound
+
+iamp = p4
+ifreq = p5
+asig poscil ampdb(iamp), ifreq, 1
+asig linen asig, .01, p3, p2
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1 ;sine wave
+f 2 0 128 -23 "spectrum.txt" ;"spectrum.txt" can be found in /manual/examples
+
+i1 0 2
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen24.csd b/examples/gen24.csd
new file mode 100644
index 0000000..44acd6b
--- /dev/null
+++ b/examples/gen24.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen24.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ifn = p4 ;choose between tables
+kcps init 1/p3 ;create index over duration of note.
+kndx phasor kcps
+ixmode = 1 ;normalize to 0-1
+kval table kndx, ifn, ixmode
+asig poscil .7, 440 + kval, 1 ;add to frequency
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1 ;sine wave
+f 10 0 16384 -24 1 0 400;scale sine wave from table 1 from 0 to 400
+f 11 0 16384 -24 1 0 50 ;and from 0 to 50
+
+i 1 0 3 10
+i 1 4 3 11
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gen25.csd b/examples/gen25.csd
new file mode 100644
index 0000000..fa9790b
--- /dev/null
+++ b/examples/gen25.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen25.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisin ftgen 1, 0, 32768, 10, 1
+gienv ftgen 2, 0, 1025, 25, 0, 0.01, 200, 1, 400, 1, 513, 0.01 ; y value must be >= 0
+
+
+instr 1
+
+kcps init 3/p3 ;play 3x over duration of note
+kndx phasor kcps
+ixmode = 1 ;normalize to 0-1
+kval table kndx, gienv, ixmode
+kval =kval*100 ;scale up to 0-100
+asig poscil 1, 220+kval, gisin ;use table for amplitude
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 4
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen27.csd b/examples/gen27.csd
new file mode 100644
index 0000000..6941f59
--- /dev/null
+++ b/examples/gen27.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen27.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisin ftgen 1, 0, 32768, 10, 1
+gienv ftgen 2, 0, 1025, 27, 0, 0,200, 1, 400, -1, 513, 0
+
+instr 1
+
+kcps init 3/p3 ;play 3x over duration of note
+kndx phasor kcps
+ixmode = 1 ;normalize to 0-1
+kval table kndx, gienv, ixmode
+kval = kval*100 ;scale 0-100
+asig poscil 1, 220+kval, 1 ;add to 220 Hz
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 4
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
+
diff --git a/examples/gen28.csd b/examples/gen28.csd
new file mode 100644
index 0000000..24d3692
--- /dev/null
+++ b/examples/gen28.csd
@@ -0,0 +1,60 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen28.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 4
+
+ga1 init 0
+ga2 init 0
+ga3 init 0
+ga4 init 0
+
+instr 1 ;uses GEN28 file "move", as found in /manual/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
+a1, a2, a3, a4 space asig, 1, ktime, .1, kx, ky ;use table 1 = GEN28
+ar1, ar2, ar3, ar4 spsend ;send to reverb
+
+ga1 = ga1+ar1
+ga2 = ga2+ar2
+ga3 = ga3+ar3
+ga4 = ga4+ar4
+ outq a1, a2, a3, a4
+
+endin
+
+instr 99 ; reverb instrument
+
+a1 reverb2 ga1, 2.5, .5
+a2 reverb2 ga2, 2.5, .5
+a3 reverb2 ga3, 2.5, .5
+a4 reverb2 ga4, 2.5, .5
+ outq a1, a2, a3, a4
+
+ga1=0
+ga2=0
+ga3=0
+ga4=0
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 0 28 "move"
+
+i1 0 5 ;same time as ktime
+i 99 0 10 ;keep reverb active
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gen30.csd b/examples/gen30.csd
new file mode 100644
index 0000000..b65a51d
--- /dev/null
+++ b/examples/gen30.csd
@@ -0,0 +1,67 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+; Audio out Audio in No messages
+-odac ;;;realtime audio out
+; For Non-realtime ouput leave only the line below:
+; -o gen30.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+;a simplified example of Istvan Varga
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+isaw ftgen 1, 0, 16384, 7, 1, 16384, -1 ;sawtooth wave
+iFM ftgen 3, 0, 4096, 7, 0, 512, 0.25, 512, 1, 512, 0.25, 512, \
+ 0, 512, -0.25, 512, -1, 512, -0.25, 512, 0 ;FM waveform
+iAM ftgen 4, 0, 4096, 5, 1, 4096, 0.01 ;AM waveform
+iEQ ftgen 5, 0, 1024, 5, 1, 512, 32, 512, 1 ;FM to EQ
+isine ftgen 6, 0, 1024, 10, 1 ;sine wave
+
+/* generate bandlimited sawtooth waves */
+i0 = 0
+loop1:
+imaxh = sr / (2 * 440.0 * exp(log(2.0) * (i0 - 69) / 12))
+i_ ftgen i0 + 10, 0, 4096, -30, 1, 1, imaxh ;use gen 30
+i0 = i0 + 1
+ if (i0 < 127.5) igoto loop1
+
+instr 1
+
+kcps = 440.0 * exp(log(2.0) * (p4 - 69) / 12) ;note frequency
+klpmaxf limit p5 * kcps, 1000.0, 12000.0 ;lowpass max. frequency
+
+kfmd1 = 0.03 * kcps ;FM depth in Hz
+kamfr = kcps * 0.02 ;AM frequency
+kamfr2 = kcps * 0.1
+
+kfnum = (10 + 69 + 0.5 + 12 * log(kcps / 440.0) / log(2.0)) ;table number
+aenv linseg 0, p3*0.25, 1, p3*0.75, 0 ;amp. envelope
+
+asig oscbnk kcps, 0.0, kfmd1, 0.0, 40, 200, 0.1, 0.2, 0, 0, 144, \
+ 0.0, klpmaxf, 0.0, 0.0, 1.5, 1.5, 2, kfnum, 3, 0, 5, 5, 5
+asig = asig * aenv*.03
+outs asig, asig
+
+endin
+
+</CsInstruments>
+<CsScore>
+s
+i 1 0 6 41 10
+i 1 0 6 60
+i 1 0 6 65
+i 1 0 6 69
+s
+i 1 0 6 41 64
+i 1 0 6 60
+i 1 0 6 65
+i 1 0 6 69
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen32.csd b/examples/gen32.csd
new file mode 100644
index 0000000..b6604f2
--- /dev/null
+++ b/examples/gen32.csd
@@ -0,0 +1,59 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen32.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+itmp ftgen 1, 0, 16384, 7, 1, 16384, -1 ; sawtooth
+itmp ftgen 2, 0, 8192, 10, 1 ; sine
+itmp ftgen 5, 0, 4096, -32, -2, 1.5, 1.0, 0.25, 1, 2, 0.5, 0, 1, 3, -0.25, 0.5 ; mix tables
+itmp ftgen 6, 0, 16384, 20, 3, 1 ; window
+; generate band-limited waveforms
+inote = 0
+loop0:
+icps = 440 * exp(log(2) * (inote - 69) / 12) ; one table for
+inumh = sr / (2 * icps) ; each MIDI note number
+ift = int(inote + 256.5)
+itmp ftgen ift, 0, 4096, -30, 5, 1, inumh
+inote = inote + 1
+ if (inote < 127.5) igoto loop0
+
+instr 1
+
+kcps expon 20, p3, 16000
+kft = int(256.5 + 69 + 12 * log(kcps / 440) / log(2))
+kft = (kft > 383 ? 383 : kft)
+a1 phasor kcps
+a1 tableikt a1, kft, 1, 0, 1
+ outs a1*.5, a1*.5
+endin
+
+instr 2
+
+kcps expon 20, p3, 16000
+kft = int(256.5 + 69 + 12 * log(kcps / 440) / log(2))
+kft = (kft > 383 ? 383 : kft)
+kgdur limit 10 / kcps, 0.1, 1
+a1 grain2 kcps, 0.02, kgdur, 30, kft, 6, -0.5
+ outs a1*.08, a1*.08
+
+endin
+</CsInstruments>
+<CsScore>
+t 0 60
+
+i 1 0 10
+i 2 12 10
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen33.csd b/examples/gen33.csd
new file mode 100644
index 0000000..683a1f9
--- /dev/null
+++ b/examples/gen33.csd
@@ -0,0 +1,47 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen33.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; partials 1, 4, 7, 10, 13, 16, etc. with base frequency of 400 Hz
+
+ibsfrq = 400
+inumh = int(1.5 + sr * 0.5 / (3 * ibsfrq)) ; estimate number of partials
+isrcln = int(0.5 + exp(log(2) * int(1.01 + log(inumh * 3) / log(2)))) ; source table length
+itmp ftgen 1, 0, isrcln, -2, 0 ; create empty source table
+ifpos = 0
+ifrq = ibsfrq
+inumh = 0
+l1:
+ tableiw ibsfrq / ifrq, ifpos, 1 ; amplitude
+ tableiw ifrq, ifpos + 1, 1 ; frequency
+ tableiw 0, ifpos + 2, 1 ; phase
+ifpos = ifpos + 3
+ifrq = ifrq + ibsfrq * 3
+inumh = inumh + 1
+ if (ifrq < (sr * 0.5)) igoto l1
+
+itemp ftgen 2, 0, 262144, -33, 1, inumh, 1, -1 ; store output in ftable 2 (size = 262144)
+asig poscil .5, ibsfrq, itemp
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen34.csd b/examples/gen34.csd
new file mode 100644
index 0000000..d8e136d
--- /dev/null
+++ b/examples/gen34.csd
@@ -0,0 +1,47 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen34.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; partials 1, 4, 7, 10, 13, 16, etc. with base frequency of 400 Hz
+
+ibsfrq = 400
+inumh = int(1.5 + sr * 0.5 / (3 * ibsfrq)) ; estimate number of partials
+isrcln = int(0.5 + exp(log(2) * int(1.01 + log(inumh * 3) / log(2)))) ; source table length
+itmp ftgen 1, 0, isrcln, -2, 0 ; create empty source table
+ifpos = 0
+ifrq = ibsfrq
+inumh = 0
+l1:
+ tableiw ibsfrq / ifrq, ifpos, 1 ; amplitude
+ tableiw ifrq, ifpos + 1, 1 ; frequency
+ tableiw 0, ifpos + 2, 1 ; phase
+ifpos = ifpos + 3
+ifrq = ifrq + ibsfrq * 3
+inumh = inumh + 1
+ if (ifrq < (sr * 0.5)) igoto l1
+
+itmp ftgen 2, 0, 262144, -34, 1, inumh, 1, -1 ; store output in ftable 2 (size = 262144)
+asig poscil .5, ibsfrq, itmp
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen40.csd b/examples/gen40.csd
new file mode 100644
index 0000000..0d7d8b7
--- /dev/null
+++ b/examples/gen40.csd
@@ -0,0 +1,42 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o GEN40.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; every run time same values
+
+kuser cuserrnd 0, 100, 1
+ printk .2, kuser
+asig poscil .5, 220+kuser, 3
+ outs asig, asig
+endin
+
+instr 2 ; every run time different values
+
+ seed 0
+kuser cuserrnd 0, 100, 1
+ printk .2, kuser
+asig poscil .5, 220+kuser, 3
+ outs asig, asig
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16 -7 1 4 0 8 0 4 1 ;distrubution using GEN07
+f 2 0 16384 40 1 ;GEN40 is to be used with cuserrnd
+f 3 0 8192 10 1 ;sine
+
+i 1 0 2
+i 2 3 2
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gen41.csd b/examples/gen41.csd
new file mode 100644
index 0000000..c34f676
--- /dev/null
+++ b/examples/gen41.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o GEN41.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+k1 duserrnd 1
+ printk 0, k1
+asig poscil .5, 220*k1, 2
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 -20 -41 2 .1 8 .9 ;choose 2 at 10% probability, 8 at 90%
+
+f2 0 8192 10 1
+
+i1 0 2
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gen42.csd b/examples/gen42.csd
new file mode 100644
index 0000000..d7134ed
--- /dev/null
+++ b/examples/gen42.csd
@@ -0,0 +1,49 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o GEN42.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ktab = 1 ;ftable 1
+kurd = urd(ktab)
+ktrig metro 5 ;triggers 5 times per second
+kres samphold kurd, ktrig ;sample and hold value of kurd
+ printk2 kres ;print it
+asig poscil .5, 220+kres, 2
+ outs asig, asig
+endin
+
+instr 2
+
+seed 0 ;every run new values
+
+ktab = 1 ;ftable 1
+kurd = urd(ktab)
+ktrig metro 5 ;triggers 5 times per second
+kres samphold kurd, ktrig ;sample and hold value of kurd
+ printk2 kres ;print it
+asig poscil .5, 220+kres, 2
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 -20 -42 10 20 .3 100 200 .7 ;30% choose between 10 and 20 and 70% between 100 and 200
+f2 0 8192 10 1 ;sine wave
+
+i 1 0 5
+i 2 6 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gen49.csd b/examples/gen49.csd
index 0a5e73a..82f6793 100644
--- a/examples/gen49.csd
+++ b/examples/gen49.csd
@@ -1,41 +1,30 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o gen01.wav -W ;;; for file output any platform
+; -o gen49.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- kcps = 1
- ifn = 1
- ; Play the audio sample stored in Table #1.
- a1 oscil kamp, kcps, ifn
- out a1
+kcps = sr/ftlen(1)
+asig oscil .8, kcps, 1
+ outs asig, asig
+
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 131072 49 "beats.mp3" 0 1 ;read an audio file (using GEN49).
-; Table #1: read an audio file (using GEN49).
-f 1 0 131072 49 "beats.mp3" 0 1
-
-; Play Instrument #1 for 2 seconds.
i 1 0 2
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/gen51.csd b/examples/gen51.csd
new file mode 100644
index 0000000..405e472
--- /dev/null
+++ b/examples/gen51.csd
@@ -0,0 +1,57 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -M0 ;;;realtime audio out and midi input
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen51.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+;example by Iain McCurdy
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giEqTmp12 ftgen 1,0,128,-51,12,2,cpsoct(8),60,1,2^(1/12),2^(2/12),2^(3/12),2^(4/12),2^(5/12),2^(6/12),2^(7/12),2^(8/12),2^(9/12),2^(10/12),2^(11/12),2^(12/12)
+giEqTmp10 ftgen 2,0,128,-51,10,2,cpsoct(8),60,1,2^(1/10),2^(2/10),2^(3/10),2^(4/10),2^(5/10),2^(6/10),2^(7/10),2^(8/10),2^(9/10),2^(10/10)
+giEqTmp24 ftgen 3,0,128,-51,24,2,cpsoct(8),60,1,2^(1/24),2^(2/24),2^(3/24),2^(4/24),2^(5/24),2^(6/24),2^(7/24),2^(8/24),2^(9/24),2^(10/24),2^(11/24), \ 2^(12/24),2^(13/24),2^(14/24),2^(15/24),2^(16/24),2^(17/24),2^(18/24),2^(19/24),2^(20/24),2^(21/24),2^(22/24),2^(23/24),2^(24/24)
+
+instr 1 ;midi input instrument
+ /*USE PITCH BEND TO MODULATE NOTE NUMBER UP OR DOWN ONE STEP - ACTUAL INTERVAL IT WILL MODULATE BY WILL BE DEPENDENT UPON THE GEN51 SCALE USED*/
+ ;kbend pchbend 0,2
+
+ /*ALTERNATIVELY IF USING VIRTUAL MIDI DEVICE OR A KEYBOARD WITH NO PITCH BEND WHEEL, USE CONTROLLERS 1 AND 2 TO MODULATE PITCH UP OR DOWN 1 STEP*/
+kup ctrl7 1, 1, 0, 1
+kdown ctrl7 1, 2, 0, -1
+kbend = kup+kdown
+
+inum notnum
+kcps tablei inum+kbend, giEqTmp24 ;read cps values from GEN51, scale table using a combination of note played and pitch bend/controllers 1 and 2
+a1 vco2 0.2, kcps, 4, 0.5
+ outs a1, a1
+endin
+
+instr 2 ;score input instrument
+
+knum line p4, p3, p5 ;gliss using a straight line bewteen p4 and p5 for the entire note duration
+kcps tablei knum, giEqTmp24 ;read cps values from GEN51 scale table
+a1 vco2 0.2, kcps, 4, 0.5
+ outs a1, a1
+endin
+
+</CsInstruments>
+<CsScore>
+f 0 3600
+
+;instr 2. Score input. Gliss from step number p4 to step number p5
+;p4 - starting note number
+;p5 - ending note number
+i 2 0 2 60 61
+i 2 + 2 70 58
+i 2 + 2 66 66.5
+i 2 + 2 71.25 71
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gen52.csd b/examples/gen52.csd
new file mode 100644
index 0000000..6669465
--- /dev/null
+++ b/examples/gen52.csd
@@ -0,0 +1,92 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o gen52.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+garvb init 0
+gaW init 0
+gaX init 0
+gaY init 0
+
+itmp ftgen 1, 0, 64, -2, 2, 40, -1, -1, -1, 123, \
+ 1, 13.000, 0.05, 0.85, 20000.0, 0.0, 0.50, 2, \
+ 1, 2.000, 0.05, 0.85, 20000.0, 0.0, 0.25, 2, \
+ 1, 16.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 9.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 12.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 8.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2
+
+itmp ftgen 2, 0, 262144, -2, 0
+ spat3dt 2, -0.2, 1, 0, 1, 1, 2, 0.005
+
+itmp ftgen 3, 0, 262144, -52, 3, 2, 0, 4, 2, 1, 4, 2, 2, 4
+
+instr 1
+
+a1 vco2 1, 440, 10
+kfrq port 100, 0.008, 20000
+a1 butterlp a1, kfrq
+a2 linseg 0, 0.003, 1, 0.01, 0.7, 0.005, 0, 1, 0
+a1 = a1 * a2 * 2
+ denorm a1
+ vincr garvb, a1
+aw, ax, ay, az spat3di a1, p4, p5, p6, 1, 1, 2
+ vincr gaW, aw
+ vincr gaX, ax
+ vincr gaY, ay
+
+endin
+
+instr 2
+
+ denorm garvb
+; skip as many samples as possible without truncating the IR
+arW, arX, arY ftconv garvb, 3, 2048, 2048, (65536 - 2048)
+aW = gaW + arW
+aX = gaX + arX
+aY = gaY + arY
+garvb = 0
+gaW = 0
+gaX = 0
+gaY = 0
+
+aWre, aWim hilbert aW
+aXre, aXim hilbert aX
+aYre, aYim hilbert aY
+aWXr = 0.0928*aXre + 0.4699*aWre
+aWXiYr = 0.2550*aXim - 0.1710*aWim + 0.3277*aYre
+aL = aWXr + aWXiYr
+aR = aWXr - aWXiYr
+
+ outs aL, aR
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+i 1 0 0.5 0.0 2.0 -0.8
+i 1 1 0.5 1.4 1.4 -0.6
+i 1 2 0.5 2.0 0.0 -0.4
+i 1 3 0.5 1.4 -1.4 -0.2
+i 1 4 0.5 0.0 -2.0 0.0
+i 1 5 0.5 -1.4 -1.4 0.2
+i 1 6 0.5 -2.0 0.0 0.4
+i 1 7 0.5 -1.4 1.4 0.6
+i 1 8 0.5 0.0 2.0 0.8
+i 2 0 10
+e
+
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/genarray.csd b/examples/genarray.csd
new file mode 100644
index 0000000..2d2beb8
--- /dev/null
+++ b/examples/genarray.csd
@@ -0,0 +1,43 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+;create and fill two arrays
+iArr1[] genarray 1, 6
+iArr2[] genarray 1, 6, 2/3
+
+;print the content of iArr1
+ printf "%s", 1, "iArr1: start=1, end=6, step=default\n"
+kndx = 0
+ until kndx == lenarray(iArr1) do
+ printf "iArr[%d] = %f\n", kndx+1, kndx, iArr1[kndx]
+kndx += 1
+ od
+
+;print the content of iArr2
+ printf "%s", 1, "iArr2: start=1, end=6, step=2/3\n"
+kndx = 0
+ until kndx == lenarray(iArr2) do
+ printf "iArr[%d] = %f\n", kndx+1, kndx, iArr2[kndx]
+kndx += 1
+ od
+
+ turnoff
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 1
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/genarray_i.csd b/examples/genarray_i.csd
new file mode 100644
index 0000000..3b67862
--- /dev/null
+++ b/examples/genarray_i.csd
@@ -0,0 +1,43 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+;create and fill two arrays
+kArr1[] genarray_i 1, 6
+kArr2[] genarray_i 1, 6, 2/3
+
+;print the content of kArr1
+ printf "%s", 1, "kArr1: start=1, end=6, step=default\n"
+kndx = 0
+ until kndx == lenarray(kArr1) do
+ printf "kArr[%d] = %f\n", kndx+1, kndx, kArr1[kndx]
+kndx += 1
+ od
+
+;print the content of kArr2
+ printf "%s", 1, "kArr2: start=1, end=6, step=2/3\n"
+kndx = 0
+ until kndx == lenarray(kArr2) do
+ printf "kArr[%d] = %f\n", kndx+1, kndx, kArr2[kndx]
+kndx += 1
+ od
+
+ turnoff
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 1
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gendy-2.csd b/examples/gendy-2.csd
new file mode 100644
index 0000000..34f26ca
--- /dev/null
+++ b/examples/gendy-2.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kenv expseg 0.01, p3*0.1, 1, p3*0.8, 1, p3*0.1, 0.001
+kosc oscil 0.1, 3/p3, 1
+seed 20120123
+kdis bexprnd kosc
+knum linseg 3, p3*0.75, 10, p3*0.20, 12, p3*0.05, 5
+asig gendy 0.2, kosc*60, 6, 0.7, kdis, 500*kenv, 4800, 0.23, 0.3, 12, knum
+aflt resonz asig, 1400, 400
+aout comb kenv*aflt*0.1, 0.9, 0.1
+outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1 0 .8 0 0 .3 0 0 0 .1
+
+i1 0 20
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gendy.csd b/examples/gendy.csd
new file mode 100644
index 0000000..107923d
--- /dev/null
+++ b/examples/gendy.csd
@@ -0,0 +1,27 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+aout gendy 0.7, 1, 1, 1, 1, 20, 1000, 0.5, 0.5
+outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+i1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gendyc.csd b/examples/gendyc.csd
new file mode 100644
index 0000000..651fb82
--- /dev/null
+++ b/examples/gendyc.csd
@@ -0,0 +1,27 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+aout gendyc 0.5, 1, 1, 1, 1, 220, 440, 0.5, 0.5
+outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+i1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gendyx-2.csd b/examples/gendyx-2.csd
new file mode 100644
index 0000000..192b17b
--- /dev/null
+++ b/examples/gendyx-2.csd
@@ -0,0 +1,30 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+kenv expseg 0.001, p3*0.05, 0.5, p3*0.9, 0.5, p3*0.05, 0.001
+kc1 linseg 1, p3/2, 12, p3/2, 3
+kc2 random 0, 4
+seed 20120124
+asig gendyx kenv, 1, 3, 0.7, 0.8, 120, 4300, 0.2, 0.7, kc1, kc2, 12, kc1
+aout dcblock asig
+outs aout, aout
+endin
+</CsInstruments>
+<CsScore>
+i1 0 20
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/gendyx.csd b/examples/gendyx.csd
new file mode 100644
index 0000000..881fe36
--- /dev/null
+++ b/examples/gendyx.csd
@@ -0,0 +1,27 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+aout gendyx 0.7, 1, 1, 1, 1, 20, 1000, 0.5, 0.5, 4, 0.13
+outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+i1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/genexp.csd b/examples/genexp.csd
index 85ce716..85772af 100644
--- a/examples/genexp.csd
+++ b/examples/genexp.csd
@@ -1,43 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o gen01.wav -W ;;; for file output any platform
+; -o genexp.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- ifn = 2
- ibas = 1
-
- ; Play the audio sample stored in Table #1.
- k1 oscil 1, 10, 1
- a1 oscil kamp*k1, 440, ifn
- out a1
-endin
+aswp linseg 0.01, p3*.5, .49, p3*.5, 0.01 ;index sweep function
+aindex poscil aswp, 110, 1 ;sound to waveshape
+atable tablei aindex, p4, 1, .5 ;waveshape index
+aenv linen 0.8, .01, p3, .02 ;amplitude envelope
+asig = (atable*aenv)*p5 ;impose envelope and scale
+asig dcblock2 asig ;get rid of DC
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 1 0 8192 10 1 ;sine wave
+f 2 0 8192 "exp" 0 15 0
+f 3 0 8192 "exp" 0 3 0
-; Table #1: read an audio file (using GEN01).
-f 1 0 131072 "exp" 0 10 0
-f 2 0 8192 10 1
+i1 0 3 2 2
+i1 + 3 3 3
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/genfarey-2.csd b/examples/genfarey-2.csd
new file mode 100644
index 0000000..7c0521a
--- /dev/null
+++ b/examples/genfarey-2.csd
@@ -0,0 +1,98 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc for RT audio input as well
+; For Non-realtime ouput leave only the line below:
+; -o genfarey.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+; GENfarey creates table gidelta.
+; The table contains the delta values of Farey Sequence 7 (p5=7).
+; They are used as Inter Onset Intervals (IOIs) or event durations.
+; If p6 is set to 1 for IOI output then the length of the table (p3=-18) is -(|F_7| - 1)
+; Remember that a negative sign is for non-power-of-2 table lengths.
+; The negative sign in front of the GEN number prevents post-normalisation of its values.
+
+gidelta ftgen 0,0,-18,"farey",7,1
+
+; Use GENfarey with p6 set to 2 to generate the denominators of fractions of F_7
+; this is used in this example as factors to create a series of pitches:
+gimult ftgen 0,0,-18,"farey",7,2
+
+;-------- loop and trigger instrument 901 using a Farey Sequence polyrhythm
+ instr 1
+kindx init 0
+kindx2 init 0
+ktrigger init 0
+ktime_unit init p6
+kstart init p4
+kloop init p5
+kinitndx init 0
+kfn_times init gidelta
+knote init 60
+kbasenote init p8
+ifundam init p7
+ktrigger seqtime ktime_unit, kstart, kloop, kinitndx, kfn_times
+ if (ktrigger > 0 ) then
+ kpitch = cpspch(ifundam)
+ kmult tab kindx2, gimult
+ kpitch = kpitch * kmult
+ knote = kbasenote + kmult
+ event "i", 901, 0, .4, .10, kpitch, kpitch * .9, 0.4, 5, .75, .8, 1.0, .15, .0, .125, .125, .25, .5, 1.0, .0, .0, .0, .0, .125, .25, .25, .25, knote
+ kindx = kindx + 1
+ kindx = kindx % kloop
+ kindx2 = kindx2 + 1
+ kindx2 = kindx2 % kloop
+ endif
+endin
+
+;------ basic 2 Operators FM algorithm ----------------
+ instr 901
+inotedur = p3
+imaxamp = p4 ;ampdb(p4)
+icarrfreq = p5
+imodfreq = p6
+ilowndx = p7
+indxdiff = p8-p7
+knote = p27
+aampenv linseg p9, p14*p3, p10, p15*p3, p11, p16*p3, p12, p17*p3, p13
+adevenv linseg p18, p23*p3, p19, p24*p3, p20, p25*p3, p21, p26*p3, p22
+amodosc oscili (ilowndx+indxdiff*adevenv)*imodfreq, imodfreq, 10
+acarosc oscili imaxamp*aampenv, icarrfreq+amodosc, 10
+ outs acarosc, acarosc
+endin
+</CsInstruments>
+<CsScore>
+f10 0 4096 10 1 ;sine wave
+; p4 kstart := index offset into the Farey Sequence
+; p5 kloop := end index into Farey Seq.
+; p6 timefac := time in seconds for one loop to complete
+; p7 fundam := fundamental of the FM instrument
+; p8 basenote:= root pitch of the midi voice output
+; note that pitch structures of the midi file output are not equivalent to the
+; ones used for the FM real-time synthesis.
+
+; start dur kstart kloop timefac fundam. basenote
+i1 0.0 44 0 18 2 6.05 60
+i1 4 30 0 18 3 7.05 72
+i1 34 12 9 18 3 7.05 72
+i1 10 12 0 18 1.5 8 84
+i1 22 12 0 9 1.5 8 84
+i1 15 16 0 18 1 5 48
+i1 22 20 5 17 1.7 4 36
+
+i1 46 20 3 11 2.5 7.04 71
+i1 51 20 5 13 2.5 7.06 72
+
+i1 73.5 1.5 11 18 1.5 5.05 48
+i1 75 1 12 18 1 6.03 58
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/gensone.csd b/examples/gensone.csd
index bc949ee..ef594e0 100644
--- a/examples/gensone.csd
+++ b/examples/gensone.csd
@@ -1,50 +1,55 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o linseg.wav -W ;;; for file output any platform
+; -o gensone.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1 Simple oscillator with loudness correction.
-instr 1
- ; p4 = frequency in pitch-class notation.
- kcps = cpspch(p4)
-
- ; Create an amplitude envelope.
- kenv linseg 0, p3*0.25, 1, p3*0.75, 0
- kamp tablei 16384*kenv, 2
-
- a1 oscil 30000*kamp, kcps, 1
- out a1
-endin
-
-
-</CsInstruments>
-<CsScore>
-
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-f 2 0 16384 "sone" 1 32000 32000 0
-
-; Play Instrument #1 for a half-second, p4=8.00
-i 1 0 0.5 8.00
-; Play Instrument #1 for a half-second, p4=8.01
-i 1 1 0.5 8.01
-; Play Instrument #1 for a half-second, p4=8.02
-i 1 2 0.5 8.02
-; Play Instrument #1 for a half-second, p4=8.03
-i 1 3 0.5 8.03
-e
-
-
-</CsScore>
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; simple oscillator with loudness correction.
+
+kcps = cpspch(p4)
+kenv linseg 0, p3*0.25, 1, p3*0.75, 0 ;amplitude envelope
+kamp tablei 16384 *kenv, 2
+asig oscil kamp, kcps, 1
+ outs asig, asig
+
+endin
+
+instr 2 ;neutral oscillator to compare with
+
+kcps = cpspch(p4)
+kenv linseg 0, p3*0.25, 1, p3*0.75, 0 ;amplitude envelope
+asig oscil kenv, kcps, 1
+ outs asig, asig
+
+endin
+
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1 ;sine wave
+f 2 0 16385 "sone" 0 32000 32000 0
+
+s
+f 0 1 ;1 second of silence before we start...
+s
+i 1 0 2 7.00
+i 1 + . 7.01
+i 1 + . 8.02
+i 1 + . 8.03
+s
+i 2 0 2 7.00
+i 2 + . 7.01
+i 2 + . 8.02
+i 2 + . 8.03
+e
+</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/gentanh.csd b/examples/gentanh.csd
index fbc1703..3c883cc 100644
--- a/examples/gentanh.csd
+++ b/examples/gentanh.csd
@@ -1,43 +1,41 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o gen01.wav -W ;;; for file output any platform
+; -o gentanh.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- ifn = 2
- ibas = 1
-
- ; Play the audio sample stored in Table #1.
- k1 oscil 1, 10, 1
- a1 oscil kamp*k1, 440, ifn
- out a1
-endin
+aswp linseg 0.01, p3*.5, .49, p3*.5, 0.01 ;index sweep function
+aindex poscil aswp, 110, 1 ;sound to waveshape
+atable tablei aindex, p4, 1, .5 ;waveshape index
+aenv linen 0.8, .01, p3, .02 ;amplitude envelope
+asig = (atable*aenv)*p5 ;impose envelope and scale
+asig dcblock2 asig ;get rid of DC
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 1 0 8192 10 1 ;sine wave
+f 2 0 8192 "tanh" -100 100 0 ;symmetrical transfer fuction
+f 3 0 8192 "tanh" -10 10 0 ;symmetrical
+f 4 0 8192 "tanh" 0 10 0 ;not symmetrical
-; Table #1: read an audio file (using GEN01).
-f 1 0 131072 "tanh" 0.1 10 0
-f 2 0 8192 10 1
+i1 0 3 2 1
+i1 + 3 3 1
+i1 + 3 4 2
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/genwave.csd b/examples/genwave.csd
new file mode 100644
index 0000000..0087645
--- /dev/null
+++ b/examples/genwave.csd
@@ -0,0 +1,108 @@
+<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 0dbfs.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+kr = 4410
+nchnls = 1
+0dbfs = 1
+
+zakinit 3,1
+
+instr 1 ; wavelet synth instrument
+iamp = p4; scaling factor of wavelets
+ifreq = p5; frequency of wavelets
+itab = p6; selected wavelet function
+inum = p7; number of wavelets to be created
+a1 osciln p4, p5, p6, p7
+out a1
+endin
+
+instr 2 ; wavelet analysis intrument
+a1 soundin "fox.wav"
+; Decomposition Structure:
+; 1 LEVEL 2 LEVEL
+; HP->ah1
+; a1->| HP(up2)->ah2
+; LP->al1->|
+; LP(up2)->al2
+;
+ain = a1*.5; attenuate input signal
+ ; since wavelet coefficients
+ ; could reach big values
+ah1 dconv ain,ftlen(8),8
+al1 dconv ain,ftlen(7),7
+ah2 dconv al1,ftlen(10),10
+al2 dconv al1,ftlen(9),9
+
+zaw ah1,0
+zaw al1,1
+zaw ah2,2
+zaw al2,3
+
+aout zar p4
+out aout
+zacl 0,3
+endin
+
+</CsInstruments>
+<CsScore>
+
+; First of all, we need several FIR filters which are capable
+; to produce wavelet families.
+; One can input filter coefficients manualy using GEN02
+; or read them from text file.
+; Most of compact-supported wavelet coefficients can be obtained from
+; Wavelet Browser by PyWavelets wavelets.pybytes.com
+; You can select family and order of filter
+; then copy desired coefficients into txt file.
+; Notice that for correct interpretation of results you should use
+; coeffs of Decomposition low-pass filter.
+
+; Daubechies 2
+f 1 0 4 -2 -0.1294095226 0.2241438680 0.8365163037 0.4829629131
+; Symlet 10
+f 2 0 0 -23 "sym10.txt"
+
+; Now we want to produce some wavelet granules.
+; They can be used in wavelet synthesis etc.
+; Tables of large sizes should produce smoother wavelets.
+; We take array of filter coefficients from ftable 1
+; and deconvolve it until output length of 16384.
+; The order of filters through the deconvolution process
+; is given by 14 which is 1110 in binary.
+; So the first filter is LP ('0') and others are HP ('1').
+f 3 0 16384 "wave" 1 14 0
+f 4 0 16384 "wave" 2 1 0
+f 5 0 16384 "wave" 2 7 0
+f 6 0 16384 "wave" 2 6 0
+; The main purpose of using wavelets is wavelet transform.
+; It is not that easy to perform a classic DWT in Csound since downsampling
+; of audio signal is needed at each step of wavelet decomposition.
+; Anyway, using GENwave it is possible to create a number of upsampled
+; wavelets and perform a so-called undecimated wavelet transform
+; aka stationary wavelet transform (and it is even better).
+; So we need some upsampled childs of mother wavelet.
+f 7 0 16 "wave" 1 0 -1 ;db2 scaling function for 1st iteration
+f 8 0 16 "wave" 1 1 -1 ;db2 wavelet function for 1st iteration
+f 9 0 32 "wave" 1 0 -1 ;db2 scaling function for 2nd iteration
+f 10 0 32 "wave" 1 1 -1 ;db2 wavelet function for 2nd iteration
+
+; Let's hear how some wavelets could sound..
+; amp frq wave times
+i 1 0 1 0.6 15 3 8
+i 1 0.5 . 0.9 20 4 5
+i 1 0.9 . 0.7 8 5 .
+i 1 1.1 . 0.4 30 6 9
+
+; Now try to decompose input file using wavelets
+i 2 2 4 1; approximation 1st level
+i 2 5 . 2; details 2nd level
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/getcfg.csd b/examples/getcfg.csd
new file mode 100644
index 0000000..e989654
--- /dev/null
+++ b/examples/getcfg.csd
@@ -0,0 +1,49 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+-iadc ;;;uncomment -iadc if realtime audio input is needed too
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+S1 getcfg 1 ; -+max_str_len
+S2 getcfg 2 ; -i
+S3 getcfg 3 ; -o
+S4 getcfg 4 ; RTaudio
+S5 getcfg 5 ; -t
+S6 getcfg 6 ; os system host
+S7 getcfg 7 ; callback
+
+prints "------------------------------"
+prints "\nMax string len : "
+prints S1
+prints "\nInput file name (-i) : "
+prints S2
+prints "\nOutput file name (-o) : "
+prints S3
+prints "\nRTaudio (-odac) : "
+prints S4
+prints "\nBeat mode (-t)? : "
+prints S5
+prints "\nHost Op. Sys. : "
+prints S6
+prints "\nCallback ? : "
+prints S7
+prints "\n"
+prints "------------------------------\n"
+
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 0
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/gogobel.csd b/examples/gogobel.csd
index 2f351ba..865b316 100644
--- a/examples/gogobel.csd
+++ b/examples/gogobel.csd
@@ -1,47 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o gogobel.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; kamp = 31129.60
- ; kfreq = 440
- ; ihrd = 0.5
- ; ipos = 0.561
- ; imp = 1
- ; kvibf = 6.0
- ; kvamp = 0.3
- ; ivfn = 2
-
- a1 gogobel 31129.60, 440, 0.5, 0.561, 1, 6.0, 0.3, 2
- out a1
-endin
+ kfreq = 200
+ ihrd = 0.5
+ ipos = p4
+ kvibf = 6.0
+ kvamp = 0.3
+asig gogobel .9, kfreq, ihrd, ipos, 1, 6.0, 0.3, 2
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, the "marmstk1.wav" audio file.
+;audio file
f 1 0 256 1 "marmstk1.wav" 0 0 0
-; Table #2, a sine wave for the vibrato.
+;sine wave for the vibrato
f 2 0 128 10 1
-; Play Instrument #1 for one second.
-i 1 0.5 1
+i 1 0.5 0.5 0.01
+i 1 + 0.5 0.561
+i 1 + 0.5 0.9
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/grain.csd b/examples/grain.csd
index 60f9146..f307f89 100644
--- a/examples/grain.csd
+++ b/examples/grain.csd
@@ -1,44 +1,42 @@
-<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 grain.wav -W ;;; for file output any platform
-</CsOptions>
-<CsInstruments>
-
-; Initialize the global variables.
-sr = 44100
-kr = 44100
-ksmps = 1
-nchnls = 1
-
-instr 1
- insnd = 10
- ibasfrq = 44100 / ftlen(insnd) ; Use original sample rate of insnd file
-
- kamp expseg 220, p3/2, 600, p3/2, 220
- kpitch line ibasfrq, p3, ibasfrq * .8
- kdens line 600, p3, 200
- kaoff line 0, p3, 5000
- kpoff line 0, p3, ibasfrq * .5
- kgdur line .4, p3, .1
- imaxgdur = .5
-
- ar grain kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, 5, imaxgdur, 0.0
- out ar
-endin
-
-
-</CsInstruments>
-<CsScore>
-
-f5 0 512 20 2 ; Hanning window
-f10 0 262144 1 "mary.wav" 0 0 0
-i1 0 6
-e
-
-
-</CsScore>
-</CsoundSynthesizer>
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o grain.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+insnd = 10
+ibasfrq = 44100 / ftlen(insnd) ; Use original sample rate of insnd file
+
+kamp expseg .001, p3/2, .1, p3/2, .01 ;a swell in amplitude
+kpitch line ibasfrq, p3, ibasfrq * .8
+kdens line 600, p3, 100
+kaoff line 0, p3, .1
+kpoff line 0, p3, ibasfrq * .5
+kgdur line .4, p3, .01
+imaxgdur = .5
+
+asigL grain kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, 5, imaxgdur, 0.0
+asigR grain kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, 5, imaxgdur, 0.0
+ outs asigL, asigR
+
+endin
+</CsInstruments>
+<CsScore>
+f5 0 512 20 2 ; Hanning window
+f10 0 16384 1 "beats.wav" 0 0 0
+
+i1 0 15
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/grain2.csd b/examples/grain2.csd
index 5eb8db1..5442b8e 100644
--- a/examples/grain2.csd
+++ b/examples/grain2.csd
@@ -34,7 +34,7 @@ ga01 init 0
i0 = 0
loop1:
-imaxh = sr / (2 * 440.0 * exp (log(2.0) * (i0 - 69) / 12))
+imaxh = sr / (2 * 440.0 * exp(log(2.0) * (i0 - 69) / 12))
i_ ftgen i0 + 256, 0, 4096, -30, 1, 1, imaxh
i0 = i0 + 1
if (i0 < 127.5) igoto loop1
diff --git a/examples/guiro.csd b/examples/guiro.csd
index 021a0fa..c0f4d82 100644
--- a/examples/guiro.csd
+++ b/examples/guiro.csd
@@ -1,30 +1,29 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o guiro.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
- instr 01 ;example of a guiro
-a1 guiro p4, 0.01
- out a1
- endin
+instr 1
+a1 guiro .8, p4
+ outs a1, a1
+endin
</CsInstruments>
<CsScore>
-i1 0 1 20000
+i1 0 1 1
+i1 + 1 .01
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/harmon.csd b/examples/harmon.csd
index 18a511f..28933db 100644
--- a/examples/harmon.csd
+++ b/examples/harmon.csd
@@ -1,57 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o harmon.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; The frequency of the base note.
- inote = 440
-
- ; Generate the base note.
- avco vco 20000, inote, 1
-
- kestfrq = inote
- kmaxvar = 0.4
+
+aout diskin2 "fox.wav", 1
+
+kestfrq = p4 ;different estimated frequency
+kmaxvar = 0.1
+imode = 1
+iminfrq = 100
+iprd = 0.02
- ; Calculate frequencies 3 semitones above and
- ; below the base note.
- kgenfreq1 = inote * semitone(3)
- kgenfreq2 = inote * semitone(-3)
-
- imode = 1
- iminfrq = inote - 200
- iprd = 0.1
-
- ; Generate the harmony notes.
- a1 harmon avco, kestfrq, kmaxvar, kgenfreq1, kgenfreq2, \
+asig harmon aout, kestfrq, kmaxvar, kestfrq*.5, kestfrq*4, \
imode, iminfrq, iprd
+ outs (asig + aout)*.6, (asig + aout)*.6 ;mix dry&wet signal
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for two seconds.
-i 1 0 2
+i 1 0 2.7 100
+i 1 + . 200
+i 1 + . 500
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/harmon3.csd b/examples/harmon3.csd
new file mode 100644
index 0000000..949466d
--- /dev/null
+++ b/examples/harmon3.csd
@@ -0,0 +1,35 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o harmon3.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ilow = p4 ;lowest value to harmonize
+aout diskin2 "fox.wav", 1, 0, 1
+koct, kamp pitch aout, .01, 6, 10, 10 ;track pitch
+asig harmon3 aout, koct, .9, 1.5, 0.7, 0, ilow
+ outs (asig + aout)*.4, (asig + aout)*.4 ;mix dry&wet signal
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 2.7 8.8
+i1 3 2.7 8.2
+i1 6 2.7 7.0
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/hilbert.csd b/examples/hilbert.csd
index f362852..52caca6 100644
--- a/examples/hilbert.csd
+++ b/examples/hilbert.csd
@@ -1,17 +1,17 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o hilbert.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
instr 1
idur = p3
@@ -27,7 +27,7 @@ instr 1
kfreq linseg ibegshift, idur, iendshift
; Use the sound of your choice.
- ain soundin "mary.wav"
+ ain diskin2 "beats.wav", 1, 0, 1
; Phase quadrature output derived from input signal.
areal, aimag hilbert ain
@@ -51,7 +51,7 @@ instr 1
; Notice that the adding of the two together is
; identical to the output of ring modulation.
- out aupshift
+ outs aupshift, aupshift
endin
@@ -62,12 +62,12 @@ endin
f 1 0 16384 10 1
; Starting with no shift, ending with all
-; frequencies shifted up by 200 Hz.
-i 1 0 2 0 200
+; frequencies shifted up by 2000 Hz.
+i 1 0 6 0 2000
; Starting with no shift, ending with all
-; frequencies shifted down by 200 Hz.
-i 1 2 2 0 -200
+; frequencies shifted down by 250 Hz.
+i 1 7 6 0 -250
e
diff --git a/examples/hrtfearly.csd b/examples/hrtfearly.csd
new file mode 100644
index 0000000..ec679e8
--- /dev/null
+++ b/examples/hrtfearly.csd
@@ -0,0 +1,74 @@
+<CsoundSynthesizer>
+<CsOptions>
+
+; Select flags here
+; realtime audio out
+ -o dac
+; file ouput
+; -o hrtf.wav
+
+</CsOptions>
+<CsInstruments>
+
+nchnls = 2
+
+gasrc init 0 ;global
+
+instr 1 ;a plucked string, distorted and filtered
+
+ iamp = 15000
+ icps = cpspch(p4)
+
+ a1 pluck iamp, icps, icps, 0, 1
+ adist distort1 a1, 10, .5, 0, 0
+ afilt moogvcf2 adist, 8000, .5
+ aout linen afilt, 0, p3, .01
+
+ gasrc = gasrc + aout
+
+endin
+
+instr 10 ;uses output from instr1 as source
+
+ ;simple path for source
+ kx line 2, p3, 9
+
+ ;early reflections, room default 1
+ aearlyl,aearlyr, irt60low, irt60high, imfp hrtfearly gasrc, kx, 5, 1, 5, 1, 1, "hrtf-44100-left.dat", "hrtf-44100-right.dat", 1
+
+ ;later reverb, uses outputs from above
+ arevl, arevr, idel hrtfreverb gasrc, irt60low, irt60high, "hrtf-44100-left.dat", "hrtf-44100-right.dat", 44100, imfp
+
+ ;delayed and scaled
+ alatel delay arevl * .1, idel
+ alater delay arevr * .1, idel
+
+ outs aearlyl + alatel, aearlyr + alater
+
+ gasrc = 0
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+; Play Instrument 1: a simple arpeggio
+i1 0 .2 8.00
+i1 + .2 8.04
+i1 + .2 8.07
+i1 + .2 8.11
+i1 + .2 9.02
+i1 + 1.5 8.11
+i1 + 1.5 8.07
+i1 + 1.5 8.04
+i1 + 1.5 8.00
+i1 + 1.5 7.09
+i1 + 4 8.00
+
+; Play Instrument 10 for 13 seconds.
+i10 0 13
+
+</CsScore>
+</CsoundSynthesizer>
+
+
diff --git a/examples/hrtfstat-2.csd b/examples/hrtfstat-2.csd
new file mode 100644
index 0000000..f7a5a65
--- /dev/null
+++ b/examples/hrtfstat-2.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o hrtfstat-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+iAz = p4
+iElev = p5
+
+itim = ftlptim(1)
+; transeg a dur ty b dur ty c dur ty d
+kamp transeg 0, p3*.1, 0, .9, p3*.3, -3, .5, p3*.3, -2, 0
+ain loscil3 kamp, 50, 1
+aleft,aright hrtfstat ain, iAz, iElev, "hrtf-44100-left.dat","hrtf-44100-right.dat"
+ outs aleft, aright
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 0 1 "Church.wav" 0 0 0 ;Csound computes tablesize
+
+; Azim Elev
+i1 0 7 90 0 ;to the right
+i1 3 7 -90 -40 ;to the left and below
+i1 6 7 180 90 ;behind and up
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/hrtfstat.csd b/examples/hrtfstat.csd
index a75bee0..a77b588 100644
--- a/examples/hrtfstat.csd
+++ b/examples/hrtfstat.csd
@@ -1,48 +1,48 @@
<CsoundSynthesizer>
- <CsOptions>
- ; Select flags here
- ; realtime audio out
- -o dac
- ; For Non-realtime ouput leave only the line below:
- ; -o hrtf.wav
- </CsOptions>
- <CsInstruments>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o hrtfstat.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
- sr = 44100
- kr = 4410
- ksmps = 10
- nchnls = 2
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gasrc init 0
- gasrc init 0
+instr 1 ;a plucked string
- instr 1 ;a plucked string
+kamp = p4
+kcps = cpspch(p5)
+icps = cpspch(p5)
+a1 pluck kamp, kcps, icps, 0, 1
- kamp = p4
- kcps = cpspch(p5)
- icps = cpspch(p5)
+gasrc = a1
- a1 pluck kamp, kcps, icps, 0, 1
+endin
- gasrc = a1
+instr 10;uses output from instr1 as source
- endin
+aleft,aright hrtfstat gasrc, 90,0, "hrtf-44100-left.dat","hrtf-44100-right.dat"
+ outs aleft, aright
- instr 10 ;uses output from instr1 as source
+clear gasrc
+endin
- aleft,aright hrtfstat gasrc, 90,0, "hrtf-44100-left.dat","hrtf-44100-right.dat"
+</CsInstruments>
+<CsScore>
- outs aleft, aright
+i1 0 2 .7 8.00 ; Play Instrument 1: a plucked string
+i1 .5 2 .7 8.00
+i1 1 2 .7 8.00
+i1 2 2 .7 7.00
- endin
+i10 0 12 ; Play Instrument 10 for 2 seconds.
- </CsInstruments>
- <CsScore>
-
- ; Play Instrument 1: a plucked string
- i1 0 2 20000 8.00
-
- ; Play Instrument 10 for 2 seconds.
- i10 0 2
-
- </CsScore>
+</CsScore>
</CsoundSynthesizer>
diff --git a/examples/hsboscil.csd b/examples/hsboscil.csd
index fc72c94..7438021 100644
--- a/examples/hsboscil.csd
+++ b/examples/hsboscil.csd
@@ -1,28 +1,27 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o hsboscil.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
; synth waveform
-giwave ftgen 1, 0, 1024, 10, 1, 1, 1, 1
+giwave ftgen 1, 0, 1024, 10, 1, 1, 1, 1
; blending window
giblend ftgen 2, 0, 1024, -19, 1, 0.5, 270, 0.5
-; Instrument #1 - produces Risset's glissando.
-instr 1
- kamp = 10000
- kbrite = 0.5
+instr 1 ; produces Risset's glissando.
+
+ kamp = .4
+ kbrite = 0.3
ibasfreq = 200
ioctcnt = 5
@@ -30,18 +29,14 @@ instr 1
; over the period defined by p3.
ktone line 0, p3, 1
- a1 hsboscil kamp, ktone, kbrite, ibasfreq, giwave, giblend, ioctcnt
- out a1
-endin
-
+asig hsboscil kamp, ktone, kbrite, ibasfreq, giwave, giblend, ioctcnt
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for ten seconds.
i 1 0 10
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/hsboscil_midi.csd b/examples/hsboscil_midi.csd
index 7be64eb..f2b9f6f 100644
--- a/examples/hsboscil_midi.csd
+++ b/examples/hsboscil_midi.csd
@@ -1,49 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
-; For Non-realtime ouput leave only the line below:
+; Audio out
+-odac -M0 ;;;realtime audio out and realtime MIDI in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; -o hsboscil_midi.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
; synth waveform
-giwave ftgen 1, 0, 1024, 10, 1, 1, 1, 1
+giwave ftgen 1, 0, 1024, 10, 1, 1, 1, 1
; blending window
giblend ftgen 2, 0, 1024, -19, 1, 0.5, 270, 0.5
-; Instrument #1 - use hsboscil in a MIDI instrument.
instr 1
- ibase = cpsoct(6)
- ioctcnt = 5
- ; all octaves sound alike.
+ibase = cpsoct(6)
+ioctcnt = 5
+
+; all octaves sound alike.
itona octmidi
; velocity is mapped to brightness
- ibrite ampmidi 3
+ ibrite ampmidi 4
- ; Map an exponential envelope for the amplitude.
- kenv expon 20000, 1, 100
+; Map an exponential envelope for the amplitude.
+kenv expon .8, 1, .01
+asig hsboscil kenv, itona, ibrite, ibase, giwave, giblend, ioctcnt
+ outs asig, asig
- asig hsboscil kenv, itona, ibrite, ibase, giwave, giblend, ioctcnt
- out asig
endin
-
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for ten minutes
-i 1 0 600
+i 1 0 30 ; play for 30 seconds
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/hvs2.csd b/examples/hvs2.csd
index 17c140a..17c140a 100755..100644
--- a/examples/hvs2.csd
+++ b/examples/hvs2.csd
diff --git a/examples/i_statement.csd b/examples/i_statement.csd
new file mode 100644
index 0000000..269483e
--- /dev/null
+++ b/examples/i_statement.csd
@@ -0,0 +1,70 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o i_statement.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 10
+
+ icps init cpspch(p4) ; Get target pitch from score event
+ iportime init abs(p3)/7 ; Portamento time dep on note length
+ iamp0 init p5 ; Set default amps
+ iamp1 init p5
+ iamp2 init p5
+
+ itie tival ; Check if this note is tied,
+ if itie == 1 igoto nofadein ; if not fade in
+ iamp0 init 0
+
+nofadein:
+ if p3 < 0 igoto nofadeout ; Check if this note is held, if not fade out
+ iamp2 init 0
+
+nofadeout:
+ ; Now do amp from the set values:
+ kamp linseg iamp0, .03, iamp1, abs(p3)-.03, iamp2
+
+ ; Skip rest of initialization on tied note:
+ tigoto tieskip
+
+ kcps init icps ; Init pitch for untied note
+ kcps port icps, iportime, icps ; Drift towards target pitch
+
+ kpw oscil .4, rnd(1), 1, rnd(.7) ; A simple triangle-saw oscil
+ ar vco kamp, kcps, 3, kpw+.5, 1, 1/icps
+
+ ; (Used in testing - one may set ipch to cpspch(p4+2)
+ ; and view output spectrum)
+ ; ar oscil kamp, kcps, 1
+
+ outs ar, ar
+
+tieskip: ; Skip some initialization on tied note
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1 ; Sine
+
+i10.1 0 -1 7.00 .15
+i10.2 0 -1 7.04
+i10.3 0 -1 7.07
+i10.1 1 -1 8.00
+i10.2 1 -1 8.04
+i10.3 1 -1 8.07
+i10.1 2 1 7.11
+i10.2 2 1 8.04
+i10.3 2 1 8.07
+ e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/imageopcodes.csd b/examples/imageopcodes.csd
index 7e4e4e6..6805941 100644
--- a/examples/imageopcodes.csd
+++ b/examples/imageopcodes.csd
@@ -1,13 +1,10 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
-;-odac -iadc ;;;RT audio I/O
-; For Non-realtime ouput leave only the line below:
--o imageopcodes.wav -W ;;; for file output any platform
+-n ;no sound output
</CsOptions>
-
<CsInstruments>
+
sr=48000
ksmps=1
nchnls=2
@@ -22,12 +19,14 @@ giimage2 imagecreate giimagew,giimageh
kndx = 0
kx_ linseg 0, p3, 1
+;print imagewidth and imageheigth of image.png
+prints "imagewidth = %f pixels, imageheigth = %f pixels\\n", giimagew, giimageh
myloop:
ky_ = kndx/(giimageh)
-kr_ kg_ kb_ imagegetpixel giimage1, kx_, ky_
+kr_, kg_, kb_ imagegetpixel giimage1, kx_, ky_
imagesetpixel giimage2, kx_, ky_, kr_, kg_, kb_
-loop_lt kndx, 0.5, (giimageh), myloop
+loop_lt kndx, 0.5, giimageh, myloop
endin
instr 2
@@ -41,7 +40,6 @@ imagefree giimage2
endin
</CsInstruments>
-
<CsScore>
i1 1 1
@@ -50,6 +48,5 @@ i3 3 1
e
</CsScore>
-
</CsoundSynthesizer>
diff --git a/examples/in.csd b/examples/in.csd
new file mode 100644
index 0000000..91f0153
--- /dev/null
+++ b/examples/in.csd
@@ -0,0 +1,30 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -idac ;;;realtime audio I/O
+; For Non-realtime ouput leave only the line below:
+; in.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;1 channel in, two channels out
+
+ain1 in ;grab your mic and sing
+adel linseg 0, p3*.5, 0.02, p3*.5, 0 ;max delay time = 20ms
+aout flanger ain1, adel, .7
+ fout "in_1.wav", 14, aout, aout ;write to stereo file,
+ outs aout, aout ;16 bits with header
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/inch.csd b/examples/inch.csd
new file mode 100644
index 0000000..8b558d8
--- /dev/null
+++ b/examples/inch.csd
@@ -0,0 +1,31 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -idac ;;;realtime audio I/O
+; For Non-realtime ouput leave only the line below:
+; inch.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;nchnls channels in, two channels out
+
+ain1, ainr inch 1, 2 ;grab your mic and sing
+adel linseg 0, p3*.5, 0.02, p3*.5, 0 ;max delay time = 20ms
+aoutl flanger ain1, adel, .7
+aoutr flanger ain1, adel*2, .8
+ fout "in_ch.wav", 14, aoutl, aoutr ;write to stereo file,
+ outs aoutl, aoutr ;16 bits with header
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/init.csd b/examples/init.csd
new file mode 100644
index 0000000..bd6557d
--- /dev/null
+++ b/examples/init.csd
@@ -0,0 +1,31 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n ;no sound output
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;shows what init does
+ kinit init 0
+ kinit = kinit + 1
+ printk .1, kinit
+endin
+
+instr 2 ;shows what an assignment does
+ knoinit = 0
+ knoinit = knoinit + 1
+ printk .1, knoinit
+endin
+</CsInstruments>
+<CsScore>
+;play one second each
+i1 0 1
+i2 2 1
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/initc7.csd b/examples/initc7.csd
index 52669a2..39af368 100644
--- a/examples/initc7.csd
+++ b/examples/initc7.csd
@@ -1,44 +1,38 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
-; For Non-realtime ouput leave only the line below:
-; -o ctrl7.wav -W ;;; for file output any platform
+-odac -M0 ;;;realtime audio I/O with MIDI in
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- ; This example expects MIDI controller input on channel 1
+instr 1 ; expects MIDI controller input on channel 1
; run and move your midi controller to see result
-imax=15000
-imin=0
+imax = 1
+imin = 0
ichan = 1
-ictlno=7 ; = midi volume
-
+ictlno = 7
+
initc7 1, 7, 1 ; start at max. volume
-kamp ctrl7 ichan,ictlno, imin, imax ; controller 7
+kamp ctrl7 ichan, ictlno, imin, imax ; controller 7
printk2 kamp
-a1 oscil kamp,440,1
- out a1
+asig oscil kamp, 220, 1
+ outs asig, asig
endin
</CsInstruments>
<CsScore>
-
f 1 0 4096 10 1
-i1 0 20
-e
+i1 0 20
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/inleta.csd b/examples/inleta.csd
index 256436a..2ec1e43 100755..100644
--- a/examples/inleta.csd
+++ b/examples/inleta.csd
@@ -1,31 +1,30 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d ;;;RT audio I/O
-;-Wfo inleta.wav
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o inleta.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-
-sr = 44100
-ksmps = 100
-nchnls = 2
+sr = 44100
+ksmps = 32
+nchnls = 2
; Connect up instruments and effects to create the signal flow graph.
-connect "SimpleSine", "leftout", "Reverberator", "leftin"
-connect "SimpleSine", "rightout", "Reverberator", "rightin"
+connect "SimpleSine", "leftout", "Reverberator", "leftin"
+connect "SimpleSine", "rightout","Reverberator", "rightin"
-connect "Moogy", "leftout", "Reverberator", "leftin"
-connect "Moogy", "rightout", "Reverberator", "rightin"
+connect "Moogy", "leftout", "Reverberator", "leftin"
+connect "Moogy", "rightout","Reverberator", "rightin"
-connect "Reverberator", "leftout", "Compressor", "leftin"
-connect "Reverberator", "rightout", "Compressor", "rightin"
+connect "Reverberator", "leftout", "Compressor", "leftin"
+connect "Reverberator", "rightout","Compressor", "rightin"
-connect "Compressor", "leftout", "Soundfile", "leftin"
-connect "Compressor", "rightout", "Soundfile", "rightin"
+connect "Compressor", "leftout", "Soundfile", "leftin"
+connect "Compressor", "rightout","Soundfile", "rightin"
; Turn on the "effect" units in the signal flow graph.
@@ -35,92 +34,93 @@ alwayson "Soundfile"
; Define instruments and effects in order of signal flow.
- instr SimpleSine
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
- pset 0, 0, 10, 0, 0, 0, 0.5
-iattack = 0.015
-idecay = 0.07
-isustain = p3
-irelease = 0.3
-p3 = iattack + idecay + isustain + irelease
-adamping linsegr 0.0, iattack, 1.0, idecay + isustain, 1.0, irelease, 0.0
-iHz = cpsmidinn(p4)
- ; Rescale MIDI velocity range to a musically usable range of dB.
-iamplitude = ampdb(p5 / 127 * 15.0 + 60.0)
- ; Use ftgenonce instead of ftgen, ftgentmp, or f statement.
-icosine ftgenonce 0, 0, 65537, 11, 1
-aoscili oscili iamplitude, iHz, icosine
-aadsr madsr iattack, idecay, 0.6, irelease
-asignal = aoscili * aadsr
-aleft, aright pan2 asignal, p7
- ; Stereo audio output to be routed in the orchestra header.
- outleta "leftout", aleft
- outleta "rightout", aright
- endin
-
- instr Moogy
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
- pset 0, 0, 10, 0, 0, 0, 0.5
-iattack = 0.003
-isustain = p3
-irelease = 0.05
-p3 = iattack + isustain + irelease
-adamping linsegr 0.0, iattack, 1.0, isustain, 1.0, irelease, 0.0
-iHz = cpsmidinn(p4)
- ; Rescale MIDI velocity range to a musically usable range of dB.
-iamplitude = ampdb(p5 / 127 * 20.0 + 60.0)
- print iHz, iamplitude
- ; Use ftgenonce instead of ftgen, ftgentmp, or f statement.
-isine ftgenonce 0, 0, 65537, 10, 1
-asignal vco iamplitude, iHz, 1, 0.5, isine
-kfco line 2000, p3, 200
-krez = 0.8
-asignal moogvcf asignal, kfco, krez, 100000
-asignal = asignal * adamping
-aleft, aright pan2 asignal, p7
- ; Stereo audio output to be routed in the orchestra header.
- outleta "leftout", aleft
- outleta "rightout", aright
- endin
- instr Reverberator
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Stereo input.
-aleftin inleta "leftin"
-arightin inleta "rightin"
-idelay = p4
-icutoff = p5
-aleft, aright reverbsc aleftin, arightin, idelay, icutoff
- ; Stereo output.
- outleta "leftout", aleft
- outleta "rightout", aright
- endin
-
- instr Compressor
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Stereo input.
-aleftin inleta "leftin"
-arightin inleta "rightin"
-kthreshold = 25000
-icomp1 = 0.5
-icomp2 = 0.763
-irtime = 0.1
-iftime = 0.1
-aleftout dam aleftin, kthreshold, icomp1, icomp2, irtime, iftime
-arightout dam arightin, kthreshold, icomp1, icomp2, irtime, iftime
- ; Stereo output.
- outleta "leftout", aleftout
- outleta "rightout", arightout
- endin
-
- instr Soundfile
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Stereo input.
-aleftin inleta "leftin"
-arightin inleta "rightin"
- outs aleftin, arightin
- endin
+instr SimpleSine
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
+ pset 0, 0, 10, 0, 0, 0, 0.5
+iattack = 0.015
+idecay = 0.07
+isustain = p3
+irelease = 0.3
+p3 = iattack + idecay + isustain + irelease
+adamping linsegr 0.0, iattack, 1.0, idecay + isustain, 1.0, irelease, 0.0
+iHz = cpsmidinn(p4)
+; Rescale MIDI velocity range to a musically usable range of dB.
+iamplitude = ampdb(p5 / 127 * 15.0 + 60.0)
+; Use ftgenonce instead of ftgen, ftgentmp, or f statement.
+icosine ftgenonce 0, 0, 65537, 11, 1
+aoscili oscili iamplitude, iHz, icosine
+aadsr madsr iattack, idecay, 0.6, irelease
+asignal = aoscili * aadsr
+aleft, aright pan2 asignal, p7
+; Stereo audio output to be routed in the orchestra header.
+ outleta "leftout", aleft
+ outleta "rightout", aright
+endin
+
+instr Moogy
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
+ pset 0, 0, 10, 0, 0, 0, 0.5
+iattack = 0.003
+isustain = p3
+irelease = 0.05
+p3 = iattack + isustain + irelease
+adamping linsegr 0.0, iattack, 1.0, isustain, 1.0, irelease, 0.0
+iHz = cpsmidinn(p4)
+; Rescale MIDI velocity range to a musically usable range of dB.
+iamplitude = ampdb(p5 / 127 * 20.0 + 60.0)
+ print iHz, iamplitude
+; Use ftgenonce instead of ftgen, ftgentmp, or f statement.
+isine ftgenonce 0, 0, 65537, 10, 1
+asignal vco iamplitude, iHz, 1, 0.5, isine
+kfco line 2000, p3, 200
+krez = 0.8
+asignal moogvcf asignal, kfco, krez, 100000
+asignal = asignal * adamping
+aleft, aright pan2 asignal, p7
+; Stereo audio output to be routed in the orchestra header.
+ outleta "leftout", aleft
+ outleta "rightout", aright
+endin
+
+instr Reverberator
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Stereo input.
+aleftin inleta "leftin"
+arightin inleta "rightin"
+idelay = p4
+icutoff = p5
+aleft, aright reverbsc aleftin, arightin, idelay, icutoff
+; Stereo output.
+ outleta "leftout", aleft
+ outleta "rightout", aright
+endin
+
+instr Compressor
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Stereo input.
+aleftin inleta "leftin"
+arightin inleta "rightin"
+kthreshold = 25000
+icomp1 = 0.5
+icomp2 = 0.763
+irtime = 0.1
+iftime = 0.1
+aleftout dam aleftin, kthreshold, icomp1, icomp2, irtime, iftime
+arightout dam arightin, kthreshold, icomp1, icomp2, irtime, iftime
+; Stereo output.
+ outleta "leftout", aleftout
+ outleta "rightout", arightout
+endin
+
+instr Soundfile
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Stereo input.
+aleftin inleta "leftin"
+arightin inleta "rightin"
+ outs aleftin, arightin
+endin
</CsInstruments>
<CsScore>
diff --git a/examples/inletk.csd b/examples/inletk.csd
new file mode 100644
index 0000000..ec7a5c4
--- /dev/null
+++ b/examples/inletk.csd
@@ -0,0 +1,42 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o inletk.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+connect "bend", "bendout", "guitar", "bendin"
+
+instr bend
+
+kbend line p4, p3, p5
+ outletk "bendout", kbend
+endin
+
+instr guitar
+
+kbend inletk "bendin"
+kpch pow 2, kbend/12
+ printk2 kpch
+asig oscili .4, 440*kpch, 1
+ outs asig, asig
+endin
+
+</CsInstruments>
+<CsScore>
+f1 0 1024 10 1
+
+i"guitar" 0 5 8.00
+i"bend" 3 .2 -12 12
+i"bend" 4 .1 -17 40
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/inq.csd b/examples/inq.csd
new file mode 100644
index 0000000..9c3b747
--- /dev/null
+++ b/examples/inq.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -idac ;;;realtime audio I/O
+; For Non-realtime ouput leave only the line below:
+; inq.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2 ;2 channels out
+0dbfs = 1
+nchnls_i = 4 ;4 channels in
+
+instr 1 ;4 channels in, two channels out
+
+ain1, ain2, ain3, ain4 inq ;grab your mics and sing
+
+adel linseg 0, p3*.5, 0.02, p3*.5, 0 ;max delay time = 20ms
+adel2 linseg 0.02, p3*.5, 0, p3*.5, 0.02 ;max delay time = 20ms
+aoutl flanger ain1, adel, .7
+aoutr flanger ain2, adel*2, .8
+aoutla flanger ain3, adel2, .9
+aoutra flanger ain4, adel2*2, .5
+;write to quad file, 16 bits with header
+ fout "in_4.wav", 14, aoutl, aoutr, aoutla, aoutra
+ outs (aoutl+aoutla)*.5, (aoutr+aoutra)*.5 ;stereo out
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/ins.csd b/examples/ins.csd
new file mode 100644
index 0000000..7812c79
--- /dev/null
+++ b/examples/ins.csd
@@ -0,0 +1,31 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -idac ;;;realtime audio I/O
+; For Non-realtime ouput leave only the line below:
+; ins.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2 ;two channels out
+0dbfs = 1
+
+instr 1
+
+ain1, ainr ins ;grab your mic and sing
+adel linseg 0, p3*.5, 0.02, p3*.5, 0 ;max delay time = 20ms
+aoutl flanger ain1, adel, .7
+aoutr flanger ain1, adel*2, .8
+ fout "in_s.wav", 14, aoutl, aoutr ;write to stereo file,
+ outs aoutl, aoutr ;16 bits with header
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/int.csd b/examples/int.csd
index e80a6bb..4affa52 100644
--- a/examples/int.csd
+++ b/examples/int.csd
@@ -1,35 +1,32 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o int.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- i1 = 16 / 5
- i2 = int(i1)
-
- print i2
-endin
+icount init 0
+loop:
+ inum = icount / 3
+ inm = int(inum)
+ prints "integer (%f/3) = %f\\n", icount, inm
+loop_lt icount, 1, 10, loop
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for one second.
-i 1 0 1
+i 1 0 0
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/invalue.csd b/examples/invalue.csd
new file mode 100644
index 0000000..5c2e5c1
--- /dev/null
+++ b/examples/invalue.csd
@@ -0,0 +1,28 @@
+
+<CsoundSynthesizer>
+<CsOptions>
+</CsOptions>
+<CsInstruments>
+;run this example in CsoundQt, a Csound editor that provides widgets
+;make the Widgets-panel visible, by clicking the Widgets symbol in the menu or pressing (Alt+1).
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+; written by Andres Cabrera
+instr 1
+
+kfreq invalue "freq" ; Quotes are needed here
+asig oscil 0.1, kfreq, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 1024 10 1 ;sine
+i 1 0 300 ;play for 300 seconds
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/jitter.csd b/examples/jitter.csd
index 4f1b187..c520811 100644
--- a/examples/jitter.csd
+++ b/examples/jitter.csd
@@ -1,53 +1,36 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o jitter.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
-; Instrument #1 -- plain instrument.
instr 1
- aplain vco 20000, 220, 2, 0.83
- outs aplain, aplain
-endin
-
-; Instrument #2 -- instrument with jitter.
-instr 2
- ; Create a signal modulated the jitter opcode.
- kamp init 2
- kcpsmin init 4
- kcpsmax init 6
- kj jitter kamp, kcpsmin, kcpsmax
+kamp init p4
+kcpsmin init 4
+kcpsmax init 8
- aplain vco 20000, 220, 2, 0.83
- ajitter vco 20000, 220+kj, 2, 0.83
+kj2 jitter kamp, kcpsmin, kcpsmax
+aout pluck 1, 200+kj2, 1000, 0, 1
+aout dcblock aout ;remove DC
+ outs aout, aout
- outs aplain, ajitter
endin
-
-
</CsInstruments>
<CsScore>
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for 3 seconds.
-i 1 0 3
-; Play Instrument #2 for 3 seconds.
-i 2 3 3
+i 1 0 15 2 ;a bit jitter
+i 1 8 15 10 ;some more
+i 1 16 15 20 ;lots more
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/jitter2.csd b/examples/jitter2.csd
index fc1a5d0..e9acb26 100644
--- a/examples/jitter2.csd
+++ b/examples/jitter2.csd
@@ -1,58 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o jitter2.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
-; Instrument #1 -- plain instrument.
instr 1
- aplain vco 20000, 220, 2, 0.83
- outs aplain, aplain
-endin
-
-; Instrument #2 -- instrument with jitter.
-instr 2
- ; Create a signal modulated with the jitter2 opcode.
- ktotamp init 2
- kamp1 init 0.66
- kcps1 init 3
- kamp2 init 0.66
- kcps2 init 3
- kamp3 init 0.66
- kcps3 init 3
- kj jitter2 ktotamp, kamp1, kcps1, kamp2, kcps2, \
- kamp3, kcps3
+ktotamp init p4
+kamp1 init .5
+kcps1 init 10
+kamp2 init .5
+kcps2 init 2
+kamp3 init .5
+kcps3 init 3
- aplain vco 20000, 220, 2, 0.83
- ajitter vco 20000, 220+kj, 2, 0.83
+kj2 jitter2 ktotamp, kamp1, kcps1, kamp2, kcps2, kamp3, kcps3
+aout pluck 1, 200+kj2, 1000, 0, 1
+aout dcblock aout
+ outs aout, aout
- outs aplain, ajitter
endin
-
-
</CsInstruments>
<CsScore>
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for 3 seconds.
-i 1 0 3
-; Play Instrument #2 for 3 seconds.
-i 2 3 3
+i 1 0 15 2 ;a bit jitter
+i 1 8 15 10 ;some more
+i 1 16 15 20 ;lots more
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/joystick-2.csd b/examples/joystick-2.csd
new file mode 100644
index 0000000..fc1292e
--- /dev/null
+++ b/examples/joystick-2.csd
@@ -0,0 +1,67 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o joystick-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+;0dbfs = 1
+
+instr 1
+
+kmask joystick 0, 1
+kaxes init 0
+kbuttons init 0
+kx0 init 0 ; first two entries are # of axes and # of buttons,
+ky0 init 0 ; then axes, then buttons
+ vtabk 0, 1, kaxes, kbuttons, kx0, ky0
+kidx = 2+kaxes
+
+buttons:
+ kcheck = kmask & 1<<kidx ; if the button was just now pressed and...
+ kres tab kidx, 1 ; if button value is one, start a note
+ schedkwhen kres*kcheck, 1, 20, 2, 0, 60000, kidx, kx0, ky0
+ kidx = kidx+1
+if kidx < (kaxes+kbuttons+2) kgoto buttons
+
+endin
+
+instr 2 ; play a tone until the button is released
+
+kstop tab p4, 1 ; when this button is released, we fade out
+ihz init cpsoct(((p5+32767)/9362)+5) ; ~ 30 hz to 4khz
+print ihz
+ito init ampdb(((p6+32767)/2184)+60) ; ~ 60 - 90 db
+kenv init 0
+kdelta init ito/(kr*10)
+if kstop == 1 kgoto output
+if kdelta < 0 kgoto output
+kdelta = kdelta*-1
+
+output:
+ kenv = kenv+kdelta
+ kenv limit kenv, 0, ito
+ aout oscils 1, ihz, 0
+ aout = kenv*aout
+ outs aout, aout
+if kenv != 0 kgoto noexit
+if kdelta > 0 kgoto noexit
+turnoff
+noexit:
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 32 7 0 7 0 ; will hold the joystick data
+
+i1 0 60000
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/joystick.csd b/examples/joystick.csd
new file mode 100644
index 0000000..85b168a
--- /dev/null
+++ b/examples/joystick.csd
@@ -0,0 +1,56 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o joystick.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+;0dbfs = 1
+
+instr 1 ; gives information about your joystick in real time
+
+kmask joystick 0, 1
+kidx = 2
+kaxes tab 0, 1 ; number of axes has been stored in position 0
+kbuttons tab 1, 1 ; number of buttons has been stored in position 1
+ printf "this joystick has %d axes, %d buttons\n", kidx, kaxes, kbuttons
+kuniq init 0
+
+reportaxis: ; first we see if we have any x/y input
+ kcheck = kmask & (1<<kidx)
+ if kcheck == 0 kgoto nexta
+ kres tab kidx, 1
+ kuniq = kuniq + 1 ; to be sure to make the printf print
+ printf "axis %d, value %6d\n", kuniq, kidx-2, kres
+nexta:
+ kidx = kidx+1
+ if kidx < (kaxes+2) kgoto reportaxis
+
+reportbutton: ; now we check for any buttons pressed
+ kcheck = kmask & 1<<kidx
+ if kcheck == 0 kgoto nextb
+ kres tab kidx, 1 ; a button has been pressed, get from table
+ printf "button %d, pushed\n", kidx*kres, (kidx-(kaxes+2))
+ printf "button %d, released\n", kidx*(1-kres), (kidx-(kaxes+2))
+
+nextb:
+ kidx = kidx+1
+ if kidx < (kaxes+kbuttons+2) kgoto reportbutton
+
+endin
+</CsInstruments>
+<CsScore>
+
+f1 0 32 7 0 7 0 ; will hold the joystick data
+
+i1 0 60000
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/jspline.csd b/examples/jspline.csd
index 5653cbc..f046e88 100755..100644
--- a/examples/jspline.csd
+++ b/examples/jspline.csd
@@ -1,53 +1,36 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o jspline.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
-; Instrument #1 -- plain instrument.
instr 1
- aplain vco 15000, 220, 2, 0.83
- outs aplain, aplain
-endin
-
-; Instrument #2 -- instrument with jitter.
-instr 2
- ; Create a signal modulated the jitter opcode.
- kamp init 2
- kcpsmin init 4
- kcpsmax init 10
- kj jspline kamp, kcpsmin, kcpsmax
+kamp init p4
+kcpsmin init 2
+kcpsmax init 20
- aplain vco 20000, 220, 2, 0.83
- ajitter vco 20000, 220+kj, 2, 0.83
+ksp jspline kamp, kcpsmin, kcpsmax
+aout pluck 1, 200+ksp, 1000, 0, 1
+aout dcblock aout ;remove DC
+ outs aout, aout
- outs aplain, ajitter
endin
-
-
</CsInstruments>
<CsScore>
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for 3 seconds.
-i 1 0 3
-; Play Instrument #2 for 3 seconds.
-i 2 3 3
+i 1 0 10 2 ;a bit jitter
+i 1 8 10 10 ;some more
+i 1 16 10 20 ;lots more
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/kickroll.wav b/examples/kickroll.wav
index 3352cd8..3352cd8 100755..100644
--- a/examples/kickroll.wav
+++ b/examples/kickroll.wav
Binary files differ
diff --git a/examples/lenarray.csd b/examples/lenarray.csd
new file mode 100644
index 0000000..7ec2f35
--- /dev/null
+++ b/examples/lenarray.csd
@@ -0,0 +1,53 @@
+<CsoundSynthesizer>
+<CsOptions>
+-n -m128 ;no sound output, reduced messages
+</CsOptions>
+<CsInstruments>
+;example by joachim heintz
+sr = 44100
+ksmps = 32
+nchnls = 1
+0dbfs = 1
+
+ instr 1 ;simple example
+kArr[] fillarray 1, 2, 3, 4 ;fill array manually
+ printks "Length of kArr = %d\n\n", 0, lenarray(kArr) ;print out its length
+ turnoff ;only do this in the first k-cycle
+ endin
+
+ instr 2 ;random array length
+iNumEls random 1, 11 ;create random number between 1 and 10
+kArr[] init int(iNumEls) ;create array of this length
+ printks "Random length of kArr = %d\n", 0, lenarray(kArr) ;print out
+ turnoff
+ endin
+
+ instr 3 ;fill random array length with random elements
+iNumEls random 1, 11 ;create random number between 1 and 10
+kArr[] init int(iNumEls) ;create array of this length
+ printks "Random length of kArr = %d\n", 0, lenarray(kArr) ;print out
+
+;fill
+kIndx = 0 ;initialize index
+ until kIndx == lenarray(kArr) do
+kArr[kIndx] rnd31 10, 0 ;set element to random value -10...10
+kIndx += 1 ;increase index
+ od
+
+;print
+kIndx = 0 ;initialize index
+ until kIndx == lenarray(kArr) do
+printf("kArr[%d] = %f\n", kIndx+1, kIndx, kArr[kIndx])
+kIndx += 1 ;increase index
+ od
+
+ turnoff
+ endin
+</CsInstruments>
+<CsScore>
+i 1 0 .1
+i 2 0 .1
+i 2 0 .1
+i 3 0 .1
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/lessequal.csd b/examples/lessequal.csd
index bc16838..2cac313 100644
--- a/examples/lessequal.csd
+++ b/examples/lessequal.csd
@@ -1,43 +1,41 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o lessequal.wav -W ;;; for file output any platform
+; -o <=.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 44100
-ksmps = 1
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Get the 4th p-field from the score.
- k1 = p4
- ; Is it less than or equal to 3? (1 = true, 0 = false)
- k2 = (p4 <= 3 ? 1 : 0)
+kval randomh 0, 1.2, 20 ;choose between 0 and 1.2
- ; Print the values of k1 and k2.
- printks "k1 = %f, k2 = %f\\n", 1, k1, k2
-endin
+if kval >0 && kval<=.5 then ;3 possible outcomes
+ kvl = 1
+elseif kval >.5 && kval<=1 then
+ kvl =2
+elseif kval >1 then
+ kvl =3
+endif
+printks "random number = %f, result = %f\n", .1, kval, kvl
+asig poscil .7, 440*kvl, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f1 0 16384 10 1
-; Call Instrument #1 with a p4 = 2.
-i 1 0 0.5 2
-; Call Instrument #1 with a p4 = 3.
-i 1 1 0.5 3
-; Call Instrument #1 with a p4 = 4.
-i 1 2 0.5 4
+i 1 0 5
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/lessthan.csd b/examples/lessthan.csd
index 9d21b8f..0599473 100644
--- a/examples/lessthan.csd
+++ b/examples/lessthan.csd
@@ -1,43 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o lessthan.wav -W ;;; for file output any platform
+; -o <.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 44100
-ksmps = 1
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Get the 4th p-field from the score.
- k1 = p4
- ; Is it less than 3? (1 = true, 0 = false)
- k2 = (p4 < 3 ? 1 : 0)
-
- ; Print the values of k1 and k2.
- printks "k1 = %f, k2 = %f\\n", 1, k1, k2
+ipch = p4
+ipitch = (ipch < 15 ? cpspch(ipch) : ipch) ;if p4 is lower then 15, it assumes p4 to be pitch-class
+print ipitch ;and not meant to be a frequency in Hertz
+asig poscil .5, ipitch , 1
+ outs asig, asig
+
endin
-
-
</CsInstruments>
<CsScore>
+f1 0 8192 10 1 ;sine wave
-; Call Instrument #1 with a p4 = 2.
-i 1 0 0.5 2
-; Call Instrument #1 with a p4 = 3.
-i 1 1 0.5 3
-; Call Instrument #1 with a p4 = 4.
-i 1 2 0.5 4
-e
-
+i1 0 3 8.00 ;pitch class
+i1 4 3 800 ;frequency
+e
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/lfo.csd b/examples/lfo.csd
index 8c1feaa..0b45a44 100644
--- a/examples/lfo.csd
+++ b/examples/lfo.csd
@@ -1,43 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lfo.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 10
- kcps = 5
- itype = 4
- k1 lfo kamp, kcps, itype
- ar oscil p4, p5+k1, 1
- out ar
-endin
+kcps = 5
+itype = p4 ;lfo type
+klfo line 0, p3, 20
+al lfo klfo, kcps, itype
+asig poscil .5, 220+al, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1: an ordinary sine wave.
+; sine wave.
f 1 0 32768 10 1
-; p4 = amplitude of the output signal.
-; p5 = frequency (in cycles per second) of the output signal.
-; Play Instrument #1 for two seconds.
-i 1 0 2 10000 220
+i 1 0 3 0 ;lfo = sine
+i 1 + 3 2 ;lfo = square
+i 1 + 3 5 ;lfo = saw-tooth down
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/limit.csd b/examples/limit.csd
index ca761a2..2822785 100755..100644
--- a/examples/limit.csd
+++ b/examples/limit.csd
@@ -1,50 +1,53 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o limit.wav -W ;;; for file output any platform
+; -o limit.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1, uncompressed signal.
-instr 1
- ; Use the "beats.wav" audio file.
- asig diskin2 "beats.wav", 1, 0, 1
+instr 1 ; Limit / Mirror / Wrap
- out asig
-endin
+igain = p4 ;gain
+ilevl1 = p5 ; + level
+ilevl2 = p6 ; - level
+imode = p7 ;1 = limit, 2 = mirror, 3 = wrap
+
+ain soundin "fox.wav"
+ain = ain*igain
+
+if imode = 1 goto limit
+if imode = 2 goto mirror
+
+asig wrap ain, ilevl2, ilevl1
+goto outsignal
+
+limit:
+asig limit ain, ilevl2, ilevl1
+goto outsignal
-; Instrument #2, compressed signal.
-instr 2
- ; Use the "beats.wav" audio file and a mic
- avoice in
- asig diskin2 "beats.wav", 1, 0, 1
+mirror:
+asig mirror ain, ilevl2, ilevl1
+outsignal:
+
+outs asig*.5, asig*.5 ;mind your speakers
-klow line 0 , p3, 10000
-khigh = 10000
-ares limit asig, klow, khigh
- out ares
endin
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for 2 seconds.
-i 1 0 5
-; Play Instrument #2 for 2 seconds.
-i 2 6 11
-
+; Gain +Levl -Levl Mode
+i1 0 3 4.00 .25 -1.00 1 ;limit
+i1 4 3 4.00 .25 -1.00 2 ;mirror
+i1 8 3 4.00 .25 -1.00 3 ;wrap
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/line.csd b/examples/line.csd
index 08e82c4..00ba26c 100644
--- a/examples/line.csd
+++ b/examples/line.csd
@@ -1,49 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o line.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Define kcps as a frequency value that linearly declines
- ; from 880 to 220. It declines over the period set by p3.
- kcps line 880, p3, 220
-
- a1 oscil 20000, kcps, 1
- out a1
-endin
-
-instr 2
- kcps line 880, 1, 660 ; kcps won't stop at 660 if p3 > 1
- a1 oscil 20000, kcps, 1
- out a1
-endin
-
-</CsInstruments>
-<CsScore>
-
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for two seconds.
-i 1 0 2
-
-; Play Instrument #2 for two seconds.
-i 2 3 2
-
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kp = p6
+;choose between expon or line
+if (kp == 0) then
+ kpitch expon p4, p3, p5
+elseif (kp == 1) then
+ kpitch line p4, p3, p5
+endif
+
+asig vco2 .6, kpitch
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2 300 600 0 ;if p6=0 then expon is used
+i 1 3 2 300 600 1 ;if p6=1 then line is used
+i 1 6 2 600 1200 0
+i 1 9 2 600 1200 1
+i 1 12 2 1200 2400 0
+i 1 15 2 1200 2400 1
+i 1 18 2 2400 30 0
+i 1 21 2 2400 30 1
e
-
-
-</CsScore>
-</CsoundSynthesizer>
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/linen.csd b/examples/linen.csd
index 453348d..e50bd5f 100755..100644
--- a/examples/linen.csd
+++ b/examples/linen.csd
@@ -1,38 +1,38 @@
<CsoundSynthesizer>
<CsOptions>
-
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o dam.wav -W ;;; for file output any platform
+; -o linen.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
- instr 3 ; p3=duration of note
-k1 linen p4, p6, p3, p7 ; p4=amp
-a1 oscil k1, p5, 1 ; p5=freq
- out a1 ; p6=attack time
- endin ; p7=release time
-
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+; p4=amp
+; p5=freq
+; p6=attack time
+; p7=release time
+ares linen p4, p6, p3, p7
+asig poscil ares, p5, 1
+ outs asig, asig
+
+endin
</CsInstruments>
<CsScore>
-
f1 0 4096 10 1 ; sine wave
-;ins strt dur amp(p4) freq(p5) attack(p6) release(p7)
-i3 0 1 10000 440 0.5 0.7
-i3 1.5 1 10000 440 0.9 0.1
-i3 3 1 5000 880 0.02 0.99
-i3 4.5 1 5000 880 0.7 0.01
-i3 6 2 20000 220 0.5 0.5
-
+;ins strt dur amp freq attack release
+i1 0 1 .5 440 0.5 0.7
+i1 1.5 1 .2 440 0.9 0.1
+i1 3 1 .2 880 0.02 0.99
+i1 4.5 1 .2 880 0.7 0.01
+i1 6 3 .7 220 0.5 0.5
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lineto.csd b/examples/lineto.csd
new file mode 100644
index 0000000..d13fd89
--- /dev/null
+++ b/examples/lineto.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o lineto.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+kfreq randh 1000, 20, 2, 1, 2000 ;generates ten random number between 100 and 300 per second
+kpan randh .5, 1, 2, 1, .5 ;panning between 0 and 1
+kp lineto kpan, .5 ;smoothing pan transition
+aout poscil .4, kfreq, giSine
+aL, aR pan2 aout, kp
+ outs aL, aR
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/linrand.csd b/examples/linrand.csd
index f50dc2e..6fb0a05 100644
--- a/examples/linrand.csd
+++ b/examples/linrand.csd
@@ -1,49 +1,42 @@
-<CsoundSynthesizer>
-<CsOptions>
-; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
-; For Non-realtime ouput leave only the line below:
-; -o linrand.wav -W ;;; for file output any platform
-</CsOptions>
-<CsInstruments>
-
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Generate a random number between 0 and 1.
- ; krange = 1
-
- i1 linrand 1
-
- print i1
-endin
-
-; Instrument #2.
-instr 2
- ; Generate a random number between 0 and 1.
- ; krange = 1
-
- seed 0
-
- i1 linrand 1
-
- print i1
-endin
-
-</CsInstruments>
-<CsScore>
-; Play Instrument #1 for one second.
-i 1 0 1
-; Play Instrument #2 for one second.
-i 2 1 1
-e
-
-
-</CsScore>
-</CsoundSynthesizer>
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o linrand.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; every run time same values
+
+klin linrand 100
+ printk .2, klin ; look
+aout oscili 0.8, 440+klin, 1 ; & listen
+ outs aout, aout
+endin
+
+instr 2 ; every run time different values
+
+ seed 0
+klin linrand 100
+ printk .2, klin ; look
+aout oscili 0.8, 440+klin, 1 ; & listen
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+; sine wave
+f 1 0 16384 10 1
+
+i 1 0 2
+i 2 3 2
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/linseg.csd b/examples/linseg.csd
index 692d18c..8b0b09c 100644
--- a/examples/linseg.csd
+++ b/examples/linseg.csd
@@ -1,76 +1,56 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o linseg.wav -W ;;; for file output any platform
+;-o linseg.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
-; Instrument #1.
instr 1
- ; p4 = frequency in pitch-class notation.
- kcps = cpspch(p4)
- ; Create an amplitude envelope.
- kenv linseg 0, p3*0.25, 1, p3*0.75, 0
- kamp = kenv * 30000
+kcps = cpspch(p4)
+kenv linseg 0, 0.25, 1, 0.75, 0 ; together = 1 sec
+asig poscil kenv, kcps, giSine
+ outs asig, asig
- a1 oscil kamp, kcps, 1
- out a1
endin
+instr 2 ; scaling to duration
-instr 2
- ; p4 = frequency in pitch-class notation.
- kcps = cpspch(p4)
-
- ; Create an amplitude envelope.
- kenv linseg 0, 0.25, 1, 0.75, 0 ; kenv will go into negative if p3 > 1
- kamp = kenv * 30000
+kcps = cpspch(p4)
+kenv linseg 0, p3*0.25, 1, p3*0.75, 0
+asig poscil kenv, kcps, giSine
+ outs asig, asig
- a1 oscil kamp, kcps, 1
- out a1
endin
-instr 3
- ; p4 = frequency in pitch-class notation.
- kcps = cpspch(p4)
+instr 3 ; with negative value
- ; Create an amplitude envelope.
- kenv linseg 0, 0.25, 1, 0.75, 0, 1, 0 ; kenv will stay at 0 indefinetely at the end
- kamp = kenv * 30000
+kcps = cpspch(p4)
+aenv linseg 0, 0.1, 1, 0.5, -0.9, 0.4, 0
+asig poscil aenv, kcps, giSine
+ outs asig, asig
- a1 oscil kamp, kcps, 1
- out a1
endin
</CsInstruments>
<CsScore>
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for a half-second, p4=8.00
-i 1 0 0.5 8.00
-; Play Instrument #1 for a half-second, p4=8.01
-i 1 1 0.5 8.01
-; Play Instrument #1 for a half-second, p4=8.02
-i 1 2 0.5 8.02
-; Play Instrument #1 for a half-second, p4=8.03
-i 1 3 0.5 8.03
+i 1 0 1 7.00 ; = 1 sec, p3 fits exactly
+i 1 2 2 7.00 ; = 2 sec, p3 truncated at 1 sec
-i 2 4 1.5 8.00 ; Notice the problem with linseg
+i 2 4 1 7.00 ; scales to duration
+i 2 6 2 7.00 ; of p3
-i 3 6 1.5 8.00 ; this is the solution (instr 3)
+i 3 9 2 7.00
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/linsegb.csd b/examples/linsegb.csd
new file mode 100644
index 0000000..1b63a8c
--- /dev/null
+++ b/examples/linsegb.csd
@@ -0,0 +1,47 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o linseg.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+kcps = cpspch(p4)
+kenv linsegb 0, 0.25, 1, 1, 0
+asig poscil kenv, kcps, giSine
+ outs asig, asig
+
+endin
+
+instr 2 ; scaling to duration
+
+kcps = cpspch(p4)
+kenv linseg 0, p3*0.25, 1, p3, 0
+asig poscil kenv, kcps, giSine
+ outs asig, asig
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+i 1 0 1 7.00 ; = 1 sec, p3 fits exactly
+i 1 2 2 7.00 ; = 2 sec, p3 truncated at 1 sec
+
+i 2 4 1 7.00 ; scales to duration
+i 2 6 2 7.00 ; of p3
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/linsegr.csd b/examples/linsegr.csd
index 69e96d9..857fe61 100644
--- a/examples/linsegr.csd
+++ b/examples/linsegr.csd
@@ -1,53 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o linsegr.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; p4 = frequency in pitch-class notation.
- kcps = cpspch(p4)
- ; Use an amplitude envelope with second-long release.
- kenv linsegr 1, p3, 0.25, 1, 0
- kamp = kenv * 30000
-
- a1 oscil kamp, kcps, 1
- out a1
+
+icps cpsmidi
+iamp ampmidi .3
+
+kenv linsegr 1, .05, 0.5, 1, 0
+asig pluck kenv, icps, 200, 1, 1
+ outs asig, asig
+
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 4096 10 1 ;sine wave
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Make sure the score lasts for four seconds.
-f 0 4
-
-; p4 = frequency (in pitch-class notation).
-; Play Instrument #1 for a half-second, p4=8.00
-i 1 0 0.5 8.00
-; Play Instrument #1 for a half-second, p4=8.01
-i 1 1 0.5 8.01
-; Play Instrument #1 for a half-second, p4=8.02
-i 1 2 0.5 8.02
-; Play Instrument #1 for a half-second, p4=8.03
-i 1 3 0.5 8.03
+f0 30 ;runs 30 seconds
e
-
-
</CsScore>
-</CsoundSynthesizer>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/locsend_quad.csd b/examples/locsend_quad.csd
index 8b167c0..8b167c0 100755..100644
--- a/examples/locsend_quad.csd
+++ b/examples/locsend_quad.csd
diff --git a/examples/locsend_stereo.csd b/examples/locsend_stereo.csd
index f170cfe..98f75fc 100755..100644
--- a/examples/locsend_stereo.csd
+++ b/examples/locsend_stereo.csd
@@ -1,54 +1,51 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o locsend_stereo.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
+
+ga1 init 0
+ga2 init 0
-ga1 init 0
-ga2 init 0
-; Instrument #1
instr 1
- ; Use the "beats.wav" audio file.
-aout diskin2 "beats.wav", 1, 0, 1
-kdegree line 0, p3, 180
-kdistance line 1, p3 , 30
-a1, a2 locsig aout, kdegree, kdistance, .1
-ar1, ar2 locsend
-ga1 = ga1+ar1
-ga2 = ga2+ar2
+krevsend = p4
+aout diskin2 "beats.wav", 1, 0, 1
+kdegree line 0, p3, 180 ;left to right
+kdistance line 1, p3, 30
+a1, a2 locsig aout, kdegree, kdistance, p4
+ar1, ar2 locsend
+ga1 = ga1+ar1
+ga2 = ga2+ar2
+ outs a1, a2
- outs a1, a2
endin
instr 99 ; reverb instrument
a1 reverb2 ga1, 2.5, .5
a2 reverb2 ga2, 2.5, .5
outs a1, a2
-ga1=0
-ga2=0
+ga1 = 0
+ga2 = 0
+
endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
+; sine wave.
f 1 0 16384 10 1
-; Play Instrument #1 for five seconds.
-i 1 0 2
-i99 0 5
+i 1 0 4 .1 ;with reverb
+i 1 + 4 0 ;no reverb
+i99 0 7
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/locsig_quad.csd b/examples/locsig_quad.csd
index 8b167c0..ce4f8c2 100755..100644
--- a/examples/locsig_quad.csd
+++ b/examples/locsig_quad.csd
@@ -1,46 +1,46 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o locsend_quad.wav -W ;;; for file output any platform
+; -o locsig_quad.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 4
+0dbfs = 1
+
+ga1 init 0
+ga2 init 0
+ga3 init 0
+ga4 init 0
-ga1 init 0
-ga2 init 0
-ga3 init 0
-ga4 init 0
-; Instrument #1
instr 1
- ; Use the "beats.wav" audio file.
-aout diskin2 "beats.wav", 1, 0, 1
-kdegree line 0, p3, 360
-kdistance line 1, p3 , 10
-a1, a2, a3, a4 locsig aout, kdegree, kdistance, .1
-ar1, ar2, ar3, ar4 locsend
-ga1 = ga1+ar1
-ga2 = ga2+ar2
-ga3 = ga3+ar3
-ga4 = ga4+ar4
-
- outq a1, a2, a3, a4
+
+krevsend = p4
+aout diskin2 "beats.wav", 1, 0, 1
+kdegree line 0, p3, 360 ;full circle
+kdistance line 1, p3 , 1
+a1, a2, a3, a4 locsig aout, kdegree, kdistance, krevsend
+ar1, ar2, ar3, ar4 locsend
+
+ga1 = ga1+ar1
+ga2 = ga2+ar2
+ga3 = ga3+ar3
+ga4 = ga4+ar4
+ outq a1, a2, a3, a4
+
endin
instr 99 ; reverb instrument
-a1 reverb2 ga1, 3.5, .5
-a2 reverb2 ga2, 3.5, .5
-a3 reverb2 ga3, 3.5, .5
-a4 reverb2 ga4, 3.5, .5
-
- outq a1, a2, a3, a4
+a1 reverb2 ga1, 3.5, .5
+a2 reverb2 ga2, 3.5, .5
+a3 reverb2 ga3, 3.5, .5
+a4 reverb2 ga4, 3.5, .5
+ outq a1, a2, a3, a4
ga1 = 0
ga2 = 0
@@ -50,14 +50,12 @@ ga4 = 0
endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
+; sine wave.
f 1 0 16384 10 1
-i 1 0 2
-i99 0 5
+i 1 0 14 .1 ;with reverb
+i 1 14 14 0 ;no reverb
+i99 0 36
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/locsig_stereo.csd b/examples/locsig_stereo.csd
index 5eb1728..5eb1728 100755..100644
--- a/examples/locsig_stereo.csd
+++ b/examples/locsig_stereo.csd
diff --git a/examples/log2.csd b/examples/log2.csd
new file mode 100644
index 0000000..0cc4cef
--- /dev/null
+++ b/examples/log2.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+; Audio out Audio in
+-odac -iadc ;;;RT audio I/O
+; For Non-realtime ouput leave only the line below:
+; -o log10.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+; Initialize the global variables.
+sr = 44100
+kr = 4410
+ksmps = 10
+nchnls = 1
+
+; Instrument #1.
+instr 1
+ i1 = log2(8)
+ print i1
+endin
+
+
+</CsInstruments>
+<CsScore>
+
+; Play Instrument #1 for one second.
+i 1 0 1
+e
+
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/logicOR.csd b/examples/logicOR.csd
new file mode 100644
index 0000000..3a60feb
--- /dev/null
+++ b/examples/logicOR.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and virtual midi keyboard
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+</CsOptions>
+<CsInstruments>
+;after a UDO from Rory Walsh
+sr = 44100
+ksmps = 32
+nchnls = 2
+
+instr 1 ;displays notes, midi channel and control number information
+
+kstatus, kchan, kdata1, kdata2 midiin
+k1 changed kstatus
+k2 changed kchan
+k3 changed kdata1
+k4 changed kdata2
+if((k1==1)||(k2==1)||(k3==1)||(k4==1)) then
+printks "Value:%d ChanNo:%d CtrlNo:%d\n" , 0, kdata2, kchan, kdata1
+endif
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 60 ;print values for 60 seconds
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/loop_le.csd b/examples/loop_le.csd
new file mode 100644
index 0000000..38567e0
--- /dev/null
+++ b/examples/loop_le.csd
@@ -0,0 +1,48 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o loop_le.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+seed 0
+gisine ftgen 0, 0, 2^10, 10, 1
+
+instr 1 ;master instrument
+
+ininstr = 5 ;number of called instances
+indx = 0
+loop:
+ prints "play instance %d\\n", indx
+ipan random 0, 1
+ifreq random 100, 1000
+iamp = 1/ininstr
+event_i "i", 10, 0, p3, iamp, ifreq, ipan
+loop_le indx, 1, ininstr, loop
+
+endin
+
+instr 10
+
+ipeak random 0, 1 ;where is the envelope peak
+asig poscil3 p4, p5, gisine
+aenv transeg 0, p3*ipeak, 6, 1, p3-p3*ipeak, -6, 0
+aL,aR pan2 asig*aenv, p6
+ outs aL, aR
+
+endin
+
+</CsInstruments>
+<CsScore>
+i1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/loop_lt.csd b/examples/loop_lt.csd
new file mode 100644
index 0000000..93d96d7
--- /dev/null
+++ b/examples/loop_lt.csd
@@ -0,0 +1,48 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o loop_lt.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+seed 0
+gisine ftgen 0, 0, 2^10, 10, 1
+
+instr 1 ;master instrument
+
+ininstr = 5 ;number of called instances
+indx = 0
+loop:
+ prints "play instance %d\\n", indx
+ipan random 0, 1
+ifreq random 100, 1000
+iamp = 1/ininstr
+event_i "i", 10, 0, p3, iamp, ifreq, ipan
+loop_lt indx, 1, ininstr, loop
+
+endin
+
+instr 10
+
+ipeak random 0, 1 ;where is the envelope peak
+asig poscil3 p4, p5, gisine
+aenv transeg 0, p3*ipeak, 6, 1, p3-p3*ipeak, -6, 0
+aL,aR pan2 asig*aenv, p6
+ outs aL, aR
+
+endin
+
+</CsInstruments>
+<CsScore>
+i1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/loopseg.csd b/examples/loopseg.csd
index 18d3e74..1322425 100644
--- a/examples/loopseg.csd
+++ b/examples/loopseg.csd
@@ -1,40 +1,47 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o loopseg.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1
instr 1
- kfreq line 1, p3, 20
-
- klp loopseg kfreq, 0, 0, 0, 0.5, 30000, 1, 0
-
- a1 oscil klp, 440, 1
- out a1
+kfreq init p4 ; frequency of loop repetition
+ifrac = p5 ; frequency ratio of restart triggers
+ktrig metro kfreq * ifrac ; triggers to restart loop
+iphase = 0 ; initial phase
+; loop of note values (some glissandi)
+; val dur val dur etc...
+knote loopseg kfreq, ktrig, iphase, 40, 1, 40, 0, 43,1,43,0, 49,2,48,0, \
+ 47,1,47,0, 46,1,46,0, 46,1,47,0, 49,1,49,0, 43,1,43,0, 46,1,46,0, 40,1,39,0
+; loop of filter cutoff values (oct format). This loop, half speed of note loop.
+kcfoct loopseg kfreq*0.5, ktrig, iphase, 11,2,4,0, 12,1,4,0, 13,1,4,0, \
+ 11.5,3,4,0, 12.5,1,4,0, 13,2,4,0, 12.5,1,4,0
+kenv linseg 0,0.01,1,p3-5.01,1,5,0
+ioct = int((rnd(0.999)*4)-2) ; random value either -1, 0 or 1
+asig vco2 0.2*kenv,cpsmidinn(knote)*octave(ioct),0 ; sawtooth
+asig moogladder asig,cpsoct(kcfoct),rnd(0.6) ; filter sawtooth
+aL,aR pan2 asig,rnd(1) ; random static pan location
+ outs aL, aR
endin
-
</CsInstruments>
<CsScore>
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for five seconds.
-i 1 0 5
+; 4 layers, each with a different frequency of loop repetition (p4),
+; frequency ratio of restart triggers (p5) and pan position (p6).
+i 1 0 30 0.5 [11/19]
+i 1 6 30 0.25 [11/13]
+i 1 12 30 0.125 [11/16]
+i 1 18 30 1 [11/12]
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/loopsegp.csd b/examples/loopsegp.csd
index 8d81f08..764c6be 100644
--- a/examples/loopsegp.csd
+++ b/examples/loopsegp.csd
@@ -1,42 +1,50 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o loopsegp.wav -W ;;; for file output any platform
</CsOptions>
-
<CsInstruments>
-sr=44100
-ksmps=1
-nchnls=2
-
-; By Mark Van Peteghem 2008
-
- instr 1
-iphase = p4
-
-kenv linen 1, 0.1, p3, 0.1
-kph_amp phasor 2, 0
-kamp loopsegp kph_amp, 60, 1, 30, 1, 60
-kamp = ampdb(kamp)*kenv
-
-kph_freq phasor 2, iphase
-klow_freq line 200, p3, 100
-kfreq loopsegp kph_freq, 400, 1, klow_freq, 1, 400
-
-asig vco2 kamp, kfreq, 2, 0.5
- outs asig, asig
-
- endin
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+ktrig metro 22/8 ; triggers used to generate new direction values
+kdir trandom ktrig,-2.99,2.99
+kdir = 0.5*int(kdir) ; kdir will either -1, -0.5, 0, 0.5 or 1
+; kphase - looping pointer
+kphase phasor kdir
+; a loop sequence of midi note numbers and durations
+knote loopsegp kphase, 40,1,40,0, 43,1,43,0, 49,2,48,0, \
+ 47,1,47,0, 46,1,46,0, 46,1,47,0, 49,1,49,0, 43,1,43,0, 46,1,46,0, 40,1,39,0
+kmul rspline 0.1,0.8,0.5,5 ; modulation of buzz tone
+asig gbuzz 0.2, cpsmidinn(knote), 30, 3, kmul, 1 ; buzz tone
+ outs asig, asig
+
+ schedkwhen ktrig,0,0,2,0,0.1 ; play metronome
+endin
+
+instr 2 ; metronome
+acps expon 180+rnd(40),p3,50
+aamp expon 0.05+rnd(0.05),p3,0.001
+asig poscil aamp-0.001,acps,2
+ outs asig,asig
+endin
</CsInstruments>
-
<CsScore>
-i1 0 3 0
-i1 + . 0.50
-</CsScore>
+; cosine wave.
+f 1 0 16384 11 1
+; sine wave.
+f 2 0 16384 10 1
+i 1 0 360 0.25
+
+e
+</CsScore>
</CsoundSynthesizer>
diff --git a/examples/looptseg.csd b/examples/looptseg.csd
index 64df1eb..fffd892 100644
--- a/examples/looptseg.csd
+++ b/examples/looptseg.csd
@@ -1,40 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o looptseg.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1
instr 1
- kfreq line 1, p3, 20
-
- klp looptseg kfreq, 0, 0, 0, 1, 0.5, 30000, -1, 1, 0
-
- a1 oscil klp, 440, 1
- out a1
+kfreq = 1 ; frequency of loop repetition
+ktrig init 0 ; loop restart trigger (not used)
+iphase = 0 ; initial phase
+ktyp line 6,p3,-6 ; explore the useful range of curve types
+; loop of filter cutoff values (oct format)
+; value curve dur.
+kcfoct looptseg kfreq, ktrig, iphase,13, ktyp, 1, \
+ 4, ktyp, 0, \
+ 11, ktyp, 1, \
+ 4
+asig vco2 0.2,cpsmidinn(48),0 ; a sawtooth
+asig moogladder asig,cpsoct(kcfoct),rnd(0.6) ; filter sawtooth
+ outs asig, asig
endin
-
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for five seconds.
-i 1 0 5
+i 1 0 12
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/loopxseg.csd b/examples/loopxseg.csd
index 12d2822..8cc6731 100644
--- a/examples/loopxseg.csd
+++ b/examples/loopxseg.csd
@@ -1,40 +1,36 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o loopxseg.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1
instr 1
- kfreq line 1, p3, 20
-
- klp loopxseg kfreq, 0, 0, 0, 0.5, 30000, 1, 0
-
- a1 oscil klp, 440, 1
- out a1
+kfreq rspline 0.01,20,0.2,1 ; freq. of loop repetition created by random spline
+ktrig init 0 ; loop restart trigger (not used)
+iphase = 0 ; initial phase
+; loop of filter cutoff values (oct format). Rescaled further down.
+kcfoct loopxseg kfreq, ktrig, iphase, 1,1,0,0
+kenv linseg 0,0.01,1,p3-5.01,1,5,0
+asig vco2 0.2*kenv,cpsmidinn(48),0
+kdep rspline 5,8,0.2,1 ; filter depth created by a random spline
+kcf port cpsoct((kcfoct*kdep)+4), 0.001 ; smooth filter changes
+asig moogladder asig,kcf,rnd(0.6)
+aL,aR pan2 asig,rnd(1)
+ outs aL, aR
endin
-
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for five seconds.
-i 1 0 5
+i 1 0 60
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lorismorph.csd b/examples/lorismorph.csd
index 53f7c36..6354559 100755..100644
--- a/examples/lorismorph.csd
+++ b/examples/lorismorph.csd
@@ -1,83 +1,80 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lorismorph.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
-ksmps = 128
+ksmps = 32
nchnls = 2
+0dbfs = 1
+; clarinet.sdif and meow.sdif can be found in /manual/examples
-; Morph the partials in clarinet.sdif into the partials in flute.sdif over the duration of
-; the sustained portion of the two tones (from .2 to 2.0 seconds in the clarinet, and from
-; .5 to 2.1 seconds in the flute). The onset and decay portions in the morphed sound are
+; Morph the partials in meow.sdif into the partials in clarinet.sdif over the duration of
+; the sustained portion of the two tones (from .2 to 2.0 seconds in the meow, and from
+; .5 to 2.1 seconds in the clarinet). The onset and decay portions in the morphed sound are
; specified by parameters p4 and p5, respectively. The morphing time is the time between the
-; onset and the decay. The clarinet partials are shfited in pitch to match the pitch of the flute
+; onset and the decay. The meow partials are shfited in pitch to match the pitch of the clarinet
; tone (D above middle C).
instr 1
-ionset = p4
-idecay = p5
-itmorph = p3 - (ionset + idecay)
-ipshift = cpspch(8.02)/cpspch(8.08)
+
+ionset = p4
+idecay = p5
+itmorph = p3 - (ionset + idecay)
+ipshift = cpspch(8.02)/cpspch(8.08)
-ktcl linseg 0, ionset, .2, itmorph, 2.0, idecay, 2.1 ; clarinet time function, morph from .2 to 2.0 seconds
-ktfl linseg 0, ionset, .5, itmorph, 2.1, idecay, 2.3 ; flute time function, morph from .5 to 2.1 seconds
+ktme linseg 0, ionset, .2, itmorph, 2.0, idecay, 2.1 ; meow time function, morph from .2 to 2.0 seconds
+ktcl linseg 0, ionset, .5, itmorph, 2.1, idecay, 2.3 ; clarinet time function, morph from .5 to 2.1 seconds
kmurph linseg 0, ionset, 0, itmorph, 1, idecay, 1
- lorisread ktcl, "meow.sdif", 1, ipshift, 2, 1, .001
- lorisread ktfl, "clarinet.sdif", 2, 1, 1, 1, .001
- lorismorph 1, 2, 3, kmurph, kmurph, kmurph
-asig lorisplay 3, 1, 1, 1
- outs asig, asig
+ lorisread ktme, "meow.sdif", 1, ipshift, 2, 1, .001
+ lorisread ktcl, "clarinet.sdif", 2, 1, 1, 1, .001
+ lorismorph 1, 2, 3, kmurph, kmurph, kmurph
+asig lorisplay 3, 1, 1, 1
+ outs asig, asig
endin
-; Morph the partials in trombone.sdif into the partials in meow.sdif. The start and end times
+; Morph the partials in clarinet.sdif into the partials in meow.sdif. The start and end times
; for the morph are specified by parameters p4 and p5, respectively. The morph occurs over the
; second of four pitches in each of the sounds, from .75 to 1.2 seconds in the flutter-tongued
-; trombone tone, and from 1.7 to 2.2 seconds in the cat's meow. Different morphing functions are
+; clarinet tone, and from 1.7 to 2.2 seconds in the cat's meow. Different morphing functions are
; used for the frequency and amplitude envelopes, so that the partial amplitudes make a faster
-; transition from trombone to cat than the frequencies. (The bandwidth envelopes use the same
+; transition from clarinet to cat than the frequencies. (The bandwidth envelopes use the same
; morphing function as the amplitudes.)
instr 2
-ionset = p4
-imorph = p5 - p4
-irelease = p3 - p5
+
+ionset = p4
+imorph = p5 - p4
+irelease = p3 - p5
-ktclar linseg 0, ionset, .75, imorph, 1.2, irelease, 2.4
+ktclar linseg 0, ionset, .75, imorph, 1.2, irelease, 2.4
ktmeow linseg 0, ionset, 1.7, imorph, 2.2, irelease, 3.4
kmfreq linseg 0, ionset, 0, .75*imorph, .25, .25*imorph, 1, irelease, 1
kmamp linseg 0, ionset, 0, .75*imorph, .9, .25*imorph, 1, irelease, 1
- lorisread ktclar, "clarinet.sdif", 1, 1, 1, 1, .001
- lorisread ktmeow, "meow.sdif", 2, 1, 1, 1, .001
- lorismorph 1, 2, 3, kmfreq, kmamp, kmamp
-asig lorisplay 3, 1, 1, 1
- outs asig, asig
+ lorisread ktclar, "clarinet.sdif", 1, 1, 1, 1, .001
+ lorisread ktmeow, "meow.sdif", 2, 1, 1, 1, .001
+ lorismorph 1, 2, 3, kmfreq, kmamp, kmamp
+asig lorisplay 3, 1, 1, 1
+ outs asig, asig
endin
-
</CsInstruments>
-
<CsScore>
-; play instr 1
; strt dur onset decay
i 1 0 3 .25 .15
i 1 + 1 .10 .10
i 1 + 6 1. 1.
-
-
-; play instr 2
; strt dur morph_start morph_end
i 2 9 4 .75 2.75
e
</CsScore>
- </CsoundSynthesizer>
-
+</CsoundSynthesizer>
diff --git a/examples/lorisplay.csd b/examples/lorisplay.csd
index 1d71b19..08ca66f 100755..100644
--- a/examples/lorisplay.csd
+++ b/examples/lorisplay.csd
@@ -1,58 +1,61 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lorisplay.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
-ksmps = 128
+ksmps = 32
nchnls = 2
+0dbfs = 1
+; clarinet.sdif can be found in /manual/examples
; Play the partials in clarinet.sdif from 0 to 3 sec with 1 ms fadetime
; and no frequency , amplitude, or bandwidth modification.
instr 1
-ktime linseg 0, p3, 3.0 ; linear time function from 0 to 3 seconds
- lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
-asig lorisplay 1, 1, 1, 1
- outs asig, asig
-endin
+ktime linseg 0, p3, 3.0 ; linear time function from 0 to 3 seconds
+ lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
+kfrq = p4 ; pitch shifting
+asig lorisplay 1, kfrq, 1, 1
+ outs asig, asig
+endin
; Play the partials in clarinet.sdif from 0 to 3 sec with 1 ms fadetime
; adding tuning and vibrato, increasing the "breathiness" (noisiness) and overall
; amplitude, and adding a highpass filter.
instr 2
+
ktime linseg 0, p3, 3.0 ; linear time function from 0 to 3 seconds
- ; compute frequency scale for tuning
+ ; compute frequency scale for tuning
-ifscale = cpspch(p4)/cpspch(8.08) ; (original pitch was G#4)
- ; make a vibrato envelope
+ifscale = cpspch(p4)/cpspch(8.08) ; (original pitch was G#4)
+ ; make a vibrato envelope
kvenv linseg 0, p3/6, 0, p3/6, .02, p3/3, .02, p3/6, 0, p3/6, 0
-kvib oscil kvenv, 4, 1 ; table 1, sinusoid
-kbwenv linseg 1, p3/6, 1, p3/6, 100, 2*p3/3, 100 ;lots of noise
- lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
-a1 lorisplay 1, ifscale+kvib, 2, kbwenv
-a2 atone a1, 1000 ; highpass filter, cutoff 1000 Hz
- outs a2, a2
+kvib oscil kvenv, 4, 1 ; table 1, sinusoid
+kbwenv linseg 1, p3/6, 1, p3/6, 100, 2*p3/3, 100 ;lots of noise
+ lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
+a1 lorisplay 1, ifscale+kvib, 2, kbwenv
+asig atone a1, 1000 ; highpass filter, cutoff 1000 Hz
+ outs asig, asig
endin
</CsInstruments>
<CsScore>
-; make sinusoid in table 1
+; a sinusoid
f 1 0 4096 10 1
-; play instr 1
-; strt dur
-i 1 0 3
-i 1 + 1
-i 1 + 6
+
+i 1 0 3 1.2 ; shifted up
+i 1 + 1 1.5
+i 1 + 6 .5 ; shifted down
s
-; play instr 2
+
; strt dur ptch
i 2 1 3 8.08
i 2 3.5 1 8.04
diff --git a/examples/lorisread.csd b/examples/lorisread.csd
index 11809a5..3b96ef1 100755..100644
--- a/examples/lorisread.csd
+++ b/examples/lorisread.csd
@@ -1,25 +1,27 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lorisread.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
-ksmps = 128
+ksmps = 32
nchnls = 2
+0dbfs = 1
; Play the partials in clarinet.sdif from 0 to 3 sec with 1 ms fadetime
; and no frequency , amplitude, or bandwidth modification.
instr 1
-ktime linseg 0, p3, 3.0 ; linear time function from 0 to 3 seconds
- lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
-asig lorisplay 1, 1, 1, 1
- outs asig, asig
+
+ktime linseg 0, p3, 3 ; linear time function from 0 to 3 seconds
+ lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
+asig lorisplay 1, 1, 1, 1
+ outs asig, asig
endin
@@ -28,37 +30,35 @@ endin
; amplitude, and adding a highpass filter.
instr 2
-ktime linseg 0, p3, 3.0 ; linear time function from 0 to 3 seconds
- ; compute frequency scale for tuning
-
-ifscale = cpspch(p4)/cpspch(8.08) ; (original pitch was G#4)
- ; make a vibrato envelope
-kvenv linseg 0, p3/6, 0, p3/6, .02, p3/3, .02, p3/6, 0, p3/6, 0
-kvib oscil kvenv, 4, 1 ; table 1, sinusoid
-kbwenv linseg 1, p3/6, 1, p3/6, 2, 2*p3/3, 2 ;lots of noise
- lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
-a1 lorisplay 1, ifscale+kvib, 2, kbwenv
-a2 atone a1, 1000 ; highpass filter, cutoff 1000 Hz
- outs a2, a2
+
+ktime linseg 0, p3, 3 ; linear time function from 0 to 3 seconds
+ ; compute frequency scale for tuning
+ifscale = cpspch(p4)/cpspch(8.08) ; (original pitch was G#4)
+ ; make a vibrato envelope
+kvenv linseg 0, p3/6, 0, p3/6, .02, p3/3, .02, p3/6, 0, p3/6, 0
+kvib oscil kvenv, 4, 1 ; table 1, sinusoid
+kbwenv linseg 1, p3/6, 1, p3/6, 2, 2*p3/3, 2 ;lots of noise
+ lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
+a1 lorisplay 1, ifscale+kvib, 2, kbwenv
+asig atone a1, 1000 ; highpass filter, cutoff 1000 Hz
+ outs asig, asig
endin
</CsInstruments>
<CsScore>
-; make sinusoid in table 1
+; a sinus
f 1 0 4096 10 1
-; play instr 1
-; strt dur
+
i 1 0 3
i 1 + 1
i 1 + 6
s
-; play instr 2
-; strt dur ptch
+
+; pitch
i 2 1 3 8.08
i 2 3.5 1 8.04
i 2 4 6 8.00
i 2 4 6 8.07
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/loscil.csd b/examples/loscil.csd
index e639657..e5b966a 100644
--- a/examples/loscil.csd
+++ b/examples/loscil.csd
@@ -1,46 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o loscil.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- ; If you don't know the frequency of your audio file,
- ; set both the kcps and ibas parameters equal to 1.
- kcps = 1
- ifn = 1
- ibas = 1
-
- a1 loscil kamp, kcps, ifn, ibas
- out a1
-endin
+ichnls = ftchnls(p4)
+print ichnls
+
+if (ichnls == 1) then
+ asigL loscil .8, 1, p4, 1
+ asigR = asigL
+elseif (ichnls == 2) then
+ asigL, asigR loscil .8, 1, p4, 1
+;safety precaution if not mono or stereo
+else
+ asigL = 0
+ asigR = 0
+endif
+ outs asigL, asigR
+endin
</CsInstruments>
<CsScore>
+f 1 0 0 1 "mary.wav" 0 0 0
+f 2 0 0 1 "kickroll.wav" 0 0 0
-; Table #1: an audio file.
-; Its table size is deferred,
-; and format taken from the soundfile header.
-f 1 0 0 1 "beats.wav" 0 0 0
-
-; Play Instrument #1 for 6 seconds.
-; This will loop the audio file several times.
-i 1 0 6
+i 1 0 3 1 ;mono file
+i 1 + 2 2 ;stereo file
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/loscil3.csd b/examples/loscil3.csd
index 9fa68bd..647820a 100644
--- a/examples/loscil3.csd
+++ b/examples/loscil3.csd
@@ -1,46 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o loscil3.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- ; If you don't know the frequency of your audio file,
- ; set both the kcps and ibas parameters equal to 1.
- kcps = 1
- ifn = 1
- ibas = 1
-
- a1 loscil3 kamp, kcps, ifn, ibas
- out a1
-endin
+ichnls = ftchnls(p4)
+print ichnls
+
+if (ichnls == 1) then
+ asigL loscil3 .8, 1, p4, 1
+ asigR = asigL
+elseif (ichnls == 2) then
+ asigL, asigR loscil3 .8, 1, p4, 1
+;safety precaution if not mono or stereo
+else
+ asigL = 0
+ asigR = 0
+endif
+ outs asigL, asigR
+endin
</CsInstruments>
<CsScore>
+f 1 0 0 1 "mary.wav" 0 0 0
+f 2 0 0 1 "kickroll.wav" 0 0 0
-; Table #1: an audio file.
-; Its table size is deferred,
-; and format taken from the soundfile header.
-f 1 0 0 1 "beats.wav" 0 0 0
-
-; Play Instrument #1 for 6 seconds.
-; This will loop the drum pattern several times.
-i 1 0 6
+i 1 0 3 1 ;mono file
+i 1 + 2 2 ;stereo file
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lowres.csd b/examples/lowres.csd
index 02f88fe..bcb8674 100644
--- a/examples/lowres.csd
+++ b/examples/lowres.csd
@@ -1,45 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lowres.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Use a nice sawtooth waveform.
- asig vco 5000, 440, 1
- ; Vary the cutoff frequency from 30 to 300 Hz.
- kcutoff line 30, p3, 300
- kresonance = 10
+kres = p4
+asig vco .2, 220, 1 ;sawtooth
- ; Apply the filter.
- a1 lowres asig, kcutoff, kresonance
+kcut line 1000, p3, 10 ;note: kcut is not in Hz
+as lowres asig, kcut, kres ;note: kres is not in dB
+aout balance as, asig ;avoid very loud sounds
+ outs aout, aout
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave for the vco opcode.
+; a sine
f 1 0 16384 10 1
-; Play Instrument #1 for two seconds.
-i 1 0 2
+i 1 0 4 3
+i 1 + 4 30
+i 1 + 4 60
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lowresx.csd b/examples/lowresx.csd
index f8a608e..a2f341e 100644
--- a/examples/lowresx.csd
+++ b/examples/lowresx.csd
@@ -1,48 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lowresx.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - play the sawtooth waveform through a
-; stack of filters.
instr 1
- ; Use a nice sawtooth waveform.
- asig vco 5, 440, 1
- ; Vary the cutoff frequency from 30 to 300 Hz.
- kcutoff line 30, p3, 600
- kresonance = 3
- inumlayer = 5
+kres = p4
+inumlayer = 4
- alr lowresx asig, kcutoff, kresonance, inumlayer
+kenv linseg 0, p3*.1, 1, p3*.8, 1, p3*.1, 0 ;envelope
+asig vco .3 * kenv, 220, 1 ;sawtooth
+kcut line 30, p3, 1000 ;note: kcut is not in Hz
+alx lowresx asig, kcut, kres, inumlayer ;note: kres is not in dB
+aout balance alx, asig ;avoid very loud sounds
+ outs aout, aout
- ; It gets loud, so clip the output amplitude to 30,000.
- a1 clip alr, 1, 30000
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave for the vco opcode.
+;sine wave
f 1 0 16384 10 1
-; Play Instrument #1 for two seconds.
-i 1 0 4
+i 1 0 5 1
+i 1 + 5 3
+i 1 + 5 20
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lpfreson.csd b/examples/lpfreson.csd
index 75c5fb1..d1e6bb2 100755..100644
--- a/examples/lpfreson.csd
+++ b/examples/lpfreson.csd
@@ -1,43 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lpfreson.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+;do not use -a option when analyzing "fox.wav" with lpfreson,
+;it needs a filter coefficient type of file
instr 1
-asig buzz 20000, 100, 10, 1
-;do not use -a option when analyzing (= filter coefficient) "fox.wav" from the manual
-;fox.lpc = 2.8 seconds long
-ktime line 0, p3, 2.8 ; Define time lin
-krmsr,krmso,kerr,kcps lpread ktime,"fox_nopoles.lp"
-;aout lpreson asig
-aout lpfreson asig, 1.6
-ares balance aout, asig
- out ares
-
-endin
+ilen filelen "fox.wav" ; length of soundfile
+prints "fox.wav = %f seconds\\n",ilen
+ktime line 0, p3, p4
+krmsr,krmso,kerr,kcps lpread ktime,"fox_nopoles.lpc"
+krmso = krmso*.00001 ; low volume
+asig buzz krmso, kcps, int(sr/2/kcps), 1 ; max harmonics without aliasing
+aout lpfreson asig, 1.2
+asig clip aout, 0, 1 ; prevents distortion
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
+; sine
f1 0 4096 10 1
-i 1 0 2.8
+i 1 0 2.8 1 ; first words only
+i 1 4 2.8 2.8 ; whole sentence
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lposcil.csd b/examples/lposcil.csd
index 05018a7..44cd258 100755..100644
--- a/examples/lposcil.csd
+++ b/examples/lposcil.csd
@@ -1,36 +1,30 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lposcil.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- kcps = 1.5
- ifn = 1
- kloop = 0
- kend = 45000
- a1 lposcil kamp, kcps, kloop, kend, ifn
- out a1
-endin
+kcps = 1.5 ; a fifth up
+kloop = 0 ; loop start time in samples
+kend = 45000 ; loop end time in samples
+asig lposcil 1, kcps, kloop, kend, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1: an audio file.
; Its table size is deferred,
; and format taken from the soundfile header.
f 1 0 0 1 "beats.wav" 0 0 0
@@ -38,8 +32,7 @@ f 1 0 0 1 "beats.wav" 0 0 0
; Play Instrument #1 for 6 seconds.
; This will loop the drum pattern several times.
i 1 0 6
-e
-
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lposcil3.csd b/examples/lposcil3.csd
index 002a579..bd9eb02 100755..100644
--- a/examples/lposcil3.csd
+++ b/examples/lposcil3.csd
@@ -1,45 +1,38 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lposcil3.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- kcps = 1
- ifn = 1
- kloop = 0
- kend line 35000, p3, 10000
+kcps = 1.5 ; a fifth up
+kloop = 0 ; loop start time (in samples)
+kend line 45000, p3, 10000 ; vary loop end time (in samples)
- a1 lposcil3 kamp, kcps, kloop, kend, ifn
- out a1
-endin
-
+asig lposcil3 1, kcps, kloop, kend, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1: an audio file.
; Its table size is deferred,
; and format taken from the soundfile header.
f 1 0 0 1 "beats.wav" 0 0 0
; Play Instrument #1 for 6 seconds.
+; This will loop the drum pattern several times.
i 1 0 6
-e
-
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lposcila.csd b/examples/lposcila.csd
index d5ff8d9..59e2a27 100755..100644
--- a/examples/lposcila.csd
+++ b/examples/lposcila.csd
@@ -1,46 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lposcila.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- aamp = 30000
- kcps = 1.5
- ifn = 1
- kloop = 0
- kend line 25000, p3, 0
+kcps = 1.3 ;a 3d up
+kloop = 0 ;loop start time in samples
+kend = 10000 ;loop end time in samples
- a1 lposcila aamp, kcps, kloop, kend, ifn
- out a1
-endin
-
+aenv expsega 0.01, 0.1, 1, 0.1, 0.5, 0.5, 0.01 ;envelope with fast and short segment
+asig lposcila aenv, kcps, kloop, kend, 1 ;use it for amplitude
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1: an audio file.
; Its table size is deferred,
; and format taken from the soundfile header.
f 1 0 0 1 "beats.wav" 0 0 0
; Play Instrument #1 for 6 seconds.
+; This will loop the drum pattern several times.
+i 1 0 2
-i 1 0 6
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lposcilsa.csd b/examples/lposcilsa.csd
new file mode 100644
index 0000000..8e85475
--- /dev/null
+++ b/examples/lposcilsa.csd
@@ -0,0 +1,40 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o lposcilsa.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kcps = 1.3 ;a 3th up
+kloop = 0 ;loop start time in samples
+kend = 45000 ;loop end time in samples
+
+aenv expsega 0.01, 0.1, 1, 0.1, 0.5, 0.5, 0.01 ;envelope with fast and short segment
+aL, aR lposcilsa aenv, kcps, kloop, kend, 1 ;use it for amplitude
+ outs aL, aR
+
+endin
+</CsInstruments>
+<CsScore>
+; table size of stereo file is deferred,
+; and format taken from the soundfile header.
+f 1 0 0 1 "kickroll.wav" 0 0 0
+
+; Play Instrument #1 for 6 seconds.
+; This will loop the drum pattern several times.
+i 1 0 2
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/lposcilsa2.csd b/examples/lposcilsa2.csd
new file mode 100644
index 0000000..0aafb47
--- /dev/null
+++ b/examples/lposcilsa2.csd
@@ -0,0 +1,40 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o lposcilsa2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kcps = 2 ;only integers are allowed
+kloop = 0 ;loop start time in samples
+kend = 45000 ;loop end time in samples
+
+aenv expsega 0.01, 0.1, 1, 0.1, 0.5, 0.5, 0.01 ;envelope with fast and short segment
+aL, aR lposcilsa2 aenv, kcps, kloop, kend, 1 ;use it for amplitude
+ outs aL, aR
+
+endin
+</CsInstruments>
+<CsScore>
+; Its table size is deferred,
+; and format taken from the soundfile header.
+f 1 0 0 1 "kickroll.wav" 0 0 0
+
+; Play Instrument #1 for 6 seconds.
+; This will loop the drum pattern several times.
+i 1 0 2
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/lpread.csd b/examples/lpread.csd
index c536f50..73227c2 100755..100644
--- a/examples/lpread.csd
+++ b/examples/lpread.csd
@@ -1,42 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lpread.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
-;can use -a option when analyzing (= filter coefficient) or without -a option "fox.wav" from the manual
-;fox.lpc = 2.8 seconds long
-ktime line 0, p3, 2.8 ; Define time lin
-krmsr,krmso,kerr,kcps lpread ktime,"foxpoles.lp"
-aout buzz krmso, kcps, 15, 1
-asig rand krmsr
-
- out aout*2+asig
-
+; works with or without -a option when analyzing "fox.wav" from the manual
+ilen filelen "fox.wav" ; length of soundfile
+prints "fox.wav = %f seconds\\n",ilen
+
+ktime line 0, p3, p4
+krmsr,krmso,kerr,kcps lpread ktime,"fox_poles.lpc"
+krmso = krmso*.00007 ; low volume
+aout buzz krmso, kcps, 15, 1
+krmsr = krmsr*.0001 ; low volume
+asig rand krmsr
+ outs (aout*2)+asig, (aout*2)+asig ; mix buzz and rand
endin
-
-
</CsInstruments>
<CsScore>
-
+; sine
f1 0 4096 10 1
-i 1 0 2.8
+i 1 0 2.8 1 ; first words only
+i 1 4 2.8 2.8 ; whole sentence
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lpreson-2.csd b/examples/lpreson-2.csd
new file mode 100644
index 0000000..0a38fda
--- /dev/null
+++ b/examples/lpreson-2.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o lpreson-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+; works with or without -a option when analyzing "fox.wav" from the manual
+;both options sound a little different
+instr 1
+
+ilen filelen "fox.wav" ;length of soundfile 1
+prints "fox.wav = %f seconds\\n",ilen
+
+ktime line 0, p3, ilen
+krmsr,krmso,kerr,kcps lpread ktime,"fox_nopoles.lpc"
+asig diskin2 "flute.aiff", 1
+aout lpreson asig
+ares balance aout, asig
+ outs ares, ares
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2.8
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/lpreson.csd b/examples/lpreson.csd
index 162672d..ef1887d 100755..100644
--- a/examples/lpreson.csd
+++ b/examples/lpreson.csd
@@ -1,40 +1,41 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lpreson.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-instr 1
-;can use -a option when analyzing (= filter coefficient) or without -a option "fox.wav" from the manual
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+; works with or without -a option when analyzing "fox.wav" from the manual
;both options sound a little different
-;foxnopoles.lp = 2.8 seconds long
-ktime line 0, p3, 2.8 ; Define time lin
-krmsr,krmso,kerr,kcps lpread ktime,"foxnopoles.lp"
-asig diskin2 "mary.wav", 1
-aout lpreson asig
-ares balance aout, asig
- out ares
+instr 1
+ilen filelen "fox.wav" ; length of soundfile
+prints "fox.wav = %f seconds\\n",ilen
-endin
+ktime line 0, p3, p4
+krmsr,krmso,kerr,kcps lpread ktime,"fox_poles.lpc"
+krmso = krmso*.00001 ; low volume
+asig buzz krmso, kcps, int(sr/2/kcps), 1 ; max harmonics without aliasing
+aout lpreson asig
+asig clip aout, 0, 1 ; prevents distortion
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+; sine
+f1 0 4096 10 1
-i 1 0 2.8
+i 1 0 2.8 1 ; first words only
+i 1 4 2.8 2.8 ; whole sentence
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lpshold.csd b/examples/lpshold.csd
index bfd650f..83c2fce 100644
--- a/examples/lpshold.csd
+++ b/examples/lpshold.csd
@@ -1,40 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lpshold.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1
instr 1
- kfreq line 1, p3, 20
-
- klp lpshold kfreq, 0, 0, 0, p3*0.25, 20000, p3*0.75, 0
-
- a1 oscil klp, 440, 1
- out a1
+kfrq init p4 ; frequency of the loop
+ifrac = p5 ; fraction of frequency at which to force retrigger
+ipan = p6 ; pan position
+ktrig metro kfrq * ifrac ; trigger to force restart the loop
+iphs = 0 ; initial phase of the loop
+; a loop of midi note numbers: note duration etc...
+knote lpshold kfrq, ktrig, iphs, 61, 0.0625, 60, 0.9375, 61, 1, 58, 1, \
+63, 2, 65, 3
+aenv linseg 0,0.01,1,p3-0.11,1,0.1,0 ; amplitude envelope
+krnd rspline -0.05,0.05,0.5,1 ; random detune
+asig gbuzz 0.2*aenv, cpsmidinn(knote+krnd), 30, 1, 0.5, 1
+ outs asig*ipan, asig*(1-ipan)
endin
-
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for five seconds.
-i 1 0 5
+; cosine wave.
+f 1 0 16384 11 1
+
+; 3 layers of the loop are played, each at a different speed,
+; - with different retriggering rate, and pan location.
+i 1 0 60 0.5 [8/10] 0.5
+i 1 0 60 0.375 [8/11] 0.1
+i 1 0 60 0.25 [8/13] 0.9
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/lpsholdp.csd b/examples/lpsholdp.csd
new file mode 100644
index 0000000..4100289
--- /dev/null
+++ b/examples/lpsholdp.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o lpsholdp.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+ipan = p4
+ktrig = 0 ; (no retriggering)
+; kphase - looping pointer - is generated using a random spline
+kphase rspline 0,1,0.5,5
+; a loop sequence of midi note numbers and durations
+; val dur val dur etc...
+knote lpsholdp kphase, 60, 1, 59, 0.1, 62, 1, 64, 1, 67, 0.1, 65, 1
+asig gbuzz 0.2, cpsmidinn(knote), 30, 1, 0.5, 1
+ outs asig*ipan, asig*(1-ipan)
+endin
+
+</CsInstruments>
+<CsScore>
+; cosine wave.
+f 1 0 16384 11 1
+
+; 2 layers of the loop are played each with a different pan position (p4)
+i 1 0 60 0.25
+i 1 0 60 0.75
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/luamoog.csd b/examples/luamoog.csd
new file mode 100644
index 0000000..e20eb5e
--- /dev/null
+++ b/examples/luamoog.csd
@@ -0,0 +1,264 @@
+<CsoundSynthesizer>
+<CsInstruments>
+sr = 48000
+ksmps = 100
+nchnls = 1
+
+ gibegan rtclock
+
+ lua_opdef "moogladder", {{
+local ffi = require("ffi")
+local math = require("math")
+local string = require("string")
+local csoundApi = ffi.load('csound64.dll.5.2')
+ffi.cdef[[
+ int csoundGetKsmps(void *);
+ double csoundGetSr(void *);
+ struct moogladder_t {
+ double *out;
+ double *inp;
+ double *freq;
+ double *res;
+ double *istor;
+ double sr;
+ double ksmps;
+ double thermal;
+ double f;
+ double fc;
+ double fc2;
+ double fc3;
+ double fcr;
+ double acr;
+ double tune;
+ double res4;
+ double input;
+ double i;
+ double j;
+ double k;
+ double kk;
+ double stg[6];
+ double delay[6];
+ double tanhstg[6];
+ };
+]]
+
+local moogladder_ct = ffi.typeof('struct moogladder_t *')
+
+function moogladder_init(csound, opcode, carguments)
+ local p = ffi.cast(moogladder_ct, carguments)
+ p.sr = csoundApi.csoundGetSr(csound)
+ p.ksmps = csoundApi.csoundGetKsmps(csound)
+ if p.istor[0] == 0 then
+ for i = 0, 5 do
+ p.delay[i] = 0.0
+ end
+ for i = 0, 3 do
+ p.tanhstg[i] = 0.0
+ end
+ end
+ return 0
+end
+
+function moogladder_kontrol(csound, opcode, carguments)
+ local p = ffi.cast(moogladder_ct, carguments)
+ -- transistor thermal voltage
+ p.thermal = 1.0 / 40000.0
+ if p.res[0] < 0.0 then
+ p.res[0] = 0.0
+ end
+ -- sr is half the actual filter sampling rate
+ p.fc = p.freq[0] / p.sr
+ p.f = p.fc / 2.0
+ p.fc2 = p.fc * p.fc
+ p.fc3 = p.fc2 * p.fc
+ -- frequency & amplitude correction
+ p.fcr = 1.873 * p.fc3 + 0.4955 * p.fc2 - 0.6490 * p.fc + 0.9988
+ p.acr = -3.9364 * p.fc2 + 1.8409 * p.fc + 0.9968
+ -- filter tuning
+ p.tune = (1.0 - math.exp(-(2.0 * math.pi * p.f * p.fcr))) / p.thermal
+ p.res4 = 4.0 * p.res[0] * p.acr
+ -- Nested 'for' loops crash, not sure why.
+ -- Local loop variables also are problematic.
+ -- Lower-level loop constructs don't crash.
+ p.i = 0
+ while p.i < p.ksmps do
+ p.j = 0
+ while p.j < 2 do
+ p.k = 0
+ while p.k < 4 do
+ if p.k == 0 then
+ p.input = p.inp[p.i] - p.res4 * p.delay[5]
+ p.stg[p.k] = p.delay[p.k] + p.tune * (math.tanh(p.input * p.thermal) - p.tanhstg[p.k])
+ else
+ p.input = p.stg[p.k - 1]
+ p.tanhstg[p.k - 1] = math.tanh(p.input * p.thermal)
+ if p.k < 3 then
+ p.kk = p.tanhstg[p.k]
+ else
+ p.kk = math.tanh(p.delay[p.k] * p.thermal)
+ end
+ p.stg[p.k] = p.delay[p.k] + p.tune * (p.tanhstg[p.k - 1] - p.kk)
+ end
+ p.delay[p.k] = p.stg[p.k]
+ p.k = p.k + 1
+ end
+ -- 1/2-sample delay for phase compensation
+ p.delay[5] = (p.stg[3] + p.delay[4]) * 0.5
+ p.delay[4] = p.stg[3]
+ p.j = p.j + 1
+ end
+ p.out[p.i] = p.delay[5]
+ p.i = p.i + 1
+ end
+ return 0
+end
+}}
+
+/*
+Moogladder - An improved implementation of the Moog ladder filter
+
+DESCRIPTION
+This is an new digital implementation of the Moog ladder filter based on the work of Antti Huovilainen,
+described in the paper \"Non-Linear Digital Implementation of the Moog Ladder Filter\" (Proceedings of DaFX04, Univ of Napoli).
+This implementation is probably a more accurate digital representation of the original analogue filter.
+This is version 2 (revised 14/DEC/04), with improved amplitude/resonance scaling and frequency correction using a couple of polynomials,as suggested by Antti.
+
+SYNTAX
+ar Moogladder asig, kcf, kres
+
+PERFORMANCE
+asig - input signal
+kcf - cutoff frequency (Hz)
+kres - resonance (0 - 1).
+
+CREDITS
+Victor Lazzarini
+*/
+
+ opcode moogladderu, a, akk
+asig, kcf, kres xin
+ setksmps 1
+ipi = 4 * taninv(1)
+/* filter delays */
+az1 init 0
+az2 init 0
+az3 init 0
+az4 init 0
+az5 init 0
+ay4 init 0
+amf init 0
+ if kres > 1 then
+kres = 1
+ elseif kres < 0 then
+kres = 0
+ endif
+/* twice the \'thermal voltage of a transistor\' */
+i2v = 40000
+/* sr is half the actual filter sampling rate */
+kfc = kcf/sr
+kf = kcf/(sr*2)
+/* frequency & amplitude correction */
+kfcr = 1.8730 * (kfc^3) + 0.4955 * (kfc^2) - 0.6490 * kfc + 0.9988
+kacr = -3.9364 * (kfc^2) + 1.8409 * kfc + 0.9968;
+/* filter tuning */
+k2vg = i2v * (1 - exp(-2 * ipi * kfcr * kf))
+/* cascade of 4 1st order sections */
+ay1 = az1 + k2vg * (tanh((asig - 4 * kres * amf * kacr) / i2v) - tanh(az1 / i2v))
+az1 = ay1
+ay2 = az2 + k2vg * (tanh(ay1 / i2v) - tanh(az2 / i2v ))
+az2 = ay2
+ay3 = az3 + k2vg * (tanh(ay2 / i2v) - tanh(az3 / i2v))
+az3 = ay3
+ay4 = az4 + k2vg * (tanh(ay3 / i2v) - tanh(az4 / i2v))
+az4 = ay4
+/* 1/2-sample delay for phase compensation */
+amf = (ay4 + az5) *0.5
+az5 = ay4
+/* oversampling */
+ay1 = az1 + k2vg * (tanh((asig - 4 * kres * amf * kacr) / i2v) - tanh(az1 / i2v))
+az1 = ay1
+ay2 = az2 + k2vg * (tanh(ay1 / i2v) - tanh(az2 / i2v ))
+az2 = ay2
+ay3 = az3 + k2vg * (tanh(ay2 / i2v) - tanh(az3 / i2v))
+az3 = ay3
+ay4 = az4 + k2vg * (tanh(ay3 / i2v) - tanh(az4 / i2v))
+az4 = ay4
+amf = (ay4 + az5) * 0.5
+az5 = ay4
+ xout amf
+ endop
+
+instr 1
+ prints "No filter.\n"
+ kfe expseg 500, p3*0.9, 1800, p3*0.1, 3000
+ kenv linen 10000, 0.05, p3, 0.05
+ asig buzz kenv, 100, sr/(200), 1
+ ; afil moogladder asig, kfe, 1
+ out asig
+endin
+
+instr 2
+ prints "Native moogladder.\n"
+ kfe expseg 500, p3*0.9, 1800, p3*0.1, 3000
+ kenv linen 10000, 0.05, p3, 0.05
+ asig buzz kenv, 100, sr/(200), 1
+ afil moogladder asig, kfe, 1
+ out afil
+endin
+
+instr 3
+ prints "UDO moogladder.\n"
+ kfe expseg 500, p3*0.9, 1800, p3*0.1, 3000
+ kenv linen 10000, 0.05, p3, 0.05
+ asig buzz kenv, 100, sr/(200), 1
+ afil moogladderu asig, kfe, 1
+ out afil
+endin
+
+instr 4
+ prints "Lua moogladder.\n"
+ kres init 1
+ istor init 0
+ kfe expseg 500, p3*0.9, 1800, p3*0.1, 3000
+ kenv linen 10000, 0.05, p3, 0.05
+ asig buzz kenv, 100, sr/(200), 1
+ afil init 0
+ lua_ikopcall "moogladder", afil, asig, kfe, kres, istor
+ out afil
+endin
+
+instr 5
+ giended rtclock
+ ielapsed = giended - gibegan
+ print ielapsed
+ gibegan rtclock
+endin
+
+</CsInstruments>
+
+<CsScore>
+f 1 0 65536 10 1
+i 5.1 0 1
+i 4 1 20
+i 5.2 21 1
+i 4 22 20
+i 5.3 42 1
+i 2 43 20
+i 5.4 63 1
+i 2 64 20
+i 5.5 84 1
+i 3 85 20
+i 5.6 105 1
+i 3 106 20
+i 5.7 126 1
+i 1 127 20
+i 5.8 147 1
+i 1 148 20
+i 5.9 168 1
+i 4 169 20
+i 4 170 20
+i 4 171 20
+e
+</CsScore>
+
+</CsoundSynthesizer>
diff --git a/examples/luaopcode.csd b/examples/luaopcode.csd
new file mode 100644
index 0000000..1a3612a
--- /dev/null
+++ b/examples/luaopcode.csd
@@ -0,0 +1,61 @@
+<CsoundSynthesizer>
+
+<CsInstruments>
+lua_opdef "luatest", {{
+local ffi = require("ffi")
+local string = require("string")
+local csoundLibrary = ffi.load('csound64.dll.5.2')
+ffi.cdef[[
+ int csoundGetKsmps(void *);
+ double csoundGetSr(void *);
+ struct luatest_arguments {double *out; double *stringout; char *stringin; double *in1; double *in2; double sr; int ksmps; };
+]]
+function luatest_init(csound, opcode, carguments)
+ local arguments = ffi.cast("struct luatest_arguments *", carguments)
+ arguments.sr = csoundLibrary.csoundGetSr(csound)
+ print(string.format('stringin: %s', ffi.string(arguments.stringin)))
+ print(string.format('sr: %f', arguments.sr))
+ arguments.ksmps = csoundLibrary.csoundGetKsmps(csound)
+ print(string.format('ksmps: %d', arguments.ksmps))
+ arguments.out[0] = arguments.in1[0] * arguments.in2[0]
+ ffi.copy(arguments.stringout, 'Hello, world!')
+ return 0
+end
+function luatest_kontrol(csound, opcode, carguments)
+ local arguments = ffi.cast("struct luatest_arguments *", carguments)
+ arguments.out[0] = arguments.in1[0] * arguments.in2[0]
+ return 0
+end
+function luatest_noteoff(csound, opcode, carguments)
+ local arguments = ffi.cast("struct luatest_arguments *", carguments)
+ arguments.out[0] = arguments.in1[0] * arguments.in2[0]
+ print('off')
+ return 0
+end
+}}
+
+instr 1
+ iresult = 0
+ Stringin = "stringin"
+ Stringout = "stringout"
+ lua_iopcall "luatest", iresult, Stringout, Stringin, p2, p3
+ prints Stringout
+endin
+instr 2
+ iresult = 0
+ Stringin = "stringin"
+ Stringout = "initial value"
+ lua_iopcall_off "luatest", iresult, Stringout, Stringin, p2, p3
+ print iresult
+ prints Stringout
+endin
+</CsInstruments>
+
+<CsScore>
+i 1 1 2
+i 2 2 2
+i 1 3 2
+e
+</CsScore>
+
+</CsoundSynthesizer>
diff --git a/examples/m.csd b/examples/m.csd
new file mode 100644
index 0000000..743d902
--- /dev/null
+++ b/examples/m.csd
@@ -0,0 +1,40 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o m.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+aenv expseg .01, p3*0.25, 1, p3*0.75, 0.01
+asig poscil3 .8*aenv, p4, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1 ;sine wave
+
+m foo ;mark section
+i 1 0 1 110
+i 1 1.5 1 220
+i 1 3 1 440
+i 1 4.5 1 880
+s ;second section
+i 1 0 2 110
+i 1 2 2 220
+s
+n foo ;repeat marked section
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/mac.csd b/examples/mac.csd
new file mode 100644
index 0000000..876f6b0
--- /dev/null
+++ b/examples/mac.csd
@@ -0,0 +1,51 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o mac.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;4 band equalizer
+
+klow = p4 ;low gain1
+klmid = p5 ;low gain2
+kmidh = p6 ;high gain1
+khigh = p7 ;high gain2
+ifn = p8 ;table
+
+ilc1 table 0, ifn ;low freqency range
+ilc2 table 1, ifn ;low-mid
+ihc1 table 2, ifn ;mid-high
+ihc2 table 3, ifn ;high
+
+asig diskin2 "fox.wav", 1
+alow1 butterlp asig, ilc1 ;lowpass 1
+almid butterlp asig, ilc2 ;lowpass 2
+amidh butterhp asig, ihc1 ;highpass 1
+ahigh butterhp asig, ihc2 ;highpass 2
+aout mac klow, alow1, klmid, almid, kmidh, amidh, khigh, ahigh
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 4 -2 150 300 600 5000
+f2 0 4 -2 75 500 1000 10000
+f3 0 4 -2 200 700 1500 3000
+
+; low lowmid midhigh high table
+i 1 0 2.8 2 1 1 1 1
+i 1 3 2.8 2 3 1 1 2
+i 1 6 2.8 2 1 2 3 3
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/maca.csd b/examples/maca.csd
new file mode 100644
index 0000000..89eb269
--- /dev/null
+++ b/examples/maca.csd
@@ -0,0 +1,61 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o mac.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;4 band equalizer
+
+klow = p4 ;low gain1
+aenv1 oscil 0.2, 1, 4
+aenv1 = aenv1 + klow
+klmid = p5 ;low gain2
+aenv2 oscil 0.21, 1.1, 4
+aenv2 = aenv2 + klmid
+kmidh = p6 ;high gain1
+aenv3 oscil 0.19, 1.2, 4
+aenv3 = aenv3 + kmidh
+khigh = p7 ;high gain2
+aenv4 oscil 0.18, 1.3, 4
+aenv4 = aenv4 + khigh
+
+ifn = p8 ;table
+
+ilc1 table 0, ifn ;low freqency range
+ilc2 table 1, ifn ;low-mid
+ihc1 table 2, ifn ;mid-high
+ihc2 table 3, ifn ;high
+
+asig diskin2 "fox.wav", 1
+alow1 butterlp asig, ilc1 ;lowpass 1
+almid butterlp asig, ilc2 ;lowpass 2
+amidh butterhp asig, ihc1 ;highpass 1
+ahigh butterhp asig, ihc2 ;highpass 2
+aout maca aenv1, alow1, aenv2, almid, aenv3, amidh, aenv4, ahigh
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 4 -2 150 300 600 5000
+f2 0 4 -2 75 500 1000 10000
+f3 0 4 -2 200 700 1500 3000
+f4 0 4096 10 1
+
+; low lowmid midhigh high table
+i 1 0 2.8 2 1 1 1 1
+i 1 3 2.8 2 3 1 1 2
+i 1 6 2.8 2 1 2 3 3
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/madsr-2.csd b/examples/madsr-2.csd
new file mode 100644
index 0000000..2ab3547
--- /dev/null
+++ b/examples/madsr-2.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o madsr-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+icps cpsmidi
+iamp ampmidi .5
+
+kenv madsr 0.5, 0, 1, 0.5
+asig pluck kenv, icps, icps, 2, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 2 0 4096 10 1
+
+f0 30 ;runs 30 seconds
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/mandel.csd b/examples/mandel.csd
new file mode 100644
index 0000000..46949b6
--- /dev/null
+++ b/examples/mandel.csd
@@ -0,0 +1,102 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o mandel.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+;example by Brian Evans
+sr = 44100
+ksmps = 32
+nchnls = 2
+
+instr 1
+
+ipitchtable = 1 ; pitch table in score
+ipitchndx = p5 ; p5=pitch index from table
+
+ipitch table ipitchndx, ipitchtable
+kenv expseg 1.0, 1.0, 1.0, 11.5, .0001
+asig pluck ampdb(p4)*kenv, cpspch(ipitch), cpspch(ipitch), 0, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+f1 0 32 -2 6.00 6.02 6.04 6.05 6.07 6.09 6.11 ; f1 is a pitch table defining a four octave C major scale starting
+ 7.00 7.02 7.04 7.05 7.07 7.09 7.11 ; on C two octaves below middle C
+ 8.00 8.02 8.04 8.05 8.07 8.09 8.11
+ 9.00 9.02 9.04 9.05 9.07 9.09 9.11
+
+;ins start dur ampdb(p4) pitchndx(p5)
+
+i1 0 12.0 75 3
+i1 1.5999 12.0 75 4
+i1 3.4000 12.0 75 5
+i1 4.2000 12.0 75 6
+i1 4.4000 12.0 75 7
+i1 4.6000 12.0 75 9
+i1 4.8000 12.0 75 10
+i1 5.0000 12.0 75 5
+i1 5.2000 12.0 75 27
+i1 5.4000 12.0 75 5
+i1 5.6000 12.0 75 20
+i1 6.0000 12.0 75 24
+i1 6.2000 12.0 75 2
+i1 6.4000 12.0 75 27
+i1 6.6000 12.0 75 20
+i1 6.8000 12.0 75 15
+i1 7.0000 12.0 75 3
+i1 7.2000 12.0 75 3
+i1 7.4000 12.0 75 23
+i1 7.6000 12.0 75 9
+i1 7.8000 12.0 75 17
+i1 8.0000 12.0 75 18
+i1 8.2000 12.0 75 3
+i1 8.4000 12.0 75 26
+i1 8.6000 12.0 75 15
+i1 8.8 12.0 75 2
+i1 9 12.0 75 26
+i1 9.2 12.0 75 8
+i1 9.3999 12.0 75 22
+i1 9.5999 12.0 75 22
+i1 9.7999 12.0 75 20
+i1 9.9999 12.0 75 19
+i1 10.399 12.0 75 20
+i1 10.799 12.0 75 22
+i1 10.999 12.0 75 27
+i1 11.199 12.0 75 25
+i1 11.399 12.0 75 20
+i1 11.599 12.0 75 21
+i1 11.799 12.0 75 24
+i1 11.999 12.0 75 24
+i1 12.199 12.0 75 4
+i1 12.399 12.0 75 13
+i1 12.599 12.0 75 15
+i1 12.799 12.0 75 14
+i1 12.999 12.0 75 3
+i1 13.199 12.0 75 21
+i1 13.399 12.0 75 6
+i1 13.599 12.0 75 3
+i1 13.799 12.0 75 10
+i1 13.999 12.0 75 25
+i1 14.199 12.0 75 21
+i1 14.399 12.0 75 20
+i1 14.599 12.0 75 19
+i1 14.799 12.0 75 18
+i1 15.199 12.0 75 17
+i1 15.599 12.0 75 16
+i1 15.999 12.0 75 15
+i1 16.599 12.0 75 14
+i1 17.199 12.0 75 13
+i1 18.399 12.0 75 12
+i1 18.599 12.0 75 11
+i1 19.199 12.0 75 10
+i1 19.799 12.0 75 9
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/mandol.csd b/examples/mandol.csd
index 14e91e1..0461fa8 100644
--- a/examples/mandol.csd
+++ b/examples/mandol.csd
@@ -1,47 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o mandol.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = p5
- ; kfreq = 880
- ; kpluck = 0.4
- ; kdetune = 0.99
- ; kgain = 0.99
- ksize = p4
- ; ifn = 1
- ; ifreq = 220
- a1 mandol kamp, 880, 0.4, 0.99, 0.99, ksize, 1, 220
+kamp = p4
+ksize = p5
+kdetune = p6
+asig mandol kamp, 880, .4, kdetune, 0.99, ksize, 1, 220
+ outs asig, asig
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-
-; Table #1: the "mandpluk.aiff" audio file
+; "mandpluk.aiff" audio file
f 1 0 8192 1 "mandpluk.aiff" 0 0 0
-; Play Instrument #1 for one second.
-i 1 0.5 1 2 45000
-i 1 + 1 .3 10000 ;change volume to compensate
-e
-
+i 1 .5 1 1 2 .99
+i 1 + 1 .5 1 .99 ;lower volume to compensate
+i 1 + 3 .3 .3 .99 ;lower volume to compensate
+i 1 4 1 1 2 .39 ;change detune value
+i 1 + 1 .5 1 .39
+i 1 + 3 .3 .3 .39
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/maparray.csd b/examples/maparray.csd
new file mode 100644
index 0000000..1063736
--- /dev/null
+++ b/examples/maparray.csd
@@ -0,0 +1,84 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+;create an array and fill with numbers
+kArrSrc[] fillarray 1.01, 2.02, 3.03, 4.05, 5.08, 6.13, 7.21
+
+;print source array
+ printf "%s", 1, "\nSource array:\n"
+kndx = 0
+ until kndx == lenarray(kArrSrc) do
+ printf "kArrSrc[%d] = %f\n", kndx+1, kndx, kArrSrc[kndx]
+kndx += 1
+ od
+
+;create an empty array for the results
+kArrRes[] init 7
+
+;apply the sqrt() function to each element
+kArrRes maparray kArrSrc, "sqrt"
+
+;print the result
+ printf "%s", 1, "\nResult after applying sqrt() to source array\n"
+kndx = 0
+ until kndx == lenarray(kArrRes) do
+ printf "kArrRes[%d] = %f\n", kndx+1, kndx, kArrRes[kndx]
+kndx += 1
+ od
+
+;apply the log() function to each element
+kArrRes maparray kArrSrc, "log"
+
+;print the result
+ printf "%s", 1, "\nResult after applying log() to source array\n"
+kndx = 0
+ until kndx == lenarray(kArrRes) do
+ printf "kArrRes[%d] = %f\n", kndx+1, kndx, kArrRes[kndx]
+kndx += 1
+ od
+
+;apply the int() function to each element
+kArrRes maparray kArrSrc, "int"
+
+;print the result
+ printf "%s", 1, "\nResult after applying int() to source array\n"
+kndx = 0
+ until kndx == lenarray(kArrRes) do
+ printf "kArrRes[%d] = %f\n", kndx+1, kndx, kArrRes[kndx]
+kndx += 1
+ od
+
+;apply the frac() function to each element
+kArrRes maparray kArrSrc, "frac"
+
+;print the result
+ printf "%s", 1, "\nResult after applying frac() to source array\n"
+kndx = 0
+ until kndx == lenarray(kArrRes) do
+ printf "kArrRes[%d] = %f\n", kndx+1, kndx, kArrRes[kndx]
+kndx += 1
+ od
+
+;turn instrument instance off
+ turnoff
+
+endin
+
+
+</CsInstruments>
+<CsScore>
+i 1 0 0.1
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/massign.csd b/examples/massign.csd
new file mode 100644
index 0000000..1b49ead
--- /dev/null
+++ b/examples/massign.csd
@@ -0,0 +1,63 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o massign.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giengine fluidEngine
+; soundfont path to manual/examples
+isfnum fluidLoad "19Trumpet.sf2", giengine, 1
+ fluidProgramSelect giengine, 1, isfnum, 0, 56
+
+massign 0,0 ;disable triggering of all instruments on all channels, but
+massign 12,10 ;assign instr. 10 to midi channel 12
+massign 3,30 ;assign instr. 30 to midi channel 3
+
+instr 10 ; soundfont only on midi channel 12
+
+ mididefault 60, p3
+ midinoteonkey p4, p5 ; in midi notes
+ikey init p4
+ivel init p5
+ fluidNote giengine, 1, ikey, ivel
+endin
+
+instr 30 ; FM-oscilator only on midi channel 3
+
+ mididefault 60, p3
+ midinoteoncps p4, p5 ; in Hertz
+icps init p4
+iamp init p5
+iamp = iamp/127
+kenv madsr 0.5, 0, 1, 0.5
+asig foscil iamp*kenv, icps, 1, 1.414, 2, 1
+ outs asig, asig
+endin
+
+instr 99 ; output sound from fluidengine
+
+imvol init 7
+aL, aR fluidOut giengine
+ outs aL*imvol, aR*imvol
+endin
+</CsInstruments>
+<CsScore>
+; sine
+f 1 0 16384 10 1
+
+i 10 0 2 60 100 ;one note on the trumpet in midi and...
+i 30 2 2 220 80 ;one FM note in Hz
+i 99 0 60 ;stay active for 60 sec.
+e
+
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/max.csd b/examples/max.csd
new file mode 100644
index 0000000..722855f
--- /dev/null
+++ b/examples/max.csd
@@ -0,0 +1,38 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o max.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+k1 oscili 1, 10.0, 1 ;combine 3 sinusses
+k2 oscili 1, 1.0, 1 ;at different rates
+k3 oscili 1, 3.0, 1
+kmax max k1, k2, k3
+kmax = kmax*250 ;scale kmax
+printk2 kmax ;check the values
+
+aout vco2 .5, 220, 6 ;sawtooth
+asig moogvcf2 aout, 600+kmax, .5 ;change filter around 600 Hz
+ outs asig, asig
+
+endin
+
+</CsInstruments>
+<CsScore>
+f1 0 32768 10 1
+
+i1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/max_k.csd b/examples/max_k.csd
new file mode 100644
index 0000000..842d68e
--- /dev/null
+++ b/examples/max_k.csd
@@ -0,0 +1,54 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -Ma ;;;realtime audio out and midi in (on all inputs)
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o max_k.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+
+ FLpanel "This Panel contains VU-meter",300,100
+gk1,gih1 FLslider "VU-meter", 0,1,0,1, -1, 250,30, 30,30
+ FLsetColor2 50, 50, 255, gih1
+ FLpanel_end
+ FLrun
+
+ga1 init 0
+
+instr 1
+
+kenv linsegr 0,.5,.7,.5,.5,.2,0
+ifreq cpsmidi
+a1 poscil 0dbfs*kenv, ifreq, 1
+ga1 = ga1+a1
+
+endin
+
+instr 2
+
+ outs ga1, ga1
+ktrig metro 25 ;refresh 25 times per second
+kval max_k ga1, ktrig, 1
+ FLsetVal ktrig, kval, gih1
+ga1 = 0
+
+endin
+
+</CsInstruments>
+<CsScore>
+f1 0 1024 10 1
+
+i2 0 3600
+f0 3600
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/maxabs.csd b/examples/maxabs.csd
new file mode 100644
index 0000000..9465af3
--- /dev/null
+++ b/examples/maxabs.csd
@@ -0,0 +1,38 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o maxabs.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+k1 oscili 1, 10.0, 1 ;combine 3 sinusses
+k2 oscili 1, 1.0, 1 ;at different rates
+k3 oscili 1, 3.0, 1
+kmax maxabs k1, k2, k3
+kmax = kmax*250 ;scale kmax
+printk2 kmax ;check the values
+
+aout vco2 .5, 220, 6 ;sawtooth
+asig moogvcf2 aout, 600+kmax, .5 ;change filter above 600 Hz
+ outs asig, asig
+
+endin
+
+</CsInstruments>
+<CsScore>
+f1 0 32768 10 1
+
+i1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/maxabsaccum.csd b/examples/maxabsaccum.csd
new file mode 100644
index 0000000..0d12de8
--- /dev/null
+++ b/examples/maxabsaccum.csd
@@ -0,0 +1,55 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o maxabsaccum.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;saw
+
+asig vco2 .2, p4
+ outs asig, asig
+gasaw = asig
+endin
+
+instr 2 ;sine
+
+aout poscil .3, p4, 1
+ outs aout, aout
+gasin = aout
+endin
+
+instr 10
+
+accum init 0
+ maxabsaccum accum, gasaw + gasin ;saw and sine accumulated
+accum dcblock2 accum ;get rid of DC
+ outs accum, accum
+
+clear accum
+endin
+
+</CsInstruments>
+<CsScore>
+f 1 0 4096 10 1 ;sine wave
+
+i 1 0 7 330
+i 2 3 3 440
+
+i 1 10 7 330 ;same notes but without maxabsaccum, for comparison
+i 2 13 3 440
+
+i 10 0 6 ;accumulation note stops after 6 seconds
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/maxaccum.csd b/examples/maxaccum.csd
new file mode 100644
index 0000000..ca3961b
--- /dev/null
+++ b/examples/maxaccum.csd
@@ -0,0 +1,54 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o maxaccum.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;saw
+
+asig vco2 .2, p4
+ outs asig, asig
+gasaw = asig
+endin
+
+instr 2 ;sine
+
+aout poscil .3, p4, 1
+ outs aout, aout
+gasin = aout
+endin
+
+instr 10
+
+accum init 0
+ maxaccum accum, gasaw + gasin ;saw and sine accumulated
+ outs accum, accum
+
+clear accum
+endin
+
+</CsInstruments>
+<CsScore>
+f 1 0 4096 10 1
+
+i 1 0 7 330
+i 2 3 3 440
+
+i 1 10 7 330 ;same notes but without maxaccum, for comparison
+i 2 13 3 440
+
+i 10 0 6 ;accumulation note stops after 6 seconds
+
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/maxalloc.csd b/examples/maxalloc.csd
index dc41489..1258cb9 100644
--- a/examples/maxalloc.csd
+++ b/examples/maxalloc.csd
@@ -1,45 +1,36 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o maxalloc.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Limit Instrument #1 to three instances.
-maxalloc 1, 3
+maxalloc 1, 3 ; Limit to three instances.
-; Instrument #1
instr 1
- ; Generate a waveform, get the cycles per second from the 4th p-field.
- a1 oscil 6500, p4, 1
- out a1
-endin
+asig oscil .3, p4, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Just generate a nice, ordinary sine wave.
+; sine
f 1 0 32768 10 1
-; Play five instances of Instrument #1 for one second.
-; Note that 4th p-field contains cycles per second.
-i 1 0 1 220
-i 1 0 1 440
-i 1 0 1 880
-i 1 0 1 1320
-i 1 0 1 1760
+i 1 0 5 220 ;1
+i 1 1 4 440 ;2
+i 1 2 3 880 ;3, limit is reached
+i 1 3 2 1320 ;is not played
+i 1 4 1 1760 ;is not played
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/maxarray.csd b/examples/maxarray.csd
new file mode 100644
index 0000000..e2db085
--- /dev/null
+++ b/examples/maxarray.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+;example by joachim heintz
+
+ seed 0
+
+instr 1
+;create an array with 10 elements
+kArr[] init 10
+;fill in random numbers and print them out
+kIndx = 0
+ until kIndx == 10 do
+kNum random -100, 100
+kArr[kIndx] = kNum
+ printf "kArr[%d] = %10f\n", kIndx+1, kIndx, kNum
+kIndx += 1
+ od
+;investigate maximum number and print it out
+kMax, kMaxIndx maxarray kArr
+ printf "Maximum of kArr = %f at index %d\n", kIndx+1, kMax, kMaxIndx
+ turnoff
+endin
+
+
+</CsInstruments>
+<CsScore>
+i1 0 0.1
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/mclock.csd b/examples/mclock.csd
new file mode 100644
index 0000000..95e39e6
--- /dev/null
+++ b/examples/mclock.csd
@@ -0,0 +1,25 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-Q0 ;;;midi out
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;let csound synchronize a sequencer
+
+mclock 24
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+i 1 0 30
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/meow.sdif b/examples/meow.sdif
index 344abb8..344abb8 100755..100644
--- a/examples/meow.sdif
+++ b/examples/meow.sdif
Binary files differ
diff --git a/examples/metro-2.csd b/examples/metro-2.csd
new file mode 100644
index 0000000..c028cb2
--- /dev/null
+++ b/examples/metro-2.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o metro-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kpch random 1,20 ;produce values at k-rate
+ktrig metro 10 ;trigger 10 times per second
+kval samphold kpch, ktrig ;change value whenever ktrig = 1
+asig buzz 1, 220, kval, 1;harmonics
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 4096 10 1 ; sine
+
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/midic7.csd b/examples/midic7.csd
new file mode 100644
index 0000000..9667cc6
--- /dev/null
+++ b/examples/midic7.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o midic7.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+; This example expects MIDI controller input on channel 1
+; run, play a note and move your midi controller 7 to see result
+
+imax = 1
+imin = 0
+ichan = 1
+ictlno= 7 ; = midi volume
+
+kamp midic7 ictlno, imin, imax
+ printk2 kamp
+asig oscili kamp, 220, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+; no score events allowed
+f 0 20 ;20 sec. for real-time MIDI events
+f 1 0 4096 10 1 ;sine wave
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/midichannelaftertouch.csd b/examples/midichannelaftertouch.csd
index 7da0623..f31a010 100644
--- a/examples/midichannelaftertouch.csd
+++ b/examples/midichannelaftertouch.csd
@@ -1,31 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
+-odac -M1 ;;;realtime audio out and midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o midichannelaftertouch.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
-kafter init 0
+midinoteoncps p4, p5 ;puts MIDI key translated to cycles per second into p4, and MIDI velocity into p5
+kafter init 127 ;full open
midichannelaftertouch kafter
-; Display the aftertouch value when it changes and when key is pressed
- printk2 kafter
-endin
+printk2 kafter ;display the key value when it changes and when key is pressed
+
+kvel = p5/127 ;scale midi velocity to 0-1
+kenv madsr 0.5, 0.8, 0.8, 0.5 ;amplitude envelope multiplied by
+ain pluck kenv*kvel, p4, p4, 2, 1 ;velocity value
+asig moogvcf2 ain, 200+(kafter*40), .5 ;scale value of aftertouch and control filter frequency
+ outs asig, asig ;base freq of filter = 200 Hz
+endin
</CsInstruments>
<CsScore>
+f 0 30 ;runs 30 seconds
+f 2 0 4096 10 1
-; Play Instrument #1 for ten seconds.
-i 1 0 10
+i 1 0 2 440 100 ; play these notes from score as well
+i 1 + 2 1440 100
e
</CsScore>
diff --git a/examples/midichn.csd b/examples/midichn.csd
index 0a8b558..f8dedc4 100644
--- a/examples/midichn.csd
+++ b/examples/midichn.csd
@@ -1,34 +1,25 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
-; For Non-realtime ouput leave only the line below:
-; -o midichn.wav -W ;;; for file output any platform
+-odac -M0 -+rtmidi=virtual ;;; midi file input
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- i1 midichn
+instr 1
+;change channel on virtual midi keyboard
+i1 midichn
+ print i1
- print i1
endin
-
-
</CsInstruments>
<CsScore>
+f 0 20 ;runs for 20 seconds
-; Play Instrument #1 for 12 seconds.
-i 1 0 12
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/midichn_advanced.csd b/examples/midichn_advanced.csd
index d743671..bb57735 100644
--- a/examples/midichn_advanced.csd
+++ b/examples/midichn_advanced.csd
@@ -1,16 +1,16 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
+-odac -F midichn_advanced.mid ;;;realtime audio out with MIDI file input
; For Non-realtime ouput leave only the line below:
; -o midichn_advanced.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
massign 1, 1 ; all channels use instr 1
massign 2, 1
@@ -29,7 +29,7 @@ nchnls = 1
massign 15, 1
massign 16, 1
-gicnt = 0 ; note counter
+gicnt = 0 ; note counter
instr 1
@@ -46,18 +46,20 @@ l2:
printks "note %.0f (time = %.2f) was activated from channel %.0f\\n", \
3600, kcnt, istime, ichn
l1:
- endin
-
+icps cpsmidi ; convert midi note to pitch
+kenv madsr 0.1, 0, 0.8, 0.9
+asig pluck kenv, icps, icps, 1, 1
+ outs asig, asig
+
+endin
</CsInstruments>
<CsScore>
+t 0 60 ;beats per minute
-t 0 60
-f 0 6 2 -2 0
-i 1 1 0.5
-i 1 4 0.5
-e
-
+f 0 8 ;stay active for 8 seconds
+f 1 0 4096 10 1 ;sine
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/midichn_advanced.mid b/examples/midichn_advanced.mid
index 00a4c30..6af10eb 100644
--- a/examples/midichn_advanced.mid
+++ b/examples/midichn_advanced.mid
Binary files differ
diff --git a/examples/midicontrolchange.csd b/examples/midicontrolchange.csd
index c3dfdc5..d26d05a 100755..100644
--- a/examples/midicontrolchange.csd
+++ b/examples/midicontrolchange.csd
@@ -1,31 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o midicontrolchange.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
+; use slider of contr. 7 of virtual keyboard
+kcont init 1 ; max. volume
+midicontrolchange 7, kcont, 0, 1; use controller 7, scaled between 0 and 1
+printk2 kcont ; Display the key value when it changes and key is pressed
-kcontroller init 0
-midicontrolchange 7, kcontroller ; = volume
-; Display the key value when it changes and key is pressed
- printk2 kcontroller
-endin
+kenv madsr 0.5, 0.8, 0.8, 0.5 ; envelope multiplied by
+asig pluck kenv*kcont, 220, 220, 2, 1 ; value of controller 7
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 0 30
+f 2 0 4096 10 1
-; Play Instrument #1 for ten seconds.
-i 1 0 10
+i 1 10 2 ; play a note from score as well
e
</CsScore>
diff --git a/examples/midictrl.csd b/examples/midictrl.csd
new file mode 100644
index 0000000..34b975d
--- /dev/null
+++ b/examples/midictrl.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o midictrl.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+icps cpsmidi
+iamp ampmidi .5
+ips midictrl 9, 10, 500 ;controller 9
+
+kenv madsr 0.5, 0, 1, 0.5
+asig pluck kenv, icps, ips, 2, 1 ;change tone color
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 2 0 4096 10 1 ;sine wave
+; no score events allowed
+f0 30 ;runs 30 seconds
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/mididefault.csd b/examples/mididefault.csd
new file mode 100644
index 0000000..fde23f1
--- /dev/null
+++ b/examples/mididefault.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -M1 ;;;realtime audio out and midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o mididefault.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+mididefault 60, p3 ;ensures that a MIDI-activated instrument will have a positive p3 field
+midinoteoncps p4, p5 ;puts MIDI key translated to cycles per second into p4, and MIDI velocity into p5
+
+kvel = p5/127 ;scale midi velocity to 0-1
+kenv madsr 0.5, 0.8, 0.8, 0.5 ;amplitude envelope multiplied by
+asig pluck kenv*kvel, p4, p4, 2, 1 ;velocity
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 0 30 ;runs for 30 seconds
+f 2 0 4096 10 1
+
+i 1 0 2 440 100 ; play these notes from score as well
+i 1 + 2 1440 100
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/midinoteoff.csd b/examples/midinoteoff.csd
index f904ddd..db691fd 100644
--- a/examples/midinoteoff.csd
+++ b/examples/midinoteoff.csd
@@ -1,38 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
+-odac -M1 -Q1 ;;;realtime audio out and midi in and midi out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o midinoteoff.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- kkey init 0
- kvelocity init 0
+instr 1 ;uses external midi device
- midinoteoff kkey, kvelocity
+kkey init 0 ;initialize key number
+kvel init 0 ;initialize velocity
+midinoteoff kkey,kvel ;MIDI noteoff value
+printk2 kvel ;display noteoff value
+midion 1, kkey, kvel ;sent note to external device
- ; Display the key value when it changes.
- printk2 kkey
endin
-
-
</CsInstruments>
<CsScore>
+f 0 30 ;runs for 30 seconds
-; Play Instrument #1 for ten seconds.
-i 1 0 10
+i 1 0 2 62 ; play these notes from score as well
+i 1 + 2 65
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/midinoteoncps.csd b/examples/midinoteoncps.csd
index e5d11c2..573bded 100644
--- a/examples/midinoteoncps.csd
+++ b/examples/midinoteoncps.csd
@@ -1,38 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
+-odac -M1 ;;;realtime audio out and midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o midinoteoncps.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kcps init 0
- kvelocity init 0
- midinoteoncps kcps, kvelocity
-
- ; Display the cycles-per-second value when it changes.
- printk2 kcps
-endin
+midinoteoncps p4, p5 ;puts MIDI key translated to cycles per second into p4, and MIDI velocity into p5
+print p4 ;display the key value when it changes and when key is pressed
+kvel = p5/127 ;scale midi velocity to 0-1
+kenv madsr 0.5, 0.8, 0.8, 0.5 ;amplitude envelope multiplied by
+asig pluck kenv*kvel, p4, p4, 2, 1 ;velocity value
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 0 30 ;runs for 30 seconds
+f 2 0 4096 10 1
-; Play Instrument #1 for ten seconds.
-i 1 0 10
+i 1 0 2 440 100 ; play these notes from score as well
+i 1 + 2 1440 100
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/midinoteonkey.csd b/examples/midinoteonkey.csd
index 66110a7..56bba7d 100644
--- a/examples/midinoteonkey.csd
+++ b/examples/midinoteonkey.csd
@@ -1,38 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
+-odac -M1 -Q1 ;;;realtime audio out and midi in and midi out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o midinoteonkey.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- kkey init 0
- kvelocity init 0
+instr 1 ;uses external midi device
- midinoteonkey kkey, kvelocity
+kkey init 0 ;initialize key number
+kvel init 0 ;initialize velocity
+midinoteonkey kkey, kvel ;MIDI note number value
+printk2 kkey ;display the key value when it changes and when key is pressed
+midion 1, kkey, kvel ;sent note to external device
- ; Display the key value when it changes.
- printk2 kkey
endin
-
-
</CsInstruments>
<CsScore>
+f 0 30 ;runs for 30 seconds
-; Play Instrument #1 for ten seconds.
-i 1 0 10
+i 1 0 2 62 ; play these notes from score as well
+i 1 + 2 65
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/midinoteonoct.csd b/examples/midinoteonoct.csd
index e00a929..c799736 100644
--- a/examples/midinoteonoct.csd
+++ b/examples/midinoteonoct.csd
@@ -1,38 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
+-odac -M1 ;;;realtime audio out and midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o midinoteonoct.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- koct init 0
- kvelocity init 0
- midinoteonoct koct, kvelocity
-
- ; Display the octave-point-decimal value when it changes.
- printk2 koct
-endin
+midinoteonoct p4, p5 ;gets a MIDI note number value as octave-point-decimal value into p4, and MIDI velocity into p5
+print p4 ;display the key value when it changes and when key is pressed
+kvel = p5/127 ;scale midi velocity to 0-1
+ioct = p4
+icps = cpsoct(ioct) ;convert octave-point-decimal value into Hz
+kenv madsr 0.5, 0.8, 0.8, 0.5 ;amplitude envelope multiplied by
+asig pluck kenv*kvel, icps, icps, 2, 1 ;velocity value
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 0 30 ;runs for 30 seconds
+f 2 0 4096 10 1
-; Play Instrument #1 for ten seconds.
-i 1 0 10
+i 1 0 2 8.000 100 ; play these notes from score as well
+i 1 + 2 8.917 100
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/midinoteonpch.csd b/examples/midinoteonpch.csd
index ce02f60..5d9daf1 100644
--- a/examples/midinoteonpch.csd
+++ b/examples/midinoteonpch.csd
@@ -1,38 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
+-odac -M1 ;;;realtime audio out and midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o midinoteonpch.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kpch init 0
- kvelocity init 0
- midinoteonpch kpch, kvelocity
-
- ; Display the pitch-class value when it changes.
- printk2 kpch
-endin
+midinoteonpch p4, p5 ;gets a MIDI note number value as octave-point-decimal value into p4, and MIDI velocity into p5
+print p4 ;display the pitch value when it changes and when key is pressed
+kvel = kvel/127 ;scale midi velocity to 0-1
+ipch = p4
+icps = cpspch(ipch) ;convert octave-point-decimal value into Hz
+kenv madsr 0.5, 0.8, 0.8, 0.5 ;amplitude envelope multiplied by
+asig pluck kenv*kvel, icps, icps, 2, 1 ;velocity value
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 0 30 ;runs for 30 seconds
+f 2 0 4096 10 1
-; Play Instrument #1 for ten seconds.
-i 1 0 10
+i 1 0 2 8.09 100 ; play these notes from score as well
+i 1 + 2 9.05 100
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/midion2.csd b/examples/midion2.csd
new file mode 100644
index 0000000..5ce102d
--- /dev/null
+++ b/examples/midion2.csd
@@ -0,0 +1,27 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+ -M0 -Q1 ;;;midi in and midi out
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kcps line 3, p3, .1
+klf lfo 1, kcps, 3 ;use a unipolar square to trigger
+ktr trigger klf, 1, 1 ;from 3 times to .1 time per sec.
+ midion2 1, 60, 100, ktr
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 20
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/midiout.csd b/examples/midiout.csd
new file mode 100644
index 0000000..1661f68
--- /dev/null
+++ b/examples/midiout.csd
@@ -0,0 +1,30 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+; Audio out Audio in
+-odac -Ma -Q1 ;;;realtime audio out and midi out and midi in (all midi inputs)
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+midiout 192, 1, 21, 0 ;program change to instr. 21
+inum notnum
+ivel veloc
+midion 1, inum, ivel
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3 80 100 ;play note for 3 seconds
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/midipitchbend.csd b/examples/midipitchbend.csd
index dbe6934..d9bf399 100644
--- a/examples/midipitchbend.csd
+++ b/examples/midipitchbend.csd
@@ -1,37 +1,42 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
+-odac -M1 ;;;realtime audio out and midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o midipitchbend.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kpb init 0
- midipitchbend kpb
-
- ; Display the pitch-bend value when it changes.
- printk2 kpb
-endin
+midinoteonoct p4, p5 ;gets a MIDI note number value as octave-point-decimal value into p4, and MIDI velocity into p5
+kvel = p5/127 ;scale midi velocity to 0-1
+kpb init 0
+midipitchbend kpb
+printk2 kpb ;display the pitch-bend value when it changes
+koct = p4+kpb ;add pitchbend values to octave-point-decimal value
+kcps = cpsoct(koct) ;convert octave-point-decimal value into Hz
+kenv madsr 0.5, 0.8, 0.8, 0.5 ;amplitude envelope multiplied by
+asig vco2 kenv*kvel, kcps ;velocity value
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 0 30 ;runs for 30 seconds
+f 2 0 4096 10 1
-; Play Instrument #1 for ten seconds.
-i 1 0 10
+i 1 0 2 8.000 100 ; play these notes from score as well
+i 1 + 2 8.917 100
e
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/midipolyaftertouch.csd b/examples/midipolyaftertouch.csd
new file mode 100644
index 0000000..9cf5e4e
--- /dev/null
+++ b/examples/midipolyaftertouch.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -M1 ;;;realtime audio out and midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o midipolyaftertouch.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1;midi keyboard and score are used
+
+midinoteoncps p4, p5 ;puts MIDI key translated to cycles per second into p4, and MIDI velocity into p5
+
+kafter init 127 ;full open
+midipolyaftertouch kafter, 1
+printk2 kafter ;display the key value when it changes and when key is pressed
+
+kvel = p5/127 ;scale midi velocity to 0-1
+kenv madsr 0.5, 0.8, 0.8, 0.5 ;amplitude envelope multiplied by
+ain pluck kenv*kvel, p4, p4, 2, 1 ;velocity value
+asig moogvcf2 ain, 300+(kafter*100), .5 ;use value of aftertouch to control frequency of filter
+ outs asig, asig ;base freq of filter = 300 Hz
+
+endin
+</CsInstruments>
+<CsScore>
+f 0 30 ;runs for 30 seconds
+f 2 0 4096 10 1 ;sine wave
+
+i 1 0 2 440 100 ;play these notes from score as well
+i 1 + 2 1440 100
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/midiprogramchange.csd b/examples/midiprogramchange.csd
new file mode 100644
index 0000000..e5bbbbb
--- /dev/null
+++ b/examples/midiprogramchange.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -M1 -Q1 ;;;realtime audio out and midi in and midi out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o midiprogramchange.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;uses external midi device
+
+kkey init 0 ;initialize key number
+kvel init 0 ;initialize velocity
+midiprogramchange 52 ;choose GM program number 52 = string pad
+midinoteonkey kkey, kvel ;MIDI note number value
+printk2 kkey ;display the key value when it changes and when key is pressed
+midion 1, kkey, kvel ;sent note to external device
+
+endin
+</CsInstruments>
+<CsScore>
+f 0 30 ;runs for 30 seconds
+
+i 1 0 2 62 ; play these notes from score as well
+i 1 + 2 65
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/miditempo.csd b/examples/miditempo.csd
new file mode 100644
index 0000000..663d0dc
--- /dev/null
+++ b/examples/miditempo.csd
@@ -0,0 +1,38 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -F Anna.mid ;;;realtime audio out and midi file input
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o miditempo.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+massign 0, 1 ; make sure that all channels
+pgmassign 0, 1 ; and programs are assigned to test instr
+
+instr 1
+
+ksig miditempo
+prints "miditempo = %d\\n", ksig
+
+icps cpsmidi ; convert midi note to pitch
+kenv madsr 0.1, 0, 0.8, 0.3
+asig pluck kenv*.15, icps, icps, 1, 1 ;low volume
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+f 0 200 ;stay active for 120 seconds
+f 1 0 4096 10 1 ;sine
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/min.csd b/examples/min.csd
new file mode 100644
index 0000000..20ae5a0
--- /dev/null
+++ b/examples/min.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o min.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+k1 oscili 1, 10.0, 1 ;combine 3 sinusses
+k2 oscili 1, 1.0, 1 ;at different rates
+k3 oscili 1, 3.0, 1
+kmin min k1, k2, k3
+kmin = kmin*250 ;scale kmin
+printk2 kmin ;check the values
+
+aout vco2 .5, 220, 6 ;sawtooth
+asig moogvcf2 aout, 600+kmin, .5 ;change filter around 600 Hz
+ outs asig, asig
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+f1 0 32768 10 1
+
+i1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/minabs.csd b/examples/minabs.csd
new file mode 100644
index 0000000..858fe3c
--- /dev/null
+++ b/examples/minabs.csd
@@ -0,0 +1,38 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o minabs.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+k1 oscili 1, 10.0, 1 ;combine 3 sinusses
+k2 oscili 1, 1.0, 1 ;at different rates
+k3 oscili 1, 3.0, 1
+kmin minabs k1, k2, k3
+kmin = kmin*250 ;scale kmin
+printk2 kmin ;check the values
+
+aout vco2 .5, 220, 6 ;sawtooth
+asig moogvcf2 aout, 600+kmin, .5 ;change filter above 600 Hz
+ outs asig, asig
+
+endin
+
+</CsInstruments>
+<CsScore>
+f1 0 32768 10 1
+
+i1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/minabsaccum.csd b/examples/minabsaccum.csd
new file mode 100644
index 0000000..4da49fb
--- /dev/null
+++ b/examples/minabsaccum.csd
@@ -0,0 +1,54 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o minabsaccum.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;saw
+
+asig vco2 .2, p4
+ outs asig, asig
+gasaw = asig
+endin
+
+instr 2 ;sine
+
+aout poscil .3, p4, 1
+ outs aout, aout
+gasin = aout
+endin
+
+instr 10
+
+accum init 0
+ minabsaccum accum, gasaw + gasin ;saw and sine accumulated
+accum dcblock2 accum ;get rid of DC
+ outs accum, accum
+
+clear accum
+endin
+
+</CsInstruments>
+<CsScore>
+f 1 0 4096 10 1
+
+i 1 0 7 330
+i 2 3 3 440
+
+i 1 10 7 330 ;same notes but without minabsaccum, for comparison
+i 2 13 3 440
+
+i 10 0 6 ;accumulation note stops after 6 seconds
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/minaccum.csd b/examples/minaccum.csd
new file mode 100644
index 0000000..b4382b1
--- /dev/null
+++ b/examples/minaccum.csd
@@ -0,0 +1,54 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o minaccum.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;saw
+
+asig vco2 .2, p4
+ outs asig, asig
+gasaw = asig
+endin
+
+instr 2 ;sine
+
+aout poscil .3, p4, 1
+ outs aout, aout
+gasin = aout
+endin
+
+instr 10
+
+accum init 0
+ minaccum accum, gasaw + gasin ;saw and sine accumulated
+ outs accum, accum
+
+clear accum
+endin
+
+</CsInstruments>
+<CsScore>
+f 1 0 4096 10 1
+
+i 1 0 7 330
+i 2 3 3 440
+
+i 1 10 7 330 ;same notes but without minaccum, for comparison
+i 2 13 3 440
+
+i 10 0 6 ;accumulation note stops after 6 seconds
+
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/minarray.csd b/examples/minarray.csd
new file mode 100644
index 0000000..37d82bd
--- /dev/null
+++ b/examples/minarray.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+;example by joachim heintz
+
+ seed 0
+
+instr 1
+;create an array with 10 elements
+kArr[] init 10
+;fill in random numbers and print them out
+kIndx = 0
+ until kIndx == 10 do
+kNum random -100, 100
+kArr[kIndx] = kNum
+ printf "kArr[%d] = %10f\n", kIndx+1, kIndx, kNum
+kIndx += 1
+ od
+;investigate minimum number and print it out
+kMin, kMinIndx minarray kArr
+ printf "Minimum of kArr = %f at index %d\n", kIndx+1, kMin, kMinIndx
+ turnoff
+endin
+</CsInstruments>
+<CsScore>
+i1 0 0.1
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/mincer.csd b/examples/mincer.csd
new file mode 100644
index 0000000..a49fb4f
--- /dev/null
+++ b/examples/mincer.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o mincer.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+idur = p3
+ilock = p4
+ipitch = 1
+itimescale = 0.5
+iamp = 0.8
+
+atime line 0,idur,idur*itimescale
+asig mincer atime, iamp, ipitch, 1, ilock
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 0 1 "fox.wav" 0 0 0
+
+i 1 0 5 0 ;not locked
+i 1 6 5 1 ;locked
+
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/mirror.csd b/examples/mirror.csd
new file mode 100644
index 0000000..e601aca
--- /dev/null
+++ b/examples/mirror.csd
@@ -0,0 +1,53 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o mirror.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
+
+instr 1 ; Limit / Mirror / Wrap
+
+igain = p4 ;gain
+ilevl1 = p5 ; + level
+ilevl2 = p6 ; - level
+imode = p7 ;1 = limit, 2 = mirror, 3 = wrap
+
+ain soundin "fox.wav"
+ain = ain*igain
+
+if imode = 1 goto limit
+if imode = 2 goto mirror
+
+asig wrap ain, ilevl2, ilevl1
+goto outsignal
+
+limit:
+asig limit ain, ilevl2, ilevl1
+goto outsignal
+
+mirror:
+asig mirror ain, ilevl2, ilevl1
+outsignal:
+
+outs asig*.5, asig*.5 ;mind your speakers
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+; Gain +Levl -Levl Mode
+i1 0 3 4.00 .25 -1.00 1 ;limit
+i1 4 3 4.00 .25 -1.00 2 ;mirror
+i1 8 3 4.00 .25 -1.00 3 ;wrap
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/modulus.csd b/examples/modulus.csd
index c4e59de..0dba47e 100644
--- a/examples/modulus.csd
+++ b/examples/modulus.csd
@@ -1,33 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac -Ma --midi-key=4 --midi-velocity-amp=5 -m0 ;;;realtime audio out and midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o modulus.wav -W ;;; for file output any platform
+; -o %.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giScale ftgen 1, 0, -12, -2, 0, -34, -7, 10, -14, 3, -21, -3, -27, -10, 7, -17 ;12 note scale with detuned keys
-; Instrument #1.
instr 1
- i1 = 5 % 3
- print i1
-endin
+ikey = p4
+ivel = p5
+indx = ikey % 12 ;work on the twelftone scale
+icent tab_i indx, giScale ;load the scale
+ifreqeq = cpsmidinn(ikey)
+ifreq = ifreqeq * cent(icent) ;change frequency by cents from table
+prints "Key %d modulus 12 = %d. ", ikey, indx
+prints "Equal-tempered frequency of this key = %f,", ifreqeq
+prints " but here with cent deviation %d = %f%n", icent, ifreq
+asig vco2 ivel*.5, ifreq
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 0 60 ;run for 60 seconds
-; Play Instrument #1 for one second.
-i 1 0 1
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/monitor.csd b/examples/monitor.csd
new file mode 100644
index 0000000..9d068a6
--- /dev/null
+++ b/examples/monitor.csd
@@ -0,0 +1,54 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o monitor.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+asig poscil3 .5, 880, giSine
+;write a raw file: 32 bits with header
+ fout "fout_880.wav", 15, asig
+ outs asig, asig
+
+endin
+
+instr 2
+
+klfo lfo 1, 2, 0
+asig poscil3 .5*klfo, 220, giSine
+;write an aiff file: 32 bits with header
+ fout "fout_aif.aiff", 25, asig
+; fout "fout_all3.wav", 14, asig
+ outs asig, asig
+
+endin
+
+instr 99 ;read the stereo csound output buffer
+
+allL, allR monitor
+;write the output of csound to an audio file
+;to a wav file: 16 bits with header
+ fout "fout_all.wav", 14, allL, allR
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2
+i 2 0 3
+i 99 0 3
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/moog.csd b/examples/moog.csd
index 7446524..5da4a1f 100644
--- a/examples/moog.csd
+++ b/examples/moog.csd
@@ -1,53 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o moog.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 22050
-kr = 2205
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- kfreq = 220
- kfiltq = 0.81
- kfiltrate = 0
- kvibf = 1.4
- kvamp = 2.22
- iafn = 1
- iwfn = 2
- ivfn = 3
- am moog kamp, kfreq, kfiltq, kfiltrate, kvibf, kvamp, iafn, iwfn, ivfn
+kfreq = cpspch(p4)
+kfiltq = p5
+kfiltrate = 0.0002
+kvibf = 5
+kvamp = .01
+;low volume is needed
+asig moog .15, kfreq, kfiltq, kfiltrate, kvibf, kvamp, 1, 2, 3
+ outs asig, asig
- ; It tends to get loud, so clip moog's amplitude at 30,000.
- a1 clip am, 2, 30000
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-; Table #1: the "mandpluk.aiff" audio file
f 1 0 8192 1 "mandpluk.aiff" 0 0 0
-; Table #2: the "impuls20.aiff" audio file
f 2 0 256 1 "impuls20.aiff" 0 0 0
-; Table #3: a sine wave
-f 3 0 256 10 1
+f 3 0 256 10 1 ; sine
-; Play Instrument #1 for three seconds.
-i 1 0 3
+i 1 0 3 6.00 .1
+i 1 + 3 6.05 .89
+i 1 + 3 6.09 .50
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/moogladder.csd b/examples/moogladder.csd
index 960e394..0f04f9d 100755..100644
--- a/examples/moogladder.csd
+++ b/examples/moogladder.csd
@@ -1,36 +1,32 @@
<CsoundSynthesizer>
-; tryit.csd - a Csound structured data file
-; for testing the Loris unit generators
--odac -iadc -d ;;;RT audio I/O
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o moogladder.wav -W ;;; for file output any platform
-<CsOptions>
-
</CsOptions>
<CsInstruments>
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
instr 1
-kfe expseg 500, p3*0.9, 1800, p3*0.1, 3000
-kenv linen 30000, 0.05, p3, 0.05
-asig buzz kenv, 100, 15, 1
-afil moogladder asig, kfe, .9
- out afil
-endin
+kfe expseg 500, p3*0.9, 1800, p3*0.1, 3000
+asig buzz 1, 100, 20, 1
+kres line .1, p3, .99 ;increase resonance
+afil moogladder asig, kfe, kres
+ outs afil, afil
+endin
</CsInstruments>
<CsScore>
-; sinuso in table 1
f 1 0 4096 10 1
-i 1 0 3
-
+i 1 0 10
e
</CsScore>
-
</CsoundSynthesizer>
diff --git a/examples/moogvcf.csd b/examples/moogvcf.csd
index e1de278..bfbd23f 100644
--- a/examples/moogvcf.csd
+++ b/examples/moogvcf.csd
@@ -1,49 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o moogvcf.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Use a nice sawtooth waveform.
- asig vco 32000, 220, 1
+; iscale does not need to be set here because already 0dbfs = 1
+aout vco .3, 220, 1 ; Use a nice sawtooth waveform.
+kfco line 200, p3, 2000 ; filter-cutoff frequency from .2 to 2 KHz
+krez init p4
+asig moogvcf aout, kfco, krez
+ outs asig, asig
- ; Vary the filter-cutoff frequency from .2 to 2 KHz.
- kfco line 200, p3, 2000
-
- ; Set the resonance amount to one.
- krez init 1
-
- ; Scale the amplitude to 32768.
- iscale = 32768
-
- a1 moogvcf asig, kfco, krez, iscale
-
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave for the vco opcode.
+;a sine wave
f 1 0 16384 10 1
-; Play Instrument #1 for three seconds.
-i 1 0 3
+i 1 0 3 .1
+i 1 + 3 .7
+i 1 + 3 .95
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/moogvcf2.csd b/examples/moogvcf2.csd
index 6ba92f2..4244ae6 100644
--- a/examples/moogvcf2.csd
+++ b/examples/moogvcf2.csd
@@ -1,46 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o moogvcf.wav -W ;;; for file output any platform
+; -o moogvcf2.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Use a nice sawtooth waveform.
- asig vco 32000, 220, 1
+
+aout diskin2 "beats.wav", 1, 0, 1
+kfco line 100, p3, 10000 ;filter-cutoff
+krez init p4
+asig moogvcf2 aout, kfco, krez
+ outs asig, asig
- ; Vary the filter-cutoff frequency from .2 to 2 KHz.
- kfco line 200, p3, 2000
-
- ; Set the resonance amount to one.
- krez init 1
-
- a1 moogvcf2 asig, kfco, krez
-
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-; Table #1, a sine wave for the vco opcode.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for three seconds.
-i 1 0 3
+i 1 0 4 .1
+i 1 + 4 .6
+i 1 + 4 .9
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/move b/examples/move
new file mode 100644
index 0000000..c430713
--- /dev/null
+++ b/examples/move
@@ -0,0 +1,6 @@
+ 0 -1 1
+ 1 1 1
+ 2 4 4
+ 2.1 -4 -4
+ 3 10 -10
+ 5 -40 0 \ No newline at end of file
diff --git a/examples/move2 b/examples/move2
new file mode 100644
index 0000000..c571cbd
--- /dev/null
+++ b/examples/move2
@@ -0,0 +1,3 @@
+ 0 -100 1
+ 3 0 0
+ 5.6 1 20 \ No newline at end of file
diff --git a/examples/mp3in.csd b/examples/mp3in.csd
index 9981aab..7672d3b 100755..100644
--- a/examples/mp3in.csd
+++ b/examples/mp3in.csd
@@ -1,39 +1,30 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o mp3in.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
-iskptim = .3
-ibufsize = 64
-; Reads stereo audio data from an external MP3 file
-ar1, ar2 mp3in "beats.mp3", iskptim, 0, 0, ibufsize
+iskptim = .3
+ibufsize = 64
+ar1, ar2 mp3in "beats.mp3", iskptim, 0, 0, ibufsize
+ outs ar1, ar2
- out ar1, ar2
endin
-
-
</CsInstruments>
<CsScore>
-
-; Play Instrument #1 for three seconds.
-i 1 0 1.7
+i 1 0 2
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/mp3len.csd b/examples/mp3len.csd
new file mode 100644
index 0000000..14b27e5
--- /dev/null
+++ b/examples/mp3len.csd
@@ -0,0 +1,31 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o mp3len.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ilen mp3len p4 ;calculate length of mp3 file
+print ilen
+
+asigL, asigR mp3in p4
+ outs asigL, asigR
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 30 "XORNOT_jul-14-05.mp3" ; long signal
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/multiplies.csd b/examples/multiplies.csd
index fbe1c6d..5ff8f9a 100644
--- a/examples/multiplies.csd
+++ b/examples/multiplies.csd
@@ -1,33 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o multiplies.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- i1 = 24 * 8
- print i1
-endin
+kenv expon 0.01, p3, 1
+aout poscil 0.8*kenv, 440, 1 ;multiply amplitude from 0 to 1 * 0.8
+printks "base amplitude * rising expon output = 0.8 * %f\n", .1, kenv
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for one second.
-i 1 0 1
-e
+f 1 0 16384 10 1 ; sine wave
+i 1 0 2
+
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/multitap.csd b/examples/multitap.csd
index 8a30baf..e58d380 100755..100644
--- a/examples/multitap.csd
+++ b/examples/multitap.csd
@@ -1,41 +1,41 @@
<CsoundSynthesizer>
+<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o multitap.wav -W ;;; for file output any platform
-<CsOptions>
</CsOptions>
<CsInstruments>
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
ga1 init 0
instr 1
-a1 oscil 10000, 1000, 1
- out a1
+
+asig diskin2 "beats.wav", 1,0
+ outs asig, asig
-ga1 = ga1+a1
+ga1 = ga1+asig
endin
instr 2
-a2 multitap ga1, 1.2, .5, 1.4, .2
- out a2
+
+asig multitap ga1, 1.2, .5, 1.4, .2
+ outs asig, asig
-ga1 = 0
+ga1 = 0
endin
</CsInstruments>
<CsScore>
-; make sinusoid in table 1
-f 1 0 4096 10 1
-i 1 .5 .1
-i 2 0 3
+i 1 .5 .2 ; short sound
+i 2 0 3 ; echoes
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/mute.csd b/examples/mute.csd
index 98a3707..2fb7167 100644
--- a/examples/mute.csd
+++ b/examples/mute.csd
@@ -1,54 +1,48 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o mute.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-ksmps = 10
-nchnls = 1
-0dbfs = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
; Mute Instrument #2.
mute 2
; Mute Instrument three.
mute "three"
-; Instrument #1.
instr 1
- a1 oscils 0.2, 440, 0
- out a1
-endin
-; Instrument #2.
-instr 2
- a1 oscils 0.2, 880, 0
- out a1
+a1 oscils 0.2, 440, 0
+ outs a1, a1
endin
-; Instrument #3.
-instr three
- a1 oscils 0.2, 1000, 0
- out a1
+instr 2 ; gets muted
+
+a1 oscils 0.2, 880, 0
+ outs a1, a1
endin
+instr three ; gets muted
+
+a1 oscils 0.2, 1000, 0
+ outs a1, a1
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for one second.
i 1 0 1
-; Play Instrument #2 for one second.
i 2 0 1
-; Play Instrument three for one second.
i "three" 0 1
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/mxadsr.csd b/examples/mxadsr.csd
new file mode 100644
index 0000000..ef2a630
--- /dev/null
+++ b/examples/mxadsr.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o mxadsr.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+icps cpsmidi
+iamp ampmidi .5
+
+kenv mxadsr 0.5, 0, 1, 0.5
+asig pluck kenv, icps, icps, 2, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 2 0 4096 10 1
+
+f0 30 ;runs 30 seconds
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/my.orc b/examples/my.orc
new file mode 100644
index 0000000..c101d63
--- /dev/null
+++ b/examples/my.orc
@@ -0,0 +1,5 @@
+instr 2
+a1 oscils p4, p5, 0
+out a1
+endin
+
diff --git a/examples/nchnls.csd b/examples/nchnls.csd
new file mode 100644
index 0000000..80f4eca
--- /dev/null
+++ b/examples/nchnls.csd
@@ -0,0 +1,31 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -idac ;;;realtime audio I/O
+; For Non-realtime ouput leave only the line below:
+; nchnls.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2 ;two channels out
+0dbfs = 1
+
+instr 1
+
+ain1, ainr ins ;grab your mic and sing
+adel linseg 0, p3*.5, 0.02, p3*.5, 0 ;max delay time = 20ms
+aoutl flanger ain1, adel, .7
+aoutr flanger ain1, adel*2, .8
+ fout "in_s.wav", 14, aoutl, aoutr ;write to stereo file,
+ outs aoutl, aoutr ;16 bits with header
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/nchnls_i.csd b/examples/nchnls_i.csd
new file mode 100644
index 0000000..56b73f0
--- /dev/null
+++ b/examples/nchnls_i.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -idac ;;;realtime audio I/O
+; For Non-realtime ouput leave only the line below:
+; nchnls_i.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2 ;2 channels out
+0dbfs = 1
+nchnls_i = 4 ;4 channels in
+
+instr 1 ;4 channels in, two channels out
+
+ain1, ain2, ain3, ain4 inq ;grab your mics and sing
+
+adel linseg 0, p3*.5, 0.02, p3*.5, 0 ;max delay time = 20ms
+adel2 linseg 0.02, p3*.5, 0, p3*.5, 0.02 ;max delay time = 20ms
+aoutl flanger ain1, adel, .7
+aoutr flanger ain2, adel*2, .8
+aoutla flanger ain3, adel2, .9
+aoutra flanger ain4, adel2*2, .5
+;write to quad file, 16 bits with header
+ fout "in_4.wav", 14, aoutl, aoutr, aoutla, aoutra
+ outs (aoutl+aoutla)*.5, (aoutr+aoutra)*.5 ;stereo out
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/nlfilt.csd b/examples/nlfilt.csd
index 93f3748..528c398 100755..100644
--- a/examples/nlfilt.csd
+++ b/examples/nlfilt.csd
@@ -1,61 +1,49 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o nlfilt.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - an unfiltered noise waveform.
-instr 1
- ; Generate a white noise signal.
- asig rand 20000
+instr 1 ;unfiltered noise
+
+asig rand .7
+ outs asig, asig
- out asig
endin
+instr 2 ;filtered noise
-; Instrument #2 - a filtered noise waveform.
-instr 2
- ; Generate a white noise signal.
- asig rand 20000
ka = p4
kb = p5
kd = p6
kC = p7
kL = p8
+asig rand .3
+afilt nlfilt asig, ka, kb, kd, kC, kL
+asig clip afilt, 2, .9
+ outs asig, asig
- afilt nlfilt asig, ka, kb, kd, kC, kL
-
- ; Clip the filtered signal's amplitude to 85 dB.
- a1 clip afilt, 2, ampdb(85)
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for two seconds.
-i 1 0 2
-; non-linear effect
-i 2 2 2 0 0 .8 .5 20
-; low=paas with non-linear
-i 2 + 2 .4 .2 .7 .11 200
-; high-pass with non-linear
-i 2 + 2 .35 -.3 .95 .1 200
-; high-pass with non-linear
-i 2 + 2 .7 .1 .9 .2 100
-e
+i 1 0 2 ; unfiltersd
+; a b d C L
+i 2 2 2 0 0 0.8 0.5 20 ; non-linear effect
+i 2 + 2 .4 0.2 0.7 0.11 200 ; low=paas with non-linear
+i 2 + 2 0.35 -0.3 0.95 0.1 200 ; high-pass with non-linear
+i 2 + 2 0.7 -0.2 0.9 0.2 20 ; high-pass with non-linear
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/nlfilt2.csd b/examples/nlfilt2.csd
new file mode 100644
index 0000000..afe14de
--- /dev/null
+++ b/examples/nlfilt2.csd
@@ -0,0 +1,47 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o nlfilt.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;unfiltered noise
+
+asig rand .7
+ outs asig, asig
+
+endin
+
+instr 2 ;filtered noise
+
+ka = p4
+kb = p5
+kd = p6
+kC = p7
+kL = p8
+asig rand .3
+afilt nlfilt2 asig, ka, kb, kd, kC, kL
+ outs afilt, afilt
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2 ; unfiltered
+
+; a b d C L
+i 2 2 2 0 0 0.8 0.5 20 ; non-linear effect
+i 2 + 2 .4 0.2 0.7 0.11 200 ; low=pass with non-linear
+i 2 + 2 0.35 -0.3 0.95 0.1 200 ; high-pass with non-linear
+i 2 + 2 0.7 -0.2 0.9 0.2 20 ; high-pass with non-linear
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/noise.csd b/examples/noise.csd
index 741e46a..6ae5635 100644
--- a/examples/noise.csd
+++ b/examples/noise.csd
@@ -1,38 +1,31 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o noise.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 30000
- ; Change the beta value linearly from 0 to 1.
- kbeta line 0, p3, 1
+kbeta line -1, p3, 1 ;change beta value from -1 to 1
+asig noise .3, kbeta
+asig clip asig, 2, .9 ;clip signal
+ outs asig, asig
- a1 noise kamp, kbeta
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for one second.
-i 1 0 1
-e
-
+i 1 0 10
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/notequal.csd b/examples/notequal.csd
index d104723..335d21f 100644
--- a/examples/notequal.csd
+++ b/examples/notequal.csd
@@ -1,43 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o notequal.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 44100
-ksmps = 1
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Get the 4th p-field from the score.
- k1 = p4
- ; Is it not equal to 3? (1 = true, 0 = false)
- k2 = (p4 != 3 ? 1 : 0)
+ipch = cpspch(p4)
+iprint = p5
+if (iprint != 1) igoto skipPrint
+print ipch
+asig vco2 .7, ipch
+ outs asig, asig
- ; Print the values of k1 and k2.
- printks "k1 = %f, k2 = %f\\n", 1, k1, k2
-endin
+skipPrint:
+endin
</CsInstruments>
<CsScore>
+f 1 0 65536 10 1 ;sine wave
-; Call Instrument #1 with a p4 = 2.
-i 1 0 0.5 2
-; Call Instrument #1 with a p4 = 3.
-i 1 1 0.5 3
-; Call Instrument #1 with a p4 = 4.
-i 1 2 0.5 4
-e
-
+i1 0 .5 8.00 0
+i1 0 .5 8.01 1 ; this note will print it's ipch value and only this one will be played
+i1 0 .5 8.02 2
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/notnum.csd b/examples/notnum.csd
index 7cb874b..15c1c96 100644
--- a/examples/notnum.csd
+++ b/examples/notnum.csd
@@ -1,34 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
-; For Non-realtime ouput leave only the line below:
-; -o notnum.wav -W ;;; for file output any platform
+-odac -M0 -+rtmidi=virtual ;;;realtime audio out with virtual MIDI in
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- i1 notnum
+massign 1, 1 ; set MIDI channel 1 to play instr 1
- print i1
-endin
+instr 1
+iNum notnum
+ print iNum
+; Convert MIDI note number to Hz
+iHz = (440.0*exp(log(2.0)*((iNum)-69.0)/12.0))
+aosc oscil 0.6, iHz, 1
+ outs aosc, aosc
+endin
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave
-; Play Instrument #1 for 12 seconds.
-i 1 0 12
-e
-
+f 0 60 ;play 60 seconds
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/nrpn.csd b/examples/nrpn.csd
new file mode 100644
index 0000000..12e915a
--- /dev/null
+++ b/examples/nrpn.csd
@@ -0,0 +1,30 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -Q1 ;;;realtime audio out with MIDI out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; change attack time of external synth
+
+initc7 1, 6, 0 ; set controller 6 to 0
+nrpn 1, 99, 1 ; set MSB
+nrpn 1, 98, 99 ; set LSB
+katt ctrl7 1, 6, 1, 127 ; DataEntMSB
+idur = 2
+noteondur2 1, 60, 100, idur ; play note on synth
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/nsamp.csd b/examples/nsamp.csd
index 17a616d..964b1b6 100644
--- a/examples/nsamp.csd
+++ b/examples/nsamp.csd
@@ -1,37 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o nsamp.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
+; slightly adapted example from Jonathan Murphy Dec 2006
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Print out the size (in samples) of Table #1.
- isz = nsamp(1)
- print isz
-endin
+ifn = p4 ; table number
+ilen = nsamp(ifn)
+prints "actual numbers of samples = %d\n", ilen
+itrns = 1 ; no transposition
+ilps = 0 ; loop starts at index 0
+ilpe = ilen ; ends at value returned by nsamp above
+imode = 1 ; loops forward
+istrt = 0 ; commence playback at index 0 samples
+; lphasor provides index into f1
+alphs lphasor itrns, ilps, ilpe, imode, istrt
+atab tablei alphs, ifn
+ outs atab, atab
+endin
</CsInstruments>
<CsScore>
+f 1 0 262144 1 "kickroll.wav" 0 4 1 ;stereo file in table, with lots of zeroes
+f 2 0 262144 1 "fox.wav" 0 4 1 ;mono file in table, with lots of zeroes
-; Table #1: Use an audio file.
-f 1 0 262144 1 "mary.wav" 0 0 0
-
-; Play Instrument #1 for 1 second.
-i 1 0 1
+i1 0 10 1
+i1 + 10 2
e
-
</CsScore>
-</CsoundSynthesizer>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/ntrpol.csd b/examples/ntrpol.csd
new file mode 100644
index 0000000..6555002
--- /dev/null
+++ b/examples/ntrpol.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o ntrpol.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSin ftgen 1, 0, 1024, 10, 1
+
+instr 1
+
+avco vco2 .5, 110 ;sawtootyh wave
+asin poscil .5, 220, giSin ;sine wave but octave higher
+kx linseg 0, p3*.4, 1, p3*.6, 1 ;crossfade between saw and sine
+asig ntrpol avco, asin, kx
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/octave.csd b/examples/octave.csd
index c679377..77853f8 100644
--- a/examples/octave.csd
+++ b/examples/octave.csd
@@ -1,45 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o octave.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; The root note is A above middle-C (440 Hz)
- iroot = 440
- ; Raise the root note by two octaves.
- ioctaves = 2
+iroot = 440 ; root note is A above middle-C (440 Hz)
+koct lfo 5, 1, 5 ; generate sawtooth, go from 5 octaves higher to root
+koc = int(koct) ; produce only whole numbers
+kfactor = octave(koc) ; for octave
+knew = iroot * kfactor
+printk2 knew
- ; Calculate the new note.
- ifactor = octave(ioctaves)
- inew = iroot * ifactor
+asig pluck 1, knew, 1000, 0, 1
+asig dcblock asig ;remove DC
+ outs asig, asig
- ; Print out of all of the values.
- print iroot
- print ifactor
- print inew
endin
-
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for one second.
-i 1 0 1
+i 1 0 5
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/opand.csd b/examples/opand.csd
new file mode 100644
index 0000000..6ed192a
--- /dev/null
+++ b/examples/opand.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o opand.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kval randomh 0, 1.2, 20 ;choose between 0 and 1.2
+if kval >0 && kval<=.5 then ;3 possible outcomes
+ kval = 1
+elseif kval >.5 && kval<=1 then
+ kval =2
+elseif kval >1 then
+ kval =3
+endif
+
+printk2 kval ;print value when it changes
+asig poscil .7, 440*kval, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 16384 10 1
+
+i 1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/opcode_example.csd b/examples/opcode_example.csd
index 9d304f5..920d0d5 100644
--- a/examples/opcode_example.csd
+++ b/examples/opcode_example.csd
@@ -1,16 +1,17 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o opcode_example.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 50
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
/* example opcode 1: simple oscillator */
@@ -61,13 +62,13 @@ aenv linseg 0, 0.02, 1, p3 - 0.05, 1, 0.02, 0, 0.01, 0
instr 1
-kamp = 20000 ; amplitude
+kamp = .7 ; amplitude
kcps expon 50, p3, 500 ; pitch
a1 Oscillator kamp, kcps ; call oscillator
kflt linseg 0.4, 1.5, 0.4, 1, 0.8, 1.5, 0.8 ; filter envelope
a1 RecursiveLowpass a1, kflt, 1 - kflt, 10 ; 10th order lowpass
a1 DeClick a1
- out a1
+ outs a1, a1
endin
@@ -76,8 +77,7 @@ a1 DeClick a1
<CsScore>
i 1 0 4
-e
-
+e5 ;extra second before quitting
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/oscbnk.csd b/examples/oscbnk.csd
index d0166a6..140615f 100644
--- a/examples/oscbnk.csd
+++ b/examples/oscbnk.csd
@@ -41,7 +41,7 @@ i_ ftgen 7, 0, 64, -2, 4, 50, -1, -1, -1, 11, \
i0 = 0
loop1:
-imaxh = sr / (2 * 440.0 * exp (log(2.0) * (i0 - 69) / 12))
+imaxh = sr / (2 * 440.0 * exp(log(2.0) * (i0 - 69) / 12))
i_ ftgen i0 + 256, 0, 4096, -30, 1, 1, imaxh
i0 = i0 + 1
if (i0 < 127.5) igoto loop1
@@ -51,7 +51,7 @@ i0 = i0 + 1
p3 = p3 + 0.4
; note frequency
-kcps = 440.0 * exp (log(2.0) * (p4 - 69) / 12)
+kcps = 440.0 * exp(log(2.0) * (p4 - 69) / 12)
; lowpass max. frequency
klpmaxf limit 64 * kcps, 1000.0, 12000.0
; FM depth in Hz
diff --git a/examples/oscil.csd b/examples/oscil.csd
index b0b745d..312882b 100644
--- a/examples/oscil.csd
+++ b/examples/oscil.csd
@@ -1,41 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o oscil.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
-; Instrument #1 - a basic oscillator.
instr 1
- kamp = 10000
- kcps = 440
- ifn = p4
-asig oscil kamp, kcps, ifn
- outs asig,asig
-endin
+kamp = .6
+kcps = 440
+ifn = p4
+asig oscil kamp, kcps, ifn
+ outs asig,asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-; Table #2, a sawtooth wave
-f 2 0 256 7 -1 256 1
+f1 0 16384 10 1 ; Sine
+f2 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 ; Sawtooth
+f3 0 16384 10 1 0 0.3 0 0.2 0 0.14 0 .111 ; Square
+f4 0 16384 10 1 1 1 1 0.7 0.5 0.3 0.1 ; Pulse
i 1 0 2 1
-i 1 + 2 2
-e
-
+i 1 3 2 2
+i 1 6 2 3
+i 1 9 2 4
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/oscil1.csd b/examples/oscil1.csd
new file mode 100644
index 0000000..371b32a
--- /dev/null
+++ b/examples/oscil1.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil1.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giPan ftgen 0, 0, 8, -2, .5, .2, .8, .1, .9, 0, 1, .5
+
+instr 1
+
+istay = 2 ;how many seconds to stay on the first table value
+asig vco2 .3, 220
+kpan oscil1 istay, 1, p3-istay, giPan ;create panning
+ printk2 kpan ;print when new value
+aL, aR pan2 asig, kpan ;apply panning
+ outs aL, aR
+
+endin
+</CsInstruments>
+<CsScore>
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/oscil1i.csd b/examples/oscil1i.csd
new file mode 100644
index 0000000..38a7bda
--- /dev/null
+++ b/examples/oscil1i.csd
@@ -0,0 +1,38 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil1i.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ipanfn = p4
+asig vco2 .3, 220
+kpan oscil1i 0, 1, p3, ipanfn ;create panning &
+kleft = sqrt(kpan) ;start right away
+kright = sqrt(1-kpan)
+ outs kleft*asig, kright*asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 3 -7 .5 3 .5 ;remain in center (.5 CONSTANT)
+f 2 0 129 7 1 129 0 ;left-->right
+f 3 0 129 7 .5 32 1 64 0 33 .5 ;center-->left-->right-->center
+
+i 1 0 2 1 ;use table 1
+i 1 3 2 2 ;use table 2
+i 1 6 2 3 ;use table 3
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/oscil3.csd b/examples/oscil3.csd
index ccdeba9..60e65ad 100644
--- a/examples/oscil3.csd
+++ b/examples/oscil3.csd
@@ -1,55 +1,55 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o oscil3.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - a basic oscillator.
instr 1
- kamp = 10000
- kcps = 220
- ifn = 1
- a1 oscil kamp, kcps, ifn
- out a1
+kamp = .6
+kcps = 440
+ifn = p4
+
+asig oscil kamp, kcps, ifn
+ outs asig,asig
+
endin
-; Instrument #2 - the basic oscillator with cubic interpolation.
instr 2
- kamp = 10000
- kcps = 220
- ifn = 1
- a1 oscil3 kamp, kcps, ifn
- out a1
-endin
+kamp = .6
+kcps = 440
+ifn = p4
+asig oscil3 kamp, kcps, ifn
+ outs asig,asig
+endin
</CsInstruments>
<CsScore>
+f1 0 128 10 1 ; Sine with a small amount of data
+f2 0 128 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 ; Sawtooth with a small amount of data
+f3 0 128 10 1 0 0.3 0 0.2 0 0.14 0 .111 ; Square with a small amount of data
+f4 0 128 10 1 1 1 1 0.7 0.5 0.3 0.1 ; Pulse with a small amount of data
+
+i 1 0 2 1
+i 2 3 2 1
+i 1 6 2 2
+i 2 9 2 2
+i 1 12 2 3
+i 2 15 2 3
+i 1 18 2 4
+i 2 21 2 4
-; Table #1, a sine wave table with a small amount of data.
-f 1 0 32 10 0 1
-
-; Play Instrument #1, the basic oscillator, for
-; two seconds. This should sound relatively rough.
-i 1 0 2
-
-; Play Instrument #2, the cubic interpolated oscillator, for
-; two seconds. This should sound relatively smooth.
-i 2 2 2
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/oscili.csd b/examples/oscili.csd
index dc0d3f7..e826b41 100644
--- a/examples/oscili.csd
+++ b/examples/oscili.csd
@@ -1,55 +1,55 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o oscili.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - a basic oscillator.
instr 1
- kamp = 10000
- kcps = 220
- ifn = 1
- a1 oscil kamp, kcps, ifn
- out a1
+kamp = .6
+kcps = 440
+ifn = p4
+
+asig oscil kamp, kcps, ifn
+ outs asig,asig
+
endin
-; Instrument #2 - the basic oscillator with extra interpolation.
instr 2
- kamp = 10000
- kcps = 220
- ifn = 1
- a1 oscili kamp, kcps, ifn
- out a1
-endin
+kamp = .6
+kcps = 440
+ifn = p4
+asig oscili kamp, kcps, ifn
+ outs asig,asig
+endin
</CsInstruments>
<CsScore>
+f1 0 128 10 1 ; Sine with a small amount of data
+f2 0 128 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 ; Sawtooth with a small amount of data
+f3 0 128 10 1 0 0.3 0 0.2 0 0.14 0 .111 ; Square with a small amount of data
+f4 0 128 10 1 1 1 1 0.7 0.5 0.3 0.1 ; Pulse with a small amount of data
+
+i 1 0 2 1
+i 2 3 2 1
+i 1 6 2 2
+i 2 9 2 2
+i 1 12 2 3
+i 2 15 2 3
+i 1 18 2 4
+i 2 21 2 4
-; Table #1, a sine wave table with a small amount of data.
-f 1 0 32 10 0 1
-
-; Play Instrument #1, the basic oscillator, for
-; two seconds. This should sound relatively rough.
-i 1 0 2
-
-; Play Instrument #2, the interpolated oscillator, for
-; two seconds. This should sound relatively smooth.
-i 2 2 2
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/osciln.csd b/examples/osciln.csd
new file mode 100644
index 0000000..7334dca
--- /dev/null
+++ b/examples/osciln.csd
@@ -0,0 +1,48 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o osciln.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gione ftgen 1, 0, 1024, 7, 0, 1, 1, 1024, 0
+gitwo ftgen 2, 0, 1024, 7, 0, 512, 1, 512, 0
+
+instr 1 ;very simple waveguide system
+
+ifn = p4
+ipitch = p5
+itimes = p6
+iperiod = 1000/ipitch
+
+afeed init 0
+aimpl osciln 1, ipitch, ifn, itimes ;use as excitation signal
+arefl tone aimpl + afeed, 4000
+aout atone arefl, 5000
+afeed vdelay arefl, iperiod, 10
+ outs aout*3, aout*3
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 4 1 110 1 ;use different tables,
+i 1 5 4 2 110 1 ;& different pitch
+i 1 10 4 1 110 10 ;& different number of times the table is read
+i 1 15 4 2 110 10
+i 1 20 6 1 880 1
+i 1 25 3 2 880 1
+i 1 30 3 1 880 10
+i 1 35 3 2 880 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/oscils.csd b/examples/oscils.csd
index a63b484..0861595 100644
--- a/examples/oscils.csd
+++ b/examples/oscils.csd
@@ -1,37 +1,30 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o oscils.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - a fast sine oscillator.
instr 1
- iamp = 10000
- icps = 440
- iphs = 0
-
- a1 oscils iamp, icps, iphs
- out a1
-endin
+iflg = p4
+asig oscils .7, 220, 0, iflg
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+i 1 0 2 0
+i 1 3 2 2 ;double precision
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/out.csd b/examples/out.csd
new file mode 100644
index 0000000..73bb417
--- /dev/null
+++ b/examples/out.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o out.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 1
+0dbfs = 1
+
+instr 1
+
+kamp = .6
+kcps = 440
+ifn = p4
+
+asig oscil kamp, kcps, ifn
+ out asig ;one channel
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 16384 10 1 ; Sine
+f2 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 ; Sawtooth
+
+i 1 0 2 1
+i 1 3 2 2
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outc.csd b/examples/outc.csd
new file mode 100644
index 0000000..507659d
--- /dev/null
+++ b/examples/outc.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outc.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 5
+0dbfs = 1
+
+instr 1
+
+asig vco2 .05, 30 ; sawtooth waveform at low volume
+
+kcut line 100, p3, 30 ; Vary cutoff frequency
+kresonance = 7
+inumlayer = 2
+asig lowresx asig, kcut, kresonance, inumlayer
+; output same sound to 5 channels
+ outc asig,asig,asig,asig,asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 30
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outch-2.csd b/examples/outch-2.csd
new file mode 100644
index 0000000..db15969
--- /dev/null
+++ b/examples/outch-2.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outch-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4
+0dbfs = 1
+
+seed 0
+
+instr 1 ;random movements between 4 speakers with outch
+
+ichn1 random 1, 4.999 ;channel to start
+ichn2 random 1, 4.999 ;channel to end
+ prints "Moving from speaker %d to speaker %d%n", int(ichn1), int(ichn2)
+asamp soundin "fox.wav"
+kmov linseg 0, p3, 1
+a1, a2 pan2 asamp, kmov
+ outch int(ichn1), a1, int(ichn2), a2
+endin
+
+</CsInstruments>
+<CsScore>
+r 5
+i 1 0 3
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/outch.csd b/examples/outch.csd
new file mode 100644
index 0000000..4c89dfc
--- /dev/null
+++ b/examples/outch.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outch.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 5
+0dbfs = 1
+
+instr 1
+
+asig vco2 .05, 100 ; sawtooth waveform at low volume
+
+kcut line 100, p3, 30 ; Vary cutoff frequency
+kresonance = .7
+inumlayer = 3
+asig lowresx asig, kcut, kresonance, inumlayer
+
+klfo lfo 4, .5, 4
+klfo = klfo+1 ; offset of 1
+printks "signal is sent to channel %d\\n", .1, klfo
+ outch klfo,asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 30
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outiat.csd b/examples/outiat.csd
new file mode 100644
index 0000000..39dd564
--- /dev/null
+++ b/examples/outiat.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -Q1 -M0 ;;;realtime audio out and midi in and out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outiat.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 10
+nchnls = 2
+
+instr 1
+
+ikey notnum
+ivel veloc
+
+ivib = 25 ;low value.
+outiat 1, ivib, 0, 127 ;assign aftertouch on
+print ivib ;external synth for example to
+midion 1, ikey, ivel ;change depth of filter modulation
+
+endin
+</CsInstruments>
+<CsScore>
+f0 30 ;play for 30 seconds
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outic.csd b/examples/outic.csd
new file mode 100644
index 0000000..518322c
--- /dev/null
+++ b/examples/outic.csd
@@ -0,0 +1,30 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -Q1 -M0 ;;;realtime audio out -+rtmidi=virtual
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outic.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+
+instr 1
+
+ikey notnum
+ivel veloc
+kbrt = 40 ;set controller 74 (=brightness)
+outic 1, 74, kbrt, 0, 127 ;so filter closes a bit
+midion 1, ikey, ivel ;play external synth
+
+endin
+</CsInstruments>
+<CsScore>
+f0 30 ;runs 30 seconds
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outipb.csd b/examples/outipb.csd
new file mode 100644
index 0000000..3cc26a5
--- /dev/null
+++ b/examples/outipb.csd
@@ -0,0 +1,31 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -Q1 -M0 ;;;realtime audio out and midi in and out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outipb.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 10
+nchnls = 2
+
+instr 1
+
+ikey notnum
+ivel veloc
+
+ipb = 10 ;a little out of tune
+outipb 1, ipb, 0, 127 ;(= pitchbend)
+midion 1, ikey, ivel ;of external synth
+
+endin
+</CsInstruments>
+<CsScore>
+f0 30
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outipc.csd b/examples/outipc.csd
new file mode 100644
index 0000000..11a5f01
--- /dev/null
+++ b/examples/outipc.csd
@@ -0,0 +1,29 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -Q1 -M0 ;;;realtime audio out and midi in and out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outipc.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+
+instr 1
+
+outipc 1, 80, 0, 127 ;program change --> 80
+ikey notnum
+ivel veloc
+midion 1, ikey, ivel ;play external synth
+
+endin
+</CsInstruments>
+<CsScore>
+f0 30 ;runs 30 seconds
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outkat.csd b/examples/outkat.csd
new file mode 100644
index 0000000..336fc51
--- /dev/null
+++ b/examples/outkat.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -Q1 -M0 ;;;realtime audio out and midi in and out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outkat.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 10
+nchnls = 2
+
+instr 1
+
+ikey notnum
+ivel veloc
+
+kvib linseg 100, .5, 120 ;vary aftertouch in .5 second
+kvbr = int(kvib) ;whole numbers only
+outkat 1, kvbr, 0, 127 ;assign aftertouch on
+printk2 kvbr ;external synth for example to
+midion 1, ikey, ivel ;change depth of filter modulation
+
+endin
+</CsInstruments>
+<CsScore>
+f0 30 ;play for 30 seconds
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outkc.csd b/examples/outkc.csd
new file mode 100644
index 0000000..438c744
--- /dev/null
+++ b/examples/outkc.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -Q1 -M0 ;;;realtime audio out and midi in and out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outkc.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+
+instr 1
+
+ikey notnum
+ivel veloc
+
+kcut linseg 100, .5, 20 ;vary controller in .5 second
+kbrt = int(kcut) ;whole numbers only
+outkc 1, 74, kbrt, 0, 127 ;controller 74 (= brightness)
+midion 1, ikey, ivel ;of external synth
+
+endin
+</CsInstruments>
+<CsScore>
+f0 30 ;runs 30 seconds
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outkpb.csd b/examples/outkpb.csd
new file mode 100644
index 0000000..90729d6
--- /dev/null
+++ b/examples/outkpb.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -Q1 -M0 ;;;realtime audio out and midi in and out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outkpb.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 10
+nchnls = 2
+
+instr 1
+
+ikey notnum
+ivel veloc
+
+kpch linseg 100, 1, 0 ;vary in 1 second
+kpb = int(kpch) ;whole numbers only
+outkpb 1, kpb, 0, 127 ;(= pitchbend)
+midion 1, ikey, ivel ;of external synth
+
+endin
+</CsInstruments>
+<CsScore>
+f0 30
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outkpc.csd b/examples/outkpc.csd
index 17bc56f..51840fb 100644
--- a/examples/outkpc.csd
+++ b/examples/outkpc.csd
@@ -2,7 +2,7 @@
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in No messages
--odac -iadc -d -M0 -Q1;;;RT audio I/O with MIDI in
+-odac -iadc -d -M0 -Q1 ;;;RT audio I/O with MIDI in
</CsOptions>
<CsInstruments>
diff --git a/examples/outleta.csd b/examples/outleta.csd
index a69303f..679ec91 100755..100644
--- a/examples/outleta.csd
+++ b/examples/outleta.csd
@@ -1,139 +1,47 @@
-<CsoundSynthesizer>
-<CsOptions>
+<CsoundSynthesizer>
+<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d ;;;RT audio I/O
-;-Wfo outleta.wav
-</CsOptions>
-<CsInstruments>
-
-; Initialize the global variables.
-
-sr = 44100
-ksmps = 100
-nchnls = 2
-
-; Connect up instruments and effects to create the signal flow graph.
-
-connect "SimpleSine", "leftout", "Reverberator", "leftin"
-connect "SimpleSine", "rightout", "Reverberator", "rightin"
-
-connect "Moogy", "leftout", "Reverberator", "leftin"
-connect "Moogy", "rightout", "Reverberator", "rightin"
-
-connect "Reverberator", "leftout", "Compressor", "leftin"
-connect "Reverberator", "rightout", "Compressor", "rightin"
-
-connect "Compressor", "leftout", "Soundfile", "leftin"
-connect "Compressor", "rightout", "Soundfile", "rightin"
-
-; Turn on the "effect" units in the signal flow graph.
-
-alwayson "Reverberator", 0.91, 12000
-alwayson "Compressor"
-alwayson "Soundfile"
-
-; Define instruments and effects in order of signal flow.
-
- instr SimpleSine
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
- pset 0, 0, 10, 0, 0, 0, 0.5
-iattack = 0.015
-idecay = 0.07
-isustain = p3
-irelease = 0.3
-p3 = iattack + idecay + isustain + irelease
-adamping linsegr 0.0, iattack, 1.0, idecay + isustain, 1.0, irelease, 0.0
-iHz = cpsmidinn(p4)
- ; Rescale MIDI velocity range to a musically usable range of dB.
-iamplitude = ampdb(p5 / 127 * 15.0 + 60.0)
- ; Use ftgenonce instead of ftgen, ftgentmp, or f statement.
-icosine ftgenonce 0, 0, 65537, 11, 1
-aoscili oscili iamplitude, iHz, icosine
-aadsr madsr iattack, idecay, 0.6, irelease
-asignal = aoscili * aadsr
-aleft, aright pan2 asignal, p7
- ; Stereo audio output to be routed in the orchestra header.
- outleta "leftout", aleft
- outleta "rightout", aright
- endin
-
- instr Moogy
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Default values: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
- pset 0, 0, 10, 0, 0, 0, 0.5
-iattack = 0.003
-isustain = p3
-irelease = 0.05
-p3 = iattack + isustain + irelease
-adamping linsegr 0.0, iattack, 1.0, isustain, 1.0, irelease, 0.0
-iHz = cpsmidinn(p4)
- ; Rescale MIDI velocity range to a musically usable range of dB.
-iamplitude = ampdb(p5 / 127 * 20.0 + 60.0)
- print iHz, iamplitude
- ; Use ftgenonce instead of ftgen, ftgentmp, or f statement.
-isine ftgenonce 0, 0, 65537, 10, 1
-asignal vco iamplitude, iHz, 1, 0.5, isine
-kfco line 2000, p3, 200
-krez = 0.8
-asignal moogvcf asignal, kfco, krez, 100000
-asignal = asignal * adamping
-aleft, aright pan2 asignal, p7
- ; Stereo audio output to be routed in the orchestra header.
- outleta "leftout", aleft
- outleta "rightout", aright
- endin
- instr Reverberator
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Stereo input.
-aleftin inleta "leftin"
-arightin inleta "rightin"
-idelay = p4
-icutoff = p5
-aleft, aright reverbsc aleftin, arightin, idelay, icutoff
- ; Stereo output.
- outleta "leftout", aleft
- outleta "rightout", aright
- endin
-
- instr Compressor
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Stereo input.
-aleftin inleta "leftin"
-arightin inleta "rightin"
-kthreshold = 25000
-icomp1 = 0.5
-icomp2 = 0.763
-irtime = 0.1
-iftime = 0.1
-aleftout dam aleftin, kthreshold, icomp1, icomp2, irtime, iftime
-arightout dam arightin, kthreshold, icomp1, icomp2, irtime, iftime
- ; Stereo output.
- outleta "leftout", aleftout
- outleta "rightout", arightout
- endin
-
- instr Soundfile
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Stereo input.
-aleftin inleta "leftin"
-arightin inleta "rightin"
- outs aleftin, arightin
- endin
-
-</CsInstruments>
-<CsScore>
-
-; It is not necessary to activate "effects" or create f-tables in the score!
-; Overlapping notes create new instances of instruments with proper connections.
-
-i "SimpleSine" 1 5 60 85
-i "SimpleSine" 2 5 64 80
-i "Moogy" 3 5 67 75
-i "Moogy" 4 5 71 70
-;1 extra second after the performance
-e 1
-
-</CsScore>
-</CsoundSynthesizer>
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outleta.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+connect "1", "Outl", "reverby", "InL"
+connect "1", "Outr", "reverby", "InR"
+
+alwayson "reverby", 1
+
+instr 1
+
+aIn diskin2 "fox.wav", 1
+ outleta "Outl", aIn
+ outleta "Outr", aIn
+
+endin
+
+instr reverby
+
+aInL inleta "InL"
+aInR inleta "InR"
+
+al, ar reverbsc aInL, aInR, 0.7, 21000
+ifxlev = 0.5
+al = (aInL*ifxlev)+(al*(1-ifxlev))
+ar = (aInR*ifxlev)+(ar*(1-ifxlev))
+ outs al, ar
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3
+e4
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outletk.csd b/examples/outletk.csd
new file mode 100644
index 0000000..ec7a5c4
--- /dev/null
+++ b/examples/outletk.csd
@@ -0,0 +1,42 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o inletk.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+connect "bend", "bendout", "guitar", "bendin"
+
+instr bend
+
+kbend line p4, p3, p5
+ outletk "bendout", kbend
+endin
+
+instr guitar
+
+kbend inletk "bendin"
+kpch pow 2, kbend/12
+ printk2 kpch
+asig oscili .4, 440*kpch, 1
+ outs asig, asig
+endin
+
+</CsInstruments>
+<CsScore>
+f1 0 1024 10 1
+
+i"guitar" 0 5 8.00
+i"bend" 3 .2 -12 12
+i"bend" 4 .1 -17 40
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/outq.csd b/examples/outq.csd
new file mode 100644
index 0000000..0443110
--- /dev/null
+++ b/examples/outq.csd
@@ -0,0 +1,55 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outq.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4
+0dbfs = 1
+
+instr 1
+
+asig vco2 .01, 110 ; sawtooth waveform at low volume
+
+;filter the first channel
+kcut1 line 60, p3, 300 ; Vary cutoff frequency
+kresonance1 = 3
+inumlayer1 = 3
+asig1 lowresx asig, kcut1, kresonance1, inumlayer1
+
+;filter the second channel
+kcut2 line 300, p3, 60 ; Vary cutoff frequency
+kresonance2 = 3
+inumlayer2 = 3
+asig2 lowresx asig, kcut2, kresonance2, inumlayer2
+
+;filter the third channel
+kcut3 line 30, p3, 100; Vary cutoff frequency
+kresonance3 = 6
+inumlayer3 = 3
+asig3 lowresx asig, kcut3, kresonance3, inumlayer3
+asig3 = asig3*.1 ; lower volume
+
+;filter the fourth channel
+kcut4 line 100, p3, 30; Vary cutoff frequency
+kresonance4 = 6
+inumlayer4 = 3
+asig4 lowresx asig, kcut4, kresonance4, inumlayer4
+asig4 = asig4*.1 ; lower volume
+
+ outq asig1, asig2, asig3, asig4; output channels 1, 2, 3 & 4
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outq1.csd b/examples/outq1.csd
new file mode 100644
index 0000000..6fe32cd
--- /dev/null
+++ b/examples/outq1.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outq1.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4
+0dbfs = 1
+
+instr 1
+
+asig vco2 .05, 30 ; sawtooth waveform at low volume
+
+kcut line 60, p3, 300 ; Vary cutoff frequency
+kresonance = 7
+inumlayer = 2
+asig lowresx asig, kcut, kresonance, inumlayer
+
+ outq1 asig ; output channel 1
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outq2.csd b/examples/outq2.csd
new file mode 100644
index 0000000..fc670b6
--- /dev/null
+++ b/examples/outq2.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outq2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4
+0dbfs = 1
+
+instr 1
+
+asig vco2 .05, 30 ; sawtooth waveform at low volume
+
+kcut line 300, p3, 60 ; Vary cutoff frequency
+kresonance = 7
+inumlayer = 2
+asig lowresx asig, kcut, kresonance, inumlayer
+
+ outq2 asig ; output channel 2
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outq3.csd b/examples/outq3.csd
new file mode 100644
index 0000000..3c8d8ba
--- /dev/null
+++ b/examples/outq3.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outq3.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4
+0dbfs = 1
+
+instr 1
+
+asig vco2 .05, 30 ; sawtooth waveform at low volume
+
+kcut line 30, p3, 100 ; Vary cutoff frequency
+kresonance = 7
+inumlayer = 2
+asig lowresx asig, kcut, kresonance, inumlayer
+
+ outq3 asig ; output channel 3
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outq4.csd b/examples/outq4.csd
new file mode 100644
index 0000000..23a4ab9
--- /dev/null
+++ b/examples/outq4.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outq4.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4
+0dbfs = 1
+
+instr 1
+
+asig vco2 .05, 30 ; sawtooth waveform at low volume
+
+kcut line 100, p3, 30 ; Vary cutoff frequency
+kresonance = 7
+inumlayer = 2
+asig lowresx asig, kcut, kresonance, inumlayer
+
+ outq4 asig ; output channel 4
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outrg.csd b/examples/outrg.csd
new file mode 100644
index 0000000..62126dd
--- /dev/null
+++ b/examples/outrg.csd
@@ -0,0 +1,47 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outrg.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4 ;quad
+0dbfs = 1
+
+instr 1
+
+kleft init 1
+asig vco2 .5, 220 ;sawtooth
+idur = p3/(nchnls-1)
+knext init idur
+kpos init 0
+krate init 1/idur
+kbase init 0
+ktime timeinsts
+if ktime>=knext then
+ kleft = kleft + 1
+ knext = knext + idur
+ kpos = 0
+ kbase = ktime
+else
+ kpos = (ktime-kbase)/idur
+endif
+printks "speaker %d position %f\n", 0, kleft, kpos
+a1,a2 pan2 asig, kpos
+ outrg kleft, a1, a2
+kpos = kbase/idur
+endin
+
+</CsInstruments>
+<CsScore>
+
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/outs.csd b/examples/outs.csd
new file mode 100644
index 0000000..661233f
--- /dev/null
+++ b/examples/outs.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outs.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+asig vco2 .01, 110 ; sawtooth waveform at low volume
+;filter a channel
+kcut1 line 60, p3, 300 ; Vary cutoff frequency
+kresonance1 = 3
+inumlayer1 = 3
+asig1 lowresx asig, kcut1, kresonance1, inumlayer1
+;filter the other channel
+kcut2 line 300, p3, 60 ; Vary cutoff frequency
+kresonance2 = 3
+inumlayer2 = 3
+asig2 lowresx asig, kcut2, kresonance2, inumlayer2
+
+ outs asig1, asig2 ; output both channels 1 & 2
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outs1.csd b/examples/outs1.csd
new file mode 100644
index 0000000..3bf75df
--- /dev/null
+++ b/examples/outs1.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outs1.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+asig vco2 .01, 110 ; sawtooth waveform at low volume
+kcut line 60, p3, 300 ; Vary cutoff frequency
+kresonance = 3
+inumlayer = 3
+asig lowresx asig, kcut, kresonance, inumlayer
+ outs1 asig ; output stereo channel 1 only
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outs2.csd b/examples/outs2.csd
new file mode 100644
index 0000000..d3534af
--- /dev/null
+++ b/examples/outs2.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o outs2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+asig vco2 .01, 110 ; sawtooth waveform at low volume
+kcut line 300, p3, 60 ; Vary cutoff frequency
+kresonance = 3
+inumlayer = 3
+asig lowresx asig, kcut, kresonance, inumlayer
+ outs2 asig ; output stereo channel 2 only
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/outvalue.csd b/examples/outvalue.csd
new file mode 100644
index 0000000..e3730c4
--- /dev/null
+++ b/examples/outvalue.csd
@@ -0,0 +1,26 @@
+<CsoundSynthesizer>
+<CsOptions>
+</CsOptions>
+<CsInstruments>
+;run this example in CsoundQt, a Csound editor that provides widgets
+;make the Widgets-panel visible, by clicking the Widgets symbol in the menu or pressing (Alt+1).
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+; written by Alex Hofmann
+
+instr 1 ;move fader
+
+kMoveUp linseg 0, 3, 1, 1, 1, 0.5, 0
+outvalue "movefader", kMoveUp
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/pan.csd b/examples/pan.csd
index 4047ec4..99dc34f 100755..100644
--- a/examples/pan.csd
+++ b/examples/pan.csd
@@ -1,38 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d ;;;RT audio I/O with MIDI in
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pan.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; 4 channel
-sr = 44100
-kr = 441
-ksmps = 100
-nchnls = 4
- instr 1
+sr = 44100
+ksmps = 32
+nchnls = 4
+0dbfs = 1
-k1 phasor .2 ; "fraction" of circle - controls speed of rotation - can be negative
-k2 tablei k 1, 1, 1 ; sin of angle (sinusoid in f1)
-k3 tablei k 1, 1, 1, .25, 1 ; cos of angle (sin offset 1/4 circle)
-asig rand 10000 ; audio signal..
+instr 1
+
+kcps = p4
+k1 phasor kcps ; "fraction" of circle - controls speed of rotation - can be negative
+k2 tablei k1, 1, 1 ; sin of angle (sinusoid in f1)
+k3 tablei k1, 1, 1, .25, 1 ; cos of angle (sin offset 1/4 circle)
+arnd randomi 400, 1000, 50 ; produce random values
+asig poscil .7, arnd, 1 ; audio signal..
a1,a2,a3,a4 pan asig, k2/2, k3/2, 2, 1, 1 ; sent in a circle (f2=1st quad sin)
outq a1, a2, a3, a4
- endin
-
-
+endin
</CsInstruments>
<CsScore>
f1 0 8192 10 1
f2 0 8193 9 .25 1 0
-i1 0 10
+i1 0 10 .2 ;move to the tight
+i1 11 10 -.2 ;move to the left
e
</CsScore>
diff --git a/examples/pan2.csd b/examples/pan2.csd
index 82e9547..788c8b4 100755..100644
--- a/examples/pan2.csd
+++ b/examples/pan2.csd
@@ -1,30 +1,28 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pan2.wav -W ;;; for file output any platform
</CsOptions>
-
<CsInstruments>
sr = 44100
-ksmps = 20
+ksmps = 32
nchnls = 2
+0dbfs = 1
-giSine ftgen 0, 0, 65537, 10, 1
+giSine ftgen 0, 0, 2^10, 10, 1
instr 1
kline line 0, p3, 1 ; straight line
-ain oscili 10000,440, giSine ; audio signal..
-a1,a2 pan2 ain, kline ; sent across image
- outs a1, a2
-
+ain oscili .6, 440, giSine ; audio signal..
+aL,aR pan2 ain, kline ; sent across image
+ outs aL, aR
endin
-
</CsInstruments>
<CsScore>
i1 0 5
diff --git a/examples/partials.csd b/examples/partials.csd
index 4c523ed..bb06ae3 100755..100644
--- a/examples/partials.csd
+++ b/examples/partials.csd
@@ -1,38 +1,32 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d ;;;RT audio I/O with MIDI in
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o partials.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
-;ain inch 1 ; input signal
-ain diskin2 "beats.wav", 1, 0, 1
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-aout resyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th)
- out aout
-
-endin
+ain diskin2 "fox.wav", 1
+fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
+fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
+aout resyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th)
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
f 1 0 4096 10 1
-i 1 0 5
+i 1 0 2.8
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/partikkel-2.csd b/examples/partikkel-2.csd
new file mode 100644
index 0000000..54cc1df
--- /dev/null
+++ b/examples/partikkel-2.csd
@@ -0,0 +1,151 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+; Audio out
+-odac ;;;RT audio
+; For Non-realtime ouput leave only the line below:
+; -o partikkel.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 20
+nchnls = 2
+
+; Example by Joachim Heintz and Oeyvind Brandtsegg 2008
+
+giCosine ftgen 0, 0, 8193, 9, 1, 1, 90 ; cosine
+giDisttab ftgen 0, 0, 32768, 7, 0, 32768, 1 ; for kdistribution
+giFile ftgen 0, 0, 0, 1, "fox.wav", 0, 0, 0 ; soundfile for source waveform
+giWin ftgen 0, 0, 4096, 20, 9, 1 ; grain envelope
+giPan ftgen 0, 0, 32768, -21, 1 ; for panning (random values between 0 and 1)
+
+
+; *************************************************
+; partikkel example, processing of soundfile
+; uses the file "fox.wav"
+; *************************************************
+ instr 1
+
+/*score parameters*/
+ispeed = p4 ; 1 = original speed
+igrainrate = p5 ; grain rate
+igrainsize = p6 ; grain size in ms
+icent = p7 ; transposition in cent
+iposrand = p8 ; time position randomness (offset) of the pointer in ms
+icentrand = p9 ; transposition randomness in cents
+ipan = p10 ; panning narrow (0) to wide (1)
+idist = p11 ; grain distribution (0=periodic, 1=scattered)
+
+/*get length of source wave file, needed for both transposition and time pointer*/
+ifilen tableng giFile
+ifildur = ifilen / sr
+
+/*sync input (disabled)*/
+async = 0
+
+/*grain envelope*/
+kenv2amt = 1 ; use only secondary envelope
+ienv2tab = giWin ; grain (secondary) envelope
+ienv_attack = -1 ; default attack envelope (flat)
+ienv_decay = -1 ; default decay envelope (flat)
+ksustain_amount = 0.5 ; no meaning in this case (use only secondary envelope, ienv2tab)
+ka_d_ratio = 0.5 ; no meaning in this case (use only secondary envelope, ienv2tab)
+
+/*amplitude*/
+kamp = 0.4*0dbfs ; grain amplitude
+igainmasks = -1 ; (default) no gain masking
+
+/*transposition*/
+kcentrand rand icentrand ; random transposition
+iorig = 1 / ifildur ; original pitch
+kwavfreq = iorig * cent(icent + kcentrand)
+
+/*other pitch related (disabled)*/
+ksweepshape = 0 ; no frequency sweep
+iwavfreqstarttab = -1 ; default frequency sweep start
+iwavfreqendtab = -1 ; default frequency sweep end
+awavfm = 0 ; no FM input
+ifmamptab = -1 ; default FM scaling (=1)
+kfmenv = -1 ; default FM envelope (flat)
+
+/*trainlet related (disabled)*/
+icosine = giCosine ; cosine ftable
+kTrainCps = igrainrate ; set trainlet cps equal to grain rate for single-cycle trainlet in each grain
+knumpartials = 1 ; number of partials in trainlet
+kchroma = 1 ; balance of partials in trainlet
+
+/*panning, using channel masks*/
+imid = .5; center
+ileftmost = imid - ipan/2
+irightmost = imid + ipan/2
+giPanthis ftgen 0, 0, 32768, -24, giPan, ileftmost, irightmost ; rescales giPan according to ipan
+ tableiw 0, 0, giPanthis ; change index 0 ...
+ tableiw 32766, 1, giPanthis ; ... and 1 for ichannelmasks
+ichannelmasks = giPanthis ; ftable for panning
+
+/*random gain masking (disabled)*/
+krandommask = 0
+
+/*source waveforms*/
+kwaveform1 = giFile ; source waveform
+kwaveform2 = giFile ; all 4 sources are the same
+kwaveform3 = giFile
+kwaveform4 = giFile
+iwaveamptab = -1 ; (default) equal mix of source waveforms and no amplitude for trainlets
+
+/*time pointer*/
+afilposphas phasor ispeed / ifildur
+/*generate random deviation of the time pointer*/
+iposrandsec = iposrand / 1000 ; ms -> sec
+iposrand = iposrandsec / ifildur ; phase values (0-1)
+krndpos linrand iposrand ; random offset in phase values
+/*add random deviation to the time pointer*/
+asamplepos1 = afilposphas + krndpos; resulting phase values (0-1)
+asamplepos2 = asamplepos1
+asamplepos3 = asamplepos1
+asamplepos4 = asamplepos1
+
+/*original key for each source waveform*/
+kwavekey1 = 1
+kwavekey2 = kwavekey1
+kwavekey3 = kwavekey1
+kwavekey4 = kwavekey1
+
+/* maximum number of grains per k-period*/
+imax_grains = 100
+
+aL, aR partikkel igrainrate, idist, giDisttab, async, kenv2amt, ienv2tab, \
+ ienv_attack, ienv_decay, ksustain_amount, ka_d_ratio, igrainsize, kamp, igainmasks, \
+ kwavfreq, ksweepshape, iwavfreqstarttab, iwavfreqendtab, awavfm, \
+ ifmamptab, kfmenv, icosine, kTrainCps, knumpartials, \
+ kchroma, ichannelmasks, krandommask, kwaveform1, kwaveform2, kwaveform3, kwaveform4, \
+ iwaveamptab, asamplepos1, asamplepos2, asamplepos3, asamplepos4, \
+ kwavekey1, kwavekey2, kwavekey3, kwavekey4, imax_grains
+
+ outs aL, aR
+
+endin
+
+
+</CsInstruments>
+<CsScore>
+;i1 st dur speed grate gsize cent posrnd cntrnd pan dist
+i1 0 2.757 1 200 15 0 0 0 0 0
+s
+i1 0 2.757 1 200 15 400 0 0 0 0
+s
+i1 0 2.757 1 15 450 400 0 0 0 0
+s
+i1 0 2.757 1 15 450 400 0 0 0 0.4
+s
+i1 0 2.757 1 200 15 0 400 0 0 1
+s
+i1 0 5.514 .5 200 20 0 0 600 .5 1
+s
+i1 0 11.028 .25 200 15 0 1000 400 1 1
+
+
+</CsScore>
+
+</CsoundSynthesizer>
diff --git a/examples/partikkel.csd b/examples/partikkel.csd
index 83d255c..4824b78 100644
--- a/examples/partikkel.csd
+++ b/examples/partikkel.csd
@@ -1,12 +1,11 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o partikkel.wav -W ;;; for file output any platform
</CsOptions>
-
<CsInstruments>
sr = 44100
@@ -59,7 +58,7 @@ kwavekey3 = 1 ;
kwavekey4 = 1 ;
imax_grains = 100 ; max grains per k period
-a1 partikkel kgrainfreq, kdistribution, idisttab, async, kenv2amt, ienv2tab, \
+asig partikkel kgrainfreq, kdistribution, idisttab, async, kenv2amt, ienv2tab, \
ienv_attack, ienv_decay, ksustain_amount, ka_d_ratio, kduration, kamp, igainmasks, \
kwavfreq, ksweepshape, iwavfreqstarttab, iwavfreqendtab, awavfm, \
ifmamptab, kfmenv, icosine, kTrainCps, knumpartials, \
@@ -67,7 +66,7 @@ a1 partikkel kgrainfreq, kdistribution, idisttab, async, kenv2amt, ienv2tab, \
iwaveamptab, asamplepos1, asamplepos2, asamplepos3, asamplepos4, \
kwavekey1, kwavekey2, kwavekey3, kwavekey4, imax_grains
-outs a1, a1
+outs asig, asig
endin
</CsInstruments>
diff --git a/examples/partikkelsync.csd b/examples/partikkelsync.csd
new file mode 100644
index 0000000..89a8d61
--- /dev/null
+++ b/examples/partikkelsync.csd
@@ -0,0 +1,170 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+; Audio out
+-odac ;;;RT audio
+; For Non-realtime ouput leave only the line below:
+; -o partikkel_softsync.wav -W ;;; for file output any platform
+</CsOptions>
+
+<CsInstruments>
+
+sr = 44100
+ksmps = 20
+nchnls = 2
+
+; Example by Oeyvind Brandtsegg 2007, revised 2008
+
+giSine ftgen 0, 0, 65537, 10, 1
+giCosine ftgen 0, 0, 8193, 9, 1, 1, 90
+giSigmoRise ftgen 0, 0, 8193, 19, 0.5, 1, 270, 1 ; rising sigmoid
+giSigmoFall ftgen 0, 0, 8193, 19, 0.5, 1, 90, 1 ; falling sigmoid
+
+; *************************************************
+; example of soft synchronization of two partikkel instances
+; *************************************************
+ instr 1
+
+
+/*score parameters*/
+igrainrate = p4 ; grain rate
+igrainsize = p5 ; grain size in ms
+igrainFreq = p6 ; fundamental frequency of source waveform
+iosc2Dev = p7 ; partikkel instance 2 grain rate deviation factor
+iMaxSync = p8 ; max soft sync amount (increasing to this value during length of note)
+
+/*overall envelope*/
+iattack = 0.001
+idecay = 0.2
+isustain = 0.7
+irelease = 0.2
+amp linsegr 0, iattack, 1, idecay, isustain, 1, isustain, irelease, 0
+
+kgrainfreq = igrainrate ; grains per second
+kdistribution = 0 ; periodic grain distribution
+idisttab = -1 ; (default) flat distribution used
+ ; for grain distribution
+async = 0 ; no sync input
+kenv2amt = 0 ; no secondary enveloping
+ienv2tab = -1 ; default secondary envelope (flat)
+ienv_attack = giSigmoRise ; default attack envelope (flat)
+ienv_decay = giSigmoFall ; default decay envelope (flat)
+ksustain_amount = 0.3 ; time (in fraction of grain dur) at
+ ; sustain level for each grain
+ka_d_ratio = 0.2 ; balance between attack and decay time
+kduration = igrainsize ; set grain duration in ms
+kamp = 0.2*0dbfs ; amp
+igainmasks = -1 ; (default) no gain masking
+kwavfreq = igrainFreq ; fundamental frequency of source waveform
+ksweepshape = 0 ; shape of frequency sweep (0=no sweep)
+iwavfreqstarttab = -1 ; default frequency sweep start
+ ; (value in table = 1, which give
+ ; no frequency modification)
+iwavfreqendtab = -1 ; default frequency sweep end
+ ; (value in table = 1, which give
+ ; no frequency modification)
+awavfm = 0 ; no FM input
+ifmamptab = -1 ; default FM scaling (=1)
+kfmenv = -1 ; default FM envelope (flat)
+icosine = giCosine ; cosine ftable
+kTrainCps = kgrainfreq ; set trainlet cps equal to grain
+ ; rate for single-cycle trainlet in
+ ; each grain
+knumpartials = 3 ; number of partials in trainlet
+kchroma = 1 ; balance of partials in trainlet
+ichannelmasks = -1 ; (default) no channel masking,
+ ; all grains to output 1
+krandommask = 0 ; no random grain masking
+kwaveform1 = giSine ; source waveforms
+kwaveform2 = giSine ;
+kwaveform3 = giSine ;
+kwaveform4 = giSine ;
+iwaveamptab = -1 ; mix of 4 source waveforms and
+ ; trainlets (set to default)
+asamplepos1 = 0 ; phase offset for reading source waveform
+asamplepos2 = 0 ;
+asamplepos3 = 0 ;
+asamplepos4 = 0 ;
+kwavekey1 = 1 ; original key for source waveform
+kwavekey2 = 1 ;
+kwavekey3 = 1 ;
+kwavekey4 = 1 ;
+imax_grains = 100 ; max grains per k period
+iopcode_id = 1 ; id of opcode, linking partikkel
+ ; to partikkelsync
+
+a1 partikkel kgrainfreq, kdistribution, idisttab, async, kenv2amt, \
+ ienv2tab,ienv_attack, ienv_decay, ksustain_amount, ka_d_ratio, \
+ kduration, kamp, igainmasks, kwavfreq, ksweepshape, \
+ iwavfreqstarttab, iwavfreqendtab, awavfm, ifmamptab, kfmenv, \
+ icosine, kTrainCps, knumpartials, kchroma, ichannelmasks, \
+ krandommask, kwaveform1, kwaveform2, kwaveform3, kwaveform4, \
+ iwaveamptab, asamplepos1, asamplepos2, asamplepos3, asamplepos4, \
+ kwavekey1, kwavekey2, kwavekey3, kwavekey4, imax_grains, iopcode_id
+
+async1 partikkelsync iopcode_id ; clock pulse output of the
+ ; partikkel instance above
+ksyncGravity line 0, p3, iMaxSync ; strength of synchronization
+aphase2 init 0
+asyncPolarity limit (int(aphase2*2)*2)-1, -1, 1
+; use the phase of partikkelsync instance 2 to find sync
+; polarity for partikkel instance 2.
+; If the phase of instance 2 is less than 0.5, we want to
+; nudge it down when synchronizing,
+; and if the phase is > 0.5 we want to nudge it upwards.
+async1 = async1*ksyncGravity*asyncPolarity ; prepare sync signal
+ ; with polarity and strength
+
+kgrainfreq2 = igrainrate * iosc2Dev ; grains per second for second partikkel instance
+iopcode_id2 = 2
+a2 partikkel kgrainfreq2, kdistribution, idisttab, async1, kenv2amt, \
+ ienv2tab, ienv_attack, ienv_decay, ksustain_amount, ka_d_ratio, \
+ kduration, kamp, igainmasks, kwavfreq, ksweepshape, \
+ iwavfreqstarttab, iwavfreqendtab, awavfm, ifmamptab, kfmenv, \
+ icosine, kTrainCps, knumpartials, kchroma, ichannelmasks, \
+ krandommask, kwaveform1, kwaveform2, kwaveform3, kwaveform4, \
+ iwaveamptab, asamplepos1, asamplepos2, asamplepos3, \
+ asamplepos4, kwavekey1, kwavekey2, kwavekey3, kwavekey4, \
+ imax_grains, iopcode_id2
+
+async2, aphase2 partikkelsync iopcode_id2
+; clock pulse and phase
+; output of the partikkel instance above,
+; we will only use the phase
+
+outs a1*amp, a2*amp
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+/*score parameters
+igrainrate = p4 ; grain rate
+igrainsize = p5 ; grain size in ms
+igrainFreq = p6 ; frequency of source wave within grain
+iosc2Dev = p7 ; partikkel instance 2 grain rate deviation factor
+iMaxSync = p8 ; max soft sync amount (increasing to this value during length of note)
+*/
+; GrRate GrSize GrFund Osc2Dev MaxSync
+
+i1 0 10 2 20 880 1.3 0.3
+s
+i1 0 10 5 20 440 0.8 0.3
+s
+i1 0 6 55 15 660 1.8 0.45
+s
+i1 0 6 110 10 440 0.6 0.6
+s
+i1 0 6 220 3 660 2.6 0.45
+s
+i1 0 6 220 3 660 2.1 0.45
+s
+i1 0 6 440 3 660 0.8 0.22
+s
+
+e
+
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/passign.csd b/examples/passign.csd
index 04a9d39..7674693 100644
--- a/examples/passign.csd
+++ b/examples/passign.csd
@@ -1,10 +1,19 @@
<CsoundSynthesizer>
<CsOptions>
--odac
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o passign.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
- instr 8
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 8
idur,iamp,iskiptime,iattack,irelease,irvbtime,irvbgain passign 3
@@ -13,8 +22,8 @@ asig soundin "fox.wav", iskiptime
arampsig = kamp * asig
aeffect reverb asig, irvbtime
arvbretrn = aeffect * irvbgain
-
- out arampsig + arvbretrn
+;mix dry & wet signals
+ outs arampsig + arvbretrn, arampsig + arvbretrn
endin
@@ -22,11 +31,11 @@ arvbretrn = aeffect * irvbgain
<CsScore>
;ins strt dur amp skip atk rel rvbt rvbgain
-i8 0 2.28 .3 0 .03 .1 1.5 .3
-i8 4 1.6 .3 1.6 .1 .1 1.1 .4
-i8 5.5 2.28 .3 0 .5 .1 2.1 .2
-i8 6.5 2.28 .4 0 .01 .1 1.1 .1
-i8 8 2.28 .5 0.1 .01 .1 0.1 .1
+i8 0 4 .3 0 .03 .1 1.5 .3
+i8 4 4 .3 1.6 .1 .1 3.1 .7
+i8 8 4 .3 0 .5 .1 2.1 .2
+i8 12 4 .4 0 .01 .1 1.1 .1
+i8 16 4 .5 0.1 .01 .1 0.1 .1
e
</CsScore>
diff --git a/examples/pcauchy.csd b/examples/pcauchy.csd
index 87bb5cd..e6ea9d6 100644
--- a/examples/pcauchy.csd
+++ b/examples/pcauchy.csd
@@ -1,50 +1,42 @@
-<CsoundSynthesizer>
-<CsOptions>
-; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
-; For Non-realtime ouput leave only the line below:
-; -o pcauchy.wav -W ;;; for file output any platform
-</CsOptions>
-<CsInstruments>
-
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Generate a random number between 0 and 1.
- ; kalpha = 1
-
- i1 pcauchy 1
-
- print i1
-endin
-
-; Instrument #2.
-instr 2
- ; Generate a random number between 0 and 1.
- ; kalpha = 1
-
- seed 0
-
- i1 pcauchy 1
-
- print i1
-endin
-
-</CsInstruments>
-<CsScore>
-
-; Play Instrument #1 for one second.
-i 1 0 1
-; Play Instrument #2 for one second.
-i 2 1 1
-e
-
-
-</CsScore>
-</CsoundSynthesizer>
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pcauchy.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; every run time same values
+
+kalpha pcauchy 1000
+ printk .2, kalpha ; look
+aout oscili 0.8, 440+kalpha, 1 ; & listen
+ outs aout, aout
+endin
+
+instr 2 ; every run time different values
+
+ seed 0
+kalpha pcauchy 1000
+ printk .2, kalpha ; look
+aout oscili 0.8, 440+kalpha, 1 ; & listen
+ outs aout, aout
+endin
+</CsInstruments>
+<CsScore>
+; sine wave
+f 1 0 16384 10 1
+
+i 1 0 2
+i 2 3 2
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pchbend.csd b/examples/pchbend.csd
index fa87b87..e803f80 100644
--- a/examples/pchbend.csd
+++ b/examples/pchbend.csd
@@ -1,34 +1,31 @@
-<CsoundSynthesizer>
+<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
+-odac -Q1 -Ma ;;;realtime audio out and midi in (on all inputs) and out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pchbend.wav -W ;;; for file output any platform
</CsOptions>
-<CsInstruments>
+<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- i1 pchbend
-
- print i1
-endin
-
-
-</CsInstruments>
-<CsScore>
-
-; Play Instrument #1 for 12 seconds.
-i 1 0 12
-e
-
-
-</CsScore>
-</CsoundSynthesizer>
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;use external midi keyboard
+
+icps cpsmidi
+kbnd pchbend 0, 100 ;one octave lower and higher
+kenv linsegr 0,.001, 1, .1, 0 ;amplitude envelope
+asig pluck .8 * kenv, icps+kbnd, 440, 0, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+f 0 30 ;runs 30 seconds
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pconvolve.csd b/examples/pconvolve.csd
new file mode 100644
index 0000000..1510b30
--- /dev/null
+++ b/examples/pconvolve.csd
@@ -0,0 +1,74 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+-iadc ;;;uncomment -iadc if real audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pconvolve.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kmix = .5 ; Wet/dry mix. Vary as desired.
+kvol = .05*kmix ; Overall volume level of reverb. May need to adjust
+ ; when wet/dry mix is changed, to avoid clipping.
+
+; do some safety checking to make sure we the parameters a good
+kmix = (kmix < 0 || kmix > 1 ? .5 : kmix)
+kvol = (kvol < 0 ? 0 : .5*kvol*kmix)
+
+; size of each convolution partion -- for best performance, this parameter needs to be tweaked
+ipartitionsize = p4
+
+; calculate latency of pconvolve opcode
+idel = (ksmps < ipartitionsize ? ipartitionsize + ksmps : ipartitionsize)/sr
+prints "Convolving with a latency of %f seconds%n", idel
+
+; actual processing
+al, ar ins ;get live input
+awetl, awetr pconvolve kvol*(al+ar), "kickroll.wav", ipartitionsize
+; Delay dry signal, to align it with the convoled sig
+adryl delay (1-kmix)*al, idel
+adryr delay (1-kmix)*al, idel
+ outs adryl+awetl, adryr+awetr
+
+endin
+
+instr 2
+
+imix = 0.5 ; Wet/dry mix. Vary as desired.
+ivol = .05*imix ; Overall volume level of reverb. May need to adjust
+ ; when wet/dry mix is changed, to avoid clipping.
+ipartitionsize = 1024 ; size of each convolution partion
+idel = (ksmps < ipartitionsize ? ipartitionsize + ksmps : ipartitionsize)/sr ; latency of pconvolve opcode
+
+kcount init idel*kr
+; since we are using a soundin [instead of ins] we can
+; do a kind of "look ahead" by looping during one k-pass
+; without output, creating zero-latency
+loop:
+ asig soundin p4, 0
+ awetl, awetr pconvolve ivol*(asig),"rv_stereo.wav", ipartitionsize
+ adry delay (1-imix)*asig,idel ; Delay dry signal, to align it with
+ kcount = kcount - 1
+ if kcount > 0 kgoto loop
+ outs awetl+adry, awetr+adry
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 20 1024 ;play live for 20 seconds
+
+i 2 20 5 "fox.wav"
+i 2 25 5 "flute.aiff"
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pcount.csd b/examples/pcount.csd
index 00fca14..744543e 100644
--- a/examples/pcount.csd
+++ b/examples/pcount.csd
@@ -1,23 +1,86 @@
-<CsoundSynthesizer>
-<CsOptions>
-; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc ; -d -M0 ;;;RT audio I/O with MIDI in
-; For Non-realtime ouput leave only the line below:
-;-o pcount.wav -W ;;; for file output any platform
-</CsOptions>
-<CsInstruments>
-;Example by Anthony Kozar Dec 2006
-instr 1
- inum pcount
- print inum
-endin
-
-</CsInstruments>
-<CsScore>
-i1 0 3 4 5 ; has 5 pfields
-i1 1 3 ; has 5 due to carry
-i1 2 3 4 5 6 7 ; has 7
-e
-</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pcount.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+; This UDO returns a pfield value but returns 0 if it does not exist.
+opcode mypvalue, i, i
+ index xin
+ inum pcount
+ if (index > inum) then
+ iout = 0.0
+ else
+ iout pindex index
+ endif
+
+ xout iout
+endop
+
+; Envelope UDO that reads parameters from a flexible number of pfields
+; Syntax: kenv flexlinseg ipstart
+; ipstart is the first pfield of the envelope
+; parameters. Reads remaining pfields (up to 21 of them).
+; kenv is the output envelope.
+
+opcode flexlinseg, k, i
+ ipstart xin
+
+ iep1 mypvalue ipstart
+ iep2 mypvalue ipstart + 1
+ iep3 mypvalue ipstart + 2
+ iep4 mypvalue ipstart + 3
+ iep5 mypvalue ipstart + 4
+ iep6 mypvalue ipstart + 5
+ iep7 mypvalue ipstart + 6
+ iep8 mypvalue ipstart + 7
+ iep9 mypvalue ipstart + 8
+ iepa mypvalue ipstart + 9
+ iepb mypvalue ipstart + 10
+ iepc mypvalue ipstart + 11
+ iepd mypvalue ipstart + 12
+ iepe mypvalue ipstart + 13
+ iepf mypvalue ipstart + 14
+ iepg mypvalue ipstart + 15
+ ieph mypvalue ipstart + 16
+ iepi mypvalue ipstart + 17
+ iepj mypvalue ipstart + 18
+ iepk mypvalue ipstart + 19
+ iepl mypvalue ipstart + 20
+
+ kenv linseg iep1, iep2, iep3, iep4, iep5, iep6, iep7, iep8, \
+ iep9, iepa, iepb, iepc, iepd, iepe, iepf, iepg, \
+ ieph, iepi, iepj, iepk, iepl
+ xout kenv
+endop
+
+instr 1
+; This instrument only requires 3 pfields but can accept up to 24.
+; (You will still get warnings about more than 3).
+kenv flexlinseg 4 ; envelope params start at p4
+aout oscili kenv*.5, 256, 1
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1
+
+i1 0 2 0.0 1.0 1.0 1.0 0.0
+i1 2 2 0.0 0.1 1.0 1.0 1.0 0.1 0.0
+i1 4 2 0.0 0.5 0.0 ; one problem is that "missing" pfields carry
+i1 6 2 0.0 0.5 0.0 ! ; now we can fix this problem with !
+i1 8 10 0.0 3.0 1.0 0.3 0.1 0.3 1.0 0.3 0.1 0.3 1.0 0.3 0.1 0.8 0.9 5.0 0.0
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pdhalf.csd b/examples/pdhalf.csd
index d2e1389..2aeda48 100644
--- a/examples/pdhalf.csd
+++ b/examples/pdhalf.csd
@@ -1,13 +1,18 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o abs.wav -W ;;; for file output any platform
+; -o pdhalf.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; test instrument for pdhalf opcode
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
instr 4
idur = p3
@@ -21,7 +26,7 @@ instr 4
apd pdhalf aosc, kamount
aout tablei apd, itable, 1
- out aenv*aout*iamp
+ outs aenv*aout*iamp, aenv*aout*iamp
endin
</CsInstruments>
@@ -35,13 +40,33 @@ f3 0 16385 9 1 1 270 ; inverted cosine
; pdhalf with cosine table
; (imitates the CZ-101 "sawtooth waveform")
t 0 100
-i4 0 .333 10000 512 3
+i4 0 3 .6 512 3
+i. + . . 448
+i. + . . 384
+i. + . . 358.4
+i. + . . 341.33
+i. + . . 298.67
+i. + 5 . 256
+s
+; pdhalf with a sine table
+t 0 120
+i4 0 3 .6 512 1
+i. + . . 448
+i. + . . 384
+i. + . . 358.4
+i. + . . 341.33
+i. + . . 298.67
+i. + 5 . 256
+s
+; pdhalf with a sawtooth-like table
+t 0 150
+i4 0 3 .6 512 2
i. + . . 448
i. + . . 384
i. + . . 358.4
i. + . . 341.33
i. + . . 298.67
-i. + 2 . 256
+i. + 5 . 256
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pdhalfy.csd b/examples/pdhalfy.csd
index f7d8d5b..77ccbbf 100644
--- a/examples/pdhalfy.csd
+++ b/examples/pdhalfy.csd
@@ -1,13 +1,18 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o abs.wav -W ;;; for file output any platform
+; -o pdhalfy.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; test instrument for pdhalfy opcode
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
instr 5
idur = p3
@@ -29,7 +34,7 @@ instr 5
apd pdhalfy aosc, kamount
aout tablei apd, itable, 1
- out aenv*aout*iamp
+ outs aenv*aout*iamp, aenv*aout*iamp
endin
</CsInstruments>
@@ -41,7 +46,7 @@ f3 0 16385 9 1 1 270 ; inverted cosine
; pdhalfy with cosine table
t 0 100
-i5 0 .333 10000 512 1.0 .02 0.5 .12 3
+i5 0 .333 .6 512 1.0 .02 0.5 .12 3
i. + . . 448 <
i. + . . 384 <
i. + . . 358.4 <
@@ -52,7 +57,7 @@ s
; pdhalfy with sine table
t 0 100
-i5 0 .333 10000 512 1.0 .001 0.1 .07 1
+i5 0 .333 .6 512 1.0 .001 0.1 .07 1
i. + . . 448 <
i. + . . 384 <
i. + . . 358.4 <
diff --git a/examples/pgmassign_advanced.csd b/examples/pgmassign_advanced.csd
index 5eb4460..4c3fa2f 100644
--- a/examples/pgmassign_advanced.csd
+++ b/examples/pgmassign_advanced.csd
@@ -1,22 +1,24 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
+-odac -F pgmassign_advanced.mid ;;;realtime audio out with midifile in
+;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pgmassign_advanced.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
massign 1, 1 ; channels 1 to 4 use instr 1 by default
massign 2, 1
massign 3, 1
massign 4, 1
+; pgmassign_advanced.mid can be found in /manual/examples
; pgmassign.mid has 4 notes with these parameters:
;
; Start time Channel Program
@@ -38,24 +40,24 @@ itmp ftgen 3, 0, 1024, 10, 1, 0, 0.3333, 0, 0.2, 0, 0.1429, 0, 0.10101
instr 1 /* sine */
kcps cpsmidib 2 ; note frequency
-asnd oscili 30000, kcps, 1
- out asnd
+asnd oscili .6, kcps, 1
+ outs asnd, asnd
endin
instr 2 /* band-limited sawtooth */
kcps cpsmidib 2 ; note frequency
-asnd oscili 30000, kcps, 2
- out asnd
+asnd oscili .6, kcps, 2
+ outs asnd, asnd
endin
instr 3 /* band-limited square */
kcps cpsmidib 2 ; note frequency
-asnd oscili 30000, kcps, 3
- out asnd
+asnd oscili .6, kcps, 3
+ outs asnd, asnd
endin
diff --git a/examples/phasor.csd b/examples/phasor.csd
index ef05ff4..4896692 100644
--- a/examples/phasor.csd
+++ b/examples/phasor.csd
@@ -1,49 +1,36 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o phasor.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Create an index that repeats once per second.
- kcps init 1
- kndx phasor kcps
- ; Read Table #1 with our index.
- ifn = 1
- ixmode = 1
- kfreq table kndx, ifn, ixmode
+ifn = 1 ;read table 1 with our index
+ixmode = 1
+kndx phasor p4
+kfrq table kndx, ifn, ixmode
+asig poscil .6, kfrq, 2 ;re-synthesize with sine
+ outs asig, asig
- ; Generate a sine waveform, use our table values
- ; to vary its frequency.
- a1 oscil 20000, kfreq, 2
- out a1
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 1025 -7 200 1024 2000 ;a line from 200 to 2,000
+f 2 0 16384 10 1;sine wave
-; Table #1, a line from 200 to 2,000.
-f 1 0 1025 -7 200 1024 2000
-; Table #2, a sine wave.
-f 2 0 16384 10 1
-
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+i 1 0 1 1 ;once per second
+i 1 2 2 .5 ;once per 2 seconds
+i 1 5 1 2 ;twice per second
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pindex-2.csd b/examples/pindex-2.csd
new file mode 100644
index 0000000..dc5a6d7
--- /dev/null
+++ b/examples/pindex-2.csd
@@ -0,0 +1,86 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pindex-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+; This UDO returns a pfield value but returns 0 if it does not exist.
+opcode mypvalue, i, i
+ index xin
+ inum pcount
+ if (index > inum) then
+ iout = 0.0
+ else
+ iout pindex index
+ endif
+
+ xout iout
+endop
+
+; Envelope UDO that reads parameters from a flexible number of pfields
+; Syntax: kenv flexlinseg ipstart
+; ipstart is the first pfield of the envelope
+; parameters. Reads remaining pfields (up to 21 of them).
+; kenv is the output envelope.
+
+opcode flexlinseg, k, i
+ ipstart xin
+
+ iep1 mypvalue ipstart
+ iep2 mypvalue ipstart + 1
+ iep3 mypvalue ipstart + 2
+ iep4 mypvalue ipstart + 3
+ iep5 mypvalue ipstart + 4
+ iep6 mypvalue ipstart + 5
+ iep7 mypvalue ipstart + 6
+ iep8 mypvalue ipstart + 7
+ iep9 mypvalue ipstart + 8
+ iepa mypvalue ipstart + 9
+ iepb mypvalue ipstart + 10
+ iepc mypvalue ipstart + 11
+ iepd mypvalue ipstart + 12
+ iepe mypvalue ipstart + 13
+ iepf mypvalue ipstart + 14
+ iepg mypvalue ipstart + 15
+ ieph mypvalue ipstart + 16
+ iepi mypvalue ipstart + 17
+ iepj mypvalue ipstart + 18
+ iepk mypvalue ipstart + 19
+ iepl mypvalue ipstart + 20
+
+ kenv linseg iep1, iep2, iep3, iep4, iep5, iep6, iep7, iep8, \
+ iep9, iepa, iepb, iepc, iepd, iepe, iepf, iepg, \
+ ieph, iepi, iepj, iepk, iepl
+ xout kenv
+endop
+
+instr 1
+; This instrument only requires 3 pfields but can accept up to 24.
+; (You will still get warnings about more than 3).
+kenv flexlinseg 4 ; envelope params start at p4
+aout oscili kenv*.5, 256, 1
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1
+
+i1 0 2 0.0 1.0 1.0 1.0 0.0
+i1 2 2 0.0 0.1 1.0 1.0 1.0 0.1 0.0
+i1 4 2 0.0 0.5 0.0 ; one problem is that "missing" pfields carry
+i1 6 2 0.0 0.5 0.0 ! ; now we can fix this problem with !
+i1 8 10 0.0 3.0 1.0 0.3 0.1 0.3 1.0 0.3 0.1 0.3 1.0 0.3 0.1 0.8 0.9 5.0 0.0
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pitch.csd b/examples/pitch.csd
index 3f4a51b..1464152 100644
--- a/examples/pitch.csd
+++ b/examples/pitch.csd
@@ -1,61 +1,52 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pitch.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 44100
-ksmps = 1
-nchnls = 1
-
-; Instrument #1 - play an audio file without effects.
-instr 1
- asig soundin "mary.wav"
- out asig
-endin
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #2 - track the pitch of an audio file.
-instr 2
- iupdte = 0.01
- ilo = 7
- ihi = 9
- idbthresh = 10
- ifrqs = 12
- iconf = 10
- istrt = 8
+instr 1 ;clean audio
- asig soundin "mary.wav"
+asig soundin p4
+ outs asig, asig
+endin
- ; Follow the audio file, get its pitch and amplitude.
- koct, kamp pitch asig, iupdte, ilo, ihi, idbthresh, ifrqs, iconf, istrt
+instr 2 ;use pitch
- ; Re-synthesize the audio file with a different sounding waveform.
- kamp2 = kamp * 10
- kcps = cpsoct(koct)
- a1 oscil kamp2, kcps, 1
-
- out a1
-endin
+iupdte = 0.001 ;high definition
+ilo = 6
+ihi = 10
+idbthresh = 10
+ifrqs = 12
+iconf = 10
+istrt = 8
+asig soundin p4
+koct, kamp pitch asig, iupdte, ilo, ihi, idbthresh, ifrqs, iconf, istrt
+kamp = kamp*.00005 ;lower volume
+kcps = cpsoct(koct)
+asig poscil kamp, kcps, 1 ;re-synthesize with sawtooth
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1: A different sounding waveform.
-f 1 0 32768 11 7 3 .7
-
-; Play Instrument #1, the audio file, for three seconds.
-i 1 0 3
-; Play Instrument #2, the "re-synthesized" waveform, for three seconds.
-i 2 3 3
+f1 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 ;sawtooth
+
+i 1 0 3 "fox.wav"
+i 2 3 3 "fox.wav"
+i 1 6 3 "mary.wav"
+i 2 9 3 "mary.wav"
+i 1 12 3 "beats.wav"
+i 2 15 3 "beats.wav"
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pitchamdf.csd b/examples/pitchamdf.csd
index f4e0810..348d55d 100644
--- a/examples/pitchamdf.csd
+++ b/examples/pitchamdf.csd
@@ -1,56 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pitchamdf.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; synth waveform
-giwave ftgen 2, 0, 1024, 10, 1, 1, 1, 1
+instr 1 ;clean audio
-; Instrument #1 - play an audio file with no effects.
-instr 1
- ; get input signal with original freq.
- asig soundin "mary.wav"
-
- out asig
+asig soundin p4
+ outs asig, asig
endin
-; Instrument #2 - play the synth waveform using the
-; same pitch and amplitude as the audio file.
-instr 2
- ; get input signal with original freq.
- asig soundin "mary.wav"
+instr 2 ;use pitch
- ; lowpass-filter
- asig tone asig, 1000
- ; extract pitch and envelope
- kcps, krms pitchamdf asig, 150, 500, 200
- ; "re-synthesize" with the synth waveform, giwave.
- asig1 oscil krms, kcps, giwave
+asig soundin p4
+asig tone asig, 1000 ;lowpass-filter
+kcps, krms pitchamdf asig, 100, 500, 200
+asig poscil krms, kcps, 1 ;re-synthesize with sawtooth
+ outs asig, asig
- out asig1
endin
-
-
</CsInstruments>
<CsScore>
-
-; Play Instrument #1, the audio file, for three seconds.
-i 1 0 3
-; Play Instrument #2, the "re-synthesized" waveform, for three seconds.
-i 2 3 3
+f1 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 ;sawtooth
+
+i 1 0 3 "fox.wav"
+i 2 3 3 "fox.wav"
+i 1 6 3 "mary.wav"
+i 2 9 3 "mary.wav"
+i 1 12 3 "beats.wav"
+i 2 15 3 "beats.wav"
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/plate.csd b/examples/plate.csd
new file mode 100644
index 0000000..9c6b3e7
--- /dev/null
+++ b/examples/plate.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+;-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+ -o plate.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+; Note: this example is heavy on CPU
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ab diskin2 "beats.wav", 1
+al,ar platerev 1, 2, p4, 0.73, 1.0, 5.0, 0.001, ab,ab
+ outs al*.25,ar*.25
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8 -2 0.3 0.3875 0.39274 0.32 0.85714 0.78548
+f2 0 8 -2 0.2 0.666667 1.57097 0.24 0.75 0.78548
+i1 0 4 1
+i1 + 4 2
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/plltrack.csd b/examples/plltrack.csd
new file mode 100644
index 0000000..a5a816f
--- /dev/null
+++ b/examples/plltrack.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o plltrack.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kd = p4
+a1 diskin2 "fox.wav", 1,0,1
+apitch, aloc plltrack a1, kd
+krms rms a1
+krms port krms, 0.01
+asig buzz krms, apitch, 10, 1
+ outs asig, asig ;mix in some dry signal as well
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 65536 10 1 ;sine wave
+
+i 1 0 6 0.1
+i 1 7 6 0.3 ;more feedback
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pluck.csd b/examples/pluck.csd
index d02ce21..ade6c61 100644
--- a/examples/pluck.csd
+++ b/examples/pluck.csd
@@ -1,39 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pluck.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 20000
- kcps = 440
- icps = 440
- ifn = 0
- imeth = 1
- a1 pluck kamp, kcps, icps, ifn, imeth
- out a1
-endin
+kcps = 220
+icps = 220
+ifn = 0
+imeth = p4
+asig pluck 0.7, 220, 220, ifn, imeth, .1, 10
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for two seconds.
-i 1 0 2
+i 1 0 5 1
+i 1 5 5 4 ;needs 2 extra parameters (iparm1, iparm2)
+i 1 10 5 6
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/polynomial.csd b/examples/polynomial.csd
index 68cf875..208d959 100644
--- a/examples/polynomial.csd
+++ b/examples/polynomial.csd
@@ -1,32 +1,107 @@
<CsoundSynthesizer>
<CsOptions>
-; no sound output
- -n
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o polynomial.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100 ; audio rate is not important
-kr = 10 ; execute the statements in instr 1 ten times per second
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-instr 1
- ; ax will vary from 1 to 10
- ax init 1
-
- ; ay = ax^3 + 2ax^2 + 3ax + 4
- ay polynomial ax, 4, 3, 2, 1
+; The polynomial y=x^n where n is odd always produces a curve
+; that traverses the range [-1, 1] when the input is within
+; the same range. Therefore, we can use one of these curves
+; to make a nonlinear phasor that repeatedly reads a table
+; from beginning to end like a linear phasor (maintaining
+; continuity) but that distorts the waveform in the table.
+
+instr 4 ; This instrument demonstrates phase distortion with x^3
+
+idur = p3
+iamp = p4
+ifreq = p5
+itable = p6
- ; convert our a-rate signals to k-rate values so that we can print
- ky downsamp ay
- kx downsamp ax
- printf "%d: %d\n", kx, kx, ky
+aenv linseg 0, .001, 1.0, idur - .051, 1.0, .05, 0 ; declicking envelope
+aosc phasor ifreq ; create a linear phasor
+apd polynomial aosc, 0, 0, 0, 1 ; distort the phasor with x^3
+aout tablei apd, itable, 1 ; read a sine table with the nonlinear phasor
+ outs aenv*aout*iamp, aenv*aout*iamp
+
+endin
- ax = ax + 1
+instr 5 ; This instrument demonstrates phase distortion with x^11
+
+idur = p3
+iamp = p4
+ifreq = p5
+itable = p6
+
+aenv linseg 0, .001, 1.0, idur - .051, 1.0, .05, 0 ; declicking envelope
+aosc phasor ifreq ; create a linear phasor
+apd polynomial aosc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ; distort the phasor with x^11
+aout tablei apd, itable, 1 ; read a sine table with the nonlinear phasor
+ outs aenv*aout*iamp, aenv*aout*iamp
+
endin
+instr 6 ; This instrument crossfades between a pure sine and one distorted with x^11
+
+idur = p3
+iamp = p4
+ifreq = p5
+itable = p6
+
+aenv linseg 0, .001, 1.0, idur - .051, 1.0, .05, 0 ; declicking envelope
+aosc phasor ifreq ; create a linear phasor
+aout3 tablei aosc, itable, 1 ; read a sine table without the linear phasor
+apd11 polynomial aosc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ; distort the phasor with x^11
+aout11 tablei apd11, itable, 1 ; read a sine table with the nonlinear phasor
+kamount linseg 1.0, 0.05, 0.9, 1.0, 0.0 ; crossfade between two outputs
+aout = aout3*kamount + aout11*(1.0 - kamount)
+ outs aenv*aout*iamp, aenv*aout*iamp
+
+endin
</CsInstruments>
<CsScore>
+f1 0 16385 10 1 ; sine wave
+
+; descending "just blues" scale
+
+t 0 100
+i4 0 .333 .7 512 1
+i. + . . 448
+i. + . . 384
+i. + . . 360
+i. + . . 341.33
+i. + . . 298.67
+i. + 2 . 256
+s
+
+t 0 100
+i5 0 .333 .7 512 1
+i. + . . 448
+i. + . . 384
+i. + . . 360
+i. + . . 341.33
+i. + . . 298.67
+i. + 2 . 256
+s
+
+t 0 100
+i6 0 .333 .7 512 1
+i. + . . 448
+i. + . . 384
+i. + . . 360
+i. + . . 341.33
+i. + . . 298.67
+i. + 2 . 256
-i1 0 1
e
</CsScore>
diff --git a/examples/pop.csd b/examples/pop.csd
new file mode 100644
index 0000000..57a7085
--- /dev/null
+++ b/examples/pop.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pop.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
+
+stack 100000
+
+instr 1
+
+a1 oscils 0.7, 220, 0
+k1 line 0, p3, 1
+ push "blah", 123.45, a1, k1
+ push rnd(k1)
+
+k_rnd pop
+S01, i01, a01, k01 pop
+ printf_i "S01 = '%s', i01 = %g\n", 1, S01, i01
+ktrig metro 5.0
+ printf "k01 = %.3f, k_rnd = %.3f\n", ktrig, k01, k_rnd
+ outs a01, a01
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/port.csd b/examples/port.csd
new file mode 100644
index 0000000..1dc5f45
--- /dev/null
+++ b/examples/port.csd
@@ -0,0 +1,35 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o port.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
+
+instr 1
+
+aout diskin2 "fox.wav",1, 0, 1
+kf,ka ptrack aout, 512 ; pitch track with winsize=1024
+kcps port kf, 0.01 ; smooth freq
+kamp port ka, 0.01 ; smooth amp
+; drive an oscillator
+asig poscil ampdb(kamp)*0dbfs, kcps, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+; simple sine wave
+f 1 0 4096 10 1
+
+i 1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/poscil.csd b/examples/poscil.csd
index 2dd626b..63dafe3 100644
--- a/examples/poscil.csd
+++ b/examples/poscil.csd
@@ -1,40 +1,36 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o poscil.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+seed 0
+gisine ftgen 0, 0, 2^10, 10, 1
-; Instrument #1 - a basic oscillator.
instr 1
- kamp = 10000
- kcps = 440
- ifn = 1
- a1 poscil kamp, kcps, ifn
- out a1
-endin
+ipeak random 0, 1 ;where is the envelope peak
+asig poscil .8, 220, gisine
+aenv transeg 0, p3*ipeak, 6, 1, p3-p3*ipeak, -6, 0
+aL,aR pan2 asig*aenv, ipeak ;pan according to random value
+ outs aL, aR
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+i1 0 5
+i1 4 5
+i1 8 5
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/poscil3.csd b/examples/poscil3.csd
index 76fe527..d8c1ae6 100644
--- a/examples/poscil3.csd
+++ b/examples/poscil3.csd
@@ -1,40 +1,32 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o poscil3.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - a basic oscillator.
-instr 1
- kamp = 10000
- kcps = 440
- ifn = 1
+giSine ftgen 0, 0, 2^10, 10, 1
- a1 poscil3 kamp, kcps, ifn
- out a1
-endin
+instr 1
+krnd randomh 40, 440, 1 ; produce random values
+ain poscil3 .6, krnd, giSine
+kline line 1, p3, 0 ; straight line
+aL,aR pan2 ain, kline ; sent across image
+ outs aL, aR
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
+i1 0 10
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pow.csd b/examples/pow.csd
index 2a103f7..eb05a16 100644
--- a/examples/pow.csd
+++ b/examples/pow.csd
@@ -1,35 +1,36 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o pow.wav -W ;;; for file output any platform
+;-o pow.wav ; output to audio file
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; Lo-Fi sound
+
+kpow = 10 ;exponent
+kbase line 1, p3, 1.4 ;vary the base
+kQuantize pow kbase, kpow
+kQuantize = kQuantize*0.5 ;half the number of steps for each side of a bipolar signal
+printk2 kQuantize
+asig diskin2 "fox.wav", 1, 0, 1 ;loop the fox
+asig = round(asig * kQuantize) / kQuantize ;quantize and scale audio signal
+ outs asig, asig
-; Instrument #1.
-instr 1
- ; This could also be expressed as: i1 = 2 ^ 12
- i1 pow 2, 12
-
- print i1
endin
-
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for one second.
-i 1 0 1
-e
-
+i1 0 19.2
+e
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/powoftwo.csd b/examples/powoftwo.csd
index 1c50509..4649b86 100644
--- a/examples/powoftwo.csd
+++ b/examples/powoftwo.csd
@@ -1,33 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o powoftwo.wav -W ;;; for file output any platform
+; -o poweroftwo.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- i1 = powoftwo(12)
- print i1
-endin
+instr 1 ; bit reduction for Lo-Fi sound
+iBits = p5 ;bit depth
+iQuantize = powoftwo(iBits) ;find number of discrete steps for this bit depth
+iQuantize = iQuantize*0.5 ;half the number of steps for each side of a bipolar signal
+print iQuantize
+asig soundin "fox.wav"
+asig = round(asig * iQuantize) / iQuantize ;quantize audio signal (bit reduce)
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+; bits
+i1 0 3 16
+i1 ^+3 . 12
+i1 ^+3 . 8
+i1 ^+3 . 4
+i1 ^+3 . 2
+i1 ^+3 . 1
-; Play Instrument #1 for one second.
-i 1 0 1
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/prepiano.csd b/examples/prepiano.csd
index 065de44..8606f28 100644
--- a/examples/prepiano.csd
+++ b/examples/prepiano.csd
@@ -1,35 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o prepiano.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 2;
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
;; fund NS detune stiffness decay loss (bndry) (hammer) scan prep
aa,ab prepiano 60, 3, 10, p4, 3, 0.002, 2, 2, 1, 5000, -0.01, p5, p6, 0, 0.1, 1, 2
- outs aa*.75, ab*.75
+ outs aa*.2, ab*.2
+
endin
</CsInstruments>
-
<CsScore>
f1 0 8 2 1 0.6 10 100 0.001 ;; 1 rattle
f2 0 8 2 1 0.7 50 500 1000 ;; 1 rubber
-i1 0.0 0.5 1 0.09 20
-i1 0.5 . -1 0.09 40 ;; 1 -> skip initialisation
-i1 1.0 . -1 0.09 60
-i1 1.5 . -1 0.09 80
-i1 2.0 1.8 -1 0.09 100
+i1 0.0 1 1 0.09 20
+i1 1 . -1 0.09 40 ;; 1 -> skip initialisation
+i1 2 . -1 0.09 60
+i1 3 . -1 0.09 80
+i1 4 1.8 -1 0.09 100
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/print.csd b/examples/print.csd
index cf57429..7f4469c 100644
--- a/examples/print.csd
+++ b/examples/print.csd
@@ -1,38 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o print.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Print the fourth p-field.
- print p4
-endin
+irand = rnd(3) ;generate a random number from 0 to 3
+print irand ;print it
+asig poscil .7, 440*irand, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f1 0 16384 10 1 ;sine wave
-; p4 = value to be printed.
-; Play Instrument #1 for one second, p4 = 50.375.
-i 1 0 1 50.375
-; Play Instrument #1 for one second, p4 = 300.
-i 1 1 1 300
-; Play Instrument #1 for one second, p4 = -999.
-i 1 2 1 -999
+i 1 0 1
+i 1 2 1
+i 1 4 1
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/printf.csd b/examples/printf.csd
new file mode 100644
index 0000000..c0f5b80
--- /dev/null
+++ b/examples/printf.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o printf.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+Sfile strget p4
+ivld filevalid Sfile
+
+if ivld=0 then
+ printf_i "Audiofile '%s' does not exist!\n", 1, Sfile
+else
+asig diskin2 Sfile, 1
+ outs asig, asig
+endif
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+i 1 0 3 "frox.wav";file does not exist!!!
+i 1 + 3 "fox.wav";but this one certainly does...
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/printk2.csd b/examples/printk2.csd
index c636230..ed32945 100644
--- a/examples/printk2.csd
+++ b/examples/printk2.csd
@@ -1,41 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o printk2.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 44100
-ksmps = 1
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Change a value linearly from 0 to 10,
- ; over the period defined by p3.
- kval1 line 0, p3, 10
- ; If kval1 is greater than or equal to 5,
- ; then kval=2, else kval=1.
- kval2 = (kval1 >= 5 ? 2 : 1)
-
- ; Print the value of kval2 when it changes.
- printk2 kval2
-endin
+kval randomh 0, 1.2, 20 ;choose between 0 and 1.2
+if kval >0 && kval<=.5 then ;3 possible outcomes
+ kval = 1
+elseif kval >.5 && kval<=1 then
+ kval =2
+elseif kval >1 then
+ kval =3
+endif
+printk2 kval ;print value when it changes
+asig poscil .7, 440*kval, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f1 0 16384 10 1
-; Play Instrument #1 for 5 seconds.
i 1 0 5
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/product.csd b/examples/product.csd
new file mode 100644
index 0000000..33b1962
--- /dev/null
+++ b/examples/product.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o product.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisine ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+a1 oscili 1, 10.0, gisine ;combine 3 sinusses
+a2 oscili 1, 1.0, gisine ;at different rates
+a3 oscili 1, 3.0, gisine
+ares product a1, a2, a3
+
+ares = ares*10000 ;scale result and
+asig poscil .5, ares+110, gisine ;add to frequency
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pset-midi.csd b/examples/pset-midi.csd
new file mode 100644
index 0000000..39c0a3d
--- /dev/null
+++ b/examples/pset-midi.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 --midi-key-oct=4 --midi-velocity=5 ;;;realtime audio out and virtual midi keyboard
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pset-midi.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
+
+instr 1
+
+ pset 0, 0, 3600, 0, 0, 0
+iinstrument = p1
+istarttime = p2
+iattack = 0.005
+isustain = p3
+irelease = 0.06
+p3 = isustain + iattack + irelease
+kdamping linsegr 0.0, iattack, 1.0, isustain, 1.0, irelease, 0.0
+
+ioctave = p4
+ifrequency = cpsoct(ioctave)
+iamplitude = p5*.15 ;lower volume
+
+print p1, p2, p3, p4, p5
+asig STKBandedWG ifrequency, iamplitude
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 0 60 ; runs 69 seconds
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pset.csd b/examples/pset.csd
new file mode 100644
index 0000000..7766fa0
--- /dev/null
+++ b/examples/pset.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pset.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
+
+instr 1 ;this shows an example with non-midi use
+
+pset 1, 0, 1, 220, 0.5
+asig poscil p5, p4, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 1024 10 1 ;sine wave
+
+i 1 0 1
+i 1 1 1 440
+i 1 2 1 440 0.1
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/ptable.csd b/examples/ptable.csd
new file mode 100644
index 0000000..f7948cc
--- /dev/null
+++ b/examples/ptable.csd
@@ -0,0 +1,48 @@
+<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 table.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+; Initialize the global variables.
+sr = 44100
+kr = 4410
+ksmps = 10
+nchnls = 1
+
+; Instrument #1.
+instr 1
+ ; Vary our index linearly from 0 to 1.
+ kndx line 0, p3, 1
+
+ ; Read Table #1 with our index.
+ ifn = 1
+ ixmode = 1
+ kfreq ptable kndx, ifn, ixmode
+
+ ; Generate a sine waveform, use our table values
+ ; to vary its frequency.
+ a1 oscil 20000, kfreq, 2
+ out a1
+endin
+
+
+</CsInstruments>
+<CsScore>
+
+; Table #1, a line from 200 to 2,000.
+f 1 0 1025 -7 200 1024 2000
+; Table #2, a sine wave.
+f 2 0 16384 10 1
+
+; Play Instrument #1 for 2 seconds.
+i 1 0 2
+e
+
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/ptablei.csd b/examples/ptablei.csd
new file mode 100644
index 0000000..5108cc7
--- /dev/null
+++ b/examples/ptablei.csd
@@ -0,0 +1,66 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tablei.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+seed 0 ;generate new values every time the instr is played
+
+instr 1
+
+ifn = p4
+isize = p5
+ithresh = 0.5
+
+itemp ftgen ifn, 0, isize, 21, 2
+
+iwrite_value = 0
+i_index = 0
+
+loop_start:
+ iread_value ptablei i_index, ifn
+
+ if iread_value > ithresh then
+ iwrite_value = 1
+ else
+ iwrite_value = -1
+ endif
+ptableiw iwrite_value, i_index, ifn
+loop_lt i_index, 1, isize, loop_start
+ turnoff
+
+endin
+
+instr 2
+
+ifn = p4
+isize = ftlen(ifn)
+prints "Index\tValue\n"
+
+i_index = 0
+loop_start:
+ ivalue tablei i_index, ifn
+ prints "%d:\t%f\n", i_index, ivalue
+
+ loop_lt i_index, 1, isize, loop_start ;read table 1 with our index
+
+aout oscili .5, 100, ifn ;use table to play the polypulse
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+i 1 0 1 100 16
+i 2 0 2 100
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/ptrack.csd b/examples/ptrack.csd
index f8b5746..bdd9c2e 100644
--- a/examples/ptrack.csd
+++ b/examples/ptrack.csd
@@ -1,35 +1,38 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No display
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o ptrack.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr= 44100
-ksmps = 16
-nchnls= 1
-
-;Example by Victor Lazzarini 2007
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
instr 1
- a1 inch 1 ; take an input signal
- kf,ka ptrack a1, 512 ; pitch track with winsize=1024
- kcps port kf, 0.01 ; smooth freq
- kamp port ka, 0.01 ; smooth amp
- ; drive an oscillator
- aout oscili ampdb(kamp)*0dbfs, kcps, 1
+ihop = p4
+aout diskin2 "fox.wav",1, 0, 1
+kf,ka ptrack aout, ihop ; pitch track with different hopsizes
+kcps port kf, 0.01 ; smooth freq
+kamp port ka, 0.01 ; smooth amp
+; drive an oscillator
+asig poscil ampdb(kamp)*0dbfs, kcps, 1
+ outs asig, asig
- out aout
endin
-
</CsInstruments>
<CsScore>
; simple sine wave
f 1 0 4096 10 1
-i 1 0 3600
+i 1 0 5 128
+i 1 6 5 512
+i 1 12 5 1024
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/push.csd b/examples/push.csd
new file mode 100644
index 0000000..6edd560
--- /dev/null
+++ b/examples/push.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o push.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
+
+stack 100000
+
+instr 1
+
+a1 oscils 0.7, 220, 0
+k1 line 0, p3, 1
+ push "blah", 123.45, a1, k1
+ push rnd(k1)
+
+k_rnd pop
+S01, i01, a01, k01 pop
+ printf_i "S01 = '%s', i01 = %g\n", 1, S01, i01
+ktrig metro 5.0
+ printf "k01 = %.3f, k_rnd = %.3f\n", ktrig, k01, k_rnd
+ outs a01, a01
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/puts.csd b/examples/puts.csd
new file mode 100644
index 0000000..276632a
--- /dev/null
+++ b/examples/puts.csd
@@ -0,0 +1,35 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o puts.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kcount init 440
+ktrig metro 10
+kcount = kcount + ktrig
+String sprintfk "frequency in Hertz : %d \n", kcount
+ puts String, kcount
+ asig poscil .7, kcount, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 16384 10 1
+
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/pvadd.csd b/examples/pvadd.csd
index 068b1da..7271774 100755..100644
--- a/examples/pvadd.csd
+++ b/examples/pvadd.csd
@@ -1,43 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvadd.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
; analyze "fox.wav" with PVANAL first
- igatefn = p4
- ktime line 0, p3, p3
-asig pvadd ktime, 1, "fox.pvoc", 1, 300, 2, 2, 0, 0, igatefn
+igatefn = p4
+ktime line 0, p3, p3
+asig pvadd ktime, 1, "fox.pvx", 1, 300, 2, 2, 0, 0, igatefn
+ outs asig*3, asig*3
- out asig*3
endin
-
-
</CsInstruments>
<CsScore>
-
-; Table #1, an ordinary sine wave.
-f 1 0 16384 10 1
+f 1 0 16384 10 1 ;sine wave
f 2 0 512 5 1 256 .001
f 3 0 512 7 0 256 1 256 1
-; Play Instrument #1 for three seconds.
i 1 0 2.8 2
i 1 + 2.8 3
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pvbufread.csd b/examples/pvbufread.csd
index 8e2c1a1..2c1de17 100755..100644
--- a/examples/pvbufread.csd
+++ b/examples/pvbufread.csd
@@ -1,37 +1,32 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvbufread.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
-; analyze "fox.wav" and "mary.wav" with PVANAL first
+; analyze "fox.wav" and "flute.aiff" with PVANAL first
+ktime1 line 0, p3, .8 ; use a part of "flute.pvx" file
+ktime2 line 0, p3, 1.2 ; use a part of "beats.pvx" file
+kcross expon .03, p3, 1
+ pvbufread ktime1, "flute.pvx"
+asig pvcross ktime2, 1, "beats.pvx", 1-kcross, kcross
+ outs asig, asig
-ktime1 line 0, p3, 2.8 ; used as index in the "mary.pvoc" file
-ktime2 line 0, p3, 3 ; used as index in the "fox.pvoc" file
-kcross expon .001, p3, 1
- pvbufread ktime1, "mary.pvoc"
-apv pvcross ktime2, 1, "fox.pvoc", 1-kcross, kcross
-
- out apv
endin
-
-
</CsInstruments>
-<CsScore>.
+<CsScore>
i 1 0 3
-i 1 + 1.5
+i 1 + 10
e
</CsScore>
diff --git a/examples/pvcross.csd b/examples/pvcross.csd
index e9c8426..d5f2602 100755..100644
--- a/examples/pvcross.csd
+++ b/examples/pvcross.csd
@@ -1,37 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvcross.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
-; analyze "fox.wav" and "mary.wav" with PVANAL first
+; analyze "beats.wav", "flute.aiff" and "mary.wav" with PVANAL first
+ktime1 line 0, p3, 2 ; used as index in the "beats.pvx" file
+ktime2 line 0, p3, 2.6 ; used as index in the "flute.pvx" or "mary.pvx"
+ pvbufread ktime1, "beats.pvx" ;take only amplitude from "beats.pvx"
+if p4 = 0 then
+asig pvcross ktime2, 1, "flute.pvx", 1, 0 ;and keep freqs of "flute.aiff"
+asig = asig*.8 ;scale output
+else
+asig pvcross ktime2, 1, "mary.pvx", 1, 0 ;and keep freqs of "mary.wav"
+asig = asig*.4 ;scale output
+endif
+ outs asig, asig
-ktime1 line 0, p3, 2.8 ; used as index in the "fox.pvoc" file
-ktime2 line 0, p3, 3 ; used as index in the "mary.pvoc" file
-kcross expon .001, p3, 1
- pvbufread ktime1, "fox.pvoc"
-apv pvcross ktime2, 1, "mary.pvoc", 1-kcross, kcross
-
- out apv
endin
-
-
</CsInstruments>
-<CsScore>.
-i 1 0 3
-i 1 + 1.5
+<CsScore>
+i 1 0 3 0
+i 1 + 3 1
e
</CsScore>
diff --git a/examples/pvinterp.csd b/examples/pvinterp.csd
index 002ed33..648f7df 100755..100644
--- a/examples/pvinterp.csd
+++ b/examples/pvinterp.csd
@@ -1,37 +1,32 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvinterp.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
-; analyze "fox.wav" and "mary.wav" with PVANAL first
+; analyze "fox.wav" and "flute.aiff" with PVANAL first
+ktime1 line 0, p3, 2.8 ; used as index in the "fox.pvx" file
+ktime2 line 0, p3, 3 ; used as index in the "flute.pvx" file
+kinterp line 1, p3, 0
+ pvbufread ktime1, "fox.pvx"
+asig pvinterp ktime2,1,"flute.pvx",.9, 3, .6, 1, kinterp,1-kinterp
+ outs asig, asig
-ktime1 line 0, p3, 2.8 ; used as index in the "fox.pvoc" file
-ktime2 line 0, p3, 3 ; used as index in the "mary.pvoc" file
-kinterp linseg 1, p3*.15, 1, p3*.35, 0, p3*.25, 0, p3*.15, 1, p3*.1, 1
- pvbufread ktime1, "fox.pvoc"
-apv pvinterp ktime2,1,"mary.pvoc",1,1.065,1,.75,1-kinterp,1-kinterp
-
- out apv
endin
-
-
</CsInstruments>
-<CsScore>.
+<CsScore>
i 1 0 3
-i 1 + 5
+i 1 + 10
e
</CsScore>
diff --git a/examples/pvoc.csd b/examples/pvoc.csd
index bcbac01..cd53e66 100755..100644
--- a/examples/pvoc.csd
+++ b/examples/pvoc.csd
@@ -1,36 +1,32 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvoc.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
; analyze "fox.wav" with PVANAL first
+ispec = p4
+ktime line 0, p3, 1.55
+kfrq line .8, p3, 2
+asig pvoc ktime, kfrq, "fox.pvx", ispec
+ outs asig, asig
-ktime line 0, p3, 1.6
-asig pvoc ktime, 1, "fox.pvoc", 1
-
- out asig
endin
-
-
</CsInstruments>
<CsScore>
-i 1 0 6
+i 1 0 6 0
+i 1 + 6 1 ;preserve spectral envelope
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pvread.csd b/examples/pvread.csd
index 3e6e8f9..9843faa 100755..100644
--- a/examples/pvread.csd
+++ b/examples/pvread.csd
@@ -1,39 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvread.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
; analyze "fox.wav" with PVANAL first
+ibin = p4
+ktime line 0, p3, 2.8
+kfreq, kamp pvread ktime, "fox.pvx", ibin ;read data from 7th analysis bin.
+asig poscil kamp, kfreq, 1 ;function 1 is a stored sine
+ outs asig*5, asig*5 ;compensate loss of volume
-ktime line 0, p3, 2.8
-kfreq, kamp pvread ktime, "fox.pvoc", 7 ; read data from 7th analysis bin.
-asig oscili kamp, kfreq, 1 ; function 1 is a stored sine
-
- out asig*8
endin
-
-
</CsInstruments>
<CsScore>
-;sine
+;sine wave
f1 0 4096 10 1
-i 1 0 6
+i 1 0 6 7
+i 1 + 6 15
+i 1 + 2 25
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pvsanal.csd b/examples/pvsanal.csd
index 87b23f0..e1e07cf 100755..100644
--- a/examples/pvsanal.csd
+++ b/examples/pvsanal.csd
@@ -1,39 +1,44 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d ;;;RT audio I/O with MIDI in
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvsanal.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
-ksmps = 16
-nchnls = 1
+ksmps = 32
+nchnls = 2
0dbfs = 1
-;; example written by joachim heintz 2009
+instr 1 ;pvsanal has no influence when there is no transformation of original sound
-instr 1
-ifftsize = 1024
-ioverlap = ifftsize / 4
-iwinsize = ifftsize
-iwinshape = 1; von-Hann window
-Sfile = "fox.wav"
-ain soundin Sfile
-fftin pvsanal ain, ifftsize, ioverlap, iwinsize, iwinshape; fft-analysis of the audio-signal
-fftblur pvscale fftin, p4, p5, p6; scale
-aout pvsynth fftblur; resynthesis
- out aout
+ifftsize = p4
+ioverlap = ifftsize / 4
+iwinsize = ifftsize
+iwinshape = 1 ;von-Hann window
+Sfile = "fox.wav"
+ain soundin Sfile
+fftin pvsanal ain, ifftsize, ioverlap, iwinsize, iwinshape ;fft-analysis of the audio-signal
+fftblur pvscale fftin, p5 ;scale
+aout pvsynth fftblur ;resynthesis
+ outs aout, aout
endin
</CsInstruments>
<CsScore>
-i 1 0 3 1 0 1; original sound
-i 1 3 3 1.5 0 2; fifth higher without ...
-i 1 6 3 1.5 1 2; ... and with different ...
-i 1 9 3 1.5 2 5; ... kinds of formant preservation
+s
+i 1 0 3 512 1 ;original sound - ifftsize of pvsanal does not have any influence
+i 1 3 3 1024 1 ;even with different
+i 1 6 3 2048 1 ;settings
+
+s
+i 1 0 3 512 1.5 ;but transformation - here a fifth higher
+i 1 3 3 1024 1.5 ;but with different settings
+i 1 6 3 2048 1.5 ;for ifftsize of pvsanal
+
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pvsbuffer.csd b/examples/pvsbuffer.csd
index 6ba6438..6ba6438 100755..100644
--- a/examples/pvsbuffer.csd
+++ b/examples/pvsbuffer.csd
diff --git a/examples/pvsbufread2.csd b/examples/pvsbufread2.csd
new file mode 100644
index 0000000..024564f
--- /dev/null
+++ b/examples/pvsbufread2.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+</CsOptions>
+
+<CsInstruments>
+ksmps = 64
+0dbfs = 1
+nchnls = 2
+
+instr 1
+kcnt init 0
+ifftsize = 2048
+ihop = ifftsize/4
+
+a1 diskin2 "beats.wav", 1, 0, 1
+a1 = a1*0.5
+fsig1 pvsanal a1, ifftsize, ihop, ifftsize, 1
+ih, kt pvsbuffer fsig1, 10
+
+fsig2 pvsbufread2 kt, ih, 1, 1
+fsig3 pvsbufread2 kt, ih, 2, 2
+
+a2 pvsynth fsig3
+a3 pvsynth fsig2
+
+ outs a2, a3
+endin
+</CsInstruments>
+
+<CsScore>
+f1 0 2048 -7 0 128 1.1 128 0.5 256 1.8 512 1.1 1024 0.1
+f2 0 2048 -7 1 128 0.2 128 0.05 256 0.5 512 0.9 1024 0.1
+
+i1 0 60
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pvsdiskin.csd b/examples/pvsdiskin.csd
index 1217216..995b5ea 100755..100644
--- a/examples/pvsdiskin.csd
+++ b/examples/pvsdiskin.csd
@@ -1,32 +1,30 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d ;;;RT audio I/O with MIDI in
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvsdiskin.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
instr 1
; create a PVOC-EX (*.pvx) file with PVANAL first
-ktscale line 1, p3, .05
-fsigr pvsdiskin "fox.pvx", ktscale, 1 ; read PVOCEX file with tscale and gain = 1
-aout pvsynth fsigr ; resynthesise it
- out aout
-endin
+ktscale line 1, p3, .05 ;change speed
+fsigr pvsdiskin "fox.pvx", ktscale, 1 ;read PVOCEX file
+aout pvsynth fsigr ;resynthesise it
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
-i 1 0 3
+i 1 0 10
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pvsfread.csd b/examples/pvsfread.csd
new file mode 100644
index 0000000..c9e2c6d
--- /dev/null
+++ b/examples/pvsfread.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pvsfread.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
+
+instr 1
+; create a PVOC-EX (*.pvx) file with PVANAL first
+idur filelen "kickroll.pvx" ;find duration of (stereo) analysis file
+kpos line 0,p3,idur ;to ensure we process whole file
+fsigr pvsfread kpos,"kickroll.pvx", 1 ;create fsig from right channel
+aout pvsynth fsigr ;resynthesise it
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 10
+i 1 11 1
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pvsftr.csd b/examples/pvsftr.csd
index 6f31359..b16584a 100755..100644
--- a/examples/pvsftr.csd
+++ b/examples/pvsftr.csd
@@ -1,46 +1,46 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d ;;;RT audio I/O with MIDI in
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvsftr.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gifil ftgen 0, 0, 0, -1, "fox.wav", 0, 0, 1
instr 1
-inbins = 512
-ifn ftgen 0,0,inbins,10,1 ; make ftable
-fsrc pvsdiskin "fox2.pvx", 1, 1 ; read PVOCEX file with tscale and gain = 1
-kflag pvsftw fsrc,ifn ; export amps to table,
-kamp init 0
-if kflag==0 kgoto contin ; only proc when frame is ready
- ; kill lowest bins, for obvious effect
- tablew kamp,1,ifn
- tablew kamp,2,ifn
- tablew kamp,3,ifn
- tablew kamp,4,ifn
-; read modified data back to fsrc
- pvsftr fsrc,ifn
-contin:
-; and resynth
-aout pvsynth fsrc
- out aout
+ifftsize = 1024 ;fft size
+ioverlap = 256 ;overlap
+knewamp = 0 ;new value for amplitudes
-endin
+;create fsig stream from function table
+fsrc pvstanal 1, 1, 1, gifil, 0, 0, 0, ifftsize, ioverlap, 0
+ifn ftgen 0, 0, ifftsize/2, 2, 0 ;create empty function table
+kflag pvsftw fsrc,ifn ;export amps to table
+;overwrite the first 10 bins each time the table has been filled new
+if kflag == 1 then
+kndx = 0
+kmaxbin = 10
+loop:
+tablew knewamp, kndx, ifn
+loop_le kndx, 1, kmaxbin, loop
+endif
+ pvsftr fsrc,ifn ;read modified data back to fsrc
+aout pvsynth fsrc ;and resynth
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
-
-i 1 0 3
+i 1 0 4
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pvsftw.csd b/examples/pvsftw.csd
index bbca4c1..4c4c222 100755..100644
--- a/examples/pvsftw.csd
+++ b/examples/pvsftw.csd
@@ -1,29 +1,27 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d ;;;RT audio I/O with MIDI in
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvsftw.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
instr 1
-inbins = 512
-ifn ftgen 0,0,inbins,10,1 ; make ftable
-fsrc pvsdiskin "fox2.pvx", 1, 1 ; read PVOCEX file with tscale and gain = 1
-kflag pvsftw fsrc,ifn ; export amps to table,
+inbins = 512
+ifn ftgen 0,0,inbins,10,1 ; make ftable
+fsrc pvsdiskin "fox.pvx", 1, 1 ; read PVOCEX file
+kflag pvsftw fsrc,ifn ; export amps to table,
kamp init 0
-if kflag==0 kgoto contin ; only proc when frame is ready
- ; kill lowest bins, for obvious effect
- tablew kamp,1,ifn
+if kflag==0 kgoto contin ; only proc when frame is ready
+ tablew kamp,1,ifn ; kill lowest bins, for obvious effect
tablew kamp,2,ifn
tablew kamp,3,ifn
tablew kamp,4,ifn
@@ -32,7 +30,7 @@ if kflag==0 kgoto contin ; only proc when frame is ready
contin:
; and resynth
aout pvsynth fsrc
- out aout
+ outs aout, aout
endin
diff --git a/examples/pvsgain.csd b/examples/pvsgain.csd
new file mode 100644
index 0000000..1936766
--- /dev/null
+++ b/examples/pvsgain.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pvsgain.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kgain = p4
+asig diskin2 "beats.wav", 1
+fsig pvsanal asig, 1024, 256, 1024, 1; analyse it
+ftps pvsgain fsig, kgain ; amplify it
+atps pvsynth ftps ; synthesise it
+ outs atps, atps
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 2 .5
+i1 + 2 1
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pvsifd.csd b/examples/pvsifd.csd
index f2461f1..4d38e86 100755..100644
--- a/examples/pvsifd.csd
+++ b/examples/pvsifd.csd
@@ -1,29 +1,27 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d ;;;RT audio I/O with MIDI in
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvsifd.wav -W ;;; for file output any platform
-;heavy on CPU
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
instr 1
-ain diskin2 "beats.wav", 1, 0, 1
-fs1,fsi2 pvsifd ain, 2048, 512, 1 ; pvsifd analysis
-fst partials fs1, fsi2, .003, 1,3, 500 ; partial tracking
-aout resyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th)
- out aout
-endin
+ain diskin2 "beats.wav", 1, 0, 1
+fs1,fsi2 pvsifd ain, 2048, 512, 1 ; pvsifd analysis
+fst partials fs1, fsi2, .1, 1,3, 500 ; partial tracking
+aout resyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th)
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
;sine
@@ -31,6 +29,5 @@ f1 0 4096 10 1
i 1 0 2
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pvsinfo.csd b/examples/pvsinfo.csd
index 36ebce3..04ff2e7 100755..100644
--- a/examples/pvsinfo.csd
+++ b/examples/pvsinfo.csd
@@ -1,38 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d ;;;RT audio I/O with MIDI in
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvsinfo.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
instr 1
; create a PVOC-EX (*.pvx) file with PVANAL first
-idur filelen "fox.pvx" ; find dur of (stereo) analysis file
-kpos line 0,p3,idur ; to ensure we process whole file
-fsrc pvsfread kpos, "fox.pvx" ; create fsig from R channel
+idur filelen "fox.pvx" ;find duration of analysis file
+kpos line 0,p3,idur ;to ensure we process whole file
+fsrc pvsfread kpos, "fox.pvx" ;create fsig from (mono) file
-iovl,inb,iws,ifmt pvsinfo fsrc ; get inumbins info
-print iovl,inb,iws,ifmt ; print the info
+iovl,inb,iws,ifmt pvsinfo fsrc ;get info
+print iovl,inb,iws,ifmt ;print info
-aout pvsynth fsrc
- out aout
+aout pvsynth fsrc
+ outs aout, aout
endin
-
</CsInstruments>
<CsScore>
i 1 0 3
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/pvslock.csd b/examples/pvslock.csd
new file mode 100644
index 0000000..72f6e2d
--- /dev/null
+++ b/examples/pvslock.csd
@@ -0,0 +1,35 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pvslock.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gifil ftgen 0, 0, 0, 1, "fox.wav", 0, 0, 1
+
+instr 1
+
+klock = p4
+fsig pvstanal 1, 1, 1, gifil ; no further transformations
+fsigout pvslock fsig, klock ; lock frequency
+aout pvsynth fsigout
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2.6 1 ; locked
+i 1 3 2.6 0 ; not locked
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pvsmix.csd b/examples/pvsmix.csd
new file mode 100644
index 0000000..717a101
--- /dev/null
+++ b/examples/pvsmix.csd
@@ -0,0 +1,35 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pvsmix.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisin ftgen 1, 0, 2048, 10, 1
+
+instr 1
+
+asig1 diskin2 "fox.wav", 1 ;signal in 1
+asig2 oscil .3, 100, gisin ;signal in 2
+fsig1 pvsanal asig1,1024,256,1024,0 ;pvoc analysis
+fsig2 pvsanal asig2,1024,256,1024,0 ;of both signals
+fsall pvsmix fsig1, fsig2
+asig pvsynth fsall
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pvsmooth.csd b/examples/pvsmooth.csd
new file mode 100644
index 0000000..e7a188e
--- /dev/null
+++ b/examples/pvsmooth.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pvsmooth.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kacf = p4
+kfcf = p5
+asig soundin "fox.wav"
+fsig pvsanal asig, 1024, 256, 1024, 1 ; analyse it
+ftps pvsmooth fsig, kacf, kfcf
+atps pvsynth ftps ; synthesise it
+ outs atps*3, atps*3
+
+endin
+</CsInstruments>
+<CsScore>
+; amp freq
+i 1 0 3 0.01 0.01 ;smooth amplitude and frequency with cutoff frequency of filter at 1% of 1/2 frame-rate (ca 0.86 Hz)
+i 1 + 3 1 0.01 ;no smoothing on amplitude, but frequency with cf at 1% of 1/2 frame-rate (ca 0.86 Hz)
+i 1 + 10 .001 1 ;smooth amplitude with cf at 0.1% of 1/2 frame-rate (ca 0.086 Hz)
+ ;and no smoothing of frequency
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pvstanal.csd b/examples/pvstanal.csd
new file mode 100644
index 0000000..490ddae
--- /dev/null
+++ b/examples/pvstanal.csd
@@ -0,0 +1,44 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pvstanal.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gifil ftgen 0, 0, 0, 1, "fox.wav", 0, 0, 1
+
+instr 1
+
+fsig pvstanal p4, 1, p5, gifil, p6, p7
+aout pvsynth fsig
+ outs aout, aout
+endin
+
+instr 2
+
+kspeed randi 2, 2, 2 ;speed randomly between -2 and 2
+kpitch randi 2, 2, 2 ;pitch between 2 octaves lower or higher
+fsig pvstanal kspeed, 1, octave(kpitch), gifil
+aout pvsynth fsig
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+; speed pch det wrap
+i 1 0 2.757 1 1 0 0
+i 1 3 . 2 1 0 0
+i 1 6 . 2 1 0 1
+i 1 9 . 1 .75
+i 2 12 10 ;random scratching
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pvsvoc.csd b/examples/pvsvoc.csd
new file mode 100644
index 0000000..f549109
--- /dev/null
+++ b/examples/pvsvoc.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pvsvoc.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisaw ftgen 1, 0, 2048, 10, 1, 0.5, 0.3, 0.25, 0.2 ;sawtooth-like
+
+instr 1
+
+asig in ;get the signal in
+asyn poscil .6, 150, gisaw ;excitation signal of 150 Hz
+
+famp pvsanal asig, 1024, 256, 1024, 1 ;analyse in signal
+fexc pvsanal asyn, 1024, 256, 1024, 1 ;analyse excitation signal
+ftps pvsvoc famp, fexc, 1, 1 ;cross it
+atps pvsynth ftps ;synthesise it
+ outs atps, atps
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pvswarp.csd b/examples/pvswarp.csd
new file mode 100644
index 0000000..78f39e3
--- /dev/null
+++ b/examples/pvswarp.csd
@@ -0,0 +1,35 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o pvswarp.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kscal = p4
+asig soundin "fox.wav" ; get the signal in
+fsig pvsanal asig, 1024, 256, 1024, 1 ; analyse it
+ftps pvswarp fsig, kscal, 0 ; warp it
+atps pvsynth ftps ; synthesise it
+ outs atps, atps
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 3 1
+i 1 + 3 1.5
+i 1 + 3 3
+i 1 + 3 .25
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/pwd.csd b/examples/pwd.csd
new file mode 100644
index 0000000..b69b8df
--- /dev/null
+++ b/examples/pwd.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+; Audio out Audio in
+-odac ; -iadc ;;;RT audio I/O
+; For Non-realtime ouput leave only the line below:
+; -o system.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+; Initialize the global variables.
+sr = 44100
+kr = 4410
+ksmps = 10
+nchnls = 1
+
+instr 1
+; Waits for command to execute before continuing
+Swd pwd
+puts Swd, 1
+endin
+
+</CsInstruments>
+<CsScore>
+
+; Play Instrument #1 for minimal time.
+i 1 0 0.1
+e
+
+
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/q.csd b/examples/q.csd
new file mode 100644
index 0000000..cb087ff
--- /dev/null
+++ b/examples/q.csd
@@ -0,0 +1,42 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o q.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+aenv expseg .01, p3*0.25, 1, p3*0.75, 0.01
+asig poscil3 .8*aenv, p4, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1;sine wave
+s
+q 1 6 0 ;mute at 6 seconds in this section
+i 1 0 2 110
+i 1 3 2 220
+i 1 6 2 440
+i 1 9 2 880
+
+s
+q 1 6 1 ;unmute again at 6 seconds in this section
+i 1 0 2 110
+i 1 3 2 220
+i 1 6 2 440
+i 1 9 2 880
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/qinf.csd b/examples/qinf.csd
new file mode 100644
index 0000000..b9e6ca7
--- /dev/null
+++ b/examples/qinf.csd
@@ -0,0 +1,48 @@
+<CsoundSynthesizer>
+<CsOptions>
+-+rtaudio=alsa -o dac:hw:0
+</CsOptions>
+<CsInstruments>
+nchnls = 2
+ksmps = 400
+
+#define WII_B #3#
+#define WII_A #4#
+#define WII_R_A #304#
+#define WII_PITCH #20#
+#define WII_ROLL #21#
+
+gkcnt init 1
+
+instr 1
+ i1 wiiconnect 3,1
+
+ wiirange $WII_PITCH., -20, 0
+ kt wiidata $WII_B.
+ ka wiidata $WII_A.
+ kra wiidata $WII_R_A.
+ gka wiidata $WII_PITCH.
+ gkp wiidata $WII_ROLL.
+; If the B (trigger) button is pressed then activate a note
+ if (kt==0) goto ee
+ if (qinf(gka)) goto ee
+ if (qinf(gkp)) goto ee
+ event "i", 2, 0, 5
+ gkcnt = gkcnt + 1
+ printk2 kb
+endin
+
+instr 2
+ a1 oscil ampdbfs(gka), 440+gkp, 1
+ outs a1, a1
+endin
+
+</CsInstruments>
+
+<CsScore>
+f1 0 4096 10 1
+i1 0 300
+
+</CsScore>
+
+</CsoundSynthesizer>
diff --git a/examples/qnan.csd b/examples/qnan.csd
new file mode 100644
index 0000000..7bff9a7
--- /dev/null
+++ b/examples/qnan.csd
@@ -0,0 +1,48 @@
+<CsoundSynthesizer>
+<CsOptions>
+-+rtaudio=alsa -o dac:hw:0
+</CsOptions>
+<CsInstruments>
+nchnls = 2
+ksmps = 400
+
+#define WII_B #3#
+#define WII_A #4#
+#define WII_R_A #304#
+#define WII_PITCH #20#
+#define WII_ROLL #21#
+
+gkcnt init 1
+
+instr 1
+ i1 wiiconnect 3,1
+
+ wiirange $WII_PITCH., -20, 0
+ kt wiidata $WII_B.
+ ka wiidata $WII_A.
+ kra wiidata $WII_R_A.
+ gka wiidata $WII_PITCH.
+ gkp wiidata $WII_ROLL.
+; If the B (trigger) button is pressed then activate a note
+ if (kt==0) goto ee
+ if (qnan(gka)) goto ee
+ if (qnan(gkp)) goto ee
+ event "i", 2, 0, 5
+ gkcnt = gkcnt + 1
+ printk2 kb
+endin
+
+instr 2
+ a1 oscil ampdbfs(gka), 440+gkp, 1
+ outs a1, a1
+endin
+
+</CsInstruments>
+
+<CsScore>
+f1 0 4096 10 1
+i1 0 300
+
+</CsScore>
+
+</CsoundSynthesizer>
diff --git a/examples/raises.csd b/examples/raises.csd
index efeb6b5..1e0c755 100644
--- a/examples/raises.csd
+++ b/examples/raises.csd
@@ -1,33 +1,36 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o raises.wav -W ;;; for file output any platform
+;-o ^.wav ; output to audio file
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- i1 = 2 ^ 12
- print i1
-endin
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; Lo-Fi sound
+kpow = 10 ;exponent
+kbase line 1, p3, 2.2 ;vary the base
+kQuantize = kbase^kpow
+kQuantize = kQuantize*0.5 ;half the number of steps for each side of a bipolar signal
+printk2 kQuantize
+asig diskin2 "fox.wav", 1, 0, 1 ;loop the fox
+asig = round(asig * kQuantize) / kQuantize ;quantize and scale audio signal
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for one second.
-i 1 0 1
-e
-
+i1 0 19.2
+e
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/rand.csd b/examples/rand.csd
index 1028ac1..8d42031 100644
--- a/examples/rand.csd
+++ b/examples/rand.csd
@@ -1,40 +1,42 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o rand.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Choose a random frequency between 4,100 and 44,100.
- kfreq rand 20000
- kcps = kfreq + 24100
-
- a1 oscil 30000, kcps, 1
- out a1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;same values every time
+
+krnd rand 100
+ printk .5, krnd ; look
+aout oscili 0.8, 440+krnd, 1 ; & listen
+ outs aout, aout
+
endin
+instr 2 ;different values every time
+
+krnd rand 100, 10 ; seed from system clock
+ printk .5, krnd ; look
+aout oscili 0.8, 440+krnd, 1 ; & listen
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave.
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for one second.
i 1 0 1
+i 2 2 1
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/randh.csd b/examples/randh.csd
index a50d372..ecc3fe0 100644
--- a/examples/randh.csd
+++ b/examples/randh.csd
@@ -1,47 +1,41 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o randh.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Choose a random frequency between 200 and 1000.
- ; Generate new random numbers at 4 Hz.
- ; kamp = 400
- ; kcps = 4
- ; iseed = 0.5
- ; isize = 0
- ; ioffset = 600
-
- kcps randh 400, 4, 0.5, 0, 600
- printk2 kcps
-
- a1 oscil 30000, kcps, 1
- out a1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;same values every time
+
+krnd randh 100, 10
+ printk2 krnd ; look
+aout oscili 0.8, 440+krnd, 1 ; & listen
+ outs aout, aout
+
endin
+instr 2 ;different values every time
+
+krnd randh 100, 10, 10 ; seed from system clock
+ printk2 krnd ; look
+aout oscili 0.8, 440+krnd, 1 ; & listen
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave.
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for one second.
-i 1 0 5
+i 1 0 1
+i 2 2 1
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/randi.csd b/examples/randi.csd
index a496547..9d430b3 100644
--- a/examples/randi.csd
+++ b/examples/randi.csd
@@ -1,46 +1,41 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o randi.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Choose a random frequency between 4,100 and 44,100.
- ; Generate new random numbers at 10 Hz.
- ; kamp = 40000
- ; kcps = 10
- ; iseed = 0.5
- ; isize = 0
- ; ioffset = 4100
-
- kcps randi 40000, 10, 0.5, 0, 4100
-
- a1 oscil 30000, kcps, 1
- out a1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;same values every time
+
+krnd randi 100, 10
+ printk .5, krnd ; look
+aout oscili 0.8, 440+krnd, 1 ; & listen
+ outs aout, aout
+
endin
+instr 2 ;different values every time
+
+krnd randi 100, 10, 10 ; seed from system clock
+ printk .5, krnd ; look
+aout oscili 0.8, 440+krnd, 1 ; & listen
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave.
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for one second.
i 1 0 1
+i 2 2 1
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/random.csd b/examples/random.csd
index 5ac86ad..53e16b7 100644
--- a/examples/random.csd
+++ b/examples/random.csd
@@ -1,37 +1,42 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o random.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Generate a random number between 220 and 440.
- kmin init 220
- kmax init 440
- k1 random kmin, kmax
-
- printks "k1 = %f\\n", 0.1, k1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;same values every time
+
+krnd random 100, 1000
+ printk .5, krnd ; look
+aout oscili 0.8, 440+krnd, 1 ; & listen
+ outs aout, aout
+
endin
+instr 2 ;different values every time
+
+seed 0
+krnd random 100, 1000 ; seed from system clock
+ printk .5, krnd ; look
+aout oscili 0.8, 440+krnd, 1 ; & listen
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave.
-; Play Instrument #1 for one second.
i 1 0 1
+i 2 2 1
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/randomh.csd b/examples/randomh.csd
index 26e59b3..3488911 100644
--- a/examples/randomh.csd
+++ b/examples/randomh.csd
@@ -14,30 +14,33 @@ kr = 4410
ksmps = 10
nchnls = 1
+ seed 0
+
; Instrument #1.
instr 1
; Choose a random frequency between 220 and 440 Hz.
; Generate new random numbers at 10 Hz.
- kmin = 220
- kmax = 440
- kcps = 10
-
- k1 randomh kmin, kmax, kcps
-
- printks "k1 = %f\\n", 0.1, k1
+ kmin init 220
+ kmax init 440
+ kcps init 10
+ imode = p4
+ ifstval = p5
+
+ printf_i "\nMode: %d\n", 1, imode
+ k1 randomh kmin, kmax, kcps, imode, ifstval
+ printk2 k1
endin
-
</CsInstruments>
<CsScore>
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for one second.
+; Play Instrument #1 for one second,
+; each time with a different mode.
i 1 0 1
+i 1 1 1 2 330
+i 1 2 1 3
e
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/randomi.csd b/examples/randomi.csd
index def7ad5..95f913e 100644
--- a/examples/randomi.csd
+++ b/examples/randomi.csd
@@ -14,27 +14,34 @@ kr = 4410
ksmps = 10
nchnls = 1
+ seed 0
+
; Instrument #1.
instr 1
; Choose a random frequency between 220 and 440.
; Generate new random numbers at 10 Hz.
- kmin init 220
- kmax init 440
- kcps init 10
-
- k1 randomi kmin, kmax, kcps
-
- printks "k1 = %f\\n", 0.1, k1
+ kmin init 220
+ kmax init 440
+ kcps init 10
+ imode = p4
+ ifstval = p5
+
+ printf_i "\nMode: %d\n", 1, imode
+ k1 randomi kmin, kmax, kcps, imode, ifstval
+ printks "k1 = %f\n", 0.1, k1
endin
-
</CsInstruments>
<CsScore>
; Play Instrument #1 for one second.
+; each time with a different mode.
i 1 0 1
+i 1 1 1 1
+i 1 2 1 2 330
+i 1 3 1 3
e
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/rbjeq.csd b/examples/rbjeq.csd
index ab4c3c6..28a9b11 100644
--- a/examples/rbjeq.csd
+++ b/examples/rbjeq.csd
@@ -1,33 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o rbjeq.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
- instr 1
-
-a1 vco2 10000, 155.6 ; sawtooth wave
-kfco expon 8000, p3, 200 ; filter frequency
-a1 rbjeq a1, kfco, 1, kfco * 0.005, 1, 0 ; resonant lowpass
- out a1
-
- endin
+instr 1
+imode = p4
+a1 vco2 .3, 155.6 ; sawtooth wave
+kfco expon 8000, p3, 200 ; filter frequency
+asig rbjeq a1, kfco, 1, kfco * 0.005, 1, imode
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-i 1 0 5
-e
-
+i 1 0 5 0 ;lowpass
+i 1 6 5 2 ;highpass
+i 1 12 5 4 ;bandpass
+i 1 18 5 8 ;equalizer
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/readf.csd b/examples/readf.csd
new file mode 100644
index 0000000..48d9c66
--- /dev/null
+++ b/examples/readf.csd
@@ -0,0 +1,27 @@
+<CsoundSynthesizer>
+<CsOptions>
+-n
+</CsOptions>
+
+<CsInstruments>
+instr 1
+ Swd pwd
+ printf_i "Working directory is '%s'\n", 1, Swd
+ prints "Reading myself =):\n"
+read:
+ Sline, kLinNum readf "readf.csd"
+ printf "Line %d: %s", kLinNum, kLinNum, Sline
+ if kLinNum != -1 then
+ kgoto read
+ else
+ turnoff
+ endif
+endin
+</CsInstruments>
+
+<CsScore>
+i1 0 1
+e
+</CsScore>
+
+</CsoundSynthesizer>
diff --git a/examples/readfi.csd b/examples/readfi.csd
new file mode 100644
index 0000000..11ef36a
--- /dev/null
+++ b/examples/readfi.csd
@@ -0,0 +1,23 @@
+<CsoundSynthesizer>
+<CsOptions>
+-n
+</CsOptions>
+
+<CsInstruments>
+instr 1
+ Swd pwd
+ printf_i "Working directory is '%s'\n", 1, Swd
+ prints "Reading myself =):\n"
+read:
+Sline, iLineNum readfi "readfi.csd"
+ printf_i "Line %d: %s", iLineNum, iLineNum, Sline
+ if iLineNum != -1 igoto read
+endin
+</CsInstruments>
+
+<CsScore>
+i1 0 0.1
+e
+</CsScore>
+
+</CsoundSynthesizer>
diff --git a/examples/readk-2.csd b/examples/readk-2.csd
new file mode 100644
index 0000000..61d4133
--- /dev/null
+++ b/examples/readk-2.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o readk-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1 ;writes a control signal to a file
+kfreq randh 100, 1, 2, 1, 500 ;generates one random number between 400 and 600 per second
+ dumpk kfreq, "dumpk.txt", 8, 1 ;writes the control signal
+ printk 1, kfreq ;prints it
+endin
+
+instr 2 ;reads the file written by instr 1
+kfreq readk "dumpk.txt", 8, 1
+ printk 1, kfreq ;prints it
+aout poscil .2, kfreq, giSine
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 5
+i 2 5 5
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/readk2.csd b/examples/readk2.csd
new file mode 100644
index 0000000..7f1d3a4
--- /dev/null
+++ b/examples/readk2.csd
@@ -0,0 +1,42 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o readk2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1 ;writes two control signals to a file
+kfreq randh 100, 1, 2, 1, 500 ;generates one random number between 400 and 600 per second
+kdb randh 12, 1, 2, 1, -12 ;amplitudes in dB between -24 and 0
+ dumpk2 kfreq, kdb, "dumpk2.txt", 8, 1 ;writes the control signals
+ prints "WRITING:\n"
+ printks "kfreq = %f, kdb = %f\n", 1, kfreq, kdb ;prints them
+endin
+
+instr 2 ;reads the file written by instr 1
+kf,kdb readk2 "dumpk2.txt", 8, 1
+ prints "READING:\n"
+ printks "kfreq = %f, kdb = %f\n", 1, kf, kdb ;prints again
+kdb lineto kdb, .1 ;smoothing amp transition
+aout poscil ampdb(kdb), kf, giSine
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 5
+i 2 5 5
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/readk3.csd b/examples/readk3.csd
new file mode 100644
index 0000000..ea59f31
--- /dev/null
+++ b/examples/readk3.csd
@@ -0,0 +1,45 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o readk3.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1 ;writes three control signals to a file
+kfreq randh 100, 1, 2, 1, 500 ;generates one random number between 400 and 600 per second
+kdb randh 12, 1, 2, 1, -12 ;amplitudes in dB between -24 and 0
+kpan randh .5, 1, 2, 1, .5 ;panning between 0 and 1
+ dumpk3 kfreq, kdb, kpan, "dumpk3.txt", 8, 1 ;writes the control signals
+ prints "WRITING:\n"
+ printks "kfreq = %f, kdb = %f, kpan = %f\n", 1, kfreq, kdb, kpan ;prints them
+endin
+
+instr 2 ;reads the file written by instr 1
+kf,kdb,kp readk3 "dumpk3.txt", 8, 1
+ prints "READING:\n"
+ printks "kfreq = %f, kdb = %f, kpan = %f\n", 1, kf, kdb, kp ;prints again
+kdb lineto kdb, .1 ;smoothing amp transition
+kp lineto kp, .1 ;smoothing pan transition
+aout poscil ampdb(kdb), kf, giSine
+aL, aR pan2 aout, kp
+ outs aL, aR
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 5
+i 2 5 5
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/readk4.csd b/examples/readk4.csd
new file mode 100644
index 0000000..615ee12
--- /dev/null
+++ b/examples/readk4.csd
@@ -0,0 +1,48 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o readk4.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1 ;writes four control signals to a file
+kcf randh 950, 1, 2, 1, 1050 ;generates one random number between 100 and 2000 per second
+kq randh 10, 1, 2, 1, 11 ;generates another random number between 1 and 21 per second
+kdb randh 9, 1, 2, 1, -15 ;amplitudes in dB between -24 and -6
+kpan randh .5, 1, 2, 1, .5 ;panning between 0 and 1
+ dumpk4 kcf, kq, kdb, kpan, "dumpk4.txt", 8, 1 ;writes the control signals
+ prints "WRITING:\n"
+ printks "kcf = %f, kq = %f, kdb = %f, kpan = %f\n", 1, kcf, kq, kdb, kpan ;prints them
+endin
+
+instr 2 ;reads the file written by instr 1
+kcf,kq,kdb,kp readk4 "dumpk4.txt", 8, 1
+ prints "READING:\n"
+ printks "kcf = %f, kq = %f, kdb = %f, kpan = %f\n", 1, kcf, kq, kdb, kp ;prints values
+kdb lineto kdb, .1 ;smoothing amp transition
+kp lineto kp, .1 ;smoothing pan transition
+anoise rand ampdb(kdb), 2, 1
+kbw = kcf/kq ;bandwidth of resonant filter
+abp reson anoise, kcf, kbw
+aout balance abp, anoise
+aL, aR pan2 aout, kp
+ outs aL, aR
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 5
+i 2 5 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/readscore.csd b/examples/readscore.csd
new file mode 100644
index 0000000..f0f4c60
--- /dev/null
+++ b/examples/readscore.csd
@@ -0,0 +1,31 @@
+<CsoundSynthesizer>
+<CsOptions>
+-d -o dac
+</CsOptions>
+<CsInstruments>
+
+instr 1
+a1 flooper2 1000,p4,2,5,0.1,1
+ out a1
+endin
+
+instr 2
+ires readscore {{
+{12 COUNT
+i1 $COUNT 1 [1 + $COUNT/12]
+}
+}}
+endin
+
+</CsInstruments>
+<CsScore>
+f0 12
+f 1 0 0 1 "fox.wav" 0 0 1
+
+i2 0 1
+
+
+
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/readscratch.csd b/examples/readscratch.csd
new file mode 100644
index 0000000..d751610
--- /dev/null
+++ b/examples/readscratch.csd
@@ -0,0 +1,30 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ilast readscratch
+ writescratch p2
+ilen readscratch 1
+ writescratch p3, 1
+ printf_i "last run at %f for %f\n", ilen, ilast, ilen
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 1
+i 1 2 3
+i 1 6 10
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/repluck.csd b/examples/repluck.csd
index 2af2659..d5ceb8e 100644
--- a/examples/repluck.csd
+++ b/examples/repluck.csd
@@ -1,44 +1,50 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o repluck.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
- iplk = 0.75
- kamp = 30000
- icps = 220
- kpick = 0.75
- krefl = 0.5
- axcite oscil 1, 1, 1
- apluck repluck iplk, kamp, icps, kpick, krefl, axcite
+iplk = 0.75
+kamp = .8
+icps = 110
+krefl = p4
+kpick = p5
- out apluck
-endin
+axcite oscil 1, 1, 1
+asig repluck iplk, kamp, icps, kpick, krefl, axcite
+asig dcblock2 asig ;get rid of DC offset
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for two seconds.
-i 1 0 2
+f 1 0 16384 10 1 ;sine wave.
+
+s
+i 1 0 1 0.95 0.75 ;sounds heavier (=p5)
+i 1 + 1 <
+i 1 + 1 <
+i 1 + 1 <
+i 1 + 10 0.6
+
+s
+i 1 0 1 0.95 0.15 ;sounds softer (=p5)
+i 1 + 1 <
+i 1 + 1 <
+i 1 + 1 <
+i 1 + 10 0.6
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/reson.csd b/examples/reson.csd
index 967b155..aa37748 100644
--- a/examples/reson.csd
+++ b/examples/reson.csd
@@ -1,48 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o reson.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
- ; Generate a sine waveform.
- asine buzz 15000, 440, 3, 1
- ; Vary the cut-off frequency from 220 to 1280.
- kcf line 220, p3, 1320
- kbw init 20
+asaw vco2 .2, 220 ;sawtooth
+kcf line 220, p3, 1760 ;vary cut-off frequency from 220 to 1280 Hz
+kbw = p4 ;vary bandwidth of filter too
+ares reson asaw, kcf, kbw
+asig balance ares, asaw
+ outs asig, asig
- ; Run the sine through a resonant filter.
- ares reson asine, kcf, kbw
-
- ; Give the filtered signal the same amplitude
- ; as the original signal.
- a1 balance ares, asine
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-; Table #1, an ordinary sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for 4 seconds.
-i 1 0 4
+i 1 0 4 10 ;bandwidth of filter = 10 Hz
+i 1 + 4 50 ;50 Hz and
+i 1 + 4 200 ;200 Hz
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/resonk.csd b/examples/resonk.csd
new file mode 100644
index 0000000..cf9470f
--- /dev/null
+++ b/examples/resonk.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o resonk.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisin ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+ksig randomh 400, 1800, 150
+aout poscil .2, 1000+ksig, gisin
+ outs aout, aout
+endin
+
+instr 2
+
+ksig randomh 400, 1800, 150
+khp line 1, p3, 400 ;vary high-pass
+ksig resonk ksig, khp, 50
+aout poscil .2, 1000+ksig, gisin
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 5
+i 2 5.5 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/resonx.csd b/examples/resonx.csd
new file mode 100644
index 0000000..dac4fe5
--- /dev/null
+++ b/examples/resonx.csd
@@ -0,0 +1,42 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o resonx.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; unfiltered noise
+
+kenv linseg 0, p3*.5, 1, p3*.5, 0 ;envelope
+asig rand 0.7 ;white noise
+ outs asig*kenv, asig*kenv
+
+endin
+
+instr 2 ; filtered noise
+
+kenv linseg 0, p3*.5, 1, p3*.5, 0 ;envelope
+asig rand 0.7
+kcf line 300, p3, 2000
+afilt resonx asig, kcf, 300, 4
+asig balance afilt, asig
+ outs asig*kenv, asig*kenv
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2
+i 2 3 2
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/resonxk.csd b/examples/resonxk.csd
new file mode 100644
index 0000000..536dbd9
--- /dev/null
+++ b/examples/resonxk.csd
@@ -0,0 +1,44 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o resonxk.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisin ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+ksig randomh 400, 1800, 150
+aout poscil .2, 1000+ksig, gisin
+ outs aout, aout
+endin
+
+instr 2
+
+ksig randomh 400, 1800, 150
+kcf line 1, p3, 1000 ;vary high-pass
+ilay = p4
+ksig resonxk ksig, kcf, 100, ilay
+aout poscil .2, 1000+ksig, gisin
+asig interp ksig ;convert k-rate to a-rate
+aout balance asig, aout ;avoid getting asig out of range
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 5
+i 2 6 5 1 ;number of filter stack = 1
+i 2 12 5 5 ;number of filter stack = 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/resony.csd b/examples/resony.csd
index 1e08bf6..1118c54 100644
--- a/examples/resony.csd
+++ b/examples/resony.csd
@@ -1,48 +1,44 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o resony.wav -W ;;; for file output any platform
+; -o resonx.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Use a nice sawtooth waveform.
- asig vco 32000, 220, 1
-
- ; Vary the base frequency from 60 to 600 Hz.
- kbf line 60, p3, 600
- kbw = 50
- inum = 2
- ksep = 1
- isepmode = 0
- iscl = 1
-
- a1 resony asig, kbf, kbw, inum, ksep, isepmode, iscl
-
- out a1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; unfiltered noise
+
+kenv linseg 0, p3*.5, 1, p3*.5, 0 ;envelope
+asig rand 0.7 ;white noise
+ outs asig*kenv, asig*kenv
+
endin
+instr 2 ; filtered noise
+ksep = p4 ;vary seperation of center frequency of filters in octaves
+kenv linseg 0, p3*.5, 1, p3*.5, 0 ;envelope
+asig rand 0.7
+kbf line 300, p3, 2000 ;vary base frequency
+afilt resony asig, kbf, 300, 4, ksep
+asig balance afilt, asig
+ outs asig*kenv, asig*kenv
+
+endin
</CsInstruments>
<CsScore>
-; Table #1, a sine wave for the vco opcode.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for two seconds.
i 1 0 2
-e
-
+i 2 3 2 1
+i 2 6 2 3
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/resonz.csd b/examples/resonz.csd
new file mode 100644
index 0000000..fccd06e
--- /dev/null
+++ b/examples/resonz.csd
@@ -0,0 +1,70 @@
+<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 resonz.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+/* Written by Sean Costello */
+ ; Orchestra file for resonant filter sweep of a sawtooth-like waveform.
+ ; The outputs of reson, resonr, and resonz are scaled by coefficients
+ ; specified in the score, so that each filter can be heard on its own
+ ; from the same instrument.
+
+ sr = 44100
+ kr = 4410
+ ksmps = 10
+ nchnls = 1
+
+instr 1
+
+ idur = p3
+ ibegfreq = p4 ; beginning of sweep frequency
+ iendfreq = p5 ; ending of sweep frequency
+ ibw = p6 ; bandwidth of filters in Hz
+ ifreq = p7 ; frequency of gbuzz that is to be filtered
+ iamp = p8 ; amplitude to scale output by
+ ires = p9 ; coefficient to scale amount of reson in output
+ iresr = p10 ; coefficient to scale amount of resonr in output
+ iresz = p11 ; coefficient to scale amount of resonz in output
+
+ ; Frequency envelope for reson cutoff
+ kfreq linseg ibegfreq, idur * .5, iendfreq, idur * .5, ibegfreq
+
+ ; Amplitude envelope to prevent clicking
+ kenv linseg 0, .1, iamp, idur - .2, iamp, .1, 0
+
+ ; Number of harmonics for gbuzz scaled to avoid aliasing
+ iharms = (sr*.4)/ifreq
+
+ asig gbuzz 1, ifreq, iharms, 1, .9, 1 ; "Sawtooth" waveform
+ ain = kenv * asig ; output scaled by amp envelope
+ ares reson ain, kfreq, ibw, 1
+ aresr resonr ain, kfreq, ibw, 1
+ aresz resonz ain, kfreq, ibw, 1
+
+ out ares * ires + aresr * iresr + aresz * iresz
+
+endin
+
+
+</CsInstruments>
+<CsScore>
+
+/* Written by Sean Costello */
+f1 0 8192 9 1 1 .25 ; cosine table for gbuzz generator
+
+i1 0 10 1 3000 200 100 4000 1 0 0 ; reson output with bw = 200
+i1 10 10 1 3000 200 100 4000 0 1 0 ; resonr output with bw = 200
+i1 20 10 1 3000 200 100 4000 0 0 1 ; resonz output with bw = 200
+i1 30 10 1 3000 50 200 8000 1 0 0 ; reson output with bw = 50
+i1 40 10 1 3000 50 200 8000 0 1 0 ; resonr output with bw = 50
+i1 50 10 1 3000 50 200 8000 0 0 1 ; resonz output with bw = 50
+e
+
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/resyn.csd b/examples/resyn.csd
index 98245c7..aaebb51 100755..100644
--- a/examples/resyn.csd
+++ b/examples/resyn.csd
@@ -1,36 +1,36 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d ;;;RT audio I/O with MIDI in
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o resyn.wav -W ;;; for file output any platform
-;heavy on CPU
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
instr 1
-ain diskin2 "beats.wav", 1, 0, 1
-fs1,fsi2 pvsifd ain, 2048, 512, 1 ; pvsifd analysis
-fst partials fs1, fsi2, .003, 1,3, 500 ; partial tracking
-aout resyn fst, 1, 1.5, 100, 1 ; resynthesis (up a 5th)
- out aout
-endin
+ktracks = p4
+ain diskin2 "fox.wav", 1, 0, 1
+fs1,fsi2 pvsifd ain, 2048, 512, 1 ; pvsifd analysis
+fst partials fs1, fsi2, .1, 1,3, 500 ; partial tracking
+aout resyn fst, 1, 1.5, ktracks, 1 ; resynthesis (up a 5th)
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
;sine
f1 0 4096 10 1
-i 1 0 2
-e
+i 1 0 2.7 500
+i 1 3 2.7 10 ;non-linear filtering effect
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/reverb.csd b/examples/reverb.csd
index db2627f..b0f7bab 100644
--- a/examples/reverb.csd
+++ b/examples/reverb.csd
@@ -1,63 +1,48 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o reverb.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; init an audio receiver/mixer
ga1 init 0
-; Instrument #1. (there may be many copies)
instr 1
- ; generate a source signal
- a1 oscili 7000, cpspch(p4), 1
- ; output the direct sound
- out a1
- ; and add to audio receiver
- ga1 = ga1 + a1
+
+asig poscil .2, cpspch(p4), 1
+ outs asig, asig
+
+ga1 += asig ;add direct signal to global reverb
+
endin
-; (highest instr number executed last)
-instr 99
- ; reverberate whatever is in ga1
- a3 reverb ga1, 1.5
- ; and output the result
- out a3
- ; empty the receiver for the next pass
- ga1 = 0
+instr 99 ;(highest instr number executed last)
+
+arev reverb ga1, 1.5
+ outs arev, arev
+
+ga1 = 0 ;clear
endin
</CsInstruments>
<CsScore>
+f 1 0 128 10 1 ;sine
-; Table #1, a sine wave.
-f 1 0 128 10 1
-
-; p4 = frequency (in a pitch-class)
-; Play Instrument #1 for a tenth of a second, p4=8.00
-i 1 0 0.1 8.00
-; Play Instrument #1 for a tenth of a second, p4=8.02
+i 1 0 0.1 7.00 ;short sounds
i 1 1 0.1 8.02
-; Play Instrument #1 for a tenth of a second, p4=8.04
i 1 2 0.1 8.04
-; Play Instrument #1 for a tenth of a second, p4=8.06
i 1 3 0.1 8.06
-; Make sure the reverb remains active.
-i 99 0 6
+i 99 0 6 ;reverb runs for 6 seconds
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/rewindscore.csd b/examples/rewindscore.csd
new file mode 100644
index 0000000..70d74e1
--- /dev/null
+++ b/examples/rewindscore.csd
@@ -0,0 +1,46 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o rewindscore.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kenv expon 1, p3, 0.0001
+aout poscil .5*kenv, cpspch(p4), 1
+ outs aout, aout
+endin
+
+instr 100
+
+rewindscore
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 4096 10 1 ;sine wave
+
+i1 0 1 8.00
+i1 + 1 8.03
+i1 + 1 8.04
+i1 + 1 8.07
+i1 + 1 8.09
+i1 + 1 8.10
+i1 + 1 8.09
+i1 + 1 8.07
+i1 + 1 8.03
+
+i100 9 1 ;rewind from 9th second
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/rezzy.csd b/examples/rezzy.csd
index 59878f4..f0d8be7 100644
--- a/examples/rezzy.csd
+++ b/examples/rezzy.csd
@@ -1,46 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o rezzy.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
- ; Use a nice sawtooth waveform.
- asig vco 32000, 220, 1
- ; Vary the filter-cutoff frequency from .2 to 2 KHz.
- kfco line 200, p3, 2000
+asaw vco2 .3, 110 ;sawtooth
+kcf line 1760, p3, 220 ;vary cut-off frequency from 220 to 1280 Hz
+kres = p4 ;vary resonance too
+ares rezzy asaw, kcf, kres
+asig balance ares, asaw
+ outs asig, asig
- ; Set the resonance amount.
- kres init 25
-
- a1 rezzy asig, kfco, kres
-
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-; Table #1, a sine wave for the vco opcode.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for three seconds.
-i 1 0 3
+i 1 0 4 10
+i 1 + 4 30
+i 1 + 4 120 ;lots of resonance
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/round.csd b/examples/round.csd
index a302b41..64ad59d 100755..100644
--- a/examples/round.csd
+++ b/examples/round.csd
@@ -1,32 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+;-o round.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- i1 = 1 / p4
- i2 = round(i1)
- print i2
-endin
+idiv init 1
+loop:
+inumber = 9
+i1 = inumber / idiv
+iro = round(i1)
+print inumber, idiv, iro ;print number / idiv = result using round
+idiv = idiv + 1
+if (idiv <= 10) igoto loop
+endin
</CsInstruments>
<CsScore>
-i 1 0 1 2 ;0.5 becomes 1, not 0
-i 1 + 1 3
-i 1 + 1 2.1
+i 1 0 0
e
</CsScore>
diff --git a/examples/rspline.csd b/examples/rspline.csd
index 9e0b9db..0038b08 100755..100644
--- a/examples/rspline.csd
+++ b/examples/rspline.csd
@@ -1,53 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o rspline.wav -W ;;; for file output any platform
+; -o jspline.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
-; Instrument #1 -- plain instrument.
instr 1
- aplain vco 10000, 220, 2, 0.83
- outs aplain, aplain
-endin
-
-; Instrument #2
-instr 2
- ; Create a signal modulated the rspline opcode.
- kamp init 2
- kcpsmin init 4
- kcpsmax init 10
- kj rspline -20,20, kcpsmin, kcpsmax
+krangeMin init p4
+krangeMax init p5
+kcpsmin init 2
+kcpsmax init 3
- aplain vco 10000, 220, 2, 0.83
- ajitter vco 10000, 220+kj, 2, 0.83
+ksp rspline krangeMin, krangeMax, kcpsmin, kcpsmax
+aout pluck 1, 200+ksp, 1000, 0, 1
+aout dcblock aout ;remove DC
+ outs aout, aout
- outs aplain, ajitter
endin
-
-
</CsInstruments>
<CsScore>
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for 3 seconds.
-i 1 0 3
-; Play Instrument #2 for 3 seconds.
-i 2 3 5
+i 1 0 10 2 5 ;a bit jitter
+i 1 8 10 10 20 ;some more
+i 1 16 10 20 50 ;lots more
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/rtclock.csd b/examples/rtclock.csd
index b1a8eb4..68b674b 100644
--- a/examples/rtclock.csd
+++ b/examples/rtclock.csd
@@ -1,35 +1,53 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-n ;;;no sound
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o rtclock.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
+;after an example by Iain McCurdy
+
sr = 44100
-kr = 44100
-ksmps = 1
-nchnls = 1
-
-; Instrument #1
-instr 1
- ; Get the system time.
- k1 rtclock
- ; Print it once per second.
- printk 1, k1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+FLcolor 200, 200, 200, 0, 0, 0
+; LABEL | WIDTH | HEIGHT | X | Y
+FLpanel "rtclock", 500, 130, 0, 0
+; ON,OFF,TYPE,WIDTH, HEIGHT, X, Y, OPCODE, INS,START,IDUR
+gkOnOff,ihOnOff FLbutton "On/Off", 1, 0, 22, 150, 25, 5, 5, 0, 1, 0, 3600
+gkExit,ihExit FLbutton "exitnow",1, 0, 21, 150, 25, 345, 5, 0, 999, 0, 0.001
+FLsetColor2 255, 0, 50, ihOnOff ;reddish color
+
+;VALUE DISPLAY BOXES WIDTH,HEIGHT,X, Y
+gidclock FLvalue "clock", 100, 25, 200, 60
+FLsetVal_i 1, ihOnOff
+FLpanel_end
+FLrun
+
+instr 1
+
+if gkOnOff !=0 kgoto CONTINUE ;sense if FLTK on/off switch is not off (in which case skip the next line)
+turnoff ;turn this instr. off now
+CONTINUE:
+ktime rtclock ;clock continues to run even
+FLprintk2 ktime, gidclock ;after the on/off button was used to stop
+
endin
+instr 999
+
+exitnow ;exit Csound as fast as possible
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for two seconds.
-i 1 0 2
+f 0 60 ;runs 60 seconds
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/s.csd b/examples/s.csd
new file mode 100644
index 0000000..37958d4
--- /dev/null
+++ b/examples/s.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o s.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+aenv expseg .01, p3*0.25, 1, p3*0.75, 0.01
+asig poscil3 .8*aenv, p4, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1;sine wave
+
+s ;first section
+i 1 0 2 110
+i 1 3 2 220
+i 1 6 2 440
+i 1 9 2 880
+
+s ;second section
+i 1 0 2 880
+i 1 3 2 440
+i 1 6 2 220
+i 1 9 2 110
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/samphold.csd b/examples/samphold.csd
new file mode 100644
index 0000000..93aa3e9
--- /dev/null
+++ b/examples/samphold.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o samphold.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kx line -1, p3, 1 ; between -1 and +1
+ktrig metro 1 ; triggers 1 time per second
+kval samphold kx, ktrig ; change value whenever ktrig = 1
+ printk2 kval ; will print every time kval changes
+asig diskin2 "flute.aiff", 1+kval, 0, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 11
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/sandpaper.csd b/examples/sandpaper.csd
index 087cdd8..cceebed 100644
--- a/examples/sandpaper.csd
+++ b/examples/sandpaper.csd
@@ -1,36 +1,32 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sandpaper.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-;orchestra ---------------
-
- sr = 44100
- kr = 4410
- ksmps = 10
- nchnls = 1
-
-instr 01 ;an example of sandpaper blocks
- a1 line 2, p3, 2 ;preset amplitude increase
- a2 sandpaper p4, 0.01 ;sandpaper needs a little amp help at these settings
- a3 product a1, a2 ;increase amplitude
- out a3
- endin
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+instr 1
+idmp = p4
+a1 line 2, p3, 2 ;preset amplitude increase
+a2 sandpaper 1, 0.01, 128, idmp ;sandpaper needs a little amp help at these settings
+asig product a1, a2 ;increase amplitude
+ outs asig, asig
+
+endin
</CsInstruments>
<CsScore>
+i1 0 1 0.5
+i1 + 1 0.95
-;score -------------------
-
- i1 0 1 26000
- e
-
-
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/scalearray.csd b/examples/scalearray.csd
new file mode 100644
index 0000000..4a0b388
--- /dev/null
+++ b/examples/scalearray.csd
@@ -0,0 +1,38 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+;example by joachim heintz
+
+ seed 0
+
+instr 1
+;create an array with 10 elements
+kArr[] init 10
+;fill in random numbers and print them out
+ printks "kArr in maximum range 0..100:\n", 0
+kIndx = 0
+ until kIndx == 10 do
+kNum random 0, 100
+kArr[kIndx] = kNum
+ printf "kArr[%d] = %10f\n", kIndx+1, kIndx, kNum
+kIndx += 1
+ od
+;scale numbers 0...1 and print them out again
+ scalearray kArr, 0, 1
+kIndx = 0
+ printks "kArr in range 0..1\n", 0
+ until kIndx == 10 do
+ printf "kArr[%d] = %10f\n", kIndx+1, kIndx, kArr[kIndx]
+kIndx += 1
+ od
+ turnoff
+endin
+</CsInstruments>
+<CsScore>
+i1 0 0.1
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/scans-2.csd b/examples/scans-2.csd
new file mode 100644
index 0000000..0cc643b
--- /dev/null
+++ b/examples/scans-2.csd
@@ -0,0 +1,62 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o scans-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+strset 1, "mary.wav"
+strset 2, "fox.wav"
+
+instr 2 ;show 2 different trajectories, with samples as excitation signal
+
+ismp = p6
+iamp = p7
+itrj = p8
+aout soundin p6 ;choose wave file
+ scanu ismp, .01, 6, 2, 33, 44, 5, 2, .01, .05, -.05, .1, .5, 0, 0, aout, 1, 0
+asig scans iamp, cpspch(p5), itrj , 0
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 128 7 0 64 1 64 0 ; Initial condition
+f2 0 128 -7 1 128 0.3 ; Masses
+f33 0 16384 -23 "cylinder-128,8" ; Spring matrices
+f44 0 128 -7 2 4 0 124 2 ; Centering force
+f5 0 128 -7 1 128 0 ; Damping
+f6 0 128 -7 -.0 128 0 ; Initial velocity
+f7 0 128 -5 .001 128 128 ; Trajectories
+f77 0 128 -23 "spiral-8,16,128,2,1over2"
+
+s
+i2 0 5 63 6.00 1 .9 7 ;"mary.wav" &
+i2 6 5 60 7.00 ;trajectory table 7
+i2 10 5 60 8.00
+
+s
+i2 0 5 63 6.00 2 .08 7 ;"fox.wav", at much lower volume
+i2 6 5 60 7.00
+i2 10 5 60 8.00
+
+s
+i2 0 5 63 6.00 1 .9 77 ;"mary.wav" &
+i2 6 5 60 7.00 ;trajectory table 77
+i2 10 5 60 8.00
+
+s
+i2 0 5 63 6.00 2 .08 77 ;"fox.wav", at much lower volume
+i2 6 5 60 7.00
+i2 10 5 60 8.00
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/scantable.csd b/examples/scantable.csd
index 20340b9..94d4470 100644
--- a/examples/scantable.csd
+++ b/examples/scantable.csd
@@ -1,54 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o scantable.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Table #1 - initial position
-git1 ftgen 1, 0, 128, 7, 0, 64, 1, 64, 0
-; Table #2 - masses
-git2 ftgen 2, 0, 128, -7, 1, 128, 1
-; Table #3 - stiffness
-git3 ftgen 3, 0, 128, -7, 0, 64, 100, 64, 0
-; Table #4 - damping
-git4 ftgen 4, 0, 128, -7, 1, 128, 1
-; Table #5 - initial velocity
-git5 ftgen 5, 0, 128, -7, 0, 128, 0
-
-; Instrument #1.
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gi1 ftgen 1, 0, 128, 7, 0, 64, 1, 64, 0 ; initial position
+gi2 ftgen 2, 0, 128, -7, 1, 128, 1 ; masses
+gi3 ftgen 3, 0, 128, -7, 0, 64, 100, 64, 0 ; stiffness
+gi4 ftgen 4, 0, 128, -7, 1, 128, 1 ; damping
+gi5 ftgen 5, 0, 128, -7, 0, 128, 0.5 ; initial velocity
+
+
instr 1
- kamp init 20000
- kpch init 220
- ipos = 1
- imass = 2
- istiff = 3
- idamp = 4
- ivel = 5
-
- a1 scantable kamp, kpch, ipos, imass, istiff, idamp, ivel
- a2 dcblock a1
-
- out a2
-endin
+iamp ampmidi .5
+ipch cpsmidi
+kenv madsr .1, .1, .8, .3
+asig scantable iamp, ipch, 1, 2, 3, 4, 5
+asig dcblock asig
+ outs asig*kenv, asig*kenv
+
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for ten seconds.
-i 1 0 10
+f0 60 ; play for 60 seconds
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/schedwhen.csd b/examples/schedwhen.csd
index bcab331..c7082ae 100644
--- a/examples/schedwhen.csd
+++ b/examples/schedwhen.csd
@@ -1,56 +1,38 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o schedwhen.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 44100
-ksmps = 1
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - oscillator with a high note.
instr 1
- ; Use the fourth p-field as the trigger.
- ktrigger = p4
- kinsnum = 2
- kwhen = 0
- kdur = p3
-
- ; Play Instrument #2 at the same time, if the trigger is set.
- schedwhen ktrigger, kinsnum, kwhen, kdur
-
- ; Play a high note.
- a1 oscils 10000, 880, 1
- out a1
-endin
-; Instrument #2 - oscillator with a low note.
-instr 2
- ; Play a low note.
- a1 oscils 10000, 220, 1
- out a1
+kmtr metro 100 ;produce 100 triggers per second
+ schedwhen kmtr, 2, 1, .3 ;but schedwhen plays instr. 2 only once
+
endin
+instr 2
+aenv linseg 0, p3*.1, 1, p3*.3, 1, p3*.6, 0 ;envelope
+a1 poscil .3*aenv, 1000, 1
+ outs a1, a1
+
+endin
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; p4 = trigger for Instrument #2 (when p4 > 0).
-; Play Instrument #1 for half a second, trigger Instrument #2.
-i 1 0 0.5 1
-; Play Instrument #1 for half a second, no trigger.
-i 1 1 0.5 0
+i 1 0 3
+i 1 3 5
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/scoreline.csd b/examples/scoreline.csd
new file mode 100644
index 0000000..cb84941
--- /dev/null
+++ b/examples/scoreline.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o scoreline.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ktrig metro 3 ;trigger 3 times a second
+scoreline {{ ;so it sounds like an echo
+ i 2 0 3 "flute.aiff"
+ i 2 1 3 "beats.wav"
+ }}, ktrig
+ktrig = 0
+
+endin
+
+instr 2
+
+asig soundin p4
+ outs asig*.3, asig*.3
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 2 ;play for 2 seconds, so the samples are played 6 times
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/scoreline_i.csd b/examples/scoreline_i.csd
new file mode 100644
index 0000000..16578bc
--- /dev/null
+++ b/examples/scoreline_i.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac --old-parser ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o scoreline.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+scoreline_i {{
+ i 2 0 3 "flute.aiff"
+ i 2 1 3 "beats.wav"
+ }}
+
+endin
+
+instr 2
+
+asig soundin p4
+ outs asig*.8, asig*.8
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 1
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/seed.csd b/examples/seed.csd
index d0ac99e..9a678ec 100755..100644
--- a/examples/seed.csd
+++ b/examples/seed.csd
@@ -1,40 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o seed.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+instr 1 ;same values every time
-instr 1
- ; Generate a random number between -1 and 1.
- ; krange = 1
-seed 10 ; same seed values produces same result
- i1 trirand 1
+seed 10
+krnd randomh 100, 200, 5
+ printk .5, krnd ; look
+aout oscili 0.8, 440+krnd, 1 ; & listen
+ outs aout, aout
- print i1
endin
+instr 2 ;different values every time - value is derived from system clock
+seed 0 ; seed from system clock
+krnd randomh 100, 200, 5
+ printk .5, krnd ; look
+aout oscili 0.8, 440+krnd, 1 ; & listen
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave.
i 1 0 1
-i 1 + 1
-i 1 + 1
+i 2 2 1
e
-
-
</CsScore>
</CsoundSynthesizer>
-
diff --git a/examples/sekere.csd b/examples/sekere.csd
index 4189961..298be1a 100644
--- a/examples/sekere.csd
+++ b/examples/sekere.csd
@@ -1,34 +1,30 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sekere.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-;orchestra ---------------
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
- sr = 44100
- kr = 4410
- ksmps = 10
- nchnls = 1
-
-instr 01 ;an example of a sekere
-a1 sekere p4, 0.01
- out a1
- endin
+instr 1
+idamp = p4 ;vary damping amount
+asig sekere 1, 0.01, 64, idamp
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-;score -------------------
-
- i1 0 1 26000
- e
-
-
+i1 0 1 .1
+i1 + 1 .9
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/semitone.csd b/examples/semitone.csd
index f2d6b8c..718d20e 100644
--- a/examples/semitone.csd
+++ b/examples/semitone.csd
@@ -1,45 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o semitone.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; The root note is A above middle-C (440 Hz)
- iroot = 440
- ; Raise the root note by three semitones to C.
- isemitone = 3
+iroot = 440 ; root note is A above middle-C (440 Hz)
+ksem lfo 12, .5, 5 ; generate sawtooth, go from 5 octaves higher to root
+ksm = int(ksem) ; produce only whole numbers
+kfactor = semitone(ksm) ; for semitones
+knew = iroot * kfactor
+printk2 knew
+printk2 kfactor
+asig pluck 1, knew, 1000, 0, 1
+asig dcblock asig ;remove DC
+ outs asig, asig
- ; Calculate the new note.
- ifactor = semitone(isemitone)
- inew = iroot * ifactor
-
- ; Print out all of the values.
- print iroot
- print ifactor
- print inew
endin
-
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for one second.
-i 1 0 1
+i 1 0 5
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/seqtime2.csd b/examples/seqtime2.csd
new file mode 100644
index 0000000..8473542
--- /dev/null
+++ b/examples/seqtime2.csd
@@ -0,0 +1,53 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o seqtime2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gitabMap2 ftgen 57,0,512,-2, 1,1/4,1/4,1/8,1/8,1/8,1/8,1/4,1/4,.5,1/4,1/4,1/16,1/16,1/16,1/16,1/16,1/16,1/16,1/16
+gisine ftgen 1,0,512,10, 1
+
+instr 1
+
+ktrigin metro .333333333333
+ktrig2 metro 1
+ schedkwhen ktrig2, 0,0, 2, 0, .1 ; just to set the metronome!
+kspeed init 1
+; ktime_unit, kstart, kloop, initndx, kfn_times
+ktrig seqtime2 ktrigin, kspeed, 0, 20, 2, gitabMap2
+;ktrig seqtime kspeed, 0, 20, 0, gitabMap2 ; try with seqtime too...
+ schedkwhen ktrig, 0, 0, 3, 0, ktrig ; the duration is got from seqtime2 output!
+endin
+
+instr 2
+
+a1 line 1,p3,0
+aout oscili 0.7*a1,500,gisine
+ outs1 aout
+endin
+
+
+instr 3
+
+a1 line 1,p3,0
+aout oscili 0.7*a1,1000,gisine
+ outs2 aout
+endin
+
+</CsInstruments>
+<CsScore>
+i1 0 20
+
+;f0 3600
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/serialBegin.csd b/examples/serialBegin.csd
new file mode 100644
index 0000000..702595d
--- /dev/null
+++ b/examples/serialBegin.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n ;;;no output
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o serialBegin.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 500 ; the default krate can be too fast for the arduino to handle
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+iPort serialBegin "/dev/cu.usbmodemfa131", 9600 ;connect to the arduino with baudrate = 9600
+
+kGain init 16 ;read our knob value
+kVal serialRead iPort
+if (kVal != -1) then
+ kGain = kVal/128
+endif
+
+aSig in ;get our audio input and get its rms
+kRms rms aSig*kGain
+
+kRms = kRms*kRms*255 ;scale the rms to a good value for the LED and send it out
+serialWrite iPort, (kRms < 255 ? kRms : 255) ;must be in range: 0-255
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 1024 10 1 1 1 1 1 1
+
+i 1 0 200
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/serialRead.csd b/examples/serialRead.csd
new file mode 100644
index 0000000..83e81f2
--- /dev/null
+++ b/examples/serialRead.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n ;;;no output
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o serialRead.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 500 ; the default krate can be too fast for the arduino to handle
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+iPort serialBegin "/dev/cu.usbmodemfa131", 9600 ;connect to the arduino with baudrate = 9600
+
+kGain init 16 ;read our knob value
+kVal serialRead iPort
+if (kVal != -1) then
+ kGain = kVal/128
+endif
+
+aSig in ;get our audio input and get its rms
+kRms rms aSig*kGain
+
+kRms = kRms*kRms*255 ;scale the rms to a good value for the LED and send it out
+serialWrite iPort, (kRms < 255 ? kRms : 255) ;must be in range: 0-255
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 1024 10 1 1 1 1 1 1
+
+i 1 0 200
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/serialWrite.csd b/examples/serialWrite.csd
new file mode 100644
index 0000000..2d368de
--- /dev/null
+++ b/examples/serialWrite.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n ;;;no output
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o serialWrite.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 500 ; the default krate can be too fast for the arduino to handle
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+iPort serialBegin "/dev/cu.usbmodemfa131", 9600 ;connect to the arduino with baudrate = 9600
+
+kGain init 16 ;read our knob value
+kVal serialRead iPort
+if (kVal != -1) then
+ kGain = kVal/128
+endif
+
+aSig in ;get our audio input and get its rms
+kRms rms aSig*kGain
+
+kRms = kRms*kRms*255 ;scale the rms to a good value for the LED and send it out
+serialWrite iPort, (kRms < 255 ? kRms : 255) ;must be in range: 0-255
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 1024 10 1 1 1 1 1 1
+
+i 1 0 200
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/setscorepos.csd b/examples/setscorepos.csd
index 7809a0b..3a95e97 100755..100644
--- a/examples/setscorepos.csd
+++ b/examples/setscorepos.csd
@@ -1,89 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o setscorepos.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-;---------------------------------------------------------
-; TBVCF Test
-; Coded by Hans Mikelson December, 2000
-;---------------------------------------------------------
- sr = 44100 ; Sample rate
- ksmps = 10 ; Samples/Kontrol period
- nchnls = 2 ; Normal stereo
- 0dbfs = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 8192, 10, 1
instr 1
-;setscorepos 0 ; uncomment to hear from beginning
-setscorepos 8 ; start at 8 seconds, comment this
- ; when uncommenting setscorepos 0
+asig poscil 0.5, p4, giSine ;play something
+ outs asig, asig
endin
- instr 10
-
- idur = p3 ; Duration
- iamp = p4 ; Amplitude
- ifqc = cpspch(p5) ; Pitch to frequency
- ipanl = sqrt(p6) ; Pan left
- ipanr = sqrt(1-p6) ; Pan right
- iq = p7
- idist = p8
- iasym = p9
-
-kdclck linseg 0, .002, 1, idur-.004, 1, .002, 0 ; Declick envelope
-kfco expseg 10000, idur, 1000 ; Frequency envelope
-ax vco 1, ifqc, 2, 0.5 ; Square wave
-ay tbvcf ax, kfco, iq, idist, iasym ; TB-VCF
-ay buthp ay/1, 100 ; Hi-pass
-
- outs ay*iamp*ipanl*kdclck, ay*iamp*ipanr*kdclck
- endin
+instr 11
+setscorepos 8.5
+endin
</CsInstruments>
<CsScore>
-f1 0 65536 10 1
-i1 0 1
-; TeeBee Test
-; Sta Dur Amp Pitch Pan Q Dist1 Asym
-i10 0 0.2 0.5 7.00 .5 0.0 2.0 0.0
-i10 0.3 0.2 0.5 7.00 .5 0.8 2.0 0.0
-i10 0.6 0.2 0.5 7.00 .5 1.6 2.0 0.0
-i10 0.9 0.2 0.5 7.00 .5 2.4 2.0 0.0
-i10 1.2 0.2 0.5 7.00 .5 3.2 2.0 0.0
-;i10 1.5 0.2 0.5 7.00 .5 4.0 2.0 0.0
-i10 1.8 0.2 0.5 7.00 .5 0.0 2.0 0.25
-i10 2.1 0.2 0.5 7.00 .5 0.8 2.0 0.25
-i10 2.4 0.2 0.5 7.00 .5 1.6 2.0 0.25
-i10 2.7 0.2 0.5 7.00 .5 2.4 2.0 0.25
-i10 3.0 0.2 0.5 7.00 .5 3.2 2.0 0.25
-i10 3.3 0.2 0.5 7.00 .5 4.0 2.0 0.25
-i10 3.6 0.2 0.5 7.00 .5 0.0 2.0 0.5
-i10 3.9 0.2 0.5 7.00 .5 0.8 2.0 0.5
-i10 4.2 0.2 0.5 7.00 .5 1.6 2.0 0.5
-i10 4.5 0.2 0.5 7.00 .5 2.4 2.0 0.5
-i10 4.8 0.2 0.5 7.00 .5 3.2 2.0 0.5
-i10 5.1 0.2 0.5 7.00 .5 4.0 2.0 0.5
-i10 5.4 0.2 0.5 7.00 .5 0.0 2.0 0.75
-i10 5.7 0.2 0.5 7.00 .5 0.8 2.0 0.75
-i10 6.0 0.2 0.5 7.00 .5 1.6 2.0 0.75
-i10 6.3 0.2 0.5 7.00 .5 2.4 2.0 0.75
-i10 6.6 0.2 0.5 7.00 .5 3.2 2.0 0.75
-i10 6.9 0.2 0.5 7.00 .5 4.0 2.0 0.75
-i10 7.2 0.2 0.5 7.00 .5 0.0 2.0 1.0
-i10 7.5 0.2 0.5 7.00 .5 0.8 2.0 1.0
-i10 7.8 0.2 0.5 7.00 .5 1.6 2.0 1.0
-i10 8.1 0.2 0.5 7.00 .5 2.4 2.0 1.0
-i10 8.4 0.2 0.5 7.00 .5 3.2 2.0 1.0
-i10 8.7 0.2 0.5 7.00 .5 4.0 2.0 1.0
-e
-
+i1 0 2 220 ;this one will be played
+i11 2.5 1 ;start setscorepos now
+i1 3 2 330 ;skip this note
+i1 6 2 440 ;and this one
+i1 9 2 550 ;play this one
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/sfilist.csd b/examples/sfilist.csd
index a23925a..4b62e66 100755..100644
--- a/examples/sfilist.csd
+++ b/examples/sfilist.csd
@@ -1,68 +1,45 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d -M0 ;;;RT audio I/O, midi in
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out, virtual midi in
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sfilist.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 100
+sr = 44100
+ksmps = 32
nchnls = 2
-; load two soundfonts
-isf sfload "07AcousticGuitar.sf2"
-ir sfload "01hpschd.sf2"
- sfplist isf ; print presets of
- sfplist ir ; soundfonts
- sfpassign 0, isf
- sfpassign 1, ir
+0dbfs = 1
- instr 1
-; play from score and midi keyboard (=midi channel 1)
- mididefault 60, p3
- midinoteonkey p4, p5
-inum init p4
-ivel init p5
-print ivel
+gisf sfload "sf_GMbank.sf2"
+ sfilist gisf ;list all instruments
-ivel init 3*(ivel/127) ; velocity-dependent
-kamp linsegr 1,1,1,.1,0
-kfreq init 1 ;do not change freq from sf
-a1,a2 sfplay3 ivel, inum, kamp*ivel, kfreq, 0, 0
- outs a1, a2
-
- endin
-
- instr 2
-; play from score and midi keyboard (=midi channel 2)
- mididefault 60, p3
+instr 1 ; play from score and midi keyboard
+
+ mididefault 60, p3
midinoteonkey p4, p5
inum init p4
ivel init p5
-print ivel
-
-ivel init 10*(ivel/127) ; 01hpschd.sf2 needs extra volume
-kamp linsegr 1,1,1,.1,0 ; velocity-dependent
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/3000 ;scale amplitude
kfreq init 1 ;do not change freq from sf
-a1,a2 sfplay3 ivel, inum, kamp*ivel, kfreq, 1, 0
+a1, a2 sfinstr3 ivel, inum, kamp*ivel, kfreq, 100, gisf ;choose Halo Pad
outs a1, a2
- endin
+endin
</CsInstruments>
<CsScore>
f0 60 ; stay active for 1 minute
-i1 0 1 60 100
+i1 0 1 60 127
i1 + 1 62 <
i1 + 1 65 <
i1 + 1 69 10
-i2 5 1 60 100
-i2 + 1 62 <
-i2 7 1 65 <
-i2 7 1 69 10
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/sfinstr.csd b/examples/sfinstr.csd
new file mode 100644
index 0000000..abe9793
--- /dev/null
+++ b/examples/sfinstr.csd
@@ -0,0 +1,46 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o sfinstr.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+
+gisf sfload "sf_GMbank.sf2"
+ sfilist isf
+
+instr 1 ; play from score and midi keyboard
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+inum init p4
+ivel init p5
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/5000 ;scale amplitude
+kfreq init 1 ;do not change freq from sf
+a1,a2 sfinstr ivel, inum, kamp*ivel, kfreq, 194, gisf ;= Strings 2 tighter
+ outs a1, a2
+
+ endin
+
+</CsInstruments>
+<CsScore>
+f0 60 ; stay active for 1 minute
+
+i1 0 1 60 127
+i1 + 1 62 <
+i1 + 1 65 <
+i1 + 1 69 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/sfinstr3.csd b/examples/sfinstr3.csd
new file mode 100644
index 0000000..d824680
--- /dev/null
+++ b/examples/sfinstr3.csd
@@ -0,0 +1,50 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o sfinstr3.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gi24 ftgen 1, 0, 32, -2, 24, 2, 261.626, 60, 1, 1.0293022, 1.059463, 1.0905076, 1.1224619, 1.1553525, 1.1892069, \
+ 1.2240532, 1.2599207, 1.2968391, 1.33483924, 1.3739531, 1.414213, 1.4556525, 1.4983063, 1.54221, 1.5874001, \
+ 1.6339145, 1.6817917, 1.73107, 1.7817962, 1.8340067, 1.8877471, 1.9430623, 2 ;table for microtuning, a 24 tone equal temperament
+
+giSF sfload "sf_GMbank.sf2"
+ sfilist giSF
+
+instr 1
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey = p4
+ivel = p5
+aenv linsegr 1, 1, 1, 1, 0 ;envelope
+icps cpstuni ikey, 1 ;24 tones per octave
+iamp = 0.0002 ;scale amplitude
+iamp = iamp * ivel * 1/128 ;make velocity-dependent
+aL, aR sfinstr3 ivel, ikey, iamp, icps, 180, giSF, 1 ;= Slap Bass 3
+aL = aL * aenv
+aR = aR * aenv
+ outs aL, aR
+
+endin
+</CsInstruments>
+<CsScore>
+f0 60 ;play for 60 seconds
+
+i1 0 1 60 100 1 ;using ftable 1
+i1 + 1 62 < .
+i1 + 1 65 < .
+i1 + 1 69 40 .
+
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/sfinstr3m.csd b/examples/sfinstr3m.csd
new file mode 100644
index 0000000..ad86ccc
--- /dev/null
+++ b/examples/sfinstr3m.csd
@@ -0,0 +1,46 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o sfinstr3m.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+
+gisf sfload "07AcousticGuitar.sf2"
+ sfilist isf
+
+instr 1 ; play from score and midi keyboard
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+inum init p4
+ivel init p5
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/7000 ;scale amplitude
+kfreq init 1 ;do not change freq from sf
+aout sfinstr3m ivel, inum, kamp*ivel, kfreq, 0, gisf
+ outs aout, aout
+
+ endin
+
+</CsInstruments>
+<CsScore>
+f0 60 ; stay active for 1 minute
+
+i1 0 1 60 127
+i1 + 1 62 <
+i1 + 1 65 <
+i1 + 1 69 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/sfload.csd b/examples/sfload.csd
index bb303cf..7e7a8c9 100755..100644
--- a/examples/sfload.csd
+++ b/examples/sfload.csd
@@ -1,53 +1,55 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d -M0 ;;;RT audio I/O, midi in
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out, virtual midi in
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sfload.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 100
+sr = 44100
+ksmps = 32
nchnls = 2
-; load two soundfonts
+0dbfs = 1
+
+;load two soundfonts
isf sfload "07AcousticGuitar.sf2"
ir sfload "01hpschd.sf2"
+ sfplist isf
+ sfplist ir
sfpassign 0, isf
sfpassign 1, ir
- instr 1
-; play from score and midi keyboard (=midi channel 1)
- mididefault 60, p3
+instr 1 ; play guitar from score and midi keyboard - preset index = 0
+
+ mididefault 60, p3
midinoteonkey p4, p5
inum init p4
ivel init p5
-print ivel
-
-ivel init 3*(ivel/127) ; velocity-dependent
-kamp linsegr 1,1,1,.1,0
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/3000 ;scale amplitude
kfreq init 1 ;do not change freq from sf
-a1,a2 sfplay3 ivel, inum, kamp*ivel, kfreq, 0, 0
+a1,a2 sfplay3 ivel, inum, kamp*ivel, kfreq, 0 ;preset index = 0
outs a1, a2
endin
- instr 2
-; play from score and midi keyboard (=midi channel 2)
- mididefault 60, p3
+instr 2 ; play harpsichord from score and midi keyboard - preset index = 1
+
+ mididefault 60, p3
midinoteonkey p4, p5
inum init p4
ivel init p5
-print ivel
-
-ivel init 10*(ivel/127) ; 01hpschd.sf2 needs extra volume
-kamp linsegr 1,1,1,.1,0 ; velocity-dependent
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/1000 ;scale amplitude
kfreq init 1 ;do not change freq from sf
-a1,a2 sfplay3 ivel, inum, kamp*ivel, kfreq, 1, 0
+a1,a2 sfplay3 ivel, inum, kamp*ivel, kfreq, 1 ;preset index = 1
outs a1, a2
- endin
+endin
</CsInstruments>
<CsScore>
@@ -62,5 +64,7 @@ i2 5 1 60 100
i2 + 1 62 <
i2 7 1 65 <
i2 7 1 69 10
+
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/sflooper.csd b/examples/sflooper.csd
index c6b9add..f9cfdc3 100755..100644
--- a/examples/sflooper.csd
+++ b/examples/sflooper.csd
@@ -2,45 +2,47 @@
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in No messages
--odac -iadc -d -M0 ;;;RT audio I/O, midi in
+-odac -+rtmidi=virtual -M0 ;;;realtime audio in, midi in
; For Non-realtime ouput leave only the line below:
; -o sflooper.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 100
+sr = 44100
+ksmps = 32
nchnls = 2
+0dbfs = 1
-isf sfload "/home/menno/CVS/manual/examples/07AcousticGuitar.sf2"
- sfilist isf
- sfplist isf
- sfpassign 0, isf
- instr 1
-; play from score and midi keyboard
- mididefault 60, p3
- midinoteonkey p4, p5
-inum init p4
-ivel init p5
-print ivel
+isf sfload "07AcousticGuitar.sf2"
+ sfpassign 0, isf
-ivel init 3*(ivel/127) ; pre-amplify
-kamp linsegr 1,1,1,.1,0
-kfreq init 1 ;do not change freq from sf
-; ivel, inum, kamp ,kfreq, ind,loopstrt,loopend,xfade, ifn
-a1,a2 sflooper ivel, inum, kamp*ivel, kfreq, 0, 0, .3, .5, 0
- outs a1, a2
-
- endin
+instr 1 ; play from score and midi keyboard
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+inum init p4
+ivel init p5
+print ivel
+
+ivel init ivel/127 ;velocity dependent
+kamp linsegr 1,1,1,.1,0 ;envelope
+kamp = kamp * .0002 ;scale amplitude (= kamp/5000)
+kfreq init 1 ;do not change freq from sf
+;"07AcousticGuitar.sf2" contains 2 samples, on notes E1 and C#4
+;start loop from beginning, loop .2 seconds - on the root key of these samples
+aL,aR sflooper ivel, inum, kamp*ivel, kfreq, 0, 0, .2, .05
+ outs aL, aR
+endin
</CsInstruments>
<CsScore>
-f0 60 ; stay active for 1 minute
+f0 60 ; stay active for 1 minute
i1 0 1 60 100
i1 + 1 62 <
i1 + 1 65 <
i1 + 1 69 10
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/sfpassign.csd b/examples/sfpassign.csd
new file mode 100644
index 0000000..5db8db1
--- /dev/null
+++ b/examples/sfpassign.csd
@@ -0,0 +1,70 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out, virtual midi in
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o sfpassign.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+;load two soundfonts
+gisf sfload "07AcousticGuitar.sf2"
+gir sfload "01hpschd.sf2"
+ sfplist gisf
+ sfplist gir
+ sfpassign 0, gisf
+ sfpassign 1, gir
+
+instr 1 ; play guitar from score and midi keyboard - preset index = 0
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+inum init p4
+ivel init p5
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/5000 ;scale amplitude
+kfreq init 1 ;do not change freq from sf
+a1,a2 sfplay3 ivel, inum, kamp*ivel, kfreq, 0 ;preset index = 0
+ outs a1, a2
+
+ endin
+
+instr 2 ; play harpsichord from score and midi keyboard - preset index = 1
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+inum init p4
+ivel init p5
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/1000 ;scale amplitude
+kfreq init 1 ;do not change freq from sf
+a1,a2 sfplay3 ivel, inum, kamp*ivel, kfreq, 1 ;preset index = 1
+ outs a1, a2
+
+endin
+
+</CsInstruments>
+<CsScore>
+f0 60 ; stay active for 1 minute
+
+i1 0 1 60 100
+i1 + 1 62 <
+i1 + 1 65 <
+i1 + 1 69 10
+
+i2 5 1 60 100
+i2 + 1 62 <
+i2 7 1 65 <
+i2 7 1 69 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/sfplay.csd b/examples/sfplay.csd
index fe37380..d21ad9c 100755..100644
--- a/examples/sfplay.csd
+++ b/examples/sfplay.csd
@@ -1,34 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d -M0 ;;;RT audio I/O, midi in
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sfplay.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 100
+sr = 44100
+ksmps = 32
nchnls = 2
+0dbfs = 1
+
isf sfload "07AcousticGuitar.sf2"
- sfilist isf
sfplist isf
- sfpassign 0, isf
+ sfpassign 0, isf
+
+instr 1 ; play from score and midi keyboard
- instr 1
-; play from score and midi keyboard
- mididefault 60, p3
+ mididefault 60, p3
midinoteonkey p4, p5
inum init p4
ivel init p5
-print ivel
-
-ivel init 3*(ivel/127) ; pre-amplify
-kamp linsegr 1,1,1,.1,0
-kfreq init 1 ;do not change freq from sf
-a1,a2 sfplay ivel, inum, kamp*ivel, kfreq, 0, 0
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/5000 ;scale amplitude
+kfreq init 1 ;do not change freq from sf
+a1,a2 sfplay ivel, inum, kamp*ivel, kfreq, 0 ;preset index = 0
outs a1, a2
endin
@@ -41,5 +41,7 @@ i1 0 1 60 127
i1 + 1 62 <
i1 + 1 65 <
i1 + 1 69 10
+
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/sfplay3.csd b/examples/sfplay3.csd
index 2532ac8..b92088e 100755..100644
--- a/examples/sfplay3.csd
+++ b/examples/sfplay3.csd
@@ -1,45 +1,72 @@
-<CsoundSynthesizer>
-<CsOptions>
+<CsoundSynthesizer>
+<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d -M0 ;;;RT audio I/O, midi in
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sfplay3.wav -W ;;; for file output any platform
-</CsOptions>
-<CsInstruments>
+</CsOptions>
+<CsInstruments>
-sr = 44100
-ksmps = 100
+sr = 44100
+ksmps = 32
nchnls = 2
+0dbfs = 1
-isf sfload "07AcousticGuitar.sf2"
- sfilist isf
- sfplist isf
- sfpassign 0, isf
+gitwelve ftgen 1, 0, 16, -2, 12, 2, 440, 69, 1, 16/15, 9/8, 6/5, 5/4, 4/3, 7/5, 3/2, 8/5, 5/3, 9/5, 15/8, 2
+givife ftgen 2, 0, 16, -2, 5, 2, 261.659, 60, 1, 1.1486, 1.3195, 1.5157, 1.7411, 2.00
- instr 1
-; play from score and midi keyboard
- mididefault 60, p3
+giSF sfload "01hpschd.sf2"
+ sfplist giSF
+gipre sfpreset 0, 0, giSF, 0
+
+instr 1
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+ikey = p4
+ivel = p5
+aenv linsegr 1, 1, 1, 1, 0 ;envelope
+icps cpstuni ikey, gitwelve ;12 tones per octave
+iamp = 0.0004 ;scale amplitude
+iamp = iamp * ivel * 1/128 ;make velocity-dependent
+aL, aR sfplay3 ivel, ikey, iamp, icps, gipre, 1
+aL = aL * aenv
+aR = aR * aenv
+ outs aL, aR
+
+endin
+
+instr 2
+
+ mididefault 60, p3
midinoteonkey p4, p5
-inum init p4
-ivel init p5
-print ivel
-
-ivel init 3*(ivel/127) ; pre-amplify
-kamp linsegr 1,1,1,.1,0
-kfreq init 1 ;do not change freq from sf
-a1,a2 sfplay3 ivel, inum, kamp*ivel, kfreq, 0, 0
- outs a1, a2
-
- endin
-
-</CsInstruments>
-<CsScore>
-f0 60 ; stay active for 1 minute
-
-i1 0 1 60 127
-i1 + 1 62 <
-i1 + 1 65 <
-i1 + 1 69 10
-</CsScore>
-</CsoundSynthesizer>
+ikey = p4
+ivel = p5
+aenv linsegr 1, 1, 1, 1, 0 ;envelope
+icps cpstuni ikey, givife ;5 tones per octave
+iamp = 0.0004 ;scale amplitude
+iamp = iamp * ivel * 1/128 ;make velocity-dependent
+aL, aR sfplay3 ivel, ikey, iamp, icps, gipre, 1
+aL = aL * aenv
+aR = aR * aenv
+ outs aL, aR
+
+endin
+</CsInstruments>
+<CsScore>
+f0 60 ;play for 60 seconds
+;instr.1 using ftable 1
+i1 0 1 60 100
+i1 + 1 62 <
+i1 + 1 65 <
+i1 + 1 69 40
+
+;instr.2 using ftable 2
+i2 5 1 60 100
+i2 + 1 62 <
+i2 + 1 65 <
+i2 + 1 69 40
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/sfplay3m.csd b/examples/sfplay3m.csd
index 229c14f..0add172 100755..100644
--- a/examples/sfplay3m.csd
+++ b/examples/sfplay3m.csd
@@ -1,45 +1,47 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d -M0 ;;;RT audio I/O, midi in
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sfplay3m.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 100
+sr = 44100
+ksmps = 32
nchnls = 2
+0dbfs = 1
-isf sfload "07AcousticGuitar.sf2"
- sfilist isf
- sfplist isf
- sfpassign 0, isf
- instr 1
-; play from score and midi keyboard
- mididefault 60, p3
+gisf sfload "07AcousticGuitar.sf2"
+ sfplist gisf
+ sfpassign 10, gisf
+
+instr 1 ; play from score and midi keyboard
+
+ mididefault 60, p3
midinoteonkey p4, p5
inum init p4
ivel init p5
-print ivel
-
-ivel init 2*(ivel/127) ; pre-amplify
-kamp linsegr 1,1,1,.1,0
-kfreq init 1 ;do not change freq from sf
-a1 sfplay3m ivel, inum, kamp*ivel, kfreq, 0, 0
- outs a1, a1
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/7000 ;scale amplitude
+kfreq init 1 ;do not change freq from sf
+aout sfplay3m ivel, inum, kamp*ivel, kfreq, 10 ;preset index = 10
+ outs aout, aout
- endin
+endin
</CsInstruments>
<CsScore>
-f0 60 ; stay active for 1 minute
+f0 60 ; stay active for 1 minute
i1 0 1 60 127
i1 + 1 62 <
i1 + 1 65 <
i1 + 1 69 10
+
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/sfplaym.csd b/examples/sfplaym.csd
index 2666489..1951e9e 100755..100644
--- a/examples/sfplaym.csd
+++ b/examples/sfplaym.csd
@@ -1,45 +1,47 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d -M0 ;;;RT audio I/O, midi in
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sfplaym.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 100
+sr = 44100
+ksmps = 32
nchnls = 2
+0dbfs = 1
-isf sfload "07AcousticGuitar.sf2"
- sfilist isf
- sfplist isf
- sfpassign 0, isf
- instr 1
-; play from score and midi keyboard
- mididefault 60, p3
+gisf sfload "07AcousticGuitar.sf2"
+ sfplist gisf
+ sfpassign 100, gisf
+
+instr 1 ; play from score and midi keyboard
+
+ mididefault 60, p3
midinoteonkey p4, p5
inum init p4
ivel init p5
-print ivel
-
-ivel init 2*(ivel/127) ; pre-amplify
-kamp linsegr 1,1,1,.1,0
-kfreq init 1 ;do not change freq from sf
-a1 sfplaym ivel, inum, kamp*ivel, kfreq, 0, 0
- outs a1, a1
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/7000 ;scale amplitude
+kfreq init 1 ;do not change freq from sf
+aout sfplaym ivel, inum, kamp*ivel, kfreq, 100 ;preset index = 100
+ outs aout, aout
- endin
+endin
</CsInstruments>
<CsScore>
-f0 60 ; stay active for 1 minute
+f0 60 ; stay active for 1 minute
i1 0 1 60 127
i1 + 1 62 <
i1 + 1 65 <
i1 + 1 69 10
+
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/sfplist.csd b/examples/sfplist.csd
new file mode 100644
index 0000000..75b05e7
--- /dev/null
+++ b/examples/sfplist.csd
@@ -0,0 +1,46 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out, virtual midi in
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o sfplist.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisf sfload "sf_GMbank.sf2"
+ sfplist gisf ;list all presets
+gir sfpreset 125, 3, gisf, 0 ;preset = Car Pass
+
+instr 1 ; play from score and midi keyboard
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+inum init p4
+ivel init p5
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/6000 ;scale amplitude
+kfreq init 1 ;do not change freq from sf
+a1,a2 sfplay3 ivel, inum, kamp, kfreq, gir
+ outs a1, a2
+
+endin
+
+</CsInstruments>
+<CsScore>
+f0 60 ; stay active for 1 minute
+
+i1 0 1 60 127
+i1 + 1 62 <
+i1 + 1 65 <
+i1 + 1 69 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/sfpreset.csd b/examples/sfpreset.csd
new file mode 100644
index 0000000..0b80030
--- /dev/null
+++ b/examples/sfpreset.csd
@@ -0,0 +1,55 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out, virtual midi in
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o sfpreset.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisf1 sfload "sf_GMbank.sf2"
+ sfplist gisf1 ;list presets of first soundfont
+gisf2 sfload "07AcousticGuitar.sf2"
+ sfplist gisf2 ;list presets of second soundfont
+gir sfpreset 50, 0, gisf1, 0 ;assign Synth Strings to index 0
+giv sfpreset 0, 0, gisf2, 1 ;assign AcousticGuitar to index 1
+print gir
+print giv
+
+instr 1 ; play from score and midi keyboard
+
+ mididefault 60, p3
+ midinoteonkey p4, p5
+inum init p4
+ivel init p5
+ivel init ivel/127 ;make velocity dependent
+kamp linsegr 1, 1, 1, .1, 0
+kamp = kamp/5000 ;scale amplitude
+kfreq init 1 ;do not change freq from sf
+a1,a2 sfplay3 ivel, inum, kamp*ivel, kfreq, p6
+ outs a1, a2
+
+endin
+
+</CsInstruments>
+<CsScore>
+f0 60 ; stay active for 1 minute
+
+i1 0 1 60 127 0 ;= Synth Strings I from first soundfont
+i1 + 1 62 < .
+i1 + 1 65 < .
+i1 + 1 69 10 .
+
+i1 5 1 60 127 1 ;= AcousticGuitar from second soundfont
+i1 + 1 62 < .
+i1 + 1 65 < .
+i1 + 1 69 10 .
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/signum.csd b/examples/signum.csd
new file mode 100644
index 0000000..e124afb
--- /dev/null
+++ b/examples/signum.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o oscil.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+kr = 4410
+ksmps = 10
+nchnls = 2
+0dbfs = 1
+
+gaArr[] init 2
+
+instr 1
+kEnv transeg 1, p3, -3, 0
+
+a_pi = 4 * taninv(1.0);
+a1 phasor 440;
+a2 = sin(2 * a_pi * 1/ksmps * a1);
+a3 dcblock2 a2
+asig = signum(a3)
+
+gaArr[0] = a2 * 0.6 * kEnv
+gaArr[1] = asig * 0.6 * kEnv
+
+outs gaArr[0], gaArr[1]
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 3
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/sin.csd b/examples/sin.csd
index c0c920a..3f515cf 100644
--- a/examples/sin.csd
+++ b/examples/sin.csd
@@ -1,35 +1,44 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sin.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- irad = 25
- i1 = sin(irad)
- print i1
+isin1 = sin(0) ;sine of 0 is 0
+isin2 = sin($M_PI_2) ;sine of pi/2 (1.5707...) is 1
+isin3 = sin($M_PI) ;sine of pi (3.1415...) is 0
+isin4 = sin($M_PI_2 * 3) ;sine of 3/2pi (4.7123...) is -1
+isin5 = sin($M_PI * 2) ;sine of 2pi (6.2831...) is 0
+isin6 = sin($M_PI * 4) ;sine of 4pi is also 0
+ print isin1, isin2, isin3, isin4, isin5, isin6
endin
+instr 2 ;sin used in panning, after an example from Hans Mikelson
+
+aout vco2 0.8, 220 ; sawtooth
+kpan linseg p4, p3, p5 ;0 = left, 1 = right
+kpan = kpan*$M_PI_2 ;range 0-1 becomes 0-pi/2
+kpanl = cos(kpan)
+kpanr = sin(kpan)
+ outs aout*kpanl, aout*kpanr
+endin
</CsInstruments>
<CsScore>
-
-; Play Instrument #1 for one second.
-i 1 0 1
+i 1 0 0
+i 2 0 5 0 1 ;move left to right
+i 2 5 5 1 0 ;move right to left
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/sinsyn.csd b/examples/sinsyn.csd
new file mode 100644
index 0000000..adbf7a8
--- /dev/null
+++ b/examples/sinsyn.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o sinsyn.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kmxtr init p4
+ain diskin2 "fox.wav", 1
+fs1,fsi2 pvsifd ain, 2048, 512,1 ; ifd analysis
+fst partials fs1, fsi2, .03, 1, 3, 500 ; partial tracking
+aout sinsyn fst, .5, kmxtr, 1 ; scale amplitude down
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1
+
+i 1 0 2.7 15 ;filtering effect by using low number of tracks
+i 1 + 2.7 500 ;maximum number of tracks
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/sleighbells.csd b/examples/sleighbells.csd
index ef3b861..9546850 100644
--- a/examples/sleighbells.csd
+++ b/examples/sleighbells.csd
@@ -1,42 +1,41 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sleighbells.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 22050
-kr = 2205
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1: An example of sleighbells.
-instr 1
- a1 sleighbells 20000, 0.01
- out a1
-endin
+instr 1
+idamp = p4
+asig sleighbells .7, 0.01, 32, idamp
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-i 1 0.00 0.25
+i 1 0.00 0.25 0 ;short sound
i 1 0.30 0.25
i 1 0.60 0.25
i 1 0.90 0.25
i 1 1.20 0.25
-i 1 1.50 0.25
-i 1 1.80 0.25
+i 1 1.50 1 .3 ;longer sound
+i 1 1.80 0.25 0 ;short sound again
i 1 2.10 0.25
i 1 2.40 0.25
i 1 2.70 0.25
i 1 3.00 0.25
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/slicearray.csd b/examples/slicearray.csd
new file mode 100644
index 0000000..023ff5b
--- /dev/null
+++ b/examples/slicearray.csd
@@ -0,0 +1,56 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+;create and fill an array
+kArr[] genarray_i 1, 9
+
+;print the content
+ printf "%s", 1, "kArr = whole array\n"
+kndx = 0
+ until kndx == lenarray(kArr) do
+ printf "kArr[%d] = %f\n", kndx+1, kndx, kArr[kndx]
+kndx += 1
+ od
+
+;build new arrays for the slices
+kArr1[] init 5
+kArr2[] init 4
+
+;put in first five and last four elements
+kArr1 slicearray kArr, 0, 4
+kArr2 slicearray kArr, 5, 8
+
+;print the content
+ printf "%s", 1, "\nkArr1 = slice from index 0 to index 4\n"
+kndx = 0
+ until kndx == lenarray(kArr1) do
+ printf "kArr1[%d] = %f\n", kndx+1, kndx, kArr1[kndx]
+kndx += 1
+ od
+ printf "%s", 1, "\nkArr2 = slice from index 5 to index 8\n"
+kndx = 0
+ until kndx == lenarray(kArr2) do
+ printf "kArr2[%d] = %f\n", kndx+1, kndx, kArr2[kndx]
+kndx += 1
+ od
+
+ turnoff
+endin
+
+
+</CsInstruments>
+<CsScore>
+i 1 0 1
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/sndloop.csd b/examples/sndloop.csd
index d3cf257..6c8c1d5 100755..100644
--- a/examples/sndloop.csd
+++ b/examples/sndloop.csd
@@ -1,37 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o sndloop.wav -W -t60 ;;; for file output any platform
+; -o sndloop.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
-ifade = p4
-asig diskin2 "beats.wav", 1 ; get the signal in
-ktrig line 0, 1, 1 ; trigger signal
-aout,krec sndloop asig, .8, ktrig, .4, ifade ; rec starts at 1 sec, for 4 secs 0.05 crossfade
- printk 1, krec ; prints the recording signal
- out aout
+
+itrig = p4
+asig diskin2 "beats.wav", 1, 0, 1 ;get the signal in, loop it
+ktrig line 0, itrig, 1 ;when to trigger signal = p4
+kpitch line 1.2, p3, .5 ;vary pitch of recorded signal
+aout,krec sndloop asig, kpitch, ktrig, .4, 0.05 ;rec starts at p4 sec, for .4 secs and 0.05 crossfade
+ printk2 krec ; prints the recording signal
+ outs aout, aout
endin
</CsInstruments>
<CsScore>
-i1 0 3.5 .05
-i1 + 3.5 .25
+i1 0 5 .5 ;trigger in seconds (=p4)
+i1 + 5 .8
+i1 + 10 1.2
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/sndwarp.csd b/examples/sndwarp.csd
index 018f2ee..b783807 100644
--- a/examples/sndwarp.csd
+++ b/examples/sndwarp.csd
@@ -1,64 +1,41 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sndwarp.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1 - play an audio file.
instr 1
- ; Use the audio file defined in Table #1.
- a1 loscil 30000, 1, 1, 1
- out a1
-endin
+ktimewarp line 0, p3, 2.7 ;length of "fox.wav"
+kresample init 1 ;do not change pitch
+ibeg = 0 ;start at beginning
+iwsize = 4410 ;window size in samples with
+irandw = 882 ;bandwidth of a random number generator
+itimemode = 1 ;ktimewarp is "time" pointer
+ioverlap = p4
-; Instrument #2 - time-stretch an audio file.
-instr 2
- kamp init 6500
- ; Start at 1 second and end at 3.5 seconds.
- ktimewarp line 1, p3, 3.5
- ; Playback at the normal speed.
- kresample init 1
- ; Use the audio file defined in Table #1.
- ifn1 = 1
- ibeg = 0
- iwsize = 4410
- irandw = 882
- ioverlap = 15
- ; Use Table #2 for the windowing function.
- ifn2 = 2
- ; Use the ktimewarp parameter as a "time" pointer.
- itimemode = 1
+asig sndwarp .5, ktimewarp, kresample, 1, ibeg, iwsize, irandw, ioverlap, 2, itimemode
+ outs asig, asig
- a1 sndwarp kamp, ktimewarp, kresample, ifn1, ibeg, iwsize, irandw, ioverlap, ifn2, itimemode
- out a1
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 131072 1 "fox.wav" 0 0 0 ; audio file
+f 2 0 1024 9 0.5 1 0 ; half of a sine wave
-; Table #1: an audio file.
-f 1 0 262144 1 "mary.wav" 0 0 0
-; Table #2: half of a sine wave.
-f 2 0 16384 9 0.5 1 0
-
-; Play Instrument #1 for 3.5 seconds.
-i 1 0 3.5
-; Play Instrument #2 for 7 seconds (time-stretched).
-i 2 3.5 10.5
+i 1 0 7 2 ;different overlaps
+i 1 + 7 5
+i 1 + 7 15
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/sndwarpst.csd b/examples/sndwarpst.csd
index 46a2c86..f72ff98 100755..100644
--- a/examples/sndwarpst.csd
+++ b/examples/sndwarpst.csd
@@ -1,53 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sndwarpst.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
instr 1
- kamp init 10000
- ; Start at 1 second and end at 3.5 seconds.
- ktimewarp line 1, p3, 1.5
- ; Playback at the normal speed.
- kresample init 4
- ; Use the audio file defined in Table #1.
- ifn1 = 1
- ibeg = 0
- iwsize = 4410
- irandw = 100
- ioverlap = 15
- ; Use Table #2 for the windowing function.
- ifn2 = 2
- ; Use the ktimewarp parameter as a "time" pointer.
- itimemode = 1
- a1, a2 sndwarp kamp, ktimewarp, kresample, ifn1, ibeg, iwsize, irandw, ioverlap, ifn2, itimemode
- outs a1, a2
+ktimewarp line 0, p3, 1 ;length of stereo file "kickroll.wav"
+kresample init 1 ;playback at the normal speed
+ibeg = 0
+iwsize = 4410
+irandw = 441
+ioverlap = p4
+itimemode = 1 ; Use the ktimewarp parameter as a "time" pointer
+
+aL, aR sndwarpst .3, ktimewarp, kresample, 1, ibeg, iwsize, irandw, ioverlap, 2, itimemode
+aL dcblock aL ;get rid of DC offsets for left channel &
+aR dcblock aR ;right channel
+ outs aL, aR
endin
-
-
</CsInstruments>
<CsScore>
-; Table #1: an audio file.
f 1 0 65536 1 "kickroll.wav" 0 0 0
-; Table #2: half of a sine wave.
-f 2 0 16384 9 0.5 1 0
+f 2 0 16384 9 0.5 1 0 ;half of a sine wave
-i 1 0 10
+i 1 0 7 2 ;different overlaps
+i 1 + 7 5
+i 1 + 7 15
e
-
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/soundin.csd b/examples/soundin.csd
index b87b737..3a469f4 100644
--- a/examples/soundin.csd
+++ b/examples/soundin.csd
@@ -1,33 +1,38 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+;-odac ;;;realtime audio out
+-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o soundin.wav -W ;;; for file output any platform
+;-o soundin.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 44100
-ksmps = 1
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1 - play an audio file.
-instr 1
- asig soundin "beats.wav"
- out asig
-endin
+instr 1 ; choose between mono or stereo file
+
+ichn filenchnls p4 ;check number of channels
+print ichn
+if ichn == 1 then
+asig soundin p4 ;mono signal
+ outs asig, asig
+else ;stereo signal
+aL, aR soundin p4
+ outs aL, aR
+endif
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1, the audio file, for three seconds.
-i 1 0 3
-e
-
+i 1 0 3 "fox.wav" ;mono signal
+i 1 5 2 "kickroll.wav" ;stereo signal
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/space_quad.csd b/examples/space_quad.csd
index 5deac14..f9b7a58 100755..100644
--- a/examples/space_quad.csd
+++ b/examples/space_quad.csd
@@ -1,15 +1,16 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o space_quad.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-kr = 4410
-ksmps = 10
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
nchnls = 4
ga1 init 0
@@ -17,44 +18,43 @@ ga2 init 0
ga3 init 0
ga4 init 0
-instr 1
+instr 1 ;uses GEN28 file "move", as found in /manual/examples
-asig diskin2 "beats.wav", 1
-a1, a2, a3, a4 space asig, 0, 0, .1, p4, p5 ; take position values from p4, p5
-ar1, ar2, ar3, ar4 spsend
+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
+a1, a2, a3, a4 space asig, 1, ktime, .1, kx, ky ;use table 1 = GEN28
+ar1, ar2, ar3, ar4 spsend ;send to reverb
ga1 = ga1+ar1
ga2 = ga2+ar2
ga3 = ga3+ar3
ga4 = ga4+ar4
- outq a1, a2, a3, a4
+ outq a1, a2, a3, a4
+
endin
instr 99 ; reverb instrument
-a1 reverb2 ga1, 2.5, .5
-a2 reverb2 ga2, 2.5, .5
-a3 reverb2 ga3, 2.5, .5
-a4 reverb2 ga4, 2.5, .5
- outq a1, a2, a3, a4
+a1 reverb2 ga1, 2.5, .5
+a2 reverb2 ga2, 2.5, .5
+a3 reverb2 ga3, 2.5, .5
+a4 reverb2 ga4, 2.5, .5
+ outq a1, a2, a3, a4
-ga1=0
+ga1=0
ga2=0
ga3=0
ga4=0
endin
-
</CsInstruments>
<CsScore>
-;place the sound in the left speaker and near
- i1 0 1 -1 1
-;place the sound in the right speaker and far
- i1 1 1 45 45
-;place the sound equally between left and right and in the middle ground distance
- i1 2 1 0 12
-
- i 99 0 5
- e
+f1 0 0 28 "move"
+
+i1 0 5 ;same time as ktime
+i 99 0 10 ;keep reverb active
+e
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/space_stereo.csd b/examples/space_stereo.csd
index a16200d..4a72ee7 100755..100644
--- a/examples/space_stereo.csd
+++ b/examples/space_stereo.csd
@@ -1,37 +1,41 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o space_stereo.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
- sr = 44100
-kr = 4410
-ksmps = 10
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
nchnls = 2
-ga1 init 0
-ga2 init 0
+ga1 init 0
+ga2 init 0
instr 1
-asig diskin2 "beats.wav", 1
-a1, a2, a3, a4 space asig, 0, 0, .1, p4, p5 ; take position values from p4, p5
-ar1, ar2, ar3, ar4 spsend ; a3, a4, ar3, ar4 are dummies
+kx = p4
+ky = p5
+asig diskin2 "beats.wav", 1
+a1, a2, a3, a4 space asig, 0, 0, .1, kx, ky ;take position values from p4, p5
+ar1, ar2, ar3, ar4 spsend ;send to reverb
-ga1 = ga1+ar1
-ga2 = ga2+ar2
+ga1 = ga1+ar1
+ga2 = ga2+ar2
+ outs a1, a2
- outs a1, a2
endin
instr 99 ; reverb instrument
-a1 reverb2 ga1, 2.5, .5
-a2 reverb2 ga2, 2.5, .5
- outs a1, a2
+a1 reverb2 ga1, 2.5, .5
+a2 reverb2 ga2, 2.5, .5
+ outs a1, a2
+
ga1=0
ga2=0
@@ -40,13 +44,13 @@ endin
</CsInstruments>
<CsScore>
;place the sound in the left speaker and near
- i1 0 1 -1 1
+i1 0 1 -1 1
;place the sound in the right speaker and far
- i1 1 1 45 45
+i1 1 1 45 45
;place the sound equally between left and right and in the middle ground distance
- i1 2 1 0 12
+i1 2 1 0 12
- i 99 0 5
- e
+i 99 0 7 ;keep reverb active
+e
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/spat3dt.csd b/examples/spat3dt.csd
new file mode 100644
index 0000000..838ed6c
--- /dev/null
+++ b/examples/spat3dt.csd
@@ -0,0 +1,90 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o spat3dt.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+garvb init 0
+gaW init 0
+gaX init 0
+gaY init 0
+
+itmp ftgen 1, 0, 64, -2, 2, 40, -1, -1, -1, 123, \
+ 1, 13.000, 0.05, 0.85, 20000.0, 0.0, 0.50, 2, \
+ 1, 2.000, 0.05, 0.85, 20000.0, 0.0, 0.25, 2, \
+ 1, 16.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 9.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 12.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2, \
+ 1, 8.000, 0.05, 0.85, 20000.0, 0.0, 0.35, 2
+
+itmp ftgen 2, 0, 262144, -2, 0
+ spat3dt 2, -0.2, 1, 0, 1, 1, 2, 0.005
+
+itmp ftgen 3, 0, 262144, -52, 3, 2, 0, 4, 2, 1, 4, 2, 2, 4
+
+instr 1
+
+a1 vco2 1, 440, 10
+kfrq port 100, 0.008, 20000
+a1 butterlp a1, kfrq
+a2 linseg 0, 0.003, 1, 0.01, 0.7, 0.005, 0, 1, 0
+a1 = a1 * a2 * 2
+ denorm a1
+ vincr garvb, a1
+aw, ax, ay, az spat3di a1, p4, p5, p6, 1, 1, 2
+ vincr gaW, aw
+ vincr gaX, ax
+ vincr gaY, ay
+
+endin
+
+instr 2
+
+denorm garvb
+; skip as many samples as possible without truncating the IR
+arW, arX, arY ftconv garvb, 3, 2048, 2048, (65536 - 2048)
+aW = gaW + arW
+aX = gaX + arX
+aY = gaY + arY
+garvb = 0
+gaW = 0
+gaX = 0
+gaY = 0
+
+aWre, aWim hilbert aW
+aXre, aXim hilbert aX
+aYre, aYim hilbert aY
+aWXr = 0.0928*aXre + 0.4699*aWre
+aWXiYr = 0.2550*aXim - 0.1710*aWim + 0.3277*aYre
+aL = aWXr + aWXiYr
+aR = aWXr - aWXiYr
+ outs aL, aR
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+i 1 0 0.5 0.0 2.0 -0.8
+i 1 1 0.5 1.4 1.4 -0.6
+i 1 2 0.5 2.0 0.0 -0.4
+i 1 3 0.5 1.4 -1.4 -0.2
+i 1 4 0.5 0.0 -2.0 0.0
+i 1 5 0.5 -1.4 -1.4 0.2
+i 1 6 0.5 -2.0 0.0 0.4
+i 1 7 0.5 -1.4 1.4 0.6
+i 1 8 0.5 0.0 2.0 0.8
+i 2 0 10
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/spdist.csd b/examples/spdist.csd
new file mode 100644
index 0000000..390d644
--- /dev/null
+++ b/examples/spdist.csd
@@ -0,0 +1,64 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o spdist.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 4
+
+ga1 init 0
+ga2 init 0
+ga3 init 0
+ga4 init 0
+
+instr 1 ;uses GEN28 file "move2", as found in /manual/examples
+
+ifreq = 1
+kx init 0
+ky init 0
+ktime line 0, 5.6, 5.6 ;same time as in table 1 (="move2")
+kdist spdist 1, ktime, kx, ky
+kfreq = (ifreq*340) / (340 + kdist) ;calculate doppler shift
+printk2 kdist ;print distance values
+asig diskin2 "flute.aiff", kfreq, 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
+
+ga1 = ga1+ar1
+ga2 = ga2+ar2
+ga3 = ga3+ar3
+ga4 = ga4+ar4
+ outq a1, a2, a3, a4
+
+endin
+
+instr 99 ; reverb instrument
+
+a1 reverb2 ga1, 2.5, .5
+a2 reverb2 ga2, 2.5, .5
+a3 reverb2 ga3, 2.5, .5
+a4 reverb2 ga4, 2.5, .5
+ outq a1, a2, a3, a4
+
+ga1=0
+ga2=0
+ga3=0
+ga4=0
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 0 28 "move2" ;from left front and left rear to the middle in front
+
+i 1 0 5.6 ;same time as ktime
+i 99 0 10 ;keep reverb active
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/spectrum.txt b/examples/spectrum.txt
new file mode 100644
index 0000000..c60cc6c
--- /dev/null
+++ b/examples/spectrum.txt
@@ -0,0 +1,64 @@
+#Frequency (Hz) Level (dB)
+344.531250 -9.408175
+689.062500 -11.542959
+1033.593750 -21.892752
+1378.125000 -24.258373
+1722.656250 -18.601250
+2067.187500 -20.766144
+2411.718750 -25.426712
+2756.250000 -20.080441
+3100.781250 -26.096043
+3445.312500 -26.792006
+3789.843750 -25.379452
+4134.375000 -34.031952
+4478.906250 -41.497753
+4823.437500 -46.513386
+5167.968750 -32.469891
+5512.500000 -26.959146
+5857.031250 -33.118156
+6201.562500 -52.667919
+6546.093750 -50.139523
+6890.625000 -44.757580
+7235.156250 -38.376083
+7579.687500 -40.954887
+7924.218750 -42.764221
+8268.750000 -37.079933
+8613.281250 -42.961800
+8957.812500 -55.379814
+9302.343750 -54.114830
+9646.875000 -55.103600
+9991.406250 -58.144154
+10335.937500 -60.414536
+10680.468750 -52.401680
+11025.000000 -47.045467
+11369.531250 -50.944092
+11714.062500 -56.675507
+12058.593750 -59.445457
+12403.125000 -55.266907
+12747.656250 -56.959026
+13092.187500 -60.342400
+13436.718750 -57.675564
+13781.250000 -52.839638
+14125.781250 -59.135277
+14470.312500 -65.163216
+14814.843750 -64.589638
+15159.375000 -64.101051
+15503.906250 -68.578819
+15848.437500 -71.754791
+16192.968750 -55.440922
+16537.500000 -49.826622
+16882.031250 -55.727921
+17226.562500 -70.721367
+17571.093750 -67.187195
+17915.625000 -62.886978
+18260.156250 -64.825745
+18604.687500 -68.334122
+18949.218750 -66.449799
+19293.750000 -61.810974
+19638.281250 -67.812668
+19982.812500 -73.615036
+20327.343750 -72.949310
+20671.875000 -76.245728
+21016.406250 -80.125305
+21360.937500 -83.319687
+21705.468750 -81.967491
diff --git a/examples/sprintf.csd b/examples/sprintf.csd
new file mode 100644
index 0000000..5d30624
--- /dev/null
+++ b/examples/sprintf.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o sprintf.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+;the file "impuls20.aiff" can be found in /manual/examples
+instr 1
+
+ifn = 20
+Sname sprintf "impuls%02d.aiff", ifn
+Smsg sprintf "The file name is: '%s'", Sname
+ puts Smsg, 1
+asig soundin Sname
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 1
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/spsend.csd b/examples/spsend.csd
new file mode 100644
index 0000000..2de05bf
--- /dev/null
+++ b/examples/spsend.csd
@@ -0,0 +1,64 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o spsend.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2 ;stereo output
+
+ga1 init 0
+ga2 init 0
+
+instr 1 ;sends different amounts to reverb
+
+irev = p6
+asig diskin2 "fox.wav", 1
+a1, a2, a3, a4 space asig, 0, 0, irev, p4, p5 ;take position values from p4, p5
+ar1, ar2, ar3, ar4 spsend ;send to reverb
+
+ga1 = ga1+ar1
+ga2 = ga2+ar2
+ outs a1, a2
+
+endin
+
+instr 99 ; reverb instrument
+
+a1 reverb2 ga1, 2.5, .5
+a2 reverb2 ga2, 2.5, .5
+ outs a1, a2
+
+ga1=0
+ga2=0
+
+endin
+
+</CsInstruments>
+<CsScore>
+;WITH REVERB
+;place the sound in the left speaker and near
+i1 0 1 -1 1 .1
+;place the sound in the right speaker and far
+i1 1 1 45 45 .1
+;place the sound equally between left and right and in the middle ground distance
+i1 2 1 0 12 .1
+
+;NO REVERB
+;place the sound in the left speaker and near
+i1 6 1 -1 1 0
+;place the sound in the right speaker and far
+i1 7 1 45 45 0
+;place the sound equally between left and right and in the middle ground distance
+i1 8 1 0 12 0
+
+i 99 0 12 ;keep reverb active all the time
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/spsend_quad.csd b/examples/spsend_quad.csd
index 5deac14..5deac14 100755..100644
--- a/examples/spsend_quad.csd
+++ b/examples/spsend_quad.csd
diff --git a/examples/spsend_stereo.csd b/examples/spsend_stereo.csd
index edcf365..edcf365 100755..100644
--- a/examples/spsend_stereo.csd
+++ b/examples/spsend_stereo.csd
diff --git a/examples/sqrt.csd b/examples/sqrt.csd
index 8637e96..b0ea677 100644
--- a/examples/sqrt.csd
+++ b/examples/sqrt.csd
@@ -1,33 +1,32 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o sqrt.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
- i1 = sqrt(64)
- print i1
-endin
+asig pluck 0.7, 55, 55, 0, 1
+kpan line 0,p3,1
+kleft = sqrt(1-kpan)
+kright = sqrt(kpan)
+printks "square root of left channel = %f\\n", 1, kleft ;show coarse of sqaure root values
+ outs asig*kleft, asig*kright ;where 0.707126 is between 2 speakers
+endin
</CsInstruments>
<CsScore>
-; Play Instrument #1 for one second.
-i 1 0 1
+i 1 0 10
e
-
-
</CsScore>
-</CsoundSynthesizer>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/sr.csd b/examples/sr.csd
new file mode 100644
index 0000000..e181270
--- /dev/null
+++ b/examples/sr.csd
@@ -0,0 +1,35 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+; -iadc ;;;uncomment -iadc if real audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o sr.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ;use sr to find maximum harmonics
+
+ihar = int(sr/2/p4) ; maximum possible number of harmonics w/o aliasing
+prints "maximum number of harmonics = %d \\n", ihar
+kenv linen .5, 1, p3, .2 ; envelope
+asig buzz kenv, p4, ihar, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 4096 10 1 ;sine wave
+
+i 1 0 3 100 ;different frequencies
+i 1 + 3 1000
+i 1 + 3 10000
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/stack.csd b/examples/stack.csd
new file mode 100644
index 0000000..00e7129
--- /dev/null
+++ b/examples/stack.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o stack.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
+
+stack 100000
+
+instr 1
+
+a1 oscils 0.7, 220, 0
+k1 line 0, p3, 1
+ push "blah", 123.45, a1, k1
+ push rnd(k1)
+
+k_rnd pop
+S01, i01, a01, k01 pop
+ printf_i "S01 = '%s', i01 = %g\n", 1, S01, i01
+ktrig metro 5.0
+ printf "k01 = %.3f, k_rnd = %.3f\n", ktrig, k01, k_rnd
+ outs a01, a01
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/statevar.csd b/examples/statevar.csd
new file mode 100644
index 0000000..3fc23db
--- /dev/null
+++ b/examples/statevar.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o statevar.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
+
+instr 1
+
+kenv linseg 0,0.1,1, p3-0.2,1, 0.1, 0 ;declick envelope
+asig buzz .6*kenv, 100, 100, 1
+kf expseg 100, p3/2, 5000, p3/2, 1000 ;envelope for filter cutoff
+ahp,alp,abp,abr statevar asig, kf, 4
+ outs alp,ahp ; lowpass left, highpass right
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1 ;sine wave
+
+i1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/statvar.csd b/examples/statvar.csd
index 0c55c04..0c55c04 100755..100644
--- a/examples/statvar.csd
+++ b/examples/statvar.csd
diff --git a/examples/stix.csd b/examples/stix.csd
index a645463..ca930ce 100644
--- a/examples/stix.csd
+++ b/examples/stix.csd
@@ -1,36 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o stix.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-;orchestra ---------------
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
- sr = 44100
- kr = 4410
- ksmps = 10
- nchnls = 1
-
-instr 01 ;an example of stix
- a1 line 20, p3, 20 ;preset amplitude increase
- a2 stix p4, 0.01 ;stix needs a little amp help at these settings
- a3 product a1, a2 ;increase amplitude
- out a3
- endin
+instr 1
+idamp = p4 ;vary damping amount
+asig stix .5, 0.01, 30, idamp
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-;score -------------------
-
- i1 0 1 26000
- e
-
+i1 0 1 .3
+i1 + 1 >
+i1 + 1 >
+i1 + 1 .95
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/strcat.csd b/examples/strcat.csd
new file mode 100644
index 0000000..3d9832a
--- /dev/null
+++ b/examples/strcat.csd
@@ -0,0 +1,30 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o strcat.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+Sname = "beats"
+Sname strcat Sname, ".wav"
+asig soundin Sname
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/strcatk.csd b/examples/strcatk.csd
new file mode 100644
index 0000000..b67b63b
--- /dev/null
+++ b/examples/strcatk.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+; Audio out Audio in
+-odac -iadc ;;;RT audio I/O
+; For Non-realtime ouput leave only the line below:
+; -o strcatk.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+ sr = 48000
+ ksmps = 16
+ nchnls = 2
+ 0dbfs = 1
+
+; Example by Jonathan Murphy 2007
+
+ instr 1
+
+ S1 = "1"
+ S2 = " + 1"
+ ktrig init 0
+ kval init 2
+if (ktrig == 1) then
+ S1 strcatk S1, S2
+ kval = kval + 1
+endif
+ String sprintfk "%s = %d", S1, kval
+ puts String, kval
+ ktrig metro 1
+
+ endin
+
+</CsInstruments>
+<CsScore>
+i1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/strchar.csd b/examples/strchar.csd
new file mode 100644
index 0000000..baf7ad5
--- /dev/null
+++ b/examples/strchar.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+-ndm0
+</CsOptions>
+<CsInstruments>
+;example by joachim heintz 2013
+
+ opcode ToAscii, S, S ;returns the ASCII numbers of the input string as string
+
+Sin xin ;input string
+ilen strlen Sin ;its length
+ipos = 0 ;set counter to zero
+Sres = "" ;initialize output string
+loop: ;for all characters in input string:
+ichr strchar Sin, ipos ;get its ascii code number
+Snew sprintf "%d ", ichr ;put this number into a new string
+Sres strcat Sres, Snew ;append this to the output string
+ loop_lt ipos, 1, ilen, loop ;see comment for 'loop:'
+ xout Sres ;return output string
+ endop
+
+ instr Characters
+
+printf_i "\nCharacters:\n given as single strings: %s%s%s%s%s%s\n", 1, "c", "s", "o", "u", "n", "d"
+printf_i " but can also be given as numbers: %c%c%c%c%c%c\n", 1, 99, 115, 111, 117, 110, 100
+Scsound ToAscii "csound"
+printf_i " in csound, the ASCII code of a character can be accessed with the opcode strchar.%s", 1, "\n"
+printf_i " the name 'csound' returns the numbers %s\n\n", 1, Scsound
+ endin
+
+</CsInstruments>
+<CsScore>
+
+i "Characters" 0 0
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/strcmp.csd b/examples/strcmp.csd
new file mode 100644
index 0000000..c6d4af1
--- /dev/null
+++ b/examples/strcmp.csd
@@ -0,0 +1,48 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o strcmp.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+;modified example from Joachim Heintz
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+ opcode Triad, iii, S ;define UDO
+Sname xin
+iMaj strcmp "maj", Sname
+iMin strcmp "min", Sname
+iPrim = 8.00 ;notes in pitch notattion
+iQuint = 8.05
+ if iMaj == 0 then
+iTer = 8.03
+ elseif iMin == 0 then
+iTer = 8.02
+ endif
+ xout iPrim, iTer, iQuint
+ endop
+
+instr 1
+
+Sname strget p4
+ia, ib, ic Triad Sname ;apply UDO
+ print ia, ib, ic
+asig1 pluck 0.7, cpspch(ia), 220, 0, 1
+asig2 pluck 0.7, cpspch(ib), 220, 0, 1
+asig3 pluck 0.7, cpspch(ic), 220, 0, 1
+asig = (asig1+asig2+asig3)*.5
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+i1 0 3 "maj"
+i1 4 3 "min"
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/strcpyk.csd b/examples/strcpyk.csd
new file mode 100644
index 0000000..f6ec1bd
--- /dev/null
+++ b/examples/strcpyk.csd
@@ -0,0 +1,85 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o strcpyk.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+seed 0
+
+instr 1
+;get one element of the input string whenever the metro
+;triggers, and call a subinstrument to play the file
+
+Smember strget p4
+istrlen strlen Smember
+kprint init 0
+ktrig metro .6
+
+ ;whenever the trigger gives signal
+ if ktrig == 1 then
+ ;choose a random element (0, 1 or 2)
+kel random 0, 3.9999
+kel = int(kel)
+ ;make a copy for leaving Smember intact
+Scopy strcpyk Smember
+ ;set the initial index for reading substrings
+kndx = 0
+ ;set counter for searching the element
+kcount = 0
+ ;start looping over the elements in Smember
+loop:
+kdelim strindexk Scopy, ":"
+ ;as long as ":" occurs in Scopy, do:
+ if kdelim > 0 then
+ ;if this is the element to get
+ if kel == kcount then
+ ;read it as substring
+Sfile strsubk Scopy, kndx, kdelim
+kprint = kprint+1
+ ;and jump out
+ kgoto call
+ ;if not
+ else
+ ;cut off this element from Scopy
+Scopy strsubk Scopy, kdelim+1, istrlen
+ endif
+ ;if no element has been found,go back to loop
+ ;and look for the next element
+kcount = kcount+1
+ kgoto loop
+ ;if there is no delimiter left, the rest is the searched element
+ else
+Sfile strcpyk Scopy
+ endif
+call:
+ ;print the result, call the subinstrument and play the file
+ printf "kel = %d, file = '%s'\n", ktrig+kprint, kel, Sfile
+S_call sprintfk {{i 2 0 1 "%s"}}, Sfile
+ scoreline S_call, ktrig
+ endif
+
+endin
+
+instr 2 ;play
+Sfile strget p4
+ilen filelen Sfile
+p3 = ilen
+asig soundin Sfile
+ outs asig, asig
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 30 "mary.wav:fox.wav:beats.wav:flute.aiff"
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/streson.csd b/examples/streson.csd
index f2b215b..66cf925 100644
--- a/examples/streson.csd
+++ b/examples/streson.csd
@@ -1,46 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o streson.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
-; Instrument #1.
instr 1
- ; Generate a normal sine wave.
- asig oscils 1500, 440, 1
- ; Vary the fundamental frequency of the string
- ; resonator linearly from 220 to 880 Hertz.
- kfr line 220, p3, 880
- ifdbgain = 0.95
+asig diskin2 "fox.wav", 1, 0, 1
+
+kfr = p4
+ifdbgain = 0.90
- ; Run our sine wave through the string resonator.
- astres streson asig, kfr, ifdbgain
+astr streson asig, kfr, ifdbgain
+asig clip astr, 0, 1
+ outs asig, asig
- ; The resonance can get quite loud.
- ; So we'll clip the signal at 30,000.
- a1 clip astres, 1, 30000
- out a1
endin
-
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for five seconds.
-i 1 0 5
+i 1 0 1 20
+i 1 + . >
+i 1 + . >
+i 1 + . >
+i 1 + . >
+i 1 + . >
+i 1 + . 1000
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/strfromurl.csd b/examples/strfromurl.csd
new file mode 100644
index 0000000..a50eb91
--- /dev/null
+++ b/examples/strfromurl.csd
@@ -0,0 +1,30 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o strget.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+#include "http://codemist.co.uk/jpff/test.in"
+
+instr 2
+
+Sfile strget "http://codemist.co.uk/jpff/test.in"
+ prints Sfile
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 1
+i 2 + .
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/strget.csd b/examples/strget.csd
new file mode 100644
index 0000000..4bba1da
--- /dev/null
+++ b/examples/strget.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o strget.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+strset 1, "fox.wav"
+strset 2, "beats.wav"
+
+instr 1
+
+Sfile strget p4
+asig soundin Sfile
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2.7 1
+i 1 + 2 2
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/strindexk.csd b/examples/strindexk.csd
new file mode 100644
index 0000000..0d66a69
--- /dev/null
+++ b/examples/strindexk.csd
@@ -0,0 +1,85 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o strindexk.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+seed 0
+
+instr 1
+;get one element of the input string whenever the metro
+;triggers, and call a subinstrument to play the file
+
+Smember strget p4
+istrlen strlen Smember
+kprint init 0
+ktrig metro .5
+
+ ;whenever the trigger gives signal
+ if ktrig == 1 then
+ ;choose a random element (0, 1 or 2)
+kel random 0, 2.9999
+kel = int(kel)
+ ;make a copy for leaving Smember intact
+Scopy strcpyk Smember
+ ;set the initial index for reading substrings
+kndx = 0
+ ;set counter for searching the element
+kcount = 0
+ ;start looping over the elements in Smember
+loop:
+kdelim strindexk Scopy, ":"
+ ;as long as ":" occurs in Scopy, do:
+ if kdelim > 0 then
+ ;if this is the element to get
+ if kel == kcount then
+ ;read it as substring
+Sfile strsubk Scopy, kndx, kdelim
+kprint = kprint+1
+ ;and jump out
+ kgoto call
+ ;if not
+ else
+ ;cut off this element from Scopy
+Scopy strsubk Scopy, kdelim+1, istrlen
+ endif
+ ;if no element has been found,go back to loop
+ ;and look for the next element
+kcount = kcount+1
+ kgoto loop
+ ;if there is no delimiter left, the rest is the searched element
+ else
+Sfile strcpyk Scopy
+ endif
+call:
+ ;print the result, call the subinstrument and play the file
+ printf "kel = %d, file = '%s'\n", ktrig+kprint, kel, Sfile
+S_call sprintfk {{i 2 0 1 "%s"}}, Sfile
+ scoreline S_call, ktrig
+ endif
+
+endin
+
+instr 2 ;play
+Sfile strget p4
+ilen filelen Sfile
+p3 = ilen
+asig soundin Sfile
+ outs asig, asig
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 30 "mary.wav:fox.wav:beats.wav"
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/strlower.csd b/examples/strlower.csd
new file mode 100644
index 0000000..ff93deb
--- /dev/null
+++ b/examples/strlower.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n ;;;no sound output
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+</CsOptions>
+<CsInstruments>
+;example of Joachim Heintz
+
+ opcode FilSuf, S, So
+ ;returns the suffix of a filename or path, optional in lower case
+Spath,ilow xin
+ipos strrindex Spath, "." ;look for the rightmost '.'
+Suf strsub Spath, ipos+1 ;extract the substring after "."
+ if ilow != 0 then ;if ilow input is not 0 then
+Suf strlower Suf ;convert to lower case
+ endif
+ xout Suf
+ endop
+
+instr suff
+
+ilow = p4
+ prints "Printing suffix:\n"
+Suf FilSuf "/my/dir/my/file.WAV", ilow
+ puts Suf, 1
+
+endin
+</CsInstruments>
+<CsScore>
+i "suff" 0 1 0 ;do not convert to lower case
+i "suff" 3 1 1 ;convert to lower case
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/strrindex.csd b/examples/strrindex.csd
new file mode 100644
index 0000000..7273738
--- /dev/null
+++ b/examples/strrindex.csd
@@ -0,0 +1,30 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n ;;;no sound output
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+</CsOptions>
+<CsInstruments>
+;example by Joachim Heintz
+
+ opcode FilNam, S, S
+;returns the name of a file path
+Spath xin
+ipos strrindex Spath, "/" ;look for the rightmost '/'
+Snam strsub Spath, ipos+1 ;extract the substring
+ xout Snam
+ endop
+
+instr name
+ prints "Printing name:\n"
+Snam FilNam "/my/dir/my/file.WAV"
+ puts Snam, 1
+
+endin
+</CsInstruments>
+<CsScore>
+i "name" 0 0
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/subtracts.csd b/examples/subtracts.csd
index f59a15b..7d98738 100644
--- a/examples/subtracts.csd
+++ b/examples/subtracts.csd
@@ -1,33 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+; Audio out Audio in No messages
+-odac ;;;realtime audio I/O
; For Non-realtime ouput leave only the line below:
-; -o subtracts.wav -W ;;; for file output any platform
+; -o -.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- i1 = 24 - 8
- print i1
-endin
+idur = p3
+iatt = p4
+idec = p5
+isus = p3-iatt-idec ;calculate sustain time from subtracting attack and decay
+printf_i "sutain time= note duration - attack - decay --> %.1f-%.1f-%.1f = %.1f\n", 1, idur, iatt, idec, isus
+
+kenv expseg 0.01, iatt, 1, isus, 1, idec, 0.01 ;envelope
+asig poscil 1*kenv, 200, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 1 0 4096 10 1 ;sine wave
+; attack decay
+i 1 0 3 .1 .2
+i 1 4 3 .5 1.5
+i 1 8 5 4 .5
-; Play Instrument #1 for one second.
-i 1 0 1
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/sum.csd b/examples/sum.csd
new file mode 100644
index 0000000..6337373
--- /dev/null
+++ b/examples/sum.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o sum.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisine ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+a1 oscili 1, 10.0, gisine ;combine 3 sinusses
+a2 oscili 1, 1.0, gisine ;at different rates
+a3 oscili 1, 3.0, gisine
+ares sum a1, a2, a3 ;sum them
+
+ares = ares*100 ;scale result and
+asig poscil .5, ares+110, gisine ;add to frequency
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/sumarray.csd b/examples/sumarray.csd
new file mode 100644
index 0000000..c54d099
--- /dev/null
+++ b/examples/sumarray.csd
@@ -0,0 +1,32 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-n
+</CsOptions>
+<CsInstruments>
+;example by joachim heintz
+
+ seed 0
+
+instr 1
+;create an array with 10 elements
+kArr[] init 10
+;fill in random numbers and print them out
+kIndx = 0
+ until kIndx == 10 do
+kNum random 0, 10
+kArr[kIndx] = kNum
+ printf "kArr[%d] = %10f\n", kIndx+1, kIndx, kNum
+kIndx += 1
+ od
+;calculate sum of all values and print it out
+kSum sumarray kArr
+ printf "Sum of all values in kArr = %f\n", kIndx+1, kSum
+ turnoff
+endin
+</CsInstruments>
+<CsScore>
+i1 0 0.1
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/sym10.txt b/examples/sym10.txt
new file mode 100644
index 0000000..c8fd25e
--- /dev/null
+++ b/examples/sym10.txt
@@ -0,0 +1,21 @@
+0.00077015980911449011
+9.5632670722894754e-05
+-0.0086412992770224222
+-0.0014653825813050513
+0.045927239231092203
+0.011609893903711381
+-0.15949427888491757
+-0.070880535783243853
+0.47169066693843925
+0.7695100370211071
+0.38382676106708546
+-0.035536740473817552
+-0.0319900568824278
+0.049994972077376687
+0.0057649120335819086
+-0.02035493981231129
+-0.00080435893201654491
+0.0045931735853118284
+5.7036083618494284e-05
+-0.00045932942100465878
+
diff --git a/examples/syncgrain.csd b/examples/syncgrain.csd
index aacfcbe..bbc3c99 100755..100644
--- a/examples/syncgrain.csd
+++ b/examples/syncgrain.csd
@@ -1,16 +1,16 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o syncgrain.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-kr = 4410
-ksmps = 10
+sr = 44100
+ksmps = 32
+0dbfs = 1
nchnls = 2
instr 1
@@ -20,20 +20,21 @@ igrsize = 0.04
ifreq = iolaps/igrsize
ips = 1/iolaps
-istr = .5 /* timescale */
-ipitch = 1 /* pitchscale */
-
-a1 syncgrain 16000, ifreq, ipitch, igrsize, ips*istr, 1, 2, iolaps
- outs a1, a1
-endin
+istr = .3 /* timescale */
+ipitch = p4 /* pitchscale */
+asig syncgrain 1, ifreq, ipitch, igrsize, ips*istr, 1, 2, iolaps
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-f1 0 0 1 "beats.wav" 0 0 0
+f1 0 0 1 "fox.wav" 0 0 0 ;deferred table
f2 0 8192 20 2 1
-i1 0 4
- e
+i1 0 5 1
+i1 + 5 4
+i1 + 5 .8
+e
</CsScore>
</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/syncloop.csd b/examples/syncloop.csd
index 2af9e3b..37a40d2 100755..100644
--- a/examples/syncloop.csd
+++ b/examples/syncloop.csd
@@ -1,16 +1,16 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o syncloop.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-kr = 4410
-ksmps = 10
+sr = 44100
+ksmps = 32
+0dbfs = 1
nchnls = 2
instr 1
@@ -20,20 +20,20 @@ igrsize = 0.01
ifreq = iolaps/igrsize
ips = 1/iolaps
-istr = .5 /* timescale */
+istr = p4 /* timescale */
ipitch = 1 /* pitchscale */
-a1 syncloop 16000, ifreq, ipitch, igrsize, ips*istr, .3, .75, 1, 2, iolaps
- outs a1, a1
-endin
-
+asig syncloop 1, ifreq, ipitch, igrsize, ips*istr, .3, .75, 1, 2, iolaps
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
f1 0 0 1 "beats.wav" 0 0 0
f2 0 8192 20 2 1
-i1 0 6
+i1 0 6 .5
+i1 7 6 .15
e
</CsScore>
</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/t.csd b/examples/t.csd
new file mode 100644
index 0000000..173451c
--- /dev/null
+++ b/examples/t.csd
@@ -0,0 +1,40 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o t.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+aenv expseg .01, p3*0.25, 1, p3*0.75, 0.01
+asig poscil3 .8*aenv, p4, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1 ;sine wave
+
+t 0 240 12 30 15 240 ;start tempo = 240
+
+i 1 0 2 110 ;tempo = 240
+i 1 3 2 220 ;slow down &
+i 1 6 2 440 ;slow down &
+i 1 9 2 880 ;slow down &
+i 1 12 2 110 ;slow down to 30 at 12 seconds
+i 1 15 2 220 ;speed up to 240 again
+i 1 18 2 440 ;stay at tempo 240
+i 1 21 2 880
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/tab.csd b/examples/tab.csd
new file mode 100644
index 0000000..c0f5e9f
--- /dev/null
+++ b/examples/tab.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tab.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gifn1 ftgen 1, 0, 0, 1, "flute.aiff", 0, 4, 0 ;deferred-size table
+
+instr 1
+
+atab init 0
+isize tableng 1 ;length of table?
+print isize
+andx phasor 1 / (isize / sr)
+asig tab andx, 1, 1 ;has a 0 to 1 range
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 2.3
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tablecopy.csd b/examples/tablecopy.csd
new file mode 100644
index 0000000..af8a1a2
--- /dev/null
+++ b/examples/tablecopy.csd
@@ -0,0 +1,68 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tablecopy.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+;after an example from Jonathan Murphy
+
+gilen = 7
+gilist ftgen 1, 0, gilen + 1, -2, 2, 3, 4, 5, 6, 7 ;only 6 elements, so 1 is doubled
+gitmp ftgen 2, 0, gilen + 1, -2, 0 ;empty table
+gkmax init gilen
+
+seed 0 ;each time different
+
+instr 1
+
+ktrig metro 3 ;trigger values
+krnd random 0, gkmax
+
+if (ktrig == 1) then
+ kval table krnd, gilist
+ tablew 0, krnd, gilist
+ kread = 0
+ kwrite = 0
+start:
+ knew table kread, gilist
+if (knew != 0) then
+ tablew knew, kwrite, gitmp
+ kwrite = kwrite + 1
+endif
+ kread = kread + 1
+if (kread <= gilen) kgoto start
+ tablecopy gilist, gitmp ;fill with zeroes
+ gkmax = gkmax - 1
+endif
+
+printk2 kval
+
+if (gkmax < 0) then
+ event "i", 2, 0, 1/kr ;when ready, then stop
+endif
+
+asig vco2 .5, 40*kval ;sound generation
+outs asig, asig
+
+endin
+
+instr 2
+
+exitnow
+
+endin
+</CsInstruments>
+<CsScore>
+i1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/tablefilter.csd b/examples/tablefilter.csd
index f50006b..c092ad2 100644
--- a/examples/tablefilter.csd
+++ b/examples/tablefilter.csd
@@ -1,5 +1,6 @@
<CsoundSynthesizer>
<CsOptions>
+
</CsOptions>
<CsInstruments>
@@ -7,20 +8,22 @@ sr=44100
ksmps=10
nchnls=1
- gifarn init 8 ; initialise integer for Farey Sequence F_8
+ gifarn init 8 ; initialise integer for Farey Sequence F_8
gires fareyleni gifarn ; calculate length of F_8, returns 23
- ; the table length won't be a power of 2
+ ; the table length won't be a power of 2
; (The length of a Farey Sequence with n > 1 is always odd)
- gilen init gires * -1
-
+ gilen init gires * -1
+
+ gifarey ftgen 200, 0, gilen, "farey", gifarn, 0
+
; initialize destiniation table with 0s
gifiltered ftgen 0, 0, gilen, 21, 1, 0
; initialize second destiniation table with 0s
gifiltered2 ftgen 0, 0, gilen, 21, 1, 0
-
- ; table filtering opcode: dest. source, mode, threshold
- ginumpassed tablefilteri gifiltered, gifarey, 1, 6
+
+ ; table filtering opcode: dest. source, mode, threshold
+ ginumpassed tablefilteri gifiltered, gifarey, 1, 6
; the threshold parameter indicates that denominators whose weights are heavier
; than 6 are not passing through the filter. The weight is calculated using
; Clarence Barlow's function of indigestibility of a number. According to this function,
@@ -29,36 +32,36 @@ nchnls=1
; that have passed the test and which have been copied to the destination table 'gifiltered'
; apply a different filter:
- ginumpassed2 tablefilteri gifiltered2, gifarey, 2, 5
+ ginumpassed2 tablefilteri gifiltered2, gifarey, 2, 5
; In mode=2 we again test the digestibility of the denominators of the
; fractions in the source table.
; The difference to mode=1 is that we now let pass only vaules from the
- ; source that are as heavy as the threshold or greater.
+ ; source that are as heavy as the threshold or greater.
-instr 4
+instr 4
kndx init 0 ; read out elements of now filtered F_8 sequentially and print to file
- if (kndx < ginumpassed) then
- kelem tab kndx, gifiltered
- fprintks "fareyfilter_lp.txt", "%2.6f\\n", kelem
- kndx = kndx+1
- endif
+ if (kndx < ginumpassed) then
+ kelem tab kndx, gifiltered
+ fprintks "fareyfilter_lp.txt", "%2.6f\\n", kelem
+ kndx = kndx+1
+ endif
endin
instr 5
kndx init 0 ; read out elements and print to file
- if (kndx < ginumpassed2) then
- kelem tab kndx, gifiltered2
- fprintks "fareyfilter_hp.txt", "%2.6f\\n", kelem
- kndx = kndx+1
+ if (kndx < ginumpassed2) then
+ kelem tab kndx, gifiltered2
+ fprintks "fareyfilter_hp.txt", "%2.6f\\n", kelem
+ kndx = kndx+1
endif
endin
</CsInstruments>
<CsScore>
-f1 0 23 "farey" 8
-i4 0 1
-i5 0 1
+
+i4 0 1
+i5 0 1
e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/tablei.csd b/examples/tablei.csd
new file mode 100644
index 0000000..eaa6d46
--- /dev/null
+++ b/examples/tablei.csd
@@ -0,0 +1,66 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tablei.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+seed 0 ;generate new values every time the instr is played
+
+instr 1
+
+ifn = p4
+isize = p5
+ithresh = 0.5
+
+itemp ftgen ifn, 0, isize, 21, 2
+
+iwrite_value = 0
+i_index = 0
+
+loop_start:
+ iread_value tablei i_index, ifn
+
+ if iread_value > ithresh then
+ iwrite_value = 1
+ else
+ iwrite_value = -1
+ endif
+tableiw iwrite_value, i_index, ifn
+loop_lt i_index, 1, isize, loop_start
+ turnoff
+
+endin
+
+instr 2
+
+ifn = p4
+isize = ftlen(ifn)
+prints "Index\tValue\n"
+
+i_index = 0
+loop_start:
+ ivalue tablei i_index, ifn
+ prints "%d:\t%f\n", i_index, ivalue
+
+ loop_lt i_index, 1, isize, loop_start ;read table 1 with our index
+
+aout oscili .5, 100, ifn ;use table to play the polypulse
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+i 1 0 1 100 16
+i 2 0 2 100
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tableikt.csd b/examples/tableikt.csd
new file mode 100644
index 0000000..1d457ea
--- /dev/null
+++ b/examples/tableikt.csd
@@ -0,0 +1,52 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tableikt.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ilowfn = p4 ;lowest ftable wave
+ihighfn = p5 ;highest ftable wave
+
+kswpenv line 1, p3, 0 ;sweep envelope, calculate current table pair and interpolation amount
+inumtables = ihighfn - ilowfn ;1 less than number of tables
+kfn1 = int(kswpenv*inumtables) + ilowfn
+ printks "play table no: %d\n", 1, kfn1
+kfn2 = kfn1 + 1
+kinterp = frac(kswpenv*inumtables)
+ixmode = 1 ;read tables with phasor
+aphase phasor 40
+asig tableikt aphase, kfn1, ixmode ;normalized index
+ if kswpenv == 1.0 kgoto skipfn2 ;if kfn1 is last table, there is no kfn2
+ asig2 tableikt aphase, kfn2, ixmode
+ skipfn2:
+ amix ntrpol asig, asig2, kinterp ;interpolate between tables and output
+ outs amix*.5, amix*.5
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1
+f 2 0 16384 10 1 .5
+f 3 0 16384 1 "fox.wav" 0 0 0 ;a sample
+f 4 0 16384 10 1 .5 .3 .25 .2 .16 .14 .125 .111 ;sawtooth
+f 5 0 16384 10 1 .4 .3 .25 .2
+f 6 0 16384 10 1 .3 .3 .25 .2 .16
+f 7 0 16384 10 1 1 1 1 .7 .5 .3 .1 ;pulse
+f 8 0 16384 1 "beats.wav" 0 0 0 ;a sample
+
+i 1 0 10 1 8
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/tableimix.csd b/examples/tableimix.csd
new file mode 100644
index 0000000..83c2990
--- /dev/null
+++ b/examples/tableimix.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tableimix.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisine ftgen 1, 0, 256, 10, 1, 0, 0, .4 ;sinoid
+gisaw ftgen 2, 0, 1024, 7, 0, 256, 1 ;saw
+gimix ftgen 100, 0, 256, 7, 0, 256, 1 ;used to mix
+
+instr 1
+
+ tableimix 100, 0, 256, 1, 0, 1, 2, 0, .5
+asig poscil .5, 110, gimix ;mix table 1 & 2
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tableiw.csd b/examples/tableiw.csd
new file mode 100644
index 0000000..3fe6510
--- /dev/null
+++ b/examples/tableiw.csd
@@ -0,0 +1,66 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tableiw.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+seed 0 ;generate new values every time the instr is played
+
+instr 1
+
+ifn = p4
+isize = p5
+ithresh = 0.5
+
+itemp ftgen ifn, 0, isize, 21, 2
+
+iwrite_value = 0
+i_index = 0
+
+loop_start:
+ iread_value tablei i_index, ifn
+
+ if iread_value > ithresh then
+ iwrite_value = 1
+ else
+ iwrite_value = -1
+ endif
+tableiw iwrite_value, i_index, ifn
+loop_lt i_index, 1, isize, loop_start
+ turnoff
+
+endin
+
+instr 2
+
+ifn = p4
+isize = ftlen(ifn)
+prints "Index\tValue\n"
+
+i_index = 0
+loop_start:
+ ivalue tablei i_index, ifn
+ prints "%d:\t%f\n", i_index, ivalue
+
+ loop_lt i_index, 1, isize, loop_start ;read table 1 with our index
+
+aout oscili .5, 100, ifn ;use table to play the polypulse
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+i 1 0 1 100 16
+i 2 0 2 100
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/tablekt.csd b/examples/tablekt.csd
new file mode 100644
index 0000000..d768531
--- /dev/null
+++ b/examples/tablekt.csd
@@ -0,0 +1,44 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tablekt.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+seed 0
+
+gift1 ftgen 1, 0, 1024, 10, 1 ;sine wave
+gift2 ftgen 2, 0, 1024, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1 ;pulse
+
+
+instr 1
+andx phasor 400 ;phasor for reading the index
+kfn init 1 ;initialize the choice of the function table
+kmetro init 1 ;initialize the frequency of the metro
+knewft metro kmetro ;make a new choice for selecting the function table once a second
+
+if knewft == 1 then
+ kfn = (kfn == 1 ? 2 : 1) ;switch between 1 and 2
+ kmetro random .5, 2 ;create new metro frequency
+ printk2 kfn
+endif
+
+ares tablekt andx, kfn, 1
+outs ares, ares
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/tablemix.csd b/examples/tablemix.csd
new file mode 100644
index 0000000..3f24952
--- /dev/null
+++ b/examples/tablemix.csd
@@ -0,0 +1,35 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tablemix.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisinoid ftgen 1, 0, 256, 10, 1, 0, 0, .4 ;sinoid
+gisaw ftgen 2, 0, 1024, 7, 0, 256, 1 ;saw
+gimix ftgen 100, 0, 256, 7, 0, 256, 1 ;destination table
+
+instr 1
+
+kgain linseg 0, p3*.5, .5, p3*.5, 0
+ tablemix 100, 0, 256, 1, 0, 1, 2, 0, kgain
+asig poscil .5, 110, gimix ;mix table 1 & 2
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tableng.csd b/examples/tableng.csd
index e6ced1e..1fed969 100644
--- a/examples/tableng.csd
+++ b/examples/tableng.csd
@@ -1,39 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o tableng.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- ; Let's look at Table #1.
- ifn = 1
- ilen tableng ifn
+gifn1 ftgen 1, 0, 0, 1, "flute.aiff", 0, 4, 0 ;deferred-size table
- print ilen
-endin
+instr 1
+isize tableng 1
+print isize
+andx phasor 1 / (isize / sr) ;play at correct pitch
+asig tab andx, 1, 1
+ outs asig, asig
-</CsInstruments>
-<CsScore>
+endin
+</CsInstruments>
+<CsScore>
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for one second.
-i 1 0 1
+i 1 0 2.3
e
-
-
-</CsScore>
+</CsScore>
</CsoundSynthesizer>
diff --git a/examples/tableseg.csd b/examples/tableseg.csd
new file mode 100644
index 0000000..99c6741
--- /dev/null
+++ b/examples/tableseg.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tableseg.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+; analyze "fox.wav" with PVANAL first
+iend = p4
+ktime line 0, p3, iend
+ tableseg p5, p3, p6 ;morph from table 1
+asig vpvoc ktime, 1, "fox.pvx" ;to table 2
+ outs asig*3, asig*3
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 512 9 .5 1 0
+f 2 0 512 7 0 20 1 30 0 230 0 232 1
+
+i 1 0 10 2.7 1 2
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tablexseg.csd b/examples/tablexseg.csd
new file mode 100644
index 0000000..c667fa2
--- /dev/null
+++ b/examples/tablexseg.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tablexseg.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+; analyze "fox.wav" with PVANAL first
+iend = p4
+ktime line 0, p3, iend
+ tablexseg p5, p3, p6 ;morph from table 1
+asig vpvoc ktime, 1, "fox.pvx" ;to table 2
+ outs asig*3, asig*3
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 512 9 .5 1 0
+f 2 0 512 5 1 60 0.01 390 0.01 62 1
+
+i 1 0 5 2.7 1 2
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tabmorph.csd b/examples/tabmorph.csd
new file mode 100644
index 0000000..ff838af
--- /dev/null
+++ b/examples/tabmorph.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tabmorph.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 8193, 10, 1 ;sine wave
+giSquare ftgen 0, 0, 8193, 7, 1, 4096, 1, 0, -1, 4096, -1 ;square wave
+giTri ftgen 0, 0, 8193, 7, 0, 2048, 1, 4096, -1, 2048, 0 ;triangle wave
+giSaw ftgen 0, 0, 8193, 7, 1, 8192, -1 ;sawtooth wave, downward slope
+
+instr 1
+
+iamp = .7
+kindex phasor 440 ;read table value at this index
+kindex = kindex*8192 ;for all 8192 index points
+kweightpoint = 0.5 ;set weightpoint
+ktabnum1 line 0, p3, 3 ;morph through all tables
+ktabnum2 = 2 ;set to triangle wave
+ksig tabmorph kindex, kweightpoint, ktabnum1, ktabnum2, giSine, giSquare, giTri, giSaw
+ksig = ksig*iamp
+asig interp ksig ;convert to audio signal
+outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tabmorpha.csd b/examples/tabmorpha.csd
new file mode 100644
index 0000000..50e41de
--- /dev/null
+++ b/examples/tabmorpha.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tabmorpha.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs =1
+
+giSine ftgen 0, 0, 8193, 10, 1 ; sine wave
+giSquare ftgen 0, 0, 8193, 7, 1, 4096, 1, 0, -1, 4096, -1 ; square wave
+giTri ftgen 0, 0, 8193, 7, 0, 2048, 1, 4096, -1, 2048, 0 ; triangle wave
+giSaw ftgen 0, 0, 8193, 7, 1, 8192, -1 ; sawtooth wave, downward slope
+
+
+instr 1
+
+iamp = .7
+aindex phasor 110 ; read table value at this index
+aweightpoint = 0 ; set weightpoint
+atabnum1 line 0, p3, 3 ; morph through all tables
+atabnum2 = 2 ; set to triangle wave
+asig tabmorpha aindex, aweightpoint, atabnum1,atabnum2, giSine, giSquare, giTri, giSaw
+asig = asig*iamp
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 10
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/tabmorphak.csd b/examples/tabmorphak.csd
new file mode 100644
index 0000000..31c714e
--- /dev/null
+++ b/examples/tabmorphak.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tabmorphak.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs =1
+
+giSine ftgen 0, 0, 8193, 10, 1 ; sine wave
+giSquare ftgen 0, 0, 8193, 7, 1, 4096, 1, 0, -1, 4096, -1 ; square wave
+giTri ftgen 0, 0, 8193, 7, 0, 2048, 1, 4096, -1, 2048, 0 ; triangle wave
+giSaw ftgen 0, 0, 8193, 7, 1, 8192, -1 ; sawtooth wave, downward slope
+
+instr 1
+
+iamp = .7
+aindex phasor 110 ; read table value at this index
+kweightpoint expon 0.001, p3, 1 ; using the weightpoint to morph between two tables exponentially
+ktabnum1 = p4 ; first wave, it morphs to
+ktabnum2 = p5 ; the second wave
+asig tabmorphak aindex, kweightpoint, ktabnum1,ktabnum2, giSine, giSquare, giTri, giSaw
+asig = asig*iamp
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 5 0 1 ;from sine to square wave
+i1 6 5 2 3 ;from triangle to saw
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/tabmorphi.csd b/examples/tabmorphi.csd
new file mode 100644
index 0000000..89320f9
--- /dev/null
+++ b/examples/tabmorphi.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tabmorphi.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 8193, 10, 1 ;sine wave
+giSquare ftgen 0, 0, 8193, 7, 1, 4096, 1, 0, -1, 4096, -1 ;square wave
+giTri ftgen 0, 0, 8193, 7, 0, 2048, 1, 4096, -1, 2048, 0 ;triangle wave
+giSaw ftgen 0, 0, 8193, 7, 1, 8192, -1 ;sawtooth wave, downward slope
+
+instr 1
+
+iamp = .7
+kindex phasor 440 ;read table value at this index
+kindex = kindex*8192 ;for all 8192 index points
+kweightpoint = 0.5 ;set weightpoint
+ktabnum1 line 0, p3, 3 ;morph through all tables
+ktabnum2 = 2 ;set to triangle wave
+ksig tabmorphi kindex, kweightpoint, ktabnum1, ktabnum2, giSine, giSquare, giTri, giSaw
+ksig = ksig*iamp
+asig interp ksig ;convert to audio signal
+outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tabsum.csd b/examples/tabsum.csd
new file mode 100644
index 0000000..8e944b0
--- /dev/null
+++ b/examples/tabsum.csd
@@ -0,0 +1,44 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+; For Non-realtime ouput leave only the line below:
+; -o tab.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 2205
+nchnls = 1
+0dbfs = 1
+
+instr 1 ;;; Give a value to the increment
+ kmax = 256
+ knorm tabsum 1, 0, kmax
+ gkinc = knorm/10
+endin
+
+instr 2
+ kmax = 256
+ kx = rnd(kmax)
+ krnd tabsum 1, 0, kx
+ knorm tabsum 1, 0, kmax
+ kvar = krnd / knorm ;;; now n [0,1] range
+ asig oscil kvar, p4, 2
+ out asig
+;;; Make randomness give 1 more often
+ kc tab 0, 1
+ tablew kc+gkinc, 0, 1
+endin
+</CsInstruments>
+
+<CsScore>
+f1 0 256 21 1
+f2 0 4096 10 1
+i1 0 0.1
+i2 0.1 3 440
+e
+
+</CsScore>
+
+</CsoundSynthesizer>
diff --git a/examples/tambourine.csd b/examples/tambourine.csd
index f3fedd1..a520691 100644
--- a/examples/tambourine.csd
+++ b/examples/tambourine.csd
@@ -1,32 +1,31 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o tambourine.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 22050
-kr = 2205
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1: An example of a tambourine.
-instr 01
- a1 tambourine 15000, 0.01
-
- out a1
-endin
+instr 1
+idamp = p4
+asig tambourine .8, 0.01, 30, idamp
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-i 1 0 1
+i 1 0 .2 0
+i 1 + .2 >
+i 1 + 1 .7
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/tanh.csd b/examples/tanh.csd
index 6732991..26ea187 100644
--- a/examples/tanh.csd
+++ b/examples/tanh.csd
@@ -13,19 +13,21 @@ sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
+0dbfs = 1
; Instrument #1.
instr 1
- irad = 1
- i1 = tanh(irad)
-
- print i1
+ asig1 vco 1, 440, 2, 0.4, 1
+ asig2 vco 1, 800, 3, 0.5, 1
+ asig = asig1+asig2 ;; will go out of range
+ out tanh(asig) ;; but tanh is a limiter
endin
</CsInstruments>
<CsScore>
+f1 0 65536 10 1
; Play Instrument #1 for one second.
i 1 0 1
e
diff --git a/examples/temposcal.csd b/examples/temposcal.csd
new file mode 100644
index 0000000..fc71c8e
--- /dev/null
+++ b/examples/temposcal.csd
@@ -0,0 +1,35 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o temposcal.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ilock = p4
+itab = 1
+ipitch = 1
+iamp = 0.8
+ktime linseg 0.3, p3/2, 0.8, p3/2, 0.3
+asig temposcal ktime, iamp, ipitch, itab, ilock
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 0 1 "fox.wav" 0 4 0
+
+i 1 0 3.8 0 ;no locking
+i 1 4 3.8 1 ;locking
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tigoto.csd b/examples/tigoto.csd
new file mode 100644
index 0000000..606e6d8
--- /dev/null
+++ b/examples/tigoto.csd
@@ -0,0 +1,45 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tigoto.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+idur = abs(p3) ;make p3 positive even if p3 is negative in score
+itiv tival
+i1 = -1 ;assume this is tied note, so keep fase of oscili
+ tigoto slur ;no reinitialisation on tied notes
+i1 = 0 ;first note, so reset phase
+aatt line p4, idur, 0 ;primary envelope
+
+slur:
+ if itiv==0 kgoto note ;no expression on first and second note
+aslur linseg 0, idur*.3, p4, idur*.7, 0 ;envelope for slurred note
+aatt = aatt + aslur
+
+note:
+asig oscili aatt, p5, 1, i1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 4096 10 1 ;sine wave
+
+i1 0 -5 .8 451 ;p3 = 5 seconds
+i1 1.5 -1.5 .1 512
+i1 3 2 .7 440 ;3 notes together--> duration = 5 seconds
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/timedseq.csd b/examples/timedseq.csd
new file mode 100644
index 0000000..6675625
--- /dev/null
+++ b/examples/timedseq.csd
@@ -0,0 +1,58 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o timedseq.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giseq ftgen 0,0,128,-2, 2, 0, 0.5, 8.00,\ ;first note
+ 2, 1, 0.5, 8.02,\ ;second note
+ 2, 2, 0.5, 8.04,\ ;third
+ 2, 3, 0.5, 8.05,\ ;fourth
+ 2, 4, 0.5, 8.07,\ ;fifth
+ 2, 5, 0.5, 8.09,\ ;sixth
+ 2, 6, 0.5, 8.11,\ ;seventh
+ 2, 7, 0.5, 9.00,\ ;eight note
+ 2, 8, 0.5, 8.00,\ ;due to a quirk in the opcode, it needs an extra note - a copy of the first note
+ -1, 8, -1, -1 ;last line is a dummy event that indicates to timedseq when to loop back to the beginning
+
+instr 1
+
+ibeats = 8 ;lengths of sequence in beats
+itempo = p4 ;tempo
+iBPS = itempo/60 ;beats per second
+kphase phasor iBPS/ibeats ;phasor to move through table
+kpointer = kphase*ibeats ;multiply phase (range 0 - 1) by the number of beats contained within the sequence
+kp1 init 0
+kp2 init 0
+kp3 init 0
+kp4 init 0
+ktrigger timedseq kpointer, giseq, kp1, kp2,kp3, kp4
+schedkwhen ktrigger, 0, 0, 2, 0, kp3/abs(iBPS), kp4 ;p3 values have been scaled according to tempo so that they maesure beats rather than seconds
+endin ;abs(iBPS)(absolute value) is used because the tempo provided by the fourth note of the score is negative.
+ ;Durations here should be positive, because negative values for duration would indicate a held note.
+instr 2
+
+aenv linseg 0,0.01,1,p3-0.01,0 ;amplitude envelope
+asig vco2 0.4, cpspch(p4), 4, 0.5
+ outs asig*aenv, asig*aenv
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 4 120
+i 1 + . 240
+i 1 + . 480
+i 1 + . -480 ;when negative it plays backwards
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/timeinsts.csd b/examples/timeinsts.csd
index c0fd1ea..7f71c0d 100644
--- a/examples/timeinsts.csd
+++ b/examples/timeinsts.csd
@@ -1,34 +1,37 @@
-<CsoundSynthesizer>
-<CsOptions>
-; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
-; For Non-realtime ouput leave only the line below:
-; -o timeinsts.wav -W ;;; for file output any platform
-</CsOptions>
-<CsInstruments>
-
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Print out the value from timeinsts every half-second.
- k1 timeinsts
- printks "k1 = %f seconds\\n", 0.5, k1
-endin
-
-
-</CsInstruments>
-<CsScore>
-
-; Play Instrument #1 for two seconds.
-i 1 0 2
-e
-
-
-</CsScore>
-</CsoundSynthesizer>
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o timeinsts.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+kvib init 1
+ktim timeinsts ;read time
+
+if ktim > 2 then ;do something after 2 seconds
+ kvib oscili 2, 3, giSine ;make a vibrato
+endif
+
+asig poscil .5, 600+kvib, giSine ;add vibrato
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/times_complex.csd b/examples/times_complex.csd
new file mode 100644
index 0000000..cbd5280
--- /dev/null
+++ b/examples/times_complex.csd
@@ -0,0 +1,69 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o times_complex.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+;by joachim heintz and rory walsh
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giWave ftgen 0, 0, 1024, 10, 1, .5, .25
+
+instr again
+
+instance = p4
+ ;reset the duration of this instance
+iDur rnd31 5, 3 ;shorter values are more probable
+iDur = abs(iDur) + 0.2
+p3 = iDur
+ ;trigger the effect instrument of this instance
+ event_i "i", "fx_processor", 0, iDur, instance
+ ;print the status quo
+kTime times
+ prints "instance = %d, start = %f, duration = %f\n", instance, i(kTime), iDur
+ ;make sound
+iamp active 1 ;scale amplitudes
+iOct random 5, 10 ;find pitch
+aEnv transeg 0, 0.02, 0, 1/iamp, p3-0.02, -6, 0 ;output envelope
+aSend poscil aEnv, cpsoct(iOct), giWave ;audio signal
+ ;send signal to effect instrument
+Sbus sprintf "audio_%d", instance ;create unique software bus
+ chnset aSend/2, Sbus ;send audio on this bus
+ ;get the last k-cycle of this instance and trigger the successor in it
+kLast release
+ schedkwhen kLast, 0, 0, "again", 0, 1, instance+1
+endin
+
+instr fx_processor
+ ;apply feedback delay to the above instrument
+iwhich = p4 ;receive instance number ...
+Sbus sprintf "audio_%d", iwhich ; ... and related software bus
+audio chnget Sbus ;receive audio on this bus
+irvbtim random 1, 5 ;find reverb time
+p3 = p3+irvbtim ;adjust instrument duration
+iltptmL random .1, .5 ;find looptime left ...
+iltptmR random .1, .5 ;...and right
+ipan random 0, 1 ; pan and ...
+imix random 0, 1 ;... mix audio
+aL,aR pan2 audio, ipan ;create stereo
+awetL comb aL, irvbtim, iltptmL ;comb filter
+awetR comb aR, irvbtim, iltptmR
+aoutL ntrpol aL, awetL, imix ;wet-dry mix
+aoutR ntrpol aR, awetR, imix
+ outs aoutL/2, aoutR/2
+endin
+
+</CsInstruments>
+<CsScore>
+i "again" 0 1 1
+
+e 3600
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/timout.csd b/examples/timout.csd
new file mode 100644
index 0000000..45cc673
--- /dev/null
+++ b/examples/timout.csd
@@ -0,0 +1,52 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o timout.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+indx = 0
+itim = p4 ;change time for one step
+
+clock:
+ timout 0, itim, time
+ reinit clock
+
+time:
+ itmp table indx, 2, 0, 0, 1
+ if itmp == 1 then
+ print itmp
+ event_i "i",2, 0, .1 ;event has duration of .1 second
+endif
+indx = indx+1
+
+endin
+
+instr 2 ;play it
+
+kenv transeg 0.01, p3*0.25, 1, 1, p3*0.75, .5, 0.01
+asig oscili kenv*.4, 400, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 1024 10 1 ;sine
+f 2 0 16 2 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 ;the rythm table
+
+i1 0 10 .1
+i1 + 10 .05
+i1 + 10 .01
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tival.csd b/examples/tival.csd
new file mode 100644
index 0000000..a86b5ca
--- /dev/null
+++ b/examples/tival.csd
@@ -0,0 +1,45 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tival.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+idur = abs(p3) ;make p3 positive even if p3 is negative in score
+itiv tival
+i1 = -1 ;assume this is tied note, so keep fase of oscili
+ tigoto slur ;no reinitialisation on tied notes
+i1 = 0 ;first note, so reset phase
+aatt line p4, idur, 0 ;primary envelope
+
+slur:
+ if itiv==0 kgoto note ;no expression on first and second note
+aslur linseg 0, idur*.3, p4, idur*.7, 0 ;envelope for slurred note
+aatt = aatt + aslur
+
+note:
+asig oscili aatt, p5, 1, i1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 4096 10 1 ;sine wave
+
+i1 0 -5 .8 451 ;p3 = 5 seconds
+i1 1.5 -1.5 .1 512
+i1 3 2 .7 440 ;3 notes together--> duration = 5 seconds
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tlineto.csd b/examples/tlineto.csd
new file mode 100644
index 0000000..a4bbca1
--- /dev/null
+++ b/examples/tlineto.csd
@@ -0,0 +1,38 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tlineto.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+
+kmtr lfo 1, .5, 1 ;produce trigger signal
+ktr trigger kmtr, .5, 0 ;with triangle wave
+
+ktime = p4
+kfreq randh 1000, 3, .2, 0, 500 ;generate random values
+kfreq tlineto kfreq, ktime, ktr ;different glissando times
+aout poscil .4, kfreq, giSine
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 10 .2 ;short glissando
+i 1 11 10 .8 ;longer glissande
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tone.csd b/examples/tone.csd
index 27008b1..675359e 100755..100644
--- a/examples/tone.csd
+++ b/examples/tone.csd
@@ -1,31 +1,30 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o tone.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
+sr = 44100
+ksmps = 32
+0dbfs = 1
nchnls = 2
-
instr 1
-a1 diskin2 "beats.wav", 1
- outs a1, a1
+asig diskin2 "beats.wav", 1
+ outs asig, asig
endin
instr 2
-a1 diskin2 "beats.wav", 1
-a1 tone a1, 500
- outs a1, a1
+kton line 10000, p3, 0 ;all the way down to 0 Hz
+asig diskin2 "beats.wav", 1
+asig tone asig, kton ;half-power point at 500 Hz
+ outs asig, asig
endin
</CsInstruments>
@@ -37,4 +36,4 @@ i 2 2 2
e
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/tonek.csd b/examples/tonek.csd
new file mode 100644
index 0000000..e062910
--- /dev/null
+++ b/examples/tonek.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o tonek.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisin ftgen 0, 0, 2^10, 10, 1
+
+instr 1
+
+ksig randomh 400, 1800, 150
+aout poscil .2, 100+ksig, gisin
+ outs aout, aout
+endin
+
+instr 2
+
+ksig randomh 400, 1800, 150
+khp line 1, p3, 100 ;vary high-pass
+ksig tonek ksig, khp
+aout poscil .2, 100+ksig, gisin
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+
+i 1 0 5
+i 2 5.5 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/tonex.csd b/examples/tonex.csd
index 1863578..b31329c 100755..100644
--- a/examples/tonex.csd
+++ b/examples/tonex.csd
@@ -1,44 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o tonex.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-
-sr = 44100
-kr = 4410
-ksmps = 10
+sr = 44100
+ksmps = 32
+0dbfs = 1
nchnls = 2
-
instr 1
-a1 diskin2 "beats.wav", 1
- outs a1, a1
+asig diskin2 "beats.wav", 1
+ outs asig, asig
endin
instr 2
-a1 diskin2 "beats.wav", 1
-a1 tonex a1, 500, 12
- outs a1, a1
+kton line 10000, p3, 0 ;all the way down to 0 Hz
+asig diskin2 "beats.wav", 1
+asig tonex asig, kton, 8 ;8 filters
+ outs asig, asig
endin
-
-
</CsInstruments>
<CsScore>
-
i 1 0 2
-i 2 2 2
+i 2 3 2
e
-
-
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/tradsyn.csd b/examples/tradsyn.csd
index 934e8d0..29e7154 100755..100644
--- a/examples/tradsyn.csd
+++ b/examples/tradsyn.csd
@@ -1,38 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o tradsyn.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
instr 1
-ain diskin2 "beats.wav", 1
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-aout tradsyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th)
+ipch = p4
+ain diskin2 "beats.wav", 1
+fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
+fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
+aout tradsyn fst, 1, ipch, 500, 1 ; resynthesis
+ outs aout, aout
- outs aout, aout
endin
-
-
</CsInstruments>
<CsScore>
f1 0 8192 10 1
-i 1 0 3
-
+i 1 0 2 1.5 ;up a 5th
+i 1 + 2 .5 ;octave down
e
-
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/trandom.csd b/examples/trandom.csd
index 566250f..1d52c6f 100755..100644
--- a/examples/trandom.csd
+++ b/examples/trandom.csd
@@ -1,39 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
-
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o trandom.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- ; Generate a random number between 220 and 440.
- kmin init 220
- kmax init 440
- ktrig = p4
- k1 trandom ktrig, kmin, kmax
-
- printks "k1 = %f\\n", 0.1, k1
-endin
+seed 0 ; every run time different values
+instr 1
+
+kmin init 0 ;random number between 0 and 220
+kmax init 220
+ktrig = p4
+k1 trandom ktrig, kmin, kmax
+ printk2 k1 ;print when k1 changes
+asig poscil .4, 220+k1, 1 ;if triggered, add random values to frequency
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f1 0 4096 10 1
-; Play Instrument #1 for one second.
-i 1 0 1 0
-i 1 + 1 1
+i 1 0 2 0 ;not triggered
+i 1 + 2 1 ;triggered
e
-
-
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/transegb.csd b/examples/transegb.csd
new file mode 100644
index 0000000..21daf09
--- /dev/null
+++ b/examples/transegb.csd
@@ -0,0 +1,41 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+; Audio out Audio in
+-odac -iadc ;;;RT audio I/O
+; For Non-realtime ouput leave only the line below:
+; -o transeg.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 128
+nchnls = 2
+
+0dbfs = 1
+
+instr 1
+;p4 and p5 determine the type of curve for each
+;section of the envelope
+kenv transegb 0.01, p3*0.25, p4, 1, p3, p5, 0.01
+a1 oscil kenv, 440, 1
+outs a1, a1
+endin
+
+</CsInstruments>
+<CsScore>
+; Table #1, a sine wave.
+f 1 0 16384 10 1
+
+i 1 0 2 2 2
+i 1 + . 5 5
+i 1 + . 1 1
+i 1 + . 0 0
+i 1 + . -2 -2
+i 1 + . -2 2
+i 1 + . 2 -2
+e
+</CsScore>
+</CsoundSynthesizer>
+
+
diff --git a/examples/transegr.csd b/examples/transegr.csd
new file mode 100644
index 0000000..a64185d
--- /dev/null
+++ b/examples/transegr.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o transegr.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+icps cpsmidi
+iamp ampmidi .2
+; st,dur1,typ1,val,dur2,typ2,end
+kenv transegr 0, .2, 2, .5, 1, - 3, 0
+asig pluck kenv*iamp, icps, icps, 1, 1
+ outs asig, asig
+
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 4096 10 1 ;sine
+
+f0 30 ;runs 30 seconds
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/trcross.csd b/examples/trcross.csd
index 642ae68..e6fc277 100755..100644
--- a/examples/trcross.csd
+++ b/examples/trcross.csd
@@ -1,44 +1,42 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o trcross.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
-
+0dbfs = 1
instr 1
-ain1 diskin2 "beats.wav", 1, 0, 1
-ain2 diskin2 "fox.wav", 1
-fs1,fsi2 pvsifd ain1,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fs11,fsi12 pvsifd ain2,2048,512,1 ; ifd analysis (second input)
-fst1 partials fs11,fsi12,.003,1,3,500 ; partial tracking \(second input
-fcr trcross fst,fst1, 1.05, 1,p4 ; cross-synthesis (mode 0 and mode 1)
-aout tradsyn fcr, 1, 1, 500, 1 ; resynthesis of tracks
- outs aout*10, aout*10
+ain1 diskin2 "beats.wav", 1, 0, 1
+ain2 diskin2 "fox.wav", 1
-endin
+imode = p4
+fs1,fsi2 pvsifd ain1, 2048, 512, 1 ; ifd analysis
+fst partials fs1, fsi2, .01, 1, 3, 500 ; partial tracking
+fs11,fsi12 pvsifd ain2, 2048, 512, 1 ; ifd analysis (second input)
+fst1 partials fs11, fsi12, .01, 1, 3, 500 ; partial tracking (second input
+fcr trcross fst, fst1, 1.05, 1, imode ; cross-synthesis (mode 0 and mode 1)
+aout tradsyn fcr, 1, 1, 500, 1 ; resynthesis of tracks
+ outs aout*3, aout*3
+
+endin
</CsInstruments>
<CsScore>
f1 0 8192 10 1
-i 1 0 4 0
-i 1 + 4 1
+i 1 0 3 0
+i 1 5 3 1
e
-
</CsScore>
</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/trfilter.csd b/examples/trfilter.csd
new file mode 100644
index 0000000..a0fd6f4
--- /dev/null
+++ b/examples/trfilter.csd
@@ -0,0 +1,37 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o trfilter.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gifn ftgen 2, 0, -22050, 5, 1, 1000, 1, 4000, 0.000001, 17050, 0.000001 ; low-pass filter curve of 22050 points
+
+instr 1
+
+kam line 1, p3, p4
+ain diskin2 "beats.wav", 1, 0, 1
+fs1,fsi2 pvsifd ain, 2048, 512, 1 ; ifd analysis
+fst partials fs1, fsi2, .003, 1, 3, 500 ; partial tracking
+fscl trfilter fst, kam, gifn ; filtering using function table 2
+aout tradsyn fscl, 1, 1, 500, 1 ; resynthesis
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1
+
+i 1 0 4 1
+i 1 5 4 0 ;reduce filter effect
+e
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file
diff --git a/examples/trhighest.csd b/examples/trhighest.csd
index df3e354..beb8154 100755..100644
--- a/examples/trhighest.csd
+++ b/examples/trhighest.csd
@@ -1,39 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o trhighest.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
-
+0dbfs = 1
instr 1
-ain diskin2 "beats.wav", 1
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fhi,kfr,kamp trhighest fst,1 ; highest freq-track
+ain diskin2 "fox.wav", 1
+fs1,fsi2 pvsifd ain, 2048, 512, 1 ; ifd analysis
+fst partials fs1, fsi2, .1, 1, 3, 500 ; partial tracking
+fhi,kfr,kamp trhighest fst, 1 ; highest freq-track
aout tradsyn fhi, 1, 1, 1, 1 ; resynthesis of highest frequency
- outs aout*100, aout*100 ; compensate energy loss
+ outs aout*40, aout*40 ; compensate energy loss
endin
-
-
</CsInstruments>
<CsScore>
-f1 0 8192 10 1
+f1 0 8192 10 1 ;sine wave
i 1 0 3
e
-
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/trigger.csd b/examples/trigger.csd
index 1c6ff00..d4f1ec9 100644
--- a/examples/trigger.csd
+++ b/examples/trigger.csd
@@ -1,43 +1,43 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o trigger.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Use a square-wave low frequency oscillator as the trigger.
- klf lfo 1, 10, 3
- ktr trigger klf, 1, 2
-
- ; When the value of the trigger isn't equal to 0, print it out.
- if (ktr == 0) kgoto contin
- ; Print the value of the trigger and the time it occurred.
- ktm times
- printks "time = %f seconds, trigger = %f\\n", 0, ktm, ktr
-
-contin:
- ; Continue with processing.
+
+kmtr lfo 1, 1, 1 ;triangle wave
+kmode = p4
+ktr trigger kmtr, .5, kmode
+ printk2 ktr
+ schedkwhen ktr, 0, 3, 2, 0, .3
+
+
endin
+instr 2
+
+aenv linseg 0,p3*.1,1,p3*.3,1,p3*.6,0 ;envelope
+a1 poscil .3*aenv, 1000, 1
+ outs a1, a1
+endin
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine
-; Play Instrument #1 for one second.
-i 1 0 1
-e
-
+i 1 0 3 0 ;down-up
+i 1 4 3 2 ;down-up & up=down
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/trigseq.csd b/examples/trigseq.csd
new file mode 100644
index 0000000..0adde46
--- /dev/null
+++ b/examples/trigseq.csd
@@ -0,0 +1,111 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o trigseq.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giTimes ftgen 91, 0, 128, -2, 1, 1/2, 1/2, 1/8, 1/8, 1/2,1/2, 1/16, 1/16, 1/16, 1/16, 1/16, 1/16, 1/16, 1/16; times
+giSeq ftgen 90, 0, 128, -2, 1, 2, .5, 3, .25, 4, .10, 5, .05, 6 ;** sequence amplitude and freq-ratio bins
+
+
+instr 1
+
+icps init p4
+iamp init .3
+
+kloop init p5
+initndx init p6
+kloop2 init p7
+initndx2 init p8
+kdur init p9
+iminTime init p10
+imaxTime init p11
+kampratio init 1
+kfreqratio init 1
+
+ktime_unit expseg iminTime,p3/8,iminTime,p3* 3/4,imaxTime,p3/8,imaxTime
+
+
+;**ktrig seqtime ktime_unit, kstart, kloop, initndx, kfn_times
+;ktrig seqtime 1/ktime_unit, 0, 15, 0, giTimes
+
+ktrig metro ktime_unit
+
+;**** trigseq ktrig_in, kstart, kloop, initndx, kfn_values, kout1 [, kout2, kout3, ...., koutN]
+ trigseq ktrig, 0, kloop2,initndx2, giSeq, kampratio, kfreqratio
+
+;atrig = ktrig*10000
+ schedkwhen ktrig, -1, -1, 3, 0, kdur, kampratio*iamp, kfreqratio*icps
+; schedkwhen ktrig, -1, -1, 2, 0, ktrig, kampratio*iamp, kfreqratio*icps
+ endin
+
+instr 2
+
+icps init p4
+iamp init 20000
+
+kloop init p5
+initndx init p6
+kloop2 init p7
+initndx2 init p8
+kdur init p9
+iminTime init p10
+imaxTime init p11
+kampratio init 1
+kfreqratio init 1
+
+ktime_unit expseg iminTime,p3/8,iminTime,p3* 3/4,imaxTime,p3/8,imaxTime
+
+
+;**ktrig seqtime ktime_unit, kstart, kloop, initndx, kfn_times
+ktrig seqtime 1/ktime_unit, 0, 15, 0, giTimes
+
+;ktrig metro ktime_unit
+
+;**** trigseq ktrig_in, kstart, kloop, initndx, kfn_values, kout1 [, kout2, kout3, ...., koutN]
+ trigseq ktrig, 0, kloop2, initndx2, giSeq, kampratio, kfreqratio
+printk2 ktrig
+;atrig = ktrig*10000
+; schedkwhen ktrig, -1, -1, 2, 0, kdur, kampratio*iamp, kfreqratio*icps
+ schedkwhen ktrig, -1, -1, 3, 0, ktrig, kampratio*iamp, kfreqratio*icps
+endin
+
+instr 3
+
+print p3
+kenv expseg 1.04, p3,.04
+a1 foscili p4*a(kenv-0.04), p5,1,1,kenv*5, 2
+ outs a1, a1
+endin
+
+</CsInstruments>
+<CsScore>
+f2 0 8192 10 1
+
+; icps unused unused kloop2 initndx2 kdur iminTime imaxTime
+
+s
+
+i1 0 6 100 0 0 5 0 .2 3 15
+i1 8 6 150 0 0 4 1 .1 4 30
+i1 16 6 200 0 0 5 3 .25 8 50
+i1 24 6 300 0 0 3 0 .1 1 30
+
+i2 32 6 100 0 0 5 0 .2 1 1
+i2 40 6 150 0 0 4 1 .1 .5 .5
+i2 48 6 200 0 0 5 3 .25 3 .5
+i2 56 6 300 0 0 5 0 .1 1 8
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/trirand.csd b/examples/trirand.csd
index 3ba4947..d8dd839 100644
--- a/examples/trirand.csd
+++ b/examples/trirand.csd
@@ -1,50 +1,42 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o trirand.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- ; Generate a random number between -1 and 1.
- ; krange = 1
+instr 1 ; every run time same values
- i1 trirand 1
-
- print i1
+ktri trirand 100
+ printk .2, ktri ; look
+aout oscili 0.8, 440+ktri, 1 ; & listen
+ outs aout, aout
endin
-; Instrument #2.
-instr 2
- ; Generate a random number between -1 and 1.
- ; krange = 1
-
- seed 0
-
- i1 trirand 1
+instr 2 ; every run time different values
- print i1
+ seed 0
+ktri trirand 100
+ printk .2, ktri ; look
+aout oscili 0.8, 440+ktri, 1 ; & listen
+ outs aout, aout
endin
</CsInstruments>
<CsScore>
+; sine wave
+f 1 0 16384 10 1
-; Play Instrument #1 for one second.
-i 1 0 1
-; Play Instrument #2 for one second.
-i 2 1 1
+i 1 0 2
+i 2 3 2
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/trlowest.csd b/examples/trlowest.csd
index 3bda911..5873be6 100755..100644
--- a/examples/trlowest.csd
+++ b/examples/trlowest.csd
@@ -1,39 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o trlowest.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 48000
-;kr = 4410
-ksmps = 128
+sr = 44100
+ksmps = 32
nchnls = 2
-
+0dbfs = 1
instr 1
ain diskin2 "beats.wav", 1
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-flow,kfr,kamp trlowest fst,1 ; lowest freq-track
-aout tradsyn flow, 1, 1, 1, 1 ; resynthesis of lowest frequenc
+fs1,fsi2 pvsifd ain, 2048, 512, 1 ; ifd analysis
+fst partials fs1, fsi2, .003, 1, 3, 500 ; partial tracking
+flow,kfr,kamp trlowest fst, 1 ; lowest freq-track
+aout tradsyn flow, 1, 1, 1, 1 ; resynthesis of lowest frequency
outs aout*2, aout*2
endin
-
-
</CsInstruments>
<CsScore>
-f1 0 8192 10 1
+f1 0 8192 10 1 ;sine wave
i 1 0 3
-
e
-
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/trmix.csd b/examples/trmix.csd
index ee1ef7f..5066ee4 100755..100644
--- a/examples/trmix.csd
+++ b/examples/trmix.csd
@@ -1,39 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o trmix.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
-
+0dbfs = 1
instr 1
-ain diskin2 "fox.wav", 1
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fslo,fshi trsplit fst, 500 ; split partial tracks at 1500 Hz
-fscl trscale fshi, 1.15 ; shift the upper tracks
+ain diskin2 "fox.wav", 1
+fs1,fsi2 pvsifd ain, 2048, 512, 1 ; ifd analysis
+fst partials fs1, fsi2, .003, 1, 3, 500 ; partial tracking
+fslo,fshi trsplit fst, 1000 ; split partial tracks at 1000 Hz
+fscl trscale fshi, 1.3 ; shift the upper tracks
fmix trmix fslo,fscl ; mix the shifted and unshifted tracks
aout tradsyn fmix, 1, 1, 500, 1 ; resynthesis of tracks
- outs aout, aout
-endin
-
+ outs aout, aout
+endin
</CsInstruments>
<CsScore>
-f1 0 8192 10 1
+f1 0 8192 10 1 ;sine wave
-i 1 0 2
+i 1 0 3
e
-
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/trscale.csd b/examples/trscale.csd
index 33e178f..c9c521f 100755..100644
--- a/examples/trscale.csd
+++ b/examples/trscale.csd
@@ -1,38 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o trscale.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
-
+0dbfs = 1
instr 1
-ain diskin2 "fox.wav", 1
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fscl trscale fst, 2.5 ; frequency scale (up a 5th)
-aout tradsyn fscl, 1, 1, 500, 1 ; resynthesis
+kpitch = p4
+ain diskin2 "fox.wav", 1
+fs1,fsi2 pvsifd ain, 2048, 512, 1 ; ifd analysis
+fst partials fs1, fsi2, .003, 1, 3, 500 ; partial tracking
+fscl trscale fst, kpitch ; frequency scale
+aout tradsyn fscl, 1, 1, 500, 1 ; resynthesis
+ outs aout, aout
- outs aout, aout
endin
-
-
</CsInstruments>
<CsScore>
f1 0 8192 10 1
-i 1 0 3
+i 1 0 3 1.5 ;up a 5th
+i 1 3 3 3 ;two octaves higher
e
-
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/trshift.csd b/examples/trshift.csd
new file mode 100644
index 0000000..d3b29c5
--- /dev/null
+++ b/examples/trshift.csd
@@ -0,0 +1,35 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o trshift.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+kpsft = p4
+ain diskin2 "fox.wav", 1
+fs1, fsi2 pvsifd ain, 2048, 512, 1 ; ifd analysis
+fst partials fs1, fsi2, 0.003, 1, 3, 500 ; partial tracking
+fscl trshift fst, kpsft ; frequency shift
+aout tradsyn fscl, 1, 1, 500, 1 ; resynthesis
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1 ;sine
+
+i 1 0 3 150 ;adds 150Hz to all tracks
+i 1 + 3 500 ;adds 500Hz to all tracks
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/trsplit.csd b/examples/trsplit.csd
index 33fc341..1120974 100755..100644
--- a/examples/trsplit.csd
+++ b/examples/trsplit.csd
@@ -1,38 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o trsplit.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
-
+0dbfs = 1
instr 1
-ain diskin2 "beats.wav", 1
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fslo,fshi trsplit fst, 1500 ; split partial tracks at 1500 Hz
-aout tradsyn fshi, 1, 1, 500, 1 ; resynthesis of tracks above 1500Hz
+ain diskin2 "beats.wav", 1
+fs1,fsi2 pvsifd ain, 2048, 512, 1 ; ifd analysis
+fst partials fs1, fsi2, .003, 1, 3, 500 ; partial tracking
+fslo,fshi trsplit fst, 1500 ; split partial tracks at 1500 Hz
+aout tradsyn fshi, 1, 1, 500, 1 ; resynthesis of tracks above 1500Hz
+ outs aout, aout
- outs aout, aout
endin
-
-
</CsInstruments>
<CsScore>
-f1 0 8192 10 1
+f1 0 8192 10 1 ;sine
i 1 0 2
e
-
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/unirand.csd b/examples/unirand.csd
index d2459d7..65f024b 100644
--- a/examples/unirand.csd
+++ b/examples/unirand.csd
@@ -1,50 +1,42 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o unirand.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- ; Generate a random number between 0 and 1.
- ; krange = 1
+instr 1 ; every run time same values
- i1 unirand 1
-
- print i1
+ktri unirand 100
+ printk .2, ktri ; look
+aout oscili 0.8, 440+ktri, 1 ; & listen
+ outs aout, aout
endin
-; Instrument #2.
-instr 2
- ; Generate a random number between 0 and 1.
- ; krange = 1
-
- seed 0
-
- i1 unirand 1
+instr 2 ; every run time different values
- print i1
+ seed 0
+ktri unirand 100
+ printk .2, ktri ; look
+aout oscili 0.8, 440+ktri, 1 ; & listen
+ outs aout, aout
endin
</CsInstruments>
<CsScore>
+; sine wave
+f 1 0 16384 10 1
-; Play Instrument #1 for one second.
-i 1 0 1
-; Play Instrument #2 for one second.
-i 2 1 1
+i 1 0 2
+i 2 3 2
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/until.csd b/examples/until.csd
new file mode 100644
index 0000000..25e8889
--- /dev/null
+++ b/examples/until.csd
@@ -0,0 +1,38 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+; Audio out Audio in
+-odac -iadc ;;;RT audio I/O
+; For Non-realtime ouput leave only the line below:
+; -o ifthen.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+kr = 4410
+ksmps = 10
+nchnls = 1
+
+instr 1
+lab99:
+if p4<0 goto lab100
+ p4 = p4-1
+ print p4
+ goto lab99
+lab100:
+endin
+
+instr 2
+ until p4<0 do
+ p4 = p4-1
+ print p4
+ od
+endin
+</CsInstruments>
+<CsScore>
+i 1 1 1 4
+i 2 2 1 4
+e
+
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/upsamp.csd b/examples/upsamp.csd
new file mode 100644
index 0000000..96f1a03
--- /dev/null
+++ b/examples/upsamp.csd
@@ -0,0 +1,67 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o upsamp.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+;;with code from Steven Cook / David Akbari, Menno Knevel and Joachim Heintz
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+seed 0
+
+ opcode Decimator, a, akk ;UDO Sample rate / Bit depth reducer
+ ;see http://www.csounds.com/udo/displayOpcode.php?opcode_id=73
+ setksmps 1
+ain, kbit, ksrate xin
+
+kbits = 2^kbit ;bit depth (1 to 16)
+kfold = (sr/ksrate) ;sample rate
+kin downsamp ain ;convert to kr
+kin = (kin+0dbfs) ;add DC to avoid (-)
+kin = kin*(kbits/(0dbfs*2)) ;scale signal level
+kin = int(kin) ;quantise
+aout upsamp kin ;convert to sr
+aout = aout*(2/kbits)-0dbfs ;rescale and remove DC
+a0ut fold aout, kfold ;resample
+ xout a0ut
+ endop
+
+
+instr 1 ;avoid playing this too loud
+
+kbit = p4
+ksr = 44100
+asig diskin "fox.wav", 1
+aout Decimator asig, kbit, ksr
+ printks "bitrate = %d, ", 3, kbit
+ printks "with samplerate = %d\\n", 3, ksr
+ outs aout*.7, aout*.7
+endin
+
+
+instr 2 ;moving randomly between different bit values (1 - 6)
+
+kbit randomi 1, 6, .5, 1
+asig diskin "fox.wav", 1, 0, 1 ;loop play
+aout Decimator asig, kbit, 44100
+ printks "bitrate = %f\n", .3, kbit
+ outs aout*.7, aout*.7
+
+endin
+
+</CsInstruments>
+<CsScore>
+i 1 0 3 16 ;sounds allright but
+i 1 + 3 5 ;it's getting worse
+i 1 + 3 2 ;and worse...
+i 2 9 22 ;or quality moves randomly
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/urd.csd b/examples/urd.csd
new file mode 100644
index 0000000..feb6ae9
--- /dev/null
+++ b/examples/urd.csd
@@ -0,0 +1,49 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o urd.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ktab = 1 ;ftable 1
+kurd = urd(ktab)
+ktrig metro 5 ;triggers 5 times per second
+kres samphold kurd, ktrig ;sample and hold value of kurd
+ printk2 kres ;print it
+asig poscil .5, 220+kres, 2
+ outs asig, asig
+endin
+
+instr 2
+
+seed 0 ;every run new values
+
+ktab = 1 ;ftable 1
+kurd = urd(ktab)
+ktrig metro 5 ;triggers 5 times per second
+kres samphold kurd, ktrig ;sample and hold value of kurd
+ printk2 kres ;print it
+asig poscil .5, 220+kres, 2
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 -20 -42 10 20 .3 100 200 .7 ;30% choose between 10 and 20 and 70% between 100 and 200
+f2 0 8192 10 1 ;sine wave
+
+i 1 0 5
+i 2 6 5
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/v.csd b/examples/v.csd
new file mode 100644
index 0000000..3404c89
--- /dev/null
+++ b/examples/v.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o v.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+aenv expseg .01, p3*0.25, 1, p3*0.75, 0.01
+asig poscil3 .4*aenv, p4, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1 ;sine wave
+;because note 3 and 5 are played simultaneously and are nearly of the same frequency,
+;played together they will create a "beating" sound.
+
+i 1 0 2 110 ; note1
+v2
+i 1 3 . 220 ; note2
+i 1 6 . 110 ; note3
+v1
+i 1 9 . 880 ; note4
+i 1 12 . 100 ; note5
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/valpass-2.csd b/examples/valpass-2.csd
new file mode 100644
index 0000000..d9431d4
--- /dev/null
+++ b/examples/valpass-2.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o valpass-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+giSine ftgen 0, 0, 65536, 10, 1 ;sine wave
+
+instr 1
+
+asig diskin2 "beats.wav", 1, 0, 1
+krvt line 0.01, p3, p3 ;reverb time
+adepth = p4 ;sine depth
+krate = 0.3 ;sine rate (speed)
+adel oscil 0.5, krate, giSine ;delay time oscillator (LFO)
+adel = ((adel+0.5)*adepth) ;scale and offset LFO
+aout valpass asig, krvt, adel*0.01, 0.5
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 10 1
+i1 11 10 5
+e
+</CsScore>
+</CsoundSynthesizer>
+
+
diff --git a/examples/valpass.csd b/examples/valpass.csd
index fe49376..14734fe 100644
--- a/examples/valpass.csd
+++ b/examples/valpass.csd
@@ -1,38 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o valpass.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
instr 1
krvt = 1.5
-klpt line p4, p3, p5
+klpt line p4, p3, p5
imaxlpt = .1
-a1 diskin2 "fox.wav", 1
-a1 valpass a1, krvt, klpt, imaxlpt
-a2 valpass a1, krvt, klpt*.5, imaxlpt
- outs a1, a2
+a1 diskin2 "fox.wav", 1
+a1 valpass a1, krvt, klpt, imaxlpt
+a2 valpass a1, krvt, klpt*.5, imaxlpt
+ outs a1, a2
endin
-
</CsInstruments>
<CsScore>
i 1 0 5 .01 .2
-
e
-
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/vbap.csd b/examples/vbap.csd
new file mode 100644
index 0000000..3df3d8f
--- /dev/null
+++ b/examples/vbap.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vbap.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4 ;quad
+0dbfs = 1
+
+vbaplsinit 2, 4, 0, 90, 180, 270
+
+instr 1
+
+asig diskin2 "beats.wav", 1, 0, 1 ;loop beats.wav
+kaz line 0, p3, p4 ;come from right rear speaker &
+a1,a2,a3,a4 vbap asig, 180, 100, kaz ;change spread of soundsource
+ printks "spread of source = %d\n", 1, kaz ;print spread value
+ outq a1,a2,a3,a4
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 12 100
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/vbap4.csd b/examples/vbap4.csd
new file mode 100644
index 0000000..cc25426
--- /dev/null
+++ b/examples/vbap4.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vbap4.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4 ;quad
+0dbfs = 1
+
+vbaplsinit 2, 4, 0, 90, 180, 270
+
+instr 1
+
+asig diskin2 "beats.wav", 1, 0, 1 ;loop beats.wav
+kaz line 0, p3, p4 ;come from right rear speaker &
+a1,a2,a3,a4 vbap4 asig, 180, 100, kaz ;change spread of soundsource
+ printks "spread of source = %d\n", 1, kaz ;print spread value
+ outq a1,a2,a3,a4
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 12 100
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/vbap4move.csd b/examples/vbap4move.csd
new file mode 100644
index 0000000..05b8305
--- /dev/null
+++ b/examples/vbap4move.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vbap4move.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4 ;quad
+0dbfs = 1
+
+vbaplsinit 2, 4, 0, 90, 180, 270
+
+instr 1
+
+asig diskin2 "beats.wav", 1, 0, 1 ;loop beats.wav
+a1,a2,a3,a4 vbap4move asig, p3, 1, 2, 310, 180 ;change movement of soundsource in
+ outq a1,a2,a3,a4 ;the rear speakers
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 5
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/vbap8.csd b/examples/vbap8.csd
index 38473e2..1ec4edb 100644
--- a/examples/vbap8.csd
+++ b/examples/vbap8.csd
@@ -8,7 +8,7 @@
</CsOptions>
<CsInstruments>
- sr = 41000
+ sr = 44100
kr = 441
ksmps = 100
nchnls = 4
@@ -30,9 +30,9 @@
</CsInstruments>
<CsScore>
-
+f 1 0 8192 10 1
; Play Instrument #1 for one second.
-, azimuth
+; azimuth
i 1 0 1 20
i 1 + . 40
i 1 + . 60
diff --git a/examples/vbapg.csd b/examples/vbapg.csd
new file mode 100644
index 0000000..0c98e71
--- /dev/null
+++ b/examples/vbapg.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vbap4.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4 ;quad
+0dbfs = 1
+
+vbaplsinit 2.01, 4, 0, 90, 180, 270
+
+instr 1
+
+asig diskin2 "beats.wav", 1, 0, 1 ;loop beats.wav
+kaz line 0, p3, p4 ;come from right rear speaker &
+k1,k2,k3,k4 vbapg 180, 100, kaz, 1 ;change spread of soundsource
+ printks "spread of source = %d\n", 1, kaz ;print spread value
+ outq asig*k1,asig*k2,asig*k3,asig*k4
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 12 100
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/vbapgmove.csd b/examples/vbapgmove.csd
new file mode 100644
index 0000000..e612741
--- /dev/null
+++ b/examples/vbapgmove.csd
@@ -0,0 +1,34 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vbapgmove.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4 ;quad
+0dbfs = 1
+
+vbaplsinit 2, 4, 0, 90, 180, 270
+
+instr 1
+
+asig diskin2 "beats.wav", 1, 0, 1 ;loop beats.wav
+
+k0,k1,k2,k3 vbapgmove p3, 1, 2, 310, 180 ;change movement of soundsource in
+ outq k0*asig,k1*asig,k2*asig,k3*asig ;the rear speakers
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 5
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/vbaplsinit.csd b/examples/vbaplsinit.csd
new file mode 100644
index 0000000..f897bf6
--- /dev/null
+++ b/examples/vbaplsinit.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vbaplsinit.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 8
+0dbfs = 1
+
+vbaplsinit 2, 8, 0, 45, 90, 180, 270, 0, 0, 0 ;5 speakers for 5.1 amps
+
+instr 1
+
+asig diskin2 "beats.wav", 1, 0, 1 ;loop beats.wav
+kazim line 1, p3, 355
+a1,a2,a3,a4,a5,a6,a7,a8 vbap8 asig, kazim, 0, 1 ;change azimuth of soundsource
+; Speaker mapping
+aFL = a1 ; Front Left
+aMF = a5 ; Mid Front
+aFR = a2 ; Front Right
+aBL = a3 ; Back Left
+aBR = a4 ; Back Right
+ outo aFL,aFR,aBL,aBR,aMF,a6,a7,a8 ;a6, a7 and a8 are dummies
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 5
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/vbapmove.csd b/examples/vbapmove.csd
new file mode 100644
index 0000000..d843053
--- /dev/null
+++ b/examples/vbapmove.csd
@@ -0,0 +1,33 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vbapmove.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4 ;quad
+0dbfs = 1
+
+vbaplsinit 2, 4, 0, 90, 180, 270
+
+instr 1
+
+asig diskin2 "beats.wav", 1, 0, 1 ;loop beats.wav
+a1,a2,a3,a4 vbapmove asig, p3, 1, 2, 310, 180 ;change movement of soundsource in
+ outq a1,a2,a3,a4 ;the rear speakers
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 5
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/vco2ift.csd b/examples/vco2ift.csd
index 654c050..d004bbe 100644
--- a/examples/vco2ift.csd
+++ b/examples/vco2ift.csd
@@ -1,66 +1,41 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o vco2ift.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; user defined waveform -1: trapezoid wave with default parameters (can be
-; accessed at ftables starting from 10000)
-itmp ftgen 1, 0, 16384, 7, 0, 2048, 1, 4096, 1, 4096, -1, 4096, -1, 2048, 0
-ift vco2init -1, 10000, 0, 0, 0, 1
-; user defined waveform -2: fixed table size (4096), number of partials
-; multiplier is 1.02 (~238 tables)
-itmp ftgen 2, 0, 16384, 7, 1, 4095, 1, 1, -1, 4095, -1, 1, 0, 8192, 0
-ift vco2init -2, ift, 1.02, 4096, 4096, 2
+; user defined waveform -2: fixed table size (64), number of partials
+; multiplier is 1.4
+itmp ftgen 2, 0, 64, 5, 1, 2, 120, 60, 1, 1, 0.001, 1
+ift vco2init -2, 2, 1.4, 4096, 4096, 2
- instr 1
-kcps expon p4, p3, p5 ; instr 1: basic vco2 example
-a1 vco2 12000, kcps ; (sawtooth wave with default
- out a1 ; parameters)
- endin
- instr 2
-kcps expon p4, p3, p5 ; instr 2:
-kpw linseg 0.1, p3/2, 0.9, p3/2, 0.1 ; PWM example
-a1 vco2 10000, kcps, 2, kpw
- out a1
- endin
-
- instr 3
-kcps expon p4, p3, p5 ; instr 3: vco2 with user
-a1 vco2 14000, kcps, 14 ; defined waveform (-1)
-aenv linseg 1, p3 - 0.1, 1, 0.1, 0 ; de-click envelope
- out a1 * aenv
- endin
-
- instr 4
-icps = p4 ; instr 4: vco2ift example,
-ifn vco2ift icps, -2, 0.25 ; with user defined waveform
-a1 oscili 12000, icps, ifn ; (-2), and sr/4 bandwidth
- out a1
- endin
+instr 1
+icps = p4
+ifn vco2ift icps, -2, 0.5 ;with user defined waveform
+print ifn
+asig oscili 1, 220, ifn ; (-2), and sr/2 bandwidth
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-i 1 0 3 20 2000
-i 2 4 2 200 400
-i 3 7 3 400 20
-i 4 11 2 200
-
-f 0 14
+i 1 0 2 20
+i 1 3 2 2000
+i 1 6 2 20000
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/vco2init.csd b/examples/vco2init.csd
index c0ebdd5..ac0316d 100755..100644
--- a/examples/vco2init.csd
+++ b/examples/vco2init.csd
@@ -1,66 +1,38 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o vco2init.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-sr = 44100
-ksmps = 10
-nchnls = 2
+sr=44100
+ksmps=1
+nchnls=2
-; user defined waveform -1: trapezoid wave with default parameters (can be
-; accessed at ftables starting from 10000)
-itmp ftgen 1, 0, 16384, 7, 0, 2048, 1, 4096, 1, 4096, -1, 4096, -1, 2048, 0
-ift vco2init -1, 10000, 0, 0, 0, 1
-; user defined waveform -2: fixed table size (4096), number of partials
-; multiplier is 1.02 (~238 tables)
-itmp ftgen 2, 0, 16384, 7, 1, 4095, 1, 1, -1, 4095, -1, 1, 0, 8192, 0
-ift vco2init -2, ift, 1.02, 4096, 4096, 2
+; create waveform with discontinuities, so it has a lot of high freq content
+gitable ftgen 0, 0, 2^16+1, 7, -1, 2^14, 1, 0, -1, 2^14, 1, 0, -1, 2^15, 1
+; make bandlimited tables of the waveform
+gi_nextfree vco2init -gitable, gitable+1, 1.05, 128, 2^16, gitable
+gitable_bl = -gitable
- instr 1
-kcps expon p4, p3, p5 ; instr 1: basic vco2 example
-a1 vco2 12000, kcps ; (sawtooth wave with default
- outs a1, a1 ; parameters)
- endin
+instr 1
- instr 2
-kcps expon p4, p3, p5 ; instr 2:
-kpw linseg 0.1, p3/2, 0.9, p3/2, 0.1 ; PWM example
-a1 vco2 10000, kcps, 2, kpw
- outs a1, a1
- endin
-
- instr 3
-kcps expon p4, p3, p5 ; instr 3: vco2 with user
-a1 vco2 14000, kcps, 14 ; defined waveform (-1)
-aenv linseg 1, p3 - 0.1, 1, 0.1, 0 ; de-click envelope
- outs a1 * aenv, a1 * aenv
- endin
-
- instr 4
-kcps expon p4, p3, p5 ; instr 4: vco2ft example,
-kfn vco2ft kcps, -2, 0.25 ; with user defined waveform
-a1 oscilikt 12000, kcps, kfn ; (-2), and sr/4 bandwidth
- outs a1, a1
- endin
+kfreq expon 14000, p3, 500
+kfn vco2ft kfreq, gitable_bl
+asig oscilikt 5000, kfreq, kfn
+printk 0.1, kfn
+; remove semicolon on next line to hear original waveform, demonstrating the aliasing
+;asig oscili 5000, kfreq, gitable
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
-i 1 0 3 20 2000
-i 2 4 2 200 400
-i 3 7 3 400 20
-i 4 11 2 100 200
-
-f 0 14
-
+i1 0 5
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/vdelay.csd b/examples/vdelay.csd
index 8996833..f39bcc2 100644
--- a/examples/vdelay.csd
+++ b/examples/vdelay.csd
@@ -1,37 +1,35 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o vdelay.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
+sr = 44100
+ksmps = 32
nchnls = 2
+0dbfs = 1
instr 1
-ims = 100 ; Maximum delay time in msec
-a1 oscil 10000, 1737, 1 ; Make a signal
-a2 oscil ims/2, 1/p3, 1 ; Make an LFO
-a2 = a2 + ims/2 ; Offset the LFO so that it is positive
-a3 vdelay a1, a2, ims ; Use the LFO to control delay time
- outs a3, a3
+ims = 100 ;maximum delay time in msec
+aout poscil .8, 220, 1 ;make a signal
+a2 poscil3 ims/2, 1/p3, 1 ;make an LFO
+a2 = a2 + ims/2 ;offset the LFO so that it is positive
+asig vdelay aout, a2, ims ;use the LFO to control delay time
+ outs asig, asig
endin
-
</CsInstruments>
<CsScore>
-f1 0 8192 10 1
+f1 0 8192 10 1 ;sine wave
i 1 0 5
e
-
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
+
diff --git a/examples/vdelay3.csd b/examples/vdelay3.csd
index 894dd97..22d57c1 100644
--- a/examples/vdelay3.csd
+++ b/examples/vdelay3.csd
@@ -1,27 +1,26 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o vdelay3.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
instr 1
-ims = 100 ; Maximum delay time in msec
-a1 oscil 10000, 1737, 1 ; Make a signal
-a2 oscil ims/2, 1/p3, 1 ; Make an LFO
-a2 = a2 + ims/2 ; Offset the LFO so that it is positive
-a3 vdelay3 a1, a2, ims ; Use the LFO to control delay time
- outs a3, a3
+ims = 100 ;maximum delay time in msec
+aout poscil .8, 220, 1 ;make a signal
+a2 poscil ims/2, 1/p3, 1 ;make an LFO
+a2 = a2 + ims/2 ;offset the LFO so that it is positive
+asig vdelay3 aout, a2, ims ;use the LFO to control delay time
+ outs asig, asig
endin
@@ -34,4 +33,4 @@ i 1 0 5
e
</CsScore>
-</CsoundSynthesizer> \ No newline at end of file
+</CsoundSynthesizer>
diff --git a/examples/vdelayx.csd b/examples/vdelayx.csd
new file mode 100644
index 0000000..37bd965
--- /dev/null
+++ b/examples/vdelayx.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vdelayx.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ims = .5 ;maximum delay time in seconds
+iws = 1024 ;window size
+adl = .5 ;delay time
+asig diskin2 "fox.wav", 1, 0, 1 ;loop fox.wav
+a2 poscil .2, .2, 1 ;make an LFO
+adl = a2 + ims/2 ;offset the LFO so that it is positive
+aout vdelayx asig, adl, ims, iws ;use the LFO to control delay time
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1
+
+i 1 0 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/vdelayxq.csd b/examples/vdelayxq.csd
new file mode 100644
index 0000000..ff4e0fe
--- /dev/null
+++ b/examples/vdelayxq.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vdelayxq.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4
+0dbfs = 1
+
+instr 1
+
+ims = .5 ;maximum delay time in seconds
+iws = 1024 ;window size
+adl = .5
+aout1 diskin2 "beats.wav", 1, 0, 1 ;loop beats.wav
+aout2 diskin2 "fox.wav", 1, 0, 1 ;loop fox.wav
+aout3 diskin2 "Church.wav", 1, 0, 1 ;loop Church.wav
+aout4 diskin2 "flute.aiff", 1, 0, 1 ;loop flute.aiff
+a2 poscil .1, .5, 1 ;make an LFO, 1 cycle per 2 seconds
+adl = a2 + ims/2 ;offset the LFO so that it is positive
+aout1, aout2, aout3, aout4 vdelayxq aout1, aout2, aout3, aout4, adl, ims, iws; Use the LFO to control delay time
+ outq aout1, aout2, aout3, aout4
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1
+
+i 1 0 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/vdelayxs.csd b/examples/vdelayxs.csd
new file mode 100644
index 0000000..a8a7bab
--- /dev/null
+++ b/examples/vdelayxs.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vdelayxs.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ims = .5 ;maximum delay time in seconds
+iws = 1024 ;window size
+adl = .5 ;delay time
+asig1, asig2 diskin2 "kickroll.wav", 1, 0, 1 ;loop stereo file kickroll.wav
+a2 poscil .25, .1, 1 ;make an LFO, 1 cycle per 2 seconds
+adl = a2 + ims/2 ;offset the LFO so that it is positive
+aoutL, aoutR vdelayxs asig1, asig2, adl, ims, iws ;use the LFO to control delay time
+ outs aoutL, aoutR
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1
+
+i 1 0 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/vdelayxw.csd b/examples/vdelayxw.csd
new file mode 100644
index 0000000..bfff16a
--- /dev/null
+++ b/examples/vdelayxw.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vdelayxw.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ims = .5 ;maximum delay time in seconds
+iws = 1024 ;best quality
+adl = .5 ;delay time
+asig diskin2 "flute.aiff", .5, 0, 1 ;loop flute.aiff at half speed
+a2 poscil3 .2, .1, 1 ;make an LFO, 1 cycle per 2 seconds
+adl = a2 + ims/2 ;offset the LFO so that it is positive
+aout vdelayxw asig, adl, ims, iws ;use the LFO to control delay time
+ outs aout, aout
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1
+
+i 1 0 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/vdelayxwq.csd b/examples/vdelayxwq.csd
new file mode 100644
index 0000000..5f1bd5f
--- /dev/null
+++ b/examples/vdelayxwq.csd
@@ -0,0 +1,40 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vdelayxwq.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 4
+0dbfs = 1
+
+instr 1
+
+ims = .5 ;maximum delay time in seconds
+iws = 1024 ;best quality
+adl = .5 ;delay time
+aout1 diskin2 "beats.wav", 1, 0, 1 ;loop beats.wav
+aout2 diskin2 "fox.wav", 1, 0, 1 ;loop fox.wav
+aout3 diskin2 "Church.wav", 1, 0, 1 ;loop Church.wav
+aout4 diskin2 "flute.aiff", 1, 0, 1 ;loop flute.aiff
+a2 poscil3 .2, .1, 1 ;make an LFO, 1 cycle per 2 seconds
+adl = a2 + ims/2 ;offset the LFO so that it is positive
+aout1, aout2, aout3, aout4 vdelayxwq aout1, aout2, aout3, aout4, adl, ims, iws ;use the LFO to control delay time
+ outq aout1, aout2, aout3, aout4
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1
+
+i 1 0 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/vdelayxws.csd b/examples/vdelayxws.csd
new file mode 100644
index 0000000..58e9100
--- /dev/null
+++ b/examples/vdelayxws.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vdelayxws.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ims = .5 ;maximum delay time in seconds
+iws = 1024 ;window size
+adl = .5 ;delay time
+asig1, asig2 diskin2 "kickroll.wav", 1, 0, 1 ;loop stereo file kickroll.wav
+a2 poscil .2, .1, 1 ;make an LFO, 1 cycle per 10 seconds
+adl = a2 + ims/2 ;offset the LFO so that it is positive
+aoutL, aoutR vdelayxws asig1, asig2, adl, ims, iws ;use the LFO to control delay time
+ outs aoutL, aoutR
+
+endin
+</CsInstruments>
+<CsScore>
+f1 0 8192 10 1
+
+i 1 0 10
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/veloc.csd b/examples/veloc.csd
index d71a756..0ddae3e 100644
--- a/examples/veloc.csd
+++ b/examples/veloc.csd
@@ -1,34 +1,32 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages MIDI in
--odac -iadc -d -M0 ;;;RT audio I/O with MIDI in
-; For Non-realtime ouput leave only the line below:
-; -o veloc.wav -W ;;; for file output any platform
+-odac -+rtmidi=virtual -M0 ;;;realtime audio I/O with MIDI in
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gisine ftgen 0, 0, 1024, 10, 1
-; Instrument #1.
instr 1
- i1 veloc
- print i1
+ivel veloc 0, 1 ;scale 0 - 1
+print ivel ;print velocity
+asig poscil .5*ivel, 220, gisine ;and use it as amplitude
+ outs asig, asig
+
endin
-
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for 12 seconds.
-i 1 0 12
-e
-
+f 0 30 ;runs 30 seconds
+e
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/vibr.csd b/examples/vibr.csd
index 9f1d5b2..3a476bc 100644
--- a/examples/vibr.csd
+++ b/examples/vibr.csd
@@ -1,46 +1,34 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o vibr.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Create a vibrato waveform.
- kaverageamp init 7500
- kaveragefreq init 5
- ifn = 1
- kvamp vibr kaverageamp, kaveragefreq, ifn
- ; Generate a tone including the vibrato.
- a1 oscili 10000+kvamp, 440, 2
+kaverageamp init 500
+kaveragefreq init 4
+kvib vibr kaverageamp, kaveragefreq, 1
+asig poscil .8, 220+kvib, 1 ;add vibrato
+ outs asig, asig
- out a1
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave
-; Table #1, a sine wave for the vibrato.
-f 1 0 256 10 1
-; Table #1, a sine wave for the oscillator.
-f 2 0 16384 10 1
+i 1 0 10
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/vibrato.csd b/examples/vibrato.csd
index e0414de..881fa98 100644
--- a/examples/vibrato.csd
+++ b/examples/vibrato.csd
@@ -1,54 +1,40 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o vibrato.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- ; Create a vibrato waveform.
- kaverageamp init 2500
- kaveragefreq init 6
- krandamountamp init 0.3
- krandamountfreq init 0.5
- kampminrate init 3
- kampmaxrate init 5
- kcpsminrate init 3
- kcpsmaxrate init 5
- ifn = 1
- kvamp vibrato kaverageamp, kaveragefreq, krandamountamp, \
- krandamountfreq, kampminrate, kampmaxrate, \
- kcpsminrate, kcpsmaxrate, ifn
- ; Generate a tone including the vibrato.
- a1 oscili 10000+kvamp, 440, 2
+kaverageamp init .5
+kaveragefreq init 5
+krandamountamp line p4, p3, p5 ;increase random amplitude of vibrato
+krandamountfreq init .3
+kampminrate init 3
+kampmaxrate init 5
+kcpsminrate init 3
+kcpsmaxrate init 5
+kvib vibrato kaverageamp, kaveragefreq, krandamountamp, krandamountfreq, kampminrate, kampmaxrate, kcpsminrate, kcpsmaxrate, 1
+asig poscil .8, 220+kvib, 1 ;add vibrato
+ outs asig, asig
- out a1
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave
-; Table #1, a sine wave for the vibrato.
-f 1 0 256 10 1
-; Table #1, a sine wave for the oscillator.
-f 2 0 16384 10 1
+i 1 0 15 .01 20
-; Play Instrument #1 for 2 seconds.
-i 1 0 2
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/vincr-complex.csd b/examples/vincr-complex.csd
new file mode 100644
index 0000000..7e6d089
--- /dev/null
+++ b/examples/vincr-complex.csd
@@ -0,0 +1,50 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vincr-complex.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gaReverbSend init 0
+
+instr 1
+
+iamp = p4
+ifreq = p5
+aenv linseg 0.0, 0.1*p3, iamp, 0.6*p3, iamp, 0.3*p3, 0.0
+aosc poscil aenv, ifreq, 1
+ vincr gaReverbSend, aosc
+endin
+
+
+instr 2 ; global reverb instrument
+
+al, ar reverbsc gaReverbSend, gaReverbSend, 0.85, 12000
+ outs gaReverbSend+al, gaReverbSend+ar
+ clear gaReverbSend
+endin
+
+</CsInstruments>
+<CsScore>
+f1 0 4096 10 1
+
+{ 4 CNT
+ { 8 PARTIAL
+ ; start time duration amplitude frequency
+ i1 [0.5 * $CNT.] [1 + ($CNT * 0.2)] [.04 + (~ * .02)] [800 + (200 * $CNT.) + ($PARTIAL. * 20)]
+ }
+}
+
+i2 0 6
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/vincr.csd b/examples/vincr.csd
index 274bbe3..71112dd 100644
--- a/examples/vincr.csd
+++ b/examples/vincr.csd
@@ -1,42 +1,44 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o vincr.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
- sr = 44100
- ksmps = 10
- nchnls = 2
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
gaReverb init 0
instr 1
-idur = p3
-kpitch = p4
+idur = p3
+kpitch = p4
a1 diskin2 "fox.wav", kpitch
-a1 = a1*.5 ;reduce volume
+a1 = a1*.5 ;reduce volume
vincr gaReverb, a1
endin
-; global reverb
-instr 99
-kfb line 1, p3, 0
-al, ar reverbsc gaReverb, gaReverb, kfb, 10000
+instr 99 ; global reverb
+al, ar reverbsc gaReverb, gaReverb, .8, 10000
outs gaReverb+al, gaReverb+ar
- clear gaReverb
+
+clear gaReverb
+
endin
</CsInstruments>
<CsScore>
i1 0 3 1
-i1 0.1 3 1.1
i99 0 5
e
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/vlowres.csd b/examples/vlowres.csd
index 14bc909..58c7df4 100644
--- a/examples/vlowres.csd
+++ b/examples/vlowres.csd
@@ -1,47 +1,44 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o vlowres.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
-; Instrument #1.
-instr 1
- ; Use a nice sawtooth waveform.
- asig vco 10000, 220, 1
-
- ; Vary the cutoff frequency from 30 to 300 Hz.
- kfco line 30, p3, 300
- kres = 25
- iord = 2
- ksep = 20
- ; Apply the filters.
- avlr vlowres asig, kfco, kres, iord, ksep
+instr 1
- ; It gets loud, so clip the output amplitude to 30,000.
- a1 clip avlr, 1, 30000
- outs a1, a1
+kamp init p4
+asig vco2 kamp, 110 ;saw wave
+kfco line 30, p3, 300 ;vary the cutoff frequency from 30 to 300 Hz.
+kres = 20
+ksep = p5 ;different resonance values
+iord = p6 ;and different number of filters
+aout vlowres asig, kfco, kres, iord, ksep
+aclp clip aout, 1, 1 ;avoid distortion
+ outs aclp, aclp
+
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine
-; Table #1, a sine wave.
-f 1 0 16384 10 1
+s
+i 1 0 10 .1 5 2 ;compensate volume and
+i 1 + 10 .1 25 2 ;number of filters = 2
+s
+i 1 0 10 .01 5 6 ;compensate volume and
+i 1 + 10 .04 15 6 ;number of filters = 6
-; Play Instrument #1 for two seconds.
-i 1 0 10
e
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/voice.csd b/examples/voice.csd
index c27c8e8..c12b35b 100644
--- a/examples/voice.csd
+++ b/examples/voice.csd
@@ -1,50 +1,50 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o voice.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
-sr = 22050
-kr = 2205
-ksmps = 10
-nchnls = 1
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 3
- kfreq = 0.8
- kphoneme = 6
- kform = 0.488
- kvibf = 0.04
- kvamp = 1
- ifn = 1
- ivfn = 2
- av voice kamp, kfreq, kphoneme, kform, kvibf, kvamp, ifn, ivfn
+kamp = p4
+kphon = p5
+asig voice kamp, 200, kphon, 0.488, 0, 1, 1, 2
+ outs asig, asig
- ; It tends to get loud, so clip voice's amplitude at 30,000.
- a1 clip av, 2, 30000
- out a1
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 256 1 "impuls20.aiff" 0 0 0 ;audio file for the carrier waveform
+f 2 0 256 10 1 ;sine wave for the vibrato waveform
+
+; ampl phoneme
+i 1 0 2 0.8 1
+i 1 + . 0.6 2
+i 1 + . 1.8 3
+i 1 + . 15.0 4
+i 1 + . 0.05 5
+i 1 + . 0.06 6
+i 1 + . 0.03 7
+i 1 + . 0.0002 8
+i 1 + . 0.1 9
+i 1 + . 0.5 10
+i 1 + . 100 11
+i 1 + . 0.03 12
+i 1 + . 0.04 13
+i 1 + . 0.04 14
+i 1 + . 0.04 15
+i 1 + . 0.05 16
-; Table #1, an audio file for the carrier waveform.
-f 1 0 256 1 "impuls20.aiff" 0 0 0
-; Table #2, a sine wave for the vibrato waveform.
-f 2 0 256 10 1
-
-; Play Instrument #1 for a half-second.
-i 1 0 0.5
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/vpow-2.csd b/examples/vpow-2.csd
new file mode 100644
index 0000000..f985910
--- /dev/null
+++ b/examples/vpow-2.csd
@@ -0,0 +1,39 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vpow-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+ain diskin2 "fox.wav", 1 ;soundfile
+fsrc pvsanal ain, 1024, 256, 1024, 1
+ifn ftgen 0, 0, 1024/2, 2, 0 ;create empty function table for the 513 bins
+kflag pvsftw fsrc,ifn ;export only amplitudes to table
+kval line .001, p3, 1 ;start with big distortion, cahnge over note duration to clean sound
+kbin line p4, p3, p5 ;vary the bins
+vpow ifn, kval, kbin, 0 ;note that this operation is applied each k-cycle!
+;vpow ifn, kval, kbin, 10 ;if you set kdstoffset to 10 it will affect bins 10+(kbin line p4, p3, p5)
+ pvsftr fsrc,ifn ;read modified data back to fsrc
+aout pvsynth fsrc ;and resynth
+ outs aout*p6, aout*p6 ;adjust volume to compensate
+
+endin
+</CsInstruments>
+<CsScore>
+
+i 1 0 4 100 100 .02 ;first 100 bins are affected
+i 1 + 4 10 10 .1 ;first 10 bins
+i 1 + 4 1 400 .05 ;sweep from bin 1 to 400
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/vpow_i-2.csd b/examples/vpow_i-2.csd
new file mode 100644
index 0000000..d0fea04
--- /dev/null
+++ b/examples/vpow_i-2.csd
@@ -0,0 +1,36 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o vpow_i-2.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+gifil ftgen 1, 0, 0, 1, "fox.wav", 0, 0, 1
+
+instr 1
+
+ival = p4 ;different distortion settings
+ielements = p5
+idstoffset = p6 ;index offset
+vpow_i 1, ival, ielements, idstoffset
+asig lposcil 1, 1, 0, 0, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+
+i1 0 2.7 .5 70000 0 ;no offset
+i1 3 2.7 .01 50000 70000 ;add another period of distortion, starting at sample 70000
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/vpvoc.csd b/examples/vpvoc.csd
index 2dfa934..e7c375a 100644
--- a/examples/vpvoc.csd
+++ b/examples/vpvoc.csd
@@ -1,39 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o vpvoc.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
+ksmps = 32
nchnls = 2
+0dbfs = 1
-;analyze "fox.wav" with pvanal first
instr 1
-
-ktime line 0, p3,3 ; time pointer, in seconds, into file
- tablexseg 3, p3*.5, 1, p3*.5, 2
-apv vpvoc ktime,1, "fox.pvx"
-apv = apv*1
-outs apv, apv
-endin
-
-
+; analyze "fox.wav" with PVANAL first
+iend = p4
+ktime line 0, p3, iend
+ tablexseg p5, p3, p6 ;morph from table 1
+asig vpvoc ktime, 1, "fox.pvx" ;to table 2
+ outs asig*3, asig*3
+
+endin
</CsInstruments>
<CsScore>
+f 1 0 512 9 .5 1 0
+f 2 0 512 5 1 60 0.01 390 0.01 62 1
-f 1 0 256 5 .001 128 1 128 .001
-f 2 0 256 5 1 128 .001 128 1
-f 3 0 256 7 1 256 1
-
-i1 0 10
+i 1 0 5 2.7 1 2
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/vtablewa.csd b/examples/vtablewa.csd
index 0d049e9..dc46e32 100644
--- a/examples/vtablewa.csd
+++ b/examples/vtablewa.csd
@@ -9,11 +9,12 @@ sr=44100
kr=4410
ksmps=10
nchnls=2
+0dbfs = 1
instr 1
-vcopy
+vcopy 2, 1, 262144
ar random 0, 1
-vtablewa ar
+vtablewa ar,2,1,ar
out ar,ar
endin
@@ -23,16 +24,8 @@ out ar,ar
f1 0 262144 -1 "beats.wav" 0 4 0
f2 0 262144 2 0
-
-i1 0 4
-i2 3 1
-
-s
-i1 0 4
-i3 3 1
-s
-
i1 0 4
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/vtablewk.csd b/examples/vtablewk.csd
index e86fc42..3b97419 100644
--- a/examples/vtablewk.csd
+++ b/examples/vtablewk.csd
@@ -12,7 +12,7 @@ ksmps=100
nchnls=2
instr 1
-ilen = ftlen (1)
+ilen = ftlen(1)
knew1 oscil 10000, 440, 3
knew2 oscil 15000, 440, 3, 0.5
@@ -25,7 +25,7 @@ out asig,asig
</CsInstruments>
<CsScore>
-f1 0 262144 -1 "beats.aiff" 0 4 0
+f1 0 262144 -1 "beats.wav" 0 4 0
f2 0 262144 2 0
f3 0 1024 10 1
diff --git a/examples/waveset.csd b/examples/waveset.csd
index e0e6e89..fb2c154 100644
--- a/examples/waveset.csd
+++ b/examples/waveset.csd
@@ -1,44 +1,33 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o waveset.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs =1
-; Instrument #1 - play an audio file.
instr 1
- asig soundin "beats.wav"
- out asig
-endin
-
-; Instrument #2 - stretch the audio file with waveset.
-instr 2
- asig soundin "beats.wav"
- a1 waveset asig, 2
-
- out a1
+krep init p4
+asig soundin "flute.aiff"
+aout waveset asig, krep
+ outs aout, aout
+
endin
-
-
</CsInstruments>
<CsScore>
-; Play Instrument #1 for two seconds.
-i 1 0 2
-; Play Instrument #2 for four seconds.
-i 2 3 4
-e
-
+i 1 0 3 1 ;no repetitions
+i 1 + 10 3 ;stretching 3 times
+i 1 + 14 6 ;6 times
+e
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/weibull.csd b/examples/weibull.csd
index 23026ee..b31562a 100644
--- a/examples/weibull.csd
+++ b/examples/weibull.csd
@@ -1,52 +1,52 @@
-<CsoundSynthesizer>
-<CsOptions>
-; Select audio/midi flags here according to platform
-; Audio out Audio in
--odac -iadc ;;;RT audio I/O
-; For Non-realtime ouput leave only the line below:
-; -o weibull.wav -W ;;; for file output any platform
-</CsOptions>
-<CsInstruments>
-
-; Initialize the global variables.
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
-
-; Instrument #1.
-instr 1
- ; Generate a random number in a Weibull distribution.
- ; ksigma = 1
- ; ktau = 1
-
- i1 weibull 1, 1
-
- print i1
-endin
-
-; Instrument #2.
-instr 2
- ; Generate a random number in a Weibull distribution.
- ; ksigma = 1
- ; ktau = 1
-
- seed 0
-
- i1 weibull 1, 1
-
- print i1
-endin
-
-</CsInstruments>
-<CsScore>
-
-; Play Instrument #1 for one second.
-i 1 0 1
-; Play Instrument #2 for one second.
-i 2 1 1
-e
-
-
-</CsScore>
-</CsoundSynthesizer>
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o weibull.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1 ; every run time same values
+
+ktri weibull 100, 1
+ printk .2, ktri ; look
+aout oscili 0.8, 440+ktri, 1 ; & listen
+ outs aout, aout
+endin
+
+instr 2 ; every run time different values
+
+ seed 0
+ktri weibull 100, 1
+ printk .2, ktri ; look
+aout oscili 0.8, 440+ktri, 1 ; & listen
+ outs aout, aout
+endin
+
+instr 3 ; every run time different values
+
+ seed 0
+ktri weibull 100, 10 ; closer to ksigma..
+ printk .2, ktri ; look
+aout oscili 0.8, 440+ktri, 1 ; & listen
+ outs aout, aout
+endin
+</CsInstruments>
+<CsScore>
+; sine wave
+f 1 0 16384 10 1
+
+i 1 0 2
+i 2 3 2
+i 3 6 2
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/wgbow.csd b/examples/wgbow.csd
index c3054bf..018ed83 100644
--- a/examples/wgbow.csd
+++ b/examples/wgbow.csd
@@ -1,47 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o wgbow.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 31129.60
- kfreq = 440
- kpres = 3.0
- krat = 0.127236
- kvibf = 6.12723
- ifn = 1
-
- ; Create an amplitude envelope for the vibrato.
- kv linseg 0, 0.5, 0, 1, 1, p3-0.5, 1
- kvamp = kv * 0.01
-
- a1 wgbow kamp, kfreq, kpres, krat, kvibf, kvamp, ifn
- out a1
-endin
+kpres = p4 ;pressure value
+krat = p5 ;position along string
+kvibf = 6.12723
+
+kvib linseg 0, 0.5, 0, 1, 1, p3-0.5, 1 ; amplitude envelope for the vibrato.
+kvamp = kvib * 0.01
+asig wgbow .7, 55, kpres, krat, kvibf, kvamp, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 1 0 2048 10 1 ;sine wave
-; Table #1, a sine wave.
-f 1 0 128 10 1
+i 1 0 3 3 0.127236
+i 1 + 3 5 0.127236
+i 1 + 3 5 0.23
-; Play Instrument #1 for two seconds.
-i 1 0 2
e
-
-
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/wgbowedbar.csd b/examples/wgbowedbar.csd
index 7fe4622..dbf4d02 100644
--- a/examples/wgbowedbar.csd
+++ b/examples/wgbowedbar.csd
@@ -1,43 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o wgbowedbar.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
- instr 1
-; pos = [0, 1]
-; bowpress = [1, 10]
-; gain = [0.8, 1]
-; intr = [0,1]
-; trackvel = [0, 1]
-; bowpos = [0, 1]
-
- kb line 0.5, p3, 0.1
- kp line 0.6, p3, 0.7
- kc line 1, p3, 1
-
- a1 wgbowedbar p4, cpspch(p5), kb, kp, 0.995, p6, 0
-
- out a1
- endin
+instr 1
+kp = p6
+asig wgbowedbar p4, cpspch(p5), 1, kp, 0.995
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
-
- i1 0 3 32000 7.00 0
- e
-
-
+s
+i1 0 .5 .5 7.00 .1 ;short sound
+i1 + . .3 8.00 .1
+i1 + . .5 9.00 .1
+s
+i1 0 .5 .5 7.00 1 ;longer sound
+i1 + . .3 8.00 1
+i1 + . .5 9.00 1
+
+e
</CsScore>
</CsoundSynthesizer>
+
diff --git a/examples/wgclar.csd b/examples/wgclar.csd
index bab1fe1..d98626e 100644
--- a/examples/wgclar.csd
+++ b/examples/wgclar.csd
@@ -1,47 +1,39 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o wgclar.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp init 31129.60
- kfreq = 440
- kstiff = -0.3
- iatt = 0.1
- idetk = 0.1
- kngain = 0.2
- kvibf = 5.735
- kvamp = 0.1
- ifn = 1
- a1 wgclar kamp, kfreq, kstiff, iatt, idetk, kngain, kvibf, kvamp, ifn
-
- out a1
+kfreq = 330
+kstiff = -0.3
+iatt = 0.1
+idetk = 0.1
+kngain init p4 ;vary breath
+kvibf = 5.735
+kvamp = 0.1
+
+asig wgclar .9, kfreq, kstiff, iatt, idetk, kngain, kvibf, kvamp, 1
+ outs asig, asig
+
endin
-
-
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for one second.
-i 1 0 1
+i 1 0 2 0.2
+i 1 + 2 0.5 ;more breath
e
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/wgflute.csd b/examples/wgflute.csd
index 23afa7a..7bf7258 100644
--- a/examples/wgflute.csd
+++ b/examples/wgflute.csd
@@ -1,46 +1,38 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o wgflute.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
-; Initialize the global variables.
sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 1
+ksmps = 32
+nchnls = 2
+0dbfs = 1
-; Instrument #1.
instr 1
- kamp = 31129.60
- kfreq = 440
- kjet = 0.32
- iatt = 0.1
- idetk = 0.1
- kngain = 0.15
- kvibf = 5.925
- kvamp = 0.05
- ifn = 1
- a1 wgflute kamp, kfreq, kjet, iatt, idetk, kngain, kvibf, kvamp, ifn
- out a1
-endin
+kfreq = 440
+kjet init p4 ;vary air jet
+iatt = 0.1
+idetk = 0.1
+kngain = 0.15
+kvibf = 5.925
+kvamp = 0.05
+asig wgflute .8, kfreq, kjet, iatt, idetk, kngain, kvibf, kvamp, 1
+ outs asig, asig
+endin
</CsInstruments>
<CsScore>
+f 1 0 16384 10 1 ;sine wave
-; Table #1, a sine wave.
-f 1 0 16384 10 1
-
-; Play Instrument #1 for two seconds.
-i 1 0 2
+i 1 0 2 0.02 ;more air jet
+i 1 + 2 0.32
e
-
-
</CsScore>
</CsoundSynthesizer>
diff --git a/examples/wguide2.csd b/examples/wguide2.csd
index 31f71cc..45be789 100644
--- a/examples/wguide2.csd
+++ b/examples/wguide2.csd
@@ -1,29 +1,37 @@
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-; Audio out Audio in No messages
--odac -iadc -d ;;;RT audio I/O
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
-; -o wguide1.wav -W ;;; for file output any platform
+; -o wguide2.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
+
sr = 44100
+ksmps = 32
nchnls = 2
-instr 1
- afrq line 50, 10, 100
- asig oscil 3000, afrq, 1
- aenv expon 1,10,0.000001
- aexc = aenv*asig
- ares wguide2 aexc, 500, 1200, 777, 1500, 0.2, 0.25
- out ares,asig
+0dbfs = 1
+
+instr 1
+
+aout diskin2 "beats.wav", 1, 0, 1 ;in signal
+afreq1 line 100, p3, 2000
+afreq2 line 1200, p3, p4 ;vary second frequency in the score
+kcutoff1 = 3000
+kcutoff2 = 1500
+kfeedback1 = 0.25 ;the sum of the two feedback
+kfeedback2 = 0.25 ;values should not exceed 0.5
+asig wguide2 aout, afreq1, afreq2, kcutoff1, kcutoff2, kfeedback1, kfeedback2
+asig dcblock2 asig ;get rid of DC
+ outs asig, asig
+
endin
</CsInstruments>
-
<CsScore>
-f1 0 4096 10 1
-i1 0 3
+i 1 0 8 1200 ;freqency of afreq2 remains the same
+i 1 9 8 100 ;freqency of afreq2 gets lower
e
</CsScore>
-
</CsoundSynthesizer>
diff --git a/examples/wrap.csd b/examples/wrap.csd
new file mode 100644
index 0000000..877531f
--- /dev/null
+++ b/examples/wrap.csd
@@ -0,0 +1,53 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o wrap.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+0dbfs = 1
+nchnls = 2
+
+instr 1 ; Limit / Mirror / Wrap
+
+igain = p4 ;gain
+ilevl1 = p5 ; + level
+ilevl2 = p6 ; - level
+imode = p7 ;1 = limit, 2 = mirror, 3 = wrap
+
+ain soundin "fox.wav"
+ain = ain*igain
+
+if imode = 1 goto limit
+if imode = 2 goto mirror
+
+asig wrap ain, ilevl2, ilevl1
+goto outsignal
+
+limit:
+asig limit ain, ilevl2, ilevl1
+goto outsignal
+
+mirror:
+asig mirror ain, ilevl2, ilevl1
+outsignal:
+
+outs asig*.5, asig*.5 ;mind your speakers
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+; Gain +Levl -Levl Mode
+i1 0 3 4.00 .25 -1.00 1 ;limit
+i1 4 3 4.00 .25 -1.00 2 ;mirror
+i1 8 3 4.00 .25 -1.00 3 ;wrap
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/x.csd b/examples/x.csd
new file mode 100644
index 0000000..2f5fcfb
--- /dev/null
+++ b/examples/x.csd
@@ -0,0 +1,46 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o x.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+aenv expseg .01, p3*0.25, 1, p3*0.75, 0.01
+asig poscil3 .8*aenv, p4, 1
+ outs asig, asig
+
+endin
+</CsInstruments>
+<CsScore>
+f 1 0 16384 10 1 ;sine wave
+
+s ;first section
+i 1 0 2 110
+i 1 3 2 220
+i 1 6 2 440
+i 1 9 2 880
+s ;second section
+x ;skip the rest
+i 1 0 2 110 ;of this section
+i 1 3 2 220
+i 1 6 2 440
+i 1 9 2 880
+s ;but continue with this one
+i 1 0 2 880
+i 1 3 2 440
+i 1 6 2 220
+i 1 9 2 110
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/xadsr.csd b/examples/xadsr.csd
new file mode 100644
index 0000000..968bd0b
--- /dev/null
+++ b/examples/xadsr.csd
@@ -0,0 +1,40 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if RT audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o xadsr.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+instr 1
+
+iatt = p5
+idec = p6
+islev = p7
+irel = p8
+
+kenv xadsr iatt, idec, islev, irel
+kcps = cpspch(p4) ;frequency
+
+asig vco2 kenv * 0.8, kcps
+ outs asig, asig
+
+endin
+
+</CsInstruments>
+<CsScore>
+
+i 1 0 1 7.00 .0001 1 .01 .001 ; short attack
+i 1 2 1 7.02 1 .5 .01 .001 ; long attack
+i 1 4 2 6.09 .0001 1 .1 .7 ; long release
+
+e
+</CsScore>
+</CsoundSynthesizer>
diff --git a/examples/xscanmap.csd b/examples/xscanmap.csd
new file mode 100644
index 0000000..38f1cc5
--- /dev/null
+++ b/examples/xscanmap.csd
@@ -0,0 +1,74 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o xscanmap.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+;the matrices can be found in /manual/examples
+
+instr 1 ; Plain scanned syntnesis
+ ; note - scanu display is turned off
+a0 = 0
+ xscanu 1, .01, 6, 2, "128-stringcircularX", 4, 5, 2, .1, .1, -.01, .1, .5, 0, 0, a0, 0, 0
+ a1 xscans p4, cpspch(p5), 7, 0, 3
+k1,k2 xscanmap 0, 1000, 1000, 64
+ display k1, .25 ; note - display is updated every second
+ outs a1, a1
+endin
+
+instr 2 ; Scan synthesis with audio injection and dual scan paths
+ ; note - scanu display is turned off
+ain diskin2 "fox.wav",1,0,1
+ain in
+a0 = ain/10000
+ xscanu 1, .01, 6, 2, "128,8-gridX", 14, 5, 2, .01, .05, -.05, .1, .5, 0, 0, a0, 0, 0
+a1 xscans p4, cpspch(p5), 7, 0, 2
+a2 xscans p4, cpspch(p6), 77, 0, 3
+k1,k2 xscanmap 0, 1000, 1000, 127
+ display k2, .5 ; note - display is updated ever 500ms
+ outs a1,a2
+endin
+
+</CsInstruments>
+<CsScore>
+; Initial condition
+;f1 0 16 7 0 8 1 8 0
+f1 0 128 7 0 64 1 64 0
+
+; Masses
+f2 0 128 -7 1 128 1
+
+; Centering force
+f4 0 128 -7 0 128 2
+f14 0 128 -7 2 64 0 64 2
+
+; Damping
+f5 0 128 -7 1 128 1
+
+; Initial velocity
+f6 0 128 -7 -.0 128 .0
+
+; Trajectories
+f7 0 128 -5 .001 128 128
+f77 0 128 -23 "128-spiral-8,16,128,2,1over2"
+
+; Sine
+f9 0 1024 10 1
+;--------------------------------
+; Note list
+i1 0 10 .9 7.00
+s
+i2 0 10 1 8.00 6.00
+i2 0 10 1 7.00 8.05
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/xscans.csd b/examples/xscans.csd
new file mode 100644
index 0000000..0a0505e
--- /dev/null
+++ b/examples/xscans.csd
@@ -0,0 +1,108 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o xscans.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+;the matrices can be found in /manual/examples
+
+instr 1 ; Plain scanned syntnesis
+
+ a0 = 0
+ xscanu 1, .01, 6, 2, "128,8-cylinderX", 4, 5, 2, .1, .1, -.01, .1, .5, 0, 0, a0, 0, 0
+ a1 xscans .7, cpspch(p4), 7, 0, 1
+ outs a1, a1
+endin
+
+
+instr 2 ; Scan synthesis with audio injection and dual scan paths
+ ; tap the mic or sing to inject audio into the resonators
+
+ a0,aa ins
+ a0 = a0/.8
+ xscanu 1, .01, 6, 2, "128,8-gridX", 14, 5, 2, .01, .05, -.05, .1, .5, 0, 0, a0, 0, 0
+ a1 xscans .5, cpspch(7.00), 7, 0, 1
+ a2 xscans .5, cpspch(7.001), 77, 0, 1
+ outs a1+a2,a1+a2
+endin
+
+
+instr 3 ; Vibrating structure with audio injection
+ ; Tap the MIC - to inject audio into the resonators
+
+ a0,aa ins
+ a0 = a0/.8
+ xscanu 1, .01, 6, 2, "128-stringcircularX", 14, 5, 2, .01, .05, -.05, .25, .75, 0, 0, a0, 0, 1
+endin
+
+
+instr 4 ; Modulated scanners
+
+ i1 bexprnd 5
+ i2 bexprnd 1
+ ko oscil i1, i2, 9
+ ka1 oscili .5, .15*8, p7
+ ka2 oscili .5, .15*8, p8
+ kf oscili 1, .15, p4
+ kf = 2^(kf/12)*p6*440+ko
+ a1 xscans p9*ka1, kf+i1, 777, 1, 1
+ a2 xscans p9*ka2, (kf+i1)*2.1, 77, 1, 1
+ outs a1+a2, a1+a2
+endin
+
+</CsInstruments>
+<CsScore>
+; Initial condition
+f1 0 128 7 0 64 1 64 0
+; Masses
+f2 0 128 -7 1 128 1
+; Centering force
+f4 0 128 -7 0 128 2
+f14 0 128 -7 2 64 0 64 2
+; Damping
+f5 0 128 -7 1 128 1
+; Initial velocity
+f6 0 128 -7 -.0 128 .0
+; Trajectories
+f7 0 128 -5 .001 128 128
+f777 0 128 -23 "128-stringcircular"
+f77 0 128 -23 "128-spiral-8,16,128,2,1over2"
+; Sine
+f9 0 16384 10 1
+
+; Pitch tables
+f100 0 1024 -7 +3 128 +3 128 -2 128 -2 128 +0 128 +0 128 -4 128 -4 128 +3
+f101 0 1024 -7 -2 128 -2 128 -2 128 -2 128 -5 128 -5 128 -4 128 -4 128 -2
+f102 0 1024 -7 +3 128 +3 128 +2 128 +2 128 +0 128 +0 128 +0 128 +0 128 +3
+f103 0 1024 -7 +7 128 +7 128 +5 128 +5 128 +3 128 +3 128 +3 128 +3 128 +7
+
+; Amplitude tables
+f200 0 1024 7 1 128 0 128 0 127 0 1 1 128 0 128 0 127 0 1 1 128 0 127 0 1 1
+f201 0 1024 7 0 127 0 1 1 127 0 1 1 128 0 127 0 1 1 127 0 1 1 128 0 127 0 1 1 127 0 1 1
+f202 0 1024 7 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1
+f203 0 1024 7 1 1024 0
+
+;----------------------------------
+
+; Note list
+i1 0 10 6.00 1
+s
+i2 1 10
+s
+i3 1 23
+i4 1 23 101 1 .5 200 202 1.5
+i4 . . 102 0 .5 200 201 1
+i4 . . 103 0 .5 200 201 1
+i4 . . 100 0 .25 200 200 2
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/examples/xscanu.csd b/examples/xscanu.csd
new file mode 100644
index 0000000..b39b65a
--- /dev/null
+++ b/examples/xscanu.csd
@@ -0,0 +1,98 @@
+<CsoundSynthesizer>
+<CsOptions>
+; Select audio/midi flags here according to platform
+-odac ;;;realtime audio out
+;-iadc ;;;uncomment -iadc if realtime audio input is needed too
+; For Non-realtime ouput leave only the line below:
+; -o xscanu.wav -W ;;; for file output any platform
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+;the matrices can be found in /manual/examples
+
+instr 1 ; Plain scanned syntnesis
+ ; Note Also that I am using quadratic interpolation on these.
+ a0 = 0
+ xscanu 1, .01, 6, 2, "128,8-gridX", 4, 5, 2, .1, .1, -.01, .1, .5, 0, 0, a0, 0, 0
+ a1 xscans .5, cpspch(p4), 333, 0, p6 ; NOTE LEFT RIGHT TRAJECTORY (f333) IS CLEAN!
+ a1 dcblock a1
+ outs a1, a1
+endin
+
+
+instr 2 ; Scan synthesis with audio injection and dual scan paths
+
+ a0 diskin2 "fox.wav",1,0,1
+ ; a0,aa ins
+ a0 = a0/.8
+ xscanu 1, .01, 6, 2, "128,8-torusX", 14, 5, 2, .01, .05, -.05, .1, .5, 0, 0, a0, 0, 0
+ a1 xscans .3, cpspch(7.00), 333, 0, 2 ; NOTE LEFT RIGHT TRAJECTORY (f333) IS CLEAN!
+ a2 xscans .3, cpspch(6.00), 77, 0, 2
+ a1 dcblock a1
+ a2 dcblock a2
+ outs a1*.5,a2*.1
+endin
+
+</CsInstruments>
+<CsScore>
+
+; Initial condition
+;f1 0 16 7 0 8 1 8 0
+f1 0 128 7 0 64 1 64 0
+
+; Masses
+f2 0 128 -7 1 128 1
+
+; Centering force
+f4 0 128 -7 0 128 2
+f14 0 128 -7 2 64 0 64 2
+
+; Damping
+f5 0 128 -7 1 128 1
+
+; Initial velocity
+f6 0 128 -7 -.0 128 .0
+
+; Trajectories
+f7 0 128 -5 .001 128 128
+f77 0 128 -23 "128-spiral-8,16,128,2,1over2"
+f777 0 128 -23 "128,8-torusX"
+
+; Spring matrices
+f3 0 128 -23 "128-stringX"
+f33 0 128 -23 "128-stringcircularX"
+f333 0 128 -23 "128-left_rightX"
+f3333 0 128 -23 "128,8-torusX"
+f33333 0 128 -23 "128,8-cylinderX"
+f333333 0 128 -23 "128,8-gridX"
+
+; Sine
+f9 0 1024 10 1
+
+; Pitch tables
+f100 0 1024 -7 +3 128 +3 128 -2 128 -2 128 +0 128 +0 128 -4 128 -4 128 +3
+f101 0 1024 -7 -2 128 -2 128 -2 128 -2 128 -5 128 -5 128 -4 128 -4 128 -2
+f102 0 1024 -7 +3 128 +3 128 +2 128 +2 128 +0 128 +0 128 +0 128 +0 128 +3
+f103 0 1024 -7 +7 128 +7 128 +5 128 +5 128 +3 128 +3 128 +3 128 +3 128 +7
+
+; Amplitude tables
+f200 0 1024 7 1 128 0 128 0 127 0 1 1 128 0 128 0 127 0 1 1 128 0 127 0 1 1
+f201 0 1024 7 0 127 0 1 1 127 0 1 1 128 0 127 0 1 1 127 0 1 1 128 0 127 0 1 1 127 0 1 1
+f202 0 1024 7 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1 1 127 0 1
+f203 0 1024 7 1 1024 0
+;;f204 0 1024 7 1 512 0 511 0 1 1
+
+;-----------------------
+
+; Note list
+i1 0 10 6.00 1 2
+s
+i2 0 15
+e
+</CsScore>
+</CsoundSynthesizer>
+
diff --git a/images/gen01_1.png b/images/gen01_1.png
new file mode 100644
index 0000000..fc957e6
--- /dev/null
+++ b/images/gen01_1.png
Binary files differ
diff --git a/images/gen01_2.png b/images/gen01_2.png
new file mode 100644
index 0000000..a5fa006
--- /dev/null
+++ b/images/gen01_2.png
Binary files differ
diff --git a/images/gen01_3.png b/images/gen01_3.png
new file mode 100644
index 0000000..9b0f2f8
--- /dev/null
+++ b/images/gen01_3.png
Binary files differ
diff --git a/images/gen02_1.png b/images/gen02_1.png
new file mode 100644
index 0000000..5095d09
--- /dev/null
+++ b/images/gen02_1.png
Binary files differ
diff --git a/images/gen02_2.png b/images/gen02_2.png
new file mode 100644
index 0000000..a25b698
--- /dev/null
+++ b/images/gen02_2.png
Binary files differ
diff --git a/images/gen02_3.png b/images/gen02_3.png
new file mode 100644
index 0000000..d2fe4af
--- /dev/null
+++ b/images/gen02_3.png
Binary files differ
diff --git a/images/gen03_1.png b/images/gen03_1.png
new file mode 100644
index 0000000..313a4a6
--- /dev/null
+++ b/images/gen03_1.png
Binary files differ
diff --git a/images/gen03_2.png b/images/gen03_2.png
new file mode 100644
index 0000000..c3014cb
--- /dev/null
+++ b/images/gen03_2.png
Binary files differ
diff --git a/images/gen03_3.png b/images/gen03_3.png
new file mode 100644
index 0000000..2ab51b8
--- /dev/null
+++ b/images/gen03_3.png
Binary files differ
diff --git a/images/gen03_4.png b/images/gen03_4.png
new file mode 100644
index 0000000..7c8141a
--- /dev/null
+++ b/images/gen03_4.png
Binary files differ
diff --git a/images/gen03_5.png b/images/gen03_5.png
new file mode 100644
index 0000000..2a08ff2
--- /dev/null
+++ b/images/gen03_5.png
Binary files differ
diff --git a/images/gen04_1.png b/images/gen04_1.png
new file mode 100644
index 0000000..e0cf506
--- /dev/null
+++ b/images/gen04_1.png
Binary files differ
diff --git a/images/gen04_2.png b/images/gen04_2.png
new file mode 100644
index 0000000..2ed55a5
--- /dev/null
+++ b/images/gen04_2.png
Binary files differ
diff --git a/images/gen04_3.png b/images/gen04_3.png
new file mode 100644
index 0000000..96b37c5
--- /dev/null
+++ b/images/gen04_3.png
Binary files differ
diff --git a/images/gen04_4.png b/images/gen04_4.png
new file mode 100644
index 0000000..51a4746
--- /dev/null
+++ b/images/gen04_4.png
Binary files differ
diff --git a/images/gen05_1.png b/images/gen05_1.png
new file mode 100644
index 0000000..ea69abc
--- /dev/null
+++ b/images/gen05_1.png
Binary files differ
diff --git a/images/gen05_2.png b/images/gen05_2.png
new file mode 100644
index 0000000..b77dfc4
--- /dev/null
+++ b/images/gen05_2.png
Binary files differ
diff --git a/images/gen06_1.png b/images/gen06_1.png
new file mode 100644
index 0000000..7cb8f57
--- /dev/null
+++ b/images/gen06_1.png
Binary files differ
diff --git a/images/gen06_2.png b/images/gen06_2.png
new file mode 100644
index 0000000..939685f
--- /dev/null
+++ b/images/gen06_2.png
Binary files differ
diff --git a/images/gen07_1.png b/images/gen07_1.png
new file mode 100644
index 0000000..effe1cc
--- /dev/null
+++ b/images/gen07_1.png
Binary files differ
diff --git a/images/gen07_2.png b/images/gen07_2.png
new file mode 100644
index 0000000..7438bd7
--- /dev/null
+++ b/images/gen07_2.png
Binary files differ
diff --git a/images/gen07_3.png b/images/gen07_3.png
new file mode 100644
index 0000000..ac42268
--- /dev/null
+++ b/images/gen07_3.png
Binary files differ
diff --git a/images/gen08_1.png b/images/gen08_1.png
new file mode 100644
index 0000000..a139162
--- /dev/null
+++ b/images/gen08_1.png
Binary files differ
diff --git a/images/gen08_2.png b/images/gen08_2.png
new file mode 100644
index 0000000..ee21f60
--- /dev/null
+++ b/images/gen08_2.png
Binary files differ
diff --git a/images/gen09_1.png b/images/gen09_1.png
new file mode 100644
index 0000000..8d25bb7
--- /dev/null
+++ b/images/gen09_1.png
Binary files differ
diff --git a/images/gen09_2.png b/images/gen09_2.png
new file mode 100644
index 0000000..7807c4c
--- /dev/null
+++ b/images/gen09_2.png
Binary files differ
diff --git a/images/gen09_3.png b/images/gen09_3.png
new file mode 100644
index 0000000..be0a05a
--- /dev/null
+++ b/images/gen09_3.png
Binary files differ
diff --git a/images/gen09_4.png b/images/gen09_4.png
new file mode 100644
index 0000000..8ced7b1
--- /dev/null
+++ b/images/gen09_4.png
Binary files differ
diff --git a/images/gen10_1.png b/images/gen10_1.png
new file mode 100644
index 0000000..23f39ef
--- /dev/null
+++ b/images/gen10_1.png
Binary files differ
diff --git a/images/gen10_2.png b/images/gen10_2.png
new file mode 100644
index 0000000..57538cb
--- /dev/null
+++ b/images/gen10_2.png
Binary files differ
diff --git a/images/gen10_3.png b/images/gen10_3.png
new file mode 100644
index 0000000..1c0e9ca
--- /dev/null
+++ b/images/gen10_3.png
Binary files differ
diff --git a/images/gen10_4.png b/images/gen10_4.png
new file mode 100644
index 0000000..e2ff252
--- /dev/null
+++ b/images/gen10_4.png
Binary files differ
diff --git a/images/gen11_1.png b/images/gen11_1.png
new file mode 100644
index 0000000..bc6205b
--- /dev/null
+++ b/images/gen11_1.png
Binary files differ
diff --git a/images/gen11_2.png b/images/gen11_2.png
new file mode 100644
index 0000000..8abac26
--- /dev/null
+++ b/images/gen11_2.png
Binary files differ
diff --git a/images/gen11_3.png b/images/gen11_3.png
new file mode 100644
index 0000000..38ab765
--- /dev/null
+++ b/images/gen11_3.png
Binary files differ
diff --git a/images/gen12.png b/images/gen12.png
index dae49f0..8071992 100644
--- a/images/gen12.png
+++ b/images/gen12.png
Binary files differ
diff --git a/images/gen13_1.png b/images/gen13_1.png
new file mode 100644
index 0000000..40ad706
--- /dev/null
+++ b/images/gen13_1.png
Binary files differ
diff --git a/images/gen13_2.png b/images/gen13_2.png
new file mode 100644
index 0000000..502efb7
--- /dev/null
+++ b/images/gen13_2.png
Binary files differ
diff --git a/images/gen13_3.png b/images/gen13_3.png
new file mode 100644
index 0000000..ad69d6c
--- /dev/null
+++ b/images/gen13_3.png
Binary files differ
diff --git a/images/gen13_4.png b/images/gen13_4.png
new file mode 100644
index 0000000..8ce42c8
--- /dev/null
+++ b/images/gen13_4.png
Binary files differ
diff --git a/images/gen13_5.png b/images/gen13_5.png
new file mode 100644
index 0000000..7780a00
--- /dev/null
+++ b/images/gen13_5.png
Binary files differ
diff --git a/images/gen13_6.png b/images/gen13_6.png
new file mode 100644
index 0000000..184bd9e
--- /dev/null
+++ b/images/gen13_6.png
Binary files differ
diff --git a/images/gen13_7.png b/images/gen13_7.png
new file mode 100644
index 0000000..7565834
--- /dev/null
+++ b/images/gen13_7.png
Binary files differ
diff --git a/images/gen14_1.png b/images/gen14_1.png
new file mode 100644
index 0000000..7b8b9a1
--- /dev/null
+++ b/images/gen14_1.png
Binary files differ
diff --git a/images/gen14_2.png b/images/gen14_2.png
new file mode 100644
index 0000000..6e9a342
--- /dev/null
+++ b/images/gen14_2.png
Binary files differ
diff --git a/images/gen14_3.png b/images/gen14_3.png
new file mode 100644
index 0000000..87a5cf7
--- /dev/null
+++ b/images/gen14_3.png
Binary files differ
diff --git a/images/gen14_4.png b/images/gen14_4.png
new file mode 100644
index 0000000..1513009
--- /dev/null
+++ b/images/gen14_4.png
Binary files differ
diff --git a/images/gen15-1.png b/images/gen15-1.png
new file mode 100644
index 0000000..099da7e
--- /dev/null
+++ b/images/gen15-1.png
Binary files differ
diff --git a/images/gen15-2.png b/images/gen15-2.png
new file mode 100644
index 0000000..f90a190
--- /dev/null
+++ b/images/gen15-2.png
Binary files differ
diff --git a/images/gen15-3.png b/images/gen15-3.png
new file mode 100644
index 0000000..fce23b0
--- /dev/null
+++ b/images/gen15-3.png
Binary files differ
diff --git a/images/gen15-4.png b/images/gen15-4.png
new file mode 100644
index 0000000..980b84b
--- /dev/null
+++ b/images/gen15-4.png
Binary files differ
diff --git a/images/gen15-5.png b/images/gen15-5.png
new file mode 100644
index 0000000..604f3b5
--- /dev/null
+++ b/images/gen15-5.png
Binary files differ
diff --git a/images/gen17.png b/images/gen17.png
new file mode 100644
index 0000000..752fc40
--- /dev/null
+++ b/images/gen17.png
Binary files differ
diff --git a/images/gen18_1.png b/images/gen18_1.png
new file mode 100644
index 0000000..14f34b3
--- /dev/null
+++ b/images/gen18_1.png
Binary files differ
diff --git a/images/gen18_2.png b/images/gen18_2.png
new file mode 100644
index 0000000..23e839f
--- /dev/null
+++ b/images/gen18_2.png
Binary files differ
diff --git a/images/gen18_3.png b/images/gen18_3.png
new file mode 100644
index 0000000..3538cf1
--- /dev/null
+++ b/images/gen18_3.png
Binary files differ
diff --git a/images/gen19_1.png b/images/gen19_1.png
new file mode 100644
index 0000000..20ae514
--- /dev/null
+++ b/images/gen19_1.png
Binary files differ
diff --git a/images/gen20_1.png b/images/gen20_1.png
new file mode 100644
index 0000000..c5b60f9
--- /dev/null
+++ b/images/gen20_1.png
Binary files differ
diff --git a/images/gen20_2.png b/images/gen20_2.png
new file mode 100644
index 0000000..b35e74a
--- /dev/null
+++ b/images/gen20_2.png
Binary files differ
diff --git a/images/gen21_1.png b/images/gen21_1.png
new file mode 100644
index 0000000..1a413f1
--- /dev/null
+++ b/images/gen21_1.png
Binary files differ
diff --git a/images/gen21_2.png b/images/gen21_2.png
new file mode 100644
index 0000000..5dc51a5
--- /dev/null
+++ b/images/gen21_2.png
Binary files differ
diff --git a/images/gen21_3.png b/images/gen21_3.png
new file mode 100644
index 0000000..4fd5911
--- /dev/null
+++ b/images/gen21_3.png
Binary files differ
diff --git a/images/gen21_4.png b/images/gen21_4.png
new file mode 100644
index 0000000..a40a884
--- /dev/null
+++ b/images/gen21_4.png
Binary files differ
diff --git a/images/gen21_5.png b/images/gen21_5.png
new file mode 100644
index 0000000..5fa1861
--- /dev/null
+++ b/images/gen21_5.png
Binary files differ
diff --git a/images/gen23.png b/images/gen23.png
new file mode 100644
index 0000000..426b492
--- /dev/null
+++ b/images/gen23.png
Binary files differ
diff --git a/images/gen25.png b/images/gen25.png
new file mode 100644
index 0000000..7da67e7
--- /dev/null
+++ b/images/gen25.png
Binary files differ
diff --git a/images/gen27.png b/images/gen27.png
new file mode 100644
index 0000000..2ec206b
--- /dev/null
+++ b/images/gen27.png
Binary files differ
diff --git a/images/gen33.png b/images/gen33.png
new file mode 100644
index 0000000..9820ce7
--- /dev/null
+++ b/images/gen33.png
Binary files differ
diff --git a/images/gen34.png b/images/gen34.png
new file mode 100644
index 0000000..57cb370
--- /dev/null
+++ b/images/gen34.png
Binary files differ
diff --git a/images/gen40.png b/images/gen40.png
new file mode 100644
index 0000000..0ade6db
--- /dev/null
+++ b/images/gen40.png
Binary files differ
diff --git a/images/gen41.png b/images/gen41.png
new file mode 100644
index 0000000..cfb4b16
--- /dev/null
+++ b/images/gen41.png
Binary files differ
diff --git a/images/gen42.png b/images/gen42.png
new file mode 100644
index 0000000..478f8fe
--- /dev/null
+++ b/images/gen42.png
Binary files differ
diff --git a/images/gen49.png b/images/gen49.png
new file mode 100644
index 0000000..062ae5e
--- /dev/null
+++ b/images/gen49.png
Binary files differ
diff --git a/images/gen51_1.png b/images/gen51_1.png
new file mode 100644
index 0000000..ea6eb7a
--- /dev/null
+++ b/images/gen51_1.png
Binary files differ
diff --git a/images/gen51_2.png b/images/gen51_2.png
new file mode 100644
index 0000000..ac0d999
--- /dev/null
+++ b/images/gen51_2.png
Binary files differ
diff --git a/images/gen51_3.png b/images/gen51_3.png
new file mode 100644
index 0000000..1268454
--- /dev/null
+++ b/images/gen51_3.png
Binary files differ
diff --git a/images/gen52.png b/images/gen52.png
new file mode 100644
index 0000000..e6a55d7
--- /dev/null
+++ b/images/gen52.png
Binary files differ
diff --git a/images/gendy.png b/images/gendy.png
new file mode 100644
index 0000000..0a06d2f
--- /dev/null
+++ b/images/gendy.png
Binary files differ
diff --git a/images/gendyx.png b/images/gendyx.png
new file mode 100644
index 0000000..67eb4ad
--- /dev/null
+++ b/images/gendyx.png
Binary files differ
diff --git a/images/genexp_1.png b/images/genexp_1.png
new file mode 100644
index 0000000..e2f840e
--- /dev/null
+++ b/images/genexp_1.png
Binary files differ
diff --git a/images/genexp_2.png b/images/genexp_2.png
new file mode 100644
index 0000000..f42cca4
--- /dev/null
+++ b/images/genexp_2.png
Binary files differ
diff --git a/images/genfarey-2_1.png b/images/genfarey-2_1.png
new file mode 100644
index 0000000..a4180d1
--- /dev/null
+++ b/images/genfarey-2_1.png
Binary files differ
diff --git a/images/genfarey-2_2.png b/images/genfarey-2_2.png
new file mode 100644
index 0000000..3c0eda9
--- /dev/null
+++ b/images/genfarey-2_2.png
Binary files differ
diff --git a/images/gensone.png b/images/gensone.png
new file mode 100644
index 0000000..2b1f946
--- /dev/null
+++ b/images/gensone.png
Binary files differ
diff --git a/images/gentanh_1.png b/images/gentanh_1.png
new file mode 100644
index 0000000..10b067f
--- /dev/null
+++ b/images/gentanh_1.png
Binary files differ
diff --git a/images/gentanh_2.png b/images/gentanh_2.png
new file mode 100644
index 0000000..5709c3f
--- /dev/null
+++ b/images/gentanh_2.png
Binary files differ
diff --git a/images/gentanh_3.png b/images/gentanh_3.png
new file mode 100644
index 0000000..df7e1de
--- /dev/null
+++ b/images/gentanh_3.png
Binary files differ
diff --git a/imagesXO/editorXO.jpg b/imagesXO/editorXO.jpg
deleted file mode 100644
index 66c1e98..0000000
--- a/imagesXO/editorXO.jpg
+++ /dev/null
Binary files differ
diff --git a/macinstall-cp.sh b/macinstall-cp.sh
deleted file mode 100644
index c9a69fc..0000000
--- a/macinstall-cp.sh
+++ /dev/null
@@ -1 +0,0 @@
-cp -R html ../csound5_install/CsoundLib/Package_Contents/Library/Frameworks/CsoundLib.framework/Resources/Manual
diff --git a/makeframes.py b/makeframes.py
index b4d3098..c277bbc 100644
--- a/makeframes.py
+++ b/makeframes.py
@@ -193,7 +193,7 @@ for j in range(len(sections)):
(sections[j].attributes['class'].value!='refpurpose')and
(sections[j].attributes['class'].value!='quote')and
(sections[j].attributes['class'].value!='emphasis')):
- print "--------Title"
+ print "--------Title:", sections[j].childNodes[1].firstChild.toxml().encode('utf-8')
font = minidom.Element('font')
font.setAttribute('size','4')
font.setAttribute('color','Black')
@@ -240,8 +240,9 @@ for j in range(len(sections)):
#sections[j].attributes['class'].value!='quote' and
#sections[j].attributes['class'].value!='emphasis'):
if newNode != []:
- font.appendChild(newNode[0].cloneNode(True))
- parent.appendChild(font)
+ # font.appendChild(newNode[0].cloneNode(True))
+ parent.appendChild(newNode[0].cloneNode(True))
+# parent.appendChild(font)
parent.removeChild(sections[j])
#print sections[j].toxml().encode('latin-1')
@@ -259,34 +260,33 @@ for num in range(65,93):
alphabet.extend(chr(num+32))
count = -1
-for j in range(len(unwantedtext)):
- if (count==15):
- count = count+1 #There is no 'Q'
- if (count==23):
- count = count+1 #There is no 'Y'
- unwantedtext[j].removeChild(unwantedtext[j].childNodes[0])
- unwantedtext[j].appendChild(minidom.Element('br'))
- #print unwantedtext[j].toxml()
- node = unwantedtext[j].getElementsByTagName('a')
+for text in unwantedtext:
+ if count==15 or count==23:
+ count = count + 1 #There is no 'Q' or 'Y'
+ #print "text: ", text.toxml()
+ text.removeChild(text.childNodes[0])
+ #text.appendChild(minidom.Element('br'))
+ #print "Unwanted: ", text.toxml()
+ node = text.getElementsByTagName('a')
if ((node[0].firstChild.toxml().encode('utf-8')[0]==alphabet[count+1])
- or(node[0].toxml().encode('utf-8')[0]==alphabetcaps[count+1])):
+ or(node[0].toxml().encode('utf-8')[0]==alphabetcaps[count+1])):
count += 1
- string = '<b><a name="' + alphabet[count] + '">' + alphabetcaps[count] + '</a></b>'
- #print string
+ string = '<b style="border:solid;"><a name="' + alphabet[count] + '">' + alphabetcaps[count] + '</a></b>'
+ #print "string:", string
letter = minidom.parseString(string)
- unwantedtext[j].insertBefore(minidom.Element('br'), unwantedtext[j].firstChild)
- unwantedtext[j].insertBefore(letter.firstChild, unwantedtext[j].firstChild)
- #print unwantedtext[j].toxml().encode('latin-1')
- #print unwantedtext[j].toxml().encode('latin-1')
+ text.insertBefore(minidom.Element('br'), text.firstChild)
+ text.insertBefore(letter.firstChild, text.firstChild)
+ print "unwanted2: ", text.firstChild
+ #print text.toxml().encode('latin-1')
# routine to remove text description from score statement and GEN entries
unwantedtext = scoregens.getElementsByTagName('dt')
-for j in xrange(len(unwantedtext)):
- node = unwantedtext[j].firstChild
+for text in unwantedtext:
+ node = text.firstChild
if node.nodeType == minidom.Node.ELEMENT_NODE and node.tagName == 'a':
- unwantedtext[j].removeChild(unwantedtext[j].childNodes[1])
- unwantedtext[j].appendChild(minidom.Element('br'))
+ text.removeChild(text.childNodes[1])
+ text.appendChild(minidom.Element('br'))
# Routines to remove indentation
diff --git a/manpages.xml b/manpages.xml
deleted file mode 100644
index ea3636b..0000000
--- a/manpages.xml
+++ /dev/null
@@ -1,1531 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-
-<!--<!DOCTYPE book SYSTEM "docbook42/docbookx.dtd" [ -->
-
-<!-- INTRO ENTITIES GO HERE -->
-
-<!--<!ENTITY pface SYSTEM "preface/top.xml">
-<!ENTITY pfaceacknowledgements SYSTEM "preface/acknowledgements.xml">
-<!ENTITY pfacecopy SYSTEM "preface/copy.xml">
-<!ENTITY pfacehistory SYSTEM "preface/history.xml">
-<!ENTITY pfacepreface SYSTEM "preface/preface.xml">
-<!ENTITY pfacegettingstarted SYSTEM "preface/gettingstarted.xml">
-<!ENTITY pfacewhatsnew SYSTEM "preface/whatsnew.xml">-->
-
-<!-- OVERVIEW ENTITIES GO HERE -->
-<!ENTITY oviewusersguide SYSTEM "overview/usersguide.xml">
-<!ENTITY oviewintroduction SYSTEM "overview/introduction.xml">
-<!ENTITY oviewrecentdev SYSTEM "overview/recentdev.xml">
-<!ENTITY oviewconfiguring SYSTEM "overview/configuring.xml">
-<!ENTITY oviewusing SYSTEM "overview/using.xml">
-<!ENTITY oviewdesign SYSTEM "overview/design.xml">
-<!ENTITY oviewfrontends SYSTEM "overview/frontends.xml">
-<!ENTITY oviewbuilding SYSTEM "overview/building.xml">
-<!ENTITY oviewlinks SYSTEM "overview/links.xml">
-<!ENTITY oviewrealtimelinux SYSTEM "overview/realtimelinux.xml">
-<!ENTITY oviewrealtimewindows SYSTEM "overview/realtimewindows.xml">
-<!ENTITY oviewrealtimemac SYSTEM "overview/realtimemac.xml">
-
-<!-- CSOUND 5 ENTITIES GO HERE -->
-<!--<!ENTITY csound5licenses SYSTEM "csound5/licenses.xml">-->
-<!ENTITY csound5preface SYSTEM "csound5/preface.xml">
-<!ENTITY csound5acknowledgments SYSTEM "csound5/acknowledgments.xml">
-
-<!ENTITY csound5extending SYSTEM "csound5/extending.xml">
-
-<!ENTITY csound5opcodesSection SYSTEM "overview/cs5opcodes.xml">
-
-<!-- CSOUND 5 OPCODES -->
-
-<!--<!ENTITY opcodesATSadd SYSTEM "opcodes/ATSadd.xml">
-<!ENTITY opcodesATSaddnz SYSTEM "opcodes/ATSaddnz.xml">
-<!ENTITY opcodesATSbufread SYSTEM "opcodes/ATSbufread.xml">
-<!ENTITY opcodesATScross SYSTEM "opcodes/ATScross.xml">
-<!ENTITY opcodesATSinfo SYSTEM "opcodes/ATSinfo.xml">
-<!ENTITY opcodesATSinterpread SYSTEM "opcodes/ATSinterpread.xml">
-<!ENTITY opcodesATSread SYSTEM "opcodes/ATSread.xml">
-<!ENTITY opcodesATSreadnz SYSTEM "opcodes/ATSreadnz.xml">
-<!ENTITY opcodesATSpartialtap SYSTEM "opcodes/ATSpartialtap.xml">
-<!ENTITY opcodesATSsinnoi SYSTEM "opcodes/ATSsinnoi.xml">
-
-<!ENTITY opcodesdenorm SYSTEM "opcodes/denorm.xml">
-<!ENTITY opcodesflooper SYSTEM "opcodes/flooper.xml">
-<!ENTITY opcodesflooper2 SYSTEM "opcodes/flooper2.xml">
-<!ENTITY opcodespvsarp SYSTEM "opcodes/pvsarp.xml">
-<!ENTITY opcodespvsvoc SYSTEM "opcodes/pvsvoc.xml">
-<!ENTITY opcodesrbjeq SYSTEM "opcodes/rbjeq.xml">
-<!ENTITY opcodessndloop SYSTEM "opcodes/sndloop.xml">
-<!ENTITY opcodesturnoff2 SYSTEM "opcodes/turnoff2.xml">
-<!ENTITY opcodeschani SYSTEM "opcodes/chani.xml">
-<!ENTITY opcodeschano SYSTEM "opcodes/chano.xml">
-<!ENTITY opcodeschn SYSTEM "opcodes/chn.xml">
-<!ENTITY opcodeschnexport SYSTEM "opcodes/chnexport.xml">
-<!ENTITY opcodeschnget SYSTEM "opcodes/chnget.xml">
-<!ENTITY opcodeschnparams SYSTEM "opcodes/chnparams.xml">
-<!ENTITY opcodeschnset SYSTEM "opcodes/chnset.xml">
-<!ENTITY opcodeschnmix SYSTEM "opcodes/chnmix.xml">
-<!ENTITY opcodeschnclear SYSTEM "opcodes/chnclear.xml">
-<!ENTITY opcodesdelayk SYSTEM "opcodes/delayk.xml">
-<!ENTITY opcodesevent_i SYSTEM "opcodes/event_i.xml">
-
-<!ENTITY opcodesdssilist SYSTEM "opcodes/dssilist.xml">
-<!ENTITY opcodesdssiinit SYSTEM "opcodes/dssiinit.xml">
-<!ENTITY opcodesdssiactivate SYSTEM "opcodes/dssiactivate.xml">
-<!ENTITY opcodesdssiaudio SYSTEM "opcodes/dssiaudio.xml">
-<!ENTITY opcodesdssictls SYSTEM "opcodes/dssictls.xml">
-
-<!ENTITY opcodesbformenc SYSTEM "opcodes/bformenc.xml">
-<!ENTITY opcodesbformdec SYSTEM "opcodes/bformdec.xml">
-<!ENTITY opcodesptrack SYSTEM "opcodes/ptrack.xml">
-
-<!ENTITY opcodesvstinit SYSTEM "opcodes/vstinit.xml">
-<!ENTITY opcodesvstinfo SYSTEM "opcodes/vstinfo.xml">
-<!ENTITY opcodesvstaudio SYSTEM "opcodes/vstaudio.xml">
-<!ENTITY opcodesvstbankload SYSTEM "opcodes/vstbankload.xml">
-<!ENTITY opcodesvstedit SYSTEM "opcodes/vstedit.xml">
-<!ENTITY opcodesvstmidiout SYSTEM "opcodes/vstmidiout.xml">
-<!ENTITY opcodesvstnote SYSTEM "opcodes/vstnote.xml">
-<!ENTITY opcodesvstparamset SYSTEM "opcodes/vstparamset.xml">
-<!ENTITY opcodesvstprogset SYSTEM "opcodes/vstprogset.xml">
-
-<!ENTITY opcodesdiskin2 SYSTEM "opcodes/diskin2.xml">
-<!ENTITY opcodesfreeverb SYSTEM "opcodes/freeverb.xml">
-<!ENTITY opcodesftconv SYSTEM "opcodes/ftconv.xml">
-<!ENTITY opcodesftfree SYSTEM "opcodes/ftfree.xml">
-<!ENTITY opcodespconvolve SYSTEM "opcodes/pconvolve.xml">
-<!ENTITY opcodesreverbsc SYSTEM "opcodes/reverbsc.xml">
-
-<!ENTITY plugin SYSTEM "plugin/top.xml">
-<!ENTITY plugindssi4cs SYSTEM "plugin/dssi4cs.xml">
-<!ENTITY pluginvst4cs SYSTEM "plugin/vst4cs.xml">
-
-<!ENTITY oscnetwork SYSTEM "oscnetwork/top.xml">
-<!ENTITY OSC SYSTEM "oscnetwork/OSC.xml">
-<!ENTITY Network SYSTEM "oscnetwork/Network.xml">
-<!ENTITY Remote SYSTEM "oscnetwork/Remote.xml">
-<!ENTITY opcodesOSCsend SYSTEM "opcodes/OSCsend.xml">
-<!ENTITY opcodesOSCinit SYSTEM "opcodes/OSCinit.xml">
-<!ENTITY opcodesOSClisten SYSTEM "opcodes/OSClisten.xml">
-
-<!ENTITY opcodessocksend SYSTEM "opcodes/socksend.xml">
-<!ENTITY opcodessockrecv SYSTEM "opcodes/sockrecv.xml">
-
-<!ENTITY py SYSTEM "csound5/opcodes/py.xml">
-<!ENTITY opcodespyassign SYSTEM "opcodes/pyassign.xml">
-<!ENTITY opcodespycall SYSTEM "opcodes/pycall.xml">
-<!ENTITY opcodespyeval SYSTEM "opcodes/pyeval.xml">
-<!ENTITY opcodespyexec SYSTEM "opcodes/pyexec.xml">
-<!ENTITY opcodespyinit SYSTEM "opcodes/pyinit.xml">
-<!ENTITY opcodespyrun SYSTEM "opcodes/pyrun.xml">
-
-<!ENTITY mixer SYSTEM "csound5/opcodes/mixer.xml">
-<!ENTITY opcodesmixersetlevel SYSTEM "opcodes/mixersetlevel.xml">
-<!ENTITY opcodesmixergetlevel SYSTEM "opcodes/mixergetlevel.xml">
-<!ENTITY opcodesmixersend SYSTEM "opcodes/mixersend.xml">
-<!ENTITY opcodesmixerreceive SYSTEM "opcodes/mixerreceive.xml">
-<!ENTITY opcodesmixerclear SYSTEM "opcodes/mixerclear.xml">
-
-<!ENTITY opcodespvsifd SYSTEM "opcodes/pvsifd.xml">
-<!ENTITY opcodestradsyn SYSTEM "opcodes/tradsyn.xml">
-<!ENTITY opcodesresyn SYSTEM "opcodes/resyn.xml">
-<!ENTITY opcodessinsyn SYSTEM "opcodes/sinsyn.xml">
-<!ENTITY opcodespartials SYSTEM "opcodes/partials.xml">
-<!ENTITY opcodestrcross SYSTEM "opcodes/trcross.xml">
-<!ENTITY opcodestrfilter SYSTEM "opcodes/trfilter.xml">
-<!ENTITY opcodestrhighest SYSTEM "opcodes/trhighest.xml">
-<!ENTITY opcodestrlowest SYSTEM "opcodes/trlowest.xml">
-<!ENTITY opcodestrmix SYSTEM "opcodes/trmix.xml">
-<!ENTITY opcodestrsplit SYSTEM "opcodes/trsplit.xml">
-<!ENTITY opcodestrshift SYSTEM "opcodes/trshift.xml">
-<!ENTITY opcodestrscale SYSTEM "opcodes/trscale.xml">
-<!ENTITY opcodesbinit SYSTEM "opcodes/binit.xml">
-
-<!ENTITY opcodesmax SYSTEM "opcodes/max.xml">
-<!ENTITY opcodesmaxabs SYSTEM "opcodes/maxabs.xml">
-<!ENTITY opcodesmaxabsaccum SYSTEM "opcodes/maxabsaccum.xml">
-<!ENTITY opcodesmaxaccum SYSTEM "opcodes/maxaccum.xml">
-<!ENTITY opcodesmin SYSTEM "opcodes/min.xml">
-<!ENTITY opcodesminabs SYSTEM "opcodes/minabs.xml">
-<!ENTITY opcodesminabsaccum SYSTEM "opcodes/minabsaccum.xml">
-<!ENTITY opcodesminaccum SYSTEM "opcodes/minaccum.xml">
-<!ENTITY opcodesexpcurve SYSTEM "opcodes/expcurve.xml">
-<!ENTITY opcodesgainslider SYSTEM "opcodes/gainslider.xml">
-<!ENTITY opcodeslogcurve SYSTEM "opcodes/logcurve.xml">
-<!ENTITY opcodesscale SYSTEM "opcodes/scale.xml">
-<!ENTITY opcodescpsmidinn SYSTEM "opcodes/cpsmidinn.xml">
-<!ENTITY opcodesoctmidinn SYSTEM "opcodes/octmidinn.xml">
-<!ENTITY opcodespchmidinn SYSTEM "opcodes/pchmidinn.xml">
-
-<!ENTITY tclcsound SYSTEM "csound5/tclcsound.xml">
- CSOUND 5 OPCODES -->
-<!ENTITY command SYSTEM "command/top.xml">
-<!ENTITY commanddesc SYSTEM "command/desc.xml">
-<!ENTITY commandflags SYSTEM "command/flags.xml">
-<!ENTITY commandflagscategory SYSTEM "command/flagscategory.xml">
-<!ENTITY commandenvironment SYSTEM "command/environment.xml">
-<!ENTITY commandpreproc SYSTEM "command/preproc.xml">
-<!ENTITY commandunifile SYSTEM "command/unifile.xml">
-<!--
-<!ENTITY control SYSTEM "control/top.xml">
-<!ENTITY controlclockctl SYSTEM "control/clockctl.xml">
-<!ENTITY controlconditional SYSTEM "control/conditional.xml">
-<!ENTITY controldurctl SYSTEM "control/durctl.xml">
-<!ENTITY controlfltkappearance SYSTEM "control/fltkappearance.xml">
-<!ENTITY controlfltkcontainers SYSTEM "control/fltkcontainers.xml">
-<!ENTITY controlfltkgeneral SYSTEM "control/fltkgeneral.xml">
-<!ENTITY controlfltkintro SYSTEM "control/fltkintro.xml">
-<!ENTITY controlfltkother SYSTEM "control/fltkother.xml">
-<!ENTITY controlfltkvaluators SYSTEM "control/fltkvaluators.xml">
-<!ENTITY controlinvocat SYSTEM "control/invocat.xml">
-<!ENTITY controlpgmctl SYSTEM "control/pgmctl.xml">
-<!ENTITY controlrealtime SYSTEM "control/realtime.xml">
-<!ENTITY controlreinitn SYSTEM "control/reinitn.xml">
-<!ENTITY controlsensing SYSTEM "control/sensing.xml">
-<!ENTITY controlstacks SYSTEM "control/stacks.xml">
-<!ENTITY controlsubinstr SYSTEM "control/subinstr.xml">
-<!ENTITY controltimeread SYSTEM "control/timeread.xml">
-
-<!ENTITY miscopcodes SYSTEM "miscopcodes/top.xml">
-
-<!ENTITY cscore SYSTEM "cscore/top.xml">
-<!ENTITY cscoreadvancd SYSTEM "cscore/advancd.xml">
-<!ENTITY cscorecompile SYSTEM "cscore/compile.xml">
-<!ENTITY cscoreevents SYSTEM "cscore/events.xml">
-<!ENTITY cscoremain SYSTEM "cscore/main.xml">
-
-<!ENTITY math SYSTEM "math/top.xml">
-<!ENTITY mathamp SYSTEM "math/amp.xml">
-<!ENTITY mathartlogic SYSTEM "math/artlogic.xml">
-<!ENTITY mathmathfunc SYSTEM "math/mathfunc.xml">
-<!ENTITY mathopeqfunc SYSTEM "math/opeqfunc.xml">
-<!ENTITY mathrndfunc SYSTEM "math/rndfunc.xml">
-<!ENTITY mathtrig SYSTEM "math/trig.xml">
-
-<!ENTITY midi SYSTEM "midi/top.xml">
-<!ENTITY midivirtual SYSTEM "midi/virtual.xml">
-<!ENTITY midiinput SYSTEM "midi/input.xml">
-<!ENTITY midioutput SYSTEM "midi/output.xml">
-<!ENTITY midigeneric SYSTEM "midi/generic.xml">
-<!ENTITY midiconvert SYSTEM "midi/convert.xml">
-<!ENTITY midiextender SYSTEM "midi/extender.xml">
-<!ENTITY midionoff SYSTEM "midi/onoff.xml">
-<!ENTITY midiinterop SYSTEM "midi/interop.xml">
-<!ENTITY midirealtime SYSTEM "midi/realtime.xml">
-<!ENTITY midisliderbk SYSTEM "midi/sliderbk.xml">
-
-<!ENTITY misc SYSTEM "misc/top.xml">
-<!ENTITY miscamp SYSTEM "misc/amp.xml">
-<!ENTITY misccsound64 SYSTEM "misc/csound64.xml">
-<!ENTITY miscglossary SYSTEM "misc/glossary.xml">
-<!ENTITY miscformants SYSTEM "misc/formants.xml">
-<!ENTITY miscpitch SYSTEM "misc/pitch.xml">
-<!ENTITY miscquickref SYSTEM "misc/quickref.xml">
-<!ENTITY miscsf2 SYSTEM "misc/sf2.xml">
-<!ENTITY miscwindows SYSTEM "misc/windows.xml">
-<!ENTITY miscmodalfreq SYSTEM "misc/modalfreq.xml">
- &opcodes; -->
-<!ENTITY namebarry "Barry L. Vercoe">
-<!ENTITY namedavid "David M. Boothe">
-<!ENTITY namegabriel "Gabriel Maldonado">
-<!ENTITY namehans "Hans Mikelson">
-<!ENTITY nameistvan "Istvan Varga">
-<!ENTITY namejohn "John ffitch">
-<!ENTITY namekanata "Kanata Motohashi">
-<!ENTITY namekevin "Kevin Conder">
-<!ENTITY nameluis "Luis Jure">
-<!ENTITY namematt "Matt Ingalls">
-<!ENTITY nameoeyvind "&Oslash;yvind Brandtsegg">
-<!ENTITY namemichael "Michael Gogins">
-<!ENTITY namemike "Mike Berry">
-<!ENTITY nameparis "Paris Smaragdis">
-<!ENTITY nameperry "Perry Cook">
-<!ENTITY namerasmus "Rasmus Ekman">
-<!ENTITY namerichard "Richard Dobson">
-<!ENTITY namesean "Sean Costello">
-<!ENTITY namesteven "Steven Yi">
-<!ENTITY nameandres "Andres Cabrera">
-<!ENTITY nameanthony "Anthony Kozar">
-<!--
-<!ENTITY opcodes SYSTEM "opcodes/top.xml">
-<!ENTITY opcodes0dbfs SYSTEM "opcodes/0dbfs.xml">
-<!ENTITY opcodesabetarand SYSTEM "opcodes/abetarand.xml">
-<!ENTITY opcodesabexprnd SYSTEM "opcodes/abexprnd.xml">
-<!ENTITY opcodesabs SYSTEM "opcodes/abs.xml">
-<!ENTITY opcodesacauchy SYSTEM "opcodes/acauchy.xml">
-<!ENTITY opcodesactive SYSTEM "opcodes/active.xml">
-<!ENTITY opcodesadds SYSTEM "opcodes/adds.xml">
-<!ENTITY opcodesadsr SYSTEM "opcodes/adsr.xml">
-<!ENTITY opcodesadsyn SYSTEM "opcodes/adsyn.xml">
-<!ENTITY opcodesadsynt SYSTEM "opcodes/adsynt.xml">
-<!ENTITY opcodesadsynt2 SYSTEM "opcodes/adsynt2.xml">
-<!ENTITY opcodesaexprand SYSTEM "opcodes/aexprand.xml">
-<!ENTITY opcodesaftouch SYSTEM "opcodes/aftouch.xml">
-<!ENTITY opcodesagauss SYSTEM "opcodes/agauss.xml">
-<!ENTITY opcodesagogobel SYSTEM "opcodes/agogobel.xml">
-<!ENTITY opcodesalinrand SYSTEM "opcodes/alinrand.xml">
-<!ENTITY opcodesalpass SYSTEM "opcodes/alpass.xml">
-<!ENTITY opcodesampdbfs SYSTEM "opcodes/ampdbfs.xml">
-<!ENTITY opcodesampdb SYSTEM "opcodes/ampdb.xml">
-<!ENTITY opcodesampmidi SYSTEM "opcodes/ampmidi.xml">
-<!ENTITY opcodesapcauchy SYSTEM "opcodes/apcauchy.xml">
-<!ENTITY opcodesapoisson SYSTEM "opcodes/apoisson.xml">
-<!ENTITY opcodesapow SYSTEM "opcodes/apow.xml">
-<!ENTITY opcodesaresonk SYSTEM "opcodes/aresonk.xml">
-<!ENTITY opcodesareson SYSTEM "opcodes/areson.xml">
-<!ENTITY opcodesassign SYSTEM "opcodes/assign.xml">
-<!ENTITY opcodesatonek SYSTEM "opcodes/atonek.xml">
-<!ENTITY opcodesatone SYSTEM "opcodes/atone.xml">
-<!ENTITY opcodesatonex SYSTEM "opcodes/atonex.xml">
-<!ENTITY opcodesatrirand SYSTEM "opcodes/atrirand.xml">
-<!ENTITY opcodesaunirand SYSTEM "opcodes/aunirand.xml">
-<!ENTITY opcodesaunirand SYSTEM "opcodes/aunirand.xml">
-<!ENTITY opcodesaweibull SYSTEM "opcodes/aweibull.xml">
-<!ENTITY opcodesbabo SYSTEM "opcodes/babo.xml">
-<!ENTITY opcodesbalance SYSTEM "opcodes/balance.xml">
-<!ENTITY opcodesbamboo SYSTEM "opcodes/bamboo.xml">
-<!ENTITY opcodesbbcutm SYSTEM "opcodes/bbcutm.xml">
-<!ENTITY opcodesbbcuts SYSTEM "opcodes/bbcuts.xml">
-<!ENTITY opcodesbetarand SYSTEM "opcodes/betarand.xml">
-<!ENTITY opcodesbexprnd SYSTEM "opcodes/bexprnd.xml">
-<!ENTITY opcodesbiquada SYSTEM "opcodes/biquada.xml">
-<!ENTITY opcodesbiquad SYSTEM "opcodes/biquad.xml">
-<!ENTITY opcodesbirnd SYSTEM "opcodes/birnd.xml">
-<!ENTITY opcodesbqrez SYSTEM "opcodes/bqrez.xml">
-<!ENTITY opcodesbutbp SYSTEM "opcodes/butbp.xml">
-<!ENTITY opcodesbutbr SYSTEM "opcodes/butbr.xml">
-<!ENTITY opcodesbuthp SYSTEM "opcodes/buthp.xml">
-<!ENTITY opcodesbutlp SYSTEM "opcodes/butlp.xml">
-<!ENTITY opcodesbutterbp SYSTEM "opcodes/butterbp.xml">
-<!ENTITY opcodesbutterbr SYSTEM "opcodes/butterbr.xml">
-<!ENTITY opcodesbutterhp SYSTEM "opcodes/butterhp.xml">
-<!ENTITY opcodesbutterlp SYSTEM "opcodes/butterlp.xml">
-<!ENTITY opcodesbutton SYSTEM "opcodes/button.xml">
-<!ENTITY opcodesbuzz SYSTEM "opcodes/buzz.xml">
-<!ENTITY opcodescabasa SYSTEM "opcodes/cabasa.xml">
-<!ENTITY opcodescauchy SYSTEM "opcodes/cauchy.xml">
-<!ENTITY opcodescent SYSTEM "opcodes/cent.xml">
-<!ENTITY opcodesceil SYSTEM "opcodes/ceil.xml">
-<!ENTITY opcodescggoto SYSTEM "opcodes/cggoto.xml">
-<!ENTITY opcodeschanctrl SYSTEM "opcodes/chanctrl.xml">
-<!ENTITY opcodeschanged SYSTEM "opcodes/changed.xml">
-<!ENTITY opcodescheckbox SYSTEM "opcodes/checkbox.xml">
-<!ENTITY opcodescigoto SYSTEM "opcodes/cigoto.xml">
-<!ENTITY opcodesckgoto SYSTEM "opcodes/ckgoto.xml">
-<!ENTITY opcodesclear SYSTEM "opcodes/clear.xml">
-<!ENTITY opcodesclfilt SYSTEM "opcodes/clfilt.xml">
-<!ENTITY opcodesclip SYSTEM "opcodes/clip.xml">
-<!ENTITY opcodesclockoff SYSTEM "opcodes/clockoff.xml">
-<!ENTITY opcodesclockon SYSTEM "opcodes/clockon.xml">
-<!ENTITY opcodesclock SYSTEM "opcodes/clock.xml">
-<!ENTITY opcodescngoto SYSTEM "opcodes/cngoto.xml">
-<!ENTITY opcodescomb SYSTEM "opcodes/comb.xml">
-<!ENTITY opcodescontrol SYSTEM "opcodes/control.xml">
-<!ENTITY opcodesconvle SYSTEM "opcodes/convle.xml">
-<!ENTITY opcodesconvolve SYSTEM "opcodes/convolve.xml">
-<!ENTITY opcodescosh SYSTEM "opcodes/cosh.xml">
-<!ENTITY opcodescosinv SYSTEM "opcodes/cosinv.xml">
-<!ENTITY opcodescos SYSTEM "opcodes/cos.xml">
-<!ENTITY opcodescps2pch SYSTEM "opcodes/cps2pch.xml">
-<!ENTITY opcodescpsmidib SYSTEM "opcodes/cpsmidib.xml">
-<!ENTITY opcodescpsmidi SYSTEM "opcodes/cpsmidi.xml">
-<!ENTITY opcodescpsoct SYSTEM "opcodes/cpsoct.xml">
-<!ENTITY opcodescpspch SYSTEM "opcodes/cpspch.xml">
-<!ENTITY opcodescpstmid SYSTEM "opcodes/cpstmid.xml">
-<!ENTITY opcodescpstuni SYSTEM "opcodes/cpstuni.xml">
-<!ENTITY opcodescpstun SYSTEM "opcodes/cpstun.xml">
-<!ENTITY opcodescpsxpch SYSTEM "opcodes/cpsxpch.xml">
-<!ENTITY opcodescpuprc SYSTEM "opcodes/cpuprc.xml">
-<!ENTITY opcodescross2 SYSTEM "opcodes/cross2.xml">
-<!ENTITY opcodescrunch SYSTEM "opcodes/crunch.xml">
-<!ENTITY opcodesctrl14 SYSTEM "opcodes/ctrl14.xml">
-<!ENTITY opcodesctrl21 SYSTEM "opcodes/ctrl21.xml">
-<!ENTITY opcodesctrl7 SYSTEM "opcodes/ctrl7.xml">
-<!ENTITY opcodesctrlinit SYSTEM "opcodes/ctrlinit.xml">
-<!ENTITY opcodescuserrnd SYSTEM "opcodes/cuserrnd.xml">
-<!ENTITY opcodesdam SYSTEM "opcodes/dam.xml">
-<!ENTITY opcodesdate SYSTEM "opcodes/date.xml">
-<!ENTITY opcodesdates SYSTEM "opcodes/dates.xml">
-<!ENTITY opcodesdbamp SYSTEM "opcodes/dbamp.xml">
-<!ENTITY opcodesdbfsamp SYSTEM "opcodes/dbfsamp.xml">
-<!ENTITY opcodesdb SYSTEM "opcodes/db.xml">
-<!ENTITY opcodesdcblock SYSTEM "opcodes/dcblock.xml">
-<!ENTITY opcodesdconv SYSTEM "opcodes/dconv.xml">
-<!ENTITY opcodesdefine SYSTEM "opcodes/define.xml">
-<!ENTITY opcodesdelay1 SYSTEM "opcodes/delay1.xml">
-<!ENTITY opcodesdelayr SYSTEM "opcodes/delayr.xml">
-<!ENTITY opcodesdelay SYSTEM "opcodes/delay.xml">
-<!ENTITY opcodesdelayw SYSTEM "opcodes/delayw.xml">
-<!ENTITY opcodesdeltap3 SYSTEM "opcodes/deltap3.xml">
-<!ENTITY opcodesdeltapi SYSTEM "opcodes/deltapi.xml">
-<!ENTITY opcodesdeltapn SYSTEM "opcodes/deltapn.xml">
-<!ENTITY opcodesdeltap SYSTEM "opcodes/deltap.xml">
-<!ENTITY opcodesdeltapx SYSTEM "opcodes/deltapx.xml">
-<!ENTITY opcodesdeltapxw SYSTEM "opcodes/deltapxw.xml">
-<!ENTITY opcodesdiff SYSTEM "opcodes/diff.xml">
-<!ENTITY opcodesdiskin SYSTEM "opcodes/diskin.xml">
-<!ENTITY opcodesdispfft SYSTEM "opcodes/dispfft.xml">
-<!ENTITY opcodesdisplay SYSTEM "opcodes/display.xml">
-<!ENTITY opcodesdistort1 SYSTEM "opcodes/distort1.xml">
-<!ENTITY opcodesdivides SYSTEM "opcodes/divides.xml">
-<!ENTITY opcodesdivz SYSTEM "opcodes/divz.xml">
-<!ENTITY opcodesdollar SYSTEM "opcodes/dollar.xml">
-<!ENTITY opcodesdownsamp SYSTEM "opcodes/downsamp.xml">
-<!ENTITY opcodesdripwater SYSTEM "opcodes/dripwater.xml">
-<!ENTITY opcodesdumpk2 SYSTEM "opcodes/dumpk2.xml">
-<!ENTITY opcodesdumpk3 SYSTEM "opcodes/dumpk3.xml">
-<!ENTITY opcodesdumpk4 SYSTEM "opcodes/dumpk4.xml">
-<!ENTITY opcodesdumpk SYSTEM "opcodes/dumpk.xml">
-<!ENTITY opcodesduserrnd SYSTEM "opcodes/duserrnd.xml">
-<!ENTITY opcodeselseif SYSTEM "opcodes/elseif.xml">
-<!ENTITY opcodeselse SYSTEM "opcodes/else.xml">
-<!ENTITY opcodesendif SYSTEM "opcodes/endif.xml">
-<!ENTITY opcodesendin SYSTEM "opcodes/endin.xml">
-<!ENTITY opcodesendop SYSTEM "opcodes/endop.xml">
-<!ENTITY opcodesenvlpxr SYSTEM "opcodes/envlpxr.xml">
-<!ENTITY opcodesenvlpx SYSTEM "opcodes/envlpx.xml">
-<!ENTITY opcodesequals SYSTEM "opcodes/equals.xml">
-<!ENTITY opcodeseqfil SYSTEM "opcodes/eqfil.xml">
-<!ENTITY opcodesevent SYSTEM "opcodes/event.xml">
-<!ENTITY opcodesexitnow SYSTEM "opcodes/exitnow.xml">
-<!ENTITY opcodesexpon SYSTEM "opcodes/expon.xml">
-<!ENTITY opcodesexprand SYSTEM "opcodes/exprand.xml">
-<!ENTITY opcodesexpsega SYSTEM "opcodes/expsega.xml">
-<!ENTITY opcodesexpsegr SYSTEM "opcodes/expsegr.xml">
-<!ENTITY opcodesexpseg SYSTEM "opcodes/expseg.xml">
-<!ENTITY opcodesexp SYSTEM "opcodes/exp.xml">
-<!ENTITY opcodesficlose SYSTEM "opcodes/ficlose.xml">
-<!ENTITY opcodesfilelen SYSTEM "opcodes/filelen.xml">
-<!ENTITY opcodesfilenchnls SYSTEM "opcodes/filenchnls.xml">
-<!ENTITY opcodesfilepeak SYSTEM "opcodes/filepeak.xml">
-<!ENTITY opcodesfilesr SYSTEM "opcodes/filesr.xml">
-<!ENTITY opcodesfilter2 SYSTEM "opcodes/filter2.xml">
-<!ENTITY opcodesfini SYSTEM "opcodes/fini.xml">
-<!ENTITY opcodesfink SYSTEM "opcodes/fink.xml">
-<!ENTITY opcodesfin SYSTEM "opcodes/fin.xml">
-<!ENTITY opcodesfiopen SYSTEM "opcodes/fiopen.xml">
-<!ENTITY opcodesflanger SYSTEM "opcodes/flanger.xml">
-<!ENTITY opcodesflashtxt SYSTEM "opcodes/flashtxt.xml">
-<!ENTITY opcodesflbox SYSTEM "opcodes/flbox.xml">
-<!ENTITY opcodesflbutbank SYSTEM "opcodes/flbutbank.xml">
-<!ENTITY opcodesflbutton SYSTEM "opcodes/flbutton.xml">
-<!ENTITY opcodesflclosebutton SYSTEM "opcodes/flclosebutton.xml">
-<!ENTITY opcodesflcolor2 SYSTEM "opcodes/flcolor2.xml">
-<!ENTITY opcodesflcolor SYSTEM "opcodes/flcolor.xml">
-<!ENTITY opcodesflcount SYSTEM "opcodes/flcount.xml">
-<!ENTITY opcodesflexecbutton SYSTEM "opcodes/flexecbutton.xml">
-<!ENTITY opcodesflgetsnap SYSTEM "opcodes/flgetsnap.xml">
-<!ENTITY opcodesflgroupend SYSTEM "opcodes/flgroupend.xml">
-<!ENTITY opcodesflgroup_end SYSTEM "opcodes/flgroup_end.xml">
-<!ENTITY opcodesflgroup SYSTEM "opcodes/flgroup.xml">
-<!ENTITY opcodesflhide SYSTEM "opcodes/flhide.xml">
-<!ENTITY opcodesflhvsbox SYSTEM "opcodes/flhvsbox.xml">
-<!ENTITY opcodesflhvsboxsetvalue SYSTEM "opcodes/flhvsboxsetvalue.xml">
-<!ENTITY opcodesfljoy SYSTEM "opcodes/fljoy.xml">
-<!ENTITY opcodesflkeyin SYSTEM "opcodes/flkeyin.xml">
-<!ENTITY opcodesflknob SYSTEM "opcodes/flknob.xml">
-<!ENTITY opcodesfllabel SYSTEM "opcodes/fllabel.xml">
-<!ENTITY opcodesflloadsnap SYSTEM "opcodes/flloadsnap.xml">
-<!ENTITY opcodesflmouse SYSTEM "opcodes/flmouse.xml">
-<!ENTITY opcodesfloor SYSTEM "opcodes/floor.xml">
-<!ENTITY opcodesflpackend SYSTEM "opcodes/flpackend.xml">
-<!ENTITY opcodesflpack_end SYSTEM "opcodes/flpack_end.xml">
-<!ENTITY opcodesflpack SYSTEM "opcodes/flpack.xml">
-<!ENTITY opcodesflpanelend SYSTEM "opcodes/flpanelend.xml">
-<!ENTITY opcodesflpanel_end SYSTEM "opcodes/flpanel_end.xml">
-<!ENTITY opcodesflpanel SYSTEM "opcodes/flpanel.xml">
-<!ENTITY opcodesflprintk2 SYSTEM "opcodes/flprintk2.xml">
-<!ENTITY opcodesflprintk SYSTEM "opcodes/flprintk.xml">
-<!ENTITY opcodesflroller SYSTEM "opcodes/flroller.xml">
-<!ENTITY opcodesflrun SYSTEM "opcodes/flrun.xml">
-<!ENTITY opcodesflsavesnap SYSTEM "opcodes/flsavesnap.xml">
-<!ENTITY opcodesflscrollend SYSTEM "opcodes/flscrollend.xml">
-<!ENTITY opcodesflscroll_end SYSTEM "opcodes/flscroll_end.xml">
-<!ENTITY opcodesflscroll SYSTEM "opcodes/flscroll.xml">
-<!ENTITY opcodesflsetalign SYSTEM "opcodes/flsetalign.xml">
-<!ENTITY opcodesflsetbox SYSTEM "opcodes/flsetbox.xml">
-<!ENTITY opcodesflsetcolor2 SYSTEM "opcodes/flsetcolor2.xml">
-<!ENTITY opcodesflsetcolor SYSTEM "opcodes/flsetcolor.xml">
-<!ENTITY opcodesflsetfont SYSTEM "opcodes/flsetfont.xml">
-<!ENTITY opcodesflsetposition SYSTEM "opcodes/flsetposition.xml">
-<!ENTITY opcodesflsetsize SYSTEM "opcodes/flsetsize.xml">
-<!ENTITY opcodesflsetsnap SYSTEM "opcodes/flsetsnap.xml">
-<!ENTITY opcodesflsetsnapgroup SYSTEM "opcodes/flsetsnapgroup.xml">
-<!ENTITY opcodesflsettextcolor SYSTEM "opcodes/flsettextcolor.xml">
-<!ENTITY opcodesflsettext SYSTEM "opcodes/flsettext.xml">
-<!ENTITY opcodesflsettextsize SYSTEM "opcodes/flsettextsize.xml">
-<!ENTITY opcodesflsettexttype SYSTEM "opcodes/flsettexttype.xml">
-<!ENTITY opcodesflsetvali SYSTEM "opcodes/flsetvali.xml">
-<!ENTITY opcodesflsetval SYSTEM "opcodes/flsetval.xml">
-<!ENTITY opcodesflshow SYSTEM "opcodes/flshow.xml">
-<!ENTITY opcodesflslidbnk SYSTEM "opcodes/flslidbnk.xml">
-<!ENTITY opcodesflslidbnk2 SYSTEM "opcodes/flslidbnk2.xml">
-<!ENTITY opcodesflslidbnkgethandle SYSTEM "opcodes/flslidbnkgethandle.xml">
-<!ENTITY opcodesflslidbnkset SYSTEM "opcodes/flslidbnkset.xml">
-<!ENTITY opcodesflslidbnksetk SYSTEM "opcodes/flslidbnksetk.xml">
-<!ENTITY opcodesflslidbnk2set SYSTEM "opcodes/flslidbnk2set.xml">
-<!ENTITY opcodesflslidbnk2setk SYSTEM "opcodes/flslidbnk2setk.xml">
-<!ENTITY opcodesflslider SYSTEM "opcodes/flslider.xml">
-<!ENTITY opcodesfltabsend SYSTEM "opcodes/fltabsend.xml">
-<!ENTITY opcodesfltabs_end SYSTEM "opcodes/fltabs_end.xml">
-<!ENTITY opcodesfltabs SYSTEM "opcodes/fltabs.xml">
-<!ENTITY opcodesfltext SYSTEM "opcodes/fltext.xml">
-<!ENTITY opcodesflupdate SYSTEM "opcodes/flupdate.xml">
-<!ENTITY opcodesflvalue SYSTEM "opcodes/flvalue.xml">
-<!ENTITY opcodesflvkeybd SYSTEM "opcodes/flvkeybd.xml">
-<!ENTITY opcodesflvslidbnk SYSTEM "opcodes/flvslidbnk.xml">
-<!ENTITY opcodesflvslidbnk2 SYSTEM "opcodes/flvslidbnk2.xml">
-<!ENTITY opcodesflxyin SYSTEM "opcodes/flxyin.xml">
-<!ENTITY opcodesfmb3 SYSTEM "opcodes/fmb3.xml">
-<!ENTITY opcodesfmbell SYSTEM "opcodes/fmbell.xml">
-<!ENTITY opcodesfmmetal SYSTEM "opcodes/fmmetal.xml">
-<!ENTITY opcodesfmpercfl SYSTEM "opcodes/fmpercfl.xml">
-<!ENTITY opcodesfmrhode SYSTEM "opcodes/fmrhode.xml">
-<!ENTITY opcodesfmvoice SYSTEM "opcodes/fmvoice.xml">
-<!ENTITY opcodesfmwurlie SYSTEM "opcodes/fmwurlie.xml">
-<!ENTITY opcodesfof2 SYSTEM "opcodes/fof2.xml">
-<!ENTITY opcodesfof SYSTEM "opcodes/fof.xml">
-<!ENTITY opcodesfofilter SYSTEM "opcodes/fofilter.xml">
-<!ENTITY opcodesfog SYSTEM "opcodes/fog.xml">
-<!ENTITY opcodesfold SYSTEM "opcodes/fold.xml">
-<!ENTITY opcodesfollow2 SYSTEM "opcodes/follow2.xml">
-<!ENTITY opcodesfollow SYSTEM "opcodes/follow.xml">
-<!ENTITY opcodesfoscili SYSTEM "opcodes/foscili.xml">
-<!ENTITY opcodesfoscil SYSTEM "opcodes/foscil.xml">
-<!ENTITY opcodesfoutir SYSTEM "opcodes/foutir.xml">
-<!ENTITY opcodesfouti SYSTEM "opcodes/fouti.xml">
-<!ENTITY opcodesfoutk SYSTEM "opcodes/foutk.xml">
-<!ENTITY opcodesfout SYSTEM "opcodes/fout.xml">
-<!ENTITY opcodesfluidAllOut SYSTEM "opcodes/fluidAllOut.xml">
-<!ENTITY opcodesfluidCCi SYSTEM "opcodes/fluidCCi.xml">
-<!ENTITY opcodesfluidCCk SYSTEM "opcodes/fluidCCk.xml">
-<!ENTITY opcodesfluidControl SYSTEM "opcodes/fluidControl.xml">
-<!ENTITY opcodesfluidEngine SYSTEM "opcodes/fluidEngine.xml">
-<!ENTITY opcodesfluidLoad SYSTEM "opcodes/fluidLoad.xml">
-<!ENTITY opcodesfluidNote SYSTEM "opcodes/fluidNote.xml">
-<!ENTITY opcodesfluidOut SYSTEM "opcodes/fluidOut.xml">
-<!ENTITY opcodesfluidProgramSelect SYSTEM "opcodes/fluidProgramSelect.xml">
-<!ENTITY opcodesfluidSetInterpMethod SYSTEM "opcodes/fluidSetInterpMethod.xml">
-<!ENTITY opcodesfprintks SYSTEM "opcodes/fprintks.xml">
-<!ENTITY opcodesfprints SYSTEM "opcodes/fprints.xml">
-<!ENTITY opcodesfrac SYSTEM "opcodes/frac.xml">
-<!ENTITY opcodesftchnls SYSTEM "opcodes/ftchnls.xml">
-<!ENTITY opcodesftgen SYSTEM "opcodes/ftgen.xml">
-<!ENTITY opcodesftgentmp SYSTEM "opcodes/ftgentmp.xml">
-<!ENTITY opcodesftlen SYSTEM "opcodes/ftlen.xml">
-<!ENTITY opcodesftloadk SYSTEM "opcodes/ftloadk.xml">
-<!ENTITY opcodesftload SYSTEM "opcodes/ftload.xml">
-<!ENTITY opcodesftlptim SYSTEM "opcodes/ftlptim.xml">
-<!ENTITY opcodesftmorf SYSTEM "opcodes/ftmorf.xml">
-<!ENTITY opcodesftsavek SYSTEM "opcodes/ftsavek.xml">
-<!ENTITY opcodesftsave SYSTEM "opcodes/ftsave.xml">
-<!ENTITY opcodesftsr SYSTEM "opcodes/ftsr.xml">
-<!ENTITY opcodesgain SYSTEM "opcodes/gain.xml">
-<!ENTITY opcodesgauss SYSTEM "opcodes/gauss.xml">
-<!ENTITY opcodesgbuzz SYSTEM "opcodes/gbuzz.xml">
-<!ENTITY opcodesgogobel SYSTEM "opcodes/gogobel.xml">
-<!ENTITY opcodesgoto SYSTEM "opcodes/goto.xml">
-<!ENTITY opcodesgrain2 SYSTEM "opcodes/grain2.xml">
-<!ENTITY opcodesgrain3 SYSTEM "opcodes/grain3.xml">
-<!ENTITY opcodesgrain SYSTEM "opcodes/grain.xml">
-<!ENTITY opcodesgranule SYSTEM "opcodes/granule.xml">
-<!ENTITY opcodesgreaterequal SYSTEM "opcodes/greaterequal.xml">
-<!ENTITY opcodesgreaterthan SYSTEM "opcodes/greaterthan.xml">
-<!ENTITY opcodesguiro SYSTEM "opcodes/guiro.xml">
-<!ENTITY opcodesharmon SYSTEM "opcodes/harmon.xml">
-<!ENTITY opcodesharmon2 SYSTEM "opcodes/harmon234.xml">
-<!ENTITY opcodeshilbert SYSTEM "opcodes/hilbert.xml">
-<!ENTITY opcodeshrtfer SYSTEM "opcodes/hrtfer.xml">
-<!ENTITY opcodeshsboscil SYSTEM "opcodes/hsboscil.xml">
-<!ENTITY opcodeshvs1 SYSTEM "opcodes/hvs1.xml">
-<!ENTITY opcodeshvs2 SYSTEM "opcodes/hvs2.xml">
-<!ENTITY opcodeshvs3 SYSTEM "opcodes/hvs3.xml">
-<!ENTITY opcodesibetarand SYSTEM "opcodes/ibetarand.xml">
-<!ENTITY opcodesibexprnd SYSTEM "opcodes/ibexprnd.xml">
-<!ENTITY opcodesicauchy SYSTEM "opcodes/icauchy.xml">
-<!ENTITY opcodesictrl14 SYSTEM "opcodes/ictrl14.xml">
-<!ENTITY opcodesictrl21 SYSTEM "opcodes/ictrl21.xml">
-<!ENTITY opcodesictrl7 SYSTEM "opcodes/ictrl7.xml">
-<!ENTITY opcodesiexprand SYSTEM "opcodes/iexprand.xml">
-<!ENTITY opcodesif SYSTEM "opcodes/if.xml">
-<!ENTITY opcodesifdef SYSTEM "opcodes/ifdef.xml">
-<!ENTITY opcodesifndef SYSTEM "opcodes/ifndef.xml">
-<!ENTITY opcodesigauss SYSTEM "opcodes/igauss.xml">
-<!ENTITY opcodesigoto SYSTEM "opcodes/igoto.xml">
-<!ENTITY opcodesihold SYSTEM "opcodes/ihold.xml">
-<!ENTITY opcodesilinrand SYSTEM "opcodes/ilinrand.xml">
-<!ENTITY opcodesimidic14 SYSTEM "opcodes/imidic14.xml">
-<!ENTITY opcodesimidic21 SYSTEM "opcodes/imidic21.xml">
-<!ENTITY opcodesimidic7 SYSTEM "opcodes/imidic7.xml">
-<!ENTITY opcodesin32 SYSTEM "opcodes/in32.xml">
-<!ENTITY opcodesinch SYSTEM "opcodes/inch.xml">
-<!ENTITY opcodesinclude SYSTEM "opcodes/include.xml">
-<!ENTITY opcodesinh SYSTEM "opcodes/inh.xml">
-<!ENTITY opcodesinitc14 SYSTEM "opcodes/initc14.xml">
-<!ENTITY opcodesinitc21 SYSTEM "opcodes/initc21.xml">
-<!ENTITY opcodesinitc7 SYSTEM "opcodes/initc7.xml">
-<!ENTITY opcodesinit SYSTEM "opcodes/init.xml">
-<!ENTITY opcodesino SYSTEM "opcodes/ino.xml">
-<!ENTITY opcodesinq SYSTEM "opcodes/inq.xml">
-<!ENTITY opcodesinrg SYSTEM "opcodes/inrg.xml">
-<!ENTITY opcodesin SYSTEM "opcodes/in.xml">
-<!ENTITY opcodesins SYSTEM "opcodes/ins.xml">
-<!ENTITY opcodesinsremot SYSTEM "opcodes/insremot.xml">
-<!ENTITY opcodesinsglobal SYSTEM "opcodes/insglobal.xml">
-<!ENTITY opcodesinstimek SYSTEM "opcodes/instimek.xml">
-<!ENTITY opcodesinstimes SYSTEM "opcodes/instimes.xml">
-<!ENTITY opcodesinstr SYSTEM "opcodes/instr.xml">
-<!ENTITY opcodesinteg SYSTEM "opcodes/integ.xml">
-<!ENTITY opcodesinterp SYSTEM "opcodes/interp.xml">
-<!ENTITY opcodesint SYSTEM "opcodes/int.xml">
-<!ENTITY opcodesinvalue SYSTEM "opcodes/invalue.xml">
-<!ENTITY opcodesinx SYSTEM "opcodes/inx.xml">
-<!ENTITY opcodesinz SYSTEM "opcodes/inz.xml">
-<!ENTITY opcodesioff SYSTEM "opcodes/ioff.xml">
-<!ENTITY opcodesiondur2 SYSTEM "opcodes/iondur2.xml">
-<!ENTITY opcodesiondur SYSTEM "opcodes/iondur.xml">
-<!ENTITY opcodesion SYSTEM "opcodes/ion.xml">
-<!ENTITY opcodesioutat SYSTEM "opcodes/ioutat.xml">
-<!ENTITY opcodesioutc14 SYSTEM "opcodes/ioutc14.xml">
-<!ENTITY opcodesioutc SYSTEM "opcodes/ioutc.xml">
-<!ENTITY opcodesioutpat SYSTEM "opcodes/ioutpat.xml">
-<!ENTITY opcodesioutpb SYSTEM "opcodes/ioutpb.xml">
-<!ENTITY opcodesioutpc SYSTEM "opcodes/ioutpc.xml">
-<!ENTITY opcodesipcauchy SYSTEM "opcodes/ipcauchy.xml">
-<!ENTITY opcodesipoisson SYSTEM "opcodes/ipoisson.xml">
-<!ENTITY opcodesipow SYSTEM "opcodes/ipow.xml">
-<!ENTITY opcodesis16b14 SYSTEM "opcodes/is16b14.xml">
-<!ENTITY opcodesis32b14 SYSTEM "opcodes/is32b14.xml">
-<!ENTITY opcodesislider16 SYSTEM "opcodes/islider16.xml">
-<!ENTITY opcodesislider32 SYSTEM "opcodes/islider32.xml">
-<!ENTITY opcodesislider64 SYSTEM "opcodes/islider64.xml">
-<!ENTITY opcodesislider8 SYSTEM "opcodes/islider8.xml">
-<!ENTITY opcodesitablecopy SYSTEM "opcodes/itablecopy.xml">
-<!ENTITY opcodesitablegpw SYSTEM "opcodes/itablegpw.xml">
-<!ENTITY opcodesitablemix SYSTEM "opcodes/itablemix.xml">
-<!ENTITY opcodesitablew SYSTEM "opcodes/itablew.xml">
-<!ENTITY opcodesitrirand SYSTEM "opcodes/itrirand.xml">
-<!ENTITY opcodesiunirand SYSTEM "opcodes/iunirand.xml">
-<!ENTITY opcodesiweibull SYSTEM "opcodes/iweibull.xml">
-<!ENTITY opcodesjitter2 SYSTEM "opcodes/jitter2.xml">
-<!ENTITY opcodesjitter SYSTEM "opcodes/jitter.xml">
-<!ENTITY opcodesjspline SYSTEM "opcodes/jspline.xml">
-<!ENTITY opcodeskbetarand SYSTEM "opcodes/kbetarand.xml">
-<!ENTITY opcodeskbexprnd SYSTEM "opcodes/kbexprnd.xml">
-<!ENTITY opcodeskcauchy SYSTEM "opcodes/kcauchy.xml">
-<!ENTITY opcodeskdump2 SYSTEM "opcodes/kdump2.xml">
-<!ENTITY opcodeskdump3 SYSTEM "opcodes/kdump3.xml">
-<!ENTITY opcodeskdump4 SYSTEM "opcodes/kdump4.xml">
-<!ENTITY opcodeskdump SYSTEM "opcodes/kdump.xml">
-<!ENTITY opcodeskexprand SYSTEM "opcodes/kexprand.xml">
-<!ENTITY opcodeskfilter2 SYSTEM "opcodes/kfilter2.xml">
-<!ENTITY opcodeskgauss SYSTEM "opcodes/kgauss.xml">
-<!ENTITY opcodeskgoto SYSTEM "opcodes/kgoto.xml">
-<!ENTITY opcodesklinrand SYSTEM "opcodes/klinrand.xml">
-<!ENTITY opcodeskon SYSTEM "opcodes/kon.xml">
-<!ENTITY opcodeskoutat SYSTEM "opcodes/koutat.xml">
-<!ENTITY opcodeskoutc14 SYSTEM "opcodes/koutc14.xml">
-<!ENTITY opcodeskoutc SYSTEM "opcodes/koutc.xml">
-<!ENTITY opcodeskoutpat SYSTEM "opcodes/koutpat.xml">
-<!ENTITY opcodeskoutpb SYSTEM "opcodes/koutpb.xml">
-<!ENTITY opcodeskoutpc SYSTEM "opcodes/koutpc.xml">
-<!ENTITY opcodeskpcauchy SYSTEM "opcodes/kpcauchy.xml">
-<!ENTITY opcodeskpoisson SYSTEM "opcodes/kpoisson.xml">
-<!ENTITY opcodeskpow SYSTEM "opcodes/kpow.xml">
-<!ENTITY opcodeskread2 SYSTEM "opcodes/kread2.xml">
-<!ENTITY opcodeskread3 SYSTEM "opcodes/kread3.xml">
-<!ENTITY opcodeskread4 SYSTEM "opcodes/kread4.xml">
-<!ENTITY opcodeskread SYSTEM "opcodes/kread.xml">
-<!ENTITY opcodeskr SYSTEM "opcodes/kr.xml">
-<!ENTITY opcodesksmps SYSTEM "opcodes/ksmps.xml">
-<!ENTITY opcodesktableseg SYSTEM "opcodes/ktableseg.xml">
-<!ENTITY opcodesktrirand SYSTEM "opcodes/ktrirand.xml">
-<!ENTITY opcodeskunirand SYSTEM "opcodes/kunirand.xml">
-<!ENTITY opcodeskweibull SYSTEM "opcodes/kweibull.xml">
-<!ENTITY opcodeslessequal SYSTEM "opcodes/lessequal.xml">
-<!ENTITY opcodeslessthan SYSTEM "opcodes/lessthan.xml">
-<!ENTITY opcodeslfo SYSTEM "opcodes/lfo.xml">
-<!ENTITY opcodeslimit SYSTEM "opcodes/limit.xml">
-<!ENTITY opcodeslinenr SYSTEM "opcodes/linenr.xml">
-<!ENTITY opcodeslinen SYSTEM "opcodes/linen.xml">
-<!ENTITY opcodesline SYSTEM "opcodes/line.xml">
-<!ENTITY opcodeslineto SYSTEM "opcodes/lineto.xml">
-<!ENTITY opcodeslinrand SYSTEM "opcodes/linrand.xml">
-<!ENTITY opcodeslinsegr SYSTEM "opcodes/linsegr.xml">
-<!ENTITY opcodeslinseg SYSTEM "opcodes/linseg.xml">
-<!ENTITY opcodeslocsend SYSTEM "opcodes/locsend.xml">
-<!ENTITY opcodeslocsig SYSTEM "opcodes/locsig.xml">
-<!ENTITY opcodeslog10 SYSTEM "opcodes/log10.xml">
-<!ENTITY opcodeslogbtwo SYSTEM "opcodes/logbtwo.xml">
-<!ENTITY opcodeslog SYSTEM "opcodes/log.xml">
-<!ENTITY opcodesloop_ge SYSTEM "opcodes/loop_ge.xml">
-<!ENTITY opcodesloop_gt SYSTEM "opcodes/loop_gt.xml">
-<!ENTITY opcodesloop_le SYSTEM "opcodes/loop_le.xml">
-<!ENTITY opcodesloop_lt SYSTEM "opcodes/loop_lt.xml">
-<!ENTITY opcodesloopseg SYSTEM "opcodes/loopseg.xml">
-<!ENTITY opcodesloopsegp SYSTEM "opcodes/loopsegp.xml">
-<!ENTITY opcodeslorenz SYSTEM "opcodes/lorenz.xml">
-<!ENTITY opcodeslorisread SYSTEM "opcodes/lorisread.xml">
-<!ENTITY opcodeslorismorph SYSTEM "opcodes/lorismorph.xml">
-<!ENTITY opcodeslorisplay SYSTEM "opcodes/lorisplay.xml">
-<!ENTITY opcodesloscil3 SYSTEM "opcodes/loscil3.xml">
-<!ENTITY opcodesloscil SYSTEM "opcodes/loscil.xml">
-<!ENTITY opcodesloscilx SYSTEM "opcodes/loscilx.xml">
-<!ENTITY opcodeslowpass2 SYSTEM "opcodes/lowpass2.xml">
-<!ENTITY opcodeslowres SYSTEM "opcodes/lowres.xml">
-<!ENTITY opcodeslowresx SYSTEM "opcodes/lowresx.xml">
-<!ENTITY opcodeslpf18 SYSTEM "opcodes/lpf18.xml">
-<!ENTITY opcodeslpfreson SYSTEM "opcodes/lpfreson.xml">
-<!ENTITY opcodeslphasor SYSTEM "opcodes/lphasor.xml">
-<!ENTITY opcodeslpinterp SYSTEM "opcodes/lpinterp.xml">
-<!ENTITY opcodeslposcil3 SYSTEM "opcodes/lposcil3.xml">
-<!ENTITY opcodeslposcila SYSTEM "opcodes/lposcila.xml">
-<!ENTITY opcodeslposcil SYSTEM "opcodes/lposcil.xml">
-<!ENTITY opcodeslposcilsa SYSTEM "opcodes/lposcilsa.xml">
-<!ENTITY opcodeslposcilsa2 SYSTEM "opcodes/lposcilsa2.xml">
-<!ENTITY opcodeslpread SYSTEM "opcodes/lpread.xml">
-<!ENTITY opcodeslpreson SYSTEM "opcodes/lpreson.xml">
-<!ENTITY opcodeslpshold SYSTEM "opcodes/lpshold.xml">
-<!ENTITY opcodeslpsholdp SYSTEM "opcodes/lpsholdp.xml">
-<!ENTITY opcodeslpslot SYSTEM "opcodes/lpslot.xml">
-<!ENTITY opcodesmaca SYSTEM "opcodes/maca.xml">
-<!ENTITY opcodesmac SYSTEM "opcodes/mac.xml">
-<!ENTITY opcodesmadsr SYSTEM "opcodes/madsr.xml">
-<!ENTITY opcodesmandel SYSTEM "opcodes/mandel.xml">
-<!ENTITY opcodesmandol SYSTEM "opcodes/mandol.xml">
-<!ENTITY opcodesmarimba SYSTEM "opcodes/marimba.xml">
-<!ENTITY opcodesmassign SYSTEM "opcodes/massign.xml">
-<!ENTITY opcodesmaxalloc SYSTEM "opcodes/maxalloc.xml">
-<!ENTITY opcodesmax_k SYSTEM "opcodes/max_k.xml">
-<!ENTITY opcodesmclock SYSTEM "opcodes/mclock.xml">
-<!ENTITY opcodesmdelay SYSTEM "opcodes/mdelay.xml">
-<!ENTITY opcodesmetro SYSTEM "opcodes/metro.xml">
-<!ENTITY opcodesmidic14 SYSTEM "opcodes/midic14.xml">
-<!ENTITY opcodesmidic21 SYSTEM "opcodes/midic21.xml">
-<!ENTITY opcodesmidic7 SYSTEM "opcodes/midic7.xml">
-<!ENTITY opcodesmidichannelaftertouch SYSTEM "opcodes/midichannelaftertouch.xml">
-<!ENTITY opcodesmidichn SYSTEM "opcodes/midichn.xml">
-<!ENTITY opcodesmidicontrolchange SYSTEM "opcodes/midicontrolchange.xml">
-<!ENTITY opcodesmidictrl SYSTEM "opcodes/midictrl.xml">
-<!ENTITY opcodesmididefault SYSTEM "opcodes/mididefault.xml">
-<!ENTITY opcodesmidiin SYSTEM "opcodes/midiin.xml">
-<!ENTITY opcodesmidinoteoff SYSTEM "opcodes/midinoteoff.xml">
-<!ENTITY opcodesmidinoteoncps SYSTEM "opcodes/midinoteoncps.xml">
-<!ENTITY opcodesmidinoteonkey SYSTEM "opcodes/midinoteonkey.xml">
-<!ENTITY opcodesmidinoteonoct SYSTEM "opcodes/midinoteonoct.xml">
-<!ENTITY opcodesmidinoteonpch SYSTEM "opcodes/midinoteonpch.xml">
-<!ENTITY opcodesmidion2 SYSTEM "opcodes/midion2.xml">
-<!ENTITY opcodesmidion SYSTEM "opcodes/midion.xml">
-<!ENTITY opcodesmidiout SYSTEM "opcodes/midiout.xml">
-<!ENTITY opcodesmidipitchbend SYSTEM "opcodes/midipitchbend.xml">
-<!ENTITY opcodesmidipolyaftertouch SYSTEM "opcodes/midipolyaftertouch.xml">
-<!ENTITY opcodesmidiprogramchange SYSTEM "opcodes/midiprogramchange.xml">
-<!ENTITY opcodesmiditempo SYSTEM "opcodes/miditempo.xml">
-<!ENTITY opcodesmidremot SYSTEM "opcodes/midremot.xml">
-<!ENTITY opcodesmidglobal SYSTEM "opcodes/midglobal.xml">
-<!ENTITY opcodesmirror SYSTEM "opcodes/mirror.xml">
-<!ENTITY opcodesmode SYSTEM "opcodes/mode.xml">
-<!ENTITY opcodesmodulus SYSTEM "opcodes/modulus.xml">
-<!ENTITY opcodesmonitor SYSTEM "opcodes/monitor.xml">
-<!ENTITY opcodesmoog SYSTEM "opcodes/moog.xml">
-<!ENTITY opcodesmoogladder SYSTEM "opcodes/moogladder.xml">
-<!ENTITY opcodesmoogvcf SYSTEM "opcodes/moogvcf.xml">
-<!ENTITY opcodesmoogvcf2 SYSTEM "opcodes/moogvcf2.xml">
-<!ENTITY opcodesmoscil SYSTEM "opcodes/moscil.xml">
-<!ENTITY opcodesmpulse SYSTEM "opcodes/mpulse.xml">
-<!ENTITY opcodesmrtmsg SYSTEM "opcodes/mrtmsg.xml">
-<!ENTITY opcodesmultiplies SYSTEM "opcodes/multiplies.xml">
-<!ENTITY opcodesmultitap SYSTEM "opcodes/multitap.xml">
-<!ENTITY opcodesmute SYSTEM "opcodes/mute.xml">
-<!ENTITY opcodesmxadsr SYSTEM "opcodes/mxadsr.xml">
-<!ENTITY opcodesnchnls SYSTEM "opcodes/nchnls.xml">
-<!ENTITY opcodesnestedap SYSTEM "opcodes/nestedap.xml">
-<!ENTITY opcodesnlfilt SYSTEM "opcodes/nlfilt.xml">
-<!ENTITY opcodesnoise SYSTEM "opcodes/noise.xml">
-<!ENTITY opcodesnoteoff SYSTEM "opcodes/noteoff.xml">
-<!ENTITY opcodesnoteondur2 SYSTEM "opcodes/noteondur2.xml">
-<!ENTITY opcodesnoteondur SYSTEM "opcodes/noteondur.xml">
-<!ENTITY opcodesnoteon SYSTEM "opcodes/noteon.xml">
-<!ENTITY opcodesnotequal SYSTEM "opcodes/notequal.xml">
-<!ENTITY opcodesnotnum SYSTEM "opcodes/notnum.xml">
-<!ENTITY opcodesnreverb SYSTEM "opcodes/nreverb.xml">
-<!ENTITY opcodesnrpn SYSTEM "opcodes/nrpn.xml">
-<!ENTITY opcodesnsamp SYSTEM "opcodes/nsamp.xml">
-<!ENTITY opcodesnstrnum SYSTEM "opcodes/nstrnum.xml">
-<!ENTITY opcodesntrpol SYSTEM "opcodes/ntrpol.xml">
-<!ENTITY opcodesoctave SYSTEM "opcodes/octave.xml">
-<!ENTITY opcodesoctcps SYSTEM "opcodes/octcps.xml">
-<!ENTITY opcodesoctmidib SYSTEM "opcodes/octmidib.xml">
-<!ENTITY opcodesoctmidi SYSTEM "opcodes/octmidi.xml">
-<!ENTITY opcodesoctpch SYSTEM "opcodes/octpch.xml">
-<!ENTITY opcodesopand SYSTEM "opcodes/opand.xml">
-<!ENTITY opcodesopa SYSTEM "opcodes/opa.xml">
-<!ENTITY opcodesopcode SYSTEM "opcodes/opcode.xml">
-<!ENTITY opcodesopi SYSTEM "opcodes/opi.xml">
-<!ENTITY opcodesopk SYSTEM "opcodes/opk.xml">
-<!ENTITY opcodesopor SYSTEM "opcodes/opor.xml">
-<!ENTITY opcodesopbitand SYSTEM "opcodes/opbitand.xml">
-<!ENTITY opcodesopbitor SYSTEM "opcodes/opbitor.xml">
-<!ENTITY opcodesopbitnot SYSTEM "opcodes/opbitnot.xml">
-<!ENTITY opcodesopnonequiv SYSTEM "opcodes/opnonequiv.xml">
-
-
-<!ENTITY opcodesoscbnk SYSTEM "opcodes/oscbnk.xml">
-<!ENTITY opcodesoscil1i SYSTEM "opcodes/oscil1i.xml">
-<!ENTITY opcodesoscil1 SYSTEM "opcodes/oscil1.xml">
-<!ENTITY opcodesoscil3 SYSTEM "opcodes/oscil3.xml">
-<!ENTITY opcodesosciliktp SYSTEM "opcodes/osciliktp.xml">
-<!ENTITY opcodesoscilikt SYSTEM "opcodes/oscilikt.xml">
-<!ENTITY opcodesoscilikts SYSTEM "opcodes/oscilikts.xml">
-<!ENTITY opcodesoscili SYSTEM "opcodes/oscili.xml">
-<!ENTITY opcodesosciln SYSTEM "opcodes/osciln.xml">
-<!ENTITY opcodesoscil SYSTEM "opcodes/oscil.xml">
-<!ENTITY opcodesoscils SYSTEM "opcodes/oscils.xml">
-<!ENTITY opcodesoscilx SYSTEM "opcodes/oscilx.xml">
-<!ENTITY opcodesout32 SYSTEM "opcodes/out32.xml">
-<!ENTITY opcodesoutch SYSTEM "opcodes/outch.xml">
-<!ENTITY opcodesoutc SYSTEM "opcodes/outc.xml">
-<!ENTITY opcodesouth SYSTEM "opcodes/outh.xml">
-<!ENTITY opcodesoutiat SYSTEM "opcodes/outiat.xml">
-<!ENTITY opcodesoutic14 SYSTEM "opcodes/outic14.xml">
-<!ENTITY opcodesoutic SYSTEM "opcodes/outic.xml">
-<!ENTITY opcodesoutipat SYSTEM "opcodes/outipat.xml">
-<!ENTITY opcodesoutipb SYSTEM "opcodes/outipb.xml">
-<!ENTITY opcodesoutipc SYSTEM "opcodes/outipc.xml">
-<!ENTITY opcodesoutkat SYSTEM "opcodes/outkat.xml">
-<!ENTITY opcodesoutkc14 SYSTEM "opcodes/outkc14.xml">
-<!ENTITY opcodesoutkc SYSTEM "opcodes/outkc.xml">
-<!ENTITY opcodesoutkpat SYSTEM "opcodes/outkpat.xml">
-<!ENTITY opcodesoutkpb SYSTEM "opcodes/outkpb.xml">
-<!ENTITY opcodesoutkpc SYSTEM "opcodes/outkpc.xml">
-<!ENTITY opcodesouto SYSTEM "opcodes/outo.xml">
-<!ENTITY opcodesoutq1 SYSTEM "opcodes/outq1.xml">
-<!ENTITY opcodesoutq2 SYSTEM "opcodes/outq2.xml">
-<!ENTITY opcodesoutq3 SYSTEM "opcodes/outq3.xml">
-<!ENTITY opcodesoutq4 SYSTEM "opcodes/outq4.xml">
-<!ENTITY opcodesoutq SYSTEM "opcodes/outq.xml">
-<!ENTITY opcodesoutrg SYSTEM "opcodes/outrg.xml">
-<!ENTITY opcodesouts1 SYSTEM "opcodes/outs1.xml">
-<!ENTITY opcodesouts2 SYSTEM "opcodes/outs2.xml">
-<!ENTITY opcodesout SYSTEM "opcodes/out.xml">
-<!ENTITY opcodesouts SYSTEM "opcodes/outs.xml">
-<!ENTITY opcodesoutvalue SYSTEM "opcodes/outvalue.xml">
-<!ENTITY opcodesoutx SYSTEM "opcodes/outx.xml">
-<!ENTITY opcodesoutz SYSTEM "opcodes/outz.xml">
-<!ENTITY opcodespan SYSTEM "opcodes/pan.xml">
-<!ENTITY opcodespan2 SYSTEM "opcodes/pan2.xml">
-<!ENTITY opcodespareq SYSTEM "opcodes/pareq.xml">
-<!ENTITY opcodespartikkel SYSTEM "opcodes/partikkel.xml">
-<!ENTITY opcodespartikkelsync SYSTEM "opcodes/partikkelsync.xml">
-<!ENTITY opcodespcauchy SYSTEM "opcodes/pcauchy.xml">
-<!ENTITY opcodespchbend SYSTEM "opcodes/pchbend.xml">
-<!ENTITY opcodespchmidib SYSTEM "opcodes/pchmidib.xml">
-<!ENTITY opcodespchmidi SYSTEM "opcodes/pchmidi.xml">
-<!ENTITY opcodespchoct SYSTEM "opcodes/pchoct.xml">
-<!ENTITY opcodespcount SYSTEM "opcodes/pcount.xml">
-<!ENTITY opcodespeakk SYSTEM "opcodes/peakk.xml">
-<!ENTITY opcodespeak SYSTEM "opcodes/peak.xml">
-<!ENTITY opcodespgmassign SYSTEM "opcodes/pgmassign.xml">
-<!ENTITY opcodesphaser1 SYSTEM "opcodes/phaser1.xml">
-<!ENTITY opcodesphaser2 SYSTEM "opcodes/phaser2.xml">
-<!ENTITY opcodesphasorbnk SYSTEM "opcodes/phasorbnk.xml">
-<!ENTITY opcodesphasor SYSTEM "opcodes/phasor.xml">
-<!ENTITY opcodespindex SYSTEM "opcodes/pindex.xml">
-<!ENTITY opcodespinkish SYSTEM "opcodes/pinkish.xml">
-<!ENTITY opcodespitchamdf SYSTEM "opcodes/pitchamdf.xml">
-<!ENTITY opcodespitch SYSTEM "opcodes/pitch.xml">
-<!ENTITY opcodesplanet SYSTEM "opcodes/planet.xml">
-<!ENTITY opcodespluck SYSTEM "opcodes/pluck.xml">
-<!ENTITY opcodespoisson SYSTEM "opcodes/poisson.xml">
-<!ENTITY opcodespolyaft SYSTEM "opcodes/polyaft.xml">
-<!ENTITY opcodespop SYSTEM "opcodes/pop.xml">
-<!ENTITY opcodespop_f SYSTEM "opcodes/pop_f.xml">
-<!ENTITY opcodesportk SYSTEM "opcodes/portk.xml">
-<!ENTITY opcodesport SYSTEM "opcodes/port.xml">
-<!ENTITY opcodesposcil3 SYSTEM "opcodes/poscil3.xml">
-<!ENTITY opcodesposcil SYSTEM "opcodes/poscil.xml">
-<!ENTITY opcodespowoftwo SYSTEM "opcodes/powoftwo.xml">
-<!ENTITY opcodespow SYSTEM "opcodes/pow.xml">
-<!ENTITY opcodesprealloc SYSTEM "opcodes/prealloc.xml">
-<!ENTITY opcodesprintk2 SYSTEM "opcodes/printk2.xml">
-<!ENTITY opcodesprintk SYSTEM "opcodes/printk.xml">
-<!ENTITY opcodesprintks SYSTEM "opcodes/printks.xml">
-<!ENTITY opcodesprints SYSTEM "opcodes/prints.xml">
-<!ENTITY opcodesprint SYSTEM "opcodes/print.xml">
-<!ENTITY opcodesproduct SYSTEM "opcodes/product.xml">
-<!ENTITY opcodespset SYSTEM "opcodes/pset.xml">
-<!ENTITY opcodesp SYSTEM "opcodes/p.xml">
-<!ENTITY opcodespush SYSTEM "opcodes/push.xml">
-<!ENTITY opcodespush_f SYSTEM "opcodes/push_f.xml">
-<!ENTITY opcodespvadd SYSTEM "opcodes/pvadd.xml">
-<!ENTITY opcodespvbufread SYSTEM "opcodes/pvbufread.xml">
-<!ENTITY opcodespvcross SYSTEM "opcodes/pvcross.xml">
-<!ENTITY opcodespvinterp SYSTEM "opcodes/pvinterp.xml">
-<!ENTITY opcodespvoc SYSTEM "opcodes/pvoc.xml">
-<!ENTITY opcodespvread SYSTEM "opcodes/pvread.xml">
-<!ENTITY opcodespvsadsyn SYSTEM "opcodes/pvsadsyn.xml">
-<!ENTITY opcodespvsanal SYSTEM "opcodes/pvsanal.xml">
-<!ENTITY opcodespvscross SYSTEM "opcodes/pvscross.xml">
-<!ENTITY opcodespvsmorph SYSTEM "opcodes/pvsmorph.xml">
-<!ENTITY opcodespvscent SYSTEM "opcodes/pvscent.xml">
-<!ENTITY opcodespvsdemix SYSTEM "opcodes/pvsdemix.xml">
-<!ENTITY opcodespvsfread SYSTEM "opcodes/pvsfread.xml">
-<!ENTITY opcodespvsdiskin SYSTEM "opcodes/pvsdiskin.xml">
-<!ENTITY opcodespvsbuffer SYSTEM "opcodes/pvsbuffer.xml">
-<!ENTITY opcodespvsbufread SYSTEM "opcodes/pvsbufread.xml">
-<!ENTITY opcodespvsfreeze SYSTEM "opcodes/pvsfreeze.xml">
-<!ENTITY opcodespvsftr SYSTEM "opcodes/pvsftr.xml">
-<!ENTITY opcodespvsftw SYSTEM "opcodes/pvsftw.xml">
-<!ENTITY opcodespvsinfo SYSTEM "opcodes/pvsinfo.xml">
-<!ENTITY opcodespvsinit SYSTEM "opcodes/pvsinit.xml">
-<!ENTITY opcodespvspitch SYSTEM "opcodes/pvspitch.xml">
-<!ENTITY opcodespvsin SYSTEM "opcodes/pvsin.xml">
-<!ENTITY opcodespvsout SYSTEM "opcodes/pvsout.xml">
-<!ENTITY opcodespvsosc SYSTEM "opcodes/pvsosc.xml">
-<!ENTITY opcodespvsdisp SYSTEM "opcodes/pvsdisp.xml">
-<!ENTITY opcodespvsbin SYSTEM "opcodes/pvsbin.xml">
-<!ENTITY opcodespvsfwrite SYSTEM "opcodes/pvsfwrite.xml">
-<!ENTITY opcodespvsmaska SYSTEM "opcodes/pvsmaska.xml">
-<!ENTITY opcodespvsynth SYSTEM "opcodes/pvsynth.xml">
-
-<!ENTITY opcodespvscale SYSTEM "opcodes/pvscale.xml">
-<!ENTITY opcodespvshift SYSTEM "opcodes/pvshift.xml">
-<!ENTITY opcodespvsmix SYSTEM "opcodes/pvsmix.xml">
-<!ENTITY opcodespvsmooth SYSTEM "opcodes/pvsmooth.xml">
-<!ENTITY opcodespvsfilter SYSTEM "opcodes/pvsfilter.xml">
-<!ENTITY opcodespvsblur SYSTEM "opcodes/pvsblur.xml">
-<!ENTITY opcodespvstencil SYSTEM "opcodes/pvstencil.xml">
-<!ENTITY opcodespvsbandp SYSTEM "opcodes/pvsbandp.xml">
-<!ENTITY opcodespvsbandr SYSTEM "opcodes/pvsbandr.xml">
-
-<!ENTITY opcodesraises SYSTEM "opcodes/raises.xml">
-<!ENTITY opcodesrandh SYSTEM "opcodes/randh.xml">
-<!ENTITY opcodesrandi SYSTEM "opcodes/randi.xml">
-<!ENTITY opcodesrandomh SYSTEM "opcodes/randomh.xml">
-<!ENTITY opcodesrandomi SYSTEM "opcodes/randomi.xml">
-<!ENTITY opcodesrandom SYSTEM "opcodes/random.xml">
-<!ENTITY opcodesrand SYSTEM "opcodes/rand.xml">
-<!ENTITY opcodesreadclock SYSTEM "opcodes/readclock.xml">
-<!ENTITY opcodesreadk2 SYSTEM "opcodes/readk2.xml">
-<!ENTITY opcodesreadk3 SYSTEM "opcodes/readk3.xml">
-<!ENTITY opcodesreadk4 SYSTEM "opcodes/readk4.xml">
-<!ENTITY opcodesreadk SYSTEM "opcodes/readk.xml">
-<!ENTITY opcodesreinit SYSTEM "opcodes/reinit.xml">
-<!ENTITY opcodesrelease SYSTEM "opcodes/release.xml">
-<!ENTITY opcodesremove SYSTEM "opcodes/remove.xml">
-<!ENTITY opcodesremoteport SYSTEM "opcodes/remoteport.xml">
-<!ENTITY opcodesrepluck SYSTEM "opcodes/repluck.xml">
-<!ENTITY opcodesresonk SYSTEM "opcodes/resonk.xml">
-<!ENTITY opcodesresonr SYSTEM "opcodes/resonr.xml">
-<!ENTITY opcodesreson SYSTEM "opcodes/reson.xml">
-<!ENTITY opcodesresonx SYSTEM "opcodes/resonx.xml">
-<!ENTITY opcodesresonxk SYSTEM "opcodes/resonxk.xml">
-<!ENTITY opcodesresony SYSTEM "opcodes/resony.xml">
-<!ENTITY opcodesresonz SYSTEM "opcodes/resonz.xml">
-<!ENTITY opcodesreverb2 SYSTEM "opcodes/reverb2.xml">
-<!ENTITY opcodesreverb SYSTEM "opcodes/reverb.xml">
-<!ENTITY opcodesrezzy SYSTEM "opcodes/rezzy.xml">
-<!ENTITY opcodesrigoto SYSTEM "opcodes/rigoto.xml">
-<!ENTITY opcodesrireturn SYSTEM "opcodes/rireturn.xml">
-<!ENTITY opcodesrms SYSTEM "opcodes/rms.xml">
-<!ENTITY opcodesround SYSTEM "opcodes/round.xml">
-<!ENTITY opcodesrnd31 SYSTEM "opcodes/rnd31.xml">
-<!ENTITY opcodesrnd SYSTEM "opcodes/rnd.xml">
-<!ENTITY opcodesrspline SYSTEM "opcodes/rspline.xml">
-<!ENTITY opcodesrtclock SYSTEM "opcodes/rtclock.xml">
-<!ENTITY opcodess16b14 SYSTEM "opcodes/s16b14.xml">
-<!ENTITY opcodess32b14 SYSTEM "opcodes/s32b14.xml">
-<!ENTITY opcodessamphold SYSTEM "opcodes/samphold.xml">
-<!ENTITY opcodessandpaper SYSTEM "opcodes/sandpaper.xml">
-<!ENTITY opcodesscanhammer SYSTEM "opcodes/scanhammer.xml">
-<!ENTITY opcodesscans SYSTEM "opcodes/scans.xml">
-<!ENTITY opcodesscantable SYSTEM "opcodes/scantable.xml">
-<!ENTITY opcodesscanu SYSTEM "opcodes/scanu.xml">
-<!ENTITY opcodesscoreline SYSTEM "opcodes/scoreline.xml">
-<!ENTITY opcodesscoreline_i SYSTEM "opcodes/scoreline_i.xml">
-<!ENTITY opcodesschedkwhen SYSTEM "opcodes/schedkwhen.xml">
-<!ENTITY opcodesschedkwhennamed SYSTEM "opcodes/schedkwhennamed.xml">
-<!ENTITY opcodesschedule SYSTEM "opcodes/schedule.xml">
-<!ENTITY opcodesschedwhen SYSTEM "opcodes/schedwhen.xml">
-<!ENTITY opcodesseed SYSTEM "opcodes/seed.xml">
-<!ENTITY opcodessekere SYSTEM "opcodes/sekere.xml">
-<!ENTITY opcodessemitone SYSTEM "opcodes/semitone.xml">
-<!ENTITY opcodessensekey SYSTEM "opcodes/sensekey.xml">
-<!ENTITY opcodessense SYSTEM "opcodes/sense.xml">
-<!ENTITY opcodesseqtime SYSTEM "opcodes/seqtime.xml">
-<!ENTITY opcodesseqtime2 SYSTEM "opcodes/seqtime2.xml">
-<!ENTITY opcodessetctrl SYSTEM "opcodes/setctrl.xml">
-<!ENTITY opcodessetksmps SYSTEM "opcodes/setksmps.xml">
-<!ENTITY opcodessfilist SYSTEM "opcodes/sfilist.xml">
-<!ENTITY opcodessfinstr3m SYSTEM "opcodes/sfinstr3m.xml">
-<!ENTITY opcodessfinstr3 SYSTEM "opcodes/sfinstr3.xml">
-<!ENTITY opcodessfinstrm SYSTEM "opcodes/sfinstrm.xml">
-<!ENTITY opcodessfinstr SYSTEM "opcodes/sfinstr.xml">
-<!ENTITY opcodessfload SYSTEM "opcodes/sfload.xml">
-<!ENTITY opcodessfpassign SYSTEM "opcodes/sfpassign.xml">
-<!ENTITY opcodessfplay3m SYSTEM "opcodes/sfplay3m.xml">
-<!ENTITY opcodessfplay3 SYSTEM "opcodes/sfplay3.xml">
-<!ENTITY opcodessfplaym SYSTEM "opcodes/sfplaym.xml">
-<!ENTITY opcodessfplay SYSTEM "opcodes/sfplay.xml">
-<!ENTITY opcodessflooper SYSTEM "opcodes/sflooper.xml">
-<!ENTITY opcodessfplist SYSTEM "opcodes/sfplist.xml">
-<!ENTITY opcodessfpreset SYSTEM "opcodes/sfpreset.xml">
-<!ENTITY opcodesshaker SYSTEM "opcodes/shaker.xml">
-<!ENTITY opcodessinh SYSTEM "opcodes/sinh.xml">
-<!ENTITY opcodessininv SYSTEM "opcodes/sininv.xml">
-<!ENTITY opcodessin SYSTEM "opcodes/sin.xml">
-<!ENTITY opcodessleighbells SYSTEM "opcodes/sleighbells.xml">
-<!ENTITY opcodesslider16f SYSTEM "opcodes/slider16f.xml">
-<!ENTITY opcodesslider16 SYSTEM "opcodes/slider16.xml">
-<!ENTITY opcodesslider32f SYSTEM "opcodes/slider32f.xml">
-<!ENTITY opcodesslider32 SYSTEM "opcodes/slider32.xml">
-<!ENTITY opcodesslider64f SYSTEM "opcodes/slider64f.xml">
-<!ENTITY opcodesslider64 SYSTEM "opcodes/slider64.xml">
-<!ENTITY opcodesslider8f SYSTEM "opcodes/slider8f.xml">
-<!ENTITY opcodesslider8 SYSTEM "opcodes/slider8.xml">
-<!ENTITY opcodesslider16tablef SYSTEM "opcodes/slider16tablef.xml">
-<!ENTITY opcodesslider16table SYSTEM "opcodes/slider16table.xml">
-<!ENTITY opcodesslider32tablef SYSTEM "opcodes/slider32tablef.xml">
-<!ENTITY opcodesslider32table SYSTEM "opcodes/slider32table.xml">
-<!ENTITY opcodesslider64tablef SYSTEM "opcodes/slider64tablef.xml">
-<!ENTITY opcodesslider64table SYSTEM "opcodes/slider64table.xml">
-<!ENTITY opcodesslider8tablef SYSTEM "opcodes/slider8tablef.xml">
-<!ENTITY opcodesslider8table SYSTEM "opcodes/slider8table.xml">
-<!ENTITY opcodessliderkawai SYSTEM "opcodes/sliderkawai.xml">
-<!ENTITY opcodessndload SYSTEM "opcodes/sndload.xml">
-<!ENTITY opcodessndwarp SYSTEM "opcodes/sndwarp.xml">
-<!ENTITY opcodessndwarpst SYSTEM "opcodes/sndwarpst.xml">
-<!ENTITY opcodessoundin SYSTEM "opcodes/soundin.xml">
-<!ENTITY opcodessoundout SYSTEM "opcodes/soundout.xml">
-<!ENTITY opcodessoundouts SYSTEM "opcodes/soundouts.xml">
-<!ENTITY opcodesspace SYSTEM "opcodes/space.xml">
-<!ENTITY opcodesspat3di SYSTEM "opcodes/spat3di.xml">
-<!ENTITY opcodesspat3d SYSTEM "opcodes/spat3d.xml">
-<!ENTITY opcodesspat3dt SYSTEM "opcodes/spat3dt.xml">
-<!ENTITY opcodesspdist SYSTEM "opcodes/spdist.xml">
-<!ENTITY opcodesspecaddm SYSTEM "opcodes/specaddm.xml">
-<!ENTITY opcodesspecdiff SYSTEM "opcodes/specdiff.xml">
-<!ENTITY opcodesspecdisp SYSTEM "opcodes/specdisp.xml">
-<!ENTITY opcodesspecfilt SYSTEM "opcodes/specfilt.xml">
-<!ENTITY opcodesspechist SYSTEM "opcodes/spechist.xml">
-<!ENTITY opcodesspecptrk SYSTEM "opcodes/specptrk.xml">
-<!ENTITY opcodesspecscal SYSTEM "opcodes/specscal.xml">
-<!ENTITY opcodesspecsum SYSTEM "opcodes/specsum.xml">
-<!ENTITY opcodesspectrum SYSTEM "opcodes/spectrum.xml">
-<!ENTITY opcodessplitrig SYSTEM "opcodes/splitrig.xml">
-<!ENTITY opcodesspsend SYSTEM "opcodes/spsend.xml">
-<!ENTITY opcodessqrt SYSTEM "opcodes/sqrt.xml">
-<!ENTITY opcodessr SYSTEM "opcodes/sr.xml">
-<!ENTITY opcodesstack SYSTEM "opcodes/stack.xml">
-<!ENTITY opcodesstatevar SYSTEM "opcodes/statevar.xml">
-<!ENTITY opcodesstix SYSTEM "opcodes/stix.xml">
-<!ENTITY opcodesstreson SYSTEM "opcodes/streson.xml">
-<!ENTITY opcodesstrset SYSTEM "opcodes/strset.xml">
-<!ENTITY opcodessubinstr SYSTEM "opcodes/subinstr.xml">
-<!ENTITY opcodessubinstrinit SYSTEM "opcodes/subinstrinit.xml">
-<!ENTITY opcodessubtracts SYSTEM "opcodes/subtracts.xml">
-<!ENTITY opcodessum SYSTEM "opcodes/sum.xml">
-<!ENTITY opcodessvfilter SYSTEM "opcodes/svfilter.xml">
-<!ENTITY opcodessyncgrain SYSTEM "opcodes/syncgrain.xml">
-<!ENTITY opcodessyncloop SYSTEM "opcodes/syncloop.xml">
-<!ENTITY opcodesdiskgrain SYSTEM "opcodes/diskgrain.xml">
-<!ENTITY opcodessystem SYSTEM "opcodes/system.xml">
-<!ENTITY opcodestable3 SYSTEM "opcodes/table3.xml">
-<!ENTITY opcodestablecopy SYSTEM "opcodes/tablecopy.xml">
-<!ENTITY opcodestablegpw SYSTEM "opcodes/tablegpw.xml">
-<!ENTITY opcodestableicopy SYSTEM "opcodes/tableicopy.xml">
-<!ENTITY opcodestableigpw SYSTEM "opcodes/tableigpw.xml">
-<!ENTITY opcodestableikt SYSTEM "opcodes/tableikt.xml">
-<!ENTITY opcodestableimix SYSTEM "opcodes/tableimix.xml">
-<!ENTITY opcodestablei SYSTEM "opcodes/tablei.xml">
-<!ENTITY opcodestableiw SYSTEM "opcodes/tableiw.xml">
-<!ENTITY opcodestablekt SYSTEM "opcodes/tablekt.xml">
-<!ENTITY opcodestablemix SYSTEM "opcodes/tablemix.xml">
-<!ENTITY opcodestableng SYSTEM "opcodes/tableng.xml">
-<!ENTITY opcodestablera SYSTEM "opcodes/tablera.xml">
-<!ENTITY opcodestableseg SYSTEM "opcodes/tableseg.xml">
-<!ENTITY opcodestable SYSTEM "opcodes/table.xml">
-<!ENTITY opcodestablewa SYSTEM "opcodes/tablewa.xml">
-<!ENTITY opcodestablewkt SYSTEM "opcodes/tablewkt.xml">
-<!ENTITY opcodestablew SYSTEM "opcodes/tablew.xml">
-<!ENTITY opcodestablexkt SYSTEM "opcodes/tablexkt.xml">
-<!ENTITY opcodestablexseg SYSTEM "opcodes/tablexseg.xml">
-<!ENTITY opcodestabmorph SYSTEM "opcodes/tabmorph.xml">
-<!ENTITY opcodestabmorpha SYSTEM "opcodes/tabmorpha.xml">
-<!ENTITY opcodestabmorphak SYSTEM "opcodes/tabmorphak.xml">
-<!ENTITY opcodestabmorphi SYSTEM "opcodes/tabmorphi.xml">
-<!ENTITY opcodestabplay SYSTEM "opcodes/tabplay.xml">
-<!ENTITY opcodestabrec SYSTEM "opcodes/tabrec.xml">
-<!ENTITY opcodestb SYSTEM "opcodes/tb.xml">
-<!ENTITY opcodestab SYSTEM "opcodes/tab.xml">
-<!ENTITY opcodestambourine SYSTEM "opcodes/tambourine.xml">
-<!ENTITY opcodestanh SYSTEM "opcodes/tanh.xml">
-<!ENTITY opcodestaninv2 SYSTEM "opcodes/taninv2.xml">
-<!ENTITY opcodestaninv SYSTEM "opcodes/taninv.xml">
-<!ENTITY opcodestan SYSTEM "opcodes/tan.xml">
-<!ENTITY opcodestbvcf SYSTEM "opcodes/tbvcf.xml">
-<!ENTITY opcodestempest SYSTEM "opcodes/tempest.xml">
-<!ENTITY opcodestempo SYSTEM "opcodes/tempo.xml">
-<!ENTITY opcodestempoval SYSTEM "opcodes/tempoval.xml">
-<!ENTITY opcodestigoto SYSTEM "opcodes/tigoto.xml">
-<!ENTITY opcodestimeinstk SYSTEM "opcodes/timeinstk.xml">
-<!ENTITY opcodestimeinsts SYSTEM "opcodes/timeinsts.xml">
-<!ENTITY opcodestimek SYSTEM "opcodes/timek.xml">
-<!ENTITY opcodestimes SYSTEM "opcodes/times.xml">
-<!ENTITY opcodestimedseq SYSTEM "opcodes/timedseq.xml">
-<!ENTITY opcodestimout SYSTEM "opcodes/timout.xml">
-<!ENTITY opcodestival SYSTEM "opcodes/tival.xml">
-<!ENTITY opcodestlineto SYSTEM "opcodes/tlineto.xml">
-<!ENTITY opcodestonek SYSTEM "opcodes/tonek.xml">
-<!ENTITY opcodestone SYSTEM "opcodes/tone.xml">
-<!ENTITY opcodestonex SYSTEM "opcodes/tonex.xml">
-<!ENTITY opcodestrandom SYSTEM "opcodes/trandom.xml">
-<!ENTITY opcodestranseg SYSTEM "opcodes/transeg.xml">
-<!ENTITY opcodestrigger SYSTEM "opcodes/trigger.xml">
-<!ENTITY opcodestrigseq SYSTEM "opcodes/trigseq.xml">
-<!ENTITY opcodestrirand SYSTEM "opcodes/trirand.xml">
-<!ENTITY opcodesturnoff SYSTEM "opcodes/turnoff.xml">
-<!ENTITY opcodesturnon SYSTEM "opcodes/turnon.xml">
-<!ENTITY opcodesundef SYSTEM "opcodes/undef.xml">
-<!ENTITY opcodesunirand SYSTEM "opcodes/unirand.xml">
-<!ENTITY opcodesupsamp SYSTEM "opcodes/upsamp.xml">
-<!ENTITY opcodesurd SYSTEM "opcodes/urd.xml">
-
-<!ENTITY opcodesvadd SYSTEM "opcodes/vadd.xml">
-<!ENTITY opcodesvexp SYSTEM "opcodes/vexp.xml">
-<!ENTITY opcodesvmult SYSTEM "opcodes/vmult.xml">
-<!ENTITY opcodesvpow SYSTEM "opcodes/vpow.xml">
-<!ENTITY opcodesvaget SYSTEM "opcodes/vaget.xml">
-<!ENTITY opcodesvalpass SYSTEM "opcodes/valpass.xml">
-<!ENTITY opcodesvaset SYSTEM "opcodes/vaset.xml">
-<!ENTITY opcodesvbap16move SYSTEM "opcodes/vbap16move.xml">
-<!ENTITY opcodesvbap16 SYSTEM "opcodes/vbap16.xml">
-<!ENTITY opcodesvbap4move SYSTEM "opcodes/vbap4move.xml">
-<!ENTITY opcodesvbap4 SYSTEM "opcodes/vbap4.xml">
-<!ENTITY opcodesvbap8move SYSTEM "opcodes/vbap8move.xml">
-<!ENTITY opcodesvbap8 SYSTEM "opcodes/vbap8.xml">
-<!ENTITY opcodesvbaplsinit SYSTEM "opcodes/vbaplsinit.xml">
-<!ENTITY opcodesvbapzmove SYSTEM "opcodes/vbapzmove.xml">
-<!ENTITY opcodesvbapz SYSTEM "opcodes/vbapz.xml">
-<!ENTITY opcodesvco2ft SYSTEM "opcodes/vco2ft.xml">
-<!ENTITY opcodesvco2ift SYSTEM "opcodes/vco2ift.xml">
-<!ENTITY opcodesvco2init SYSTEM "opcodes/vco2init.xml">
-<!ENTITY opcodesvco2 SYSTEM "opcodes/vco2.xml">
-<!ENTITY opcodesvcomb SYSTEM "opcodes/vcomb.xml">
-<!ENTITY opcodesvco SYSTEM "opcodes/vco.xml">
-<!ENTITY opcodesvdelay3 SYSTEM "opcodes/vdelay3.xml">
-<!ENTITY opcodesvdelay SYSTEM "opcodes/vdelay.xml">
-<!ENTITY opcodesvdelayxq SYSTEM "opcodes/vdelayxq.xml">
-<!ENTITY opcodesvdelayx SYSTEM "opcodes/vdelayx.xml">
-<!ENTITY opcodesvdelayxs SYSTEM "opcodes/vdelayxs.xml">
-<!ENTITY opcodesvdelayxwq SYSTEM "opcodes/vdelayxwq.xml">
-<!ENTITY opcodesvdelayxw SYSTEM "opcodes/vdelayxw.xml">
-<!ENTITY opcodesvdelayxws SYSTEM "opcodes/vdelayxws.xml">
-<!ENTITY opcodesveloc SYSTEM "opcodes/veloc.xml">
-<!ENTITY opcodesvibes SYSTEM "opcodes/vibes.xml">
-<!ENTITY opcodesvibrato SYSTEM "opcodes/vibrato.xml">
-<!ENTITY opcodesvibr SYSTEM "opcodes/vibr.xml">
-<!ENTITY opcodesvincr SYSTEM "opcodes/vincr.xml">
-<!ENTITY opcodesvlowres SYSTEM "opcodes/vlowres.xml">
-<!ENTITY opcodesvoice SYSTEM "opcodes/voice.xml">
-<!ENTITY opcodesvpvoc SYSTEM "opcodes/vpvoc.xml">
-<!ENTITY opcodesvphaseseg SYSTEM "opcodes/vphaseseg.xml">
-<!ENTITY opcodeswaveset SYSTEM "opcodes/waveset.xml">
-<!ENTITY opcodesweibull SYSTEM "opcodes/weibull.xml">
-<!ENTITY opcodeswgbowedbar SYSTEM "opcodes/wgbowedbar.xml">
-<!ENTITY opcodeswgbow SYSTEM "opcodes/wgbow.xml">
-<!ENTITY opcodeswgbrass SYSTEM "opcodes/wgbrass.xml">
-<!ENTITY opcodeswgclar SYSTEM "opcodes/wgclar.xml">
-<!ENTITY opcodeswgflute SYSTEM "opcodes/wgflute.xml">
-<!ENTITY opcodeswgpluck2 SYSTEM "opcodes/wgpluck2.xml">
-<!ENTITY opcodeswgpluck SYSTEM "opcodes/wgpluck.xml">
-<!ENTITY opcodeswguide1 SYSTEM "opcodes/wguide1.xml">
-<!ENTITY opcodeswguide2 SYSTEM "opcodes/wguide2.xml">
-<!ENTITY opcodeswrap SYSTEM "opcodes/wrap.xml">
-<!ENTITY opcodeswterrain SYSTEM "opcodes/wterrain.xml">
-<!ENTITY opcodesxadsr SYSTEM "opcodes/xadsr.xml">
-<!ENTITY opcodesxin SYSTEM "opcodes/xin.xml">
-<!ENTITY opcodesxout SYSTEM "opcodes/xout.xml">
-<!ENTITY opcodesxscanmap SYSTEM "opcodes/xscanmap.xml">
-<!ENTITY opcodesxscansmap SYSTEM "opcodes/xscansmap.xml">
-<!ENTITY opcodesxscans SYSTEM "opcodes/xscans.xml">
-<!ENTITY opcodesxscanu SYSTEM "opcodes/xscanu.xml">
-<!ENTITY opcodesxtratim SYSTEM "opcodes/xtratim.xml">
-<!ENTITY opcodesxyin SYSTEM "opcodes/xyin.xml">
-<!ENTITY opcodeszacl SYSTEM "opcodes/zacl.xml">
-<!ENTITY opcodeszakinit SYSTEM "opcodes/zakinit.xml">
-<!ENTITY opcodeszamod SYSTEM "opcodes/zamod.xml">
-<!ENTITY opcodeszarg SYSTEM "opcodes/zarg.xml">
-<!ENTITY opcodeszar SYSTEM "opcodes/zar.xml">
-<!ENTITY opcodeszawm SYSTEM "opcodes/zawm.xml">
-<!ENTITY opcodeszaw SYSTEM "opcodes/zaw.xml">
-<!ENTITY opcodeszfilter2 SYSTEM "opcodes/zfilter2.xml">
-<!ENTITY opcodeszir SYSTEM "opcodes/zir.xml">
-<!ENTITY opcodesziwm SYSTEM "opcodes/ziwm.xml">
-<!ENTITY opcodesziw SYSTEM "opcodes/ziw.xml">
-<!ENTITY opcodeszkcl SYSTEM "opcodes/zkcl.xml">
-<!ENTITY opcodeszkmod SYSTEM "opcodes/zkmod.xml">
-<!ENTITY opcodeszkr SYSTEM "opcodes/zkr.xml">
-<!ENTITY opcodeszkwm SYSTEM "opcodes/zkwm.xml">
-<!ENTITY opcodeszkw SYSTEM "opcodes/zkw.xml">
-
-<!ENTITY opcodesbarmodel SYSTEM "opcodes/barmodel.xml">
-<!ENTITY opcodesprepiano SYSTEM "opcodes/prepiano.xml">
-<!ENTITY opcodescompress SYSTEM "opcodes/compress.xml">
-<!ENTITY opcodesdistort SYSTEM "opcodes/distort.xml">-->
-
-<!ENTITY orch SYSTEM "orch/top.xml">
-<!ENTITY orchdirfiles SYSTEM "orch/dirfiles.xml">
-<!ENTITY orchexpress SYSTEM "orch/express.xml">
-<!ENTITY orchheader SYSTEM "orch/header.xml">
-<!ENTITY orchmacros SYSTEM "orch/macros.xml">
-<!ENTITY orchiblock SYSTEM "orch/iblock.xml">
-<!ENTITY orchkvar SYSTEM "orch/kvar.xml">
-<!ENTITY orchnomen SYSTEM "orch/nomen.xml">
-<!ENTITY orchstatemnt SYSTEM "orch/statemnt.xml">
-<!--<!ENTITY orchvarinit SYSTEM "orch/varinit.xml">-->
-<!ENTITY orchnamedinstruments SYSTEM "orch/namedInstruments.xml">
-<!ENTITY orchUDO SYSTEM "orch/UDO.xml">
-
-<!ENTITY pitch SYSTEM "pitch/top.xml">
-<!ENTITY pitchfuncs SYSTEM "pitch/funcs.xml">
-<!ENTITY pitchtuning SYSTEM "pitch/tuning.xml">
-
-<!ENTITY score SYSTEM "score/top.xml">
-<!ENTITY scoreampgen SYSTEM "score/ampgen.xml">
-<!ENTITY scoreeval SYSTEM "score/eval.xml">
-<!ENTITY scorefilegen SYSTEM "score/filegen.xml">
-<!ENTITY scoremacros SYSTEM "score/macros.xml">
-<!ENTITY scoremixgen SYSTEM "score/mixgen.xml">
-<!ENTITY scoremult SYSTEM "score/mult.xml">
-<!ENTITY scorenextp SYSTEM "score/nextp.xml">
-
-<!ENTITY scorenumgen SYSTEM "score/numgen.xml">
-<!ENTITY scorepreproc SYSTEM "score/preproc.xml">
-<!ENTITY scoreramp SYSTEM "score/ramp.xml">
-<!ENTITY scorestatemnt SYSTEM "score/statemnt.xml">
-<!--<!ENTITY scorerandgen SYSTEM "score/randgen.xml">
-<!ENTITY scoreseggen SYSTEM "score/seggen.xml">
-<!ENTITY scoresinegen SYSTEM "score/sinegen.xml">
-<!ENTITY scorewavegen SYSTEM "score/wavegen.xml">
-<!ENTITY scorewingen SYSTEM "score/wingen.xml">-->
-
-<!--<!ENTITY scoregens SYSTEM "scoregens/top.xml">
-<!ENTITY scoregensa SYSTEM "scoregens/a.xml">
-<!ENTITY scoregensb SYSTEM "scoregens/b.xml">
-<!ENTITY scoregense SYSTEM "scoregens/e.xml">
-<!ENTITY scoregensf SYSTEM "scoregens/f.xml">
-<!ENTITY scoregensgen01 SYSTEM "scoregens/gen01.xml">
-<!ENTITY scoregensgen02 SYSTEM "scoregens/gen02.xml">
-<!ENTITY scoregensgen03 SYSTEM "scoregens/gen03.xml">
-<!ENTITY scoregensgen04 SYSTEM "scoregens/gen04.xml">
-<!ENTITY scoregensgen05 SYSTEM "scoregens/gen05.xml">
-<!ENTITY scoregensgen06 SYSTEM "scoregens/gen06.xml">
-<!ENTITY scoregensgen07 SYSTEM "scoregens/gen07.xml">
-<!ENTITY scoregensgen08 SYSTEM "scoregens/gen08.xml">
-<!ENTITY scoregensgen09 SYSTEM "scoregens/gen09.xml">
-<!ENTITY scoregensgen10 SYSTEM "scoregens/gen10.xml">
-<!ENTITY scoregensgen11 SYSTEM "scoregens/gen11.xml">
-<!ENTITY scoregensgen12 SYSTEM "scoregens/gen12.xml">
-<!ENTITY scoregensgen13 SYSTEM "scoregens/gen13.xml">
-<!ENTITY scoregensgen14 SYSTEM "scoregens/gen14.xml">
-<!ENTITY scoregensgen15 SYSTEM "scoregens/gen15.xml">
-<!ENTITY scoregensgen16 SYSTEM "scoregens/gen16.xml">
-<!ENTITY scoregensgen17 SYSTEM "scoregens/gen17.xml">
-<!ENTITY scoregensgen18 SYSTEM "scoregens/gen18.xml">
-<!ENTITY scoregensgen19 SYSTEM "scoregens/gen19.xml">
-<!ENTITY scoregensgen20 SYSTEM "scoregens/gen20.xml">
-<!ENTITY scoregensgen21 SYSTEM "scoregens/gen21.xml">
-<!ENTITY scoregensgen22 SYSTEM "scoregens/gen22.xml">
-<!ENTITY scoregensgen23 SYSTEM "scoregens/gen23.xml">
-<!ENTITY scoregensgen24 SYSTEM "scoregens/gen24.xml">
-<!ENTITY scoregensgen25 SYSTEM "scoregens/gen25.xml">
-<!ENTITY scoregensgen27 SYSTEM "scoregens/gen27.xml">
-<!ENTITY scoregensgen28 SYSTEM "scoregens/gen28.xml">
-<!ENTITY scoregensgen30 SYSTEM "scoregens/gen30.xml">
-<!ENTITY scoregensgen31 SYSTEM "scoregens/gen31.xml">
-<!ENTITY scoregensgen32 SYSTEM "scoregens/gen32.xml">
-<!ENTITY scoregensgen33 SYSTEM "scoregens/gen33.xml">
-<!ENTITY scoregensgen34 SYSTEM "scoregens/gen34.xml">
-<!ENTITY scoregensgen40 SYSTEM "scoregens/gen40.xml">
-<!ENTITY scoregensgen41 SYSTEM "scoregens/gen41.xml">
-<!ENTITY scoregensgen42 SYSTEM "scoregens/gen42.xml">
-<!ENTITY scoregensgen43 SYSTEM "scoregens/gen43.xml">
-<!ENTITY scoregensgen49 SYSTEM "scoregens/gen49.xml">
-<!ENTITY scoregensgen51 SYSTEM "scoregens/gen51.xml">
-<!ENTITY scoregensgen52 SYSTEM "scoregens/gen52.xml">
-<!ENTITY scoregensi SYSTEM "scoregens/i.xml">
-<!ENTITY scoregensm SYSTEM "scoregens/m.xml">
-<!ENTITY scoregensn SYSTEM "scoregens/n.xml">
-<!ENTITY scoregensq SYSTEM "scoregens/q.xml">
-<!ENTITY scoregensr SYSTEM "scoregens/r.xml">
-<!ENTITY scoregenss SYSTEM "scoregens/s.xml">
-<!ENTITY scoregenst SYSTEM "scoregens/t.xml">
-<!ENTITY scoregensv SYSTEM "scoregens/v.xml">
-<!ENTITY scoregensx SYSTEM "scoregens/x.xml">-->
-
-<!ENTITY siggen SYSTEM "siggen/top.xml">
-<!ENTITY siggenadditive SYSTEM "siggen/additive.xml">
-<!ENTITY siggenbasic SYSTEM "siggen/basic.xml">
-<!ENTITY siggendynamic SYSTEM "siggen/dynamic.xml">
-<!ENTITY siggenfmsynth SYSTEM "siggen/fmsynth.xml">
-<!ENTITY siggengranular SYSTEM "siggen/granular.xml">
-<!ENTITY siggenhvs SYSTEM "siggen/hvs.xml">
-<!ENTITY siggenlineexp SYSTEM "siggen/lineexp.xml">
-<!ENTITY siggenenvelope SYSTEM "siggen/envelope.xml">
-<!ENTITY siggenmodels SYSTEM "siggen/models.xml">
-<!ENTITY siggenphasors SYSTEM "siggen/phasors.xml">
-<!ENTITY siggenrandom SYSTEM "siggen/random.xml">
-<!ENTITY siggensample SYSTEM "siggen/sample.xml">
-<!ENTITY siggenscantop SYSTEM "siggen/scantop.xml">
-<!ENTITY siggentableacc SYSTEM "siggen/tableacc.xml">
-<!ENTITY siggenwaveterr SYSTEM "siggen/waveterr.xml">
-<!ENTITY siggenwavguide SYSTEM "siggen/wavguide.xml">
-
-<!ENTITY sigio SYSTEM "sigio/top.xml">
-<!ENTITY sigiofileio SYSTEM "sigio/fileio.xml">
-<!ENTITY sigioinput SYSTEM "sigio/input.xml">
-<!ENTITY sigiooutput SYSTEM "sigio/output.xml">
-<!ENTITY sigiosoftbus SYSTEM "sigio/softbus.xml">
-<!ENTITY sigiopdisplay SYSTEM "sigio/pdisplay.xml">
-<!ENTITY sigioqueries SYSTEM "sigio/queries.xml">
-
-<!ENTITY sigmod SYSTEM "sigmod/top.xml">
-<!ENTITY sigmodampmod SYSTEM "sigmod/ampmod.xml">
-<!ENTITY sigmodconmorph SYSTEM "sigmod/conmorph.xml">
-<!ENTITY sigmoddelayops SYSTEM "sigmod/delayops.xml">
-<!ENTITY sigmodenvelope SYSTEM "sigmod/envelope.xml">
-<!ENTITY sigmodpanspatl SYSTEM "sigmod/panspatl.xml">
-<!ENTITY sigmodreverbtn SYSTEM "sigmod/reverbtn.xml">
-<!ENTITY sigmodsample SYSTEM "sigmod/sample.xml">
-<!ENTITY sigmodsiglimit SYSTEM "sigmod/siglimit.xml">
-<!ENTITY sigmodspeciale SYSTEM "sigmod/speciale.xml">
-<!ENTITY sigmodspeciali SYSTEM "sigmod/speciali.xml">
-<!ENTITY sigmodstandard SYSTEM "sigmod/standard.xml">
-<!ENTITY sigmodwavguide SYSTEM "sigmod/wavguide.xml">
-<!ENTITY sigmodcompaccum SYSTEM "sigmod/compaccum.xml">
-
-<!ENTITY spectral SYSTEM "spectral/top.xml">
-<!ENTITY spectralstft SYSTEM "spectral/stft.xml">
-<!ENTITY spectrallpcresyn SYSTEM "spectral/lpcresyn.xml">
-<!ENTITY spectralnonstand SYSTEM "spectral/nonstand.xml">
-<!ENTITY spectralrealtime SYSTEM "spectral/realtime.xml">
-<!ENTITY spectralATS SYSTEM "spectral/ATS.xml">
-<!ENTITY spectralloris SYSTEM "spectral/loris.xml">
-
-<!ENTITY table SYSTEM "table/top.xml">
-<!ENTITY tablequeries SYSTEM "table/queries.xml">
-<!ENTITY tablereadwrit SYSTEM "table/readwrit.xml">
-<!ENTITY tableselect SYSTEM "table/select.xml">
-
-<!ENTITY utility SYSTEM "utility/top.xml">
-<!ENTITY utilityanalysis SYSTEM "utility/analysis.xml">
-<!ENTITY utilityconvert SYSTEM "utility/convert.xml">
-<!ENTITY utilitycs SYSTEM "utility/cs.xml">
-<!ENTITY utilitycsb64enc SYSTEM "utility/csb64enc.xml">
-<!ENTITY utilitycvanal SYSTEM "utility/cvanal.xml">
-<!ENTITY utilitydnoise SYSTEM "utility/dnoise.xml">
-<!ENTITY utilityenvext SYSTEM "utility/envext.xml">
-<!ENTITY utilityextractor SYSTEM "utility/extractor.xml">
-<!ENTITY utilityhetro SYSTEM "utility/hetro.xml">
-<!ENTITY utilityhet_import SYSTEM "utility/het_import.xml">
-<!ENTITY utilityhet_export SYSTEM "utility/het_export.xml">
-<!ENTITY utilitylpanal SYSTEM "utility/lpanal.xml">
-<!ENTITY utilityatsa SYSTEM "utility/atsa.xml">
-<!ENTITY utilitymakecsd SYSTEM "utility/makecsd.xml">
-<!ENTITY utilitymixer SYSTEM "utility/mixer.xml">
-<!ENTITY utilityother SYSTEM "utility/other.xml">
-<!ENTITY utilitypvanal SYSTEM "utility/pvanal.xml">
-<!ENTITY utilitypv_export SYSTEM "utility/pv_export.xml">
-<!ENTITY utilitypv_import SYSTEM "utility/pv_import.xml">
-<!ENTITY utilitypvlook SYSTEM "utility/pvlook.xml">
-<!ENTITY utilityqueries SYSTEM "utility/queries.xml">
-<!ENTITY utilityscale SYSTEM "utility/scale.xml">
-<!ENTITY utilitysdif2ad SYSTEM "utility/sdif2ad.xml">
-<!ENTITY utilitysndinfo SYSTEM "utility/sndinfo.xml">
-<!ENTITY utilitysrconv SYSTEM "utility/srconv.xml">
-
-<!ENTITY zak SYSTEM "zak/top.xml">
-
-<!ENTITY strings SYSTEM "strings/top.xml">
-<!ENTITY stringsmanipulate SYSTEM "strings/manipulate.xml">
-<!ENTITY stringsconvert SYSTEM "strings/convert.xml">
-<!ENTITY opcodesgetcfg SYSTEM "opcodes/getcfg.xml">
-<!ENTITY opcodesstrchar SYSTEM "opcodes/strchar.xml">
-<!ENTITY opcodesstrchark SYSTEM "opcodes/strchark.xml">
-<!ENTITY opcodesstrcpy SYSTEM "opcodes/strcpy.xml">
-<!ENTITY opcodesstrcpyk SYSTEM "opcodes/strcpyk.xml">
-<!ENTITY opcodesstrcat SYSTEM "opcodes/strcat.xml">
-<!ENTITY opcodesstrcatk SYSTEM "opcodes/strcatk.xml">
-<!ENTITY opcodesstrcmp SYSTEM "opcodes/strcmp.xml">
-<!ENTITY opcodesstrcmpk SYSTEM "opcodes/strcmpk.xml">
-<!ENTITY opcodesstrget SYSTEM "opcodes/strget.xml">
-<!ENTITY opcodesstrindex SYSTEM "opcodes/strindex.xml">
-<!ENTITY opcodesstrindexk SYSTEM "opcodes/strindexk.xml">
-<!ENTITY opcodesstrrindex SYSTEM "opcodes/strrindex.xml">
-<!ENTITY opcodesstrrindexk SYSTEM "opcodes/strrindexk.xml">
-<!ENTITY opcodesstrlen SYSTEM "opcodes/strlen.xml">
-<!ENTITY opcodesstrlenk SYSTEM "opcodes/strlenk.xml">
-<!ENTITY opcodesstrlower SYSTEM "opcodes/strlower.xml">
-<!ENTITY opcodesstrlowerk SYSTEM "opcodes/strlowerk.xml">
-<!ENTITY opcodessprintf SYSTEM "opcodes/sprintf.xml">
-<!ENTITY opcodessprintfk SYSTEM "opcodes/sprintfk.xml">
-<!ENTITY opcodesprintf SYSTEM "opcodes/printf.xml">
-<!ENTITY opcodesputs SYSTEM "opcodes/puts.xml">
-<!ENTITY opcodesstrsub SYSTEM "opcodes/strsub.xml">
-<!ENTITY opcodesstrsubk SYSTEM "opcodes/strsubk.xml">
-<!ENTITY opcodesstrtod SYSTEM "opcodes/strtod.xml">
-<!ENTITY opcodesstrtodk SYSTEM "opcodes/strtodk.xml">
-<!ENTITY opcodesstrtol SYSTEM "opcodes/strtol.xml">
-<!ENTITY opcodesstrtolk SYSTEM "opcodes/strtolk.xml">
-<!ENTITY opcodesstrupper SYSTEM "opcodes/strupper.xml">
-<!ENTITY opcodesstrupperk SYSTEM "opcodes/strupperk.xml">
-
-<!ENTITY vectorial SYSTEM "vectorial/top.xml">
-<!ENTITY vectorialtables SYSTEM "vectorial/tables.xml">
-<!ENTITY vectorialscalar SYSTEM "vectorial/scalar.xml">
-<!ENTITY vectorialvectorial SYSTEM "vectorial/vectorial.xml">
-<!ENTITY vectorialenvelopeGenerators SYSTEM "vectorial/envelopeGenerators.xml">
-<!ENTITY vectoriallimiting SYSTEM "vectorial/limiting.xml">
-<!ENTITY vectorialdelay SYSTEM "vectorial/delay.xml">
-<!ENTITY vectorialrandom SYSTEM "vectorial/vectorialrandom.xml">
-
-<!ENTITY opcodesvtable1k SYSTEM "opcodes/vtable1k.xml">
-<!ENTITY opcodesvtablei SYSTEM "opcodes/vtablei.xml">
-<!ENTITY opcodesvtablek SYSTEM "opcodes/vtablek.xml">
-<!ENTITY opcodesvtablea SYSTEM "opcodes/vtablea.xml">
-<!ENTITY opcodesvtablewi SYSTEM "opcodes/vtablewi.xml">
-<!ENTITY opcodesvtablewk SYSTEM "opcodes/vtablewk.xml">
-<!ENTITY opcodesvtablewa SYSTEM "opcodes/vtablewa.xml">
-<!ENTITY opcodesvtabi SYSTEM "opcodes/vtabi.xml">
-<!ENTITY opcodesvtabk SYSTEM "opcodes/vtabk.xml">
-<!ENTITY opcodesvtaba SYSTEM "opcodes/vtaba.xml">
-<!ENTITY opcodesvtabwi SYSTEM "opcodes/vtabwi.xml">
-<!ENTITY opcodesvtabwk SYSTEM "opcodes/vtabwk.xml">
-<!ENTITY opcodesvtabwa SYSTEM "opcodes/vtabwa.xml">
-<!ENTITY opcodesvadd SYSTEM "opcodes/vadd.xml">
-<!ENTITY opcodesvaddi SYSTEM "opcodes/vadd_i.xml">
-<!ENTITY opcodesvmult SYSTEM "opcodes/vmult.xml">
-<!ENTITY opcodesvmulti SYSTEM "opcodes/vmult_i.xml">
-<!ENTITY opcodesvpow SYSTEM "opcodes/vpow.xml">
-<!ENTITY opcodesvpowi SYSTEM "opcodes/vpow_i.xml">
-<!ENTITY opcodesvexp SYSTEM "opcodes/vexp.xml">
-<!ENTITY opcodesvexpi SYSTEM "opcodes/vexp_i.xml">
-<!ENTITY opcodesvlinseg SYSTEM "opcodes/vlinseg.xml">
-<!ENTITY opcodesvexpseg SYSTEM "opcodes/vexpseg.xml">
-<!ENTITY opcodesvaddv SYSTEM "opcodes/vaddv.xml">
-<!ENTITY opcodesvsubv SYSTEM "opcodes/vsubv.xml">
-<!ENTITY opcodesvmultv SYSTEM "opcodes/vmultv.xml">
-<!ENTITY opcodesvdivv SYSTEM "opcodes/vdivv.xml">
-<!ENTITY opcodesvpowv SYSTEM "opcodes/vpowv.xml">
-<!ENTITY opcodesvexpv SYSTEM "opcodes/vexpv.xml">
-<!ENTITY opcodesvaddv_i SYSTEM "opcodes/vaddv_i.xml">
-<!ENTITY opcodesvsubv_i SYSTEM "opcodes/vsubv_i.xml">
-<!ENTITY opcodesvmultv_i SYSTEM "opcodes/vmultv_i.xml">
-<!ENTITY opcodesvdivv_i SYSTEM "opcodes/vdivv_i.xml">
-<!ENTITY opcodesvpowv_i SYSTEM "opcodes/vpowv_i.xml">
-<!ENTITY opcodesvexpv_i SYSTEM "opcodes/vexpv_i.xml">
-<!ENTITY opcodesvcopy SYSTEM "opcodes/vcopy.xml">
-<!ENTITY opcodesvcopy_i SYSTEM "opcodes/vcopy_i.xml">
-<!ENTITY opcodesvmap SYSTEM "opcodes/vmap.xml">
-<!ENTITY opcodesvlimit SYSTEM "opcodes/vlimit.xml">
-<!ENTITY opcodesvwrap SYSTEM "opcodes/vwrap.xml">
-<!ENTITY opcodesvmirror SYSTEM "opcodes/vmirror.xml">
-
-<!ENTITY opcodesvcella SYSTEM "opcodes/vcella.xml">
-<!ENTITY opcodesvdelayk SYSTEM "opcodes/vdelayk.xml">
-
-<!ENTITY opcodesvport SYSTEM "opcodes/vport.xml">
-<!ENTITY opcodesvecdelay SYSTEM "opcodes/vecdelay.xml">
-
-<!ENTITY opcodesvrandh SYSTEM "opcodes/vrandh.xml">
-<!ENTITY opcodesvrandi SYSTEM "opcodes/vrandi.xml">
-
-
-<!ENTITY csoundversion "5.10">
-]>
-
-<book id="index" lang="en">
- <title>The Canonical Csound Reference Manual</title>
- <subtitle>Version &csoundversion;</subtitle>
- <bookinfo>
- <authorgroup>
- <author>
- <firstname>Barry</firstname>
- <surname>Vercoe</surname>
- <affiliation>
- <orgname>MIT Media Lab
- </orgname>
- </affiliation>
- </author>
-
- </authorgroup>
-
- <edition>&csoundversion;</edition>
-
- <copyright>
- <year>1986</year>
- <year>1992</year>
- <holder>Massachusetts Institute of Technology</holder>
- </copyright>
- </bookinfo>
-
-<!-- &pface; -->
-
- <part id="PartOverview">
- <title>Overview</title>
- &oviewintroduction;
- &oviewrecentdev;
-
- &command;
- &oviewusing;
- &oviewconfiguring;
- &orch;
-<!-- &score; -->
- &oviewfrontends;
-<!-- &tclcsound; -->
- &oviewbuilding;
- &oviewlinks;
-
- </part>
-
- <!-- &csound5opcodesSection; -->
-
- <part id="PartOpcodesOverview">
- <title>Opcodes Overview</title>
-
-<!-- &siggen;
- &sigio;
- &sigmod;
- &control;
- &table;
- &math;
- &pitch;
- &midi;
- &spectral;
- &strings;
- &vectorial;
- &zak;
- &plugin;
- &oscnetwork;
- &mixer;
- &py;
- &miscopcodes;-->
-
- </part>
-
- <part id="PartReference">
- <title>Reference</title>
-<!-- &opcodes; -->
-<!-- &scoregens; -->
- &utility;
-<!-- &cscore; -->
- &csound5extending;
- </part>
-
-<!-- &misc; -->
-
-</book>
-
-
diff --git a/manual.xml b/manual.xml
index 11f7312..2a55d67 100644
--- a/manual.xml
+++ b/manual.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "c:/utah/opt/docbook-xml-4.5/docbookx.dtd" [
+ "../docbook-xml-4.5/docbookx.dtd" [
<!--!DOCTYPE book SYSTEM "docbook42/docbookx.dtd" [ -->
@@ -30,17 +30,22 @@
<!ENTITY oviewrealtimelinux SYSTEM "overview/realtimelinux.xml">
<!ENTITY oviewrealtimewindows SYSTEM "overview/realtimewindows.xml">
<!ENTITY oviewrealtimemac SYSTEM "overview/realtimemac.xml">
+<!ENTITY oviewfunctional SYSTEM "overview/functional.xml">
+
<!-- CSOUND 5 -->
<!--<!ENTITY csound5licenses SYSTEM "csound5/licenses.xml">-->
+<!--
<!ENTITY csound5preface SYSTEM "csound5/preface.xml">
<!ENTITY csound5acknowledgments SYSTEM "csound5/acknowledgments.xml">
<!ENTITY csound5extending SYSTEM "csound5/extending.xml">
+-->
+
+<!ENTITY lua SYSTEM "csound5/opcodes/lua.xml">
<!ENTITY py SYSTEM "csound5/opcodes/py.xml">
<!ENTITY mixer SYSTEM "csound5/opcodes/mixer.xml">
<!ENTITY signalflowgraph SYSTEM "csound5/opcodes/signalflowgraph.xml">
<!ENTITY jacko SYSTEM "csound5/opcodes/Jacko.xml">
-<!ENTITY tclcsound SYSTEM "csound5/tclcsound.xml">
<!-- <!ENTITY csound5opcodesSection SYSTEM "overview/cs5opcodes.xml"> -->
@@ -82,6 +87,7 @@
<!ENTITY controltimeread SYSTEM "control/timeread.xml">
<!ENTITY imageopcodes SYSTEM "imageopcodes/top.xml">
+<!ENTITY stkopcodes SYSTEM "STKopcodes/top.xml">
<!ENTITY miscopcodes SYSTEM "miscopcodes/top.xml">
<!ENTITY cscore SYSTEM "cscore/top.xml">
@@ -90,7 +96,10 @@
<!ENTITY cscoreevents SYSTEM "cscore/events.xml">
<!ENTITY cscoremain SYSTEM "cscore/main.xml">
-<!ENTITY beats SYSTEM "beats/top.xml">
+<!ENTITY csbeats SYSTEM "csbeats/top.xml">
+<!ENTITY csbeatssyntax SYSTEM "csbeats/syntax.xml">
+<!ENTITY csbeatsexample SYSTEM "csbeats/example.xml">
+
<!ENTITY math SYSTEM "math/top.xml">
<!ENTITY mathamp SYSTEM "math/amp.xml">
<!ENTITY mathartlogic SYSTEM "math/artlogic.xml">
@@ -99,6 +108,7 @@
<!ENTITY mathrndfunc SYSTEM "math/rndfunc.xml">
<!ENTITY mathtrig SYSTEM "math/trig.xml">
<!ENTITY linearalgebra SYSTEM "math/linearalgebra.xml">
+<!ENTITY array SYSTEM "math/array.xml">
<!ENTITY midi SYSTEM "midi/top.xml">
<!ENTITY midivirtual SYSTEM "midi/virtual.xml">
@@ -148,6 +158,7 @@
<!ENTITY namepinot "Fran&ccedil;ois Pinot">
<!ENTITY namevictor "Victor Lazzarini">
<!ENTITY namepeter "Peter Brinkmann">
+<!ENTITY nametito "Tito Latini">
<!ENTITY opcodes SYSTEM "opcodes/top.xml">
<!ENTITY opcodes0dbfs SYSTEM "opcodes/0dbfs.xml">
@@ -227,8 +238,11 @@
<!ENTITY opcodesbuzz SYSTEM "opcodes/buzz.xml">
<!ENTITY opcodescabasa SYSTEM "opcodes/cabasa.xml">
<!ENTITY opcodescauchy SYSTEM "opcodes/cauchy.xml">
+<!ENTITY opcodescauchyi SYSTEM "opcodes/cauchyi.xml">
+<!ENTITY opcodescell SYSTEM "opcodes/cell.xml">
<!ENTITY opcodescent SYSTEM "opcodes/cent.xml">
<!ENTITY opcodesceil SYSTEM "opcodes/ceil.xml">
+<!ENTITY opcodescentroid SYSTEM "opcodes/centroid.xml">
<!ENTITY opcodescggoto SYSTEM "opcodes/cggoto.xml">
<!ENTITY opcodeschanctrl SYSTEM "opcodes/chanctrl.xml">
<!ENTITY opcodeschanged SYSTEM "opcodes/changed.xml">
@@ -258,14 +272,22 @@
<!ENTITY opcodesclock SYSTEM "opcodes/clock.xml">
<!ENTITY opcodescngoto SYSTEM "opcodes/cngoto.xml">
<!ENTITY opcodescomb SYSTEM "opcodes/comb.xml">
+<!ENTITY opcodescombinv SYSTEM "opcodes/combinv.xml">
+<!ENTITY opcodescompileorc SYSTEM "opcodes/compileorc.xml">
+<!ENTITY opcodescompilestr SYSTEM "opcodes/compilestr.xml">
<!ENTITY opcodescompress SYSTEM "opcodes/compress.xml">
<!ENTITY opcodesconnect SYSTEM "opcodes/connect.xml">
<!ENTITY opcodescontrol SYSTEM "opcodes/control.xml">
<!ENTITY opcodesconvle SYSTEM "opcodes/convle.xml">
<!ENTITY opcodesconvolve SYSTEM "opcodes/convolve.xml">
+<!ENTITY opcodescopya2ftab SYSTEM "opcodes/copya2ftab.xml">
+<!ENTITY opcodescopyf2array SYSTEM "opcodes/copyf2array.xml">
<!ENTITY opcodescosh SYSTEM "opcodes/cosh.xml">
<!ENTITY opcodescosinv SYSTEM "opcodes/cosinv.xml">
<!ENTITY opcodescos SYSTEM "opcodes/cos.xml">
+<!ENTITY opcodescosseg SYSTEM "opcodes/cosseg.xml">
+<!ENTITY opcodescossegb SYSTEM "opcodes/cossegb.xml">
+<!ENTITY opcodescossegr SYSTEM "opcodes/cossegr.xml">
<!ENTITY opcodescps2pch SYSTEM "opcodes/cps2pch.xml">
<!ENTITY opcodescpsmidib SYSTEM "opcodes/cpsmidib.xml">
<!ENTITY opcodescpsmidi SYSTEM "opcodes/cpsmidi.xml">
@@ -276,6 +298,7 @@
<!ENTITY opcodescpstuni SYSTEM "opcodes/cpstuni.xml">
<!ENTITY opcodescpstun SYSTEM "opcodes/cpstun.xml">
<!ENTITY opcodescpsxpch SYSTEM "opcodes/cpsxpch.xml">
+<!ENTITY opcodescpumeter SYSTEM "opcodes/cpumeter.xml">
<!ENTITY opcodescpuprc SYSTEM "opcodes/cpuprc.xml">
<!ENTITY opcodescross2 SYSTEM "opcodes/cross2.xml">
<!ENTITY opcodescrossfm SYSTEM "opcodes/crossfm.xml">
@@ -332,6 +355,8 @@
<!ENTITY opcodesdumpk4 SYSTEM "opcodes/dumpk4.xml">
<!ENTITY opcodesdumpk SYSTEM "opcodes/dumpk.xml">
<!ENTITY opcodesduserrnd SYSTEM "opcodes/duserrnd.xml">
+<!ENTITY opcodesdust SYSTEM "opcodes/dust.xml">
+<!ENTITY opcodesdust2 SYSTEM "opcodes/dust2.xml">
<!ENTITY opcodeselseif SYSTEM "opcodes/elseif.xml">
<!ENTITY opcodeselse SYSTEM "opcodes/else.xml">
<!ENTITY opcodesendif SYSTEM "opcodes/endif.xml">
@@ -343,15 +368,25 @@
<!ENTITY opcodesequals SYSTEM "opcodes/equals.xml">
<!ENTITY opcodeseqfil SYSTEM "opcodes/eqfil.xml">
<!ENTITY opcodesevent SYSTEM "opcodes/event.xml">
+<!ENTITY opcodesevalstr SYSTEM "opcodes/evalstr.xml">
+
<!ENTITY opcodesevent_i SYSTEM "opcodes/event_i.xml">
<!ENTITY opcodesexitnow SYSTEM "opcodes/exitnow.xml">
<!ENTITY opcodesexpon SYSTEM "opcodes/expon.xml">
<!ENTITY opcodesexpcurve SYSTEM "opcodes/expcurve.xml">
<!ENTITY opcodesexprand SYSTEM "opcodes/exprand.xml">
+<!ENTITY opcodesexprandi SYSTEM "opcodes/exprandi.xml">
<!ENTITY opcodesexpsega SYSTEM "opcodes/expsega.xml">
+<!ENTITY opcodesexpsegb SYSTEM "opcodes/expsegb.xml">
+<!ENTITY opcodesexpsegba SYSTEM "opcodes/expsegba.xml">
<!ENTITY opcodesexpsegr SYSTEM "opcodes/expsegr.xml">
<!ENTITY opcodesexpseg SYSTEM "opcodes/expseg.xml">
<!ENTITY opcodesexp SYSTEM "opcodes/exp.xml">
+
+<!ENTITY opcodesfaustaudio SYSTEM "opcodes/faustaudio.xml">
+<!ENTITY opcodesfaustcompile SYSTEM "opcodes/faustcompile.xml">
+<!ENTITY opcodesfaustgen SYSTEM "opcodes/faustgen.xml">
+<!ENTITY opcodesfaustctl SYSTEM "opcodes/faustctl.xml">
<!ENTITY opcodesfareylen SYSTEM "opcodes/fareylen.xml">
<!ENTITY opcodesfareyleni SYSTEM "opcodes/fareyleni.xml">
<!ENTITY opcodesficlose SYSTEM "opcodes/ficlose.xml">
@@ -361,6 +396,8 @@
<!ENTITY opcodesfilepeak SYSTEM "opcodes/filepeak.xml">
<!ENTITY opcodesfilesr SYSTEM "opcodes/filesr.xml">
<!ENTITY opcodesfilevalid SYSTEM "opcodes/filevalid.xml">
+<!ENTITY opcodesfillarray SYSTEM "opcodes/fillarray.xml">
+<!ENTITY opcodesarray SYSTEM "opcodes/array.xml">
<!ENTITY opcodesfilter2 SYSTEM "opcodes/filter2.xml">
<!ENTITY opcodesfini SYSTEM "opcodes/fini.xml">
<!ENTITY opcodesfink SYSTEM "opcodes/fink.xml">
@@ -473,6 +510,7 @@
<!ENTITY opcodesfprintks SYSTEM "opcodes/fprintks.xml">
<!ENTITY opcodesfprints SYSTEM "opcodes/fprints.xml">
<!ENTITY opcodesfrac SYSTEM "opcodes/frac.xml">
+<!ENTITY opcodesfractalnoise SYSTEM "opcodes/fractalnoise.xml">
<!ENTITY opcodesfreeverb SYSTEM "opcodes/freeverb.xml">
<!ENTITY opcodesftchnls SYSTEM "opcodes/ftchnls.xml">
<!ENTITY opcodesftconv SYSTEM "opcodes/ftconv.xml">
@@ -492,7 +530,12 @@
<!ENTITY opcodesgain SYSTEM "opcodes/gain.xml">
<!ENTITY opcodesgainslider SYSTEM "opcodes/gainslider.xml">
<!ENTITY opcodesgauss SYSTEM "opcodes/gauss.xml">
+<!ENTITY opcodesgaussi SYSTEM "opcodes/gaussi.xml">
+<!ENTITY opcodesgausstrig SYSTEM "opcodes/gausstrig.xml">
<!ENTITY opcodesgbuzz SYSTEM "opcodes/gbuzz.xml">
+<!ENTITY opcodesgendy SYSTEM "opcodes/gendy.xml">
+<!ENTITY opcodesgendyc SYSTEM "opcodes/gendyc.xml">
+<!ENTITY opcodesgendyx SYSTEM "opcodes/gendyx.xml">
<!ENTITY opcodesgetcfg SYSTEM "opcodes/getcfg.xml">
<!ENTITY opcodesgogobel SYSTEM "opcodes/gogobel.xml">
<!ENTITY opcodesgoto SYSTEM "opcodes/goto.xml">
@@ -527,6 +570,7 @@
<!ENTITY opcodesilinrand SYSTEM "opcodes/ilinrand.xml">
<!ENTITY opcodesinleta SYSTEM "opcodes/inleta.xml">
<!ENTITY opcodesinletk SYSTEM "opcodes/inletk.xml">
+<!ENTITY opcodesinletkid SYSTEM "opcodes/inletkid.xml">
<!ENTITY opcodesinletf SYSTEM "opcodes/inletf.xml">
<!ENTITY opcodesimagecreate SYSTEM "opcodes/imagecreate.xml">
<!ENTITY opcodesimagefree SYSTEM "opcodes/imagefree.xml">
@@ -554,6 +598,7 @@
<!ENTITY opcodesins SYSTEM "opcodes/ins.xml">
<!ENTITY opcodesinsremot SYSTEM "opcodes/insremot.xml">
<!ENTITY opcodesinsglobal SYSTEM "opcodes/insglobal.xml">
+<!ENTITY opcodesinstance SYSTEM "opcodes/instance.xml">
<!ENTITY opcodesinstimek SYSTEM "opcodes/instimek.xml">
<!ENTITY opcodesinstimes SYSTEM "opcodes/instimes.xml">
<!ENTITY opcodesinstr SYSTEM "opcodes/instr.xml">
@@ -606,6 +651,7 @@
<!ENTITY opcodesjacktransport SYSTEM "opcodes/jacktransport.xml">
<!ENTITY opcodesjitter2 SYSTEM "opcodes/jitter2.xml">
<!ENTITY opcodesjitter SYSTEM "opcodes/jitter.xml">
+<!ENTITY opcodesjoystick SYSTEM "opcodes/joystick.xml">
<!ENTITY opcodesjspline SYSTEM "opcodes/jspline.xml">
<!ENTITY opcodeskbetarand SYSTEM "opcodes/kbetarand.xml">
@@ -619,6 +665,7 @@
<!ENTITY opcodeskfilter2 SYSTEM "opcodes/kfilter2.xml">
<!ENTITY opcodeskgauss SYSTEM "opcodes/kgauss.xml">
<!ENTITY opcodeskgoto SYSTEM "opcodes/kgoto.xml">
+<!ENTITY opcodeskill SYSTEM "opcodes/kill.xml">
<!ENTITY opcodesklinrand SYSTEM "opcodes/klinrand.xml">
<!ENTITY opcodeskon SYSTEM "opcodes/kon.xml">
<!ENTITY opcodeskoutat SYSTEM "opcodes/koutat.xml">
@@ -640,6 +687,7 @@
<!ENTITY opcodesktrirand SYSTEM "opcodes/ktrirand.xml">
<!ENTITY opcodeskunirand SYSTEM "opcodes/kunirand.xml">
<!ENTITY opcodeskweibull SYSTEM "opcodes/kweibull.xml">
+<!ENTITY opcodeslenarray SYSTEM "opcodes/lenarray.xml">
<!ENTITY opcodeslessequal SYSTEM "opcodes/lessequal.xml">
<!ENTITY opcodeslessthan SYSTEM "opcodes/lessthan.xml">
<!ENTITY opcodeslfo SYSTEM "opcodes/lfo.xml">
@@ -652,9 +700,11 @@
<!ENTITY opcodeslinrand SYSTEM "opcodes/linrand.xml">
<!ENTITY opcodeslinsegr SYSTEM "opcodes/linsegr.xml">
<!ENTITY opcodeslinseg SYSTEM "opcodes/linseg.xml">
+<!ENTITY opcodeslinsegb SYSTEM "opcodes/linsegb.xml">
<!ENTITY opcodeslocsend SYSTEM "opcodes/locsend.xml">
<!ENTITY opcodeslocsig SYSTEM "opcodes/locsig.xml">
<!ENTITY opcodeslog10 SYSTEM "opcodes/log10.xml">
+<!ENTITY opcodeslog2 SYSTEM "opcodes/log2.xml">
<!ENTITY opcodeslogcurve SYSTEM "opcodes/logcurve.xml">
<!ENTITY opcodeslogbtwo SYSTEM "opcodes/logbtwo.xml">
<!ENTITY opcodeslog SYSTEM "opcodes/log.xml">
@@ -690,6 +740,11 @@
<!ENTITY opcodeslpshold SYSTEM "opcodes/lpshold.xml">
<!ENTITY opcodeslpsholdp SYSTEM "opcodes/lpsholdp.xml">
<!ENTITY opcodeslpslot SYSTEM "opcodes/lpslot.xml">
+
+<!ENTITY opcodeslua_exec SYSTEM "opcodes/lua_exec.xml">
+<!ENTITY opcodeslua_opdef SYSTEM "opcodes/lua_opdef.xml">
+<!ENTITY opcodeslua_opcall SYSTEM "opcodes/lua_opcall.xml">
+
<!ENTITY opcodesmaca SYSTEM "opcodes/maca.xml">
<!ENTITY opcodesmac SYSTEM "opcodes/mac.xml">
<!ENTITY opcodesmadsr SYSTEM "opcodes/madsr.xml">
@@ -704,6 +759,7 @@
<!ENTITY opcodesmaxabs SYSTEM "opcodes/maxabs.xml">
<!ENTITY opcodesmaxabsaccum SYSTEM "opcodes/maxabsaccum.xml">
<!ENTITY opcodesmaxaccum SYSTEM "opcodes/maxaccum.xml">
+<!ENTITY opcodesmaxarray SYSTEM "opcodes/maxarray.xml">
<!ENTITY opcodesmclock SYSTEM "opcodes/mclock.xml">
<!ENTITY opcodesmdelay SYSTEM "opcodes/mdelay.xml">
@@ -731,6 +787,7 @@
<!ENTITY opcodesmidipolyaftertouch SYSTEM "opcodes/midipolyaftertouch.xml">
<!ENTITY opcodesmidiprogramchange SYSTEM "opcodes/midiprogramchange.xml">
<!ENTITY opcodesmiditempo SYSTEM "opcodes/miditempo.xml">
+<!ENTITY opcodesmidifilestatus SYSTEM "opcodes/midifilestatus.xml">
<!ENTITY opcodesmidremot SYSTEM "opcodes/midremot.xml">
<!ENTITY opcodesmidglobal SYSTEM "opcodes/midglobal.xml">
<!ENTITY opcodesmin SYSTEM "opcodes/min.xml">
@@ -738,6 +795,7 @@
<!ENTITY opcodesminabsaccum SYSTEM "opcodes/minabsaccum.xml">
<!ENTITY opcodesminaccum SYSTEM "opcodes/minaccum.xml">
<!ENTITY opcodesmincer SYSTEM "opcodes/mincer.xml">
+<!ENTITY opcodesminarray SYSTEM "opcodes/minarray.xml">
<!ENTITY opcodesmirror SYSTEM "opcodes/mirror.xml">
<!ENTITY opcodesmixersetlevel SYSTEM "opcodes/mixersetlevel.xml">
@@ -757,6 +815,7 @@
<!ENTITY opcodesmoogvcf2 SYSTEM "opcodes/moogvcf2.xml">
<!ENTITY opcodesmoscil SYSTEM "opcodes/moscil.xml">
<!ENTITY opcodesmp3in SYSTEM "opcodes/mp3in.xml">
+<!ENTITY opcodesmp3len SYSTEM "opcodes/mp3len.xml">
<!ENTITY opcodesmpulse SYSTEM "opcodes/mpulse.xml">
<!ENTITY opcodesmrtmsg SYSTEM "opcodes/mrtmsg.xml">
<!ENTITY opcodesmultiplies SYSTEM "opcodes/multiplies.xml">
@@ -767,6 +826,7 @@
<!ENTITY opcodesnchnlsi SYSTEM "opcodes/nchnls_i.xml">
<!ENTITY opcodesnestedap SYSTEM "opcodes/nestedap.xml">
<!ENTITY opcodesnlfilt SYSTEM "opcodes/nlfilt.xml">
+<!ENTITY opcodesnlfilt2 SYSTEM "opcodes/nlfilt2.xml">
<!ENTITY opcodesnoise SYSTEM "opcodes/noise.xml">
<!ENTITY opcodesnoteoff SYSTEM "opcodes/noteoff.xml">
<!ENTITY opcodesnoteondur2 SYSTEM "opcodes/noteondur2.xml">
@@ -833,6 +893,7 @@
<!ENTITY opcodesoutkpc SYSTEM "opcodes/outkpc.xml">
<!ENTITY opcodesoutleta SYSTEM "opcodes/outleta.xml">
<!ENTITY opcodesoutletk SYSTEM "opcodes/outletk.xml">
+<!ENTITY opcodesoutletkid SYSTEM "opcodes/outletkid.xml">
<!ENTITY opcodesoutletf SYSTEM "opcodes/outletf.xml">
<!ENTITY opcodesouto SYSTEM "opcodes/outo.xml">
<!ENTITY opcodesoutq1 SYSTEM "opcodes/outq1.xml">
@@ -880,7 +941,10 @@
<!ENTITY opcodespitchamdf SYSTEM "opcodes/pitchamdf.xml">
<!ENTITY opcodespitch SYSTEM "opcodes/pitch.xml">
<!ENTITY opcodesplanet SYSTEM "opcodes/planet.xml">
+<!ENTITY opcodesplaterev SYSTEM "opcodes/platerev.xml">
+<!ENTITY opcodesplltrack SYSTEM "opcodes/plltrack.xml">
<!ENTITY opcodespluck SYSTEM "opcodes/pluck.xml">
+<!ENTITY opcodesplusbecomes SYSTEM "opcodes/plusbecomes.xml">
<!ENTITY opcodespoisson SYSTEM "opcodes/poisson.xml">
<!ENTITY opcodespolyaft SYSTEM "opcodes/polyaft.xml">
<!ENTITY opcodespolynomial SYSTEM "opcodes/polynomial.xml">
@@ -902,6 +966,10 @@
<!ENTITY opcodesprint SYSTEM "opcodes/print.xml">
<!ENTITY opcodesproduct SYSTEM "opcodes/product.xml">
<!ENTITY opcodespset SYSTEM "opcodes/pset.xml">
+<!ENTITY opcodesptable SYSTEM "opcodes/ptable.xml">
+<!ENTITY opcodesptablei SYSTEM "opcodes/ptablei.xml">
+<!ENTITY opcodesptablew SYSTEM "opcodes/ptablew.xml">
+<!ENTITY opcodesptable3 SYSTEM "opcodes/ptable3.xml">
<!ENTITY opcodesptrack SYSTEM "opcodes/ptrack.xml">
<!ENTITY opcodesp SYSTEM "opcodes/p.xml">
<!ENTITY opcodespush SYSTEM "opcodes/push.xml">
@@ -922,6 +990,7 @@
<!ENTITY opcodespvsdiskin SYSTEM "opcodes/pvsdiskin.xml">
<!ENTITY opcodespvsbuffer SYSTEM "opcodes/pvsbuffer.xml">
<!ENTITY opcodespvsbufread SYSTEM "opcodes/pvsbufread.xml">
+<!ENTITY opcodespvsbufread2 SYSTEM "opcodes/pvsbufread2.xml">
<!ENTITY opcodespvsfreeze SYSTEM "opcodes/pvsfreeze.xml">
<!ENTITY opcodespvsftr SYSTEM "opcodes/pvsftr.xml">
<!ENTITY opcodespvsftw SYSTEM "opcodes/pvsftw.xml">
@@ -947,12 +1016,13 @@
<!ENTITY opcodespvsmix SYSTEM "opcodes/pvsmix.xml">
<!ENTITY opcodespvsmooth SYSTEM "opcodes/pvsmooth.xml">
<!ENTITY opcodespvsfilter SYSTEM "opcodes/pvsfilter.xml">
+<!ENTITY opcodespvsgain SYSTEM "opcodes/pvsgain.xml">
<!ENTITY opcodespvsblur SYSTEM "opcodes/pvsblur.xml">
<!ENTITY opcodespvstencil SYSTEM "opcodes/pvstencil.xml">
<!ENTITY opcodespvsbandp SYSTEM "opcodes/pvsbandp.xml">
<!ENTITY opcodespvsbandr SYSTEM "opcodes/pvsbandr.xml">
<!ENTITY opcodespvstanal SYSTEM "opcodes/pvstanal.xml">
-
+<!ENTITY opcodespvs2tab SYSTEM "opcodes/pvs2tab.xml">
<!ENTITY opcodespyassign SYSTEM "opcodes/pyassign.xml">
<!ENTITY opcodespycall SYSTEM "opcodes/pycall.xml">
<!ENTITY opcodespyeval SYSTEM "opcodes/pyeval.xml">
@@ -960,8 +1030,14 @@
<!ENTITY opcodespyinit SYSTEM "opcodes/pyinit.xml">
<!ENTITY opcodespyrun SYSTEM "opcodes/pyrun.xml">
+<!ENTITY opcodespwd SYSTEM "opcodes/pwd.xml">
+<!ENTITY opcodesqinf SYSTEM "opcodes/qinf.xml">
+<!ENTITY opcodesqnan SYSTEM "opcodes/qnan.xml">
+
+<!ENTITY opcodeshrtfearly SYSTEM "opcodes/hrtfearly.xml">
<!ENTITY opcodeshrtfmove SYSTEM "opcodes/hrtfmove.xml">
<!ENTITY opcodeshrtfmove2 SYSTEM "opcodes/hrtfmove2.xml">
+<!ENTITY opcodeshrtfreverb SYSTEM "opcodes/hrtfreverb.xml">
<!ENTITY opcodeshrtfstat SYSTEM "opcodes/hrtfstat.xml">
<!ENTITY opcodesraises SYSTEM "opcodes/raises.xml">
<!ENTITY opcodesrandh SYSTEM "opcodes/randh.xml">
@@ -972,10 +1048,14 @@
<!ENTITY opcodesrand SYSTEM "opcodes/rand.xml">
<!ENTITY opcodesrbjeq SYSTEM "opcodes/rbjeq.xml">
<!ENTITY opcodesreadclock SYSTEM "opcodes/readclock.xml">
+<!ENTITY opcodesreadf SYSTEM "opcodes/readf.xml">
+<!ENTITY opcodesreadfi SYSTEM "opcodes/readfi.xml">
<!ENTITY opcodesreadk2 SYSTEM "opcodes/readk2.xml">
<!ENTITY opcodesreadk3 SYSTEM "opcodes/readk3.xml">
<!ENTITY opcodesreadk4 SYSTEM "opcodes/readk4.xml">
<!ENTITY opcodesreadk SYSTEM "opcodes/readk.xml">
+<!ENTITY opcodesreadscore SYSTEM "opcodes/readscore.xml">
+<!ENTITY opcodesreadscratch SYSTEM "opcodes/readscratch.xml">
<!ENTITY opcodesreinit SYSTEM "opcodes/reinit.xml">
<!ENTITY opcodesrelease SYSTEM "opcodes/release.xml">
<!ENTITY opcodesremove SYSTEM "opcodes/remove.xml">
@@ -1007,6 +1087,7 @@
<!ENTITY opcodessamphold SYSTEM "opcodes/samphold.xml">
<!ENTITY opcodessandpaper SYSTEM "opcodes/sandpaper.xml">
<!ENTITY opcodesscale SYSTEM "opcodes/scale.xml">
+<!ENTITY opcodesscalearray SYSTEM "opcodes/scalearray.xml">
<!ENTITY opcodesscanhammer SYSTEM "opcodes/scanhammer.xml">
<!ENTITY opcodesscans SYSTEM "opcodes/scans.xml">
<!ENTITY opcodesscantable SYSTEM "opcodes/scantable.xml">
@@ -1024,6 +1105,13 @@
<!ENTITY opcodessense SYSTEM "opcodes/sense.xml">
<!ENTITY opcodesseqtime SYSTEM "opcodes/seqtime.xml">
<!ENTITY opcodesseqtime2 SYSTEM "opcodes/seqtime2.xml">
+<!ENTITY opcodesserialBegin SYSTEM "opcodes/serialBegin.xml">
+<!ENTITY opcodesserialEnd SYSTEM "opcodes/serialEnd.xml">
+<!ENTITY opcodesserialFlush SYSTEM "opcodes/serialFlush.xml">
+<!ENTITY opcodesserialPrint SYSTEM "opcodes/serialPrint.xml">
+<!ENTITY opcodesserialRead SYSTEM "opcodes/serialRead.xml">
+<!ENTITY opcodesserialWrite_i SYSTEM "opcodes/serialWrite_i.xml">
+<!ENTITY opcodesserialWrite SYSTEM "opcodes/serialWrite.xml">
<!ENTITY opcodessetctrl SYSTEM "opcodes/setctrl.xml">
<!ENTITY opcodessetksmps SYSTEM "opcodes/setksmps.xml">
<!ENTITY opcodessetscorepos SYSTEM "opcodes/setscorepos.xml">
@@ -1042,6 +1130,7 @@
<!ENTITY opcodessfplist SYSTEM "opcodes/sfplist.xml">
<!ENTITY opcodessfpreset SYSTEM "opcodes/sfpreset.xml">
<!ENTITY opcodesshaker SYSTEM "opcodes/shaker.xml">
+<!ENTITY opcodessignum SYSTEM "opcodes/signum.xml">
<!ENTITY opcodessinh SYSTEM "opcodes/sinh.xml">
<!ENTITY opcodessininv SYSTEM "opcodes/sininv.xml">
<!ENTITY opcodessin SYSTEM "opcodes/sin.xml">
@@ -1125,9 +1214,12 @@
<!ENTITY opcodesSTKwhistle SYSTEM "opcodes/STKWhistle.xml">
<!ENTITY opcodesSTKwurley SYSTEM "opcodes/STKWurley.xml">
+<!ENTITY opcodesstrfromurl SYSTEM "opcodes/strfromurl.xml">
<!ENTITY opcodesstreson SYSTEM "opcodes/streson.xml">
<!ENTITY opcodesstrset SYSTEM "opcodes/strset.xml">
+<!ENTITY opcodesreturn SYSTEM "opcodes/return.xml">
+
<!ENTITY opcodesstrchar SYSTEM "opcodes/strchar.xml">
<!ENTITY opcodesstrchark SYSTEM "opcodes/strchark.xml">
<!ENTITY opcodesstrcpy SYSTEM "opcodes/strcpy.xml">
@@ -1162,11 +1254,14 @@
<!ENTITY opcodessubinstrinit SYSTEM "opcodes/subinstrinit.xml">
<!ENTITY opcodessubtracts SYSTEM "opcodes/subtracts.xml">
<!ENTITY opcodessum SYSTEM "opcodes/sum.xml">
+<!ENTITY opcodessumarray SYSTEM "opcodes/sumarray.xml">
<!ENTITY opcodessvfilter SYSTEM "opcodes/svfilter.xml">
<!ENTITY opcodessyncgrain SYSTEM "opcodes/syncgrain.xml">
<!ENTITY opcodessyncloop SYSTEM "opcodes/syncloop.xml">
<!ENTITY opcodesdiskgrain SYSTEM "opcodes/diskgrain.xml">
<!ENTITY opcodessystem SYSTEM "opcodes/system.xml">
+<!ENTITY opcodesgenarray SYSTEM "opcodes/genarray.xml">
+<!ENTITY opcodesgenarray_i SYSTEM "opcodes/genarray_i.xml">
<!ENTITY opcodestable3 SYSTEM "opcodes/table3.xml">
<!ENTITY opcodestablecopy SYSTEM "opcodes/tablecopy.xml">
<!ENTITY opcodestablefilter SYSTEM "opcodes/tablefilter.xml">
@@ -1190,13 +1285,16 @@
<!ENTITY opcodestablew SYSTEM "opcodes/tablew.xml">
<!ENTITY opcodestablexkt SYSTEM "opcodes/tablexkt.xml">
<!ENTITY opcodestablexseg SYSTEM "opcodes/tablexseg.xml">
+<!ENTITY opcodesmaparray SYSTEM "opcodes/maparray.xml">
<!ENTITY opcodestabmorph SYSTEM "opcodes/tabmorph.xml">
<!ENTITY opcodestabmorpha SYSTEM "opcodes/tabmorpha.xml">
<!ENTITY opcodestabmorphak SYSTEM "opcodes/tabmorphak.xml">
<!ENTITY opcodestabmorphi SYSTEM "opcodes/tabmorphi.xml">
<!ENTITY opcodestabplay SYSTEM "opcodes/tabplay.xml">
+<!ENTITY opcodesslicearray SYSTEM "opcodes/slicearray.xml">
<!ENTITY opcodestabsum SYSTEM "opcodes/tabsum.xml">
<!ENTITY opcodestabrec SYSTEM "opcodes/tabrec.xml">
+<!ENTITY opcodestab2pvs SYSTEM "opcodes/tab2pvs.xml">
<!ENTITY opcodestb SYSTEM "opcodes/tb.xml">
<!ENTITY opcodestab SYSTEM "opcodes/tab.xml">
<!ENTITY opcodestambourine SYSTEM "opcodes/tambourine.xml">
@@ -1223,6 +1321,7 @@
<!ENTITY opcodestonex SYSTEM "opcodes/tonex.xml">
<!ENTITY opcodestrandom SYSTEM "opcodes/trandom.xml">
<!ENTITY opcodestranseg SYSTEM "opcodes/transeg.xml">
+<!ENTITY opcodestransegb SYSTEM "opcodes/transegb.xml">
<!ENTITY opcodestransegr SYSTEM "opcodes/transegr.xml">
<!ENTITY opcodestrigger SYSTEM "opcodes/trigger.xml">
<!ENTITY opcodestrigseq SYSTEM "opcodes/trigseq.xml">
@@ -1243,6 +1342,7 @@
<!ENTITY opcodesturnon SYSTEM "opcodes/turnon.xml">
<!ENTITY opcodesundef SYSTEM "opcodes/undef.xml">
<!ENTITY opcodesunirand SYSTEM "opcodes/unirand.xml">
+<!ENTITY opcodesuntil SYSTEM "opcodes/until.xml">
<!ENTITY opcodesupsamp SYSTEM "opcodes/upsamp.xml">
<!ENTITY opcodesurd SYSTEM "opcodes/urd.xml">
<!ENTITY opcodesurandom SYSTEM "opcodes/urandom.xml">
@@ -1254,6 +1354,10 @@
<!ENTITY opcodesvaget SYSTEM "opcodes/vaget.xml">
<!ENTITY opcodesvalpass SYSTEM "opcodes/valpass.xml">
<!ENTITY opcodesvaset SYSTEM "opcodes/vaset.xml">
+<!ENTITY opcodesvbapmove SYSTEM "opcodes/vbapmove.xml">
+<!ENTITY opcodesvbap SYSTEM "opcodes/vbap.xml">
+<!ENTITY opcodesvbapg SYSTEM "opcodes/vbapg.xml">
+<!ENTITY opcodesvbapgmove SYSTEM "opcodes/vbapgmove.xml">
<!ENTITY opcodesvbap16move SYSTEM "opcodes/vbap16move.xml">
<!ENTITY opcodesvbap16 SYSTEM "opcodes/vbap16.xml">
<!ENTITY opcodesvbap4move SYSTEM "opcodes/vbap4move.xml">
@@ -1362,6 +1466,7 @@
<!ENTITY opcodeswguide1 SYSTEM "opcodes/wguide1.xml">
<!ENTITY opcodeswguide2 SYSTEM "opcodes/wguide2.xml">
<!ENTITY opcodeswrap SYSTEM "opcodes/wrap.xml">
+<!ENTITY opcodeswritescratch SYSTEM "opcodes/writescratch.xml">
<!ENTITY opcodeswterrain SYSTEM "opcodes/wterrain.xml">
<!ENTITY opcodesxadsr SYSTEM "opcodes/xadsr.xml">
<!ENTITY opcodesxin SYSTEM "opcodes/xin.xml">
@@ -1401,6 +1506,7 @@
<!--<!ENTITY orchvarinit SYSTEM "orch/varinit.xml">-->
<!ENTITY orchnamedinstruments SYSTEM "orch/namedInstruments.xml">
<!ENTITY orchUDO SYSTEM "orch/UDO.xml">
+<!ENTITY orchtab SYSTEM "orch/tvars.xml">
<!ENTITY pitch SYSTEM "pitch/top.xml">
<!ENTITY pitchfuncs SYSTEM "pitch/funcs.xml">
@@ -1474,6 +1580,7 @@
<!ENTITY scoregensexp SYSTEM "scoregens/genexp.xml">
<!ENTITY scoregenssone SYSTEM "scoregens/gensone.xml">
<!ENTITY scoregensfarey SYSTEM "scoregens/genfarey.xml">
+<!ENTITY scoregenswave SYSTEM "scoregens/genwave.xml">
<!ENTITY scoregensi SYSTEM "scoregens/i.xml">
<!ENTITY scoregensm SYSTEM "scoregens/m.xml">
<!ENTITY scoregensn SYSTEM "scoregens/n.xml">
@@ -1560,6 +1667,7 @@
<!ENTITY utilitylpanal SYSTEM "utility/lpanal.xml">
<!ENTITY utilityatsa SYSTEM "utility/atsa.xml">
<!ENTITY utilitymakecsd SYSTEM "utility/makecsd.xml">
+<!ENTITY utilitymkdb SYSTEM "utility/mkdb.xml">
<!ENTITY utilitymixer SYSTEM "utility/mixer.xml">
<!ENTITY utilityother SYSTEM "utility/other.xml">
<!ENTITY utilitypvanal SYSTEM "utility/pvanal.xml">
@@ -1583,7 +1691,9 @@
<!ENTITY zak SYSTEM "zak/top.xml">
-<!ENTITY csoundversion "5.13">
+<!ENTITY deprecated SYSTEM "deprecated/top.xml">
+
+<!ENTITY csoundversion "6.02">
]>
<book id="index" lang="en">
@@ -1694,7 +1804,6 @@
&orch;
&score;
&oviewfrontends;
- &tclcsound;
&oviewbuilding;
&oviewlinks;
@@ -1722,8 +1831,10 @@
&mixer;
&signalflowgraph;
&jacko;
+ &lua;
&py;
&imageopcodes;
+ &stkopcodes;
&miscopcodes;
</part>
@@ -1732,10 +1843,11 @@
<title>Reference</title>
&opcodes;
&scoregens;
+ &deprecated;
&utility;
&cscore;
- &beats;
- &csound5extending;
+ &csbeats;
+ <!-- &csound5extending; -->
</part>
&misc;
diff --git a/manualXO.xml b/manualXO.xml
deleted file mode 100644
index 3e9571a..0000000
--- a/manualXO.xml
+++ /dev/null
@@ -1,1656 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-
-<!--<!DOCTYPE book SYSTEM "docbook42/docbookx.dtd" [-->
-
-<!-- INTRO ENTITIES GO HERE -->
-
-<!ENTITY pface SYSTEM "preface/topXO.xml">
-<!--<!ENTITY pfaceacknowledgements SYSTEM "preface/acknowledgements.xml">
-<!ENTITY pfacecopy SYSTEM "preface/copy.xml">-->
-<!--<!ENTITY pfacecsoundav SYSTEM "preface/csoundav.xml">-->
-<!ENTITY pfacehistory SYSTEM "preface/historyXO.xml">
-<!--<!ENTITY pfacename SYSTEM "preface/name.xml">-->
-<!ENTITY pfacepreface SYSTEM "preface/prefaceXO.xml"><!--
-<!ENTITY pfacescope SYSTEM "preface/scope.xml">-->
-<!ENTITY pfacegettingstarted SYSTEM "preface/gettingstartedXO.xml">
-<!ENTITY pfacetootorials SYSTEM "preface/tootorialsXO.xml">
-<!ENTITY pfacetoot1 SYSTEM "preface/toot1XO.xml">
-<!ENTITY pfacetoot2 SYSTEM "preface/toot2XO.xml">
-<!ENTITY pfacetoot3 SYSTEM "preface/toot3XO.xml">
-<!ENTITY pfacetoot4 SYSTEM "preface/toot4XO.xml">
-<!ENTITY pfacetoot5 SYSTEM "preface/toot5XO.xml">
-<!ENTITY pfacetoot6 SYSTEM "preface/toot6XO.xml">
-<!ENTITY pfacetoot7 SYSTEM "preface/toot7XO.xml">
-<!ENTITY pfacetoot8 SYSTEM "preface/toot8XO.xml">
-<!ENTITY pfacetoot9 SYSTEM "preface/toot9XO.xml">
-<!ENTITY pfacetoot10 SYSTEM "preface/toot10XO.xml">
-<!-- <!ENTITY pfacewhatsnew SYSTEM "preface/whatsnew.xml"> -->
-
-<!-- OVERVIEW ENTITIES GO HERE -->
-<!ENTITY oviewusersguide SYSTEM "overview/usersguide.xml">
-<!-- <!ENTITY oviewintroduction SYSTEM "overview/introduction.xml"> -->
-<!--<!ENTITY oviewrecentdev SYSTEM "overview/recentdev.xml">-->
-<!-- <!ENTITY oviewconfiguring SYSTEM "overview/configuring.xml"> -->
-<!ENTITY oviewusing SYSTEM "overview/usingXO.xml">
-<!ENTITY oviewdesign SYSTEM "overview/design.xml">
-<!--<!ENTITY oviewfrontends SYSTEM "overview/frontends.xml">
-<!ENTITY oviewbuilding SYSTEM "overview/building.xml">-->
-<!ENTITY oviewlinks SYSTEM "overview/links.xml">
-<!--<!ENTITY oviewrealtimelinux SYSTEM "overview/realtimelinux.xml">
-<!ENTITY oviewrealtimewindows SYSTEM "overview/realtimewindows.xml">
-<!ENTITY oviewrealtimemac SYSTEM "overview/realtimemac.xml">-->
-
-<!-- CSOUND 5-->
-<!--<!ENTITY csound5licenses SYSTEM "csound5/licenses.xml">-->
-<!ENTITY csound5preface SYSTEM "csound5/preface.xml">
-<!ENTITY csound5acknowledgments SYSTEM "csound5/acknowledgments.xml">
-
-<!-- <!ENTITY csound5extending SYSTEM "csound5/extending.xml"> -->
-
-<!-- <!ENTITY csound5opcodesSection SYSTEM "overview/cs5opcodes.xml"> -->
-<!ENTITY py SYSTEM "csound5/opcodes/py.xml">
-<!ENTITY mixer SYSTEM "csound5/opcodes/mixer.xml">
-
-
-<!--<!ENTITY opcodesvstinit SYSTEM "opcodes/vstinit.xml">
-<!ENTITY opcodesvstinfo SYSTEM "opcodes/vstinfo.xml">
-<!ENTITY opcodesvstaudio SYSTEM "opcodes/vstaudio.xml">
-<!ENTITY opcodesvstbankload SYSTEM "opcodes/vstbankload.xml">
-<!ENTITY opcodesvstedit SYSTEM "opcodes/vstedit.xml">
-<!ENTITY opcodesvstmidiout SYSTEM "opcodes/vstmidiout.xml">
-<!ENTITY opcodesvstnote SYSTEM "opcodes/vstnote.xml">
-<!ENTITY opcodesvstparamset SYSTEM "opcodes/vstparamset.xml">
-<!ENTITY opcodesvstprogset SYSTEM "opcodes/vstprogset.xml">-->
-
-<!--<!ENTITY plugin SYSTEM "plugin/top.xml">
-<!ENTITY plugindssi4cs SYSTEM "plugin/dssi4cs.xml">
-<!ENTITY pluginvst4cs SYSTEM "plugin/vst4cs.xml">-->
-
-<!ENTITY oscnetwork SYSTEM "oscnetwork/top.xml">
-<!ENTITY OSC SYSTEM "oscnetwork/OSC.xml">
-<!ENTITY Network SYSTEM "oscnetwork/Network.xml">
-<!ENTITY Remote SYSTEM "oscnetwork/Remote.xml">
-
-<!-- <!ENTITY tclcsound SYSTEM "csound5/tclcsound.xml"> -->
-
-<!ENTITY command SYSTEM "command/topXO.xml">
-<!ENTITY commanddesc SYSTEM "command/descXO.xml">
-<!ENTITY commandflags SYSTEM "command/flags.xml">
-<!ENTITY commandflagscategory SYSTEM "command/flagscategoryXO.xml">
-<!ENTITY commandenvironment SYSTEM "command/environmentXO.xml">
-<!--<!ENTITY commandpreproc SYSTEM "command/preproc.xml">-->
-<!ENTITY commandunifile SYSTEM "command/unifile.xml">
-
-<!ENTITY control SYSTEM "control/topXO.xml">
-<!ENTITY controlclockctl SYSTEM "control/clockctl.xml">
-<!ENTITY controlconditional SYSTEM "control/conditional.xml">
-<!ENTITY controldurctl SYSTEM "control/durctl.xml">
-<!--<!ENTITY controlfltkappearance SYSTEM "control/fltkappearance.xml">
-<!ENTITY controlfltkcontainers SYSTEM "control/fltkcontainers.xml">
-<!ENTITY controlfltkgeneral SYSTEM "control/fltkgeneral.xml">
-<!ENTITY controlfltkintro SYSTEM "control/fltkintro.xml">
-<!ENTITY controlfltkother SYSTEM "control/fltkother.xml">
-<!ENTITY controlfltkvaluators SYSTEM "control/fltkvaluators.xml">-->
-<!ENTITY controlinvocat SYSTEM "control/invocat.xml">
-<!ENTITY controlpgmctl SYSTEM "control/pgmctl.xml">
-<!ENTITY controlrealtime SYSTEM "control/realtime.xml">
-<!ENTITY controlreinitn SYSTEM "control/reinitn.xml">
-<!ENTITY controlsensing SYSTEM "control/sensingXO.xml">
-<!ENTITY controlstacks SYSTEM "control/stacks.xml">
-<!ENTITY controlsubinstr SYSTEM "control/subinstr.xml">
-<!ENTITY controltimeread SYSTEM "control/timeread.xml">
-
-<!ENTITY imageopcodes SYSTEM "imageopcodes/top.xml">
-<!ENTITY miscopcodes SYSTEM "miscopcodes/top.xml">
-
-<!--<!ENTITY cscore SYSTEM "cscore/top.xml">
-<!ENTITY cscoreadvancd SYSTEM "cscore/advancd.xml">
-<!ENTITY cscorecompile SYSTEM "cscore/compile.xml">
-<!ENTITY cscoreevents SYSTEM "cscore/events.xml">
-<!ENTITY cscoremain SYSTEM "cscore/main.xml">-->
-
-<!ENTITY math SYSTEM "math/top.xml">
-<!ENTITY mathamp SYSTEM "math/amp.xml">
-<!ENTITY mathartlogic SYSTEM "math/artlogic.xml">
-<!ENTITY mathmathfunc SYSTEM "math/mathfunc.xml">
-<!ENTITY mathopeqfunc SYSTEM "math/opeqfunc.xml">
-<!ENTITY mathrndfunc SYSTEM "math/rndfunc.xml">
-<!ENTITY mathtrig SYSTEM "math/trig.xml">
-
-<!ENTITY midi SYSTEM "midi/topXO.xml">
-<!-- <!ENTITY midivirtual SYSTEM "midi/virtual.xml"> -->
-<!ENTITY midiinput SYSTEM "midi/input.xml">
-<!ENTITY midioutput SYSTEM "midi/output.xml">
-<!ENTITY midigeneric SYSTEM "midi/generic.xml">
-<!ENTITY midiconvert SYSTEM "midi/convert.xml">
-<!ENTITY midiextender SYSTEM "midi/extender.xml">
-<!ENTITY midionoff SYSTEM "midi/onoff.xml">
-<!ENTITY midiinterop SYSTEM "midi/interop.xml">
-<!ENTITY midirealtime SYSTEM "midi/realtime.xml">
-<!ENTITY midisliderbk SYSTEM "midi/sliderbkXO.xml">
-
-<!ENTITY misc SYSTEM "misc/topXO.xml">
-<!ENTITY miscamp SYSTEM "misc/amp.xml">
-<!-- <!ENTITY misccsound64 SYSTEM "misc/csound64.xml"> -->
-<!ENTITY miscglossary SYSTEM "misc/glossary.xml">
-<!ENTITY miscformants SYSTEM "misc/formants.xml">
-<!ENTITY miscpitch SYSTEM "misc/pitch.xml">
-<!ENTITY miscquickref SYSTEM "misc/quickrefXO.xml">
-<!ENTITY miscsf2 SYSTEM "misc/sf2.xml">
-<!ENTITY miscwindows SYSTEM "misc/windows.xml">
-<!ENTITY miscmodalfreq SYSTEM "misc/modalfreq.xml">
-
-<!ENTITY namebarry "Barry L. Vercoe">
-<!ENTITY namedavid "David M. Boothe">
-<!ENTITY namegabriel "Gabriel Maldonado">
-<!ENTITY namehans "Hans Mikelson">
-<!ENTITY nameistvan "Istvan Varga">
-<!ENTITY namejohn "John ffitch">
-<!ENTITY namekanata "Kanata Motohashi">
-<!ENTITY namekevin "Kevin Conder">
-<!ENTITY nameluis "Luis Jure">
-<!ENTITY namematt "Matt Ingalls">
-<!ENTITY nameoeyvind "&Oslash;yvind Brandtsegg">
-<!ENTITY namemichael "Michael Gogins">
-<!ENTITY namemike "Mike Berry">
-<!ENTITY nameparis "Paris Smaragdis">
-<!ENTITY nameperry "Perry Cook">
-<!ENTITY namerasmus "Rasmus Ekman">
-<!ENTITY namerichard "Richard Dobson">
-<!ENTITY namesean "Sean Costello">
-<!ENTITY namesteven "Steven Yi">
-<!ENTITY nameandres "Andr&eacute;s Cabrera">
-<!ENTITY nameanthony "Anthony Kozar">
-<!ENTITY namepinot "Fran&ccedil;ois Pinot">
-<!ENTITY namevictor "Victor Lazzarini">
-
-<!ENTITY opcodes SYSTEM "opcodes/topXO.xml">
-<!ENTITY opcodes0dbfs SYSTEM "opcodes/0dbfs.xml">
-<!--<!ENTITY opcodesabetarand SYSTEM "opcodes/abetarand.xml">
-<!ENTITY opcodesabexprnd SYSTEM "opcodes/abexprnd.xml">-->
-<!ENTITY opcodesabs SYSTEM "opcodes/abs.xml">
-<!-- <!ENTITY opcodesacauchy SYSTEM "opcodes/acauchy.xml"> -->
-<!ENTITY opcodesactive SYSTEM "opcodes/active.xml">
-<!ENTITY opcodesadds SYSTEM "opcodes/adds.xml">
-<!ENTITY opcodesadsr SYSTEM "opcodes/adsr.xml">
-<!ENTITY opcodesadsyn SYSTEM "opcodes/adsyn.xml">
-<!ENTITY opcodesadsynt SYSTEM "opcodes/adsynt.xml">
-<!ENTITY opcodesadsynt2 SYSTEM "opcodes/adsynt2.xml">
-<!-- <!ENTITY opcodesaexprand SYSTEM "opcodes/aexprand.xml"> -->
-<!ENTITY opcodesaftouch SYSTEM "opcodes/aftouch.xml">
-<!--<!ENTITY opcodesagauss SYSTEM "opcodes/agauss.xml">
-<!ENTITY opcodesagogobel SYSTEM "opcodes/agogobel.xml">
-<!ENTITY opcodesalinrand SYSTEM "opcodes/alinrand.xml">-->
-<!ENTITY opcodesalpass SYSTEM "opcodes/alpass.xml">
-<!ENTITY opcodesampdbfs SYSTEM "opcodes/ampdbfs.xml">
-<!ENTITY opcodesampdb SYSTEM "opcodes/ampdb.xml">
-<!ENTITY opcodesampmidi SYSTEM "opcodes/ampmidi.xml">
-<!--<!ENTITY opcodesampmidid SYSTEM "opcodes/ampmidid.xml">
-<!ENTITY opcodesapcauchy SYSTEM "opcodes/apcauchy.xml">
-<!ENTITY opcodesapoisson SYSTEM "opcodes/apoisson.xml">
-<!ENTITY opcodesapow SYSTEM "opcodes/apow.xml">-->
-<!ENTITY opcodesaresonk SYSTEM "opcodes/aresonk.xml">
-<!ENTITY opcodesareson SYSTEM "opcodes/areson.xml">
-<!ENTITY opcodesassign SYSTEM "opcodes/assign.xml">
-<!ENTITY opcodesatonek SYSTEM "opcodes/atonek.xml">
-<!ENTITY opcodesatone SYSTEM "opcodes/atone.xml">
-<!ENTITY opcodesatonex SYSTEM "opcodes/atonex.xml">
-<!--<!ENTITY opcodesatrirand SYSTEM "opcodes/atrirand.xml">
-<!ENTITY opcodesaunirand SYSTEM "opcodes/aunirand.xml">
-<!ENTITY opcodesaweibull SYSTEM "opcodes/aweibull.xml">-->
-
-<!--
-<!ENTITY opcodesATSadd SYSTEM "opcodes/ATSadd.xml">
-<!ENTITY opcodesATSaddnz SYSTEM "opcodes/ATSaddnz.xml">
-<!ENTITY opcodesATSbufread SYSTEM "opcodes/ATSbufread.xml">
-<!ENTITY opcodesATScross SYSTEM "opcodes/ATScross.xml">
-<!ENTITY opcodesATSinfo SYSTEM "opcodes/ATSinfo.xml">
-<!ENTITY opcodesATSinterpread SYSTEM "opcodes/ATSinterpread.xml">
-<!ENTITY opcodesATSread SYSTEM "opcodes/ATSread.xml">
-<!ENTITY opcodesATSreadnz SYSTEM "opcodes/ATSreadnz.xml">
-<!ENTITY opcodesATSpartialtap SYSTEM "opcodes/ATSpartialtap.xml">
-<!ENTITY opcodesATSsinnoi SYSTEM "opcodes/ATSsinnoi.xml">-->
-
-<!-- <!ENTITY opcodesbabo SYSTEM "opcodes/babo.xml"> -->
-<!ENTITY opcodesbalance SYSTEM "opcodes/balance.xml">
-<!ENTITY opcodesbamboo SYSTEM "opcodes/bamboo.xml">
-<!ENTITY opcodesbarmodel SYSTEM "opcodes/barmodel.xml">
-<!ENTITY opcodesbbcutm SYSTEM "opcodes/bbcutm.xml">
-<!ENTITY opcodesbbcuts SYSTEM "opcodes/bbcuts.xml">
-<!ENTITY opcodesbetarand SYSTEM "opcodes/betarand.xml">
-<!ENTITY opcodesbexprnd SYSTEM "opcodes/bexprnd.xml">
-
-<!--<!ENTITY opcodesbformenc SYSTEM "opcodes/bformenc.xml">
-<!ENTITY opcodesbformenc1 SYSTEM "opcodes/bformenc1.xml">
-<!ENTITY opcodesbformdec SYSTEM "opcodes/bformdec.xml">
-<!ENTITY opcodesbformdec1 SYSTEM "opcodes/bformdec1.xml">-->
-
-<!ENTITY opcodesbinit SYSTEM "opcodes/binit.xml">
-<!ENTITY opcodesbiquada SYSTEM "opcodes/biquada.xml">
-<!ENTITY opcodesbiquad SYSTEM "opcodes/biquad.xml">
-<!ENTITY opcodesbirnd SYSTEM "opcodes/birnd.xml">
-<!ENTITY opcodesbqrez SYSTEM "opcodes/bqrez.xml">
-<!ENTITY opcodesbutbp SYSTEM "opcodes/butbp.xml">
-<!ENTITY opcodesbutbr SYSTEM "opcodes/butbr.xml">
-<!ENTITY opcodesbuthp SYSTEM "opcodes/buthp.xml">
-<!ENTITY opcodesbutlp SYSTEM "opcodes/butlp.xml">
-<!ENTITY opcodesbutterbp SYSTEM "opcodes/butterbp.xml">
-<!ENTITY opcodesbutterbr SYSTEM "opcodes/butterbr.xml">
-<!ENTITY opcodesbutterhp SYSTEM "opcodes/butterhp.xml">
-<!ENTITY opcodesbutterlp SYSTEM "opcodes/butterlp.xml">
-<!-- <!ENTITY opcodesbutton SYSTEM "opcodes/button.xml"> -->
-<!ENTITY opcodesbuzz SYSTEM "opcodes/buzz.xml">
-<!ENTITY opcodescabasa SYSTEM "opcodes/cabasa.xml">
-<!ENTITY opcodescauchy SYSTEM "opcodes/cauchy.xml">
-<!ENTITY opcodescent SYSTEM "opcodes/cent.xml">
-<!ENTITY opcodesceil SYSTEM "opcodes/ceil.xml">
-<!ENTITY opcodescggoto SYSTEM "opcodes/cggoto.xml">
-<!ENTITY opcodeschanctrl SYSTEM "opcodes/chanctrl.xml">
-<!ENTITY opcodeschanged SYSTEM "opcodes/changed.xml">
-<!ENTITY opcodeschani SYSTEM "opcodes/chani.xml">
-<!ENTITY opcodeschano SYSTEM "opcodes/chano.xml">
-<!ENTITY opcodeschebyshevpoly SYSTEM "opcodes/chebyshevpoly.xml">
-<!ENTITY opcodeschn SYSTEM "opcodes/chn.xml">
-<!ENTITY opcodeschnexport SYSTEM "opcodes/chnexport.xml">
-<!ENTITY opcodeschnget SYSTEM "opcodes/chnget.xml">
-<!ENTITY opcodeschnparams SYSTEM "opcodes/chnparams.xml">
-<!ENTITY opcodeschnset SYSTEM "opcodes/chnset.xml">
-<!ENTITY opcodeschnmix SYSTEM "opcodes/chnmix.xml">
-<!ENTITY opcodeschnclear SYSTEM "opcodes/chnclear.xml">
-<!-- <!ENTITY opcodescheckbox SYSTEM "opcodes/checkbox.xml"> -->
-<!ENTITY opcodescigoto SYSTEM "opcodes/cigoto.xml">
-<!ENTITY opcodesckgoto SYSTEM "opcodes/ckgoto.xml">
-<!ENTITY opcodesclear SYSTEM "opcodes/clear.xml">
-<!ENTITY opcodesclfilt SYSTEM "opcodes/clfilt.xml">
-<!ENTITY opcodesclip SYSTEM "opcodes/clip.xml">
-<!ENTITY opcodesclockoff SYSTEM "opcodes/clockoff.xml">
-<!ENTITY opcodesclockon SYSTEM "opcodes/clockon.xml">
-<!-- <!ENTITY opcodesclock SYSTEM "opcodes/clock.xml"> -->
-<!ENTITY opcodescngoto SYSTEM "opcodes/cngoto.xml">
-<!ENTITY opcodescomb SYSTEM "opcodes/comb.xml">
-<!ENTITY opcodescompress SYSTEM "opcodes/compress.xml">
-<!-- <!ENTITY opcodescontrol SYSTEM "opcodes/control.xml"> -->
-<!ENTITY opcodesconvle SYSTEM "opcodes/convle.xml">
-<!ENTITY opcodesconvolve SYSTEM "opcodes/convolve.xml">
-<!ENTITY opcodescosh SYSTEM "opcodes/cosh.xml">
-<!ENTITY opcodescosinv SYSTEM "opcodes/cosinv.xml">
-<!ENTITY opcodescos SYSTEM "opcodes/cos.xml">
-<!ENTITY opcodescps2pch SYSTEM "opcodes/cps2pch.xml">
-<!ENTITY opcodescpsmidib SYSTEM "opcodes/cpsmidib.xml">
-<!ENTITY opcodescpsmidi SYSTEM "opcodes/cpsmidi.xml">
-<!ENTITY opcodescpsmidinn SYSTEM "opcodes/cpsmidinn.xml">
-<!ENTITY opcodescpsoct SYSTEM "opcodes/cpsoct.xml">
-<!ENTITY opcodescpspch SYSTEM "opcodes/cpspch.xml">
-<!ENTITY opcodescpstmid SYSTEM "opcodes/cpstmid.xml">
-<!ENTITY opcodescpstuni SYSTEM "opcodes/cpstuni.xml">
-<!ENTITY opcodescpstun SYSTEM "opcodes/cpstun.xml">
-<!ENTITY opcodescpsxpch SYSTEM "opcodes/cpsxpch.xml">
-<!ENTITY opcodescpuprc SYSTEM "opcodes/cpuprc.xml">
-<!ENTITY opcodescross2 SYSTEM "opcodes/cross2.xml">
-<!ENTITY opcodescrunch SYSTEM "opcodes/crunch.xml">
-<!ENTITY opcodesctrl14 SYSTEM "opcodes/ctrl14.xml">
-<!ENTITY opcodesctrl21 SYSTEM "opcodes/ctrl21.xml">
-<!ENTITY opcodesctrl7 SYSTEM "opcodes/ctrl7.xml">
-<!ENTITY opcodesctrlinit SYSTEM "opcodes/ctrlinit.xml">
-<!ENTITY opcodescuserrnd SYSTEM "opcodes/cuserrnd.xml">
-<!ENTITY opcodesdam SYSTEM "opcodes/dam.xml">
-<!ENTITY opcodesdate SYSTEM "opcodes/date.xml">
-<!ENTITY opcodesdates SYSTEM "opcodes/dates.xml">
-<!ENTITY opcodesdbamp SYSTEM "opcodes/dbamp.xml">
-<!ENTITY opcodesdbfsamp SYSTEM "opcodes/dbfsamp.xml">
-<!ENTITY opcodesdb SYSTEM "opcodes/db.xml">
-<!ENTITY opcodesdcblock SYSTEM "opcodes/dcblock.xml">
-<!ENTITY opcodesdcblock2 SYSTEM "opcodes/dcblock2.xml">
-<!ENTITY opcodesdconv SYSTEM "opcodes/dconv.xml">
-<!ENTITY opcodesdefine SYSTEM "opcodes/define.xml">
-<!ENTITY opcodesdelay1 SYSTEM "opcodes/delay1.xml">
-<!ENTITY opcodesdelayk SYSTEM "opcodes/delayk.xml">
-<!ENTITY opcodesdelayr SYSTEM "opcodes/delayr.xml">
-<!ENTITY opcodesdelay SYSTEM "opcodes/delay.xml">
-<!ENTITY opcodesdelayw SYSTEM "opcodes/delayw.xml">
-<!ENTITY opcodesdeltap3 SYSTEM "opcodes/deltap3.xml">
-<!ENTITY opcodesdeltapi SYSTEM "opcodes/deltapi.xml">
-<!ENTITY opcodesdeltapn SYSTEM "opcodes/deltapn.xml">
-<!ENTITY opcodesdeltap SYSTEM "opcodes/deltap.xml">
-<!ENTITY opcodesdeltapx SYSTEM "opcodes/deltapx.xml">
-<!ENTITY opcodesdeltapxw SYSTEM "opcodes/deltapxw.xml">
-<!ENTITY opcodesdenorm SYSTEM "opcodes/denorm.xml">
-<!ENTITY opcodesdiff SYSTEM "opcodes/diff.xml">
-<!ENTITY opcodesdiskin SYSTEM "opcodes/diskin.xml">
-<!ENTITY opcodesdiskin2 SYSTEM "opcodes/diskin2.xml">
-<!ENTITY opcodesdispfft SYSTEM "opcodes/dispfft.xml">
-<!ENTITY opcodesdisplay SYSTEM "opcodes/display.xml">
-<!ENTITY opcodesdistort SYSTEM "opcodes/distort.xml">
-<!ENTITY opcodesdistort1 SYSTEM "opcodes/distort1.xml">
-<!ENTITY opcodesdivides SYSTEM "opcodes/divides.xml">
-<!ENTITY opcodesdivz SYSTEM "opcodes/divz.xml">
-<!ENTITY opcodesdollar SYSTEM "opcodes/dollar.xml">
-<!ENTITY opcodesdownsamp SYSTEM "opcodes/downsamp.xml">
-<!ENTITY opcodesdripwater SYSTEM "opcodes/dripwater.xml">
-
-<!--<!ENTITY opcodesdssilist SYSTEM "opcodes/dssilist.xml">
-<!ENTITY opcodesdssiinit SYSTEM "opcodes/dssiinit.xml">
-<!ENTITY opcodesdssiactivate SYSTEM "opcodes/dssiactivate.xml">
-<!ENTITY opcodesdssiaudio SYSTEM "opcodes/dssiaudio.xml">
-<!ENTITY opcodesdssictls SYSTEM "opcodes/dssictls.xml">-->
-
-<!ENTITY opcodesdumpk2 SYSTEM "opcodes/dumpk2.xml">
-<!ENTITY opcodesdumpk3 SYSTEM "opcodes/dumpk3.xml">
-<!ENTITY opcodesdumpk4 SYSTEM "opcodes/dumpk4.xml">
-<!ENTITY opcodesdumpk SYSTEM "opcodes/dumpk.xml">
-<!ENTITY opcodesduserrnd SYSTEM "opcodes/duserrnd.xml">
-<!ENTITY opcodeselseif SYSTEM "opcodes/elseif.xml">
-<!ENTITY opcodeselse SYSTEM "opcodes/else.xml">
-<!ENTITY opcodesendif SYSTEM "opcodes/endif.xml">
-<!ENTITY opcodesendin SYSTEM "opcodes/endin.xml">
-<!ENTITY opcodesendop SYSTEM "opcodes/endop.xml">
-<!ENTITY opcodesenvlpxr SYSTEM "opcodes/envlpxr.xml">
-<!ENTITY opcodesenvlpx SYSTEM "opcodes/envlpx.xml">
-<!ENTITY opcodesephasor SYSTEM "opcodes/ephasor.xml">
-<!ENTITY opcodesequals SYSTEM "opcodes/equals.xml">
-<!ENTITY opcodeseqfil SYSTEM "opcodes/eqfil.xml">
-<!ENTITY opcodesevent SYSTEM "opcodes/event.xml">
-<!ENTITY opcodesevent_i SYSTEM "opcodes/event_i.xml">
-<!ENTITY opcodesexitnow SYSTEM "opcodes/exitnow.xml">
-<!ENTITY opcodesexpcurve SYSTEM "opcodes/expcurve.xml">
-<!ENTITY opcodesexpon SYSTEM "opcodes/expon.xml">
-<!ENTITY opcodesexprand SYSTEM "opcodes/exprand.xml">
-<!ENTITY opcodesexpsega SYSTEM "opcodes/expsega.xml">
-<!ENTITY opcodesexpsegr SYSTEM "opcodes/expsegr.xml">
-<!ENTITY opcodesexpseg SYSTEM "opcodes/expseg.xml">
-<!ENTITY opcodesexp SYSTEM "opcodes/exp.xml">
-<!ENTITY opcodesficlose SYSTEM "opcodes/ficlose.xml">
-<!ENTITY opcodesfilelen SYSTEM "opcodes/filelen.xml">
-<!ENTITY opcodesfilenchnls SYSTEM "opcodes/filenchnls.xml">
-<!ENTITY opcodesfilepeak SYSTEM "opcodes/filepeak.xml">
-<!ENTITY opcodesfilesr SYSTEM "opcodes/filesr.xml">
-<!ENTITY opcodesfilter2 SYSTEM "opcodes/filter2.xml">
-<!ENTITY opcodesfini SYSTEM "opcodes/fini.xml">
-<!ENTITY opcodesfink SYSTEM "opcodes/fink.xml">
-<!ENTITY opcodesfin SYSTEM "opcodes/fin.xml">
-<!ENTITY opcodesfiopen SYSTEM "opcodes/fiopen.xml">
-<!ENTITY opcodesflanger SYSTEM "opcodes/flanger.xml">
-<!ENTITY opcodesflashtxt SYSTEM "opcodes/flashtxt.xml">
-<!--<!ENTITY opcodesflbox SYSTEM "opcodes/flbox.xml">
-<!ENTITY opcodesflbutbank SYSTEM "opcodes/flbutbank.xml">
-<!ENTITY opcodesflbutton SYSTEM "opcodes/flbutton.xml">
-<!ENTITY opcodesflclosebutton SYSTEM "opcodes/flclosebutton.xml">
-<!ENTITY opcodesflcolor2 SYSTEM "opcodes/flcolor2.xml">
-<!ENTITY opcodesflcolor SYSTEM "opcodes/flcolor.xml">
-<!ENTITY opcodesflcount SYSTEM "opcodes/flcount.xml">
-<!ENTITY opcodesflexecbutton SYSTEM "opcodes/flexecbutton.xml">
-<!ENTITY opcodesflgetsnap SYSTEM "opcodes/flgetsnap.xml">
-<!ENTITY opcodesflgroupend SYSTEM "opcodes/flgroupend.xml">
-<!ENTITY opcodesflgroup_end SYSTEM "opcodes/flgroup_end.xml">
-<!ENTITY opcodesflgroup SYSTEM "opcodes/flgroup.xml">
-<!ENTITY opcodesflhide SYSTEM "opcodes/flhide.xml">
-<!ENTITY opcodesflhvsbox SYSTEM "opcodes/flhvsbox.xml">
-<!ENTITY opcodesflhvsboxsetvalue SYSTEM "opcodes/flhvsboxsetvalue.xml">
-<!ENTITY opcodesfljoy SYSTEM "opcodes/fljoy.xml">
-<!ENTITY opcodesflkeyin SYSTEM "opcodes/flkeyin.xml">
-<!ENTITY opcodesflknob SYSTEM "opcodes/flknob.xml">
-<!ENTITY opcodesfllabel SYSTEM "opcodes/fllabel.xml">
-<!ENTITY opcodesflloadsnap SYSTEM "opcodes/flloadsnap.xml">
-<!ENTITY opcodesflmouse SYSTEM "opcodes/flmouse.xml">-->
-<!ENTITY opcodesflooper SYSTEM "opcodes/flooper.xml">
-<!ENTITY opcodesflooper2 SYSTEM "opcodes/flooper2.xml">
-<!ENTITY opcodesfloor SYSTEM "opcodes/floor.xml">
-<!--<!ENTITY opcodesflpackend SYSTEM "opcodes/flpackend.xml">
-<!ENTITY opcodesflpack_end SYSTEM "opcodes/flpack_end.xml">
-<!ENTITY opcodesflpack SYSTEM "opcodes/flpack.xml">
-<!ENTITY opcodesflpanelend SYSTEM "opcodes/flpanelend.xml">
-<!ENTITY opcodesflpanel_end SYSTEM "opcodes/flpanel_end.xml">
-<!ENTITY opcodesflpanel SYSTEM "opcodes/flpanel.xml">
-<!ENTITY opcodesflprintk2 SYSTEM "opcodes/flprintk2.xml">
-<!ENTITY opcodesflprintk SYSTEM "opcodes/flprintk.xml">
-<!ENTITY opcodesflroller SYSTEM "opcodes/flroller.xml">
-<!ENTITY opcodesflrun SYSTEM "opcodes/flrun.xml">
-<!ENTITY opcodesflsavesnap SYSTEM "opcodes/flsavesnap.xml">
-<!ENTITY opcodesflscrollend SYSTEM "opcodes/flscrollend.xml">
-<!ENTITY opcodesflscroll_end SYSTEM "opcodes/flscroll_end.xml">
-<!ENTITY opcodesflscroll SYSTEM "opcodes/flscroll.xml">
-<!ENTITY opcodesflsetalign SYSTEM "opcodes/flsetalign.xml">
-<!ENTITY opcodesflsetbox SYSTEM "opcodes/flsetbox.xml">
-<!ENTITY opcodesflsetcolor2 SYSTEM "opcodes/flsetcolor2.xml">
-<!ENTITY opcodesflsetcolor SYSTEM "opcodes/flsetcolor.xml">
-<!ENTITY opcodesflsetfont SYSTEM "opcodes/flsetfont.xml">
-<!ENTITY opcodesflsetposition SYSTEM "opcodes/flsetposition.xml">
-<!ENTITY opcodesflsetsize SYSTEM "opcodes/flsetsize.xml">
-<!ENTITY opcodesflsetsnap SYSTEM "opcodes/flsetsnap.xml">
-<!ENTITY opcodesflsetsnapgroup SYSTEM "opcodes/flsetsnapgroup.xml">
-<!ENTITY opcodesflsettextcolor SYSTEM "opcodes/flsettextcolor.xml">
-<!ENTITY opcodesflsettext SYSTEM "opcodes/flsettext.xml">
-<!ENTITY opcodesflsettextsize SYSTEM "opcodes/flsettextsize.xml">
-<!ENTITY opcodesflsettexttype SYSTEM "opcodes/flsettexttype.xml">
-<!ENTITY opcodesflsetvali SYSTEM "opcodes/flsetvali.xml">
-<!ENTITY opcodesflsetval SYSTEM "opcodes/flsetval.xml">
-<!ENTITY opcodesflshow SYSTEM "opcodes/flshow.xml">
-<!ENTITY opcodesflslidbnk SYSTEM "opcodes/flslidbnk.xml">
-<!ENTITY opcodesflslidbnk2 SYSTEM "opcodes/flslidbnk2.xml">
-<!ENTITY opcodesflslidbnkgethandle SYSTEM "opcodes/flslidbnkgethandle.xml">
-<!ENTITY opcodesflslidbnkset SYSTEM "opcodes/flslidbnkset.xml">
-<!ENTITY opcodesflslidbnksetk SYSTEM "opcodes/flslidbnksetk.xml">
-<!ENTITY opcodesflslidbnk2set SYSTEM "opcodes/flslidbnk2set.xml">
-<!ENTITY opcodesflslidbnk2setk SYSTEM "opcodes/flslidbnk2setk.xml">
-<!ENTITY opcodesflslider SYSTEM "opcodes/flslider.xml">
-<!ENTITY opcodesfltabsend SYSTEM "opcodes/fltabsend.xml">
-<!ENTITY opcodesfltabs_end SYSTEM "opcodes/fltabs_end.xml">
-<!ENTITY opcodesfltabs SYSTEM "opcodes/fltabs.xml">
-<!ENTITY opcodesfltext SYSTEM "opcodes/fltext.xml">
-<!ENTITY opcodesflupdate SYSTEM "opcodes/flupdate.xml">
-<!ENTITY opcodesflvalue SYSTEM "opcodes/flvalue.xml">
-<!ENTITY opcodesflvkeybd SYSTEM "opcodes/flvkeybd.xml">
-<!ENTITY opcodesflvslidbnk SYSTEM "opcodes/flvslidbnk.xml">
-<!ENTITY opcodesflvslidbnk2 SYSTEM "opcodes/flvslidbnk2.xml">
-<!ENTITY opcodesflxyin SYSTEM "opcodes/flxyin.xml">-->
-<!ENTITY opcodesfmb3 SYSTEM "opcodes/fmb3.xml">
-<!ENTITY opcodesfmbell SYSTEM "opcodes/fmbell.xml">
-<!ENTITY opcodesfmmetal SYSTEM "opcodes/fmmetal.xml">
-<!ENTITY opcodesfmpercfl SYSTEM "opcodes/fmpercfl.xml">
-<!ENTITY opcodesfmrhode SYSTEM "opcodes/fmrhode.xml">
-<!ENTITY opcodesfmvoice SYSTEM "opcodes/fmvoice.xml">
-<!ENTITY opcodesfmwurlie SYSTEM "opcodes/fmwurlie.xml">
-<!ENTITY opcodesfof2 SYSTEM "opcodes/fof2.xml">
-<!ENTITY opcodesfof SYSTEM "opcodes/fof.xml">
-<!ENTITY opcodesfofilter SYSTEM "opcodes/fofilter.xml">
-<!ENTITY opcodesfog SYSTEM "opcodes/fog.xml">
-<!ENTITY opcodesfold SYSTEM "opcodes/fold.xml">
-<!ENTITY opcodesfollow2 SYSTEM "opcodes/follow2.xml">
-<!ENTITY opcodesfollow SYSTEM "opcodes/follow.xml">
-<!ENTITY opcodesfoscili SYSTEM "opcodes/foscili.xml">
-<!ENTITY opcodesfoscil SYSTEM "opcodes/foscil.xml">
-<!ENTITY opcodesfoutir SYSTEM "opcodes/foutir.xml">
-<!ENTITY opcodesfouti SYSTEM "opcodes/fouti.xml">
-<!ENTITY opcodesfoutk SYSTEM "opcodes/foutk.xml">
-<!ENTITY opcodesfout SYSTEM "opcodes/fout.xml">
-<!ENTITY opcodesfreeverb SYSTEM "opcodes/freeverb.xml">
-<!--<!ENTITY opcodesfluidAllOut SYSTEM "opcodes/fluidAllOut.xml">
-<!ENTITY opcodesfluidCCi SYSTEM "opcodes/fluidCCi.xml">
-<!ENTITY opcodesfluidCCk SYSTEM "opcodes/fluidCCk.xml">
-<!ENTITY opcodesfluidControl SYSTEM "opcodes/fluidControl.xml">
-<!ENTITY opcodesfluidEngine SYSTEM "opcodes/fluidEngine.xml">
-<!ENTITY opcodesfluidLoad SYSTEM "opcodes/fluidLoad.xml">
-<!ENTITY opcodesfluidNote SYSTEM "opcodes/fluidNote.xml">
-<!ENTITY opcodesfluidOut SYSTEM "opcodes/fluidOut.xml">
-<!ENTITY opcodesfluidProgramSelect SYSTEM "opcodes/fluidProgramSelect.xml">
-<!ENTITY opcodesfluidSetInterpMethod SYSTEM "opcodes/fluidSetInterpMethod.xml">-->
-<!ENTITY opcodesfprintks SYSTEM "opcodes/fprintks.xml">
-<!ENTITY opcodesfprints SYSTEM "opcodes/fprints.xml">
-<!ENTITY opcodesfrac SYSTEM "opcodes/frac.xml">
-<!ENTITY opcodesftchnls SYSTEM "opcodes/ftchnls.xml">
-<!ENTITY opcodesftconv SYSTEM "opcodes/ftconv.xml">
-<!ENTITY opcodesftfree SYSTEM "opcodes/ftfree.xml">
-<!ENTITY opcodesftgen SYSTEM "opcodes/ftgen.xml">
-<!ENTITY opcodesftgentmp SYSTEM "opcodes/ftgentmp.xml">
-<!ENTITY opcodesftlen SYSTEM "opcodes/ftlen.xml">
-<!ENTITY opcodesftloadk SYSTEM "opcodes/ftloadk.xml">
-<!ENTITY opcodesftload SYSTEM "opcodes/ftload.xml">
-<!ENTITY opcodesftlptim SYSTEM "opcodes/ftlptim.xml">
-<!ENTITY opcodesftmorf SYSTEM "opcodes/ftmorf.xml">
-<!ENTITY opcodesftsavek SYSTEM "opcodes/ftsavek.xml">
-<!ENTITY opcodesftsave SYSTEM "opcodes/ftsave.xml">
-<!ENTITY opcodesftsr SYSTEM "opcodes/ftsr.xml">
-<!ENTITY opcodesgain SYSTEM "opcodes/gain.xml">
-<!ENTITY opcodesgainslider SYSTEM "opcodes/gainslider.xml">
-<!ENTITY opcodesgauss SYSTEM "opcodes/gauss.xml">
-<!ENTITY opcodesgbuzz SYSTEM "opcodes/gbuzz.xml">
-<!ENTITY opcodesgetcfg SYSTEM "opcodes/getcfg.xml">
-<!ENTITY opcodesgogobel SYSTEM "opcodes/gogobel.xml">
-<!ENTITY opcodesgoto SYSTEM "opcodes/goto.xml">
-<!ENTITY opcodesgrain2 SYSTEM "opcodes/grain2.xml">
-<!ENTITY opcodesgrain3 SYSTEM "opcodes/grain3.xml">
-<!ENTITY opcodesgrain SYSTEM "opcodes/grain.xml">
-<!ENTITY opcodesgranule SYSTEM "opcodes/granule.xml">
-<!ENTITY opcodesgreaterequal SYSTEM "opcodes/greaterequal.xml">
-<!ENTITY opcodesgreaterthan SYSTEM "opcodes/greaterthan.xml">
-<!ENTITY opcodesguiro SYSTEM "opcodes/guiro.xml">
-<!ENTITY opcodesharmon SYSTEM "opcodes/harmon.xml">
-<!ENTITY opcodesharmon2 SYSTEM "opcodes/harmon234.xml">
-<!ENTITY opcodeshilbert SYSTEM "opcodes/hilbert.xml">
-<!ENTITY opcodeshrtfer SYSTEM "opcodes/hrtfer.xml">
-
-<!ENTITY opcodeshrtfmove SYSTEM "opcodes/hrtfmove.xml">
-<!ENTITY opcodeshrtfmove2 SYSTEM "opcodes/hrtfmove2.xml">
-<!ENTITY opcodeshrtfstat SYSTEM "opcodes/hrtfstat.xml">
-
-<!ENTITY opcodeshsboscil SYSTEM "opcodes/hsboscil.xml">
-<!ENTITY opcodeshvs1 SYSTEM "opcodes/hvs1.xml">
-<!ENTITY opcodeshvs2 SYSTEM "opcodes/hvs2.xml">
-<!ENTITY opcodeshvs3 SYSTEM "opcodes/hvs3.xml">
-<!--<!ENTITY opcodesibetarand SYSTEM "opcodes/ibetarand.xml">
-<!ENTITY opcodesibexprnd SYSTEM "opcodes/ibexprnd.xml">
-<!ENTITY opcodesicauchy SYSTEM "opcodes/icauchy.xml">
-<!ENTITY opcodesictrl14 SYSTEM "opcodes/ictrl14.xml">
-<!ENTITY opcodesictrl21 SYSTEM "opcodes/ictrl21.xml">
-<!ENTITY opcodesictrl7 SYSTEM "opcodes/ictrl7.xml">
-<!ENTITY opcodesiexprand SYSTEM "opcodes/iexprand.xml">-->
-<!ENTITY opcodesif SYSTEM "opcodes/if.xml">
-<!ENTITY opcodesifdef SYSTEM "opcodes/ifdef.xml">
-<!ENTITY opcodesifndef SYSTEM "opcodes/ifndef.xml">
-<!-- <!ENTITY opcodesigauss SYSTEM "opcodes/igauss.xml"> -->
-<!ENTITY opcodesigoto SYSTEM "opcodes/igoto.xml">
-<!ENTITY opcodesihold SYSTEM "opcodes/ihold.xml">
-<!-- <!ENTITY opcodesilinrand SYSTEM "opcodes/ilinrand.xml"> -->
-<!ENTITY opcodesimagecreate SYSTEM "opcodes/imagecreate.xml">
-<!ENTITY opcodesimagefree SYSTEM "opcodes/imagefree.xml">
-<!ENTITY opcodesimagegetpixel SYSTEM "opcodes/imagegetpixel.xml">
-<!ENTITY opcodesimageload SYSTEM "opcodes/imageload.xml">
-<!ENTITY opcodesimageopcodes SYSTEM "opcodes/imageopcodes.xml">
-<!ENTITY opcodesimagesave SYSTEM "opcodes/imagesave.xml">
-<!ENTITY opcodesimagesetpixel SYSTEM "opcodes/imagesetpixel.xml">
-<!ENTITY opcodesimagesize SYSTEM "opcodes/imagesize.xml">
-<!--<!ENTITY opcodesimidic14 SYSTEM "opcodes/imidic14.xml">
-<!ENTITY opcodesimidic21 SYSTEM "opcodes/imidic21.xml">
-<!ENTITY opcodesimidic7 SYSTEM "opcodes/imidic7.xml">-->
-<!-- <!ENTITY opcodesin32 SYSTEM "opcodes/in32.xml"> -->
-<!ENTITY opcodesinch SYSTEM "opcodes/inch.xml">
-<!ENTITY opcodesinclude SYSTEM "opcodes/include.xml">
-<!-- <!ENTITY opcodesinh SYSTEM "opcodes/inh.xml"> -->
-<!ENTITY opcodesinitc14 SYSTEM "opcodes/initc14.xml">
-<!ENTITY opcodesinitc21 SYSTEM "opcodes/initc21.xml">
-<!ENTITY opcodesinitc7 SYSTEM "opcodes/initc7.xml">
-<!ENTITY opcodesinit SYSTEM "opcodes/init.xml">
-<!--<!ENTITY opcodesino SYSTEM "opcodes/ino.xml">
-<!ENTITY opcodesinq SYSTEM "opcodes/inq.xml">-->
-<!ENTITY opcodesinrg SYSTEM "opcodes/inrg.xml">
-<!ENTITY opcodesin SYSTEM "opcodes/in.xml">
-<!ENTITY opcodesins SYSTEM "opcodes/ins.xml">
-<!ENTITY opcodesinsremot SYSTEM "opcodes/insremot.xml">
-<!ENTITY opcodesinsglobal SYSTEM "opcodes/insglobal.xml">
-<!--<!ENTITY opcodesinstimek SYSTEM "opcodes/instimek.xml">
-<!ENTITY opcodesinstimes SYSTEM "opcodes/instimes.xml">-->
-<!ENTITY opcodesinstr SYSTEM "opcodes/instr.xml">
-<!ENTITY opcodesinteg SYSTEM "opcodes/integ.xml">
-<!ENTITY opcodesinterp SYSTEM "opcodes/interp.xml">
-<!ENTITY opcodesint SYSTEM "opcodes/int.xml">
-<!ENTITY opcodesinvalue SYSTEM "opcodes/invalue.xml">
-<!-- <!ENTITY opcodesinx SYSTEM "opcodes/inx.xml"> -->
-<!ENTITY opcodesinz SYSTEM "opcodes/inz.xml">
-<!--<!ENTITY opcodesioff SYSTEM "opcodes/ioff.xml">
-<!ENTITY opcodesiondur2 SYSTEM "opcodes/iondur2.xml">
-<!ENTITY opcodesiondur SYSTEM "opcodes/iondur.xml">
-<!ENTITY opcodesion SYSTEM "opcodes/ion.xml">
-<!ENTITY opcodesioutat SYSTEM "opcodes/ioutat.xml">
-<!ENTITY opcodesioutc14 SYSTEM "opcodes/ioutc14.xml">
-<!ENTITY opcodesioutc SYSTEM "opcodes/ioutc.xml">
-<!ENTITY opcodesioutpat SYSTEM "opcodes/ioutpat.xml">
-<!ENTITY opcodesioutpb SYSTEM "opcodes/ioutpb.xml">
-<!ENTITY opcodesioutpc SYSTEM "opcodes/ioutpc.xml">
-<!ENTITY opcodesipcauchy SYSTEM "opcodes/ipcauchy.xml">
-<!ENTITY opcodesipoisson SYSTEM "opcodes/ipoisson.xml">
-<!ENTITY opcodesipow SYSTEM "opcodes/ipow.xml">
-<!ENTITY opcodesis16b14 SYSTEM "opcodes/is16b14.xml">
-<!ENTITY opcodesis32b14 SYSTEM "opcodes/is32b14.xml">
-<!ENTITY opcodesislider16 SYSTEM "opcodes/islider16.xml">
-<!ENTITY opcodesislider32 SYSTEM "opcodes/islider32.xml">
-<!ENTITY opcodesislider64 SYSTEM "opcodes/islider64.xml">
-<!ENTITY opcodesislider8 SYSTEM "opcodes/islider8.xml">
-<!ENTITY opcodesitablecopy SYSTEM "opcodes/itablecopy.xml">
-<!ENTITY opcodesitablegpw SYSTEM "opcodes/itablegpw.xml">
-<!ENTITY opcodesitablemix SYSTEM "opcodes/itablemix.xml">
-<!ENTITY opcodesitablew SYSTEM "opcodes/itablew.xml">
-<!ENTITY opcodesitrirand SYSTEM "opcodes/itrirand.xml">
-<!ENTITY opcodesiunirand SYSTEM "opcodes/iunirand.xml">
-<!ENTITY opcodesiweibull SYSTEM "opcodes/iweibull.xml">-->
-<!ENTITY opcodesjacktransport SYSTEM "opcodes/jacktransport.xml">
-<!ENTITY opcodesjitter2 SYSTEM "opcodes/jitter2.xml">
-<!ENTITY opcodesjitter SYSTEM "opcodes/jitter.xml">
-<!ENTITY opcodesjspline SYSTEM "opcodes/jspline.xml">
-<!--<!ENTITY opcodeskbetarand SYSTEM "opcodes/kbetarand.xml">
-<!ENTITY opcodeskbexprnd SYSTEM "opcodes/kbexprnd.xml">
-<!ENTITY opcodeskcauchy SYSTEM "opcodes/kcauchy.xml">
-<!ENTITY opcodeskdump2 SYSTEM "opcodes/kdump2.xml">
-<!ENTITY opcodeskdump3 SYSTEM "opcodes/kdump3.xml">
-<!ENTITY opcodeskdump4 SYSTEM "opcodes/kdump4.xml">
-<!ENTITY opcodeskdump SYSTEM "opcodes/kdump.xml">
-<!ENTITY opcodeskexprand SYSTEM "opcodes/kexprand.xml">
-<!ENTITY opcodeskfilter2 SYSTEM "opcodes/kfilter2.xml">
-<!ENTITY opcodeskgauss SYSTEM "opcodes/kgauss.xml">-->
-<!ENTITY opcodeskgoto SYSTEM "opcodes/kgoto.xml">
-<!--<!ENTITY opcodesklinrand SYSTEM "opcodes/klinrand.xml">
-<!ENTITY opcodeskon SYSTEM "opcodes/kon.xml">
-<!ENTITY opcodeskoutat SYSTEM "opcodes/koutat.xml">
-<!ENTITY opcodeskoutc14 SYSTEM "opcodes/koutc14.xml">
-<!ENTITY opcodeskoutc SYSTEM "opcodes/koutc.xml">
-<!ENTITY opcodeskoutpat SYSTEM "opcodes/koutpat.xml">
-<!ENTITY opcodeskoutpb SYSTEM "opcodes/koutpb.xml">
-<!ENTITY opcodeskoutpc SYSTEM "opcodes/koutpc.xml">
-<!ENTITY opcodeskpcauchy SYSTEM "opcodes/kpcauchy.xml">
-<!ENTITY opcodeskpoisson SYSTEM "opcodes/kpoisson.xml">
-<!ENTITY opcodeskpow SYSTEM "opcodes/kpow.xml">
-<!ENTITY opcodeskread2 SYSTEM "opcodes/kread2.xml">
-<!ENTITY opcodeskread3 SYSTEM "opcodes/kread3.xml">
-<!ENTITY opcodeskread4 SYSTEM "opcodes/kread4.xml">
-<!ENTITY opcodeskread SYSTEM "opcodes/kread.xml">-->
-<!ENTITY opcodeskr SYSTEM "opcodes/kr.xml">
-<!ENTITY opcodesksmps SYSTEM "opcodes/ksmps.xml">
-<!ENTITY opcodesktableseg SYSTEM "opcodes/ktableseg.xml">
-<!--<!ENTITY opcodesktrirand SYSTEM "opcodes/ktrirand.xml">
-<!ENTITY opcodeskunirand SYSTEM "opcodes/kunirand.xml">
-<!ENTITY opcodeskweibull SYSTEM "opcodes/kweibull.xml">-->
-<!ENTITY opcodeslessequal SYSTEM "opcodes/lessequal.xml">
-<!ENTITY opcodeslessthan SYSTEM "opcodes/lessthan.xml">
-<!ENTITY opcodeslfo SYSTEM "opcodes/lfo.xml">
-<!ENTITY opcodeslimit SYSTEM "opcodes/limit.xml">
-<!ENTITY opcodeslinenr SYSTEM "opcodes/linenr.xml">
-<!ENTITY opcodeslinen SYSTEM "opcodes/linen.xml">
-<!ENTITY opcodesline SYSTEM "opcodes/line.xml">
-<!ENTITY opcodeslineto SYSTEM "opcodes/lineto.xml">
-<!ENTITY opcodeslinrand SYSTEM "opcodes/linrand.xml">
-<!ENTITY opcodeslinsegr SYSTEM "opcodes/linsegr.xml">
-<!ENTITY opcodeslinseg SYSTEM "opcodes/linseg.xml">
-<!ENTITY opcodeslocsend SYSTEM "opcodes/locsend.xml">
-<!ENTITY opcodeslocsig SYSTEM "opcodes/locsig.xml">
-<!ENTITY opcodeslog10 SYSTEM "opcodes/log10.xml">
-<!ENTITY opcodeslogcurve SYSTEM "opcodes/logcurve.xml">
-<!ENTITY opcodeslogbtwo SYSTEM "opcodes/logbtwo.xml">
-<!ENTITY opcodeslog SYSTEM "opcodes/log.xml">
-<!ENTITY opcodesloop_ge SYSTEM "opcodes/loop_ge.xml">
-<!ENTITY opcodesloop_gt SYSTEM "opcodes/loop_gt.xml">
-<!ENTITY opcodesloop_le SYSTEM "opcodes/loop_le.xml">
-<!ENTITY opcodesloop_lt SYSTEM "opcodes/loop_lt.xml">
-<!ENTITY opcodesloopseg SYSTEM "opcodes/loopseg.xml">
-<!ENTITY opcodesloopsegp SYSTEM "opcodes/loopsegp.xml">
-<!ENTITY opcodeslorenz SYSTEM "opcodes/lorenz.xml">
-<!--<!ENTITY opcodeslorisread SYSTEM "opcodes/lorisread.xml">
-<!ENTITY opcodeslorismorph SYSTEM "opcodes/lorismorph.xml">
-<!ENTITY opcodeslorisplay SYSTEM "opcodes/lorisplay.xml">-->
-<!ENTITY opcodesloscil3 SYSTEM "opcodes/loscil3.xml">
-<!ENTITY opcodesloscil SYSTEM "opcodes/loscil.xml">
-<!ENTITY opcodesloscilx SYSTEM "opcodes/loscilx.xml">
-<!ENTITY opcodeslowpass2 SYSTEM "opcodes/lowpass2.xml">
-<!ENTITY opcodeslowres SYSTEM "opcodes/lowres.xml">
-<!ENTITY opcodeslowresx SYSTEM "opcodes/lowresx.xml">
-<!ENTITY opcodeslpf18 SYSTEM "opcodes/lpf18.xml">
-<!ENTITY opcodeslpfreson SYSTEM "opcodes/lpfreson.xml">
-<!ENTITY opcodeslphasor SYSTEM "opcodes/lphasor.xml">
-<!ENTITY opcodeslpinterp SYSTEM "opcodes/lpinterp.xml">
-<!ENTITY opcodeslposcil3 SYSTEM "opcodes/lposcil3.xml">
-<!ENTITY opcodeslposcila SYSTEM "opcodes/lposcila.xml">
-<!ENTITY opcodeslposcil SYSTEM "opcodes/lposcil.xml">
-<!ENTITY opcodeslposcilsa SYSTEM "opcodes/lposcilsa.xml">
-<!ENTITY opcodeslposcilsa2 SYSTEM "opcodes/lposcilsa2.xml">
-<!ENTITY opcodeslpread SYSTEM "opcodes/lpread.xml">
-<!ENTITY opcodeslpreson SYSTEM "opcodes/lpreson.xml">
-<!ENTITY opcodeslpshold SYSTEM "opcodes/lpshold.xml">
-<!ENTITY opcodeslpsholdp SYSTEM "opcodes/lpsholdp.xml">
-<!ENTITY opcodeslpslot SYSTEM "opcodes/lpslot.xml">
-<!ENTITY opcodesmaca SYSTEM "opcodes/maca.xml">
-<!ENTITY opcodesmac SYSTEM "opcodes/mac.xml">
-<!ENTITY opcodesmadsr SYSTEM "opcodes/madsr.xml">
-<!ENTITY opcodesmandel SYSTEM "opcodes/mandel.xml">
-<!ENTITY opcodesmandol SYSTEM "opcodes/mandol.xml">
-<!ENTITY opcodesmarimba SYSTEM "opcodes/marimba.xml">
-<!ENTITY opcodesmassign SYSTEM "opcodes/massign.xml">
-<!ENTITY opcodesmaxalloc SYSTEM "opcodes/maxalloc.xml">
-<!ENTITY opcodesmax_k SYSTEM "opcodes/max_k.xml">
-<!ENTITY opcodesmax SYSTEM "opcodes/max.xml">
-<!ENTITY opcodesmaxabs SYSTEM "opcodes/maxabs.xml">
-<!ENTITY opcodesmaxabsaccum SYSTEM "opcodes/maxabsaccum.xml">
-<!ENTITY opcodesmaxaccum SYSTEM "opcodes/maxaccum.xml">
-<!ENTITY opcodesmclock SYSTEM "opcodes/mclock.xml">
-<!ENTITY opcodesmdelay SYSTEM "opcodes/mdelay.xml">
-<!ENTITY opcodesmetro SYSTEM "opcodes/metro.xml">
-<!ENTITY opcodesmidic14 SYSTEM "opcodes/midic14.xml">
-<!ENTITY opcodesmidic21 SYSTEM "opcodes/midic21.xml">
-<!ENTITY opcodesmidic7 SYSTEM "opcodes/midic7.xml">
-<!ENTITY opcodesmidichannelaftertouch SYSTEM "opcodes/midichannelaftertouch.xml">
-<!ENTITY opcodesmidichn SYSTEM "opcodes/midichn.xml">
-<!ENTITY opcodesmidicontrolchange SYSTEM "opcodes/midicontrolchange.xml">
-<!ENTITY opcodesmidictrl SYSTEM "opcodes/midictrl.xml">
-<!ENTITY opcodesmididefault SYSTEM "opcodes/mididefault.xml">
-<!ENTITY opcodesmidiin SYSTEM "opcodes/midiin.xml">
-<!ENTITY opcodesmidinoteoff SYSTEM "opcodes/midinoteoff.xml">
-<!ENTITY opcodesmidinoteoncps SYSTEM "opcodes/midinoteoncps.xml">
-<!ENTITY opcodesmidinoteonkey SYSTEM "opcodes/midinoteonkey.xml">
-<!ENTITY opcodesmidinoteonoct SYSTEM "opcodes/midinoteonoct.xml">
-<!ENTITY opcodesmidinoteonpch SYSTEM "opcodes/midinoteonpch.xml">
-<!ENTITY opcodesmidion2 SYSTEM "opcodes/midion2.xml">
-<!ENTITY opcodesmidion SYSTEM "opcodes/midion.xml">
-<!ENTITY opcodesmidiout SYSTEM "opcodes/midiout.xml">
-<!ENTITY opcodesmidipitchbend SYSTEM "opcodes/midipitchbend.xml">
-<!ENTITY opcodesmidipolyaftertouch SYSTEM "opcodes/midipolyaftertouch.xml">
-<!ENTITY opcodesmidiprogramchange SYSTEM "opcodes/midiprogramchange.xml">
-<!ENTITY opcodesmiditempo SYSTEM "opcodes/miditempo.xml">
-<!ENTITY opcodesmidremot SYSTEM "opcodes/midremot.xml">
-<!ENTITY opcodesmidglobal SYSTEM "opcodes/midglobal.xml">
-<!ENTITY opcodesmin SYSTEM "opcodes/min.xml">
-<!ENTITY opcodesminabs SYSTEM "opcodes/minabs.xml">
-<!ENTITY opcodesminabsaccum SYSTEM "opcodes/minabsaccum.xml">
-<!ENTITY opcodesminaccum SYSTEM "opcodes/minaccum.xml">
-<!ENTITY opcodesmirror SYSTEM "opcodes/mirror.xml">
-
-<!ENTITY opcodesmixersetlevel SYSTEM "opcodes/mixersetlevel.xml">
-<!ENTITY opcodesmixergetlevel SYSTEM "opcodes/mixergetlevel.xml">
-<!ENTITY opcodesmixersend SYSTEM "opcodes/mixersend.xml">
-<!ENTITY opcodesmixerreceive SYSTEM "opcodes/mixerreceive.xml">
-<!ENTITY opcodesmixerclear SYSTEM "opcodes/mixerclear.xml">
-
-<!ENTITY opcodesmode SYSTEM "opcodes/mode.xml">
-<!ENTITY opcodesmodulus SYSTEM "opcodes/modulus.xml">
-<!ENTITY opcodesmonitor SYSTEM "opcodes/monitor.xml">
-<!ENTITY opcodesmoog SYSTEM "opcodes/moog.xml">
-<!ENTITY opcodesmoogladder SYSTEM "opcodes/moogladder.xml">
-<!ENTITY opcodesmoogvcf SYSTEM "opcodes/moogvcf.xml">
-<!ENTITY opcodesmoogvcf2 SYSTEM "opcodes/moogvcf2.xml">
-<!ENTITY opcodesmoscil SYSTEM "opcodes/moscil.xml">
-<!ENTITY opcodesmpulse SYSTEM "opcodes/mpulse.xml">
-<!ENTITY opcodesmrtmsg SYSTEM "opcodes/mrtmsg.xml">
-<!ENTITY opcodesmultiplies SYSTEM "opcodes/multiplies.xml">
-<!ENTITY opcodesmultitap SYSTEM "opcodes/multitap.xml">
-<!ENTITY opcodesmute SYSTEM "opcodes/mute.xml">
-<!ENTITY opcodesmxadsr SYSTEM "opcodes/mxadsr.xml">
-<!ENTITY opcodesnchnls SYSTEM "opcodes/nchnls.xml">
-<!ENTITY opcodesnestedap SYSTEM "opcodes/nestedap.xml">
-<!ENTITY opcodesnlfilt SYSTEM "opcodes/nlfilt.xml">
-<!ENTITY opcodesnoise SYSTEM "opcodes/noise.xml">
-<!ENTITY opcodesnoteoff SYSTEM "opcodes/noteoff.xml">
-<!ENTITY opcodesnoteondur2 SYSTEM "opcodes/noteondur2.xml">
-<!ENTITY opcodesnoteondur SYSTEM "opcodes/noteondur.xml">
-<!ENTITY opcodesnoteon SYSTEM "opcodes/noteon.xml">
-<!ENTITY opcodesnotequal SYSTEM "opcodes/notequal.xml">
-<!ENTITY opcodesnotnum SYSTEM "opcodes/notnum.xml">
-<!ENTITY opcodesnreverb SYSTEM "opcodes/nreverb.xml">
-<!ENTITY opcodesnrpn SYSTEM "opcodes/nrpn.xml">
-<!ENTITY opcodesnsamp SYSTEM "opcodes/nsamp.xml">
-<!ENTITY opcodesnstrnum SYSTEM "opcodes/nstrnum.xml">
-<!ENTITY opcodesntrpol SYSTEM "opcodes/ntrpol.xml">
-<!ENTITY opcodesoctave SYSTEM "opcodes/octave.xml">
-<!ENTITY opcodesoctcps SYSTEM "opcodes/octcps.xml">
-<!ENTITY opcodesoctmidinn SYSTEM "opcodes/octmidinn.xml">
-<!ENTITY opcodesoctmidib SYSTEM "opcodes/octmidib.xml">
-<!ENTITY opcodesoctmidi SYSTEM "opcodes/octmidi.xml">
-<!ENTITY opcodesoctpch SYSTEM "opcodes/octpch.xml">
-<!ENTITY opcodesopand SYSTEM "opcodes/opand.xml">
-<!ENTITY opcodesopa SYSTEM "opcodes/opa.xml">
-<!ENTITY opcodesopcode SYSTEM "opcodes/opcode.xml">
-<!ENTITY opcodesopi SYSTEM "opcodes/opi.xml">
-<!ENTITY opcodesopk SYSTEM "opcodes/opk.xml">
-<!ENTITY opcodesopor SYSTEM "opcodes/opor.xml">
-<!ENTITY opcodesopbitshl SYSTEM "opcodes/opbitshl.xml">
-<!ENTITY opcodesopbitshr SYSTEM "opcodes/opbitshr.xml">
-<!ENTITY opcodesopbitand SYSTEM "opcodes/opbitand.xml">
-<!ENTITY opcodesopbitor SYSTEM "opcodes/opbitor.xml">
-<!ENTITY opcodesopbitnot SYSTEM "opcodes/opbitnot.xml">
-<!ENTITY opcodesopnonequiv SYSTEM "opcodes/opnonequiv.xml">
-
-<!ENTITY opcodesOSCsend SYSTEM "opcodes/OSCsend.xml">
-<!ENTITY opcodesOSCinit SYSTEM "opcodes/OSCinit.xml">
-<!ENTITY opcodesOSClisten SYSTEM "opcodes/OSClisten.xml">
-
-<!ENTITY opcodesoscbnk SYSTEM "opcodes/oscbnk.xml">
-<!ENTITY opcodesoscil1i SYSTEM "opcodes/oscil1i.xml">
-<!ENTITY opcodesoscil1 SYSTEM "opcodes/oscil1.xml">
-<!ENTITY opcodesoscil3 SYSTEM "opcodes/oscil3.xml">
-<!ENTITY opcodesosciliktp SYSTEM "opcodes/osciliktp.xml">
-<!ENTITY opcodesoscilikt SYSTEM "opcodes/oscilikt.xml">
-<!ENTITY opcodesoscilikts SYSTEM "opcodes/oscilikts.xml">
-<!ENTITY opcodesoscili SYSTEM "opcodes/oscili.xml">
-<!ENTITY opcodesosciln SYSTEM "opcodes/osciln.xml">
-<!ENTITY opcodesoscil SYSTEM "opcodes/oscil.xml">
-<!ENTITY opcodesoscils SYSTEM "opcodes/oscils.xml">
-<!ENTITY opcodesoscilx SYSTEM "opcodes/oscilx.xml">
-<!-- <!ENTITY opcodesout32 SYSTEM "opcodes/out32.xml"> -->
-<!ENTITY opcodesoutch SYSTEM "opcodes/outch.xml">
-<!ENTITY opcodesoutc SYSTEM "opcodes/outc.xml">
-<!-- <!ENTITY opcodesouth SYSTEM "opcodes/outh.xml"> -->
-<!ENTITY opcodesoutiat SYSTEM "opcodes/outiat.xml">
-<!ENTITY opcodesoutic14 SYSTEM "opcodes/outic14.xml">
-<!ENTITY opcodesoutic SYSTEM "opcodes/outic.xml">
-<!ENTITY opcodesoutipat SYSTEM "opcodes/outipat.xml">
-<!ENTITY opcodesoutipb SYSTEM "opcodes/outipb.xml">
-<!ENTITY opcodesoutipc SYSTEM "opcodes/outipc.xml">
-<!ENTITY opcodesoutkat SYSTEM "opcodes/outkat.xml">
-<!ENTITY opcodesoutkc14 SYSTEM "opcodes/outkc14.xml">
-<!ENTITY opcodesoutkc SYSTEM "opcodes/outkc.xml">
-<!ENTITY opcodesoutkpat SYSTEM "opcodes/outkpat.xml">
-<!ENTITY opcodesoutkpb SYSTEM "opcodes/outkpb.xml">
-<!ENTITY opcodesoutkpc SYSTEM "opcodes/outkpc.xml">
-<!-- <!ENTITY opcodesouto SYSTEM "opcodes/outo.xml"> -->
-<!--<!ENTITY opcodesoutq1 SYSTEM "opcodes/outq1.xml">
-<!ENTITY opcodesoutq2 SYSTEM "opcodes/outq2.xml">
-<!ENTITY opcodesoutq3 SYSTEM "opcodes/outq3.xml">
-<!ENTITY opcodesoutq4 SYSTEM "opcodes/outq4.xml">
-<!ENTITY opcodesoutq SYSTEM "opcodes/outq.xml">-->
-<!ENTITY opcodesoutrg SYSTEM "opcodes/outrg.xml">
-<!ENTITY opcodesouts1 SYSTEM "opcodes/outs1.xml">
-<!ENTITY opcodesouts2 SYSTEM "opcodes/outs2.xml">
-<!ENTITY opcodesout SYSTEM "opcodes/out.xml">
-<!ENTITY opcodesouts SYSTEM "opcodes/outs.xml">
-<!ENTITY opcodesoutvalue SYSTEM "opcodes/outvalue.xml">
-<!-- <!ENTITY opcodesoutx SYSTEM "opcodes/outx.xml"> -->
-<!ENTITY opcodesoutz SYSTEM "opcodes/outz.xml">
-<!ENTITY opcodespan SYSTEM "opcodes/pan.xml">
-<!ENTITY opcodespan2 SYSTEM "opcodes/pan2.xml">
-<!ENTITY opcodespareq SYSTEM "opcodes/pareq.xml">
-<!ENTITY opcodespartials SYSTEM "opcodes/partials.xml">
-<!ENTITY opcodespartikkel SYSTEM "opcodes/partikkel.xml">
-<!ENTITY opcodespartikkelsync SYSTEM "opcodes/partikkelsync.xml">
-<!ENTITY opcodespcauchy SYSTEM "opcodes/pcauchy.xml">
-<!ENTITY opcodespchbend SYSTEM "opcodes/pchbend.xml">
-<!ENTITY opcodespchmidib SYSTEM "opcodes/pchmidib.xml">
-<!ENTITY opcodespchmidi SYSTEM "opcodes/pchmidi.xml">
-<!ENTITY opcodespchmidinn SYSTEM "opcodes/pchmidinn.xml">
-<!ENTITY opcodespchoct SYSTEM "opcodes/pchoct.xml">
-<!ENTITY opcodespconvolve SYSTEM "opcodes/pconvolve.xml">
-<!ENTITY opcodespcount SYSTEM "opcodes/pcount.xml">
-<!-- <!ENTITY opcodespeakk SYSTEM "opcodes/peakk.xml"> -->
-<!ENTITY opcodespdclip SYSTEM "opcodes/pdclip.xml">
-<!ENTITY opcodespdhalf SYSTEM "opcodes/pdhalf.xml">
-<!ENTITY opcodespdhalfy SYSTEM "opcodes/pdhalfy.xml">
-<!ENTITY opcodespeak SYSTEM "opcodes/peak.xml">
-<!ENTITY opcodespgmassign SYSTEM "opcodes/pgmassign.xml">
-<!ENTITY opcodesphaser1 SYSTEM "opcodes/phaser1.xml">
-<!ENTITY opcodesphaser2 SYSTEM "opcodes/phaser2.xml">
-<!ENTITY opcodesphasorbnk SYSTEM "opcodes/phasorbnk.xml">
-<!ENTITY opcodesphasor SYSTEM "opcodes/phasor.xml">
-<!ENTITY opcodespindex SYSTEM "opcodes/pindex.xml">
-<!ENTITY opcodespinkish SYSTEM "opcodes/pinkish.xml">
-<!ENTITY opcodespitchamdf SYSTEM "opcodes/pitchamdf.xml">
-<!ENTITY opcodespitch SYSTEM "opcodes/pitch.xml">
-<!ENTITY opcodesplanet SYSTEM "opcodes/planet.xml">
-<!ENTITY opcodespluck SYSTEM "opcodes/pluck.xml">
-<!ENTITY opcodespoisson SYSTEM "opcodes/poisson.xml">
-<!ENTITY opcodespolyaft SYSTEM "opcodes/polyaft.xml">
-<!ENTITY opcodespolynomial SYSTEM "opcodes/polynomial.xml">
-<!ENTITY opcodespop SYSTEM "opcodes/pop.xml">
-<!ENTITY opcodespop_f SYSTEM "opcodes/pop_f.xml">
-<!ENTITY opcodesportk SYSTEM "opcodes/portk.xml">
-<!ENTITY opcodesport SYSTEM "opcodes/port.xml">
-<!ENTITY opcodesposcil3 SYSTEM "opcodes/poscil3.xml">
-<!ENTITY opcodesposcil SYSTEM "opcodes/poscil.xml">
-<!ENTITY opcodespowershape SYSTEM "opcodes/powershape.xml">
-<!ENTITY opcodespowoftwo SYSTEM "opcodes/powoftwo.xml">
-<!ENTITY opcodespow SYSTEM "opcodes/pow.xml">
-<!ENTITY opcodesprealloc SYSTEM "opcodes/prealloc.xml">
-<!ENTITY opcodesprepiano SYSTEM "opcodes/prepiano.xml">
-<!ENTITY opcodesprintk2 SYSTEM "opcodes/printk2.xml">
-<!ENTITY opcodesprintk SYSTEM "opcodes/printk.xml">
-<!ENTITY opcodesprintks SYSTEM "opcodes/printks.xml">
-<!ENTITY opcodesprints SYSTEM "opcodes/prints.xml">
-<!ENTITY opcodesprint SYSTEM "opcodes/print.xml">
-<!ENTITY opcodesproduct SYSTEM "opcodes/product.xml">
-<!ENTITY opcodespset SYSTEM "opcodes/pset.xml">
-<!ENTITY opcodesptrack SYSTEM "opcodes/ptrack.xml">
-<!ENTITY opcodesp SYSTEM "opcodes/p.xml">
-<!ENTITY opcodespush SYSTEM "opcodes/push.xml">
-<!ENTITY opcodespush_f SYSTEM "opcodes/push_f.xml">
-<!ENTITY opcodespvadd SYSTEM "opcodes/pvadd.xml">
-<!ENTITY opcodespvbufread SYSTEM "opcodes/pvbufread.xml">
-<!ENTITY opcodespvcross SYSTEM "opcodes/pvcross.xml">
-<!ENTITY opcodespvinterp SYSTEM "opcodes/pvinterp.xml">
-<!ENTITY opcodespvoc SYSTEM "opcodes/pvoc.xml">
-<!ENTITY opcodespvread SYSTEM "opcodes/pvread.xml">
-<!ENTITY opcodespvsadsyn SYSTEM "opcodes/pvsadsyn.xml">
-<!ENTITY opcodespvsanal SYSTEM "opcodes/pvsanal.xml">
-<!ENTITY opcodespvscross SYSTEM "opcodes/pvscross.xml">
-<!ENTITY opcodespvsmorph SYSTEM "opcodes/pvsmorph.xml">
-<!ENTITY opcodespvscent SYSTEM "opcodes/pvscent.xml">
-<!ENTITY opcodespvsdemix SYSTEM "opcodes/pvsdemix.xml">
-<!ENTITY opcodespvsfread SYSTEM "opcodes/pvsfread.xml">
-<!ENTITY opcodespvsdiskin SYSTEM "opcodes/pvsdiskin.xml">
-<!ENTITY opcodespvsbuffer SYSTEM "opcodes/pvsbuffer.xml">
-<!ENTITY opcodespvsbufread SYSTEM "opcodes/pvsbufread.xml">
-<!ENTITY opcodespvsfreeze SYSTEM "opcodes/pvsfreeze.xml">
-<!ENTITY opcodespvsftr SYSTEM "opcodes/pvsftr.xml">
-<!ENTITY opcodespvsftw SYSTEM "opcodes/pvsftw.xml">
-<!ENTITY opcodespvsinfo SYSTEM "opcodes/pvsinfo.xml">
-<!ENTITY opcodespvsinit SYSTEM "opcodes/pvsinit.xml">
-<!ENTITY opcodespvspitch SYSTEM "opcodes/pvspitch.xml">
-<!ENTITY opcodespvsin SYSTEM "opcodes/pvsin.xml">
-<!ENTITY opcodespvsout SYSTEM "opcodes/pvsout.xml">
-<!ENTITY opcodespvsosc SYSTEM "opcodes/pvsosc.xml">
-<!ENTITY opcodespvsdisp SYSTEM "opcodes/pvsdisp.xml">
-<!ENTITY opcodespvsbin SYSTEM "opcodes/pvsbin.xml">
-<!ENTITY opcodespvsfwrite SYSTEM "opcodes/pvsfwrite.xml">
-<!ENTITY opcodespvsmaska SYSTEM "opcodes/pvsmaska.xml">
-<!ENTITY opcodespvsynth SYSTEM "opcodes/pvsynth.xml">
-
-<!ENTITY opcodespvsarp SYSTEM "opcodes/pvsarp.xml">
-<!ENTITY opcodespvsifd SYSTEM "opcodes/pvsifd.xml">
-<!ENTITY opcodespvsvoc SYSTEM "opcodes/pvsvoc.xml">
-<!ENTITY opcodespvscale SYSTEM "opcodes/pvscale.xml">
-<!ENTITY opcodespvshift SYSTEM "opcodes/pvshift.xml">
-<!ENTITY opcodespvsmix SYSTEM "opcodes/pvsmix.xml">
-<!ENTITY opcodespvsmooth SYSTEM "opcodes/pvsmooth.xml">
-<!ENTITY opcodespvsfilter SYSTEM "opcodes/pvsfilter.xml">
-<!ENTITY opcodespvsblur SYSTEM "opcodes/pvsblur.xml">
-<!ENTITY opcodespvstencil SYSTEM "opcodes/pvstencil.xml">
-<!ENTITY opcodespvsbandp SYSTEM "opcodes/pvsbandp.xml">
-<!ENTITY opcodespvsbandr SYSTEM "opcodes/pvsbandr.xml">
-
-<!ENTITY opcodespyassign SYSTEM "opcodes/pyassign.xml">
-<!ENTITY opcodespycall SYSTEM "opcodes/pycall.xml">
-<!ENTITY opcodespyeval SYSTEM "opcodes/pyeval.xml">
-<!ENTITY opcodespyexec SYSTEM "opcodes/pyexec.xml">
-<!ENTITY opcodespyinit SYSTEM "opcodes/pyinit.xml">
-<!ENTITY opcodespyrun SYSTEM "opcodes/pyrun.xml">
-
-<!ENTITY opcodesraises SYSTEM "opcodes/raises.xml">
-<!ENTITY opcodesrandh SYSTEM "opcodes/randh.xml">
-<!ENTITY opcodesrandi SYSTEM "opcodes/randi.xml">
-<!ENTITY opcodesrandomh SYSTEM "opcodes/randomh.xml">
-<!ENTITY opcodesrandomi SYSTEM "opcodes/randomi.xml">
-<!ENTITY opcodesrandom SYSTEM "opcodes/random.xml">
-<!ENTITY opcodesrand SYSTEM "opcodes/rand.xml">
-<!ENTITY opcodesrbjeq SYSTEM "opcodes/rbjeq.xml">
-<!ENTITY opcodesreverbsc SYSTEM "opcodes/reverbsc.xml">
-<!ENTITY opcodesreadclock SYSTEM "opcodes/readclock.xml">
-<!ENTITY opcodesreadk2 SYSTEM "opcodes/readk2.xml">
-<!ENTITY opcodesreadk3 SYSTEM "opcodes/readk3.xml">
-<!ENTITY opcodesreadk4 SYSTEM "opcodes/readk4.xml">
-<!ENTITY opcodesreadk SYSTEM "opcodes/readk.xml">
-<!ENTITY opcodesreinit SYSTEM "opcodes/reinit.xml">
-<!ENTITY opcodesrelease SYSTEM "opcodes/release.xml">
-<!ENTITY opcodesremove SYSTEM "opcodes/remove.xml">
-<!ENTITY opcodesremoteport SYSTEM "opcodes/remoteport.xml">
-<!ENTITY opcodesrepluck SYSTEM "opcodes/repluck.xml">
-<!ENTITY opcodesresonk SYSTEM "opcodes/resonk.xml">
-<!ENTITY opcodesresonr SYSTEM "opcodes/resonr.xml">
-<!ENTITY opcodesreson SYSTEM "opcodes/reson.xml">
-<!ENTITY opcodesresonx SYSTEM "opcodes/resonx.xml">
-<!ENTITY opcodesresonxk SYSTEM "opcodes/resonxk.xml">
-<!ENTITY opcodesresony SYSTEM "opcodes/resony.xml">
-<!ENTITY opcodesresonz SYSTEM "opcodes/resonz.xml">
-<!ENTITY opcodesresyn SYSTEM "opcodes/resyn.xml">
-<!ENTITY opcodesreverb2 SYSTEM "opcodes/reverb2.xml">
-<!ENTITY opcodesreverb SYSTEM "opcodes/reverb.xml">
-<!ENTITY opcodesrewindscore SYSTEM "opcodes/rewindscore.xml">
-<!ENTITY opcodesrezzy SYSTEM "opcodes/rezzy.xml">
-<!ENTITY opcodesrigoto SYSTEM "opcodes/rigoto.xml">
-<!ENTITY opcodesrireturn SYSTEM "opcodes/rireturn.xml">
-<!ENTITY opcodesrms SYSTEM "opcodes/rms.xml">
-<!ENTITY opcodesround SYSTEM "opcodes/round.xml">
-<!ENTITY opcodesrnd31 SYSTEM "opcodes/rnd31.xml">
-<!ENTITY opcodesrnd SYSTEM "opcodes/rnd.xml">
-<!ENTITY opcodesrspline SYSTEM "opcodes/rspline.xml">
-<!ENTITY opcodesrtclock SYSTEM "opcodes/rtclock.xml">
-<!ENTITY opcodess16b14 SYSTEM "opcodes/s16b14.xml">
-<!ENTITY opcodess32b14 SYSTEM "opcodes/s32b14.xml">
-<!ENTITY opcodessamphold SYSTEM "opcodes/samphold.xml">
-<!ENTITY opcodessandpaper SYSTEM "opcodes/sandpaper.xml">
-<!ENTITY opcodesscale SYSTEM "opcodes/scale.xml">
-<!ENTITY opcodesscanhammer SYSTEM "opcodes/scanhammer.xml">
-<!ENTITY opcodesscans SYSTEM "opcodes/scans.xml">
-<!ENTITY opcodesscantable SYSTEM "opcodes/scantable.xml">
-<!-- <!ENTITY opcodesscanu SYSTEM "opcodes/scanu.xml"> -->
-<!ENTITY opcodesscoreline SYSTEM "opcodes/scoreline.xml">
-<!ENTITY opcodesscoreline_i SYSTEM "opcodes/scoreline_i.xml">
-<!ENTITY opcodesschedkwhen SYSTEM "opcodes/schedkwhen.xml">
-<!ENTITY opcodesschedkwhennamed SYSTEM "opcodes/schedkwhennamed.xml">
-<!ENTITY opcodesschedule SYSTEM "opcodes/schedule.xml">
-<!ENTITY opcodesschedwhen SYSTEM "opcodes/schedwhen.xml">
-<!ENTITY opcodesseed SYSTEM "opcodes/seed.xml">
-<!ENTITY opcodessekere SYSTEM "opcodes/sekere.xml">
-<!ENTITY opcodessemitone SYSTEM "opcodes/semitone.xml">
-<!ENTITY opcodessensekey SYSTEM "opcodes/sensekey.xml">
-<!ENTITY opcodessense SYSTEM "opcodes/sense.xml">
-<!ENTITY opcodesseqtime SYSTEM "opcodes/seqtime.xml">
-<!ENTITY opcodesseqtime2 SYSTEM "opcodes/seqtime2.xml">
-<!-- <!ENTITY opcodessetctrl SYSTEM "opcodes/setctrl.xml"> -->
-<!ENTITY opcodessetksmps SYSTEM "opcodes/setksmps.xml">
-<!ENTITY opcodessetscorepos SYSTEM "opcodes/setscorepos.xml">
-<!ENTITY opcodessfilist SYSTEM "opcodes/sfilist.xml">
-<!ENTITY opcodessfinstr3m SYSTEM "opcodes/sfinstr3m.xml">
-<!ENTITY opcodessfinstr3 SYSTEM "opcodes/sfinstr3.xml">
-<!ENTITY opcodessfinstrm SYSTEM "opcodes/sfinstrm.xml">
-<!ENTITY opcodessfinstr SYSTEM "opcodes/sfinstr.xml">
-<!ENTITY opcodessfload SYSTEM "opcodes/sfload.xml">
-<!ENTITY opcodessfpassign SYSTEM "opcodes/sfpassign.xml">
-<!ENTITY opcodessfplay3m SYSTEM "opcodes/sfplay3m.xml">
-<!ENTITY opcodessfplay3 SYSTEM "opcodes/sfplay3.xml">
-<!ENTITY opcodessfplaym SYSTEM "opcodes/sfplaym.xml">
-<!ENTITY opcodessfplay SYSTEM "opcodes/sfplay.xml">
-<!ENTITY opcodessflooper SYSTEM "opcodes/sflooper.xml">
-<!ENTITY opcodessfplist SYSTEM "opcodes/sfplist.xml">
-<!ENTITY opcodessfpreset SYSTEM "opcodes/sfpreset.xml">
-<!ENTITY opcodesshaker SYSTEM "opcodes/shaker.xml">
-<!ENTITY opcodessinh SYSTEM "opcodes/sinh.xml">
-<!ENTITY opcodessininv SYSTEM "opcodes/sininv.xml">
-<!ENTITY opcodessin SYSTEM "opcodes/sin.xml">
-<!ENTITY opcodessinsyn SYSTEM "opcodes/sinsyn.xml">
-<!ENTITY opcodessndloop SYSTEM "opcodes/sndloop.xml">
-<!ENTITY opcodessyncphasor SYSTEM "opcodes/syncphasor.xml">
-<!ENTITY opcodessleighbells SYSTEM "opcodes/sleighbells.xml">
-<!ENTITY opcodesslider16f SYSTEM "opcodes/slider16f.xml">
-<!ENTITY opcodesslider16 SYSTEM "opcodes/slider16.xml">
-<!ENTITY opcodesslider32f SYSTEM "opcodes/slider32f.xml">
-<!ENTITY opcodesslider32 SYSTEM "opcodes/slider32.xml">
-<!ENTITY opcodesslider64f SYSTEM "opcodes/slider64f.xml">
-<!ENTITY opcodesslider64 SYSTEM "opcodes/slider64.xml">
-<!ENTITY opcodesslider8f SYSTEM "opcodes/slider8f.xml">
-<!ENTITY opcodesslider8 SYSTEM "opcodes/slider8.xml">
-<!ENTITY opcodesslider16tablef SYSTEM "opcodes/slider16tablef.xml">
-<!ENTITY opcodesslider16table SYSTEM "opcodes/slider16table.xml">
-<!ENTITY opcodesslider32tablef SYSTEM "opcodes/slider32tablef.xml">
-<!ENTITY opcodesslider32table SYSTEM "opcodes/slider32table.xml">
-<!ENTITY opcodesslider64tablef SYSTEM "opcodes/slider64tablef.xml">
-<!ENTITY opcodesslider64table SYSTEM "opcodes/slider64table.xml">
-<!ENTITY opcodesslider8tablef SYSTEM "opcodes/slider8tablef.xml">
-<!ENTITY opcodesslider8table SYSTEM "opcodes/slider8table.xml">
-<!ENTITY opcodessliderkawai SYSTEM "opcodes/sliderkawai.xml">
-
-<!ENTITY opcodessocksend SYSTEM "opcodes/socksend.xml">
-<!ENTITY opcodessockrecv SYSTEM "opcodes/sockrecv.xml">
-
-<!ENTITY opcodessndload SYSTEM "opcodes/sndload.xml">
-<!ENTITY opcodessndwarp SYSTEM "opcodes/sndwarp.xml">
-<!ENTITY opcodessndwarpst SYSTEM "opcodes/sndwarpst.xml">
-<!ENTITY opcodessoundin SYSTEM "opcodes/soundin.xml">
-<!ENTITY opcodessoundout SYSTEM "opcodes/soundout.xml">
-<!ENTITY opcodessoundouts SYSTEM "opcodes/soundouts.xml">
-<!ENTITY opcodesspace SYSTEM "opcodes/space.xml">
-<!--<!ENTITY opcodesspat3di SYSTEM "opcodes/spat3di.xml">
-<!ENTITY opcodesspat3d SYSTEM "opcodes/spat3d.xml">
-<!ENTITY opcodesspat3dt SYSTEM "opcodes/spat3dt.xml">-->
-<!ENTITY opcodesspdist SYSTEM "opcodes/spdist.xml">
-<!--<!ENTITY opcodesspecaddm SYSTEM "opcodes/specaddm.xml">
-<!ENTITY opcodesspecdiff SYSTEM "opcodes/specdiff.xml">
-<!ENTITY opcodesspecdisp SYSTEM "opcodes/specdisp.xml">
-<!ENTITY opcodesspecfilt SYSTEM "opcodes/specfilt.xml">
-<!ENTITY opcodesspechist SYSTEM "opcodes/spechist.xml">
-<!ENTITY opcodesspecptrk SYSTEM "opcodes/specptrk.xml">
-<!ENTITY opcodesspecscal SYSTEM "opcodes/specscal.xml">
-<!ENTITY opcodesspecsum SYSTEM "opcodes/specsum.xml">
-<!ENTITY opcodesspectrum SYSTEM "opcodes/spectrum.xml">-->
-<!ENTITY opcodessplitrig SYSTEM "opcodes/splitrig.xml">
-<!ENTITY opcodesspsend SYSTEM "opcodes/spsend.xml">
-<!ENTITY opcodessqrt SYSTEM "opcodes/sqrt.xml">
-<!ENTITY opcodessr SYSTEM "opcodes/sr.xml">
-<!ENTITY opcodesstack SYSTEM "opcodes/stack.xml">
-<!ENTITY opcodesstatevar SYSTEM "opcodes/statevar.xml">
-<!ENTITY opcodesstix SYSTEM "opcodes/stix.xml">
-<!ENTITY opcodesstreson SYSTEM "opcodes/streson.xml">
-<!ENTITY opcodesstrset SYSTEM "opcodes/strset.xml">
-
-<!ENTITY opcodesstrchar SYSTEM "opcodes/strchar.xml">
-<!ENTITY opcodesstrchark SYSTEM "opcodes/strchark.xml">
-<!ENTITY opcodesstrcpy SYSTEM "opcodes/strcpy.xml">
-<!ENTITY opcodesstrcpyk SYSTEM "opcodes/strcpyk.xml">
-<!ENTITY opcodesstrcat SYSTEM "opcodes/strcat.xml">
-<!ENTITY opcodesstrcatk SYSTEM "opcodes/strcatk.xml">
-<!ENTITY opcodesstrcmp SYSTEM "opcodes/strcmp.xml">
-<!ENTITY opcodesstrcmpk SYSTEM "opcodes/strcmpk.xml">
-<!ENTITY opcodesstrget SYSTEM "opcodes/strget.xml">
-<!ENTITY opcodesstrindex SYSTEM "opcodes/strindex.xml">
-<!ENTITY opcodesstrindexk SYSTEM "opcodes/strindexk.xml">
-<!ENTITY opcodesstrrindex SYSTEM "opcodes/strrindex.xml">
-<!ENTITY opcodesstrrindexk SYSTEM "opcodes/strrindexk.xml">
-<!ENTITY opcodesstrlen SYSTEM "opcodes/strlen.xml">
-<!ENTITY opcodesstrlenk SYSTEM "opcodes/strlenk.xml">
-<!ENTITY opcodesstrlower SYSTEM "opcodes/strlower.xml">
-<!ENTITY opcodesstrlowerk SYSTEM "opcodes/strlowerk.xml">
-<!ENTITY opcodessprintf SYSTEM "opcodes/sprintf.xml">
-<!ENTITY opcodessprintfk SYSTEM "opcodes/sprintfk.xml">
-<!ENTITY opcodesprintf SYSTEM "opcodes/printf.xml">
-<!ENTITY opcodesputs SYSTEM "opcodes/puts.xml">
-<!ENTITY opcodesstrsub SYSTEM "opcodes/strsub.xml">
-<!ENTITY opcodesstrsubk SYSTEM "opcodes/strsubk.xml">
-<!ENTITY opcodesstrtod SYSTEM "opcodes/strtod.xml">
-<!ENTITY opcodesstrtodk SYSTEM "opcodes/strtodk.xml">
-<!ENTITY opcodesstrtol SYSTEM "opcodes/strtol.xml">
-<!ENTITY opcodesstrtolk SYSTEM "opcodes/strtolk.xml">
-<!ENTITY opcodesstrupper SYSTEM "opcodes/strupper.xml">
-<!ENTITY opcodesstrupperk SYSTEM "opcodes/strupperk.xml">
-
-<!ENTITY opcodessubinstr SYSTEM "opcodes/subinstr.xml">
-<!ENTITY opcodessubinstrinit SYSTEM "opcodes/subinstrinit.xml">
-<!ENTITY opcodessubtracts SYSTEM "opcodes/subtracts.xml">
-<!ENTITY opcodessum SYSTEM "opcodes/sum.xml">
-<!ENTITY opcodessvfilter SYSTEM "opcodes/svfilter.xml">
-<!ENTITY opcodessyncgrain SYSTEM "opcodes/syncgrain.xml">
-<!ENTITY opcodessyncloop SYSTEM "opcodes/syncloop.xml">
-<!ENTITY opcodesdiskgrain SYSTEM "opcodes/diskgrain.xml">
-<!ENTITY opcodessystem SYSTEM "opcodes/system.xml">
-<!ENTITY opcodestable3 SYSTEM "opcodes/table3.xml">
-<!ENTITY opcodestablecopy SYSTEM "opcodes/tablecopy.xml">
-<!ENTITY opcodestablegpw SYSTEM "opcodes/tablegpw.xml">
-<!ENTITY opcodestableicopy SYSTEM "opcodes/tableicopy.xml">
-<!ENTITY opcodestableigpw SYSTEM "opcodes/tableigpw.xml">
-<!ENTITY opcodestableikt SYSTEM "opcodes/tableikt.xml">
-<!ENTITY opcodestableimix SYSTEM "opcodes/tableimix.xml">
-<!ENTITY opcodestablei SYSTEM "opcodes/tablei.xml">
-<!ENTITY opcodestableiw SYSTEM "opcodes/tableiw.xml">
-<!ENTITY opcodestablekt SYSTEM "opcodes/tablekt.xml">
-<!ENTITY opcodestablemix SYSTEM "opcodes/tablemix.xml">
-<!ENTITY opcodestableng SYSTEM "opcodes/tableng.xml">
-<!ENTITY opcodestablera SYSTEM "opcodes/tablera.xml">
-<!ENTITY opcodestableseg SYSTEM "opcodes/tableseg.xml">
-<!ENTITY opcodestable SYSTEM "opcodes/table.xml">
-<!ENTITY opcodestablewa SYSTEM "opcodes/tablewa.xml">
-<!ENTITY opcodestablewkt SYSTEM "opcodes/tablewkt.xml">
-<!ENTITY opcodestablew SYSTEM "opcodes/tablew.xml">
-<!ENTITY opcodestablexkt SYSTEM "opcodes/tablexkt.xml">
-<!ENTITY opcodestablexseg SYSTEM "opcodes/tablexseg.xml">
-<!ENTITY opcodestabmorph SYSTEM "opcodes/tabmorph.xml">
-<!ENTITY opcodestabmorpha SYSTEM "opcodes/tabmorpha.xml">
-<!ENTITY opcodestabmorphak SYSTEM "opcodes/tabmorphak.xml">
-<!ENTITY opcodestabmorphi SYSTEM "opcodes/tabmorphi.xml">
-<!ENTITY opcodestabplay SYSTEM "opcodes/tabplay.xml">
-<!ENTITY opcodestabrec SYSTEM "opcodes/tabrec.xml">
-<!ENTITY opcodestb SYSTEM "opcodes/tb.xml">
-<!ENTITY opcodestab SYSTEM "opcodes/tab.xml">
-<!ENTITY opcodestambourine SYSTEM "opcodes/tambourine.xml">
-<!ENTITY opcodestanh SYSTEM "opcodes/tanh.xml">
-<!ENTITY opcodestaninv2 SYSTEM "opcodes/taninv2.xml">
-<!ENTITY opcodestaninv SYSTEM "opcodes/taninv.xml">
-<!ENTITY opcodestan SYSTEM "opcodes/tan.xml">
-<!ENTITY opcodestbvcf SYSTEM "opcodes/tbvcf.xml">
-<!ENTITY opcodestempest SYSTEM "opcodes/tempest.xml">
-<!ENTITY opcodestempo SYSTEM "opcodes/tempo.xml">
-<!ENTITY opcodestempoval SYSTEM "opcodes/tempoval.xml">
-<!ENTITY opcodestigoto SYSTEM "opcodes/tigoto.xml">
-<!ENTITY opcodestimeinstk SYSTEM "opcodes/timeinstk.xml">
-<!ENTITY opcodestimeinsts SYSTEM "opcodes/timeinsts.xml">
-<!ENTITY opcodestimek SYSTEM "opcodes/timek.xml">
-<!ENTITY opcodestimes SYSTEM "opcodes/times.xml">
-<!ENTITY opcodestimedseq SYSTEM "opcodes/timedseq.xml">
-<!ENTITY opcodestimout SYSTEM "opcodes/timout.xml">
-<!ENTITY opcodestival SYSTEM "opcodes/tival.xml">
-<!ENTITY opcodestlineto SYSTEM "opcodes/tlineto.xml">
-<!ENTITY opcodestonek SYSTEM "opcodes/tonek.xml">
-<!ENTITY opcodestone SYSTEM "opcodes/tone.xml">
-<!ENTITY opcodestonex SYSTEM "opcodes/tonex.xml">
-<!ENTITY opcodestrandom SYSTEM "opcodes/trandom.xml">
-<!ENTITY opcodestranseg SYSTEM "opcodes/transeg.xml">
-
-<!ENTITY opcodestradsyn SYSTEM "opcodes/tradsyn.xml">
-<!ENTITY opcodestrcross SYSTEM "opcodes/trcross.xml">
-<!ENTITY opcodestrfilter SYSTEM "opcodes/trfilter.xml">
-<!ENTITY opcodestrhighest SYSTEM "opcodes/trhighest.xml">
-<!ENTITY opcodestrlowest SYSTEM "opcodes/trlowest.xml">
-<!ENTITY opcodestrmix SYSTEM "opcodes/trmix.xml">
-<!ENTITY opcodestrsplit SYSTEM "opcodes/trsplit.xml">
-<!ENTITY opcodestrshift SYSTEM "opcodes/trshift.xml">
-<!ENTITY opcodestrscale SYSTEM "opcodes/trscale.xml">
-
-<!ENTITY opcodestrigger SYSTEM "opcodes/trigger.xml">
-<!ENTITY opcodestrigseq SYSTEM "opcodes/trigseq.xml">
-<!ENTITY opcodestrirand SYSTEM "opcodes/trirand.xml">
-<!ENTITY opcodesturnoff SYSTEM "opcodes/turnoff.xml">
-<!ENTITY opcodesturnoff2 SYSTEM "opcodes/turnoff2.xml">
-<!ENTITY opcodesturnon SYSTEM "opcodes/turnon.xml">
-<!ENTITY opcodesundef SYSTEM "opcodes/undef.xml">
-<!ENTITY opcodesunirand SYSTEM "opcodes/unirand.xml">
-<!ENTITY opcodesupsamp SYSTEM "opcodes/upsamp.xml">
-<!ENTITY opcodesurd SYSTEM "opcodes/urd.xml">
-
-<!ENTITY opcodesvadd SYSTEM "opcodes/vadd.xml">
-<!ENTITY opcodesvexp SYSTEM "opcodes/vexp.xml">
-<!ENTITY opcodesvmult SYSTEM "opcodes/vmult.xml">
-<!ENTITY opcodesvpow SYSTEM "opcodes/vpow.xml">
-<!ENTITY opcodesvaget SYSTEM "opcodes/vaget.xml">
-<!ENTITY opcodesvalpass SYSTEM "opcodes/valpass.xml">
-<!ENTITY opcodesvaset SYSTEM "opcodes/vaset.xml">
-<!--<!ENTITY opcodesvbap16move SYSTEM "opcodes/vbap16move.xml">
-<!ENTITY opcodesvbap16 SYSTEM "opcodes/vbap16.xml">
-<!ENTITY opcodesvbap4move SYSTEM "opcodes/vbap4move.xml">
-<!ENTITY opcodesvbap4 SYSTEM "opcodes/vbap4.xml">
-<!ENTITY opcodesvbap8move SYSTEM "opcodes/vbap8move.xml">
-<!ENTITY opcodesvbap8 SYSTEM "opcodes/vbap8.xml">
-<!ENTITY opcodesvbaplsinit SYSTEM "opcodes/vbaplsinit.xml">
-<!ENTITY opcodesvbapzmove SYSTEM "opcodes/vbapzmove.xml">
-<!ENTITY opcodesvbapz SYSTEM "opcodes/vbapz.xml">-->
-<!ENTITY opcodesvco2ft SYSTEM "opcodes/vco2ft.xml">
-<!ENTITY opcodesvco2ift SYSTEM "opcodes/vco2ift.xml">
-<!ENTITY opcodesvco2init SYSTEM "opcodes/vco2init.xml">
-<!ENTITY opcodesvco2 SYSTEM "opcodes/vco2.xml">
-<!ENTITY opcodesvcomb SYSTEM "opcodes/vcomb.xml">
-<!ENTITY opcodesvco SYSTEM "opcodes/vco.xml">
-<!ENTITY opcodesvdelay3 SYSTEM "opcodes/vdelay3.xml">
-<!ENTITY opcodesvdelay SYSTEM "opcodes/vdelay.xml">
-<!ENTITY opcodesvdelayxq SYSTEM "opcodes/vdelayxq.xml">
-<!ENTITY opcodesvdelayx SYSTEM "opcodes/vdelayx.xml">
-<!ENTITY opcodesvdelayxs SYSTEM "opcodes/vdelayxs.xml">
-<!ENTITY opcodesvdelayxwq SYSTEM "opcodes/vdelayxwq.xml">
-<!ENTITY opcodesvdelayxw SYSTEM "opcodes/vdelayxw.xml">
-<!ENTITY opcodesvdelayxws SYSTEM "opcodes/vdelayxws.xml">
-
-<!ENTITY opcodesvtable1k SYSTEM "opcodes/vtable1k.xml">
-<!ENTITY opcodesvtablei SYSTEM "opcodes/vtablei.xml">
-<!ENTITY opcodesvtablek SYSTEM "opcodes/vtablek.xml">
-<!ENTITY opcodesvtablea SYSTEM "opcodes/vtablea.xml">
-<!ENTITY opcodesvtablewi SYSTEM "opcodes/vtablewi.xml">
-<!ENTITY opcodesvtablewk SYSTEM "opcodes/vtablewk.xml">
-<!ENTITY opcodesvtablewa SYSTEM "opcodes/vtablewa.xml">
-<!ENTITY opcodesvtabi SYSTEM "opcodes/vtabi.xml">
-<!ENTITY opcodesvtabk SYSTEM "opcodes/vtabk.xml">
-<!ENTITY opcodesvtaba SYSTEM "opcodes/vtaba.xml">
-<!ENTITY opcodesvtabwi SYSTEM "opcodes/vtabwi.xml">
-<!ENTITY opcodesvtabwk SYSTEM "opcodes/vtabwk.xml">
-<!ENTITY opcodesvtabwa SYSTEM "opcodes/vtabwa.xml">
-<!ENTITY opcodesvadd SYSTEM "opcodes/vadd.xml">
-<!ENTITY opcodesvaddi SYSTEM "opcodes/vadd_i.xml">
-<!ENTITY opcodesvmult SYSTEM "opcodes/vmult.xml">
-<!ENTITY opcodesvmulti SYSTEM "opcodes/vmult_i.xml">
-<!ENTITY opcodesvpow SYSTEM "opcodes/vpow.xml">
-<!ENTITY opcodesvpowi SYSTEM "opcodes/vpow_i.xml">
-<!ENTITY opcodesvexp SYSTEM "opcodes/vexp.xml">
-<!ENTITY opcodesvexpi SYSTEM "opcodes/vexp_i.xml">
-<!ENTITY opcodesvlinseg SYSTEM "opcodes/vlinseg.xml">
-<!ENTITY opcodesvexpseg SYSTEM "opcodes/vexpseg.xml">
-<!ENTITY opcodesvaddv SYSTEM "opcodes/vaddv.xml">
-<!ENTITY opcodesvsubv SYSTEM "opcodes/vsubv.xml">
-<!ENTITY opcodesvmultv SYSTEM "opcodes/vmultv.xml">
-<!ENTITY opcodesvdivv SYSTEM "opcodes/vdivv.xml">
-<!ENTITY opcodesvpowv SYSTEM "opcodes/vpowv.xml">
-<!ENTITY opcodesvexpv SYSTEM "opcodes/vexpv.xml">
-<!ENTITY opcodesvaddv_i SYSTEM "opcodes/vaddv_i.xml">
-<!ENTITY opcodesvsubv_i SYSTEM "opcodes/vsubv_i.xml">
-<!ENTITY opcodesvmultv_i SYSTEM "opcodes/vmultv_i.xml">
-<!ENTITY opcodesvdivv_i SYSTEM "opcodes/vdivv_i.xml">
-<!ENTITY opcodesvpowv_i SYSTEM "opcodes/vpowv_i.xml">
-<!ENTITY opcodesvexpv_i SYSTEM "opcodes/vexpv_i.xml">
-<!ENTITY opcodesvcopy SYSTEM "opcodes/vcopy.xml">
-<!ENTITY opcodesvcopy_i SYSTEM "opcodes/vcopy_i.xml">
-<!ENTITY opcodesvmap SYSTEM "opcodes/vmap.xml">
-<!ENTITY opcodesvlimit SYSTEM "opcodes/vlimit.xml">
-<!ENTITY opcodesvwrap SYSTEM "opcodes/vwrap.xml">
-<!ENTITY opcodesvmirror SYSTEM "opcodes/vmirror.xml">
-
-<!ENTITY opcodesvcella SYSTEM "opcodes/vcella.xml">
-<!ENTITY opcodesvdelayk SYSTEM "opcodes/vdelayk.xml">
-
-<!ENTITY opcodesvport SYSTEM "opcodes/vport.xml">
-<!ENTITY opcodesvecdelay SYSTEM "opcodes/vecdelay.xml">
-
-<!ENTITY opcodesvrandh SYSTEM "opcodes/vrandh.xml">
-<!ENTITY opcodesvrandi SYSTEM "opcodes/vrandi.xml">
-
-<!ENTITY opcodesveloc SYSTEM "opcodes/veloc.xml">
-<!ENTITY opcodesvibes SYSTEM "opcodes/vibes.xml">
-<!ENTITY opcodesvibrato SYSTEM "opcodes/vibrato.xml">
-<!ENTITY opcodesvibr SYSTEM "opcodes/vibr.xml">
-<!ENTITY opcodesvincr SYSTEM "opcodes/vincr.xml">
-<!ENTITY opcodesvlowres SYSTEM "opcodes/vlowres.xml">
-<!ENTITY opcodesvoice SYSTEM "opcodes/voice.xml">
-<!ENTITY opcodesvosim SYSTEM "opcodes/vosim.xml">
-<!ENTITY opcodesvpvoc SYSTEM "opcodes/vpvoc.xml">
-<!ENTITY opcodesvphaseseg SYSTEM "opcodes/vphaseseg.xml">
-<!ENTITY opcodeswaveset SYSTEM "opcodes/waveset.xml">
-<!ENTITY opcodesweibull SYSTEM "opcodes/weibull.xml">
-<!ENTITY opcodeswgbowedbar SYSTEM "opcodes/wgbowedbar.xml">
-<!ENTITY opcodeswgbow SYSTEM "opcodes/wgbow.xml">
-<!ENTITY opcodeswgbrass SYSTEM "opcodes/wgbrass.xml">
-<!ENTITY opcodeswgclar SYSTEM "opcodes/wgclar.xml">
-<!ENTITY opcodeswgflute SYSTEM "opcodes/wgflute.xml">
-<!ENTITY opcodeswgpluck2 SYSTEM "opcodes/wgpluck2.xml">
-<!ENTITY opcodeswgpluck SYSTEM "opcodes/wgpluck.xml">
-<!ENTITY opcodeswguide1 SYSTEM "opcodes/wguide1.xml">
-<!ENTITY opcodeswguide2 SYSTEM "opcodes/wguide2.xml">
-<!ENTITY opcodeswrap SYSTEM "opcodes/wrap.xml">
-<!ENTITY opcodeswterrain SYSTEM "opcodes/wterrain.xml">
-<!ENTITY opcodesxadsr SYSTEM "opcodes/xadsr.xml">
-<!ENTITY opcodesxin SYSTEM "opcodes/xin.xml">
-<!ENTITY opcodesxout SYSTEM "opcodes/xout.xml">
-<!--<!ENTITY opcodesxscanmap SYSTEM "opcodes/xscanmap.xml">
-<!ENTITY opcodesxscansmap SYSTEM "opcodes/xscansmap.xml">
-<!ENTITY opcodesxscans SYSTEM "opcodes/xscans.xml">
-<!ENTITY opcodesxscanu SYSTEM "opcodes/xscanu.xml">-->
-<!ENTITY opcodesxtratim SYSTEM "opcodes/xtratim.xml">
-<!ENTITY opcodesxyin SYSTEM "opcodes/xyin.xml">
-<!ENTITY opcodeszacl SYSTEM "opcodes/zacl.xml">
-<!ENTITY opcodeszakinit SYSTEM "opcodes/zakinit.xml">
-<!ENTITY opcodeszamod SYSTEM "opcodes/zamod.xml">
-<!ENTITY opcodeszarg SYSTEM "opcodes/zarg.xml">
-<!ENTITY opcodeszar SYSTEM "opcodes/zar.xml">
-<!ENTITY opcodeszawm SYSTEM "opcodes/zawm.xml">
-<!ENTITY opcodeszaw SYSTEM "opcodes/zaw.xml">
-<!ENTITY opcodeszfilter2 SYSTEM "opcodes/zfilter2.xml">
-<!ENTITY opcodeszir SYSTEM "opcodes/zir.xml">
-<!ENTITY opcodesziwm SYSTEM "opcodes/ziwm.xml">
-<!ENTITY opcodesziw SYSTEM "opcodes/ziw.xml">
-<!ENTITY opcodeszkcl SYSTEM "opcodes/zkcl.xml">
-<!ENTITY opcodeszkmod SYSTEM "opcodes/zkmod.xml">
-<!ENTITY opcodeszkr SYSTEM "opcodes/zkr.xml">
-<!ENTITY opcodeszkwm SYSTEM "opcodes/zkwm.xml">
-<!ENTITY opcodeszkw SYSTEM "opcodes/zkw.xml">
-
-<!ENTITY orch SYSTEM "orch/top.xml">
-<!ENTITY orchdirfiles SYSTEM "orch/dirfiles.xml">
-<!ENTITY orchexpress SYSTEM "orch/express.xml">
-<!ENTITY orchheader SYSTEM "orch/header.xml">
-<!ENTITY orchmacros SYSTEM "orch/macros.xml">
-<!ENTITY orchiblock SYSTEM "orch/iblock.xml">
-<!ENTITY orchkvar SYSTEM "orch/kvar.xml">
-<!ENTITY orchnomen SYSTEM "orch/nomen.xml">
-<!ENTITY orchstatemnt SYSTEM "orch/statemnt.xml">
-<!--<!ENTITY orchvarinit SYSTEM "orch/varinit.xml">-->
-<!ENTITY orchnamedinstruments SYSTEM "orch/namedInstruments.xml">
-<!ENTITY orchUDO SYSTEM "orch/UDO.xml">
-
-<!ENTITY pitch SYSTEM "pitch/top.xml">
-<!ENTITY pitchfuncs SYSTEM "pitch/funcs.xml">
-<!ENTITY pitchtuning SYSTEM "pitch/tuning.xml">
-
-<!ENTITY score SYSTEM "score/top.xml">
-<!ENTITY scoreampgen SYSTEM "score/ampgen.xml">
-<!ENTITY scoreeval SYSTEM "score/eval.xml">
-<!ENTITY scorefilegen SYSTEM "score/filegen.xml">
-<!ENTITY scoremacros SYSTEM "score/macros.xml">
-<!ENTITY scoremixgen SYSTEM "score/mixgen.xml">
-<!ENTITY scoremult SYSTEM "score/mult.xml">
-<!ENTITY scorenextp SYSTEM "score/nextp.xml">
-<!ENTITY scorestrings SYSTEM "score/strings.xml">
-
-<!ENTITY scorenumgen SYSTEM "score/numgen.xml">
-<!ENTITY scorepreproc SYSTEM "score/preproc.xml">
-<!ENTITY scoreramp SYSTEM "score/ramp.xml">
-<!ENTITY scorestatemnt SYSTEM "score/statemnt.xml">
-<!--<!ENTITY scorerandgen SYSTEM "score/randgen.xml">
-<!ENTITY scoreseggen SYSTEM "score/seggen.xml">
-<!ENTITY scoresinegen SYSTEM "score/sinegen.xml">
-<!ENTITY scorewavegen SYSTEM "score/wavegen.xml">
-<!ENTITY scorewingen SYSTEM "score/wingen.xml">-->
-
-<!ENTITY scoregens SYSTEM "scoregens/top.xml">
-<!ENTITY scoregensa SYSTEM "scoregens/a.xml">
-<!ENTITY scoregensb SYSTEM "scoregens/b.xml">
-<!ENTITY scoregense SYSTEM "scoregens/e.xml">
-<!ENTITY scoregensf SYSTEM "scoregens/f.xml">
-<!ENTITY scoregensgen01 SYSTEM "scoregens/gen01.xml">
-<!ENTITY scoregensgen02 SYSTEM "scoregens/gen02.xml">
-<!ENTITY scoregensgen03 SYSTEM "scoregens/gen03.xml">
-<!ENTITY scoregensgen04 SYSTEM "scoregens/gen04.xml">
-<!ENTITY scoregensgen05 SYSTEM "scoregens/gen05.xml">
-<!ENTITY scoregensgen06 SYSTEM "scoregens/gen06.xml">
-<!ENTITY scoregensgen07 SYSTEM "scoregens/gen07.xml">
-<!ENTITY scoregensgen08 SYSTEM "scoregens/gen08.xml">
-<!ENTITY scoregensgen09 SYSTEM "scoregens/gen09.xml">
-<!ENTITY scoregensgen10 SYSTEM "scoregens/gen10.xml">
-<!ENTITY scoregensgen11 SYSTEM "scoregens/gen11.xml">
-<!ENTITY scoregensgen12 SYSTEM "scoregens/gen12.xml">
-<!ENTITY scoregensgen13 SYSTEM "scoregens/gen13.xml">
-<!ENTITY scoregensgen14 SYSTEM "scoregens/gen14.xml">
-<!ENTITY scoregensgen15 SYSTEM "scoregens/gen15.xml">
-<!ENTITY scoregensgen16 SYSTEM "scoregens/gen16.xml">
-<!ENTITY scoregensgen17 SYSTEM "scoregens/gen17.xml">
-<!ENTITY scoregensgen18 SYSTEM "scoregens/gen18.xml">
-<!ENTITY scoregensgen19 SYSTEM "scoregens/gen19.xml">
-<!ENTITY scoregensgen20 SYSTEM "scoregens/gen20.xml">
-<!ENTITY scoregensgen21 SYSTEM "scoregens/gen21.xml">
-<!ENTITY scoregensgen22 SYSTEM "scoregens/gen22.xml">
-<!ENTITY scoregensgen23 SYSTEM "scoregens/gen23.xml">
-<!ENTITY scoregensgen24 SYSTEM "scoregens/gen24.xml">
-<!ENTITY scoregensgen25 SYSTEM "scoregens/gen25.xml">
-<!ENTITY scoregensgen27 SYSTEM "scoregens/gen27.xml">
-<!ENTITY scoregensgen28 SYSTEM "scoregens/gen28.xml">
-<!ENTITY scoregensgen30 SYSTEM "scoregens/gen30.xml">
-<!ENTITY scoregensgen31 SYSTEM "scoregens/gen31.xml">
-<!ENTITY scoregensgen32 SYSTEM "scoregens/gen32.xml">
-<!ENTITY scoregensgen33 SYSTEM "scoregens/gen33.xml">
-<!ENTITY scoregensgen34 SYSTEM "scoregens/gen34.xml">
-<!ENTITY scoregensgen40 SYSTEM "scoregens/gen40.xml">
-<!ENTITY scoregensgen41 SYSTEM "scoregens/gen41.xml">
-<!ENTITY scoregensgen42 SYSTEM "scoregens/gen42.xml">
-<!ENTITY scoregensgen43 SYSTEM "scoregens/gen43.xml">
-<!ENTITY scoregensgen51 SYSTEM "scoregens/gen51.xml">
-<!ENTITY scoregensgen52 SYSTEM "scoregens/gen52.xml">
-<!ENTITY scoregensi SYSTEM "scoregens/i.xml">
-<!ENTITY scoregensm SYSTEM "scoregens/m.xml">
-<!ENTITY scoregensn SYSTEM "scoregens/n.xml">
-<!ENTITY scoregensq SYSTEM "scoregens/q.xml">
-<!ENTITY scoregensr SYSTEM "scoregens/r.xml">
-<!ENTITY scoregenss SYSTEM "scoregens/s.xml">
-<!ENTITY scoregenst SYSTEM "scoregens/t.xml">
-<!ENTITY scoregensv SYSTEM "scoregens/v.xml">
-<!ENTITY scoregensx SYSTEM "scoregens/x.xml">
-<!ENTITY scoregensleftbrace SYSTEM "scoregens/leftbrace.xml">
-<!ENTITY scoregensrightbrace SYSTEM "scoregens/rightbrace.xml">
-
-<!ENTITY siggen SYSTEM "siggen/top.xml">
-<!ENTITY siggenadditive SYSTEM "siggen/additive.xml">
-<!ENTITY siggenbasic SYSTEM "siggen/basic.xml">
-<!ENTITY siggendynamic SYSTEM "siggen/dynamic.xml">
-<!ENTITY siggenfmsynth SYSTEM "siggen/fmsynth.xml">
-<!ENTITY siggengranular SYSTEM "siggen/granular.xml">
-<!ENTITY siggenhvs SYSTEM "siggen/hvsXO.xml">
-<!ENTITY siggenlineexp SYSTEM "siggen/lineexp.xml">
-<!ENTITY siggenenvelope SYSTEM "siggen/envelope.xml">
-<!ENTITY siggenmodels SYSTEM "siggen/models.xml">
-<!ENTITY siggenphasors SYSTEM "siggen/phasors.xml">
-<!ENTITY siggenrandom SYSTEM "siggen/random.xml">
-<!ENTITY siggensample SYSTEM "siggen/sampleXO.xml">
-<!ENTITY siggenscantop SYSTEM "siggen/scantop.xml">
-<!ENTITY siggentableacc SYSTEM "siggen/tableacc.xml">
-<!ENTITY siggenwaveterr SYSTEM "siggen/waveterr.xml">
-<!ENTITY siggenwavguide SYSTEM "siggen/wavguide.xml">
-
-<!ENTITY sigio SYSTEM "sigio/top.xml">
-<!ENTITY sigiofileio SYSTEM "sigio/fileio.xml">
-<!ENTITY sigioinput SYSTEM "sigio/inputXO.xml">
-<!ENTITY sigiooutput SYSTEM "sigio/outputXO.xml">
-<!ENTITY sigiosoftbus SYSTEM "sigio/softbus.xml">
-<!ENTITY sigiopdisplay SYSTEM "sigio/pdisplay.xml">
-<!ENTITY sigioqueries SYSTEM "sigio/queries.xml">
-
-<!ENTITY sigmod SYSTEM "sigmod/top.xml">
-<!ENTITY sigmodampmod SYSTEM "sigmod/ampmod.xml">
-<!ENTITY sigmodconmorph SYSTEM "sigmod/conmorph.xml">
-<!ENTITY sigmoddelayops SYSTEM "sigmod/delayops.xml">
-<!ENTITY sigmodenvelope SYSTEM "sigmod/envelope.xml">
-<!ENTITY sigmodpanspatl SYSTEM "sigmod/panspatlXO.xml">
-<!ENTITY sigmodreverbtn SYSTEM "sigmod/reverbtn.xml">
-<!ENTITY sigmodsample SYSTEM "sigmod/sample.xml">
-<!ENTITY sigmodsiglimit SYSTEM "sigmod/siglimit.xml">
-<!ENTITY sigmodspeciale SYSTEM "sigmod/speciale.xml">
-<!ENTITY sigmodspeciali SYSTEM "sigmod/speciali.xml">
-<!ENTITY sigmodstandard SYSTEM "sigmod/standard.xml">
-<!ENTITY sigmodwavguide SYSTEM "sigmod/wavguide.xml">
-<!ENTITY sigmodcompaccum SYSTEM "sigmod/compaccum.xml">
-<!ENTITY sigmodwavshape SYSTEM "sigmod/wavshape.xml">
-
-<!ENTITY spectral SYSTEM "spectral/topXO.xml">
-<!ENTITY spectralstft SYSTEM "spectral/stft.xml">
-<!ENTITY spectrallpcresyn SYSTEM "spectral/lpcresyn.xml">
-<!ENTITY spectralnonstand SYSTEM "spectral/nonstand.xml">
-<!ENTITY spectralrealtime SYSTEM "spectral/realtimeXO.xml">
-<!--<!ENTITY spectralATS SYSTEM "spectral/ATS.xml">
-<!ENTITY spectralloris SYSTEM "spectral/loris.xml">-->
-
-<!ENTITY strings SYSTEM "strings/top.xml">
-<!ENTITY stringsmanipulate SYSTEM "strings/manipulate.xml">
-<!ENTITY stringsconvert SYSTEM "strings/convert.xml">
-
-<!ENTITY table SYSTEM "table/top.xml">
-<!ENTITY tablequeries SYSTEM "table/queries.xml">
-<!ENTITY tablereadwrit SYSTEM "table/readwrit.xml">
-<!ENTITY tableselect SYSTEM "table/select.xml">
-
-<!ENTITY utility SYSTEM "utility/topXO.xml">
-<!ENTITY utilityanalysis SYSTEM "utility/analysisXO.xml">
-<!ENTITY utilityconvert SYSTEM "utility/convertXO.xml">
-<!ENTITY utilitycs SYSTEM "utility/cs.xml">
-<!ENTITY utilitycsb64enc SYSTEM "utility/csb64enc.xml">
-<!ENTITY utilitycvanal SYSTEM "utility/cvanal.xml">
-<!ENTITY utilitydnoise SYSTEM "utility/dnoise.xml">
-<!ENTITY utilityenvext SYSTEM "utility/envext.xml">
-<!ENTITY utilityextractor SYSTEM "utility/extractor.xml">
-<!ENTITY utilityhetro SYSTEM "utility/hetro.xml">
-<!ENTITY utilityhet_import SYSTEM "utility/het_import.xml">
-<!ENTITY utilityhet_export SYSTEM "utility/het_export.xml">
-<!ENTITY utilitylpanal SYSTEM "utility/lpanal.xml">
-<!-- <!ENTITY utilityatsa SYSTEM "utility/atsa.xml"> -->
-<!ENTITY utilitymakecsd SYSTEM "utility/makecsd.xml">
-<!ENTITY utilitymixer SYSTEM "utility/mixer.xml">
-<!ENTITY utilityother SYSTEM "utility/other.xml">
-<!ENTITY utilitypvanal SYSTEM "utility/pvanal.xml">
-<!ENTITY utilitypv_export SYSTEM "utility/pv_export.xml">
-<!ENTITY utilitypv_import SYSTEM "utility/pv_import.xml">
-<!ENTITY utilitypvlook SYSTEM "utility/pvlook.xml">
-<!ENTITY utilityqueries SYSTEM "utility/queries.xml">
-<!ENTITY utilityscale SYSTEM "utility/scale.xml">
-<!ENTITY utilitysdif2ad SYSTEM "utility/sdif2ad.xml">
-<!ENTITY utilitysndinfo SYSTEM "utility/sndinfo.xml">
-<!ENTITY utilitysrconv SYSTEM "utility/srconv.xml">
-
-<!ENTITY vectorial SYSTEM "vectorial/top.xml">
-<!ENTITY vectorialtables SYSTEM "vectorial/tables.xml">
-<!ENTITY vectorialscalar SYSTEM "vectorial/scalar.xml">
-<!ENTITY vectorialvectorial SYSTEM "vectorial/vectorial.xml">
-<!ENTITY vectorialenvelopeGenerators SYSTEM "vectorial/envelopeGenerators.xml">
-<!ENTITY vectoriallimiting SYSTEM "vectorial/limiting.xml">
-<!ENTITY vectorialdelay SYSTEM "vectorial/delay.xml">
-<!ENTITY vectorialrandom SYSTEM "vectorial/vectorialrandom.xml">
-
-<!ENTITY zak SYSTEM "zak/top.xml">
-
-<!ENTITY csoundversion "5.11">
-]>
-
-<book id="index" lang="en">
- <title>The OLPCsound Reference Manual</title>
- <subtitle>Version &csoundversion;</subtitle>
- <bookinfo>
- <authorgroup>
- <author>
- <firstname>Barry</firstname>
- <surname>Vercoe</surname>
- <affiliation>
- <orgname>MIT Media Lab
- </orgname>
- </affiliation>
- </author>
- <author>
- <firstname>
- et. al.
- </firstname>
- </author>
-
-<!-- <author>
- <firstname>Other Contributors</firstname>
- <surname></surname>
- </author>-->
-
-<!-- <editor>
- <firstname>John</firstname>
- <surname>ffitch</surname>
- </editor>
-
- <editor>
- <firstname>Jean</firstname>
- <surname>Pich&eacute;</surname>
- </editor>
-
- <editor>
- <firstname>Peter</firstname>
- <surname>Nix</surname>
- </editor>
-
- <editor>
- <firstname>Richard</firstname>
- <surname>Boulanger</surname>
- </editor>
-
- <editor>
- <firstname>Rasmus</firstname>
- <surname>Ekman</surname>
- </editor>
-
- <editor>
- <firstname>David</firstname>
- <surname>Boothe</surname>
- </editor>
-
- <editor>
- <firstname>Kevin</firstname>
- <surname>Conder</surname>
- </editor>
-
- <editor>
- <firstname>Steven</firstname>
- <surname>Yi</surname>
- </editor>
-
- <editor>
- <firstname>Michael</firstname>
- <surname>Gogins</surname>
- </editor>
-
- <editor>
- <firstname>Andr&eacute;s</firstname>
- <surname>Cabrera</surname>
- </editor>
-
- <editor>
- <firstname>Fran&ccedil;ois</firstname>
- <surname>Pinot</surname>
- </editor>
-
- <editor>
- <firstname>Anthony</firstname>
- <surname>Kozar</surname>
- </editor>-->
-
- </authorgroup>
-
- <edition>&csoundversion;</edition>
-
-<!-- <copyright>
- <year>1986</year>
- <year>1992</year>
- <holder>Massachusetts Institute of Technology</holder>
- </copyright>-->
- </bookinfo>
-
- &pface;
-
- <part id="PartOverview">
- <title>Overview</title>
-<!-- &oviewintroduction; -->
-<!-- &oviewrecentdev;-->
-
- &oviewusing;
-<!-- &oviewconfiguring; -->
- &orch;
- &score;
-<!-- &oviewfrontends;-->
-<!-- &tclcsound; -->
-<!-- &oviewbuilding;-->
- &command;
- &oviewlinks;
-
- </part>
-
- <!-- &csound5opcodesSection; -->
-
-<!-- <part id="PartOpcodesOverview">
- <title>Opcodes Overview</title>
-
- &siggen;
- &sigio;
- &sigmod;
- &control;
- &table;
- &math;
- &pitch;
- &midi;
- &spectral;
- &strings;
- &vectorial;
- &zak;
- &plugin;
- &oscnetwork;
- &mixer;
- &py;
- &imageopcodes;
- &miscopcodes;
-
- </part>-->
-
- <part id="PartReference">
- <title>Reference</title>
- &opcodes;
- &scoregens;
- &utility;
-<!-- &cscore; -->
-<!-- &csound5extending; -->
- </part>
-
- &misc;
-
-</book>
-
-
diff --git a/math/array.xml b/math/array.xml
new file mode 100644
index 0000000..d53e49c
--- /dev/null
+++ b/math/array.xml
@@ -0,0 +1,338 @@
+<refentry id="arrayOpcodes">
+ <indexterm id="Indexarray">
+ <primary>Array opcodes</primary>
+ </indexterm>
+ <refentryinfo>
+ <title>Mathematical Operations</title>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>Array Opcodes</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>Array Opcodes</refname>
+ </refnamediv>
+
+ <refsect1>
+ <title>Variable Name</title>
+ <para>
+ An array must be created (via <link linkend="init"><citetitle>init</citetitle></link>
+ or <link linkend="fillarray"><citetitle>fillarray</citetitle></link>) as
+ kMyName <emphasis role="strong">plus</emphasis> ending brackets. The
+ brackets determine
+ the dimensions of the array. So,
+ <informalexample>
+ <programlisting>
+kArr[] <emphasis role="opc">init</emphasis> 10</programlisting>
+ </informalexample>
+ creates a one-dimensional array of length 10, whereas
+ <informalexample>
+ <programlisting>
+kArr[][] <emphasis role="opc">init</emphasis> 10, 10</programlisting>
+ </informalexample>
+ creates a two-dimensional array with 10 rows and 10 columns.
+ </para>
+
+ <para>
+ After the initalization of the array, referring to the array as a whole is
+ done <emphasis role="strong">without</emphasis> any brackets. Brackets are
+ only used if an element is indexed:
+ <informalexample>
+ <programlisting>
+kArr[] <emphasis role="opc">init</emphasis> 10 <emphasis role="comment">;with brackets because of initialization</emphasis>
+kLen <emphasis role="op">=</emphasis> lenarray(kArr) <emphasis role="comment">;without brackets</emphasis>
+kFirstEl <emphasis role="op">=</emphasis> kArr[0] <emphasis role="comment">;indexing with brackets</emphasis></programlisting>
+ </informalexample>
+ </para>
+
+ <para>
+ The same syntax is used for a simple copy via the '=' operator:
+ <informalexample>
+ <programlisting>
+kArr1[] <emphasis role="opc">fillarray</emphasis> 1, 2, 3, 4, 5
+kArr2[] <emphasis role="op">=</emphasis> kArr1 <emphasis role="comment">;creates kArr2 as copy of kArr1</emphasis></programlisting>
+ </informalexample>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>k-rate</title>
+ <para>
+ Note that most array operations are currently k-rate only. So like any
+ other k-rate opcode, an operation on arrays will be automatically repeated
+ every k-cycle. For instance, this code will repeat re-writing the array
+ with different random values every k-cycle, as long as the instrument runs:
+ <informalexample>
+ <programlisting>
+kArr[] <emphasis role="opc">init</emphasis> 10
+kIndx <emphasis role="op">=</emphasis> 0
+<emphasis role="octrl">until</emphasis> kIndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr) <emphasis role="octrl">do</emphasis>
+ kArr[kIndx] <emphasis role="opc">rnd31</emphasis> 10, 0
+ kIndx <emphasis role="op">+=</emphasis> 1
+<emphasis role="octrl">od</emphasis></programlisting>
+ </informalexample>
+ </para>
+
+ <para>
+ If you want to avoid this, you must organize it in one of the usual ways,
+ for instance by using a trigger:
+ <informalexample>
+ <programlisting>
+kArr[] <emphasis role="opc">init</emphasis> 10
+kTrig <emphasis role="opc">metro</emphasis> 1
+<emphasis role="octrl">if</emphasis> kTrig <emphasis role="op">==</emphasis> 1 <emphasis role="octrl">then</emphasis> <emphasis role="comment">;do the following once a second</emphasis>
+ kIndx <emphasis role="op">=</emphasis> 0
+ <emphasis role="octrl">until</emphasis> kIndx <emphasis role="op">==</emphasis> <emphasis role="opc">lenarray</emphasis>(kArr) <emphasis role="octrl">do</emphasis>
+ kArr[kIndx] <emphasis role="opc">rnd31</emphasis> 10, 0
+ kIndx <emphasis role="op">+=</emphasis> 1
+ <emphasis role="octrl">od</emphasis>
+<emphasis role="octrl">endif</emphasis></programlisting>
+ </informalexample>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Creation/Initialization</title>
+ <para>
+ The usual way to create an array is with init:
+ <informalexample>
+ <programlisting>
+kArr[] <emphasis role="opc">init</emphasis> 10 <emphasis role="comment">;creates one-dimensional array with length 10</emphasis>
+kArr[][] <emphasis role="opc">init</emphasis> 10, 10 <emphasis role="comment">;creates two-dimensional array</emphasis></programlisting>
+ </informalexample>
+ </para>
+ <para>
+ A one-dimensional array can also be created and filled with distinct values
+ by the opcode <emphasis>fillarray</emphasis>. This line creates a vector
+ with length 4 and puts in the numbers [1, 2, 3, 4]:
+ </para>
+ <informalexample>
+ <programlisting>
+kArr[] <emphasis role="opc">fillarray</emphasis> 1, 2, 3, 4</programlisting>
+ </informalexample>
+ </refsect1>
+
+ <refsect1>
+ <title>Length</title>
+ <para>
+ The function <emphasis>lenarray(kArr)</emphasis> reports the length of an
+ array. See example for function
+ <link linkend="lenarray"><citetitle>lenarray</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Copy Arrays to/from Tables</title>
+ <para>
+ <informalexample>
+ <programlisting>
+<emphasis role="opc">copyf2array</emphasis> kArr, kfn</programlisting>
+ </informalexample>
+ copies data from an ftable to a vector.
+ </para>
+ <para>
+ <informalexample>
+ <programlisting>
+<emphasis role="opc">copya2ftab</emphasis> kArr, kfn</programlisting>
+ </informalexample>
+ copies data from a vector to an function table.
+ </para>
+ <para>
+ See examples for opcodes
+ <link linkend="copyf2array"><citetitle>copyf2array</citetitle></link> and
+ <link linkend="copya2ftab"><citetitle>copya2ftab</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Array Operations: Math</title>
+ <refsect2>
+ <title>+, -, *, / on a Number</title>
+ <para>
+ If the four basic math operators are used between an array and a scalar
+ (number), the operation is applied to each element. The safest way to do
+ this is to store the result in a new array:
+ <informalexample>
+ <programlisting>
+kArr1[] <emphasis role="opc">fillarray</emphasis> 1, 2, 3
+kArr2[] <emphasis role="op">=</emphasis> kArr1 <emphasis role="op">+</emphasis> 10 <emphasis role="comment">;(kArr2 is now [11, 12, 13])</emphasis></programlisting>
+ </informalexample>
+ Here is an example of array/scalar operations. It uses the file
+ <ulink url="examples/array_scalar_math.csd"><citetitle>array_scalar_math.csd</citetitle></ulink>.
+ <example>
+ <title>Example of array operations</title>
+ <xi:include href="examples-xml/array_scalar_math.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect2>
+ <refsect2>
+ <title>+, -, *, / on a Second Array</title>
+ <para>
+ If the four basic math operators are used between two arrays, the
+ operation is applied element by element. The result can be
+ straightforward stored in a new array:
+ <informalexample>
+ <programlisting>
+kArr1[] <emphasis role="opc">fillarray</emphasis> 1, 2, 3
+kArr2[] <emphasis role="opc">fillarray</emphasis> 10, 20, 30
+kArr3[] <emphasis role="op">=</emphasis> kArr1 <emphasis role="op">+</emphasis> kArr2 <emphasis role="comment">;(kArr3 is now [11, 22, 33])</emphasis></programlisting>
+ </informalexample>
+ Here is an example of array operations. It uses the file
+ <ulink url="examples/array_array_math.csd"><citetitle>array_array_math.csd</citetitle></ulink>.
+ <example>
+ <title>Example of array operations</title>
+ <xi:include href="examples-xml/array_array_math.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect2>
+ </refsect1>
+
+ <refsect1>
+ <title>Map a Function to an Array</title>
+ <para>
+ <informalexample>
+ <programlisting>
+kArrRes <emphasis role="opc">maparray</emphasis> kArrSrc, "fun"</programlisting>
+ </informalexample>
+ maps the k-rate 1-arg function in the string to every element of the vector.
+ </para>
+ <para>
+ Possible functions are for instance <emphasis>abs, ceil, exp, floor, frac,
+ int, log, log10, round, sqrt</emphasis>. This is a simple example:
+ <informalexample>
+ <programlisting>
+kArrSrc[] <emphasis role="opc">fillarray</emphasis> 1, 2, 3, 4, 5
+kArrRes[] <emphasis role="opc">init</emphasis> 5
+kArrRes <emphasis role="opc">maparray</emphasis> kArrSrc, "sqrt"</programlisting>
+ </informalexample>
+ See example for opcode
+ <link linkend="maparray"><citetitle>maparray</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Array Operations: min, max, sum, scale, slice</title>
+ <refsect2>
+ <title>Minimum and Maximum</title>
+ <para>
+ <informalexample>
+ <programlisting>
+ kMin [,kMinIndx] <emphasis role="opc">minarray</emphasis> kArr</programlisting>
+ </informalexample>
+ returns the smallest value in an array, and optionally its index.
+ </para>
+ <para>
+ <informalexample>
+ <programlisting>
+ kMax [,kMaxIndx] <emphasis role="opc">maxarray</emphasis> kArr</programlisting>
+ </informalexample>
+ returns the largest value in an array, and optionally its index.
+ See examples for opcodes
+ <link linkend="minarray"><citetitle>minarray</citetitle></link> and
+ <link linkend="maxarray"><citetitle>maxarray</citetitle></link>.
+ </para>
+ </refsect2>
+
+ <refsect2>
+ <title>Sum</title>
+ <para>
+ <informalexample>
+ <programlisting>
+ kSum <emphasis role="opc">sumarray</emphasis> kArr</programlisting>
+ </informalexample>
+ returns the sum of all values in kArr.
+ See example for opcode
+ <link linkend="sumarray"><citetitle>sumarray</citetitle></link>.
+ </para>
+ </refsect2>
+
+ <refsect2>
+ <title>Scale</title>
+ <para>
+ <informalexample>
+ <programlisting>
+ <emphasis role="opc">scalearray</emphasis> kArr, kMin, kMax</programlisting>
+ </informalexample>
+ scales all values in kArr between kMin and kMax.
+ </para>
+ <para>
+ <informalexample>
+ <programlisting>
+ kArr[] <emphasis role="opc">fillarray</emphasis> 1, 3, 9, 5, 6
+ <emphasis role="opc">scalearray</emphasis> kArr, 1, 3</programlisting>
+ </informalexample>
+ changes <emphasis>kArr</emphasis> to [1, 1.5, 3, 2, 2.25].
+ See example for opcode
+ <link linkend="scalearray"><citetitle>scalearray</citetitle></link>.
+ </para>
+ </refsect2>
+
+ <refsect2>
+ <title>Slice</title>
+ <para>
+ <informalexample>
+ <programlisting>
+ <emphasis role="opc">slicearray</emphasis> kArr, iStart, iEnd</programlisting>
+ </informalexample>
+ returns a slice of <emphasis>kArr</emphasis> from index
+ <emphasis>iStart</emphasis> to index <emphasis>iEnd</emphasis> (included).
+ </para>
+ <para>
+ The array for receiving the slice must have been created in advance:
+ <informalexample>
+ <programlisting>
+ kArr[] <emphasis role="opc">fillarray</emphasis> 1, 2, 3, 4, 5, 6, 7, 8, 9
+ kArr1[] <emphasis role="opc">init</emphasis> 5
+ kArr2[] <emphasis role="opc">init</emphasis> 4
+ kArr1 <emphasis role="opc">slicearray</emphasis> kArr, 0, 4 <emphasis role="comment">;[1, 2, 3, 4, 5]</emphasis>
+ kArr2 <emphasis role="opc">slicearray</emphasis> kArr, 5, 8 <emphasis role="comment">;[6, 7, 8, 9]</emphasis></programlisting>
+ </informalexample>
+ See example for opcode
+ <link linkend="slicearray"><citetitle>slicearray</citetitle></link>.
+ </para>
+ </refsect2>
+ </refsect1>
+
+ <refsect1>
+ <title>Arrays in UDOs</title>
+ <para>
+ The dimension of an input array must be declared in two places:
+ <itemizedlist>
+ <listitem>
+ as k[] or k[][] in the type input list
+ </listitem>
+ <listitem>
+ as kName[], kName[][] etc in the xin list.
+ </listitem>
+ </itemizedlist>
+ For instance :
+ <informalexample>
+ <programlisting>
+<emphasis role="oblock">opcode</emphasis> FirstEl, k, k[]
+<emphasis role="comment">;returns the first element of vector kArr</emphasis>
+kArr[] <emphasis role="opc">xin</emphasis>
+ <emphasis role="opc">xout</emphasis> kArr[0]
+<emphasis role="oblock">endop</emphasis></programlisting>
+ </informalexample>
+ Here is an example of an array in an UDO. It uses the file
+ <ulink url="examples/array_udo.csd"><citetitle>array_udo.csd</citetitle></ulink>.
+ <example>
+ <title>Example of an array in an UDO</title>
+ <xi:include href="examples-xml/array_udo.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>This manual page has been written by Joachim Heintz.</member>
+ <member>July 2013</member>
+ </simplelist>
+ </para>
+ <para>New in Csound 6.00</para>
+ </refsect1>
+</refentry>
+
+
diff --git a/math/top.xml b/math/top.xml
index e1ad488..32124f6 100644
--- a/math/top.xml
+++ b/math/top.xml
@@ -10,5 +10,6 @@
&mathrndfunc;
&mathtrig;
&linearalgebra;
+ &array;
</chapter>
diff --git a/midi/top.xml b/midi/top.xml
index 4ebcea8..1ed7bbf 100644
--- a/midi/top.xml
+++ b/midi/top.xml
@@ -28,7 +28,10 @@
<para>
Once realtime MIDI input and/or output has been activated, opcodes like <link linkend="MidiInput"><citetitle>MIDI Input</citetitle></link> and <link linkend="MidiOutput"><citetitle>MIDI Output</citetitle></link> will have effect.
</para> <para>
- When MIDI input is enabled (with -M or -F), each incoming <emphasis>noteon</emphasis> message will generate a note event for an instrument which has the same number as the channel of the event (see <link linkend="massign"><citetitle>massign</citetitle></link> and <link linkend="pgmassign"><citetitle>pgmassign</citetitle></link> to change this behavior). This means that MIDI controlled instruments are polyphonic by default, since each note will generate a new instance of the instrument.
+ When MIDI input is enabled (with -M or -F), each incoming <emphasis>noteon</emphasis> 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.)
+If you have 1 instrument only, Csound works in omni mode, ie. it responds to all channels into that single instrument.
+If you have more than one instrument and instrs 1 - 16 , then by default instr 1 -> chn 1, instr 2 -> chn 2, unless you alter the mapping (see <link linkend="massign"><citetitle>massign</citetitle></link> and <link linkend="pgmassign"><citetitle>pgmassign</citetitle></link> to change this behavior).
+If you have more than one instrument, but instr N in between 1 - 16 is missing, then chn N will be routed by default to the lowest order instrument.
</para>
<para>
See the <link linkend="MidiInterop"><citetitle>MIDI/Score Interoperability</citetitle></link> opcodes for information on designing instruments which can be used from the score or driven by MIDI.
diff --git a/misc/csound64.xml b/misc/csound64.xml
index a97499c..a535e53 100644
--- a/misc/csound64.xml
+++ b/misc/csound64.xml
@@ -36,8 +36,11 @@
<orderedlist>
<listitem><para>hetro, PVOC-EX analysis and pvanal files generated for 32-bit Csound (float) will work with 64-bit Csound (double precision).</para></listitem>
- <listitem><para><link linkend="lpanal"><citetitle>lpanal</citetitle></link> and <link linkend="cvanal"><citetitle>cvanal</citetitle></link> files generated for Csound will not work with Csound64.</para></listitem>
-
+ <listitem><para>All other analysis formats can be generated in a
+ way for cross-use between 32 and 64 bit versions and big-endian
+ and little-endian architectures, if the <emphasis>-X</emphasis>
+ option is used in generation. The older format in csound5 is
+ still generatable but is not machins independant.</para></listitem>
</orderedlist>
</para>
diff --git a/misc/examples.xml b/misc/examples.xml
index 719b586..0a6790b 100644
--- a/misc/examples.xml
+++ b/misc/examples.xml
@@ -3,6 +3,9 @@
<appendix id="MiscExamples">
<title>List of examples</title><formalpara><title>Orchestra Syntax:Header</title><simpara />
<para><ulink url="examples/0dbfs.csd"><citetitle>0dbfs.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/nchnls.csd"><citetitle>nchnls.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/nchnls_i.csd"><citetitle>nchnls_i.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sr.csd"><citetitle>sr.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Orchestra Syntax:Block Statements</title><simpara />
<para><ulink url="examples/endin.csd"><citetitle>endin.csd</citetitle></ulink></para><simpara />
@@ -33,6 +36,7 @@
<para><ulink url="examples/oscilikt.csd"><citetitle>oscilikt.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/osciliktp.csd"><citetitle>osciliktp.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/oscilikts.csd"><citetitle>oscilikts.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/osciln.csd"><citetitle>osciln.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/oscils.csd"><citetitle>oscils.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/poscil.csd"><citetitle>poscil.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/poscil3.csd"><citetitle>poscil3.csd</citetitle></ulink></para><simpara />
@@ -46,6 +50,8 @@
<para><ulink url="examples/mpulse.csd"><citetitle>mpulse.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vco.csd"><citetitle>vco.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vco2.csd"><citetitle>vco2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vco2ift.csd"><citetitle>vco2ift.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vco2init.csd"><citetitle>vco2init.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Generators:FM Synthesis</title><simpara />
<para><ulink url="examples/crossfm.csd"><citetitle>crossfm.csd</citetitle></ulink></para><simpara />
@@ -64,14 +70,18 @@
<para><ulink url="examples/fof.csd"><citetitle>fof.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/fof2.csd"><citetitle>fof2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/fof2-2.csd"><citetitle>fof2-2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fog.csd"><citetitle>fog.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/grain.csd"><citetitle>grain.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/grain2.csd"><citetitle>grain2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/grain3.csd"><citetitle>grain3.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/granule.csd"><citetitle>granule.csd</citetitle></ulink></para><simpara />
-<para><ulink url="examples/PartikkelExample1.csd"><citetitle>PartikkelExample1.csd</citetitle></ulink></para><simpara />
-<para><ulink url="examples/partikkel_softsync.csd"><citetitle>partikkel_softsync.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/partikkel.csd"><citetitle>partikkel.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/partikkel-2.csd"><citetitle>partikkel-2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/partikkelsync.csd"><citetitle>partikkelsync.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/sndwarp.csd"><citetitle>sndwarp.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sndwarpst.csd"><citetitle>sndwarpst.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/syncgrain.csd"><citetitle>syncgrain.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/syncloop.csd"><citetitle>syncloop.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vosim.csd"><citetitle>vosim.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Generators:Hyper Vectorial Synthesis</title><simpara />
@@ -81,14 +91,21 @@
<para><ulink url="examples/hvs3.csd"><citetitle>hvs3.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Generators:Linear and Exponential Generators</title><simpara />
+<para><ulink url="examples/cosseg.csd"><citetitle>cosseg.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/cossegb.csd"><citetitle>cossegb.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/cossegr.csd"><citetitle>cossegr.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/expcurve.csd"><citetitle>expcurve.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/expon.csd"><citetitle>expon.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/expseg.csd"><citetitle>expseg.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/expsega.csd"><citetitle>expsega.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/expsegb.csd"><citetitle>expsegb.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/expsegba.csd"><citetitle>expsegba.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/expsegr.csd"><citetitle>expsegr.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/gainslider.csd"><citetitle>gainslider.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/jspline.csd"><citetitle>jspline.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/line.csd"><citetitle>line.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/linseg.csd"><citetitle>linseg.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/linsegb.csd"><citetitle>linsegb.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/linsegr.csd"><citetitle>linsegr.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/logcurve.csd"><citetitle>logcurve.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/loopseg.csd"><citetitle>loopseg.csd</citetitle></ulink></para><simpara />
@@ -96,15 +113,22 @@
<para><ulink url="examples/looptseg.csd"><citetitle>looptseg.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/loopxseg.csd"><citetitle>loopxseg.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/lpshold.csd"><citetitle>lpshold.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/rspline.csd"><citetitle>rspline.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/scale.csd"><citetitle>scale.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/transeg.csd"><citetitle>transeg.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/transegb.csd"><citetitle>transegb.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/transegr.csd"><citetitle>transegr.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Generators:Envelope Generators</title><simpara />
<para><ulink url="examples/adsr.csd"><citetitle>adsr.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/envlpx.csd"><citetitle>envlpx.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/envlpxr.csd"><citetitle>envlpxr.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/linen.csd"><citetitle>linen.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/linenr.csd"><citetitle>linenr.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/madsr.csd"><citetitle>madsr.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/madsr-2.csd"><citetitle>madsr-2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/mxadsr.csd"><citetitle>mxadsr.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/xadsr.csd"><citetitle>xadsr.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Generators:Models and Emulations</title><simpara />
<para><ulink url="examples/bamboo.csd"><citetitle>bamboo.csd</citetitle></ulink></para><simpara />
@@ -113,9 +137,15 @@
<para><ulink url="examples/chuap.csd"><citetitle>chuap.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/crunch.csd"><citetitle>crunch.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/dripwater.csd"><citetitle>dripwater.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/gendy.csd"><citetitle>gendy.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/gendy-2.csd"><citetitle>gendy-2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/gendyc.csd"><citetitle>gendyc.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/gendyx.csd"><citetitle>gendyx.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/gendyx-2.csd"><citetitle>gendyx-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/gogobel.csd"><citetitle>gogobel.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/guiro.csd"><citetitle>guiro.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/lorenz.csd"><citetitle>lorenz.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/mandel.csd"><citetitle>mandel.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/mandol.csd"><citetitle>mandol.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/marimba.csd"><citetitle>marimba.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/moog.csd"><citetitle>moog.csd</citetitle></ulink></para><simpara />
@@ -140,8 +170,18 @@
<para><ulink url="examples/betarand.csd"><citetitle>betarand.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/bexprnd.csd"><citetitle>bexprnd.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/cauchy.csd"><citetitle>cauchy.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/cauchyi.csd"><citetitle>cauchyi.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/cuserrnd.csd"><citetitle>cuserrnd.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/duserrnd.csd"><citetitle>duserrnd.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/dust.csd"><citetitle>dust.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/dust2.csd"><citetitle>dust2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/exprand.csd"><citetitle>exprand.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/exprandi.csd"><citetitle>exprandi.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fractalnoise.csd"><citetitle>fractalnoise.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/gauss.csd"><citetitle>gauss.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/gaussi.csd"><citetitle>gaussi.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/gausstrig.csd"><citetitle>gausstrig.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/gausstrig-2.csd"><citetitle>gausstrig-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/jitter.csd"><citetitle>jitter.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/jitter2.csd"><citetitle>jitter2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/linrand.csd"><citetitle>linrand.csd</citetitle></ulink></para><simpara />
@@ -160,32 +200,99 @@
<para><ulink url="examples/rnd31_krate.csd"><citetitle>rnd31_krate.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/rnd31_seed7.csd"><citetitle>rnd31_seed7.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/rnd31_time.csd"><citetitle>rnd31_time.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/seed.csd"><citetitle>seed.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/trandom.csd"><citetitle>trandom.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/trirand.csd"><citetitle>trirand.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/unirand.csd"><citetitle>unirand.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/urandom.csd"><citetitle>urandom.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/urandom_krate.csd"><citetitle>urandom_krate.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/urd.csd"><citetitle>urd.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/weibull.csd"><citetitle>weibull.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Generators:Sample Playback</title><simpara />
<para><ulink url="examples/bbcutm.csd"><citetitle>bbcutm.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/bbcuts.csd"><citetitle>bbcuts.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/flooper.csd"><citetitle>flooper.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/flooper2.csd"><citetitle>flooper2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fluidAllOut.csd"><citetitle>fluidAllOut.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fluidCCi.csd"><citetitle>fluidCCi.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fluidCCk.csd"><citetitle>fluidCCk.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/fluidcomplex.csd"><citetitle>fluidcomplex.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fluidEngine.csd"><citetitle>fluidEngine.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fluidLoad.csd"><citetitle>fluidLoad.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fluidNote.csd"><citetitle>fluidNote.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fluidOut.csd"><citetitle>fluidOut.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fluidProgramSelect.csd"><citetitle>fluidProgramSelect.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/fluidcomplex.csd"><citetitle>fluidcomplex.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fluidSetInterpMethod.csd"><citetitle>fluidSetInterpMethod.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/loscil.csd"><citetitle>loscil.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/loscil3.csd"><citetitle>loscil3.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/lphasor.csd"><citetitle>lphasor.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/lposcil.csd"><citetitle>lposcil.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/lposcil3.csd"><citetitle>lposcil3.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/lposcila.csd"><citetitle>lposcila.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/lposcilsa.csd"><citetitle>lposcilsa.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/lposcilsa2.csd"><citetitle>lposcilsa2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sfilist.csd"><citetitle>sfilist.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sfinstr.csd"><citetitle>sfinstr.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sfinstr3.csd"><citetitle>sfinstr3.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sfinstr3m.csd"><citetitle>sfinstr3m.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sfload.csd"><citetitle>sfload.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sflooper.csd"><citetitle>sflooper.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sfpassign.csd"><citetitle>sfpassign.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sfplay3.csd"><citetitle>sfplay3.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sfplay3m.csd"><citetitle>sfplay3m.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sfplaym.csd"><citetitle>sfplaym.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sfplist.csd"><citetitle>sfplist.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sfpreset.csd"><citetitle>sfpreset.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sndloop.csd"><citetitle>sndloop.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/waveset.csd"><citetitle>waveset.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Generators:Scanned Synthesis</title><simpara />
<para><ulink url="examples/scans.csd"><citetitle>scans.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/scans-2.csd"><citetitle>scans-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/scantable.csd"><citetitle>scantable.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/xscanmap.csd"><citetitle>xscanmap.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/xscans.csd"><citetitle>xscans.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/xscanu.csd"><citetitle>xscanu.csd</citetitle></ulink></para><simpara />
+</formalpara>
+<formalpara><title>Signal Generators:STK Opcodes</title><simpara />
+<para><ulink url="examples/STKBandedWG.csd"><citetitle>STKBandedWG.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKBeeThree.csd"><citetitle>STKBeeThree.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKBlowBotl.csd"><citetitle>STKBlowBotl.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKBlowHole.csd"><citetitle>STKBlowHole.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKBowed.csd"><citetitle>STKBowed.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKBrass.csd"><citetitle>STKBrass.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKClarinet.csd"><citetitle>STKClarinet.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKDrummer.csd"><citetitle>STKDrummer.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKFMVoices.csd"><citetitle>STKFMVoices.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKFlute.csd"><citetitle>STKFlute.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKHevyMetl.csd"><citetitle>STKHevyMetl.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKMandolin.csd"><citetitle>STKMandolin.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKModalBar.csd"><citetitle>STKModalBar.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKMoog.csd"><citetitle>STKMoog.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKPercFlut.csd"><citetitle>STKPercFlut.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKPlucked.csd"><citetitle>STKPlucked.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKResonate.csd"><citetitle>STKResonate.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKRhodey.csd"><citetitle>STKRhodey.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKSaxofony.csd"><citetitle>STKSaxofony.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKShakers.csd"><citetitle>STKShakers.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKSimple.csd"><citetitle>STKSimple.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKSitar.csd"><citetitle>STKSitar.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKStifKarp.csd"><citetitle>STKStifKarp.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKTubeBell.csd"><citetitle>STKTubeBell.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKVoicForm.csd"><citetitle>STKVoicForm.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKWhistle.csd"><citetitle>STKWhistle.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/STKWurley.csd"><citetitle>STKWurley.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Generators:Table Access</title><simpara />
+<para><ulink url="examples/oscil1i.csd"><citetitle>oscil1i.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/oscil1i.csd"><citetitle>oscil1i.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/ptable.csd"><citetitle>ptable.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/ptablei.csd"><citetitle>ptablei.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tab.csd"><citetitle>tab.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/table.csd"><citetitle>table.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tablei.csd"><citetitle>tablei.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Generators:Wave Terrain Synthesis</title><simpara />
<para><ulink url="examples/wterrain.csd"><citetitle>wterrain.csd</citetitle></ulink></para><simpara />
@@ -205,30 +312,71 @@
</formalpara>
<formalpara><title>Signal I/O:File I/O</title><simpara />
<para><ulink url="examples/dumpk.csd"><citetitle>dumpk.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/dumpk-2.csd"><citetitle>dumpk-2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/dumpk2.csd"><citetitle>dumpk2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/dumpk3.csd"><citetitle>dumpk3.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/dumpk4.csd"><citetitle>dumpk4.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/ficlose.csd"><citetitle>ficlose.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fin.csd"><citetitle>fin.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fiopen.csd"><citetitle>fiopen.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/fout.csd"><citetitle>fout.csd</citetitle></ulink></para><simpara />
-<para><ulink url="examples/fout_poly.csd"><citetitle>fout_poly.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/fout_ftable.csd"><citetitle>fout_ftable.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fouti.csd"><citetitle>fouti.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/foutir.csd"><citetitle>foutir.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/fprintks.csd"><citetitle>fprintks.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/fprintks-2.csd"><citetitle>fprintks-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/scogen.csd"><citetitle>scogen.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/fprints.csd"><citetitle>fprints.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/readf.csd"><citetitle>readf.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/readfi.csd"><citetitle>readfi.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/readk.csd"><citetitle>readk.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/readk-2.csd"><citetitle>readk-2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/readk2.csd"><citetitle>readk2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/readk3.csd"><citetitle>readk3.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/readk4.csd"><citetitle>readk4.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal I/O:Signal Input</title><simpara />
<para><ulink url="examples/diskin.csd"><citetitle>diskin.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/diskin2.csd"><citetitle>diskin2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/in.csd"><citetitle>in.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/inch.csd"><citetitle>inch.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/inq.csd"><citetitle>inq.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/inrg.csd"><citetitle>inrg.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/ins.csd"><citetitle>ins.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/invalue.csd"><citetitle>invalue.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/mp3in.csd"><citetitle>mp3in.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/soundin.csd"><citetitle>soundin.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal I/O:Signal Output</title><simpara />
<para><ulink url="examples/mdelay.csd"><citetitle>mdelay.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/monitor.csd"><citetitle>monitor.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/out.csd"><citetitle>out.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outc.csd"><citetitle>outc.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outch.csd"><citetitle>outch.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outch-2.csd"><citetitle>outch-2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outq.csd"><citetitle>outq.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outq1.csd"><citetitle>outq1.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outq2.csd"><citetitle>outq2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outq3.csd"><citetitle>outq3.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outq4.csd"><citetitle>outq4.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/outrg.csd"><citetitle>outrg.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outs.csd"><citetitle>outs.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outs1.csd"><citetitle>outs1.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outs2.csd"><citetitle>outs2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outvalue.csd"><citetitle>outvalue.csd</citetitle></ulink></para><simpara />
+</formalpara>
+<formalpara><title>Signal I/O:Software Bus</title><simpara />
+<para><ulink url="examples/chnclear.csd"><citetitle>chnclear.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/chnget.csd"><citetitle>chnget.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/chnmix.csd"><citetitle>chnmix.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/chnset.csd"><citetitle>chnset.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal I/O:Printing and Display</title><simpara />
<para><ulink url="examples/dispfft.csd"><citetitle>dispfft.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/display.csd"><citetitle>display.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/flashtxt.csd"><citetitle>flashtxt.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/print.csd"><citetitle>print.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/printf.csd"><citetitle>printf.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/printk.csd"><citetitle>printk.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/printk2.csd"><citetitle>printk2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/printks.csd"><citetitle>printks.csd</citetitle></ulink></para><simpara />
@@ -241,6 +389,7 @@
<para><ulink url="examples/filepeak.csd"><citetitle>filepeak.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/filesr.csd"><citetitle>filesr.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/filevalid.csd"><citetitle>filevalid.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/mp3len.csd"><citetitle>mp3len.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Modifiers:Amplitude Modifiers</title><simpara />
<para><ulink url="examples/balance.csd"><citetitle>balance.csd</citetitle></ulink></para><simpara />
@@ -256,6 +405,7 @@
<para><ulink url="examples/dconv.csd"><citetitle>dconv.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ftconv.csd"><citetitle>ftconv.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ftmorf.csd"><citetitle>ftmorf.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pconvolve.csd"><citetitle>pconvolve.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Modifiers:Delay</title><simpara />
<para><ulink url="examples/delay.csd"><citetitle>delay.csd</citetitle></ulink></para><simpara />
@@ -269,33 +419,65 @@
<para><ulink url="examples/deltapn.csd"><citetitle>deltapn.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/deltapx.csd"><citetitle>deltapx.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/deltapxw.csd"><citetitle>deltapxw.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/multitap.csd"><citetitle>multitap.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/newopcodename.csd"><citetitle>newopcodename.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vdelay.csd"><citetitle>vdelay.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vdelay3.csd"><citetitle>vdelay3.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vdelayx.csd"><citetitle>vdelayx.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vdelayxq.csd"><citetitle>vdelayxq.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vdelayxs.csd"><citetitle>vdelayxs.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vdelayxw.csd"><citetitle>vdelayxw.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vdelayxwq.csd"><citetitle>vdelayxwq.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vdelayxws.csd"><citetitle>vdelayxws.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Modifiers:Panning and Spatialization</title><simpara />
<para><ulink url="examples/bformenc.csd"><citetitle>bformenc.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/bformenc1.csd"><citetitle>bformenc1.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/bformenc.csd"><citetitle>bformenc.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/bformenc1.csd"><citetitle>bformenc1.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/hrtfearly.csd"><citetitle>hrtfearly.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/hrtfer.csd"><citetitle>hrtfer.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/hrtfmove.csd"><citetitle>hrtfmove.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/hrtfmove2.csd"><citetitle>hrtfmove2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/hrtfstat.csd"><citetitle>hrtfstat.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/hrtfstat-2.csd"><citetitle>hrtfstat-2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/locsend_stereo.csd"><citetitle>locsend_stereo.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/locsig_quad.csd"><citetitle>locsig_quad.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pan.csd"><citetitle>pan.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pan2.csd"><citetitle>pan2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/space_quad.csd"><citetitle>space_quad.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/space_stereo.csd"><citetitle>space_stereo.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/spat3d_stereo.csd"><citetitle>spat3d_stereo.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/spat3d_UHJ.csd"><citetitle>spat3d_UHJ.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/spat3d_quad.csd"><citetitle>spat3d_quad.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/spat3dt.csd"><citetitle>spat3dt.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/spdist.csd"><citetitle>spdist.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/spsend.csd"><citetitle>spsend.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vbap.csd"><citetitle>vbap.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vbap4.csd"><citetitle>vbap4.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vbap4move.csd"><citetitle>vbap4move.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vbap8.csd"><citetitle>vbap8.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vbap8move.csd"><citetitle>vbap8move.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vbapg.csd"><citetitle>vbapg.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vbapgmove.csd"><citetitle>vbapgmove.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vbaplsinit.csd"><citetitle>vbaplsinit.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vbapmove.csd"><citetitle>vbapmove.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Modifiers:Reverberation</title><simpara />
<para><ulink url="examples/alpass.csd"><citetitle>alpass.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/babo.csd"><citetitle>babo.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/babo_expert.csd"><citetitle>babo_expert.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/comb.csd"><citetitle>comb.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/combinv.csd"><citetitle>combinv.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/freeverb.csd"><citetitle>freeverb.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/nestedap.csd"><citetitle>nestedap.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/nreverb.csd"><citetitle>nreverb.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/nreverb_ftable.csd"><citetitle>nreverb_ftable.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/plate.csd"><citetitle>plate.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/reverb.csd"><citetitle>reverb.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/reverbsc.csd"><citetitle>reverbsc.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/valpass.csd"><citetitle>valpass.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/valpass-2.csd"><citetitle>valpass-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vcomb.csd"><citetitle>vcomb.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Modifiers:Sample Level Operators</title><simpara />
@@ -305,15 +487,24 @@
<para><ulink url="examples/fold.csd"><citetitle>fold.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/integ.csd"><citetitle>integ.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/interp.csd"><citetitle>interp.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/ntrpol.csd"><citetitle>ntrpol.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/opa.csd"><citetitle>opa.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/samphold.csd"><citetitle>samphold.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/upsamp.csd"><citetitle>upsamp.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vaget.csd"><citetitle>vaget.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vaset.csd"><citetitle>vaset.csd</citetitle></ulink></para><simpara />
</formalpara>
+<formalpara><title>Signal Modifiers:Signal Limiters</title><simpara />
+<para><ulink url="examples/limit.csd"><citetitle>limit.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/mirror.csd"><citetitle>mirror.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/wrap.csd"><citetitle>wrap.csd</citetitle></ulink></para><simpara />
+</formalpara>
<formalpara><title>Signal Modifiers:Special Effects</title><simpara />
<para><ulink url="examples/distort.csd"><citetitle>distort.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/distort1.csd"><citetitle>distort1.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/flanger.csd"><citetitle>flanger.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/harmon.csd"><citetitle>harmon.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/harmon3.csd"><citetitle>harmon3.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/phaser1.csd"><citetitle>phaser1.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/phaser2.csd"><citetitle>phaser2.csd</citetitle></ulink></para><simpara />
</formalpara>
@@ -329,7 +520,11 @@
<para><ulink url="examples/clfilt_lowpass.csd"><citetitle>clfilt_lowpass.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/clfilt_highpass.csd"><citetitle>clfilt_highpass.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/doppler.csd"><citetitle>doppler.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/median.csd"><citetitle>median.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/mediank.csd"><citetitle>mediank.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/mode.csd"><citetitle>mode.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tone.csd"><citetitle>tone.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tonex.csd"><citetitle>tonex.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Modifiers:Standard Filters:Resonant</title><simpara />
<para><ulink url="examples/areson.csd"><citetitle>areson.csd</citetitle></ulink></para><simpara />
@@ -338,12 +533,16 @@
<para><ulink url="examples/lowres.csd"><citetitle>lowres.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/lowresx.csd"><citetitle>lowresx.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/lpf18.csd"><citetitle>lpf18.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/moogladder.csd"><citetitle>moogladder.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/moogvcf.csd"><citetitle>moogvcf.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/moogvcf2.csd"><citetitle>moogvcf2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/reson.csd"><citetitle>reson.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/resonr.csd"><citetitle>resonr.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/resonx.csd"><citetitle>resonx.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/resony.csd"><citetitle>resony.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/resonr.csd"><citetitle>resonr.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/rezzy.csd"><citetitle>rezzy.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/statevar.csd"><citetitle>statevar.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/svfilter.csd"><citetitle>svfilter.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/tbvcf.csd"><citetitle>tbvcf.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vlowres.csd"><citetitle>vlowres.csd</citetitle></ulink></para><simpara />
@@ -351,14 +550,24 @@
<formalpara><title>Signal Modifiers:Standard Filters:Control</title><simpara />
<para><ulink url="examples/aresonk.csd"><citetitle>aresonk.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/atonek.csd"><citetitle>atonek.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/lineto.csd"><citetitle>lineto.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/port.csd"><citetitle>port.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/portk.csd"><citetitle>portk.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/resonk.csd"><citetitle>resonk.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/resonxk.csd"><citetitle>resonxk.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tlineto.csd"><citetitle>tlineto.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tonek.csd"><citetitle>tonek.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Signal Modifiers:Specialized Filters</title><simpara />
<para><ulink url="examples/dcblock.csd"><citetitle>dcblock.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/dcblock2.csd"><citetitle>dcblock2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/eqfil.csd"><citetitle>eqfil.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/filter2.csd"><citetitle>filter2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fofilter.csd"><citetitle>fofilter.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/hilbert.csd"><citetitle>hilbert.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/hilbert_barberpole.csd"><citetitle>hilbert_barberpole.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/nlfilt.csd"><citetitle>nlfilt.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/nlfilt2.csd"><citetitle>nlfilt2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pareq.csd"><citetitle>pareq.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/rbjeq.csd"><citetitle>rbjeq.csd</citetitle></ulink></para><simpara />
</formalpara>
@@ -373,6 +582,17 @@
<para><ulink url="examples/pdhalfy.csd"><citetitle>pdhalfy.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/powershape.csd"><citetitle>powershape.csd</citetitle></ulink></para><simpara />
</formalpara>
+<formalpara><title>Signal Modifiers:Comparators and Accumulators</title><simpara />
+<para><ulink url="examples/max.csd"><citetitle>max.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/max_k.csd"><citetitle>max_k.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/maxabs.csd"><citetitle>maxabs.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/maxabsaccum.csd"><citetitle>maxabsaccum.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/maxaccum.csd"><citetitle>maxaccum.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/min.csd"><citetitle>min.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/minabs.csd"><citetitle>minabs.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/minabsaccum.csd"><citetitle>minabsaccum.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/minaccum.csd"><citetitle>minaccum.csd</citetitle></ulink></para><simpara />
+</formalpara>
<formalpara><title>Instrument Control:Clock Control</title><simpara />
<para><ulink url="examples/clockoff.csd"><citetitle>clockoff.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/clockon.csd"><citetitle>clockon.csd</citetitle></ulink></para><simpara />
@@ -385,18 +605,28 @@
<para><ulink url="examples/lessthan.csd"><citetitle>lessthan.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/notequal.csd"><citetitle>notequal.csd</citetitle></ulink></para><simpara />
</formalpara>
+<formalpara><title>Instrument Control:Compilation</title><simpara />
+<para><ulink url="examples/compileorc.csd"><citetitle>compileorc.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/compilestr.csd"><citetitle>compilestr.csd</citetitle></ulink></para><simpara />
+</formalpara>
<formalpara><title>Instrument Control:Duration Control</title><simpara />
<para><ulink url="examples/ihold.csd"><citetitle>ihold.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/kill.csd"><citetitle>kill.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/turnoff.csd"><citetitle>turnoff.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Instrument Control:Invocation</title><simpara />
<para><ulink url="examples/event.csd"><citetitle>event.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/event_named.csd"><citetitle>event_named.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/event_i.csd"><citetitle>event_i.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/instance.csd"><citetitle>instance.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/mute.csd"><citetitle>mute.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/readscore.csd"><citetitle>readscore.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/schedkwhen.csd"><citetitle>schedkwhen.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/schedkwhennamed.csd"><citetitle>schedkwhennamed.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/schedule.csd"><citetitle>schedule.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/schedwhen.csd"><citetitle>schedwhen.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/scoreline.csd"><citetitle>scoreline.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/scoreline_i.csd"><citetitle>scoreline_i.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Instrument Control:Program Flow Control</title><simpara />
<para><ulink url="examples/cggoto.csd"><citetitle>cggoto.csd</citetitle></ulink></para><simpara />
@@ -412,49 +642,80 @@
<para><ulink url="examples/ifthen.csd"><citetitle>ifthen.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/igoto.csd"><citetitle>igoto.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/kgoto.csd"><citetitle>kgoto.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/loop_le.csd"><citetitle>loop_le.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/loop_lt.csd"><citetitle>loop_lt.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tigoto.csd"><citetitle>tigoto.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/timout.csd"><citetitle>timout.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/until.csd"><citetitle>until.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Instrument Control:Realtime Performance Control</title><simpara />
<para><ulink url="examples/active.csd"><citetitle>active.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/active_k.csd"><citetitle>active_k.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/active_scale.csd"><citetitle>active_scale.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/cpumeter.csd"><citetitle>cpumeter.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/cpuprc.csd"><citetitle>cpuprc.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/exitnow.csd"><citetitle>exitnow.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/jacktransport.csd"><citetitle>jacktransport.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/maxalloc.csd"><citetitle>maxalloc.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/prealloc.csd"><citetitle>prealloc.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Instrument Control:Initialization and Reinitialization</title><simpara />
<para><ulink url="examples/assign.csd"><citetitle>assign.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/init.csd"><citetitle>init.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/p.csd"><citetitle>p.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/passign.csd"><citetitle>passign.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/reverb.csd"><citetitle>reverb.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pset.csd"><citetitle>pset.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pset-midi.csd"><citetitle>pset-midi.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/reinit.csd"><citetitle>reinit.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/reinit.csd"><citetitle>reinit.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tival.csd"><citetitle>tival.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Instrument Control:Sensing and Control</title><simpara />
<para><ulink url="examples/changed.csd"><citetitle>changed.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/checkbox.csd"><citetitle>checkbox.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/follow.csd"><citetitle>follow.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/follow2.csd"><citetitle>follow2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/getcfg.csd"><citetitle>getcfg.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/joystick.csd"><citetitle>joystick.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/joystick-2.csd"><citetitle>joystick-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/metro.csd"><citetitle>metro.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/metro-2.csd"><citetitle>metro-2.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/miditempo.csd"><citetitle>miditempo.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/p5g.csd"><citetitle>p5g.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pcount.csd"><citetitle>pcount.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/peak.csd"><citetitle>peak.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pindex.csd"><citetitle>pindex.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pindex-2.csd"><citetitle>pindex-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pitch.csd"><citetitle>pitch.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pitchamdf.csd"><citetitle>pitchamdf.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/plltrack.csd"><citetitle>plltrack.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ptrack.csd"><citetitle>ptrack.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/readscratch.csd"><citetitle>readscratch.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/rewindscore.csd"><citetitle>rewindscore.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/rms.csd"><citetitle>rms.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/sensekey.csd"><citetitle>sensekey.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/FLpanel-sensekey.csd"><citetitle>FLpanel-sensekey.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/FLpanel-sensekey2.csd"><citetitle>FLpanel-sensekey2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/seqtime.csd"><citetitle>seqtime.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/seqtime2.csd"><citetitle>seqtime2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/setctrl.csd"><citetitle>setctrl.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/setscorepos.csd"><citetitle>setscorepos.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/tempest.csd"><citetitle>tempest.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/tempo.csd"><citetitle>tempo.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/tempoval.csd"><citetitle>tempoval.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/timedseq.csd"><citetitle>timedseq.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/trigger.csd"><citetitle>trigger.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/trigseq.csd"><citetitle>trigseq.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/wii.csd"><citetitle>wii.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/readscratch.csd"><citetitle>readscratch.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/xyin.csd"><citetitle>xyin.csd</citetitle></ulink></para><simpara />
</formalpara>
+<formalpara><title>Instrument Control:Stacks</title><simpara />
+<para><ulink url="examples/pop.csd"><citetitle>pop.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/push.csd"><citetitle>push.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/stack.csd"><citetitle>stack.csd</citetitle></ulink></para><simpara />
+</formalpara>
<formalpara><title>Instrument Control:Subinstrument Control</title><simpara />
<para><ulink url="examples/subinstr.csd"><citetitle>subinstr.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/subinstr_named.csd"><citetitle>subinstr_named.csd</citetitle></ulink></para><simpara />
@@ -467,27 +728,57 @@
<para><ulink url="examples/timeinstk.csd"><citetitle>timeinstk.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/timeinsts.csd"><citetitle>timeinsts.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/timek.csd"><citetitle>timek.csd</citetitle></ulink></para><simpara />
-<para><ulink url="examples/times.csd"><citetitle>times.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/times_complex.csd"><citetitle>times_complex.csd</citetitle></ulink></para><simpara />
+</formalpara>
+<formalpara><title>Jacko Opcodes</title><simpara />
+<para><ulink url="examples/JackoInfo.csd"><citetitle>JackoInfo.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/JackoInit.csd"><citetitle>JackoInit.csd</citetitle></ulink></para><simpara />
+</formalpara>
+<formalpara><title>Lua Opcodes</title><simpara />
+<para><ulink url="examples/luaopcode.csd"><citetitle>luaopcode.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/luamoog.csd"><citetitle>luamoog.csd</citetitle></ulink></para><simpara />
+</formalpara>
+<formalpara><title>Serial I/O</title><simpara />
+<para><ulink url="examples/serialBegin.csd"><citetitle>serialBegin.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/serialRead.csd"><citetitle>serialRead.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/serialWrite.csd"><citetitle>serialWrite.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Table Control</title><simpara />
+<para><ulink url="examples/ftfree.csd"><citetitle>ftfree.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ftgen.csd"><citetitle>ftgen.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ftgen-2.csd"><citetitle>ftgen-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ftgentmp.csd"><citetitle>ftgentmp.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Table Control:Table Queries</title><simpara />
+<para><ulink url="examples/array.csd"><citetitle>array.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/fillarray.csd"><citetitle>fillarray.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ftchnls.csd"><citetitle>ftchnls.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ftcps.csd"><citetitle>ftcps.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ftlen.csd"><citetitle>ftlen.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ftlptim.csd"><citetitle>ftlptim.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ftsr.csd"><citetitle>ftsr.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/genarray.csd"><citetitle>genarray.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/genarray_i.csd"><citetitle>genarray_i.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/lenarray.csd"><citetitle>lenarray.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/maparray.csd"><citetitle>maparray.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/nsamp.csd"><citetitle>nsamp.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/slicearray.csd"><citetitle>slicearray.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/tableng.csd"><citetitle>tableng.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tabsum.csd"><citetitle>tabsum.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Table Control:Dynamic Selection</title><simpara />
+<para><ulink url="examples/tableikt.csd"><citetitle>tableikt.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tablekt.csd"><citetitle>tablekt.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/tablexkt.csd"><citetitle>tablexkt.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Table Control:Read/Write Opreations</title><simpara />
<para><ulink url="examples/ftsave.csd"><citetitle>ftsave.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tablecopy.csd"><citetitle>tablecopy.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tablefilter.csd"><citetitle>tablefilter.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tablefilter.csd"><citetitle>tablefilter.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tableimix.csd"><citetitle>tableimix.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tableiw.csd"><citetitle>tableiw.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tablemix.csd"><citetitle>tablemix.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/tabmorph.csd"><citetitle>tabmorph.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/tabmorpha.csd"><citetitle>tabmorpha.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/tabmorphak.csd"><citetitle>tabmorphak.csd</citetitle></ulink></para><simpara />
@@ -542,30 +833,40 @@
<para><ulink url="examples/divides.csd"><citetitle>divides.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/modulus.csd"><citetitle>modulus.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/multiplies.csd"><citetitle>multiplies.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/opand.csd"><citetitle>opand.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/bitwise.csd"><citetitle>bitwise.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/bitshift.csd"><citetitle>bitshift.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/logicOR.csd"><citetitle>logicOR.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/raises.csd"><citetitle>raises.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/subtracts.csd"><citetitle>subtracts.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Mathematical Operations:Comparators and Accumulators</title><simpara />
<para><ulink url="examples/clear.csd"><citetitle>clear.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vincr.csd"><citetitle>vincr.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vincr-complex.csd"><citetitle>vincr-complex.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Mathematical Operations:Mathematical Functions</title><simpara />
<para><ulink url="examples/abs.csd"><citetitle>abs.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ceil.csd"><citetitle>ceil.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/exp.csd"><citetitle>exp.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/floor.csd"><citetitle>floor.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/frac.csd"><citetitle>frac.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/int.csd"><citetitle>int.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/log.csd"><citetitle>log.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/log10.csd"><citetitle>log10.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/log2.csd"><citetitle>log2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/logbtwo.csd"><citetitle>logbtwo.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/powoftwo.csd"><citetitle>powoftwo.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/qinf.csd"><citetitle>qinf.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/qnan.csd"><citetitle>qnan.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/round.csd"><citetitle>round.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/sqrt.csd"><citetitle>sqrt.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Mathematical Operations:Trigonometric Functions</title><simpara />
<para><ulink url="examples/cos.csd"><citetitle>cos.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/cosh.csd"><citetitle>cosh.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/cosinv.csd"><citetitle>cosinv.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/signum.csd"><citetitle>signum.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/sin.csd"><citetitle>sin.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/sinh.csd"><citetitle>sinh.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/sininv.csd"><citetitle>sininv.csd</citetitle></ulink></para><simpara />
@@ -586,8 +887,12 @@
</formalpara>
<formalpara><title>Mathematical Operations:Opcode Equivalents of Functions</title><simpara />
<para><ulink url="examples/divz.csd"><citetitle>divz.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/mac.csd"><citetitle>mac.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/maca.csd"><citetitle>maca.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/polynomial.csd"><citetitle>polynomial.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pow.csd"><citetitle>pow.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/product.csd"><citetitle>product.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sum.csd"><citetitle>sum.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/taninv2.csd"><citetitle>taninv2.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Pitch Converters:Functions</title><simpara />
@@ -618,8 +923,11 @@
<para><ulink url="examples/aftouch.csd"><citetitle>aftouch.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/chanctrl.csd"><citetitle>chanctrl.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ctrl7.csd"><citetitle>ctrl7.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/initc7.csd"><citetitle>initc7.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/massign.csd"><citetitle>massign.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/midic7.csd"><citetitle>midic7.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/midictrl.csd"><citetitle>midictrl.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/notnum.csd"><citetitle>notnum.csd</citetitle></ulink></para><simpara />
-<para><ulink url="examples/notnum_complex.csd"><citetitle>notnum_complex.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pchbend.csd"><citetitle>pchbend.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pgmassign.csd"><citetitle>pgmassign.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pgmassign_ignore.csd"><citetitle>pgmassign_ignore.csd</citetitle></ulink></para><simpara />
@@ -628,6 +936,14 @@
<para><ulink url="examples/veloc.csd"><citetitle>veloc.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Real-time MIDI:Output</title><simpara />
+<para><ulink url="examples/nrpn.csd"><citetitle>nrpn.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outiat.csd"><citetitle>outiat.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outic.csd"><citetitle>outic.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outipb.csd"><citetitle>outipb.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outipc.csd"><citetitle>outipc.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outkat.csd"><citetitle>outkat.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outkc.csd"><citetitle>outkc.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outkpb.csd"><citetitle>outkpb.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/outkpc.csd"><citetitle>outkpc.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/outkpc_fltk.csd"><citetitle>outkpc_fltk.csd</citetitle></ulink></para><simpara />
</formalpara>
@@ -644,6 +960,7 @@
</formalpara>
<formalpara><title>Real-time MIDI:Generic I/O</title><simpara />
<para><ulink url="examples/midiin.csd"><citetitle>midiin.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/midiout.csd"><citetitle>midiout.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Real-time MIDI:Event Extenders</title><simpara />
<para><ulink url="examples/xtratim.csd"><citetitle>xtratim.csd</citetitle></ulink></para><simpara />
@@ -652,6 +969,7 @@
<formalpara><title>Real-time MIDI:Note Output</title><simpara />
<para><ulink url="examples/midion_simple.csd"><citetitle>midion_simple.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/midion_scale.csd"><citetitle>midion_scale.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/midion2.csd"><citetitle>midion2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/moscil.csd"><citetitle>moscil.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/noteondur.csd"><citetitle>noteondur.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/noteondur2.csd"><citetitle>noteondur2.csd</citetitle></ulink></para><simpara />
@@ -660,16 +978,51 @@
<para><ulink url="examples/midichannelaftertouch.csd"><citetitle>midichannelaftertouch.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/midichn.csd"><citetitle>midichn.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/midichn_advanced.csd"><citetitle>midichn_advanced.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/midicontrolchange.csd"><citetitle>midicontrolchange.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/mididefault.csd"><citetitle>mididefault.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/midinoteoff.csd"><citetitle>midinoteoff.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/midinoteoncps.csd"><citetitle>midinoteoncps.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/midinoteonkey.csd"><citetitle>midinoteonkey.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/midinoteonoct.csd"><citetitle>midinoteonoct.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/midinoteonpch.csd"><citetitle>midinoteonpch.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/midipitchbend.csd"><citetitle>midipitchbend.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/midipolyaftertouch.csd"><citetitle>midipolyaftertouch.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/midiprogramchange.csd"><citetitle>midiprogramchange.csd</citetitle></ulink></para><simpara />
+</formalpara>
+<formalpara><title>Real-time MIDI:System Realtime</title><simpara />
+<para><ulink url="examples/mclock.csd"><citetitle>mclock.csd</citetitle></ulink></para><simpara />
+</formalpara>
+<formalpara><title>Signal Flow Graph Opcodes</title><simpara />
+<para><ulink url="examples/alwayson.csd"><citetitle>alwayson.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/connect.csd"><citetitle>connect.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/ftgenonce.csd"><citetitle>ftgenonce.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/inleta.csd"><citetitle>inleta.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/inletk.csd"><citetitle>inletk.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outleta.csd"><citetitle>outleta.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/outletk.csd"><citetitle>outletk.csd</citetitle></ulink></para><simpara />
+</formalpara>
+<formalpara><title>Spectral Processing:STFT</title><simpara />
+<para><ulink url="examples/pvadd.csd"><citetitle>pvadd.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvbufread.csd"><citetitle>pvbufread.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvcross.csd"><citetitle>pvcross.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvinterp.csd"><citetitle>pvinterp.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvoc.csd"><citetitle>pvoc.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvread.csd"><citetitle>pvread.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tableseg.csd"><citetitle>tableseg.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tablexseg.csd"><citetitle>tablexseg.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vpvoc.csd"><citetitle>vpvoc.csd</citetitle></ulink></para><simpara />
+</formalpara>
+<formalpara><title>Spectral Processing:LPC</title><simpara />
+<para><ulink url="examples/lpfreson.csd"><citetitle>lpfreson.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/lpread.csd"><citetitle>lpread.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/lpreson.csd"><citetitle>lpreson.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/lpreson-2.csd"><citetitle>lpreson-2.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Spectral Processing:Streaming</title><simpara />
<para><ulink url="examples/binit.csd"><citetitle>binit.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/partials.csd"><citetitle>partials.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsadsyn.csd"><citetitle>pvsadsyn.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsanal.csd"><citetitle>pvsanal.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsarp.csd"><citetitle>pvsarp.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsarp2.csd"><citetitle>pvsarp2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsbandp.csd"><citetitle>pvsbandp.csd</citetitle></ulink></para><simpara />
@@ -677,42 +1030,93 @@
<para><ulink url="examples/pvsbin.csd"><citetitle>pvsbin.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsblur.csd"><citetitle>pvsblur.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsbufread.csd"><citetitle>pvsbufread.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsbufread2.csd"><citetitle>pvsbufread2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvscale.csd"><citetitle>pvscale.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvscent.csd"><citetitle>pvscent.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvscross.csd"><citetitle>pvscross.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsdiskin.csd"><citetitle>pvsdiskin.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsdisp.csd"><citetitle>pvsdisp.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsfilter.csd"><citetitle>pvsfilter.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsfread.csd"><citetitle>pvsfread.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsfreeze.csd"><citetitle>pvsfreeze.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsftr.csd"><citetitle>pvsftr.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsftw.csd"><citetitle>pvsftw.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsfwrite.csd"><citetitle>pvsfwrite.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsgain.csd"><citetitle>pvsgain.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvshift.csd"><citetitle>pvshift.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsifd.csd"><citetitle>pvsifd.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsinfo.csd"><citetitle>pvsinfo.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvslock.csd"><citetitle>pvslock.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsmaska.csd"><citetitle>pvsmaska.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsmix.csd"><citetitle>pvsmix.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsmooth.csd"><citetitle>pvsmooth.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsmorph.csd"><citetitle>pvsmorph.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsmorph2.csd"><citetitle>pvsmorph2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsosc.csd"><citetitle>pvsosc.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvspitch.csd"><citetitle>pvspitch.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvstanal.csd"><citetitle>pvstanal.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pvsvoc.csd"><citetitle>pvsvoc.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvswarp.csd"><citetitle>pvswarp.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/pvsynth.csd"><citetitle>pvsynth.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/resyn.csd"><citetitle>resyn.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sinsyn.csd"><citetitle>sinsyn.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/tradsyn.csd"><citetitle>tradsyn.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/trcross.csd"><citetitle>trcross.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/trfilter.csd"><citetitle>trfilter.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/trhighest.csd"><citetitle>trhighest.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/trlowest.csd"><citetitle>trlowest.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/trmix.csd"><citetitle>trmix.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/trscale.csd"><citetitle>trscale.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/trshift.csd"><citetitle>trshift.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/trsplit.csd"><citetitle>trsplit.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Spectral Processing:ATS</title><simpara />
<para><ulink url="examples/ATSadd.csd"><citetitle>ATSadd.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/ATSadd-2.csd"><citetitle>ATSadd-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ATSaddnz.csd"><citetitle>ATSaddnz.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/ATSaddnz-2.csd"><citetitle>ATSaddnz-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ATSbufread.csd"><citetitle>ATSbufread.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ATScross.csd"><citetitle>ATScross.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ATSinfo.csd"><citetitle>ATSinfo.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/ATSinfo-2.csd"><citetitle>ATSinfo-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ATSinterpread.csd"><citetitle>ATSinterpread.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ATSpartialtap.csd"><citetitle>ATSpartialtap.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ATSread.csd"><citetitle>ATSread.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/ATSread-2.csd"><citetitle>ATSread-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ATSreadnz.csd"><citetitle>ATSreadnz.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/ATSsinnoi.csd"><citetitle>ATSsinnoi.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/ATSsinnoi-2.csd"><citetitle>ATSsinnoi-2.csd</citetitle></ulink></para><simpara />
+</formalpara>
+<formalpara><title>Spectral Processing:Loris</title><simpara />
+<para><ulink url="examples/lorismorph.csd"><citetitle>lorismorph.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/lorisplay.csd"><citetitle>lorisplay.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/lorisread.csd"><citetitle>lorisread.csd</citetitle></ulink></para><simpara />
+</formalpara>
+<formalpara><title>Spectral Processing:Other</title><simpara />
+<para><ulink url="examples/centroid.csd"><citetitle>centroid.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/mincer.csd"><citetitle>mincer.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/temposcal.csd"><citetitle>temposcal.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Strings:Definition</title><simpara />
+<para><ulink url="examples/strfromurl.csd"><citetitle>strfromurl.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/strget.csd"><citetitle>strget.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/strset.csd"><citetitle>strset.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Strings:Manipulation</title><simpara />
+<para><ulink url="examples/puts.csd"><citetitle>puts.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sprintf.csd"><citetitle>sprintf.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/sprintfk.csd"><citetitle>sprintfk.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/strcat.csd"><citetitle>strcat.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/strcatk.csd"><citetitle>strcatk.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/strcmp.csd"><citetitle>strcmp.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/strcpyk.csd"><citetitle>strcpyk.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/strindexk.csd"><citetitle>strindexk.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/strrindex.csd"><citetitle>strrindex.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/strsub.csd"><citetitle>strsub.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Strings:Conversion</title><simpara />
+<para><ulink url="examples/strchar.csd"><citetitle>strchar.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/strlower.csd"><citetitle>strlower.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/strtod.csd"><citetitle>strtod.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/strtodk.csd"><citetitle>strtodk.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/strtol.csd"><citetitle>strtol.csd</citetitle></ulink></para><simpara />
@@ -734,7 +1138,9 @@
<para><ulink url="examples/vmult.csd"><citetitle>vmult.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vmult_i.csd"><citetitle>vmult_i.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vpow.csd"><citetitle>vpow.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vpow-2.csd"><citetitle>vpow-2.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vpow_i.csd"><citetitle>vpow_i.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/vpow_i-2.csd"><citetitle>vpow_i-2.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Vectorial:Vectorial operations</title><simpara />
<para><ulink url="examples/vaddv.csd"><citetitle>vaddv.csd</citetitle></ulink></para><simpara />
@@ -755,6 +1161,7 @@
<para><ulink url="examples/vrandi.csd"><citetitle>vrandi.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Vectorial:Cellular Automata</title><simpara />
+<para><ulink url="examples/cell.csd"><citetitle>cell.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/vcella.csd"><citetitle>vcella.csd</citetitle></ulink></para><simpara />
</formalpara>
<formalpara><title>Zak Patch System</title><simpara />
@@ -798,6 +1205,13 @@
<para><ulink url="examples/insremotM.csd"><citetitle>insremotM.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/midremot.csd"><citetitle>midremot.csd</citetitle></ulink></para><simpara />
</formalpara>
+<formalpara><title>Mixer Opcodes</title><simpara />
+<para><ulink url="examples/Mixer.csd"><citetitle>Mixer.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/Mixer.csd"><citetitle>Mixer.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/Mixer.csd"><citetitle>Mixer.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/Mixer.csd"><citetitle>Mixer.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/Mixer.csd"><citetitle>Mixer.csd</citetitle></ulink></para><simpara />
+</formalpara>
<formalpara><title>Image Processing Opcodes</title><simpara />
<para><ulink url="examples/imageopcodes.csd"><citetitle>imageopcodes.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/imageopcodes.csd"><citetitle>imageopcodes.csd</citetitle></ulink></para><simpara />
@@ -807,8 +1221,18 @@
<para><ulink url="examples/imageopcodes.csd"><citetitle>imageopcodes.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/imageopcodes.csd"><citetitle>imageopcodes.csd</citetitle></ulink></para><simpara />
</formalpara>
+<formalpara><title>Array Opcodes</title><simpara />
+<para><ulink url="examples/copya2ftab.csd"><citetitle>copya2ftab.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/copyf2array.csd"><citetitle>copyf2array.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/maxarray.csd"><citetitle>maxarray.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/minarray.csd"><citetitle>minarray.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/scalearray.csd"><citetitle>scalearray.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/sumarray.csd"><citetitle>sumarray.csd</citetitle></ulink></para><simpara />
+</formalpara>
<formalpara><title>Miscellaneous</title><simpara />
+<para><ulink url="examples/fareyleni.csd"><citetitle>fareyleni.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/modmatrix.csd"><citetitle>modmatrix.csd</citetitle></ulink></para><simpara />
+<para><ulink url="examples/pwd.csd"><citetitle>pwd.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/system.csd"><citetitle>system.csd</citetitle></ulink></para><simpara />
<para><ulink url="examples/farey7shuffled.csd"><citetitle>farey7shuffled.csd</citetitle></ulink></para><simpara />
</formalpara>
diff --git a/misc/quickref.xml b/misc/quickref.xml
index b117ae6..9eb8b6c 100644
--- a/misc/quickref.xml
+++ b/misc/quickref.xml
@@ -7,10 +7,11 @@
<title>Orchestra Syntax:Header</title>
<para>
<para/>
+<synopsis><link linkend="Zerodbfs">0dbfs</link> = iarg</synopsis><synopsis><link linkend="Zerodbfs">0dbfs</link> </synopsis><para/>
<synopsis><link linkend="kr">kr</link> = iarg</synopsis><para/>
<synopsis><link linkend="ksmps">ksmps</link> = iarg</synopsis><para/>
<synopsis><link linkend="nchnls">nchnls</link> = iarg</synopsis><para/>
-<synopsis><link linkend="nchnls_i">nchns_i</link> = iarg</synopsis><para/>
+<synopsis><link linkend="nchnls_i">nchnls_i</link> = iarg</synopsis><para/>
<synopsis><link linkend="sr">sr</link> = iarg</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
@@ -44,7 +45,9 @@
<title>Signal Generators:Additive Synthesis/Resynthesis</title>
<para>
<para/>
+<synopsis>ares <link linkend="adsyn">adsyn</link> kamod, kfmod, ksmod, ifilcod</synopsis><para/>
<synopsis>ares <link linkend="adsynt">adsynt</link> kamp, kcps, iwfn, ifreqfn, iampfn, icnt [, iphs]</synopsis><para/>
+<synopsis>ar <link linkend="adsynt2">adsynt2</link> kamp, kcps, iwfn, ifreqfn, iampfn, icnt [, iphs]</synopsis><para/>
<synopsis>ares <link linkend="hsboscil">hsboscil</link> kamp, ktone, kbrite, ibasfreq, iwfn, ioctfn \
[, ioctcnt] [, iphs]</synopsis><para/>
</para></formalpara>
@@ -57,25 +60,24 @@
kl2minf, kl2maxf, ilfomode, keqminf, keqmaxf, keqminl, keqmaxl, \
keqminq, keqmaxq, ieqmode, kfn [, il1fn] [, il2fn] [, ieqffn] \
[, ieqlfn] [, ieqqfn] [, itabl] [, ioutfn]</synopsis><para/>
-<synopsis>ares <link linkend="oscil">oscil</link> xamp, xcps, ifn [, iphs]</synopsis><synopsis>kres <link linkend="oscil">oscil</link> kamp, kcps, ifn [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="oscil3">oscil3</link> xamp, xcps, ifn [, iphs]</synopsis><synopsis>kres <link linkend="oscil3">oscil3</link> kamp, kcps, ifn [, iphs]</synopsis><para/>
+<synopsis>ares <link linkend="oscil">oscil</link> xamp, xcps [, ifn, iphs]</synopsis><synopsis>kres <link linkend="oscil">oscil</link> kamp, kcps [, ifn, iphs]</synopsis><para/>
+<synopsis>ares <link linkend="oscil3">oscil3</link> xamp, xcps [, ifn, iphs]</synopsis><synopsis>kres <link linkend="oscil3">oscil3</link> kamp, kcps [, ifn, iphs]</synopsis><para/>
<synopsis>ares <link linkend="oscili">oscili</link> xamp, xcps, ifn [, iphs]</synopsis><synopsis>kres <link linkend="oscili">oscili</link> kamp, kcps, ifn [, iphs]</synopsis><para/>
<synopsis>ares <link linkend="oscilikt">oscilikt</link> xamp, xcps, kfn [, iphs] [, istor]</synopsis><synopsis>kres <link linkend="oscilikt">oscilikt</link> kamp, kcps, kfn [, iphs] [, istor]</synopsis><para/>
<synopsis>ares <link linkend="osciliktp">osciliktp</link> kcps, kfn, kphs [, istor]</synopsis><para/>
<synopsis>ares <link linkend="oscilikts">oscilikts</link> xamp, xcps, kfn, async, kphs [, istor]</synopsis><para/>
<synopsis>ares <link linkend="osciln">osciln</link> kamp, ifrq, ifn, itimes</synopsis><para/>
<synopsis>ares <link linkend="oscils">oscils</link> iamp, icps, iphs [, iflg]</synopsis><para/>
-<synopsis>ares <link linkend="poscil">poscil</link> aamp, acps, ifn [, iphs]</synopsis><synopsis>ares <link linkend="poscil">poscil</link> aamp, kcps, ifn [, iphs]</synopsis><synopsis>ares <link linkend="poscil">poscil</link> kamp, acps, ifn [, iphs]</synopsis><synopsis>ares <link linkend="poscil">poscil</link> kamp, kcps, ifn [, iphs]</synopsis><synopsis>ires <link linkend="poscil">poscil</link> kamp, kcps, ifn [, iphs]</synopsis><synopsis>kres <link linkend="poscil">poscil</link> kamp, kcps, ifn [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="poscil3">poscil3</link> kamp, kcps, ifn [, iphs]</synopsis><synopsis>kres <link linkend="poscil3">poscil3</link> kamp, kcps, ifn [, iphs]</synopsis><para/>
+<synopsis>ares <link linkend="poscil">poscil</link> aamp, acps [, ifn, iphs]</synopsis><synopsis>ares <link linkend="poscil">poscil</link> aamp, kcps [, ifn, iphs]</synopsis><synopsis>ares <link linkend="poscil">poscil</link> kamp, acps [, ifn, iphs]</synopsis><synopsis>ares <link linkend="poscil">poscil</link> kamp, kcps [, ifn, iphs]</synopsis><synopsis>ires <link linkend="poscil">poscil</link> kamp, kcps [, ifn, iphs]</synopsis><synopsis>kres <link linkend="poscil">poscil</link> kamp, kcps [, ifn, iphs]</synopsis><para/>
+<synopsis>ares <link linkend="poscil3">poscil3</link> aamp, acps [, ifn, iphs]</synopsis><synopsis>ares <link linkend="poscil3">poscil3</link> aamp, kcps [, ifn, iphs]</synopsis><synopsis>ares <link linkend="poscil3">poscil3</link> kamp, acps [, ifn, iphs]</synopsis><synopsis>ares <link linkend="poscil3">poscil3</link> kamp, kcps [, ifn, iphs]</synopsis><synopsis>ires <link linkend="poscil3">poscil3</link> kamp, kcps [, ifn, iphs]</synopsis><synopsis>kres <link linkend="poscil3">poscil3</link> kamp, kcps [, ifn, iphs]</synopsis><para/>
<synopsis>kout <link linkend="vibr">vibr</link> kAverageAmp, kAverageFreq, ifn</synopsis><para/>
-<synopsis>kout <link linkend="vibrato">vibrato</link> kAverageAmp, kAverageFreq, kRandAmountAmp, \
- kRandAmountFreq, kAmpMinRate, kAmpMaxRate, kcpsMinRate, \
- kcpsMaxRate, ifn [, iphs]</synopsis><para/>
+<synopsis>kout <link linkend="vibrato">vibrato</link> kAverageAmp, kAverageFreq, kRandAmountAmp, kRandAmountFreq, kAmpMinRate, kAmpMaxRate, kcpsMinRate, kcpsMaxRate, ifn [, iphs</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Signal Generators:Dynamic Spectrum Oscillators</title>
<para>
<para/>
+<synopsis>ares <link linkend="buzz">buzz</link> xamp, xcps, knh, ifn [, iphs]</synopsis><para/>
<synopsis>ares <link linkend="gbuzz">gbuzz</link> xamp, xcps, knh, klh, kmul, ifn [, iphs]</synopsis><para/>
<synopsis>ares <link linkend="mpulse">mpulse</link> kamp, kintvl [, ioffset]</synopsis><para/>
<synopsis>ares <link linkend="vco">vco</link> xamp, xcps, iwave, kpw [, ifn] [, imaxd] [, ileak] [, inyx] \
@@ -90,18 +92,18 @@
<para>
<para/>
<synopsis>a1, a2 <link linkend="crossfm">crossfm</link> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis><synopsis>a1, a2 <link linkend="crossfm">crossfmi</link> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis><synopsis>a1, a2 <link linkend="crossfm">crosspm</link> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis><synopsis>a1, a2 <link linkend="crossfm">crosspmi</link> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis><synopsis>a1, a2 <link linkend="crossfm">crossfmpm</link> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis><synopsis>a1, a2 <link linkend="crossfm">crossfmpmi</link> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis><para/>
-<synopsis>ares <link linkend="fmb3">fmb3</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
- ifn4, ivfn</synopsis><para/>
-<synopsis>ares <link linkend="fmbell">fmbell</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
- ifn4, ivfn</synopsis><para/>
+<synopsis>ares <link linkend="fmb3">fmb3</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, ifn3, \
+ ifn4, ivfn]</synopsis><para/>
+<synopsis>ares <link linkend="fmbell">fmbell</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, ifn3, \
+ ifn4, ivfn, isus]</synopsis><para/>
<synopsis>ares <link linkend="fmmetal">fmmetal</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
ifn4, ivfn</synopsis><para/>
-<synopsis>ares <link linkend="fmpercfl">fmpercfl</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, \
- ifn3, ifn4, ivfn</synopsis><para/>
+<synopsis>ares <link linkend="fmpercfl">fmpercfl</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, \
+ ifn3, ifn4, ivfn]</synopsis><para/>
<synopsis>ares <link linkend="fmrhode">fmrhode</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, \
ifn3, ifn4, ivfn</synopsis><para/>
-<synopsis>ares <link linkend="fmvoice">fmvoice</link> kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate, ifn1, \
- ifn2, ifn3, ifn4, ivibfn</synopsis><para/>
+<synopsis>ares <link linkend="fmvoice">fmvoice</link> kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate[, ifn1, \
+ ifn2, ifn3, ifn4, ivibfn]</synopsis><para/>
<synopsis>ares <link linkend="fmwurlie">fmwurlie</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
ifn4, ivfn</synopsis><para/>
<synopsis>ares <link linkend="foscil">foscil</link> xamp, kcps, xcar, xmod, kndx, ifn [, iphs]</synopsis><para/>
@@ -153,51 +155,59 @@
<para>
<para/>
<synopsis><link linkend="hvs1">hvs1</link> kx, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis><para/>
-<synopsis><link linkend="hvs2">hvs2</link> kx, ky, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis><para/>
-<synopsis><link linkend="hvs3">hvs3</link> kx, ky, kz, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis><para/>
+<synopsis><link linkend="hvs2">hvs2</link> kx, ky, inumParms, inumPointsX, inumPointsY, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis><para/>
+<synopsis><link linkend="hvs3">hvs3</link> kx, ky, kz, inumParms, inumPointsX, inumPointsY, inumPointsZ, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Signal Generators:Linear and Exponential Generators</title>
<para>
<para/>
+<synopsis>ares <link linkend="cosseg">cosseg</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><synopsis>kres <link linkend="cosseg">cosseg</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><para/>
+<synopsis>ares <link linkend="cossegb">cossegb</link> ia, itim1, ib [, itim2] [, ic] [...]</synopsis><synopsis>kres <link linkend="cossegb">cossegb</link> ia, itim1, ib [, itim2] [, ic] [...]</synopsis><para/>
+<synopsis>ares <link linkend="cossegr">cossegr</link> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><synopsis>kres <link linkend="cossegr">cossegr</link> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><para/>
<synopsis>kout <link linkend="expcurve">expcurve</link> kindex, ksteepness</synopsis><para/>
<synopsis>ares <link linkend="expon">expon</link> ia, idur, ib</synopsis><synopsis>kres <link linkend="expon">expon</link> ia, idur, ib</synopsis><para/>
<synopsis>ares <link linkend="expseg">expseg</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><synopsis>kres <link linkend="expseg">expseg</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><para/>
<synopsis>ares <link linkend="expsega">expsega</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><para/>
+<synopsis>ares <link linkend="expsegb">expsegb</link> ia, itim1, ib [, itim2] [, ic] [...]</synopsis><synopsis>kres <link linkend="expsegb">expsegb</link> ia, itim1, ib [, itim2] [, ic] [...]</synopsis><para/>
+<synopsis>ares <link linkend="expsegba">expsegba</link> ia, itim1, ib [, itim2] [, ic] [...]</synopsis><para/>
<synopsis>ares <link linkend="expsegr">expsegr</link> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><synopsis>kres <link linkend="expsegr">expsegr</link> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><para/>
<synopsis>kout <link linkend="gainslider">gainslider</link> kindex</synopsis><para/>
<synopsis>ares <link linkend="jspline">jspline</link> xamp, kcpsMin, kcpsMax</synopsis><synopsis>kres <link linkend="jspline">jspline</link> kamp, kcpsMin, kcpsMax</synopsis><para/>
<synopsis>ares <link linkend="line">line</link> ia, idur, ib</synopsis><synopsis>kres <link linkend="line">line</link> ia, idur, ib</synopsis><para/>
<synopsis>ares <link linkend="linseg">linseg</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><synopsis>kres <link linkend="linseg">linseg</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><para/>
+<synopsis>ares <link linkend="linsegb">linsegb</link> ia, itim1, ib [, itim2] [, ic] [...]</synopsis><synopsis>kres <link linkend="linsegb">linsegb</link> ia, itim1, ib [, itim2] [, ic] [...]</synopsis><para/>
<synopsis>ares <link linkend="linsegr">linsegr</link> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><synopsis>kres <link linkend="linsegr">linsegr</link> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><para/>
<synopsis>kout <link linkend="logcurve">logcurve</link> kindex, ksteepness</synopsis><para/>
-<synopsis>ksig <link linkend="loopseg">loopseg</link> kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis><para/>
+<synopsis>ksig <link linkend="loopseg">loopseg</link> kfreq, ktrig, iphase, kvalue0, ktime0 [, kvalue1] [, ktime1] \
+[, kvalue2] [, ktime2][...]</synopsis><para/>
<synopsis>ksig <link linkend="loopsegp">loopsegp</link> kphase, kvalue0, kdur0, kvalue1 \
[, kdur1, ... , kdurN-1, kvalueN]</synopsis><para/>
-<synopsis>ksig <link linkend="looptseg">looptseg</link> kfreq, ktrig, ktime0, kvalue0, ktype, [, ktime1] [,ktype1] [, kvalue1] \
- [, ktime2] [,ktype2] [, kvalue2] [...]</synopsis><para/>
-<synopsis>ksig <link linkend="loopxseg">loopxseg</link> kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis><para/>
-<synopsis>ksig <link linkend="lpshold">lpshold</link> kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis><para/>
-<synopsis>ksig <link linkend="lpsholdp">lpsholdp</link> kphase, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
+<synopsis>ksig <link linkend="looptseg">looptseg</link> kfreq, ktrig, iphase, kvalue0, ktype0, ktime0, [, kvalue1] [,ktype1] [, ktime1] \
+ [, kvalue2] [,ktype2] [, ktime2] [...] [, kvalueN] [,ktypeN] [, ktimeN]</synopsis><para/>
+<synopsis>ksig <link linkend="loopxseg">loopxseg</link> kfreq, ktrig, iphase, ktime0, kvalue0 [, ktime1] [, kvalue1] \
[, ktime2] [, kvalue2] [...]</synopsis><para/>
+<synopsis>ksig <link linkend="lpshold">lpshold</link> kfreq, ktrig, iphase, ktime0, kvalue0 [, kvalue1] [, ktime1] [, kvalue2] [, ktime2] [...]</synopsis><para/>
+<synopsis>ksig <link linkend="lpsholdp">lpsholdp</link> kphase, kvalue0, ktime0 [, kvalue1] [, ktime1] \
+ [, kvalue2] [, ktime2] [...]</synopsis><para/>
<synopsis>ares <link linkend="rspline">rspline</link> xrangeMin, xrangeMax, kcpsMin, kcpsMax</synopsis><synopsis>kres <link linkend="rspline">rspline</link> krangeMin, krangeMax, kcpsMin, kcpsMax</synopsis><para/>
<synopsis>kscl <link linkend="scale">scale</link> kinput, kmax, kmin</synopsis><para/>
<synopsis>ares <link linkend="transeg">transeg</link> ia, idur, itype, ib [, idur2] [, itype] [, ic] ...</synopsis><synopsis>kres <link linkend="transeg">transeg</link> ia, idur, itype, ib [, idur2] [, itype] [, ic] ...</synopsis><para/>
+<synopsis>ares <link linkend="transegb">transegb</link> ia, itim, itype, ib [, itim2] [, itype] [, ic] ...</synopsis><synopsis>kres <link linkend="transegb">transegb</link> ia, itim, itype, ib [, itim2] [, itype] [, ic] ...</synopsis><para/>
<synopsis>ares <link linkend="transegr">transegr</link> ia, idur, itype, ib [, idur2] [, itype] [, ic] ...</synopsis><synopsis>kres <link linkend="transegr">transegr</link> ia, idur, itype, ib [, idur2] [, itype] [, ic] ...</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Signal Generators:Envelope Generators</title>
<para>
<para/>
+<synopsis>ares <link linkend="adsr">adsr</link> iatt, idec, islev, irel [, idel]</synopsis><synopsis>kres <link linkend="adsr">adsr</link> iatt, idec, islev, irel [, idel]</synopsis><para/>
<synopsis>ares <link linkend="envlpx">envlpx</link> xamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod]</synopsis><synopsis>kres <link linkend="envlpx">envlpx</link> kamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod]</synopsis><para/>
<synopsis>ares <link linkend="envlpxr">envlpxr</link> xamp, irise, idec, ifn, iatss, iatdec [, ixmod] [,irind]</synopsis><synopsis>kres <link linkend="envlpxr">envlpxr</link> kamp, irise, idec, ifn, iatss, iatdec [, ixmod] [,irind]</synopsis><para/>
<synopsis>ares <link linkend="linen">linen</link> xamp, irise, idur, idec</synopsis><synopsis>kres <link linkend="linen">linen</link> kamp, irise, idur, idec</synopsis><para/>
<synopsis>ares <link linkend="linenr">linenr</link> xamp, irise, idec, iatdec</synopsis><synopsis>kres <link linkend="linenr">linenr</link> kamp, irise, idec, iatdec</synopsis><para/>
<synopsis>ares <link linkend="madsr">madsr</link> iatt, idec, islev, irel [, idel] [, ireltim]</synopsis><synopsis>kres <link linkend="madsr">madsr</link> iatt, idec, islev, irel [, idel] [, ireltim]</synopsis><para/>
<synopsis>ares <link linkend="mxadsr">mxadsr</link> iatt, idec, islev, irel [, idel] [, ireltim]</synopsis><synopsis>kres <link linkend="mxadsr">mxadsr</link> iatt, idec, islev, irel [, idel] [, ireltim]</synopsis><para/>
+<synopsis>ares <link linkend="xadsr">xadsr</link> iatt, idec, islev, irel [, idel]</synopsis><synopsis>kres <link linkend="xadsr">xadsr</link> iatt, idec, islev, irel [, idel]</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Signal Generators:Models and Emulations</title>
@@ -211,6 +221,15 @@
<synopsis>ares <link linkend="crunch">crunch</link> iamp, idettack [, inum] [, idamp] [, imaxshake]</synopsis><para/>
<synopsis>ares <link linkend="dripwater">dripwater</link> kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \
[, ifreq1] [, ifreq2]</synopsis><para/>
+<synopsis>ares <link linkend="gendy">gendy</link> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis><synopsis>kres <link linkend="gendy">gendy</link> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis><para/>
+<synopsis>ares <link linkend="gendyc">gendyc</link> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis><synopsis>kres <link linkend="gendyc">gendyc</link> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis><para/>
+<synopsis>ares <link linkend="gendyx">gendyx</link> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl, kcurveup, kcurvedown [, initcps] [, knum]</synopsis><synopsis>kres <link linkend="gendyx">gendyx</link> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl, kcurveup, kcurvedown [, initcps] [, knum]</synopsis><para/>
<synopsis>ares <link linkend="gogobel">gogobel</link> kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivfn</synopsis><para/>
<synopsis>ares <link linkend="guiro">guiro</link> kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] [, ifreq1]</synopsis><para/>
<synopsis>ax, ay, az <link linkend="lorenz">lorenz</link> ksv, krv, kbv, kh, ix, iy, iz, iskip [, iskipinit]</synopsis><para/>
@@ -251,10 +270,18 @@
<para/>
<synopsis>ares <link linkend="betarand">betarand</link> krange, kalpha, kbeta</synopsis><synopsis>ires <link linkend="betarand">betarand</link> krange, kalpha, kbeta</synopsis><synopsis>kres <link linkend="betarand">betarand</link> krange, kalpha, kbeta</synopsis><para/>
<synopsis>ares <link linkend="bexprnd">bexprnd</link> krange</synopsis><synopsis>ires <link linkend="bexprnd">bexprnd</link> krange</synopsis><synopsis>kres <link linkend="bexprnd">bexprnd</link> krange</synopsis><para/>
+<synopsis>ares <link linkend="cauchy">cauchy</link> kalpha</synopsis><synopsis>ires <link linkend="cauchy">cauchy</link> kalpha</synopsis><synopsis>kres <link linkend="cauchy">cauchy</link> kalpha</synopsis><para/>
+<synopsis>ares <link linkend="cauchyi">cauchyi</link> klambda, xamp, xcps</synopsis><synopsis>ires <link linkend="cauchyi">cauchyi</link> klambda, xamp, xcps</synopsis><synopsis>kres <link linkend="cauchyi">cauchyi</link> klambda, xamp, xcps</synopsis><para/>
<synopsis>aout <link linkend="cuserrnd">cuserrnd</link> kmin, kmax, ktableNum</synopsis><synopsis>iout <link linkend="cuserrnd">cuserrnd</link> imin, imax, itableNum</synopsis><synopsis>kout <link linkend="cuserrnd">cuserrnd</link> kmin, kmax, ktableNum</synopsis><para/>
<synopsis>aout <link linkend="duserrnd">duserrnd</link> ktableNum</synopsis><synopsis>iout <link linkend="duserrnd">duserrnd</link> itableNum</synopsis><synopsis>kout <link linkend="duserrnd">duserrnd</link> ktableNum</synopsis><para/>
+<synopsis>ares <link linkend="dust">dust</link> kamp, kdensity</synopsis><synopsis>kres <link linkend="dust">dust</link> kamp, kdensity</synopsis><para/>
+<synopsis>ares <link linkend="dust2">dust2</link> kamp, kdensity</synopsis><synopsis>kres <link linkend="dust2">dust2</link> kamp, kdensity</synopsis><para/>
<synopsis>ares <link linkend="exprand">exprand</link> klambda</synopsis><synopsis>ires <link linkend="exprand">exprand</link> klambda</synopsis><synopsis>kres <link linkend="exprand">exprand</link> klambda</synopsis><para/>
+<synopsis>ares <link linkend="exprandi">exprandi</link> klambda, xamp, xcps</synopsis><synopsis>ires <link linkend="exprandi">exprandi</link> klambda, xamp, xcps</synopsis><synopsis>kres <link linkend="exprandi">exprandi</link> klambda, xamp, xcps</synopsis><para/>
+<synopsis>ares <link linkend="fractalnoise">fractalnoise</link> kamp, kbeta</synopsis><para/>
<synopsis>ares <link linkend="gauss">gauss</link> krange</synopsis><synopsis>ires <link linkend="gauss">gauss</link> krange</synopsis><synopsis>kres <link linkend="gauss">gauss</link> krange</synopsis><para/>
+<synopsis>ares <link linkend="gaussi">gaussi</link> krange, xamp, xcps</synopsis><synopsis>ires <link linkend="gaussi">gaussi</link> krange, xamp, xcps</synopsis><synopsis>kres <link linkend="gaussi">gaussi</link> krange, xamp, xcps</synopsis><para/>
+<synopsis>ares <link linkend="gausstrig">gausstrig</link> kamp, kcps, kdev [, imode]</synopsis><synopsis>kres <link linkend="gausstrig">gausstrig</link> kamp, kcps, kdev [, imode]</synopsis><para/>
<synopsis>kout <link linkend="jitter">jitter</link> kamp, kcpsMin, kcpsMax</synopsis><para/>
<synopsis>kout <link linkend="jitter2">jitter2</link> ktotamp, kamp1, kcps1, kamp2, kcps2, kamp3, kcps3</synopsis><para/>
<synopsis>ares <link linkend="linrand">linrand</link> krange</synopsis><synopsis>ires <link linkend="linrand">linrand</link> krange</synopsis><synopsis>kres <link linkend="linrand">linrand</link> krange</synopsis><para/>
@@ -266,8 +293,8 @@
<synopsis>ares <link linkend="randh">randh</link> xamp, xcps [, iseed] [, isize] [, ioffset]</synopsis><synopsis>kres <link linkend="randh">randh</link> kamp, kcps [, iseed] [, isize] [, ioffset]</synopsis><para/>
<synopsis>ares <link linkend="randi">randi</link> xamp, xcps [, iseed] [, isize] [, ioffset]</synopsis><synopsis>kres <link linkend="randi">randi</link> kamp, kcps [, iseed] [, isize] [, ioffset]</synopsis><para/>
<synopsis>ares <link linkend="random">random</link> kmin, kmax</synopsis><synopsis>ires <link linkend="random">random</link> imin, imax</synopsis><synopsis>kres <link linkend="random">random</link> kmin, kmax</synopsis><para/>
-<synopsis>ares <link linkend="randomh">randomh</link> kmin, kmax, acps</synopsis><synopsis>kres <link linkend="randomh">randomh</link> kmin, kmax, kcps</synopsis><para/>
-<synopsis>ares <link linkend="randomi">randomi</link> kmin, kmax, acps</synopsis><synopsis>kres <link linkend="randomi">randomi</link> kmin, kmax, kcps</synopsis><para/>
+<synopsis>ares <link linkend="randomh">randomh</link> kmin, kmax, xcps [,imode] [,ifirstval]</synopsis><synopsis>kres <link linkend="randomh">randomh</link> kmin, kmax, kcps [,imode] [,ifirstval]</synopsis><para/>
+<synopsis>ares <link linkend="randomi">randomi</link> kmin, kmax, xcps [,imode] [,ifirstval]</synopsis><synopsis>kres <link linkend="randomi">randomi</link> kmin, kmax, kcps [,imode] [,ifirstval]</synopsis><para/>
<synopsis>ax <link linkend="rnd31">rnd31</link> kscl, krpow [, iseed]</synopsis><synopsis>ix <link linkend="rnd31">rnd31</link> iscl, irpow [, iseed]</synopsis><synopsis>kx <link linkend="rnd31">rnd31</link> kscl, krpow [, iseed]</synopsis><para/>
<synopsis><link linkend="seed">seed</link> ival</synopsis><para/>
<synopsis>kout <link linkend="trandom">trandom</link> ktrig, kmin, kmax</synopsis><para/>
@@ -283,6 +310,8 @@
<para/>
<synopsis>a1 <link linkend="bbcutm">bbcutm</link> asource, ibps, isubdiv, ibarlength, iphrasebars, inumrepeats \
[, istutterspeed] [, istutterchance] [, ienvchoice ]</synopsis><para/>
+<synopsis>a1,a2 <link linkend="bbcuts">bbcuts</link> asource1, asource2, ibps, isubdiv, ibarlength, iphrasebars, \
+ inumrepeats [, istutterspeed] [, istutterchance] [, ienvchoice]</synopsis><para/>
<synopsis>asig <link linkend="flooper">flooper</link> kamp, kpitch, istart, idur, ifad, ifn</synopsis><para/>
<synopsis>asig <link linkend="flooper2">flooper2</link> kamp, kpitch, kloopstart, kloopend, kcrossfade, ifn \
[, istart, imode, ifenv, iskip]</synopsis><para/>
@@ -319,7 +348,7 @@
<synopsis>ares <link linkend="sfinstrm">sfinstrm</link> ivel, inotenum, xamp, xfreq, instrnum, ifilhandle \
[, iflag] [, ioffset]</synopsis><para/>
<synopsis>ir <link linkend="sfload">sfload</link> &quot;filename&quot;</synopsis><para/>
-<synopsis>ar1, ar2 <link linkend="sflooper">sflooper</link> ivel, inotenum, kamp, kpitch, ipreindex, kloopstart, kloopend, kcrossfade, ifn \
+<synopsis>ar1, ar2 <link linkend="sflooper">sflooper</link> ivel, inotenum, kamp, kpitch, ipreindex, kloopstart, kloopend, kcrossfade \
[, istart, imode, ifenv, iskip] </synopsis><para/>
<synopsis><link linkend="sfpassign">sfpassign</link> istartindex, ifilhandle[, imsgs]</synopsis><para/>
<synopsis>ar1, ar2 <link linkend="sfplay">sfplay</link> ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset] [, ienv]</synopsis><para/>
@@ -347,11 +376,46 @@
kstif, kcentr, kdamp, ileft, iright, kpos, kstrngth, ain, idisp, id</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
+<title>Signal Generators:STK Opcodes</title>
+<para>
+<para/>
+<synopsis>asignal <link linkend="STKBandedWG">STKBandedWG</link> ifrequency, iamplitude, [kpress, kv1[, kmot, kv2[, klfo, kv3[, klfodepth, kv4[, kvel, kv5[, kstrk, kv6[, kinstr, kv7]]]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKBeeThree">STKBeeThree</link> ifrequency, iamplitude, [kop4, kv1[, kop3, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKBlowBotl">STKBlowBotl</link> ifrequency, iamplitude, [knoise, kv1[, klfo, kv2[, klfodepth, kv3[, kvol, kv4]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKBlowHole">STKBlowHole</link> ifrequency, iamplitude, [kreed, kv1[, knoise, kv2[, khole, kv3[, kreg, kv4[, kbreath, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKBowed">STKBowed</link> ifrequency, iamplitude, [kpress, kv1[, kpos, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKBrass">STKBrass</link> ifrequency, iamplitude, [klip, kv1[, kslide, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKClarinet">STKClarinet</link> ifrequency, iamplitude, [kstiff, kv1[, knoise, kv2[, klfo, kv3[, klfodepth, kv4[, kbreath, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKDrummer">STKDrummer</link> ifrequency, iamplitude</synopsis><para/>
+<synopsis>asignal <link linkend="STKFMVoices">STKFMVoices</link> ifrequency, iamplitude, [kvowel, kv1[, kspec, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKFlute">STKFlute</link> ifrequency, iamplitude, [kjet, kv1[, knoise, kv2[, klfo, kv3[, klfodepth, kv4[, kbreath, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKHevyMetl">STKHevyMetl</link> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKMandolin">STKMandolin</link> ifrequency, iamplitude, [kbody, kv1[, kpos, kv2[, ksus, kv3[, kdetune, kv4[, kmic, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKModalBar">STKModalBar</link> ifrequency, iamplitude, [khard, kv1[, kpos, kv2[, klfo, kv3[, klfodepth, kv4[, kmix, kv5[, kvol, kv6[, kinstr, kv7]]]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKMoog">STKMoog</link> ifrequency, iamplitude, [kq, kv1[, krate, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKPercFlut">STKPercFlut</link> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKPlucked">STKPlucked</link> ifrequency, iamplitude</synopsis><para/>
+<synopsis>asignal <link linkend="STKResonate">STKResonate</link> ifrequency, iamplitude, [kfreq, kv1[, kpole, kv2[, knotch, kv3[, kzero, kv4[, kenv, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKRhodey">STKRhodey</link> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKSaxofony">STKSaxofony</link> ifrequency, iamplitude, [kstiff, kv1[, kapert, kv2[, kblow, kv3[, knoise, kv4[, klfo, kv5[, klfodepth, kv6[, kbreath, kv7]]]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKShakers">STKShakers</link> ifrequency, iamplitude, [kenerg, kv1[, kdecay, kv2[, kshake, kv3[, knum, kv4[, kres, kv5[, kinstr, kv6]]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKSimple">STKSimple</link> ifrequency, iamplitude, [kpos, kv1[, kcross, kv2[, kenv, kv3[, kgain, kv4]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKSitar">STKSitar</link> ifrequency, iamplitude</synopsis><para/>
+<synopsis>asignal <link linkend="STKStifKarp">STKStifKarp</link> ifrequency, iamplitude, [kpos, kv1[, ksus, kv2[, kstretch, kv3]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKTubeBell">STKTubeBell</link> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKVoicForm">STKVoicForm</link> ifrequency, iamplitude, [kmix, kv1[, ksel, kv2[, klfo, kv3[, klfodepth, kv4[, kloud, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKWhistle">STKWhistle</link> ifrequency, iamplitude, [kmod, kv1[, knoise, kv2[, kfipfreq, kv3[, kfipgain, kv4[, kvol, kv5]]]]]</synopsis><para/>
+<synopsis>asignal <link linkend="STKWurley">STKWurley</link> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis><para/>
+</para></formalpara>
+<para></para><para></para><formalpara>
<title>Signal Generators:Table Access</title>
<para>
<para/>
-<synopsis>kres <link linkend="oscil1">oscil1</link> idel, kamp, idur, ifn</synopsis><para/>
-<synopsis>kres <link linkend="oscil1i">oscil1i</link> idel, kamp, idur, ifn</synopsis><para/>
+<synopsis>kres <link linkend="oscil1">oscil1</link> idel, kamp, idur [, ifn]</synopsis><para/>
+<synopsis>kres <link linkend="oscil1i">oscil1i</link> idel, kamp, idur [, ifn]</synopsis><para/>
+<synopsis>ares <link linkend="ptable">ptable</link> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <link linkend="ptable">ptable</link> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <link linkend="ptable">ptable</link> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><para/>
+<synopsis>ares <link linkend="ptable3">ptable3</link> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <link linkend="ptable3">ptable3</link> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <link linkend="ptable3">ptable3</link> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><para/>
+<synopsis>ares <link linkend="ptablei">ptablei</link> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <link linkend="ptablei">ptablei</link> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <link linkend="ptablei">ptablei</link> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><para/>
<synopsis>ir <link linkend="tab">tab_i</link> indx, ifn[, ixmode]</synopsis><synopsis>kr <link linkend="tab">tab</link> kndx, ifn[, ixmode]</synopsis><synopsis>ar <link linkend="tab">tab</link> xndx, ifn[, ixmode]</synopsis><synopsis><link linkend="tab">tabw_i</link> isig, indx, ifn [,ixmode]</synopsis><synopsis><link linkend="tab">tabw</link> ksig, kndx, ifn [,ixmode]</synopsis><synopsis><link linkend="tab">tabw</link> asig, andx, ifn [,ixmode]</synopsis><para/>
<synopsis>ares <link linkend="table">table</link> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <link linkend="table">table</link> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <link linkend="table">table</link> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><para/>
<synopsis>ares <link linkend="table3">table3</link> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <link linkend="table3">table3</link> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <link linkend="table3">table3</link> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><para/>
@@ -391,16 +455,18 @@
<synopsis><link linkend="dumpk3">dumpk3</link> ksig1, ksig2, ksig3, ifilname, iformat, iprd</synopsis><para/>
<synopsis><link linkend="dumpk4">dumpk4</link> ksig1, ksig2, ksig3, ksig4, ifilname, iformat, iprd</synopsis><para/>
<synopsis><link linkend="ficlose">ficlose</link> ihandle</synopsis><synopsis><link linkend="ficlose">ficlose</link> Sfilename</synopsis><para/>
-<synopsis><link linkend="fin">fin</link> ifilename, iskipframes, iformat, ain1 [, ain2] [, ain3] [,...]</synopsis><para/>
+<synopsis><link linkend="fin">fin</link> ifilename, iskipframes, iformat, ain1 [, ain2] [, ain3] [,...]</synopsis><synopsis><link linkend="fin">fin</link> ifilename, iskipframes, iformat, arr[]</synopsis><para/>
<synopsis><link linkend="fini">fini</link> ifilename, iskipframes, iformat, in1 [, in2] [, in3] [, ...]</synopsis><para/>
<synopsis><link linkend="fink">fink</link> ifilename, iskipframes, iformat, kin1 [, kin2] [, kin3] [,...]</synopsis><para/>
<synopsis>ihandle <link linkend="fiopen">fiopen</link> ifilename, imode</synopsis><para/>
-<synopsis><link linkend="fout">fout</link> ifilename, iformat, aout1 [, aout2, aout3,...,aoutN]</synopsis><para/>
+<synopsis><link linkend="fout">fout</link> ifilename, iformat, aout1 [, aout2, aout3,...,aoutN]</synopsis><synopsis><link linkend="fout">fout</link> ifilename, iformat, array[]</synopsis><para/>
<synopsis><link linkend="fouti">fouti</link> ihandle, iformat, iflag, iout1 [, iout2, iout3,....,ioutN]</synopsis><para/>
<synopsis><link linkend="foutir">foutir</link> ihandle, iformat, iflag, iout1 [, iout2, iout3,....,ioutN]</synopsis><para/>
<synopsis><link linkend="foutk">foutk</link> ifilename, iformat, kout1 [, kout2, kout3,....,koutN]</synopsis><para/>
<synopsis><link linkend="fprintks">fprintks</link> &quot;filename&quot;, &quot;string&quot;, [, kval1] [, kval2] [...]</synopsis><para/>
<synopsis><link linkend="fprints">fprints</link> &quot;filename&quot;, &quot;string&quot; [, ival1] [, ival2] [...]</synopsis><para/>
+<synopsis>Sres, kline <link linkend="readf">readf</link> ifilname</synopsis><para/>
+<synopsis>Sres, iline <link linkend="readfi">readfi</link> ifilname</synopsis><para/>
<synopsis>kres <link linkend="readk">readk</link> ifilname, iformat, iprd</synopsis><para/>
<synopsis>kr1, kr2 <link linkend="readk2">readk2</link> ifilname, iformat, iprd</synopsis><para/>
<synopsis>kr1, kr2, kr3 <link linkend="readk3">readk3</link> ifilname, iformat, iprd</synopsis><para/>
@@ -410,11 +476,13 @@
<title>Signal I/O:Signal Input</title>
<para>
<para/>
-<synopsis>ar1 [, ar2 [, ar3 [, ... ar24]]] <link linkend="diskin">diskin</link> ifilcod, kpitch [, iskiptim] \
- [, iwraparound] [, iformat] [, iskipinit]</synopsis><para/>
-<synopsis>a1[, a2[, ... a24]] <link linkend="diskin2">diskin2</link> ifilcod, kpitch[, iskiptim \
+<synopsis>ar1 [, ar2 [, ar3 [, ... arN]]] <link linkend="diskin">diskin</link> ifilcod, kpitch [, iskiptim] \
+ [, iwraparound] [, iformat] [, iskipinit]</synopsis><synopsis>ar1[] <link linkend="diskin">diskin2</link> ifilcod, kpitch[, iskiptim \
+ [, iwrap[, iformat [, iwsize[, ibufsize[, iskipinit]]]]]]</synopsis><para/>
+<synopsis>a1[, a2[, ... aN]] <link linkend="diskin2">diskin2</link> ifilcod, kpitch[, iskiptim \
+ [, iwrap[, iformat [, iwsize[, ibufsize[, iskipinit]]]]]]</synopsis><synopsis>ar1[] <link linkend="diskin2">diskin2</link> ifilcod, kpitch[, iskiptim \
[, iwrap[, iformat [, iwsize[, ibufsize[, iskipinit]]]]]]</synopsis><para/>
-<synopsis>ar1 <link linkend="in">in</link>&#160;</synopsis><para/>
+<synopsis>ar1 <link linkend="in">in</link>&#160;</synopsis><synopsis>aarray <link linkend="in">in</link>&#160;</synopsis><para/>
<synopsis>ar1, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12, ar13, ar14, \
ar15, ar16, ar17, ar18, ar19, ar20, ar21, ar22, ar23, ar24, ar25, ar26, \
ar27, ar28, ar29, ar30, ar31, ar32 <link linkend="in32">in32</link>&#160;</synopsis><para/>
@@ -428,7 +496,7 @@
<synopsis>ar1, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12, \
ar13, ar14, ar15, ar16 <link linkend="inx">inx</link>&#160;</synopsis><para/>
<synopsis><link linkend="inz">inz</link> ksig1</synopsis><para/>
-<synopsis>ar1, ar2 <link linkend="mp3in">mp3in</link> ifilcod, iskptim, iformat, iskipinit, ibufsize</synopsis><para/>
+<synopsis>ar1, ar2 <link linkend="mp3in">mp3in</link> ifilcod[, iskptim, iformat, iskipinit, ibufsize]</synopsis><para/>
<synopsis>ar1[, ar2[, ar3[, ... a24]]] <link linkend="soundin">soundin</link> ifilcod [, iskptim] [, iformat] \
[, iskipinit] [, ibufsize]</synopsis><para/>
</para></formalpara>
@@ -438,7 +506,7 @@
<para/>
<synopsis><link linkend="mdelay">mdelay</link> kstatus, kchan, kd1, kd2, kdelay</synopsis><para/>
<synopsis>aout1 [,aout2 ... aoutX] <link linkend="monitor">monitor</link>&#160;</synopsis><para/>
-<synopsis><link linkend="out">out</link> asig</synopsis><para/>
+<synopsis><link linkend="out">out</link> asig1[, asig2,....]</synopsis><synopsis><link linkend="out">out</link> aarray</synopsis><para/>
<synopsis><link linkend="out32">out32</link> asig1, asig2, asig3, asig4, asig5, asig6, asig7, asig8, asig10, \
asig11, asig12, asig13, asig14, asig15, asig16, asig17, asig18, \
asig19, asig20, asig21, asig22, asig23, asig24, asig25, asig26, \
@@ -469,7 +537,7 @@
<para/>
<synopsis>kval <link linkend="chani">chani</link> kchan</synopsis><synopsis>aval <link linkend="chani">chani</link> kchan</synopsis><para/>
<synopsis><link linkend="chano">chano</link> kval, kchan</synopsis><synopsis><link linkend="chano">chano</link> aval, kchan</synopsis><para/>
-<synopsis> <link linkend="chn">chn_k</link> Sname, imode[, itype, idflt, imin, imax]</synopsis><synopsis> <link linkend="chn">chn_a</link> Sname, imode</synopsis><synopsis> <link linkend="chn">chn_S</link> Sname, imode</synopsis><para/>
+<synopsis> <link linkend="chn">chn_k</link> Sname, imode[, itype, idflt, imin, ima, ix, iy, iwidth, iheight, Sattributes]</synopsis><synopsis> <link linkend="chn">chn_a</link> Sname, imode</synopsis><synopsis> <link linkend="chn">chn_S</link> Sname, imode</synopsis><para/>
<synopsis><link linkend="chnclear">chnclear</link> Sname</synopsis><para/>
<synopsis>gival <link linkend="chnexport">chnexport</link> Sname, imode[, itype, idflt, imin, imax]</synopsis><synopsis>gkval <link linkend="chnexport">chnexport</link> Sname, imode[, itype, idflt, imin, imax]</synopsis><synopsis>gaval <link linkend="chnexport">chnexport</link> Sname, imode</synopsis><synopsis>gSval <link linkend="chnexport">chnexport</link> Sname, imode</synopsis><para/>
<synopsis>ival <link linkend="chnget">chnget</link> Sname</synopsis><synopsis>kval <link linkend="chnget">chnget</link> Sname</synopsis><synopsis>aval <link linkend="chnget">chnget</link> Sname</synopsis><synopsis>Sval <link linkend="chnget">chnget</link> Sname</synopsis><para/>
@@ -506,6 +574,7 @@
<synopsis>ir <link linkend="filepeak">filepeak</link> ifilcod [, ichnl]</synopsis><para/>
<synopsis>ir <link linkend="filesr">filesr</link> ifilcod [, iallowraw]</synopsis><para/>
<synopsis>ir <link linkend="filevalid">filevalid</link> ifilcod</synopsis><para/>
+<synopsis>ir <link linkend="mp3len">mp3len</link> ifilcod</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Signal Modifiers:Amplitude Modifiers</title>
@@ -544,7 +613,8 @@
<synopsis>ares <link linkend="deltapn">deltapn</link> xnumsamps</synopsis><para/>
<synopsis>aout <link linkend="deltapx">deltapx</link> adel, iwsize</synopsis><para/>
<synopsis><link linkend="deltapxw">deltapxw</link> ain, adel, iwsize</synopsis><para/>
-<synopsis>ares <link linkend="multitap">multitap</link> asig [, itime1] [, igain1] [, itime2] [, igain2] [...]</synopsis><para/>
+<synopsis>ares <link linkend="multitap">multitap</link> asig [, itime1, igain1] [, itime2, igain2] [...]</synopsis><para/>
+<synopsis>outarg1, outarg2 <link linkend="newopcodename">newopcodename</link> inarg1, inarg2</synopsis><para/>
<synopsis>ares <link linkend="vdelay">vdelay</link> asig, adel, imaxdel [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="vdelay3">vdelay3</link> asig, adel, imaxdel [, iskip]</synopsis><para/>
<synopsis>aout <link linkend="vdelayx">vdelayx</link> ain, adl, imd, iws [, ist]</synopsis><para/>
@@ -568,15 +638,21 @@
[, abk, al, am, an, ao, ap, aq]]</synopsis><synopsis>ao1, ao2, ao3, ao4 <link linkend="bformdec1">bformdec1</link> isetup, aw, ax, ay, az [, ar, as, at, \
au, av [, abk, al, am, an, ao, ap, aq]]</synopsis><synopsis>ao1, ao2, ao3, ao4, ao5 <link linkend="bformdec1">bformdec1</link> isetup, aw, ax, ay, az [, ar, as, \
at, au, av [, abk, al, am, an, ao, ap, aq]]</synopsis><synopsis>ao1, ao2, ao3, ao4, ao5, ao6, ao7, ao8 <link linkend="bformdec1">bformdec1</link> isetup, aw, ax, ay, az \
- [, ar, as, at, au, av [, abk, al, am, an, ao, ap, aq]]]</synopsis><para/>
+ [, ar, as, at, au, av [, abk, al, am, an, ao, ap,
+ aq]]]</synopsis><synopsis>aout[] <link linkend="bformdec1">bformdec1</link> isetup, abform[]</synopsis><para/>
<synopsis>aw, ax, ay, az <link linkend="bformenc">bformenc</link> asig, kalpha, kbeta, kord0, kord1</synopsis><synopsis>aw, ax, ay, az, ar, as, at, au, av <link linkend="bformenc">bformenc</link> asig, kalpha, kbeta, \
kord0, kord1 , kord2</synopsis><synopsis>aw, ax, ay, az, ar, as, at, au, av, ak, al, am, an, ao, ap, aq <link linkend="bformenc">bformenc</link> \
asig, kalpha, kbeta, kord0, kord1, kord2, kord3</synopsis><para/>
<synopsis>aw, ax, ay, az <link linkend="bformenc1">bformenc1</link> asig, kalpha, kbeta</synopsis><synopsis>aw, ax, ay, az, ar, as, at, au, av <link linkend="bformenc1">bformenc1</link> asig, kalpha, kbeta</synopsis><synopsis>aw, ax, ay, az, ar, as, at, au, av, ak, al, am, an, ao, ap, aq <link linkend="bformenc1">bformenc1</link> \
- asig, kalpha, kbeta</synopsis><para/>
+ asig, kalpha, kbeta</synopsis><synopsis>aarray[] <link linkend="bformenc1">bformenc1</link> asig, kalpha, kbeta</synopsis><para/>
+<synopsis>aleft, aright, irt60low, irt60high, imfp <link linkend="hrtfearly">hrtfearly</link> asrc, ksrcx, ksrcy, ksrcz, klstnrx, klstnry, klstnrz, \
+ ifilel, ifiler, idefroom [,ifade, isr, iorder, ithreed, kheadrot, iroomx, iroomy, iroomz, iwallhigh, \
+ iwalllow, iwallgain1, iwallgain2, iwallgain3, ifloorhigh, ifloorlow, ifloorgain1, ifloorgain2, \
+ ifloorgain3, iceilinghigh, iceilinglow, iceilinggain1, iceilinggain2, iceilinggain3]</synopsis><para/>
<synopsis>aleft, aright <link linkend="hrtfer">hrtfer</link> asig, kaz, kelev, <quote>HRTFcompact</quote></synopsis><para/>
<synopsis>aleft, aright <link linkend="hrtfmove">hrtfmove</link> asrc, kAz, kElev, ifilel, ifiler [, imode, ifade, isr]</synopsis><para/>
<synopsis>aleft, aright <link linkend="hrtfmove2">hrtfmove2</link> asrc, kAz, kElev, ifilel, ifiler [,ioverlap, iradius, isr]</synopsis><para/>
+<synopsis>aleft, aright, idel <link linkend="hrtfreverb">hrtfreverb</link> asrc, ilowrt60, ihighrt60, ifilel, ifiler [,isr, imfp, iorder]</synopsis><para/>
<synopsis>
aleft, aright <link linkend="hrtfstat">hrtfstat</link> asrc, iAz, iElev, ifilel, ifiler [,iradius, isr]
</synopsis><para/>
@@ -590,6 +666,9 @@
<synopsis><link linkend="spat3dt">spat3dt</link> ioutft, iX, iY, iZ, idist, ift, imode, irlen [, iftnocl]</synopsis><para/>
<synopsis>k1 <link linkend="spdist">spdist</link> ifn, ktime, kx, ky</synopsis><para/>
<synopsis>a1, a2, a3, a4 <link linkend="spsend">spsend</link>&#160;</synopsis><para/>
+<synopsis>ar1[, ar2...] <link linkend="vbap">vbap</link> asig, kazim [,
+ kelev] [, kspread] [, ilayout]</synopsis><synopsis>array[] <link linkend="vbap">vbap</link> asig, kazim [,
+ kelev] [, kspread] [, ilayout]</synopsis><para/>
<synopsis>ar1, ..., ar16 <link linkend="vbap16">vbap16</link> asig, kazim [, kelev] [, kspread]</synopsis><para/>
<synopsis>ar1, ..., ar16 <link linkend="vbap16move">vbap16move</link> asig, idur, ispread, ifldnum, ifld1 \
[, ifld2] [...]</synopsis><para/>
@@ -599,7 +678,14 @@
<synopsis>ar1, ..., ar8 <link linkend="vbap8">vbap8</link> asig, kazim [, kelev] [, kspread]</synopsis><para/>
<synopsis>ar1, ..., ar8 <link linkend="vbap8move">vbap8move</link> asig, idur, ispread, ifldnum, ifld1 \
[, ifld2] [...]</synopsis><para/>
+<synopsis>k1[, k2...] <link linkend="vbapg">vbapg</link> kazim [,kelev] [, kspread] [, ilayout]</synopsis><synopsis>karray[] <link linkend="vbapg">vbapg</link> kazim [,kelev] [, kspread] [, ilayout]</synopsis><para/>
+<synopsis>kr1[, kr2...] <link linkend="vbapgmove">vbapgmove</link> idur, ispread, ifldnum, ifld1 \
+ [, ifld2] [...]</synopsis><synopsis>karray[] <link linkend="vbapgmove">vbapgmove</link> idur, ispread, ifldnum, ifld1 \
+ [, ifld2] [...]</synopsis><para/>
<synopsis><link linkend="vbaplsinit">vbaplsinit</link> idim, ilsnum [, idir1] [, idir2] [...] [, idir32]</synopsis><para/>
+<synopsis>ar1[, ar2...] <link linkend="vbapmove">vbapmove</link> asig, idur, ispread, ifldnum, ifld1 \
+ [, ifld2] [...]</synopsis><synopsis>aarray[] <link linkend="vbapmove">vbapmove</link> asig, idur, ispread, ifldnum, ifld1 \
+ [, ifld2] [...]</synopsis><para/>
<synopsis><link linkend="vbapz">vbapz</link> inumchnls, istartndx, asig, kazim [, kelev] [, kspread]</synopsis><para/>
<synopsis><link linkend="vbapzmove">vbapzmove</link> inumchnls, istartndx, asig, idur, ispread, ifldnum, ifld1, \
ifld2, [...]</synopsis><para/>
@@ -608,13 +694,16 @@
<title>Signal Modifiers:Reverberation</title>
<para>
<para/>
+<synopsis>ares <link linkend="alpass">alpass</link> asig, xrvt, ilpt [, iskip] [, insmps]</synopsis><para/>
<synopsis>a1, a2 <link linkend="babo">babo</link> asig, ksrcx, ksrcy, ksrcz, irx, iry, irz [, idiff] [, ifno]</synopsis><para/>
<synopsis>ares <link linkend="comb">comb</link> asig, krvt, ilpt [, iskip] [, insmps]</synopsis><para/>
+<synopsis>ares <link linkend="combinv">combinv</link> asig, krvt, ilpt [, iskip] [, insmps]</synopsis><para/>
<synopsis>aoutL, aoutR <link linkend="freeverb">freeverb</link> ainL, ainR, kRoomSize, kHFDamp[, iSRate[, iSkip]] </synopsis><para/>
<synopsis>ares <link linkend="nestedap">nestedap</link> asig, imode, imaxdel, idel1, igain1 [, idel2] [, igain2] \
[, idel3] [, igain3] [, istor]</synopsis><para/>
<synopsis>ares <link linkend="nreverb">nreverb</link> asig, ktime, khdif [, iskip] [,inumCombs] [, ifnCombs] \
[, inumAlpas] [, ifnAlpas]</synopsis><para/>
+<synopsis>a1[, a2, ...] <link linkend="platerev">platerev</link> itabexcite. itabouts, kbndry, iaspect, istiff, idecay, iloss, aexcite1[, aexcite2, ...]</synopsis><para/>
<synopsis>ares <link linkend="reverb">reverb</link> asig, krvt [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="reverb2">reverb2</link> asig, ktime, khdif [, iskip] [,inumCombs] \
[, ifnCombs] [, inumAlpas] [, ifnAlpas]</synopsis><para/>
@@ -633,8 +722,9 @@
<synopsis>ares <link linkend="integ">integ</link> asig [, iskip]</synopsis><synopsis>kres <link linkend="integ">integ</link> ksig [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="interp">interp</link> ksig [, iskip] [, imode]</synopsis><para/>
<synopsis>ares <link linkend="ntrpol">ntrpol</link> asig1, asig2, kpoint [, imin] [, imax]</synopsis><synopsis>ires <link linkend="ntrpol">ntrpol</link> isig1, isig2, ipoint [, imin] [, imax]</synopsis><synopsis>kres <link linkend="ntrpol">ntrpol</link> ksig1, ksig2, kpoint [, imin] [, imax]</synopsis><para/>
-<synopsis><link linkend="opi">i</link>(x) (control-rate args only)</synopsis><para/>
-<synopsis><link linkend="opk">k</link>(x) (i-rate args only)</synopsis><para/>
+<synopsis><link linkend="opa">a</link>(x) (control-rate args only)</synopsis><para/>
+<synopsis><link linkend="opi">i</link>(x) (control-rate or init-rate arg)</synopsis><para/>
+<synopsis><link linkend="opk">k</link>(x) (i-rate args only)</synopsis><synopsis><link linkend="opk">k</link>(x) (a-rate args only)</synopsis><para/>
<synopsis>ares <link linkend="samphold">samphold</link> asig, agate [, ival] [, ivstor]</synopsis><synopsis>kres <link linkend="samphold">samphold</link> ksig, kgate [, ival] [, ivstor]</synopsis><para/>
<synopsis>ares <link linkend="upsamp">upsamp</link> ksig</synopsis><para/>
<synopsis>kval <link linkend="vaget">vaget</link> kndx, avar</synopsis><para/>
@@ -668,42 +758,45 @@
<para>
<para/>
<synopsis>ares <link linkend="atone">atone</link> asig, khp [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="atonex">atonex</link> asig, khp [, inumlayer] [, iskip]</synopsis><synopsis>ares <link linkend="atonex">atonex</link> asig, ahp [, inumlayer] [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="biquad">biquad</link> asig, kb0, kb1, kb2, ka0, ka1, ka2 [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="biquada">biquada</link> asig, ab0, ab1, ab2, aa0, aa1, aa2 [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="butbp">butbp</link> asig, kfreq, kband [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="butbr">butbr</link> asig, kfreq, kband [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="buthp">buthp</link> asig, kfreq [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butlp">butlp</link> asig, kfreq [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butterbp">butterbp</link> asig, kfreq, kband [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butterbr">butterbr</link> asig, kfreq, kband [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butterhp">butterhp</link> asig, kfreq [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butterlp">butterlp</link> asig, kfreq [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="buthp">buthp</link> asig, kfreq [, iskip]</synopsis><synopsis>ares <link linkend="buthp">buthp</link> asig, afreq [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="butlp">butlp</link> asig, kfreq [, iskip]</synopsis><synopsis>ares <link linkend="butlp">butlp</link> asig, afreq [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="butterbp">butterbp</link> asig, xfreq, xband [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="butterbr">butterbr</link> asig, xfreq, xband [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="butterhp">butterhp</link> asig, kfreq [, iskip]</synopsis><synopsis>ares <link linkend="butterhp">butterhp</link> asig, afreq [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="butterlp">butterlp</link> asig, kfreq [, iskip]</synopsis><synopsis>ares <link linkend="butterlp">butterlp</link> asig, afreq [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="clfilt">clfilt</link> asig, kfreq, itype, inpol [, ikind] [, ipbr] [, isba] [, iskip]</synopsis><para/>
<synopsis>ashifted <link linkend="doppler">doppler</link> asource, ksourceposition, kmicposition [, isoundspeed, ifiltercutoff]</synopsis><para/>
-<synopsis>aout <link linkend="mode">mode</link> ain, kfreq, kQ [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="median">median</link> asig, ksize, imaxsize [, iskip]</synopsis><para/>
+<synopsis>kres <link linkend="mediank">mediank</link> kin, ksize, imaxsize [, iskip]</synopsis><para/>
+<synopsis>aout <link linkend="mode">mode</link> ain, xfreq, xQ [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="tone">tone</link> asig, khp [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="tonex">tonex</link> asig, khp [, inumlayer] [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="tonex">tonex</link> asig, khp [, inumlayer] [, iskip]</synopsis><synopsis>ares <link linkend="tonex">tonex</link> asig, ahp [, inumlayer] [, iskip]</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Signal Modifiers:Standard Filters:Resonant</title>
<para>
<para/>
-<synopsis>ares <link linkend="areson">areson</link> asig, kcf, kbw [, iscl] [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="areson">areson</link> asig, kcf, kbw [, iscl] [, iskip]</synopsis><synopsis>ares <link linkend="areson">areson</link> asig, acf, kbw [, iscl] [, iskip]</synopsis><synopsis>ares <link linkend="areson">areson</link> asig, kcf, abw [, iscl] [, iskip]</synopsis><synopsis>ares <link linkend="areson">areson</link> asig, acf, abw [, iscl] [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="bqrez">bqrez</link> asig, xfco, xres [, imode] [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="lowpass2">lowpass2</link> asig, kcf, kq [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="lowres">lowres</link> asig, kcutoff, kresonance [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="lowresx">lowresx</link> asig, kcutoff, kresonance [, inumlayer] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="lpf18">lpf18</link> asig, kfco, kres, kdist</synopsis><para/>
-<synopsis>asig <link linkend="moogladder">moogladder</link> ain, kcf, kres[, istor]</synopsis><para/>
+<synopsis>ares <link linkend="lowresx">lowresx</link> asig, xcutoff, xresonance [, inumlayer] [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="lpf18">lpf18</link> asig, xfco, xres, xdist [, iskip]</synopsis><para/>
+<synopsis>asig <link linkend="moogladder">moogladder</link> ain, kcf, kres[, istor]</synopsis><synopsis>asig <link linkend="moogladder">moogladder</link> ain, acf, kres[, istor]</synopsis><synopsis>asig <link linkend="moogladder">moogladder</link> ain, kcf, ares[, istor]</synopsis><synopsis>asig <link linkend="moogladder">moogladder</link> ain, acf, ares[, istor]</synopsis><para/>
<synopsis>ares <link linkend="moogvcf">moogvcf</link> asig, xfco, xres [,iscale, iskip]</synopsis><para/>
<synopsis>ares <link linkend="moogvcf2">moogvcf2</link> asig, xfco, xres [,iscale, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="reson">reson</link> asig, kcf, kbw [, iscl] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="resonr">resonr</link> asig, kcf, kbw [, iscl] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="resonx">resonx</link> asig, kcf, kbw [, inumlayer] [, iscl] [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="reson">reson</link> asig, xcf, xbw [, iscl] [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="resonr">resonr</link> asig, xcf, xbw [, iscl] [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="resonx">resonx</link> asig, xcf, xbw [, inumlayer] [, iscl] [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="resony">resony</link> asig, kbf, kbw, inum, ksep [, isepmode] [, iscl] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="resonz">resonz</link> asig, kcf, kbw [, iscl] [, iskip]</synopsis><para/>
+<synopsis>ares <link linkend="resonz">resonz</link> asig, xcf, xbw [, iscl] [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="rezzy">rezzy</link> asig, xfco, xres [, imode, iskip]</synopsis><para/>
-<synopsis>ahp,alp,abp,abr <link linkend="statevar">statevar</link> ain, kcf, kq [, iosamps, istor]</synopsis><para/>
+<synopsis>ahp,alp,abp,abr <link linkend="statevar">statevar</link> ain, xcf, xq [, iosamps, istor]</synopsis><para/>
<synopsis>alow, ahigh, aband <link linkend="svfilter">svfilter</link> asig, kcf, kq [, iscl]</synopsis><para/>
<synopsis>ares <link linkend="tbvcf">tbvcf</link> asig, xfco, xres, kdist, kasym [, iskip]</synopsis><para/>
<synopsis>ares <link linkend="vlowres">vlowres</link> asig, kfco, kres, iord, ksep</synopsis><para/>
@@ -730,9 +823,10 @@
<synopsis>ares <link linkend="dcblock2">dcblock2</link> ain [, iorder] [, iskip]</synopsis><para/>
<synopsis>asig <link linkend="eqfil">eqfil</link> ain, kcf, kbw, kgain[, istor]</synopsis><para/>
<synopsis>ares <link linkend="filter2">filter2</link> asig, iM, iN, ib0, ib1, ..., ibM, ia1, ia2, ..., iaN</synopsis><synopsis>kres <link linkend="filter2">filter2</link> ksig, iM, iN, ib0, ib1, ..., ibM, ia1, ia2, ..., iaN</synopsis><para/>
-<synopsis>asig <link linkend="fofilter">fofilter</link> ain, kcf, kris, kdec[, istor]</synopsis><para/>
+<synopsis>asig <link linkend="fofilter">fofilter</link> ain, xcf, xris, xdec[, istor]</synopsis><para/>
<synopsis>ar1, ar2 <link linkend="hilbert">hilbert</link> asig</synopsis><para/>
<synopsis>ares <link linkend="nlfilt">nlfilt</link> ain, ka, kb, kd, kC, kL</synopsis><para/>
+<synopsis>ares <link linkend="nlfilt2">nlfilt2</link> ain, ka, kb, kd, kC, kL</synopsis><para/>
<synopsis>ares <link linkend="pareq">pareq</link> asig, kc, kv, kq [, imode] [, iskip]</synopsis><para/>
<synopsis>ar <link linkend="rbjeq">rbjeq</link> asig, kfco, klvl, kQ, kS[, imode]</synopsis><para/>
<synopsis>ares <link linkend="zfilter2">zfilter2</link> asig, kdamp, kfreq, iM, iN, ib0, ib1, ..., ibM, \
@@ -760,13 +854,13 @@
<title>Signal Modifiers:Comparators and Accumulators</title>
<para>
<para/>
-<synopsis>amax <link linkend="max">max</link> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmax <link linkend="max">max</link> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis><para/>
+<synopsis>amax <link linkend="max">max</link> ain1, ain2 [, ain3] [, ain4] [...]</synopsis><synopsis>kmax <link linkend="max">max</link> kin1, kin2 [, kin3] [, kin4] [...]</synopsis><para/>
<synopsis>knumkout <link linkend="max_k">max_k</link> asig, ktrig, itype</synopsis><para/>
-<synopsis>amax <link linkend="maxabs">maxabs</link> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmax <link linkend="maxabs">maxabs</link> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis><para/>
+<synopsis>amax <link linkend="maxabs">maxabs</link> ain1, ain2 [, ain3] [, ain4] [...]</synopsis><synopsis>kmax <link linkend="maxabs">maxabs</link> kin1, kin2 [, kin3] [, kin4] [...]</synopsis><para/>
<synopsis><link linkend="maxabsaccum">maxabsaccum</link> aAccumulator, aInput</synopsis><para/>
<synopsis><link linkend="maxaccum">maxaccum</link> aAccumulator, aInput</synopsis><para/>
-<synopsis>amin <link linkend="min">min</link> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmin <link linkend="min">min</link> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis><para/>
-<synopsis>amin <link linkend="minabs">minabs</link> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmin <link linkend="minabs">minabs</link> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis><para/>
+<synopsis>amin <link linkend="min">min</link> ain1, ain2 [, ain3] [, ain4] [...]</synopsis><synopsis>kmin <link linkend="min">min</link> kin1, kin2 [, kin3] [, kin4] [...]</synopsis><para/>
+<synopsis>amin <link linkend="minabs">minabs</link> ain1, ain2 [, ain3] [, ain4] [...]</synopsis><synopsis>kmin <link linkend="minabs">minabs</link> kin1, kin2 [, kin3] [, kin4] [...]</synopsis><para/>
<synopsis><link linkend="minabsaccum">minabsaccum</link> aAccumulator, aInput</synopsis><para/>
<synopsis><link linkend="minaccum">minaccum</link> aAccumulator, aInput</synopsis><para/>
</para></formalpara>
@@ -789,10 +883,20 @@
<synopsis>(a <link linkend="notequal">!=</link> b <link linkend="notequal">?</link> v1 <link linkend="notequal">:</link> v2)</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
+<title>Instrument Control:Compilation</title>
+<para>
+<para/>
+<synopsis>ires <link linkend="compileorc">compileorc</link> Sfilename</synopsis><para/>
+<synopsis>ires <link linkend="compilestr">compilestr</link> Sorch</synopsis><para/>
+<synopsis>ires <link linkend="evalstr">evalstr</link> Scode </synopsis><synopsis>kres <link linkend="evalstr">evalstr</link> Scode, ktrig </synopsis><para/>
+<synopsis><link linkend="return">return</link> ival </synopsis><para/>
+</para></formalpara>
+<para></para><para></para><formalpara>
<title>Instrument Control:Duration Control</title>
<para>
<para/>
<synopsis><link linkend="ihold">ihold</link>&#160;</synopsis><para/>
+<synopsis><link linkend="kill">kill</link> kinstance</synopsis><para/>
<synopsis><link linkend="turnoff">turnoff</link>&#160;</synopsis><para/>
<synopsis><link linkend="turnoff2">turnoff2</link> kinsno, kmode, krelease
</synopsis><para/>
@@ -804,7 +908,9 @@
<para/>
<synopsis><link linkend="event">event</link> &quot;scorechar&quot;, kinsnum, kdelay, kdur, [, kp4] [, kp5] [, ...]</synopsis><synopsis><link linkend="event">event</link> &quot;scorechar&quot;, &quot;insname&quot;, kdelay, kdur, [, kp4] [, kp5] [, ...]</synopsis><para/>
<synopsis><link linkend="event_i">event_i</link> &quot;scorechar&quot;, iinsnum, idelay, idur, [, ip4] [, ip5] [, ...]</synopsis><synopsis><link linkend="event_i">event_i</link> &quot;scorechar&quot;, &quot;insname&quot;, idelay, idur, [, ip4] [, ip5] [, ...]</synopsis><para/>
+<synopsis>iHandle <link linkend="instance">instance</link> insnum, iwhen, idur [, ip4] [, ip5] [...]</synopsis><synopsis>iHandle <link linkend="instance">instance</link> &quot;insname&quot;, iwhen, idur [, ip4] [, ip5] [...]</synopsis><para/>
<synopsis><link linkend="mute">mute</link> insnum [, iswitch]</synopsis><synopsis><link linkend="mute">mute</link> &quot;insname&quot; [, iswitch]</synopsis><para/>
+<synopsis><link linkend="readscore">readscore</link> Sin </synopsis><para/>
<synopsis><link linkend="remove">remove</link> insnum</synopsis><para/>
<synopsis><link linkend="schedkwhen">schedkwhen</link> ktrigger, kmintim, kmaxnum, kinsnum, kwhen, kdur \
[, ip4] [, ip5] [...]</synopsis><synopsis><link linkend="schedkwhen">schedkwhen</link> ktrigger, kmintim, kmaxnum, &quot;insname&quot;, kwhen, kdur \
@@ -837,12 +943,15 @@
<synopsis><link linkend="loop_lt">loop_lt</link> indx, incr, imax, label</synopsis><synopsis><link linkend="loop_lt">loop_lt</link> kndx, kncr, kmax, label</synopsis><para/>
<synopsis><link linkend="tigoto">tigoto</link> label</synopsis><para/>
<synopsis><link linkend="timout">timout</link> istrt, idur, label</synopsis><para/>
+<synopsis><link linkend="until">until</link> condition <link linkend="until">do</link>
+ ... <link linkend="until">od</link>&#160;</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Instrument Control:Realtime Performance Control</title>
<para>
<para/>
<synopsis>ir <link linkend="active">active</link> insnum [,iopt]</synopsis><synopsis>ir <link linkend="active">active</link> Sinsname [,iopt]</synopsis><synopsis>kres <link linkend="active">active</link> kinsnum [,iopt]</synopsis><para/>
+<synopsis>ktot[,kcpu1, kcpu2,...]<link linkend="cpumeter">cpumeter</link> ifreq</synopsis><para/>
<synopsis><link linkend="cpuprc">cpuprc</link> insnum, ipercent</synopsis><synopsis><link linkend="cpuprc">cpuprc</link> Sinsname, ipercent</synopsis><para/>
<synopsis><link linkend="exitnow">exitnow</link>&#160;</synopsis><para/>
<synopsis><link linkend="jacktransport">jacktransport</link> icommand [, ilocation]</synopsis><para/>
@@ -853,12 +962,13 @@
<title>Instrument Control:Initialization and Reinitialization</title>
<para>
<para/>
-<synopsis>ares <link linkend="assign">=</link> xarg</synopsis><synopsis>ires <link linkend="assign">=</link> iarg</synopsis><synopsis>kres <link linkend="assign">=</link> karg</synopsis><synopsis>ires, ... <link linkend="assign">=</link> iarg, ...</synopsis><synopsis>kres, ... <link linkend="assign">=</link> karg, ...</synopsis><para/>
-<synopsis>ares <link linkend="init">init</link> iarg</synopsis><synopsis>ires <link linkend="init">init</link> iarg</synopsis><synopsis>kres <link linkend="init">init</link> iarg</synopsis><synopsis>ares, ... <link linkend="init">init</link> iarg, ...</synopsis><synopsis>ires, ... <link linkend="init">init</link> iarg, ...</synopsis><synopsis>kres, ...<link linkend="init">init</link> iarg, ...</synopsis><para/>
+<synopsis>ares <link linkend="assign">=</link> xarg</synopsis><synopsis>ires <link linkend="assign">=</link> iarg</synopsis><synopsis>kres <link linkend="assign">=</link> karg</synopsis><synopsis>ires, ... <link linkend="assign">=</link> iarg, ...</synopsis><synopsis>kres, ... <link linkend="assign">=</link> karg, ...</synopsis><synopsis>table [ kval] <link linkend="assign">=</link> karg</synopsis><para/>
+<synopsis>ares <link linkend="init">init</link> iarg</synopsis><synopsis>ires <link linkend="init">init</link> iarg</synopsis><synopsis>kres <link linkend="init">init</link> iarg</synopsis><synopsis>ares, ... <link linkend="init">init</link> iarg, ...</synopsis><synopsis>ires, ... <link linkend="init">init</link> iarg, ...</synopsis><synopsis>kres, ... <link linkend="init">init</link> iarg, ...</synopsis><synopsis>tab <link linkend="init">init</link> isize[, ival]</synopsis><para/>
<synopsis>insno <link linkend="nstrnum">nstrnum</link> &quot;name&quot;</synopsis><para/>
<synopsis><link linkend="p">p</link>(x) </synopsis><para/>
<synopsis> ivar1, ... <link linkend="passign">passign</link> [istart]</synopsis><para/>
-<synopsis><link linkend="pset">pset</link> ip1 [, ip2] [...]</synopsis><para/>
+<synopsis>ares <link linkend="plusbecomes">+=</link> xarg</synopsis><synopsis>ires <link linkend="plusbecomes">+=</link> iarg</synopsis><synopsis>kres <link linkend="plusbecomes">+=</link> karg</synopsis><synopsis>table [ kval] <link linkend="plusbecomes">+=</link> karg</synopsis><para/>
+<synopsis><link linkend="pset">pset</link> icon1 [, icon2] [...]</synopsis><para/>
<synopsis><link linkend="reinit">reinit</link> label</synopsis><para/>
<synopsis><link linkend="rigoto">rigoto</link> label</synopsis><para/>
<synopsis><link linkend="rireturn">rireturn</link>&#160;</synopsis><para/>
@@ -875,7 +985,9 @@
<synopsis>ares <link linkend="follow">follow</link> asig, idt</synopsis><para/>
<synopsis>ares <link linkend="follow2">follow2</link> asig, katt, krel</synopsis><para/>
<synopsis>Svalue <link linkend="getcfg">getcfg</link> iopt</synopsis><para/>
+<synopsis>kres <link linkend="joystick">joystick</link> kdevice ktab</synopsis><para/>
<synopsis>ktrig <link linkend="metro">metro</link> kfreq [, initphase]</synopsis><para/>
+<synopsis>ksig <link linkend="midifilestatus">midifilestatus</link>&#160;</synopsis><para/>
<synopsis>ksig <link linkend="miditempo">miditempo</link>&#160;</synopsis><para/>
<synopsis><link linkend="p5gconnect">p5gconnect</link>&#160;</synopsis><para/>
<synopsis>kres <link linkend="p5gdata">p5gdata</link> kcontrol</synopsis><para/>
@@ -886,14 +998,16 @@
[, istrt] [, iocts] [, iq] [, inptls] [, irolloff] [, iskip]</synopsis><para/>
<synopsis>kcps, krms <link linkend="pitchamdf">pitchamdf</link> asig, imincps, imaxcps [, icps] [, imedi] \
[, idowns] [, iexcps] [, irmsmedi]</synopsis><para/>
+<synopsis>acps, alock <link linkend="plltrack">plltrack</link> asig, kd [, kloopf, kloopq, klf, khf, kthresh]</synopsis><para/>
<synopsis>kcps, kamp <link linkend="ptrack">ptrack</link> asig, ihopsize[,ipeaks]</synopsis><para/>
+<synopsis>ival <link linkend="readscratch">readscratch</link>[index]</synopsis><para/>
<synopsis> <link linkend="rewindscore">rewindscore</link>&#160;</synopsis><para/>
<synopsis>kres <link linkend="rms">rms</link> asig [, ihp] [, iskip]</synopsis><para/>
<synopsis>kres[, kkeydown] <link linkend="sensekey">sensekey</link>&#160;</synopsis><para/>
<synopsis>ktrig_out <link linkend="seqtime">seqtime</link> ktime_unit, kstart, kloop, kinitndx, kfn_times</synopsis><para/>
<synopsis>ktrig_out <link linkend="seqtime2">seqtime2</link> ktrig_in, ktime_unit, kstart, kloop, kinitndx, kfn_times</synopsis><para/>
<synopsis><link linkend="setctrl">setctrl</link> inum, ival, itype</synopsis><para/>
-<synopsis> <link linkend="setscorepos">setscorepos ipos</link>&#160;</synopsis><para/>
+<synopsis> <link linkend="setscorepos">setscorepos ipos</link>&#160;</synopsis><para/>
<synopsis><link linkend="splitrig">splitrig</link> ktrig, kndx, imaxtics, ifn, kout1 [,kout2,...,koutN]</synopsis><para/>
<synopsis>ktemp <link linkend="tempest">tempest</link> kin, iprd, imindur, imemdur, ihp, ithresh, ihtim, ixfdbak, \
istartempo, ifn [, idisprd] [, itweek]</synopsis><para/>
@@ -902,10 +1016,11 @@
<synopsis>ktrig <link linkend="timedseq">timedseq</link> ktimpnt, ifn, kp1 [,kp2, kp3, ...,kpN]</synopsis><para/>
<synopsis>kout <link linkend="trigger">trigger</link> ksig, kthreshold, kmode</synopsis><para/>
<synopsis><link linkend="trigseq">trigseq</link> ktrig_in, kstart, kloop, kinitndx, kfn_values, kout1 [, kout2] [...]</synopsis><para/>
-<synopsis>kres <link linkend="wiiconnect">wiiconnect</link> [itimeout, imaxnum]</synopsis><para/>
+<synopsis>ires <link linkend="wiiconnect">wiiconnect</link> [itimeout, imaxnum]</synopsis><para/>
<synopsis>kres <link linkend="wiidata">wiidata</link> kcontrol[, knum]</synopsis><para/>
<synopsis> <link linkend="wiirange">wiirange</link> icontrol, iminimum, imaximum[, inum]</synopsis><para/>
<synopsis>kres <link linkend="wiisend">wiisend</link> kcontrol, kvalue[, knum]</synopsis><para/>
+<synopsis><link linkend="writescratch">writescratch</link>ival[, index]</synopsis><para/>
<synopsis>kx, ky <link linkend="xyin">xyin</link> iprd, ixmin, ixmax, iymin, iymax [, ixinit] [, iyinit]</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
@@ -939,6 +1054,44 @@
<synopsis>ires <link linkend="times">times</link>&#160;</synopsis><synopsis>kres <link linkend="times">times</link>&#160;</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
+<title>Jacko Opcodes</title>
+<para>
+<para/>
+<synopsis>asignal <link linkend="JackoAudioIn">JackoAudioIn </link>ScsoundPortName</synopsis><para/>
+<synopsis><link linkend="JackoAudioInConnect">JackoAudioInConnect </link>SexternalPortName, ScsoundPortName</synopsis><para/>
+<synopsis><link linkend="JackoAudioOut">JackoAudioOut </link> ScsoundPortName, asignal</synopsis><para/>
+<synopsis><link linkend="JackoAudioOutConnect">JackoAudioOutConnect </link>ScsoundPortName, SexternalPortName</synopsis><para/>
+<synopsis><link linkend="JackoFreewheel">JackoFreewheel </link>[ienabled]</synopsis><para/>
+<synopsis><link linkend="JackoInfo">JackoInfo </link>&#160;</synopsis><para/>
+<synopsis><link linkend="JackoInit">JackoInit </link>SclientName, ServerName</synopsis><para/>
+<synopsis><link linkend="JackoMidiInConnect">JackoMidiInConnect </link>SexternalPortName, ScsoundPortName</synopsis><para/>
+<synopsis><link linkend="JackoMidiOut">JackoMidiOut </link> ScsoundPortName, kstatus, kchannel, kdata1[, kdata2]</synopsis><para/>
+<synopsis><link linkend="JackoMidiOutConnect">JackoMidiOutConnect </link>ScsoundPortName, SexternalPortName</synopsis><para/>
+<synopsis><link linkend="JackoNoteOut">JackoNoteOut </link> ScsoundPortName, kstatus, kchannel, kdata1[, kdata2]</synopsis><para/>
+<synopsis><link linkend="JackoOn">JackoOn </link>[iactive] </synopsis><para/>
+<synopsis><link linkend="JackoTransport">JackoTransport </link> kcommand, [kposition]</synopsis><para/>
+</para></formalpara>
+<para></para><para></para><formalpara>
+<title>Lua Opcodes</title>
+<para>
+<para/>
+<synopsis><link linkend="lua_exec">lua_exec</link> Sluacode</synopsis><para/>
+<synopsis><link linkend="lua_opcall">lua_iopcall</link> Sname, ...</synopsis><synopsis><link linkend="lua_opcall">lua_ikopcall</link> Sname, ...</synopsis><synopsis><link linkend="lua_opcall">lua_iaopcall</link> Sname, ...</synopsis><synopsis><link linkend="lua_opcall">lua_iopcall_off</link> Sname, ...</synopsis><synopsis><link linkend="lua_opcall">lua_ikopcall_off</link> Sname, ...</synopsis><synopsis><link linkend="lua_opcall">lua_iaopcall_off</link> Sname, ...</synopsis><para/>
+<synopsis><link linkend="lua_opdef">lua_opdef</link> Sname, Sluacode</synopsis><para/>
+</para></formalpara>
+<para></para><para></para><formalpara>
+<title>Serial I/O</title>
+<para>
+<para/>
+<synopsis>iPort <link linkend="serialBegin">serialBegin</link> SPortName [, ibaudRate]</synopsis><para/>
+<synopsis> <link linkend="serialEnd">serialEnd</link> iPort</synopsis><para/>
+<synopsis> <link linkend="serialFlush">serialFlush</link> iPort</synopsis><para/>
+<synopsis> <link linkend="serialPrint">serialPrint</link> iPort</synopsis><para/>
+<synopsis>kByte <link linkend="serialRead">serialRead</link> iPort</synopsis><para/>
+<synopsis> <link linkend="serialWrite">serialWrite</link> iPort, iByte</synopsis><synopsis> <link linkend="serialWrite">serialWrite</link> iPort, kByte</synopsis><synopsis> <link linkend="serialWrite">serialWrite</link> iPort, SBytes</synopsis><para/>
+<synopsis> <link linkend="serialWrite_i">serialWrite_i</link> iPort, iByte</synopsis><synopsis> <link linkend="serialWrite_i">serialWrite_i</link> iPort, SBytes</synopsis><para/>
+</para></formalpara>
+<para></para><para></para><formalpara>
<title>Table Control</title>
<para>
<para/>
@@ -952,12 +1105,19 @@
<title>Table Control:Table Queries</title>
<para>
<para/>
+<synopsis>karray[] <link linkend="array">array</link> ival1, ival2,.....ivaln</synopsis><para/>
+<synopsis>karray[] <link linkend="fillarray">fillarray</link> ival1, ival2,.....ivaln</synopsis><para/>
<synopsis><link linkend="ftchnls">ftchnls</link>(x) (init-rate args only)</synopsis><para/>
<synopsis><link linkend="ftcps">ftcps</link>(x) (init-rate args only)</synopsis><para/>
<synopsis><link linkend="ftlen">ftlen</link>(x) (init-rate args only)</synopsis><para/>
<synopsis><link linkend="ftlptim">ftlptim</link>(x) (init-rate args only)</synopsis><para/>
<synopsis><link linkend="ftsr">ftsr</link>(x) (init-rate args only)</synopsis><para/>
+<synopsis>karray <link linkend="genarray">genarray</link> kstart, kens[, inc]</synopsis><synopsis>iarray <link linkend="genarray">genarray</link> istart, iens[, inc]</synopsis><para/>
+<synopsis>karray <link linkend="genarray_i">genarray_i</link> istart, iend [,inc]</synopsis><para/>
+<synopsis>ir <link linkend="lenarray">lenarray</link> karray</synopsis><synopsis>kr <link linkend="lenarray">lenarray</link> karray</synopsis><para/>
+<synopsis>karray <link linkend="maparray">maparray</link> kinarray, String</synopsis><synopsis>karray <link linkend="maparray">maparray_i</link> kinarray, String</synopsis><para/>
<synopsis><link linkend="nsamp">nsamp</link>(x) (init-rate args only)</synopsis><para/>
+<synopsis>karray <link linkend="slicearray">slicearray</link> kinarray, istart, iend</synopsis><para/>
<synopsis>ires <link linkend="tableng">tableng</link> ifn</synopsis><synopsis>kres <link linkend="tableng">tableng</link> kfn</synopsis><para/>
<synopsis>kr <link linkend="tabsum">tabsum</link> ifn[[, kmin] [, kmax]]</synopsis><para/>
<synopsis><link linkend="tb">tb0_init</link> ifn</synopsis><synopsis><link linkend="tb">tb1_init</link> ifn</synopsis><synopsis><link linkend="tb">tb2_init</link> ifn</synopsis><synopsis><link linkend="tb">tb3_init</link> ifn</synopsis><synopsis><link linkend="tb">tb4_init</link> ifn</synopsis><synopsis><link linkend="tb">tb5_init</link> ifn</synopsis><synopsis><link linkend="tb">tb6_init</link> ifn</synopsis><synopsis><link linkend="tb">tb7_init</link> ifn</synopsis><synopsis><link linkend="tb">tb8_init</link> ifn</synopsis><synopsis><link linkend="tb">tb9_init</link> ifn</synopsis><synopsis><link linkend="tb">tb10_init</link> ifn</synopsis><synopsis><link linkend="tb">tb11_init</link> ifn</synopsis><synopsis><link linkend="tb">tb12_init</link> ifn</synopsis><synopsis><link linkend="tb">tb13_init</link> ifn</synopsis><synopsis><link linkend="tb">tb14_init</link> ifn</synopsis><synopsis><link linkend="tb">tb15_init</link> ifn</synopsis><synopsis>iout = <link linkend="tb">tb0</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb0</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb1</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb1</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb2</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb2</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb3</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb3</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb4</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb4</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb5</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb5</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb6</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb6</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb7</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb7</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb8</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb8</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb9</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb9</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb10</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb10</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb11</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb11</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb12</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb12</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb13</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb13</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb14</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb14</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb15</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb15</link>(kIndex)</synopsis><para/>
@@ -978,7 +1138,10 @@
<synopsis><link linkend="ftloadk">ftloadk</link> &quot;filename&quot;, ktrig, iflag, ifn1 [, ifn2] [...]</synopsis><para/>
<synopsis><link linkend="ftsave">ftsave</link> &quot;filename&quot;, iflag, ifn1 [, ifn2] [...]</synopsis><para/>
<synopsis><link linkend="ftsavek">ftsavek</link> &quot;filename&quot;, ktrig, iflag, ifn1 [, ifn2] [...]</synopsis><para/>
+<synopsis><link linkend="ptablew">ptablew</link> asig, andx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis><synopsis><link linkend="ptablew">ptablew</link> isig, indx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis><synopsis><link linkend="ptablew">ptablew</link> ksig, kndx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis><para/>
<synopsis><link linkend="tablecopy">tablecopy</link> kdft, ksft</synopsis><para/>
+<synopsis>knumpassed <link linkend="tablefilter">tablefilter</link> kouttable, kintatble, kmode, kparam</synopsis><para/>
+<synopsis>inumpassed <link linkend="tablefilteri">tablefilteri</link> iouttable, iintatble, imode, iparam</synopsis><para/>
<synopsis><link linkend="tablegpw">tablegpw</link> kfn</synopsis><para/>
<synopsis><link linkend="tableicopy">tableicopy</link> idft, isft</synopsis><para/>
<synopsis><link linkend="tableigpw">tableigpw</link> ifn</synopsis><para/>
@@ -1101,6 +1264,8 @@
<title>Mathematical Operations:Arithmetic and Logic Operations</title>
<para>
<para/>
+<synopsis>a <link linkend="adds">&plus;</link> b (no rate restriction)</synopsis>
+<para/>
<synopsis>a <link linkend="divides">&sol;</link> b (no rate restriction)</synopsis>
<para/>
<synopsis>a <link linkend="modulus">&percnt;</link> b (no rate restriction)</synopsis>
@@ -1134,14 +1299,18 @@
<para>
<para/>
<synopsis><link linkend="abs">abs</link>(x) (no rate restriction)</synopsis><para/>
+<synopsis><link linkend="ceil">ceil</link>(x) (init-, control-, or audio-rate arg allowed)</synopsis><para/>
<synopsis><link linkend="exp">exp</link>(x) (no rate restriction)</synopsis><para/>
<synopsis><link linkend="floor">floor</link>(x) (init-, control-, or audio-rate arg allowed)</synopsis><para/>
<synopsis><link linkend="frac">frac</link>(x) (init-rate or control-rate args; also works at audio rate in Csound5)</synopsis><para/>
<synopsis><link linkend="int">int</link>(x) (init-rate or control-rate; also works at audio rate in Csound5)</synopsis><para/>
<synopsis><link linkend="log">log</link>(x) (no rate restriction)</synopsis><para/>
<synopsis><link linkend="log10">log10</link>(x) (no rate restriction)</synopsis><para/>
+<synopsis><link linkend="log2">log2</link>(x) (no rate restriction)</synopsis><para/>
<synopsis><link linkend="logbtwo">logbtwo</link>(x) (init-rate or control-rate args only)</synopsis><para/>
<synopsis><link linkend="powoftwo">powoftwo</link>(x) (init-rate or control-rate args only)</synopsis><para/>
+<synopsis><link linkend="qinf">qinf</link>(x) (no rate restriction)</synopsis><para/>
+<synopsis><link linkend="qnan">qnan</link>(x) (no rate restriction)</synopsis><para/>
<synopsis><link linkend="round">round</link>(x) (init-, control-, or audio-rate arg allowed)</synopsis><para/>
<synopsis><link linkend="sqrt">sqrt</link>(x) (no rate restriction)</synopsis><para/>
</para></formalpara>
@@ -1152,6 +1321,7 @@
<synopsis><link linkend="cos">cos</link>(x) (no rate restriction)</synopsis><para/>
<synopsis><link linkend="cosh">cosh</link>(x) (no rate restriction)</synopsis><para/>
<synopsis><link linkend="cosinv">cosinv</link>(x) (no rate restriction)</synopsis><para/>
+<synopsis><link linkend="signum">signum</link>(x) (no rate restriction)</synopsis><para/>
<synopsis><link linkend="sin">sin</link>(x) (no rate restriction)</synopsis><para/>
<synopsis><link linkend="sinh">sinh</link>(x) (no rate restriction)</synopsis><para/>
<synopsis><link linkend="sininv">sininv</link>(x) (no rate restriction)</synopsis><para/>
@@ -1163,6 +1333,8 @@
<title>Mathematical Operations:Amplitude Functions</title>
<para>
<para/>
+<synopsis><link linkend="ampdb">ampdb</link>(x) (no rate restriction)</synopsis><para/>
+<synopsis><link linkend="ampdbfs">ampdbfs</link>(x) (no rate restriction)</synopsis><para/>
<synopsis><link linkend="db">db</link>(x)</synopsis><para/>
<synopsis><link linkend="dbamp">dbamp</link>(x) (init-rate or control-rate args only)</synopsis><para/>
<synopsis><link linkend="dbfsamp">dbfsamp</link>(x) (init-rate or control-rate args only)</synopsis><para/>
@@ -1171,20 +1343,21 @@
<title>Mathematical Operations:Random Functions</title>
<para>
<para/>
+<synopsis><link linkend="birnd">birnd</link>(x) (init- or control-rate only)</synopsis><para/>
<synopsis><link linkend="rnd">rnd</link>(x) (init- or control-rate only)</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Mathematical Operations:Opcode Equivalents of Functions</title>
<para>
<para/>
-<synopsis>ares <link linkend="divz">divz</link> xa, xb, ksubst</synopsis><synopsis>ires <link linkend="divz">divz</link> ia, ib, isubst</synopsis><synopsis>kres <link linkend="divz">divz</link> ka, kb, ksubst</synopsis><para/>
-<synopsis>ares <link linkend="mac">mac</link> asig1, ksig1 [, asig2] [, ksig2] [, asig3] [, ksig3] [...]</synopsis><para/>
+<synopsis>ares <link linkend="divz">divz</link> xa, xb, ksubst</synopsis><synopsis>ires <link linkend="divz">divz</link> ia, ib, isubst</synopsis><synopsis>kres <link linkend="divz">divz</link> ka, kb, ksubst</synopsis><synopsis>...<link linkend="divz">divz</link>(ka, kb, ksubst)... (no rate restriction)</synopsis><para/>
+<synopsis>ares <link linkend="mac">mac</link> ksig1, asig1 [, ksig2] [, asig2] [, ksig3] [, asig3] [...]</synopsis><para/>
<synopsis>ares <link linkend="maca">maca</link> asig1 , asig2 [, asig3] [, asig4] [, asig5] [...]</synopsis><para/>
<synopsis>aout <link linkend="polynomial">polynomial</link> ain, k0 [, k1 [, k2 [...]]]</synopsis><para/>
<synopsis>ares <link linkend="pow">pow</link> aarg, kpow [, inorm]</synopsis><synopsis>ires <link linkend="pow">pow</link> iarg, ipow [, inorm]</synopsis><synopsis>kres <link linkend="pow">pow</link> karg, kpow [, inorm]</synopsis><para/>
<synopsis>ares <link linkend="product">product</link> asig1, asig2 [, asig3] [...]</synopsis><para/>
<synopsis>ares <link linkend="sum">sum</link> asig1 [, asig2] [, asig3] [...]</synopsis><para/>
-<synopsis>ares <link linkend="taninv2">taninv2</link> ay, ax</synopsis><synopsis>ires <link linkend="taninv2">taninv2</link> iy, ix</synopsis><synopsis>kres <link linkend="taninv2">taninv2</link> ky, kx</synopsis><para/>
+<synopsis>ares <link linkend="taninv2">taninv2</link> ay, ax</synopsis><synopsis>ires <link linkend="taninv2">taninv2</link> iy, ix</synopsis><synopsis>kres <link linkend="taninv2">taninv2</link> ky, kx</synopsis><synopsis>...<link linkend="taninv2">taninv2</link>(ky, kx)... (no rate restriction)</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Pitch Converters:Functions</title>
@@ -1258,6 +1431,7 @@
<title>Real-time MIDI:Converters</title>
<para>
<para/>
+<synopsis>iamp <link linkend="ampmidi">ampmidi</link> iscal [, ifn]</synopsis><para/>
<synopsis>iamplitude <link linkend="ampmidid">ampmidid</link> ivelocity, idecibels</synopsis><synopsis>kamplitude <link linkend="ampmidid">ampmidid</link> kvelocity, idecibels</synopsis><para/>
<synopsis>icps <link linkend="cpsmidi">cpsmidi</link>&#160;</synopsis><para/>
<synopsis>icps <link linkend="cpsmidib">cpsmidib</link> [irange]</synopsis><synopsis>kcps <link linkend="cpsmidib">cpsmidib</link> [irange]</synopsis><para/>
@@ -1367,6 +1541,22 @@
imin2, imax2, init2, ifn2, ..., imin16, imax16, init16, ifn16</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
+<title>Signal Flow Graph Opcodes</title>
+<para>
+<para/>
+<synopsis> <link linkend="alwayson">alwayson</link> Tinstrument [p4, ..., pn]</synopsis><para/>
+<synopsis><link linkend="connect">connect </link>Tsource1, Soutlet1, Tsink1, Sinlet1</synopsis><para/>
+<synopsis>ifno <link linkend="ftgenonce">ftgenonce</link> ip1, ip2dummy, isize, igen, iarga, iargb, ...</synopsis><para/>
+<synopsis>asignal <link linkend="inleta">inleta </link>Sname</synopsis><para/>
+<synopsis>fsignal <link linkend="inletf">inletf </link>Sname</synopsis><para/>
+<synopsis>ksignal <link linkend="inletk">inletk </link>Sname</synopsis><para/>
+<synopsis>ksignal <link linkend="inletkid">inletkid </link>Sname, SinstanceID</synopsis><para/>
+<synopsis><link linkend="outleta">outleta </link>Sname, asignal</synopsis><para/>
+<synopsis><link linkend="outletf">outletf </link>Sname, fsignal</synopsis><para/>
+<synopsis><link linkend="outletk">outletk </link>Sname, ksignal</synopsis><para/>
+<synopsis><link linkend="outletkid">outletkid </link>Sname, SinstanceID, ksignal</synopsis><para/>
+</para></formalpara>
+<para></para><para></para><formalpara>
<title>Spectral Processing:STFT</title>
<para>
<para/>
@@ -1414,23 +1604,26 @@
<title>Spectral Processing:Streaming</title>
<para>
<para/>
+<synopsis>fsig <link linkend="binit">binit</link> fin, isize</synopsis><para/>
<synopsis>ftrks <link linkend="partials">partials</link> ffr, fphs, kthresh, kminpts, kmaxgap, imaxtracks</synopsis><para/>
+<synopsis>kframe <link linkend="pvs2tab">pvs2tab</link> tvar, fsig</synopsis><para/>
<synopsis>ares <link linkend="pvsadsyn">pvsadsyn</link> fsrc, inoscs, kfmod [, ibinoffset] [, ibinincr] [, iinit]</synopsis><para/>
<synopsis>fsig <link linkend="pvsanal">pvsanal</link> ain, ifftsize, ioverlap, iwinsize, iwintype [, iformat] [, iinit]</synopsis><para/>
<synopsis>fsig <link linkend="pvsarp">pvsarp</link> fsigin, kbin, kdepth, kgain</synopsis><para/>
-<synopsis>fsig <link linkend="pvsbandp">pvsbandp</link> fsigin, xlowcut,
- xlowfull, xhighfull, xhighcut[, ktype]</synopsis><para/>
-<synopsis>fsig <link linkend="pvsbandr">pvsbandr</link> fsigin, xlowcut,
- xlowfull, xhighfull, xhighcut[, ktype]</synopsis><para/>
+<synopsis>fsig <link linkend="pvsbandp">pvsbandp</link> fsigin, xlowcut, xlowfull, \
+ xhighfull, xhighcut[, ktype]</synopsis><para/>
+<synopsis>fsig <link linkend="pvsbandr">pvsbandr</link> fsigin, xlowcut, xlowfull, \
+ xhighfull, xhighcut[, ktype]</synopsis><para/>
<synopsis>kamp, kfr <link linkend="pvsbin">pvsbin</link> fsig, kbin</synopsis><para/>
<synopsis>fsig <link linkend="pvsblur">pvsblur</link> fsigin, kblurtime, imaxdel</synopsis><para/>
<synopsis>ihandle, ktime <link linkend="pvsbuffer">pvsbuffer</link> fsig, ilen </synopsis><para/>
-<synopsis>fsig <link linkend="pvsbufread">pvsbufread</link> ktime, khandle[, ilo, ihi] </synopsis><para/>
+<synopsis>fsig <link linkend="pvsbufread">pvsbufread</link> ktime, khandle[, ilo, ihi, iclear] </synopsis><para/>
+<synopsis>fsig <link linkend="pvsbufread2">pvsbufread2</link> ktime, khandle, ift1, ift2 </synopsis><para/>
<synopsis>fsig <link linkend="pvscale">pvscale</link> fsigin, kscal[, kkeepform, kgain, kcoefs]</synopsis><para/>
<synopsis>kcent <link linkend="pvscent">pvscent</link> fsig</synopsis><para/>
<synopsis>fsig <link linkend="pvscross">pvscross</link> fsrc, fdest, kamp1, kamp2</synopsis><para/>
<synopsis>fsig <link linkend="pvsdemix">pvsdemix</link> fleft, fright, kpos, kwidth, ipoints</synopsis><para/>
-<synopsis>fsig <link linkend="pvsdiskin">pvsdiskin</link>SFname,ktscal,kgain[,ioffset, ichan]</synopsis><para/>
+<synopsis>fsig <link linkend="pvsdiskin">pvsdiskin</link> SFname,ktscal,kgain[,ioffset, ichan]</synopsis><para/>
<synopsis><link linkend="pvsdisp">pvsdisp</link> fsig[, ibins, iwtflg] </synopsis><para/>
<synopsis>fsig <link linkend="pvsfilter">pvsfilter</link> fsigin, fsigfil, kdepth[, igain]</synopsis><para/>
<synopsis>fsig <link linkend="pvsfread">pvsfread</link> ktimpt, ifn [, ichan]</synopsis><para/>
@@ -1438,11 +1631,12 @@
<synopsis><link linkend="pvsftr">pvsftr</link> fsrc, ifna [, ifnf]</synopsis><para/>
<synopsis>kflag <link linkend="pvsftw">pvsftw</link> fsrc, ifna [, ifnf]</synopsis><para/>
<synopsis><link linkend="pvsfwrite">pvsfwrite</link> fsig, ifile</synopsis><para/>
+<synopsis>fsig <link linkend="pvsgain">pvsgain</link> fsigin, kgain </synopsis><para/>
<synopsis>fsig <link linkend="pvshift">pvshift</link> fsigin, kshift, klowest[, kkeepform, igain, kcoefs]</synopsis><para/>
<synopsis>ffr,fphs <link linkend="pvsifd">pvsifd</link> ain, ifftsize, ihopsize, iwintype[,iscal]</synopsis><para/>
-<synopsis>fsig <link linkend="pvsin">pvsin</link> kchan[,isize,iolap,iwinsize,iwintype,iformat]</synopsis><para/>
+<synopsis>fsig <link linkend="pvsin">pvsin</link> kchan[, isize, iolap, iwinsize, iwintype, iformat]</synopsis><para/>
<synopsis>ioverlap, inumbins, iwinsize, iformat <link linkend="pvsinfo">pvsinfo</link> fsrc</synopsis><para/>
-<synopsis>fsig <link linkend="pvsinit">pvsinit</link> isize[,iolap,iwinsize,iwintype, iformat]</synopsis><para/>
+<synopsis>fsig <link linkend="pvsinit">pvsinit</link> isize[, iolap, iwinsize, iwintype, iformat]</synopsis><para/>
<synopsis>fsig <link linkend="pvslock">pvslock</link> fsigin, klock</synopsis><para/>
<synopsis>fsig <link linkend="pvsmaska">pvsmaska</link> fsrc, ifn, kdepth</synopsis><para/>
<synopsis>fsig <link linkend="pvsmix">pvsmix</link> fsigin1, fsigin2</synopsis><para/>
@@ -1451,23 +1645,45 @@
<synopsis>fsig <link linkend="pvsosc">pvsosc</link> kamp, kfreq, ktype, isize [,ioverlap] [, iwinsize] [, iwintype] [, iformat]</synopsis><para/>
<synopsis><link linkend="pvsout">pvsout</link> fsig, kchan</synopsis><para/>
<synopsis>kfr, kamp <link linkend="pvspitch">pvspitch</link> fsig, kthresh</synopsis><para/>
+<synopsis>fsig <link linkend="pvstanal">pvstanal</link> ktimescal, kamp, kpitch, ktab, [kdetect, kwrap, ioffset,ifftsize, ihop, idbthresh]
+ </synopsis><para/>
<synopsis>fsig <link linkend="pvstencil">pvstencil</link> fsigin, kgain, klevel, iftable</synopsis><para/>
<synopsis>fsig <link linkend="pvsvoc">pvsvoc</link> famp, fexc, kdepth, kgain [,kcoefs]</synopsis><para/>
<synopsis>fsig <link linkend="pvswarp">pvswarp</link> fsigin, kscal, kshift[, klowest, kmeth, kgain, kcoefs]</synopsis><para/>
<synopsis>ares <link linkend="pvsynth">pvsynth</link> fsrc, [iinit]</synopsis><para/>
<synopsis>asig <link linkend="resyn">resyn</link> fin, kscal, kpitch, kmaxtracks, ifn</synopsis><para/>
-<synopsis>asig <link linkend="sinsyn">sinsyn</link> fin, kscal, kmaxtracks, ifn</synopsis><para/>
+<synopsis>asig <link linkend="sinsyn">sinsyn</link> fin, kscal, kmaxtracks, ifn</synopsis><para/>
+<synopsis>fsig <link linkend="tab2pvs">tab2pvs</link> tvar[,ihopsize, iwinsize, iwintype]</synopsis><para/>
<synopsis>asig <link linkend="tradsyn">tradsyn</link> fin, kscal, kpitch, kmaxtracks, ifn</synopsis><para/>
-<synopsis>fsig <link linkend="trcross">trcross</link> fin1, fin2, ksearch,kdepth[,kmode] </synopsis><para/>
+<synopsis>fsig <link linkend="trcross">trcross</link> fin1, fin2, ksearch, kdepth [, kmode] </synopsis><para/>
<synopsis>fsig <link linkend="trfilter">trfilter</link> fin, kamnt, ifn</synopsis><para/>
-<synopsis>fsig, kfr,kamp <link linkend="trhighest">trhighest</link> fin1, kscal</synopsis><para/>
-<synopsis>fsig, kfr,kamp <link linkend="trlowest">trlowest</link> fin1, kscal</synopsis><para/>
+<synopsis>fsig, kfr, kamp <link linkend="trhighest">trhighest</link> fin1, kscal</synopsis><para/>
+<synopsis>fsig, kfr, kamp <link linkend="trlowest">trlowest</link> fin1, kscal</synopsis><para/>
<synopsis>fsig <link linkend="trmix">trmix</link> fin1, fin2 </synopsis><para/>
<synopsis>fsig <link linkend="trscale">trscale</link> fin, kpitch[, kgain]</synopsis><para/>
<synopsis>fsig <link linkend="trshift">trshift</link> fin, kpshift[, kgain]</synopsis><para/>
<synopsis>fsiglow, fsighi <link linkend="trsplit">trsplit</link> fin, ksplit[, kgainlow, kgainhigh]</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
+<title>Spectral Processing:ATS</title>
+<para>
+<para/>
+<synopsis>ar <link linkend="ATSadd">ATSadd</link> ktimepnt, kfmod, iatsfile, ifn, ipartials[, ipartialoffset, \
+ ipartialincr, igatefn]</synopsis><para/>
+<synopsis>ar <link linkend="ATSaddnz">ATSaddnz</link> ktimepnt, iatsfile, ibands[, ibandoffset, ibandincr]</synopsis><para/>
+<synopsis><link linkend="ATSbufread">ATSbufread</link> ktimepnt, kfmod, iatsfile, ipartials[, ipartialoffset, \
+ ipartialincr]</synopsis><para/>
+<synopsis>ar <link linkend="ATScross">ATScross</link> ktimepnt, kfmod, iatsfile, ifn, kmylev, kbuflev, ipartials \
+ [, ipartialoffset, ipartialincr]</synopsis><para/>
+<synopsis>idata <link linkend="ATSinfo">ATSinfo</link> iatsfile, ilocation</synopsis><para/>
+<synopsis>kamp <link linkend="ATSinterpread">ATSinterpread</link> kfreq</synopsis><para/>
+<synopsis>kfrq, kamp <link linkend="ATSpartialtap">ATSpartialtap</link> ipartialnum</synopsis><para/>
+<synopsis>kfreq, kamp <link linkend="ATSread">ATSread</link> ktimepnt, iatsfile, ipartial</synopsis><para/>
+<synopsis>kenergy <link linkend="ATSreadnz">ATSreadnz</link> ktimepnt, iatsfile, iband</synopsis><para/>
+<synopsis>ar <link linkend="ATSsinnoi">ATSsinnoi</link> ktimepnt, ksinlev, knzlev, kfmod, iatsfile, ipartials \
+ [, ipartialoffset, ipartialincr]</synopsis><para/>
+</para></formalpara>
+<para></para><para></para><formalpara>
<title>Spectral Processing:Loris</title>
<para>
<para/>
@@ -1476,9 +1692,20 @@
<synopsis><link linkend="lorisread">lorisread</link> ktimpnt, ifilcod, istoreidx, kfreqenv, kampenv, kbwenv[, ifadetime]</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
+<title>Spectral Processing:Other</title>
+<para>
+<para/>
+<synopsis>kcent <link linkend="centroid">centroid</link> asig, ktrig, ifftsize</synopsis><para/>
+<synopsis>asig <link linkend="mincer">mincer</link> atimpt, kamp, kpitch, ktab, klock[,ifftsize,idecim]
+ </synopsis><para/>
+<synopsis>asig <link linkend="temposcal">temposcal</link> ktimescal, kamp, kpitch, ktab, klock [,ifftsize, idecim, ithresh]
+ </synopsis><para/>
+</para></formalpara>
+<para></para><para></para><formalpara>
<title>Strings:Definition</title>
<para>
<para/>
+<synopsis>Sdst <link linkend="strfromurl">strfromurl</link> StringURL</synopsis><para/>
<synopsis>Sdst <link linkend="strget">strget</link> indx</synopsis><para/>
<synopsis><link linkend="strset">strset</link> iarg, istring</synopsis><para/>
</para></formalpara>
@@ -1556,8 +1783,8 @@
<para/>
<synopsis><link linkend="vaddv">vaddv</link> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis><para/>
<synopsis><link linkend="vaddv_i">vaddv_i</link> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis><para/>
-<synopsis><link linkend="vcopy">vcopy</link> ifn, ifn2, kelements [, kdstoffset] [, ksrcoffset] [, kverbose]</synopsis><para/>
-<synopsis><link linkend="vcopy_i">vcopy_i</link> ifn, ifn2, ielements [,idstoffset, isrcoffset]</synopsis><para/>
+<synopsis><link linkend="vcopy">vcopy</link> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [, kverbose]</synopsis><para/>
+<synopsis><link linkend="vcopy_i">vcopy_i</link> ifn1, ifn2, ielements [,idstoffset, isrcoffset]</synopsis><para/>
<synopsis><link linkend="vdivv">vdivv</link> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis><para/>
<synopsis><link linkend="vdivv_i">vdivv_i</link> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis><para/>
<synopsis><link linkend="vexpv">vexpv</link> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis><para/>
@@ -1574,8 +1801,8 @@
<title>Vectorial:Envelopes</title>
<para>
<para/>
-<synopsis><link linkend="vexpseg">vexpseg</link> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis><para/>
-<synopsis><link linkend="vlinseg">vlinseg</link> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis><para/>
+<synopsis><link linkend="vexpseg">vexpseg</link> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis><para/>
+<synopsis><link linkend="vlinseg">vlinseg</link> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Vectorial:Limiting and Wrapping</title>
@@ -1589,25 +1816,25 @@
<title>Vectorial:Delay Paths</title>
<para>
<para/>
-<synopsis>kout <link linkend="vdelayk">vdelayk</link> iksig, kdel, imaxdel [, iskip, imode]</synopsis><para/>
+<synopsis>kout <link linkend="vdelayk">vdelayk</link> ksig, kdel, imaxdel [, iskip, imode]</synopsis><para/>
<synopsis><link linkend="vecdelay">vecdelay</link> ifn, ifnIn, ifnDel, ielements, imaxdel [, iskip]
</synopsis><para/>
-<synopsis><link linkend="vport">vport</link> ifn, khtime, ielements [, ifnInit]
-</synopsis><para/>
+<synopsis><link linkend="vport">vport</link> ifn, khtime, ielements [, ifnInit]</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Vectorial:Random</title>
<para>
<para/>
-<synopsis><link linkend="vrandh">vrandh</link> ifn, krange, kcps, ielements [, idstoffset] [, iseed]
+<synopsis><link linkend="vrandh">vrandh</link> ifn, krange, kcps, ielements [, idstoffset] [, iseed] \
[, isize] [, ioffset]</synopsis><para/>
-<synopsis><link linkend="vrandi">vrandi</link> ifn, krange, kcps, ielements [, idstoffset] [, iseed]
+<synopsis><link linkend="vrandi">vrandi</link> ifn, krange, kcps, ielements [, idstoffset] [, iseed] \
[, isize] [, ioffset]</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
<title>Vectorial:Cellular Automata</title>
<para>
<para/>
+<synopsis><link linkend="cell">cell</link> ktrig, kreinit, ioutFunc, initStateFunc, iRuleFunc, ielements</synopsis><para/>
<synopsis><link linkend="vcella">vcella</link> ktrig, kreinit, ioutFunc, initStateFunc, \
iRuleFunc, ielements, irulelen [, iradius]</synopsis><para/>
</para></formalpara>
@@ -1636,7 +1863,7 @@
<para>
<para/>
<synopsis><link linkend="dssiactivate">dssiactivate</link> ihandle, ktoggle </synopsis><para/>
-<synopsis>aout1 [, aout2, aout3, aout4] <link linkend="dssiaudio">dssiaudio</link> ihandle, ain1 [,ain2, ain3, ain4] </synopsis><para/>
+<synopsis>[aout1, aout2, ..., aout9] <link linkend="dssiaudio">dssiaudio</link> ihandle, [ain1, ain2, ..., ain9]</synopsis><para/>
<synopsis><link linkend="dssictls">dssictls</link> ihandle, iport, kvalue, ktrigger </synopsis><para/>
<synopsis>ihandle <link linkend="dssiinit">dssiinit</link> ilibraryname, iplugindex [, iverbose] </synopsis><para/>
<synopsis><link linkend="dssilist">dssilist</link>&#160;</synopsis><para/>
@@ -1665,6 +1892,15 @@
<synopsis><link linkend="OSCsend">OSCsend</link> kwhen, ihost, iport, idestination, itype [, kdata1, kdata2, ...]</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
+<title>Faust Opcodes</title>
+<para>
+<para/>
+<synopsis><link linkend="faustaudio">ihandle,a1[,a2,...] faustaudio</link> ifac[,ain1,...] </synopsis><para/>
+<synopsis><link linkend="faustcompile">ihandle faustcompile</link> Scode, Sargs </synopsis><para/>
+<synopsis><link linkend="faustctl">faustctl</link> idsp,Scontrol,kval </synopsis><para/>
+<synopsis><link linkend="faustgen">ihandle,a1[,a2,...] faustgen</link> SCode[,ain1,...] </synopsis><para/>
+</para></formalpara>
+<para></para><para></para><formalpara>
<title>Network</title>
<para>
<para/>
@@ -1713,10 +1949,21 @@
<synopsis>ared, agreen, ablue <link linkend="imagegetpixel">imagegetpixel</link> iimagenum, ax, ay</synopsis><synopsis>kred, kgreen, kblue <link linkend="imagegetpixel">imagegetpixel</link> iimagenum, kx, ky</synopsis><para/>
<synopsis>iimagenum <link linkend="imageload">imageload</link> filename</synopsis><para/>
<synopsis><link linkend="imagesave">imagesave</link> iimagenum, filename</synopsis><para/>
-<synopsis><link linkend="imagesetpixel">imagegetpixel</link> iimagenum, ax, ay, ared, agreen, ablue</synopsis><synopsis><link linkend="imagesetpixel">imagegetpixel</link> iimagenum, kx, ky, kred, kgreen, kblue</synopsis><para/>
+<synopsis><link linkend="imagesetpixel">imagesetpixel</link> iimagenum, ax, ay, ared, agreen, ablue</synopsis><synopsis><link linkend="imagesetpixel">imagesetpixel</link> iimagenum, kx, ky, kred, kgreen, kblue</synopsis><para/>
<synopsis>iwidth, iheight <link linkend="imagesize">imagesize</link> iimagenum</synopsis><para/>
</para></formalpara>
<para></para><para></para><formalpara>
+<title>Array Opcodes</title>
+<para>
+<para/>
+<synopsis><link linkend="copya2ftab">copya2ftab</link> tab, kftbl</synopsis><para/>
+<synopsis><link linkend="copyf2array">copyf2array</link> tab, kftbl</synopsis><para/>
+<synopsis>kmax <link linkend="maxarray">maxarray</link> karray</synopsis><para/>
+<synopsis>kmin <link linkend="minarray">minarray</link> karray</synopsis><para/>
+<synopsis><link linkend="scalearray">scalearray</link> tarray, kmin, kmax[, kleft, kright]</synopsis><para/>
+<synopsis>ksum <link linkend="sumarray">sumarray</link> karray</synopsis><para/>
+</para></formalpara>
+<para></para><para></para><formalpara>
<title>Miscellaneous</title>
<para>
<para/>
@@ -1815,27 +2062,10 @@
inum_parm, kupdate</synopsis><para/>
+<synopsis>Sres <link linkend="pwd">pwd</link>&#160;</synopsis><para/>
<synopsis>ires <link linkend="system">system_i</link> itrig, Scmd, [inowait]</synopsis><synopsis>kres <link linkend="system">system</link> ktrig, Scmd, [knowait]</synopsis><para/>
<synopsis><link linkend="tableshuffle">tableshuffle</link> ktablenum</synopsis><synopsis><link linkend="tableshuffle">tableshufflei</link> itablenum</synopsis><para/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
</para></formalpara>
<para></para><para></para><formalpara>
<title>Utilities</title>
@@ -1854,6 +2084,7 @@ inum_parm, kupdate</synopsis><para/>
<synopsis><link linkend="lpanal">csound -U lpanal</link> [flags] infilename outfilename</synopsis><synopsis><link linkend="lpanal">lpanal</link> [flags] infilename outfilename</synopsis><para/>
<synopsis><link linkend="makecsd">makecsd</link> [OPTIONS ... ] infile1 [ infile2 [ ... ]]</synopsis><para/>
<synopsis><link linkend="mixer">mixer</link> [OPTIONS ... ] infile [[OPTIONS... ] infile] ...</synopsis><para/>
+<synopsis><link linkend="mkdb">mkdb</link> [-m] [base_directory]</synopsis><para/>
<synopsis><link linkend="pv_export">pv_export</link> pv_file cstext_file</synopsis><synopsis>csound -U <link linkend="pv_export">pv_export</link> pv_file cstext_file</synopsis><para/>
<synopsis><link linkend="pv_import">pv_import</link> cstext_file pv_file</synopsis><synopsis>csound -U <link linkend="pv_import">pv_import</link> cstext_file pv_file</synopsis><para/>
<synopsis><link linkend="pvanal">csound -U pvanal</link> [flags] infilename outfilename</synopsis><synopsis><link linkend="pvanal">pvanal</link> [flags] infilename outfilename</synopsis><para/>
diff --git a/misc/quickrefXO.xml b/misc/quickrefXO.xml
deleted file mode 100644
index 158b8fc..0000000
--- a/misc/quickrefXO.xml
+++ /dev/null
@@ -1,1773 +0,0 @@
-
-<!-- Don't modify this file. It is generated automatically by quickref.py-->
-<part id="MiscQuickref">
- <title>Opcode Quick Reference</title>
-<para></para><formalpara>
-<title>Orchestra Syntax:Block Statements</title>
-<para>
-<para/>
-<synopsis><link linkend="endin">endin</link>&#160;</synopsis><para/>
-<synopsis><link linkend="endop">endop</link>&#160;</synopsis><para/>
-<synopsis><link linkend="instr">instr</link> i, j, ...</synopsis><para/>
-<synopsis><link linkend="opcode">opcode</link> name, outtypes, intypes</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Orchestra Syntax:Macros</title>
-<para>
-<para/>
-<synopsis><link linkend="define">&num;define</link> NAME &num; replacement text &num;</synopsis><para/>
-<synopsis><link linkend="define">&num;define</link> NAME(a&apos; b&apos; c&apos;) &num; replacement text &num;</synopsis>
-<para/>
-<synopsis><link linkend="dollar">&dollar;NAME</link>&#160;</synopsis>
-<para/>
-<synopsis><link linkend="ifdef">&num;ifdef</link> NAME</synopsis><synopsis> ....</synopsis><synopsis><link linkend="ifdef">&num;else</link>&#160;</synopsis><synopsis> ....</synopsis><synopsis><link linkend="ifdef">&num;end</link>&#160;</synopsis>
-<para/>
-<synopsis><link linkend="ifndef">&num;ifndef</link> NAME</synopsis><synopsis> ....</synopsis><synopsis><link linkend="ifndef">&num;else</link>&#160;</synopsis><synopsis> ....</synopsis><synopsis><link linkend="ifndef">&num;end</link>&#160;</synopsis>
-<para/>
-<synopsis><link linkend="include">&num;include</link> &quot;filename&quot;</synopsis>
-<para/>
-<synopsis><link linkend="undef">&num;undef</link> NAME</synopsis>
-<para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Additive Synthesis/Resynthesis</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="adsyn">adsyn</link> kamod, kfmod, ksmod, ifilcod</synopsis><para/>
-<synopsis>ares <link linkend="adsynt">adsynt</link> kamp, kcps, iwfn, ifreqfn, iampfn, icnt [, iphs]</synopsis><para/>
-<synopsis>ar <link linkend="adsynt2">adsynt2</link> kamp, kcps, iwfn, ifreqfn, iampfn, icnt [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="hsboscil">hsboscil</link> kamp, ktone, kbrite, ibasfreq, iwfn, ioctfn \
- [, ioctcnt] [, iphs]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Basic Oscillators</title>
-<para>
-<para/>
-<synopsis>kres <link linkend="lfo">lfo</link> kamp, kcps [, itype]</synopsis><synopsis>ares <link linkend="lfo">lfo</link> kamp, kcps [, itype]</synopsis><para/>
-<synopsis>ares <link linkend="oscbnk">oscbnk</link> kcps, kamd, kfmd, kpmd, iovrlap, iseed, kl1minf, kl1maxf, \
- kl2minf, kl2maxf, ilfomode, keqminf, keqmaxf, keqminl, keqmaxl, \
- keqminq, keqmaxq, ieqmode, kfn [, il1fn] [, il2fn] [, ieqffn] \
- [, ieqlfn] [, ieqqfn] [, itabl] [, ioutfn]</synopsis><para/>
-<synopsis>ares <link linkend="oscil">oscil</link> xamp, xcps, ifn [, iphs]</synopsis><synopsis>kres <link linkend="oscil">oscil</link> kamp, kcps, ifn [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="oscil3">oscil3</link> xamp, xcps, ifn [, iphs]</synopsis><synopsis>kres <link linkend="oscil3">oscil3</link> kamp, kcps, ifn [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="oscili">oscili</link> xamp, xcps, ifn [, iphs]</synopsis><synopsis>kres <link linkend="oscili">oscili</link> kamp, kcps, ifn [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="oscilikt">oscilikt</link> xamp, xcps, kfn [, iphs] [, istor]</synopsis><synopsis>kres <link linkend="oscilikt">oscilikt</link> kamp, kcps, kfn [, iphs] [, istor]</synopsis><para/>
-<synopsis>ares <link linkend="osciliktp">osciliktp</link> kcps, kfn, kphs [, istor]</synopsis><para/>
-<synopsis>ares <link linkend="oscilikts">oscilikts</link> xamp, xcps, kfn, async, kphs [, istor]</synopsis><para/>
-<synopsis>ares <link linkend="osciln">osciln</link> kamp, ifrq, ifn, itimes</synopsis><para/>
-<synopsis>ares <link linkend="oscils">oscils</link> iamp, icps, iphs [, iflg]</synopsis><para/>
-<synopsis>ares <link linkend="poscil">poscil</link> aamp, acps, ifn [, iphs]</synopsis><synopsis>ares <link linkend="poscil">poscil</link> aamp, kcps, ifn [, iphs]</synopsis><synopsis>ares <link linkend="poscil">poscil</link> kamp, acps, ifn [, iphs]</synopsis><synopsis>ares <link linkend="poscil">poscil</link> kamp, kcps, ifn [, iphs]</synopsis><synopsis>ires <link linkend="poscil">poscil</link> kamp, kcps, ifn [, iphs]</synopsis><synopsis>kres <link linkend="poscil">poscil</link> kamp, kcps, ifn [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="poscil3">poscil3</link> kamp, kcps, ifn [, iphs]</synopsis><synopsis>kres <link linkend="poscil3">poscil3</link> kamp, kcps, ifn [, iphs]</synopsis><para/>
-<synopsis>kout <link linkend="vibr">vibr</link> kAverageAmp, kAverageFreq, ifn</synopsis><para/>
-<synopsis>kout <link linkend="vibrato">vibrato</link> kAverageAmp, kAverageFreq, kRandAmountAmp, \
- kRandAmountFreq, kAmpMinRate, kAmpMaxRate, kcpsMinRate, \
- kcpsMaxRate, ifn [, iphs]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Dynamic Spectrum Oscillators</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="buzz">buzz</link> xamp, xcps, knh, ifn [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="gbuzz">gbuzz</link> xamp, xcps, knh, klh, kmul, ifn [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="mpulse">mpulse</link> kamp, kintvl [, ioffset]</synopsis><para/>
-<synopsis>ares <link linkend="vco">vco</link> xamp, xcps, iwave, kpw [, ifn] [, imaxd] [, ileak] [, inyx] \
- [, iphs] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="vco2">vco2</link> kamp, kcps [, imode] [, kpw] [, kphs] [, inyx]</synopsis><para/>
-<synopsis>kfn <link linkend="vco2ft">vco2ft</link> kcps, iwave [, inyx]</synopsis><para/>
-<synopsis>ifn <link linkend="vco2ift">vco2ift</link> icps, iwave [, inyx]</synopsis><para/>
-<synopsis>ifn <link linkend="vco2init">vco2init</link> iwave [, ibasfn] [, ipmul] [, iminsiz] [, imaxsiz] [, isrcft]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:FM Synthesis</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="fmb3">fmb3</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
- ifn4, ivfn</synopsis><para/>
-<synopsis>ares <link linkend="fmbell">fmbell</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
- ifn4, ivfn</synopsis><para/>
-<synopsis>ares <link linkend="fmmetal">fmmetal</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
- ifn4, ivfn</synopsis><para/>
-<synopsis>ares <link linkend="fmpercfl">fmpercfl</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, \
- ifn3, ifn4, ivfn</synopsis><para/>
-<synopsis>ares <link linkend="fmrhode">fmrhode</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, \
- ifn3, ifn4, ivfn</synopsis><para/>
-<synopsis>ares <link linkend="fmvoice">fmvoice</link> kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate, ifn1, \
- ifn2, ifn3, ifn4, ivibfn</synopsis><para/>
-<synopsis>ares <link linkend="fmwurlie">fmwurlie</link> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
- ifn4, ivfn</synopsis><para/>
-<synopsis>ares <link linkend="foscil">foscil</link> xamp, kcps, xcar, xmod, kndx, ifn [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="foscili">foscili</link> xamp, kcps, xcar, xmod, kndx, ifn [, iphs]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Granular Synthesis</title>
-<para>
-<para/>
-<synopsis>asig <link linkend="diskgrain">diskgrain</link> Sfname, kamp, kfreq, kpitch, kgrsize, kprate, \
- ifun, iolaps[, ioffset, imaxgrsize]</synopsis><para/>
-<synopsis>ares <link linkend="fof">fof</link> xamp, xfund, xform, koct, kband, kris, kdur, kdec, iolaps, \
- ifna, ifnb, itotdur [, iphs] [, ifmode] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="fof2">fof2</link> xamp, xfund, xform, koct, kband, kris, kdur, kdec, iolaps, \
- ifna, ifnb, itotdur, kphs, kgliss [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="fog">fog</link> xamp, xdens, xtrans, aspd, koct, kband, kris, kdur, kdec, \
- iolaps, ifna, ifnb, itotdur [, iphs] [, itmode] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="grain">grain</link> xamp, xpitch, xdens, kampoff, kpitchoff, kgdur, igfn, \
- iwfn, imgdur [, igrnd]</synopsis><para/>
-<synopsis>ares <link linkend="grain2">grain2</link> kcps, kfmd, kgdur, iovrlp, kfn, iwfn [, irpow] \
- [, iseed] [, imode]</synopsis><para/>
-<synopsis>ares <link linkend="grain3">grain3</link> kcps, kphs, kfmd, kpmd, kgdur, kdens, imaxovr, kfn, iwfn, \
- kfrpow, kprpow [, iseed] [, imode]</synopsis><para/>
-<synopsis>ares <link linkend="granule">granule</link> xamp, ivoice, iratio, imode, ithd, ifn, ipshift, igskip, \
- igskip_os, ilength, kgap, igap_os, kgsize, igsize_os, iatt, idec \
- [, iseed] [, ipitch1] [, ipitch2] [, ipitch3] [, ipitch4] [, ifnenv]</synopsis><para/>
-<synopsis>a1 [, a2, a3, a4, a5, a6, a7, a8] <link linkend="partikkel">partikkel</link> agrainfreq, \
- kdistribution, idisttab, async, kenv2amt, ienv2tab, ienv_attack, \
- ienv_decay, ksustain_amount, ka_d_ratio, kduration, kamp, igainmasks, \
- kwavfreq, ksweepshape, iwavfreqstarttab, iwavfreqendtab, awavfm, \
- ifmamptab, kfmenv, icosine, ktraincps, knumpartials, kchroma, \
- ichannelmasks, krandommask, kwaveform1, kwaveform2, kwaveform3, \
- kwaveform4, iwaveamptab, asamplepos1, asamplepos2, asamplepos3, \
- asamplepos4, kwavekey1, kwavekey2, kwavekey3, kwavekey4, imax_grains \
- [, iopcode_id]</synopsis><para/>
-<synopsis>async [,aphase] <link linkend="partikkelsync">partikkelsync</link> iopcode_id</synopsis><para/>
-<synopsis>ares [, ac] <link linkend="sndwarp">sndwarp</link> xamp, xtimewarp, xresample, ifn1, ibeg, iwsize, \
- irandw, ioverlap, ifn2, itimemode</synopsis><para/>
-<synopsis>ar1, ar2 [,ac1] [, ac2] <link linkend="sndwarpst">sndwarpst</link> xamp, xtimewarp, xresample, ifn1, \
- ibeg, iwsize, irandw, ioverlap, ifn2, itimemode</synopsis><para/>
-<synopsis>asig <link linkend="syncgrain">syncgrain</link> kamp, kfreq, kpitch, kgrsize, kprate, ifun1, \
- ifun2, iolaps</synopsis><para/>
-<synopsis>asig <link linkend="syncloop">syncloop</link> kamp, kfreq, kpitch, kgrsize, kprate, klstart, \
- klend, ifun1, ifun2, iolaps[,istart, iskip]</synopsis><para/>
-<synopsis>ar <link linkend="vosim">vosim</link> kamp, kFund, kForm, kDecay, kPulseCount, kPulseFactor, ifn [, iskip]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Hyper Vectorial Synthesis</title>
-<para>
-<para/>
-<synopsis><link linkend="hvs1">hvs1</link> kx, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis><para/>
-<synopsis><link linkend="hvs2">hvs2</link> kx, ky, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis><para/>
-<synopsis><link linkend="hvs3">hvs3</link> kx, ky, kz, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Linear and Exponential Generators</title>
-<para>
-<para/>
-<synopsis>kout <link linkend="expcurve">expcurve</link> kindex, ksteepness</synopsis><para/>
-<synopsis>ares <link linkend="expon">expon</link> ia, idur, ib</synopsis><synopsis>kres <link linkend="expon">expon</link> ia, idur, ib</synopsis><para/>
-<synopsis>ares <link linkend="expseg">expseg</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><synopsis>kres <link linkend="expseg">expseg</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><para/>
-<synopsis>ares <link linkend="expsega">expsega</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><para/>
-<synopsis>ares <link linkend="expsegr">expsegr</link> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><synopsis>kres <link linkend="expsegr">expsegr</link> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><para/>
-<synopsis>kout <link linkend="gainslider">gainslider</link> kindex</synopsis><para/>
-<synopsis>ares <link linkend="jspline">jspline</link> xamp, kcpsMin, kcpsMax</synopsis><synopsis>kres <link linkend="jspline">jspline</link> kamp, kcpsMin, kcpsMax</synopsis><para/>
-<synopsis>ares <link linkend="line">line</link> ia, idur, ib</synopsis><synopsis>kres <link linkend="line">line</link> ia, idur, ib</synopsis><para/>
-<synopsis>ares <link linkend="linseg">linseg</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><synopsis>kres <link linkend="linseg">linseg</link> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><para/>
-<synopsis>ares <link linkend="linsegr">linsegr</link> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><synopsis>kres <link linkend="linsegr">linsegr</link> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><para/>
-<synopsis>kout <link linkend="logcurve">logcurve</link> kindex, ksteepness</synopsis><para/>
-<synopsis>ksig <link linkend="loopseg">loopseg</link> kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis><para/>
-<synopsis>ksig <link linkend="loopsegp">loopsegp</link> kphase, kvalue0, kdur0, kvalue1 \
- [, kdur1, ... , kdurN-1, kvalueN]</synopsis><para/>
-<synopsis>ksig <link linkend="lpshold">lpshold</link> kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis><para/>
-<synopsis>ksig <link linkend="lpsholdp">lpsholdp</link> kphase, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis><para/>
-<synopsis>ares <link linkend="rspline">rspline</link> xrangeMin, xrangeMax, kcpsMin, kcpsMax</synopsis><synopsis>kres <link linkend="rspline">rspline</link> krangeMin, krangeMax, kcpsMin, kcpsMax</synopsis><para/>
-<synopsis>kscl <link linkend="scale">scale</link> kinput, kmax, kmin</synopsis><para/>
-<synopsis>ares <link linkend="transeg">transeg</link> ia, idur, itype, ib [, idur2] [, itype] [, ic] ...</synopsis><synopsis>kres <link linkend="transeg">transeg</link> ia, idur, itype, ib [, idur2] [, itype] [, ic] ...</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Envelope Generators</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="adsr">adsr</link> iatt, idec, islev, irel [, idel]</synopsis><synopsis>kres <link linkend="adsr">adsr</link> iatt, idec, islev, irel [, idel]</synopsis><para/>
-<synopsis>ares <link linkend="envlpx">envlpx</link> xamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod]</synopsis><synopsis>kres <link linkend="envlpx">envlpx</link> kamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod]</synopsis><para/>
-<synopsis>ares <link linkend="envlpxr">envlpxr</link> xamp, irise, idec, ifn, iatss, iatdec [, ixmod] [,irind]</synopsis><synopsis>kres <link linkend="envlpxr">envlpxr</link> kamp, irise, idec, ifn, iatss, iatdec [, ixmod] [,irind]</synopsis><para/>
-<synopsis>ares <link linkend="linen">linen</link> xamp, irise, idur, idec</synopsis><synopsis>kres <link linkend="linen">linen</link> kamp, irise, idur, idec</synopsis><para/>
-<synopsis>ares <link linkend="linenr">linenr</link> xamp, irise, idec, iatdec</synopsis><synopsis>kres <link linkend="linenr">linenr</link> kamp, irise, idec, iatdec</synopsis><para/>
-<synopsis>ares <link linkend="madsr">madsr</link> iatt, idec, islev, irel [, idel] [, ireltim]</synopsis><synopsis>kres <link linkend="madsr">madsr</link> iatt, idec, islev, irel [, idel] [, ireltim]</synopsis><para/>
-<synopsis>ares <link linkend="mxadsr">mxadsr</link> iatt, idec, islev, irel [, idel] [, ireltim]</synopsis><synopsis>kres <link linkend="mxadsr">mxadsr</link> iatt, idec, islev, irel [, idel] [, ireltim]</synopsis><para/>
-<synopsis>ares <link linkend="xadsr">xadsr</link> iatt, idec, islev, irel [, idel]</synopsis><synopsis>kres <link linkend="xadsr">xadsr</link> iatt, idec, islev, irel [, idel]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Models and Emulations</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="bamboo">bamboo</link> kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \
- [, ifreq1] [, ifreq2]</synopsis><para/>
-<synopsis>ares <link linkend="barmodel">barmodel</link> kbcL, kbcR, iK, ib, kscan, iT30, ipos, ivel, iwid</synopsis><para/>
-<synopsis>ares <link linkend="cabasa">cabasa</link> iamp, idettack [, inum] [, idamp] [, imaxshake]</synopsis><para/>
-<synopsis>ares <link linkend="crunch">crunch</link> iamp, idettack [, inum] [, idamp] [, imaxshake]</synopsis><para/>
-<synopsis>ares <link linkend="dripwater">dripwater</link> kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \
- [, ifreq1] [, ifreq2]</synopsis><para/>
-<synopsis>ares <link linkend="gogobel">gogobel</link> kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivfn</synopsis><para/>
-<synopsis>ares <link linkend="guiro">guiro</link> kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] [, ifreq1]</synopsis><para/>
-<synopsis>ax, ay, az <link linkend="lorenz">lorenz</link> ksv, krv, kbv, kh, ix, iy, iz, iskip [, iskipinit]</synopsis><para/>
-<synopsis>kiter, koutrig <link linkend="mandel">mandel</link> ktrig, kx, ky, kmaxIter</synopsis><para/>
-<synopsis>ares <link linkend="mandol">mandol</link> kamp, kfreq, kpluck, kdetune, kgain, ksize, ifn [, iminfreq]</synopsis><para/>
-<synopsis>ares <link linkend="marimba">marimba</link> kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec \
- [, idoubles] [, itriples]</synopsis><para/>
-<synopsis>ares <link linkend="moog">moog</link> kamp, kfreq, kfiltq, kfiltrate, kvibf, kvamp, iafn, iwfn, ivfn</synopsis><para/>
-<synopsis>ax, ay, az <link linkend="planet">planet</link> kmass1, kmass2, ksep, ix, iy, iz, ivx, ivy, ivz, idelta \
- [, ifriction] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="prepiano">prepiano</link> ifreq, iNS, iD, iK, \
- iT30,iB, kbcl, kbcr, imass, ifreq, iinit, ipos, ivel, isfreq, \
- isspread[, irattles, irubbers]</synopsis><synopsis>al,ar <link linkend="prepiano">prepiano</link> ifreq, iNS, iD, iK, \
- iT30,iB, kbcl, kbcr, imass, ifreq, iinit, ipos, ivel, isfreq, \
- isspread[, irattles, irubbers]</synopsis><para/>
-<synopsis>ares <link linkend="sandpaper">sandpaper</link> iamp, idettack [, inum] [, idamp] [, imaxshake]</synopsis><para/>
-<synopsis>ares <link linkend="sekere">sekere</link> iamp, idettack [, inum] [, idamp] [, imaxshake]</synopsis><para/>
-<synopsis>ares <link linkend="shaker">shaker</link> kamp, kfreq, kbeans, kdamp, ktimes [, idecay]</synopsis><para/>
-<synopsis>ares <link linkend="sleighbells">sleighbells</link> kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \
- [, ifreq1] [, ifreq2]</synopsis><para/>
-<synopsis>ares <link linkend="stix">stix</link> iamp, idettack [, inum] [, idamp] [, imaxshake]</synopsis><para/>
-<synopsis>ares <link linkend="tambourine">tambourine</link> kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \
- [, ifreq1] [, ifreq2]</synopsis><para/>
-<synopsis>ares <link linkend="vibes">vibes</link> kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec</synopsis><para/>
-<synopsis>ares <link linkend="voice">voice</link> kamp, kfreq, kphoneme, kform, kvibf, kvamp, ifn, ivfn</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Phasors</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="phasor">phasor</link> xcps [, iphs]</synopsis><synopsis>kres <link linkend="phasor">phasor</link> kcps [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="phasorbnk">phasorbnk</link> xcps, kndx, icnt [, iphs]</synopsis><synopsis>kres <link linkend="phasorbnk">phasorbnk</link> kcps, kndx, icnt [, iphs]</synopsis><para/>
-<synopsis>aphase, asyncout <link linkend="syncphasor">syncphasor</link> xcps, asyncin, [, iphs]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Random (Noise) Generators</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="betarand">betarand</link> krange, kalpha, kbeta</synopsis><synopsis>ires <link linkend="betarand">betarand</link> krange, kalpha, kbeta</synopsis><synopsis>kres <link linkend="betarand">betarand</link> krange, kalpha, kbeta</synopsis><para/>
-<synopsis>ares <link linkend="bexprnd">bexprnd</link> krange</synopsis><synopsis>ires <link linkend="bexprnd">bexprnd</link> krange</synopsis><synopsis>kres <link linkend="bexprnd">bexprnd</link> krange</synopsis><para/>
-<synopsis>ares <link linkend="cauchy">cauchy</link> kalpha</synopsis><synopsis>ires <link linkend="cauchy">cauchy</link> kalpha</synopsis><synopsis>kres <link linkend="cauchy">cauchy</link> kalpha</synopsis><para/>
-<synopsis>aout <link linkend="cuserrnd">cuserrnd</link> kmin, kmax, ktableNum</synopsis><synopsis>iout <link linkend="cuserrnd">cuserrnd</link> imin, imax, itableNum</synopsis><synopsis>kout <link linkend="cuserrnd">cuserrnd</link> kmin, kmax, ktableNum</synopsis><para/>
-<synopsis>aout <link linkend="duserrnd">duserrnd</link> ktableNum</synopsis><synopsis>iout <link linkend="duserrnd">duserrnd</link> itableNum</synopsis><synopsis>kout <link linkend="duserrnd">duserrnd</link> ktableNum</synopsis><para/>
-<synopsis>ares <link linkend="exprand">exprand</link> klambda</synopsis><synopsis>ires <link linkend="exprand">exprand</link> klambda</synopsis><synopsis>kres <link linkend="exprand">exprand</link> klambda</synopsis><para/>
-<synopsis>ares <link linkend="gauss">gauss</link> krange</synopsis><synopsis>ires <link linkend="gauss">gauss</link> krange</synopsis><synopsis>kres <link linkend="gauss">gauss</link> krange</synopsis><para/>
-<synopsis>kout <link linkend="jitter">jitter</link> kamp, kcpsMin, kcpsMax</synopsis><para/>
-<synopsis>kout <link linkend="jitter2">jitter2</link> ktotamp, kamp1, kcps1, kamp2, kcps2, kamp3, kcps3</synopsis><para/>
-<synopsis>ares <link linkend="linrand">linrand</link> krange</synopsis><synopsis>ires <link linkend="linrand">linrand</link> krange</synopsis><synopsis>kres <link linkend="linrand">linrand</link> krange</synopsis><para/>
-<synopsis>ares <link linkend="noise">noise</link> xamp, kbeta</synopsis><para/>
-<synopsis>ares <link linkend="pcauchy">pcauchy</link> kalpha</synopsis><synopsis>ires <link linkend="pcauchy">pcauchy</link> kalpha</synopsis><synopsis>kres <link linkend="pcauchy">pcauchy</link> kalpha</synopsis><para/>
-<synopsis>ares <link linkend="pinkish">pinkish</link> xin [, imethod] [, inumbands] [, iseed] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="poisson">poisson</link> klambda</synopsis><synopsis>ires <link linkend="poisson">poisson</link> klambda</synopsis><synopsis>kres <link linkend="poisson">poisson</link> klambda</synopsis><para/>
-<synopsis>ares <link linkend="rand">rand</link> xamp [, iseed] [, isel] [, ioffset]</synopsis><synopsis>kres <link linkend="rand">rand</link> xamp [, iseed] [, isel] [, ioffset]</synopsis><para/>
-<synopsis>ares <link linkend="randh">randh</link> xamp, xcps [, iseed] [, isize] [, ioffset]</synopsis><synopsis>kres <link linkend="randh">randh</link> kamp, kcps [, iseed] [, isize] [, ioffset]</synopsis><para/>
-<synopsis>ares <link linkend="randi">randi</link> xamp, xcps [, iseed] [, isize] [, ioffset]</synopsis><synopsis>kres <link linkend="randi">randi</link> kamp, kcps [, iseed] [, isize] [, ioffset]</synopsis><para/>
-<synopsis>ares <link linkend="random">random</link> kmin, kmax</synopsis><synopsis>ires <link linkend="random">random</link> imin, imax</synopsis><synopsis>kres <link linkend="random">random</link> kmin, kmax</synopsis><para/>
-<synopsis>ares <link linkend="randomh">randomh</link> kmin, kmax, acps</synopsis><synopsis>kres <link linkend="randomh">randomh</link> kmin, kmax, kcps</synopsis><para/>
-<synopsis>ares <link linkend="randomi">randomi</link> kmin, kmax, acps</synopsis><synopsis>kres <link linkend="randomi">randomi</link> kmin, kmax, kcps</synopsis><para/>
-<synopsis>ax <link linkend="rnd31">rnd31</link> kscl, krpow [, iseed]</synopsis><synopsis>ix <link linkend="rnd31">rnd31</link> iscl, irpow [, iseed]</synopsis><synopsis>kx <link linkend="rnd31">rnd31</link> kscl, krpow [, iseed]</synopsis><para/>
-<synopsis><link linkend="seed">seed</link> ival</synopsis><para/>
-<synopsis>kout <link linkend="trandom">trandom</link> ktrig, min, max</synopsis><para/>
-<synopsis>ares <link linkend="trirand">trirand</link> krange</synopsis><synopsis>ires <link linkend="trirand">trirand</link> krange</synopsis><synopsis>kres <link linkend="trirand">trirand</link> krange</synopsis><para/>
-<synopsis>ares <link linkend="unirand">unirand</link> krange</synopsis><synopsis>ires <link linkend="unirand">unirand</link> krange</synopsis><synopsis>kres <link linkend="unirand">unirand</link> krange</synopsis><para/>
-<synopsis>aout = <link linkend="urd">urd</link>(ktableNum)</synopsis><synopsis>iout = <link linkend="urd">urd</link>(itableNum)</synopsis><synopsis>kout = <link linkend="urd">urd</link>(ktableNum)</synopsis><para/>
-<synopsis>ares <link linkend="weibull">weibull</link> ksigma, ktau</synopsis><synopsis>ires <link linkend="weibull">weibull</link> ksigma, ktau</synopsis><synopsis>kres <link linkend="weibull">weibull</link> ksigma, ktau</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Sample Playback</title>
-<para>
-<para/>
-<synopsis>a1 <link linkend="bbcutm">bbcutm</link> asource, ibps, isubdiv, ibarlength, iphrasebars, inumrepeats \
- [, istutterspeed] [, istutterchance] [, ienvchoice ]</synopsis><para/>
-<synopsis>a1,a2 <link linkend="bbcuts">bbcuts</link> asource1, asource2, ibps, isubdiv, ibarlength, iphrasebars, \
- inumrepeats [, istutterspeed] [, istutterchance] [, ienvchoice]</synopsis><para/>
-<synopsis>asig <link linkend="flooper">flooper</link> kamp, kpitch, istart, idur, ifad, ifn</synopsis><para/>
-<synopsis>asig <link linkend="flooper2">flooper2</link> kamp, kpitch, kloopstart, kloopend, kcrossfade, ifn \
- [, istart, imode, ifenv, iskip]</synopsis><para/>
-<synopsis>ar1 [,ar2] <link linkend="loscil">loscil</link> xamp, kcps, ifn [, ibas] [, imod1] [, ibeg1] [, iend1] \
- [, imod2] [, ibeg2] [, iend2]</synopsis><para/>
-<synopsis>ar1 [,ar2] <link linkend="loscil3">loscil3</link> xamp, kcps, ifn [, ibas] [, imod1] [, ibeg1] [, iend1] \
- [, imod2] [, ibeg2] [, iend2]</synopsis><para/>
-<synopsis>ar1 [, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12, ar13, ar14, \
- ar15, ar16] <link linkend="loscilx">loscilx</link> xamp, kcps, ifn \
- [, iwsize, ibas, istrt, imod1, ibeg1, iend1]</synopsis><para/>
-<synopsis>ares <link linkend="lphasor">lphasor</link> xtrns [, ilps] [, ilpe] [, imode] [, istrt] [, istor]</synopsis><para/>
-<synopsis>ares <link linkend="lposcil">lposcil</link> kamp, kfreqratio, kloop, kend, ifn [, iphs]</synopsis><para/>
-<synopsis>ares <link linkend="lposcil3">lposcil3</link> kamp, kfreqratio, kloop, kend, ifn [, iphs]</synopsis><para/>
-<synopsis>ar <link linkend="lposcila">lposcila</link> aamp, kfreqratio, kloop, kend, ift [,iphs] </synopsis><para/>
-<synopsis>ar1, ar2 <link linkend="lposcilsa">lposcilsa</link> aamp, kfreqratio, kloop, kend, ift [,iphs] </synopsis><para/>
-<synopsis>ar1, ar2 <link linkend="lposcilsa2">lposcilsa2</link> aamp, kfreqratio, kloop, kend, ift [,iphs] </synopsis><para/>
-<synopsis><link linkend="sfilist">sfilist</link> ifilhandle</synopsis><para/>
-<synopsis>ar1, ar2 <link linkend="sfinstr">sfinstr</link> ivel, inotenum, xamp, xfreq, instrnum, ifilhandle \
- [, iflag] [, ioffset]</synopsis><para/>
-<synopsis>ar1, ar2 <link linkend="sfinstr3">sfinstr3</link> ivel, inotenum, xamp, xfreq, instrnum, ifilhandle \
- [, iflag] [, ioffset]</synopsis><para/>
-<synopsis>ares <link linkend="sfinstr3m">sfinstr3m</link> ivel, inotenum, xamp, xfreq, instrnum, ifilhandle \
- [, iflag] [, ioffset]</synopsis><para/>
-<synopsis>ares <link linkend="sfinstrm">sfinstrm</link> ivel, inotenum, xamp, xfreq, instrnum, ifilhandle \
- [, iflag] [, ioffset]</synopsis><para/>
-<synopsis>ir <link linkend="sfload">sfload</link> &quot;filename&quot;</synopsis><para/>
-<synopsis>ar1, ar2 <link linkend="sflooper">sflooper</link> ivel, inotenum, kamp, kpitch, ipreindex, kloopstart, kloopend, kcrossfade, ifn \
- [, istart, imode, ifenv, iskip] </synopsis><para/>
-<synopsis><link linkend="sfpassign">sfpassign</link> istartindex, ifilhandle[, imsgs]</synopsis><para/>
-<synopsis>ar1, ar2 <link linkend="sfplay">sfplay</link> ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset]</synopsis><para/>
-<synopsis>ar1, ar2 <link linkend="sfplay3">sfplay3</link> ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset]</synopsis><para/>
-<synopsis>ares <link linkend="sfplay3m">sfplay3m</link> ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset]</synopsis><para/>
-<synopsis>ares <link linkend="sfplaym">sfplaym</link> ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset]</synopsis><para/>
-<synopsis><link linkend="sfplist">sfplist</link> ifilhandle</synopsis><para/>
-<synopsis>ir <link linkend="sfpreset">sfpreset</link> iprog, ibank, ifilhandle, ipreindex</synopsis><para/>
-<synopsis>asig, krec <link linkend="sndloop">sndloop</link> ain, kpitch, ktrig, idur, ifad</synopsis><para/>
-<synopsis>ares <link linkend="waveset">waveset</link> ain, krep [, ilen]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Scanned Synthesis</title>
-<para>
-<para/>
-<synopsis><link linkend="scanhammer">scanhammer</link> isrc, idst, ipos, imult</synopsis><para/>
-<synopsis>ares <link linkend="scans">scans</link> kamp, kfreq, ifn, id [, iorder]</synopsis><para/>
-<synopsis>aout <link linkend="scantable">scantable</link> kamp, kpch, ipos, imass, istiff, idamp, ivel</synopsis><para/>
-<synopsis><link linkend="scanu">scanu</link> init, irate, ifnvel, ifnmass, ifnstif, ifncentr, ifndamp, kmass, \
- kstif, kcentr, kdamp, ileft, iright, kpos, kstrngth, ain, idisp, id</synopsis><para/>
-<synopsis>kpos, kvel <link linkend="xscanmap">xscanmap</link> iscan, kamp, kvamp [, iwhich]</synopsis><para/>
-<synopsis>ares <link linkend="xscans">xscans</link> kamp, kfreq, ifntraj, id [, iorder]</synopsis><para/>
-<synopsis><link linkend="xscansmap">xscansmap</link> kpos, kvel, iscan, kamp, kvamp [, iwhich]</synopsis><para/>
-<synopsis><link linkend="xscanu">xscanu</link> init, irate, ifnvel, ifnmass, ifnstif, ifncentr, ifndamp, kmass, \
- kstif, kcentr, kdamp, ileft, iright, kpos, kstrngth, ain, idisp, id</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Table Access</title>
-<para>
-<para/>
-<synopsis>kres <link linkend="oscil1">oscil1</link> idel, kamp, idur, ifn</synopsis><para/>
-<synopsis>kres <link linkend="oscil1i">oscil1i</link> idel, kamp, idur, ifn</synopsis><para/>
-<synopsis>ir <link linkend="tab">tab_i</link> indx, ifn[, ixmode]</synopsis><synopsis>kr <link linkend="tab">tab</link> kndx, ifn[, ixmode]</synopsis><synopsis>ar <link linkend="tab">tab</link> xndx, ifn[, ixmode]</synopsis><synopsis><link linkend="tab">tabw_i</link> isig, indx, ifn [,ixmode]</synopsis><synopsis><link linkend="tab">tabw</link> ksig, kndx, ifn [,ixmode]</synopsis><synopsis><link linkend="tab">tabw</link> asig, andx, ifn [,ixmode]</synopsis><para/>
-<synopsis>ares <link linkend="table">table</link> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <link linkend="table">table</link> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <link linkend="table">table</link> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><para/>
-<synopsis>ares <link linkend="table3">table3</link> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <link linkend="table3">table3</link> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <link linkend="table3">table3</link> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><para/>
-<synopsis>ares <link linkend="tablei">tablei</link> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <link linkend="tablei">tablei</link> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <link linkend="tablei">tablei</link> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Wave Terrain Synthesis</title>
-<para>
-<para/>
-<synopsis>aout <link linkend="wterrain">wterrain</link> kamp, kpch, k_xcenter, k_ycenter, k_xradius, k_yradius, \
- itabx, itaby</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Generators:Waveguide Physical Modeling</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="pluck">pluck</link> kamp, kcps, icps, ifn, imeth [, iparm1] [, iparm2]</synopsis><para/>
-<synopsis>ares <link linkend="repluck">repluck</link> iplk, kamp, icps, kpick, krefl, axcite</synopsis><para/>
-<synopsis>ares <link linkend="streson">streson</link> asig, kfr, ifdbgain</synopsis><para/>
-<synopsis>ares <link linkend="wgbow">wgbow</link> kamp, kfreq, kpres, krat, kvibf, kvamp, ifn [, iminfreq]</synopsis><para/>
-<synopsis>ares <link linkend="wgbowedbar">wgbowedbar</link> kamp, kfreq, kpos, kbowpres, kgain [, iconst] [, itvel] \
- [, ibowpos] [, ilow]</synopsis><para/>
-<synopsis>ares <link linkend="wgbrass">wgbrass</link> kamp, kfreq, ktens, iatt, kvibf, kvamp, ifn [, iminfreq]</synopsis><para/>
-<synopsis>ares <link linkend="wgclar">wgclar</link> kamp, kfreq, kstiff, iatt, idetk, kngain, kvibf, kvamp, ifn \
- [, iminfreq]</synopsis><para/>
-<synopsis>ares <link linkend="wgflute">wgflute</link> kamp, kfreq, kjet, iatt, idetk, kngain, kvibf, kvamp, ifn \
- [, iminfreq] [, ijetrf] [, iendrf]</synopsis><para/>
-<synopsis>ares <link linkend="wgpluck">wgpluck</link> icps, iamp, kpick, iplk, idamp, ifilt, axcite</synopsis><para/>
-<synopsis>ares <link linkend="wgpluck2">wgpluck2</link> iplk, kamp, icps, kpick, krefl</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal I/O:File I/O</title>
-<para>
-<para/>
-<synopsis><link linkend="dumpk">dumpk</link> ksig, ifilname, iformat, iprd</synopsis><para/>
-<synopsis><link linkend="dumpk2">dumpk2</link> ksig1, ksig2, ifilname, iformat, iprd</synopsis><para/>
-<synopsis><link linkend="dumpk3">dumpk3</link> ksig1, ksig2, ksig3, ifilname, iformat, iprd</synopsis><para/>
-<synopsis><link linkend="dumpk4">dumpk4</link> ksig1, ksig2, ksig3, ksig4, ifilname, iformat, iprd</synopsis><para/>
-<synopsis><link linkend="ficlose">ficlose</link> ihandle</synopsis><synopsis><link linkend="ficlose">ficlose</link> Sfilename</synopsis><para/>
-<synopsis><link linkend="fin">fin</link> ifilename, iskipframes, iformat, ain1 [, ain2] [, ain3] [,...]</synopsis><para/>
-<synopsis><link linkend="fini">fini</link> ifilename, iskipframes, iformat, in1 [, in2] [, in3] [, ...]</synopsis><para/>
-<synopsis><link linkend="fink">fink</link> ifilename, iskipframes, iformat, kin1 [, kin2] [, kin3] [,...]</synopsis><para/>
-<synopsis>ihandle <link linkend="fiopen">fiopen</link> ifilename, imode</synopsis><para/>
-<synopsis><link linkend="fout">fout</link> ifilename, iformat, aout1 [, aout2, aout3,...,aoutN]</synopsis><para/>
-<synopsis><link linkend="fouti">fouti</link> ihandle, iformat, iflag, iout1 [, iout2, iout3,....,ioutN]</synopsis><para/>
-<synopsis><link linkend="foutir">foutir</link> ihandle, iformat, iflag, iout1 [, iout2, iout3,....,ioutN]</synopsis><para/>
-<synopsis><link linkend="foutk">foutk</link> ifilename, iformat, kout1 [, kout2, kout3,....,koutN]</synopsis><para/>
-<synopsis><link linkend="fprintks">fprintks</link> &quot;filename&quot;, &quot;string&quot;, [, kval1] [, kval2] [...]</synopsis><para/>
-<synopsis><link linkend="fprints">fprints</link> &quot;filename&quot;, &quot;string&quot; [, ival1] [, ival2] [...]</synopsis><para/>
-<synopsis>kres <link linkend="readk">readk</link> ifilname, iformat, iprd</synopsis><para/>
-<synopsis>kr1, kr2 <link linkend="readk2">readk2</link> ifilname, iformat, iprd</synopsis><para/>
-<synopsis>kr1, kr2, kr3 <link linkend="readk3">readk3</link> ifilname, iformat, iprd</synopsis><para/>
-<synopsis>kr1, kr2, kr3, kr4 <link linkend="readk4">readk4</link> ifilname, iformat, iprd</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal I/O:Signal Input</title>
-<para>
-<para/>
-<synopsis>ar1 [, ar2 [, ar3 [, ... ar24]]] <link linkend="diskin">diskin</link> ifilcod, kpitch [, iskiptim] \
- [, iwraparound] [, iformat] [, iskipinit]</synopsis><para/>
-<synopsis>a1[, a2[, ... a24]] <link linkend="diskin2">diskin2</link> ifilcod, kpitch[, iskiptim \
- [, iwrap[, iformat [, iwsize[, ibufsize[, iskipinit]]]]]]</synopsis><para/>
-<synopsis>ar1 <link linkend="in">in</link>&#160;</synopsis><para/>
-<synopsis>ar1 <link linkend="inch">inch</link> ksig1</synopsis><para/>
-<synopsis>ar1, ar2 <link linkend="ins">ins</link>&#160;</synopsis><para/>
-<synopsis>kvalue <link linkend="invalue">invalue</link> &quot;channel name&quot;</synopsis><synopsis>Sname <link linkend="invalue">invalue</link> &quot;channel name&quot;</synopsis><para/>
-<synopsis><link linkend="inz">inz</link> ksig1</synopsis><para/>
-<synopsis>ar1[, ar2[, ar3[, ... a24]]] <link linkend="soundin">soundin</link> ifilcod [, iskptim] [, iformat] \
- [, iskipinit] [, ibufsize]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal I/O:Signal Output</title>
-<para>
-<para/>
-<synopsis><link linkend="mdelay">mdelay</link> kstatus, kchan, kd1, kd2, kdelay</synopsis><para/>
-<synopsis>aout1 [,aout2 ... aoutX] <link linkend="monitor">monitor</link>&#160;</synopsis><para/>
-<synopsis><link linkend="out">out</link> asig</synopsis><para/>
-<synopsis><link linkend="outc">outc</link> asig1 [, asig2] [...]</synopsis><para/>
-<synopsis><link linkend="outch">outch</link> ksig1, asig1 [, ksig2] [, asig2] [...]</synopsis><para/>
-<synopsis><link linkend="outs">outs</link> asig1, asig2</synopsis><para/>
-<synopsis><link linkend="outs1">outs1</link> asig</synopsis><para/>
-<synopsis><link linkend="outs2">outs2</link> asig</synopsis><para/>
-<synopsis><link linkend="outvalue">outvalue</link> &quot;channel name&quot;, kvalue</synopsis><synopsis><link linkend="outvalue">outvalue</link> &quot;channel name&quot;, &quot;string&quot;</synopsis><para/>
-<synopsis><link linkend="outz">outz</link> ksig1</synopsis><para/>
-<synopsis><link linkend="soundout">soundout</link> asig1, ifilcod [, iformat]</synopsis><para/>
-<synopsis><link linkend="soundouts">soundouts</link> asigl, asigr, ifilcod [, iformat]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal I/O:Software Bus</title>
-<para>
-<para/>
-<synopsis>kval <link linkend="chani">chani</link> kchan</synopsis><synopsis>aval <link linkend="chani">chani</link> kchan</synopsis><para/>
-<synopsis><link linkend="chano">chano</link> kval, kchan</synopsis><synopsis><link linkend="chano">chano</link> aval, kchan</synopsis><para/>
-<synopsis> <link linkend="chn">chn_k</link> Sname, imode[, itype, idflt, imin, imax]</synopsis><synopsis> <link linkend="chn">chn_a</link> Sname, imode</synopsis><synopsis> <link linkend="chn">chn_S</link> Sname, imode</synopsis><para/>
-<synopsis><link linkend="chnclear">chnclear</link> Sname</synopsis><para/>
-<synopsis>gival <link linkend="chnexport">chnexport</link> Sname, imode[, itype, idflt, imin, imax]</synopsis><synopsis>gkval <link linkend="chnexport">chnexport</link> Sname, imode[, itype, idflt, imin, imax]</synopsis><synopsis>gaval <link linkend="chnexport">chnexport</link> Sname, imode</synopsis><synopsis>gSval <link linkend="chnexport">chnexport</link> Sname, imode</synopsis><para/>
-<synopsis>ival <link linkend="chnget">chnget</link> Sname</synopsis><synopsis>kval <link linkend="chnget">chnget</link> Sname</synopsis><synopsis>aval <link linkend="chnget">chnget</link> Sname</synopsis><synopsis>Sval <link linkend="chnget">chnget</link> Sname</synopsis><para/>
-<synopsis><link linkend="chnmix">chnmix</link> aval, Sname</synopsis><para/>
-<synopsis>itype, imode, ictltype, idflt, imin, imax <link linkend="chnparams">chnparams</link>&#160;</synopsis><para/>
-<synopsis><link linkend="chnset">chnset</link> ival, Sname</synopsis><synopsis><link linkend="chnset">chnset</link> kval, Sname</synopsis><synopsis><link linkend="chnset">chnset</link> aval, Sname</synopsis><synopsis><link linkend="chnset">chnset</link> Sval, Sname</synopsis><para/>
-<synopsis><link linkend="setksmps">setksmps</link> iksmps</synopsis><para/>
-<synopsis>xinarg1 [, xinarg2] ... [xinargN] <link linkend="xin">xin</link>&#160;</synopsis><para/>
-<synopsis><link linkend="xout">xout</link> xoutarg1 [, xoutarg2] ... [, xoutargN]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal I/O:Printing and Display</title>
-<para>
-<para/>
-<synopsis><link linkend="dispfft">dispfft</link> xsig, iprd, iwsiz [, iwtyp] [, idbout] [, iwtflg]</synopsis><para/>
-<synopsis><link linkend="display">display</link> xsig, iprd [, inprds] [, iwtflg]</synopsis><para/>
-<synopsis><link linkend="print">print</link> iarg [, iarg1] [, iarg2] [...]</synopsis><para/>
-<synopsis><link linkend="printf">printf_i</link> Sfmt, itrig, [xarg1[, xarg2[, ... ]]]</synopsis><synopsis><link linkend="printf">printf</link> Sfmt, ktrig, [xarg1[, xarg2[, ... ]]]</synopsis><para/>
-<synopsis><link linkend="printk">printk</link> itime, kval [, ispace]</synopsis><para/>
-<synopsis><link linkend="printk2">printk2</link> kvar [, inumspaces]</synopsis><para/>
-<synopsis><link linkend="printks">printks</link> &quot;string&quot;, itime [, kval1] [, kval2] [...]</synopsis><para/>
-<synopsis><link linkend="prints">prints</link> &quot;string&quot; [, kval1] [, kval2] [...]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal I/O:Soundfile Queries</title>
-<para>
-<para/>
-<synopsis>ir <link linkend="filelen">filelen</link> ifilcod, [iallowraw]</synopsis><para/>
-<synopsis>ir <link linkend="filenchnls">filenchnls</link> ifilcod [, iallowraw]</synopsis><para/>
-<synopsis>ir <link linkend="filepeak">filepeak</link> ifilcod [, ichnl]</synopsis><para/>
-<synopsis>ir <link linkend="filesr">filesr</link> ifilcod [, iallowraw]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Amplitude Modifiers</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="balance">balance</link> asig, acomp [, ihp] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="clip">clip</link> asig, imeth, ilimit [, iarg]</synopsis><para/>
-<synopsis>ar <link linkend="compress">compress</link> aasig, acsig, kthresh, kloknee, khiknee, kratio, katt, krel, ilook</synopsis><para/>
-<synopsis>ares <link linkend="dam">dam</link> asig, kthreshold, icomp1, icomp2, irtime, iftime</synopsis><para/>
-<synopsis>ares <link linkend="gain">gain</link> asig, krms [, ihp] [, iskip]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Convolution and Morphing</title>
-<para>
-<para/>
-<synopsis>ar1 [, ar2] [, ar3] [, ar4] <link linkend="convolve">convolve</link> ain, ifilcod [, ichannel]</synopsis><para/>
-<synopsis>ares <link linkend="cross2">cross2</link> ain1, ain2, isize, ioverlap, iwin, kbias</synopsis><para/>
-<synopsis>ares <link linkend="dconv">dconv</link> asig, isize, ifn</synopsis><para/>
-<synopsis>a1[, a2[, a3[, ... a8]]] <link linkend="ftconv">ftconv</link> ain, ift, iplen[, iskipsamples \
- [, iirlen[, iskipinit]]]</synopsis><para/>
-<synopsis><link linkend="ftmorf">ftmorf</link> kftndx, iftfn, iresfn</synopsis><para/>
-<synopsis>ar1 [, ar2] [, ar3] [, ar4] <link linkend="pconvolve">pconvolve</link> ain, ifilcod [, ipartitionsize, ichannel]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Delay</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="delay">delay</link> asig, idlt [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="delay1">delay1</link> asig [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="delayr">delayr</link> idlt [, iskip]</synopsis><para/>
-<synopsis><link linkend="delayw">delayw</link> asig</synopsis><para/>
-<synopsis>ares <link linkend="deltap">deltap</link> kdlt</synopsis><para/>
-<synopsis>ares <link linkend="deltap3">deltap3</link> xdlt</synopsis><para/>
-<synopsis>ares <link linkend="deltapi">deltapi</link> xdlt</synopsis><para/>
-<synopsis>ares <link linkend="deltapn">deltapn</link> xnumsamps</synopsis><para/>
-<synopsis>aout <link linkend="deltapx">deltapx</link> adel, iwsize</synopsis><para/>
-<synopsis><link linkend="deltapxw">deltapxw</link> ain, adel, iwsize</synopsis><para/>
-<synopsis>ares <link linkend="multitap">multitap</link> asig [, itime1] [, igain1] [, itime2] [, igain2] [...]</synopsis><para/>
-<synopsis>ares <link linkend="vdelay">vdelay</link> asig, adel, imaxdel [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="vdelay3">vdelay3</link> asig, adel, imaxdel [, iskip]</synopsis><para/>
-<synopsis>aout <link linkend="vdelayx">vdelayx</link> ain, adl, imd, iws [, ist]</synopsis><para/>
-<synopsis>aout1, aout2, aout3, aout4 <link linkend="vdelayxq">vdelayxq</link> ain1, ain2, ain3, ain4, adl, imd, iws [, ist]</synopsis><para/>
-<synopsis>aout1, aout2 <link linkend="vdelayxs">vdelayxs</link> ain1, ain2, adl, imd, iws [, ist]</synopsis><para/>
-<synopsis>aout <link linkend="vdelayxw">vdelayxw</link> ain, adl, imd, iws [, ist]</synopsis><para/>
-<synopsis>aout1, aout2, aout3, aout4 <link linkend="vdelayxwq">vdelayxwq</link> ain1, ain2, ain3, ain4, adl, \
- imd, iws [, ist]</synopsis><para/>
-<synopsis>aout1, aout2 <link linkend="vdelayxws">vdelayxws</link> ain1, ain2, adl, imd, iws [, ist]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Panning and Spatialization</title>
-<para>
-<para/>
-<synopsis>aleft, aright <link linkend="hrtfmove">hrtfmove</link> asrc, kAz, kElev, ifilel, ifiler [, imode, ifade, isr]</synopsis><para/>
-<synopsis>aleft, aright <link linkend="hrtfmove2">hrtfmove2</link> asrc, kAz, kElev, ifilel, ifiler [,ioverlap, iradius, isr]</synopsis><para/>
-<synopsis>
- aleft, aright <link linkend="hrtfstat">hrtfstat</link> asrc, iAz, iElev, ifilel, ifiler [,iradius, isr]
- </synopsis><para/>
-<synopsis>a1, a2 <link linkend="locsend">locsend</link>&#160;</synopsis><synopsis>a1, a2, a3, a4 <link linkend="locsend">locsend</link>&#160;</synopsis><para/>
-<synopsis>a1, a2 <link linkend="locsig">locsig</link> asig, kdegree, kdistance, kreverbsend</synopsis><synopsis>a1, a2, a3, a4 <link linkend="locsig">locsig</link> asig, kdegree, kdistance, kreverbsend</synopsis><para/>
-<synopsis>a1, a2, a3, a4 <link linkend="pan">pan</link> asig, kx, ky, ifn [, imode] [, ioffset]</synopsis><para/>
-<synopsis>a1, a2 <link linkend="pan2">pan2</link> asig, xp [, imode]</synopsis><para/>
-<synopsis>a1, a2, a3, a4 <link linkend="space">space</link> asig, ifn, ktime, kreverbsend, kx, ky</synopsis><para/>
-<synopsis>k1 <link linkend="spdist">spdist</link> ifn, ktime, kx, ky</synopsis><para/>
-<synopsis>a1, a2, a3, a4 <link linkend="spsend">spsend</link>&#160;</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Reverberation</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="alpass">alpass</link> asig, krvt, ilpt [, iskip] [, insmps]</synopsis><para/>
-<synopsis>ares <link linkend="comb">comb</link> asig, krvt, ilpt [, iskip] [, insmps]</synopsis><para/>
-<synopsis>aoutL, aoutR <link linkend="freeverb">freeverb</link> ainL, ainR, kRoomSize, kHFDamp[, iSRate[, iSkip]] </synopsis><para/>
-<synopsis>ares <link linkend="nestedap">nestedap</link> asig, imode, imaxdel, idel1, igain1 [, idel2] [, igain2] \
- [, idel3] [, igain3] [, istor]</synopsis><para/>
-<synopsis>ares <link linkend="nreverb">nreverb</link> asig, ktime, khdif [, iskip] [,inumCombs] [, ifnCombs] \
- [, inumAlpas] [, ifnAlpas]</synopsis><para/>
-<synopsis>ares <link linkend="reverb">reverb</link> asig, krvt [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="reverb2">reverb2</link> asig, ktime, khdif [, iskip] [,inumCombs] \
- [, ifnCombs] [, inumAlpas] [, ifnAlpas]</synopsis><para/>
-<synopsis>aoutL, aoutR <link linkend="reverbsc">reverbsc</link> ainL, ainR, kfblvl, kfco[, israte[, ipitchm[, iskip]]] </synopsis><para/>
-<synopsis>ares <link linkend="valpass">valpass</link> asig, krvt, xlpt, imaxlpt [, iskip] [, insmps]</synopsis><para/>
-<synopsis>ares <link linkend="vcomb">vcomb</link> asig, krvt, xlpt, imaxlpt [, iskip] [, insmps]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Sample Level Operators</title>
-<para>
-<para/>
-<synopsis><link linkend="denorm">denorm</link> a1[, a2[, a3[, ... ]]]</synopsis><para/>
-<synopsis>ares <link linkend="diff">diff</link> asig [, iskip]</synopsis><synopsis>kres <link linkend="diff">diff</link> ksig [, iskip]</synopsis><para/>
-<synopsis>kres <link linkend="downsamp">downsamp</link> asig [, iwlen]</synopsis><para/>
-<synopsis>ares <link linkend="fold">fold</link> asig, kincr</synopsis><para/>
-<synopsis>ares <link linkend="integ">integ</link> asig [, iskip]</synopsis><synopsis>kres <link linkend="integ">integ</link> ksig [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="interp">interp</link> ksig [, iskip] [, imode]</synopsis><para/>
-<synopsis>ares <link linkend="ntrpol">ntrpol</link> asig1, asig2, kpoint [, imin] [, imax]</synopsis><synopsis>ires <link linkend="ntrpol">ntrpol</link> isig1, isig2, ipoint [, imin] [, imax]</synopsis><synopsis>kres <link linkend="ntrpol">ntrpol</link> ksig1, ksig2, kpoint [, imin] [, imax]</synopsis><para/>
-<synopsis><link linkend="opa">a</link>(x) (control-rate args only)</synopsis><para/>
-<synopsis><link linkend="opi">i</link>(x) (control-rate args only)</synopsis><para/>
-<synopsis><link linkend="opk">k</link>(x) (i-rate args only)</synopsis><para/>
-<synopsis>ares <link linkend="samphold">samphold</link> asig, agate [, ival] [, ivstor]</synopsis><synopsis>kres <link linkend="samphold">samphold</link> ksig, kgate [, ival] [, ivstor]</synopsis><para/>
-<synopsis>ares <link linkend="upsamp">upsamp</link> ksig</synopsis><para/>
-<synopsis>kval <link linkend="vaget">vaget</link> kndx, avar</synopsis><para/>
-<synopsis><link linkend="vaset">vaset</link> kval, kndx, avar</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Signal Limiters</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="limit">limit</link> asig, klow, khigh</synopsis><synopsis>ires <link linkend="limit">limit</link> isig, ilow, ihigh</synopsis><synopsis>kres <link linkend="limit">limit</link> ksig, klow, khigh</synopsis><para/>
-<synopsis>ares <link linkend="mirror">mirror</link> asig, klow, khigh</synopsis><synopsis>ires <link linkend="mirror">mirror</link> isig, ilow, ihigh</synopsis><synopsis>kres <link linkend="mirror">mirror</link> ksig, klow, khigh</synopsis><para/>
-<synopsis>ares <link linkend="wrap">wrap</link> asig, klow, khigh</synopsis><synopsis>ires <link linkend="wrap">wrap</link> isig, ilow, ihigh</synopsis><synopsis>kres <link linkend="wrap">wrap</link> ksig, klow, khigh</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Special Effects</title>
-<para>
-<para/>
-<synopsis>ar <link linkend="distort">distort</link> asig, kdist, ifn[, ihp, istor]</synopsis><para/>
-<synopsis>ares <link linkend="distort1">distort1</link> asig, kpregain, kpostgain, kshape1, kshape2[, imode]</synopsis><para/>
-<synopsis>ares <link linkend="flanger">flanger</link> asig, adel, kfeedback [, imaxd]</synopsis><para/>
-<synopsis>ares <link linkend="harmon">harmon</link> asig, kestfrq, kmaxvar, kgenfreq1, kgenfreq2, imode, \
- iminfrq, iprd</synopsis><para/>
-<synopsis>ares <link linkend="harmon2">harmon2</link> asig, koct, kfrq1, kfrq2, icpsmode, ilowest[, ipolarity]</synopsis><synopsis>ares <link linkend="harmon2">harmon3</link> asig, koct, kfrq1, \
- kfrq2, kfrq3, icpsmode, ilowest[, ipolarity]</synopsis><synopsis>ares <link linkend="harmon2">harmon4</link> asig, koct, kfrq1, \
- kfrq2, kfrq3, kfrq4, icpsmode, ilowest[, ipolarity]</synopsis><para/>
-<synopsis>ares <link linkend="phaser1">phaser1</link> asig, kfreq, kord, kfeedback [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="phaser2">phaser2</link> asig, kfreq, kq, kord, kmode, ksep, kfeedback</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Standard Filters</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="atone">atone</link> asig, khp [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="atonex">atonex</link> asig, khp [, inumlayer] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="biquad">biquad</link> asig, kb0, kb1, kb2, ka0, ka1, ka2 [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="biquada">biquada</link> asig, ab0, ab1, ab2, aa0, aa1, aa2 [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butbp">butbp</link> asig, kfreq, kband [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butbr">butbr</link> asig, kfreq, kband [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="buthp">buthp</link> asig, kfreq [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butlp">butlp</link> asig, kfreq [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butterbp">butterbp</link> asig, kfreq, kband [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butterbr">butterbr</link> asig, kfreq, kband [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butterhp">butterhp</link> asig, kfreq [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="butterlp">butterlp</link> asig, kfreq [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="clfilt">clfilt</link> asig, kfreq, itype, inpol [, ikind] [, ipbr] [, isba] [, iskip]</synopsis><para/>
-<synopsis>aout <link linkend="mode">mode</link> ain, kfreq, kQ [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="tone">tone</link> asig, khp [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="tonex">tonex</link> asig, khp [, inumlayer] [, iskip]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Standard Filters:Resonant</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="areson">areson</link> asig, kcf, kbw [, iscl] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="bqrez">bqrez</link> asig, xfco, xres [, imode] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="lowpass2">lowpass2</link> asig, kcf, kq [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="lowres">lowres</link> asig, kcutoff, kresonance [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="lowresx">lowresx</link> asig, kcutoff, kresonance [, inumlayer] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="lpf18">lpf18</link> asig, kfco, kres, kdist</synopsis><para/>
-<synopsis>asig <link linkend="moogladder">moogladder</link> ain, kcf, kres[, istor]</synopsis><para/>
-<synopsis>ares <link linkend="moogvcf">moogvcf</link> asig, xfco, xres [,iscale, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="moogvcf2">moogvcf2</link> asig, xfco, xres [,iscale, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="reson">reson</link> asig, kcf, kbw [, iscl] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="resonr">resonr</link> asig, kcf, kbw [, iscl] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="resonx">resonx</link> asig, kcf, kbw [, inumlayer] [, iscl] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="resony">resony</link> asig, kbf, kbw, inum, ksep [, isepmode] [, iscl] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="resonz">resonz</link> asig, kcf, kbw [, iscl] [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="rezzy">rezzy</link> asig, xfco, xres [, imode, iskip]</synopsis><para/>
-<synopsis>ahp,alp,abp,abr <link linkend="statevar">statevar</link> ain, kcf, kq [, iosamps, istor]</synopsis><para/>
-<synopsis>alow, ahigh, aband <link linkend="svfilter">svfilter</link> asig, kcf, kq [, iscl]</synopsis><para/>
-<synopsis>ares <link linkend="tbvcf">tbvcf</link> asig, xfco, xres, kdist, kasym [, iskip]</synopsis><para/>
-<synopsis>ares <link linkend="vlowres">vlowres</link> asig, kfco, kres, iord, ksep</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Standard Filters:Control</title>
-<para>
-<para/>
-<synopsis>kres <link linkend="aresonk">aresonk</link> ksig, kcf, kbw [, iscl] [, iskip]</synopsis><para/>
-<synopsis>kres <link linkend="atonek">atonek</link> ksig, khp [, iskip]</synopsis><para/>
-<synopsis>kres <link linkend="lineto">lineto</link> ksig, ktime</synopsis><para/>
-<synopsis>kres <link linkend="port">port</link> ksig, ihtim [, isig]</synopsis><para/>
-<synopsis>kres <link linkend="portk">portk</link> ksig, khtim [, isig]</synopsis><para/>
-<synopsis>kres <link linkend="resonk">resonk</link> ksig, kcf, kbw [, iscl] [, iskip]</synopsis><para/>
-<synopsis>kres <link linkend="resonxk">resonxk</link> ksig, kcf, kbw[, inumlayer, iscl, istor]</synopsis><para/>
-<synopsis>kres <link linkend="tlineto">tlineto</link> ksig, ktime, ktrig</synopsis><para/>
-<synopsis>kres <link linkend="tonek">tonek</link> ksig, khp [, iskip]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Specialized Filters</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="dcblock">dcblock</link> ain [, igain]</synopsis><para/>
-<synopsis>asig <link linkend="eqfil">eqfil</link> ain, kcf, kbw, kgain[, istor]</synopsis><para/>
-<synopsis>ares <link linkend="filter2">filter2</link> asig, iM, iN, ib0, ib1, ..., ibM, ia1, ia2, ..., iaN</synopsis><synopsis>kres <link linkend="filter2">filter2</link> ksig, iM, iN, ib0, ib1, ..., ibM, ia1, ia2, ..., iaN</synopsis><para/>
-<synopsis>asig <link linkend="fofilter">fofilter</link> ain, kcf, kris, kdec[, istor]</synopsis><para/>
-<synopsis>ar1, ar2 <link linkend="hilbert">hilbert</link> asig</synopsis><para/>
-<synopsis>ares <link linkend="nlfilt">nlfilt</link> ain, ka, kb, kd, kC, kL</synopsis><para/>
-<synopsis>ares <link linkend="pareq">pareq</link> asig, kc, kv, kq [, imode] [, iskip]</synopsis><para/>
-<synopsis>ar <link linkend="rbjeq">rbjeq</link> asig, kfco, klvl, kQ, kS[, imode]</synopsis><para/>
-<synopsis>ares <link linkend="zfilter2">zfilter2</link> asig, kdamp, kfreq, iM, iN, ib0, ib1, ..., ibM, \
- ia1,ia2, ..., iaN</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Waveguides</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="wguide1">wguide1</link> asig, xfreq, kcutoff, kfeedback</synopsis><para/>
-<synopsis>ares <link linkend="wguide2">wguide2</link> asig, xfreq1, xfreq2, kcutoff1, kcutoff2, \
- kfeedback1, kfeedback2</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Waveshaping</title>
-<para>
-<para/>
-<synopsis>aout <link linkend="chebyshevpoly">chebyshevpoly</link> ain, k0 [, k1 [, k2 [...]]]</synopsis><para/>
-<synopsis>aout <link linkend="pdclip">pdclip</link> ain, kWidth, kCenter [, ibipolar [, ifullscale]]</synopsis><para/>
-<synopsis>aout <link linkend="pdhalf">pdhalf</link> ain, kShapeAmount [, ibipolar [, ifullscale]]</synopsis><para/>
-<synopsis>aout <link linkend="pdhalfy">pdhalfy</link> ain, kShapeAmount [, ibipolar [, ifullscale]]</synopsis><para/>
-<synopsis>aout <link linkend="powershape">powershape</link> ain, kShapeAmount [, ifullscale]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Signal Modifiers:Comparators and Accumulators</title>
-<para>
-<para/>
-<synopsis>amax <link linkend="max">max</link> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmax <link linkend="max">max</link> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis><para/>
-<synopsis>knumkout <link linkend="max_k">max_k</link> asig, ktrig, itype</synopsis><para/>
-<synopsis>amax <link linkend="maxabs">maxabs</link> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmax <link linkend="maxabs">maxabs</link> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis><para/>
-<synopsis><link linkend="maxabsaccum">maxabsaccum</link> aAccumulator, aInput</synopsis><para/>
-<synopsis><link linkend="maxaccum">maxaccum</link> aAccumulator, aInput</synopsis><para/>
-<synopsis>amin <link linkend="min">min</link> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmin <link linkend="min">min</link> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis><para/>
-<synopsis>amin <link linkend="minabs">minabs</link> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmin <link linkend="minabs">minabs</link> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis><para/>
-<synopsis><link linkend="minabsaccum">minabsaccum</link> aAccumulator, aInput</synopsis><para/>
-<synopsis><link linkend="minaccum">minaccum</link> aAccumulator, aInput</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Instrument Control:Clock Control</title>
-<para>
-<para/>
-<synopsis><link linkend="clockoff">clockoff</link> inum</synopsis><para/>
-<synopsis><link linkend="clockon">clockon</link> inum</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Instrument Control:Duration Control</title>
-<para>
-<para/>
-<synopsis><link linkend="ihold">ihold</link>&#160;</synopsis><para/>
-<synopsis><link linkend="turnoff">turnoff</link>&#160;</synopsis><para/>
-<synopsis><link linkend="turnoff2">turnoff2</link> kinsno, kmode, krelease
- </synopsis><para/>
-<synopsis><link linkend="turnon">turnon</link> insnum [, itime]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Instrument Control:Invocation</title>
-<para>
-<para/>
-<synopsis><link linkend="event">event</link> &quot;scorechar&quot;, kinsnum, kdelay, kdur, [, kp4] [, kp5] [, ...]</synopsis><synopsis><link linkend="event">event</link> &quot;scorechar&quot;, &quot;insname&quot;, kdelay, kdur, [, kp4] [, kp5] [, ...]</synopsis><para/>
-<synopsis><link linkend="event_i">event_i</link> &quot;scorechar&quot;, iinsnum, idelay, idur, [, ip4] [, ip5] [, ...]</synopsis><synopsis><link linkend="event_i">event</link> &quot;scorechar&quot;, &quot;insname&quot;, idelay, idur, [, ip4] [, ip5] [, ...]</synopsis><para/>
-<synopsis><link linkend="mute">mute</link> insnum [, iswitch]</synopsis><synopsis><link linkend="mute">mute</link> &quot;insname&quot; [, iswitch]</synopsis><para/>
-<synopsis><link linkend="remove">remove</link> insnum</synopsis><para/>
-<synopsis><link linkend="schedkwhen">schedkwhen</link> ktrigger, kmintim, kmaxnum, kinsnum, kwhen, kdur \
- [, ip4] [, ip5] [...]</synopsis><synopsis><link linkend="schedkwhen">schedkwhen</link> ktrigger, kmintim, kmaxnum, &quot;insname&quot;, kwhen, kdur \
- [, ip4] [, ip5] [...]</synopsis><para/>
-<synopsis><link linkend="schedkwhennamed">schedkwhennamed</link> ktrigger, kmintim, kmaxnum, &quot;name&quot;, kwhen, kdur \
- [, ip4] [, ip5] [...]</synopsis><para/>
-<synopsis><link linkend="schedule">schedule</link> insnum, iwhen, idur [, ip4] [, ip5] [...]</synopsis><synopsis><link linkend="schedule">schedule</link> &quot;insname&quot;, iwhen, idur [, ip4] [, ip5] [...]</synopsis><para/>
-<synopsis><link linkend="schedwhen">schedwhen</link> ktrigger, kinsnum, kwhen, kdur [, ip4] [, ip5] [...]</synopsis><synopsis><link linkend="schedwhen">schedwhen</link> ktrigger, &quot;insname&quot;, kwhen, kdur [, ip4] [, ip5] [...]</synopsis><para/>
-<synopsis><link linkend="scoreline">scoreline</link> Sin, ktring</synopsis><para/>
-<synopsis><link linkend="scoreline_i">scoreline_i</link> Sin</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Instrument Control:Program Flow Control</title>
-<para>
-<para/>
-<synopsis><link linkend="cggoto">cggoto</link> condition, label</synopsis><para/>
-<synopsis><link linkend="cigoto">cigoto</link> condition, label</synopsis><para/>
-<synopsis><link linkend="ckgoto">ckgoto</link> condition, label</synopsis><para/>
-<synopsis><link linkend="cngoto">cngoto</link> condition, label</synopsis><para/>
-<synopsis><link linkend="goto">goto</link> label</synopsis><para/>
-<synopsis><link linkend="igoto">igoto</link> label</synopsis><para/>
-<synopsis><link linkend="kgoto">kgoto</link> label</synopsis><para/>
-<synopsis><link linkend="tigoto">tigoto</link> label</synopsis><para/>
-<synopsis><link linkend="timout">timout</link> istrt, idur, label</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Instrument Control:Realtime Performance Control</title>
-<para>
-<para/>
-<synopsis>ir <link linkend="active">active</link> insnum</synopsis><synopsis>kres <link linkend="active">active</link> kinsnum</synopsis><para/>
-<synopsis><link linkend="cpuprc">cpuprc</link> insnum, ipercent</synopsis><para/>
-<synopsis> <link linkend="exitnow">exitnow</link>&#160;</synopsis><para/>
-<synopsis><link linkend="maxalloc">maxalloc</link> insnum, icount</synopsis><para/>
-<synopsis><link linkend="prealloc">prealloc</link> insnum, icount</synopsis><synopsis><link linkend="prealloc">prealloc</link> &quot;insname&quot;, icount</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Instrument Control:Initialization and Reinitialization</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="init">init</link> iarg</synopsis><synopsis>ires <link linkend="init">init</link> iarg</synopsis><synopsis>kres <link linkend="init">init</link> iarg</synopsis><para/>
-<synopsis>insno <link linkend="nstrnum">nstrnum</link> &quot;name&quot;</synopsis><para/>
-<synopsis><link linkend="p">p</link>(x) </synopsis><para/>
-<synopsis><link linkend="pset">pset</link> icon1 [, icon2] [...]</synopsis><para/>
-<synopsis><link linkend="reinit">reinit</link> label</synopsis><para/>
-<synopsis><link linkend="rigoto">rigoto</link> label</synopsis><para/>
-<synopsis><link linkend="rireturn">rireturn</link>&#160;</synopsis><para/>
-<synopsis>ir <link linkend="tival">tival</link>&#160;</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Instrument Control:Sensing and Control</title>
-<para>
-<para/>
-<synopsis>ktrig <link linkend="changed">changed</link> kvar1 [, kvar2,..., kvarN]</synopsis><para/>
-<synopsis>ares <link linkend="follow">follow</link> asig, idt</synopsis><para/>
-<synopsis>ares <link linkend="follow2">follow2</link> asig, katt, krel</synopsis><para/>
-<synopsis>Svalue <link linkend="getcfg">getcfg</link> iopt</synopsis><para/>
-<synopsis>ktrig <link linkend="metro">metro</link> kfreq [, initphase]</synopsis><para/>
-<synopsis>ksig <link linkend="miditempo">miditempo</link>&#160;</synopsis><para/>
-<synopsis>icount <link linkend="pcount">pcount</link>&#160;</synopsis><para/>
-<synopsis>kres <link linkend="peak">peak</link> asig</synopsis><synopsis>kres <link linkend="peak">peak</link> ksig</synopsis><para/>
-<synopsis>ivalue <link linkend="pindex">pindex</link> ipfieldIndex</synopsis><para/>
-<synopsis>koct, kamp <link linkend="pitch">pitch</link> asig, iupdte, ilo, ihi, idbthresh [, ifrqs] [, iconf] \
- [, istrt] [, iocts] [, iq] [, inptls] [, irolloff] [, iskip]</synopsis><para/>
-<synopsis>kcps, krms <link linkend="pitchamdf">pitchamdf</link> asig, imincps, imaxcps [, icps] [, imedi] \
- [, idowns] [, iexcps] [, irmsmedi]</synopsis><para/>
-<synopsis>kcps, kamp <link linkend="ptrack">ptrack</link> asig, ihopsize[,ipeaks]</synopsis><para/>
-<synopsis>kres <link linkend="rms">rms</link> asig [, ihp] [, iskip]</synopsis><para/>
-<synopsis>kres[, kkeydown] <link linkend="sensekey">sensekey</link>&#160;</synopsis><para/>
-<synopsis>ktrig_out <link linkend="seqtime">seqtime</link> ktime_unit, kstart, kloop, kinitndx, kfn_times</synopsis><para/>
-<synopsis>ktrig_out <link linkend="seqtime2">seqtime2</link> ktrig_in, ktime_unit, kstart, kloop, kinitndx, kfn_times</synopsis><para/>
-<synopsis><link linkend="splitrig">splitrig</link> ktrig, kndx, imaxtics, ifn, kout1 [,kout2,...,koutN]</synopsis><para/>
-<synopsis>ktemp <link linkend="tempest">tempest</link> kin, iprd, imindur, imemdur, ihp, ithresh, ihtim, ixfdbak, \
- istartempo, ifn [, idisprd] [, itweek]</synopsis><para/>
-<synopsis><link linkend="tempo">tempo</link> ktempo, istartempo</synopsis><para/>
-<synopsis>kres <link linkend="tempoval">tempoval</link>&#160;</synopsis><para/>
-<synopsis>ktrig <link linkend="timedseq">timedseq</link> ktimpnt, ifn, kp1 [,kp2, kp3, ...,kpN]</synopsis><para/>
-<synopsis>kout <link linkend="trigger">trigger</link> ksig, kthreshold, kmode</synopsis><para/>
-<synopsis><link linkend="trigseq">trigseq</link> ktrig_in, kstart, kloop, kinitndx, kfn_values, kout1 [, kout2] [...]</synopsis><para/>
-<synopsis>kx, ky <link linkend="xyin">xyin</link> iprd, ixmin, ixmax, iymin, iymax [, ixinit] [, iyinit]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Instrument Control:Stacks</title>
-<para>
-<para/>
-<synopsis>xval1, [xval2, ... , xval31] <link linkend="pop">pop</link>&#160;</synopsis><synopsis>ival1, [ival2, ... , ival31] <link linkend="pop">pop</link>&#160;</synopsis><para/>
-<synopsis>fsig <link linkend="pop_f">pop_f</link>&#160;</synopsis><para/>
-<synopsis><link linkend="push">push</link> xval1, [xval2, ... , xval31]</synopsis><synopsis><link linkend="push">push</link> ival1, [ival2, ... , ival31]</synopsis><para/>
-<synopsis><link linkend="push_f">push_f</link> fsig</synopsis><para/>
-<synopsis><link linkend="stack">stack</link> iStackSize</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Instrument Control:Subinstrument Control</title>
-<para>
-<para/>
-<synopsis>a1, [...] [, a8] <link linkend="subinstr">subinstr</link> instrnum [, p4] [, p5] [...]</synopsis><synopsis>a1, [...] [, a8] <link linkend="subinstr">subinstr</link> &quot;insname&quot; [, p4] [, p5] [...]</synopsis><para/>
-<synopsis><link linkend="subinstrinit">subinstrinit</link> instrnum [, p4] [, p5] [...]</synopsis><synopsis><link linkend="subinstrinit">subinstrinit</link> &quot;insname&quot; [, p4] [, p5] [...]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Instrument Control:Time Reading</title>
-<para>
-<para/>
-<synopsis>ir <link linkend="date">date</link>&#160;</synopsis><para/>
-<synopsis>Sir <link linkend="dates">dates</link> [ itime]</synopsis><para/>
-<synopsis>ir <link linkend="readclock">readclock</link> inum</synopsis><para/>
-<synopsis>ires <link linkend="rtclock">rtclock</link>&#160;</synopsis><synopsis>kres <link linkend="rtclock">rtclock</link>&#160;</synopsis><para/>
-<synopsis>kres <link linkend="timeinstk">timeinstk</link>&#160;</synopsis><synopsis>kres <link linkend="timeinstk">timeinsts</link>&#160;</synopsis><para/>
-<synopsis>kres <link linkend="timeinsts">timeinsts</link>&#160;</synopsis><para/>
-<synopsis>ires <link linkend="timek">timek</link>&#160;</synopsis><synopsis>kres <link linkend="timek">timek</link>&#160;</synopsis><para/>
-<synopsis>ires <link linkend="times">times</link>&#160;</synopsis><synopsis>kres <link linkend="times">times</link>&#160;</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Table Control</title>
-<para>
-<para/>
-<synopsis><link linkend="ftfree">ftfree</link> ifno, iwhen</synopsis><para/>
-<synopsis>gir <link linkend="ftgen">ftgen</link> ifn, itime, isize, igen, iarga [, iargb ] [...]</synopsis><para/>
-<synopsis>ifno <link linkend="ftgentmp">ftgentmp</link> ip1, ip2dummy, isize, igen, iarga, iargb, ...</synopsis><para/>
-<synopsis><link linkend="sndload">sndload</link> Sfname[, ifmt[, ichns[, isr[, ibas[, iamp[, istrt \
- [, ilpmod[, ilps[, ilpe]]]]]]]]]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Table Control:Table Queries</title>
-<para>
-<para/>
-<synopsis><link linkend="ftchnls">ftchnls</link>(x) (init-rate args only)</synopsis><para/>
-<synopsis><link linkend="ftlen">ftlen</link>(x) (init-rate args only)</synopsis><para/>
-<synopsis><link linkend="ftlptim">ftlptim</link>(x) (init-rate args only)</synopsis><para/>
-<synopsis><link linkend="ftsr">ftsr</link>(x) (init-rate args only)</synopsis><para/>
-<synopsis><link linkend="nsamp">nsamp</link>(x) (init-rate args only)</synopsis><para/>
-<synopsis>ires <link linkend="tableng">tableng</link> ifn</synopsis><synopsis>kres <link linkend="tableng">tableng</link> kfn</synopsis><para/>
-<synopsis><link linkend="tb">tb0_init</link> ifn</synopsis><synopsis><link linkend="tb">tb1_init</link> ifn</synopsis><synopsis><link linkend="tb">tb2_init</link> ifn</synopsis><synopsis><link linkend="tb">tb3_init</link> ifn</synopsis><synopsis><link linkend="tb">tb4_init</link> ifn</synopsis><synopsis><link linkend="tb">tb5_init</link> ifn</synopsis><synopsis><link linkend="tb">tb6_init</link> ifn</synopsis><synopsis><link linkend="tb">tb7_init</link> ifn</synopsis><synopsis><link linkend="tb">tb8_init</link> ifn</synopsis><synopsis><link linkend="tb">tb9_init</link> ifn</synopsis><synopsis><link linkend="tb">tb10_init</link> ifn</synopsis><synopsis><link linkend="tb">tb11_init</link> ifn</synopsis><synopsis><link linkend="tb">tb12_init</link> ifn</synopsis><synopsis><link linkend="tb">tb13_init</link> ifn</synopsis><synopsis><link linkend="tb">tb14_init</link> ifn</synopsis><synopsis><link linkend="tb">tb15_init</link> ifn</synopsis><synopsis>iout = <link linkend="tb">tb0</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb0</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb1</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb1</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb2</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb2</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb3</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb3</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb4</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb4</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb5</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb5</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb6</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb6</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb7</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb7</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb8</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb8</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb9</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb9</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb10</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb10</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb11</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb11</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb12</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb12</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb13</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb13</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb14</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb14</link>(kIndex)</synopsis><synopsis>iout = <link linkend="tb">tb15</link>(iIndex)</synopsis><synopsis>kout = <link linkend="tb">tb15</link>(kIndex)</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Table Control:Dynamic Selection</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="tableikt">tableikt</link> xndx, kfn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <link linkend="tableikt">tableikt</link> kndx, kfn [, ixmode] [, ixoff] [, iwrap]</synopsis><para/>
-<synopsis>ares <link linkend="tablekt">tablekt</link> xndx, kfn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <link linkend="tablekt">tablekt</link> kndx, kfn [, ixmode] [, ixoff] [, iwrap]</synopsis><para/>
-<synopsis>ares <link linkend="tablexkt">tablexkt</link> xndx, kfn, kwarp, iwsize [, ixmode] [, ixoff] [, iwrap]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Table Control:Read/Write Opreations</title>
-<para>
-<para/>
-<synopsis><link linkend="ftload">ftload</link> &quot;filename&quot;, iflag, ifn1 [, ifn2] [...]</synopsis><para/>
-<synopsis><link linkend="ftloadk">ftloadk</link> &quot;filename&quot;, ktrig, iflag, ifn1 [, ifn2] [...]</synopsis><para/>
-<synopsis><link linkend="ftsave">ftsave</link> &quot;filename&quot;, iflag, ifn1 [, ifn2] [...]</synopsis><para/>
-<synopsis><link linkend="ftsavek">ftsavek</link> &quot;filename&quot;, ktrig, iflag, ifn1 [, ifn2] [...]</synopsis><para/>
-<synopsis><link linkend="tablecopy">tablecopy</link> kdft, ksft</synopsis><para/>
-<synopsis><link linkend="tablegpw">tablegpw</link> kfn</synopsis><para/>
-<synopsis><link linkend="tableicopy">tableicopy</link> idft, isft</synopsis><para/>
-<synopsis><link linkend="tableigpw">tableigpw</link> ifn</synopsis><para/>
-<synopsis><link linkend="tableimix">tableimix</link> idft, idoff, ilen, is1ft, is1off, is1g, is2ft, is2off, is2g</synopsis><para/>
-<synopsis><link linkend="tableiw">tableiw</link> isig, indx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis><para/>
-<synopsis><link linkend="tablemix">tablemix</link> kdft, kdoff, klen, ks1ft, ks1off, ks1g, ks2ft, ks2off, ks2g</synopsis><para/>
-<synopsis>ares <link linkend="tablera">tablera</link> kfn, kstart, koff</synopsis><para/>
-<synopsis><link linkend="tablew">tablew</link> asig, andx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis><synopsis><link linkend="tablew">tablew</link> isig, indx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis><synopsis><link linkend="tablew">tablew</link> ksig, kndx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis><para/>
-<synopsis>kstart <link linkend="tablewa">tablewa</link> kfn, asig, koff</synopsis><para/>
-<synopsis><link linkend="tablewkt">tablewkt</link> asig, andx, kfn [, ixmode] [, ixoff] [, iwgmode]</synopsis><synopsis><link linkend="tablewkt">tablewkt</link> ksig, kndx, kfn [, ixmode] [, ixoff] [, iwgmode]</synopsis><para/>
-<synopsis>kout <link linkend="tabmorph">tabmorph</link> kindex, kweightpoint, ktabnum1, ktabnum2, \
- ifn1, ifn2 [, ifn3, ifn4, ... ifnN]</synopsis><para/>
-<synopsis>aout <link linkend="tabmorpha">tabmorpha</link> aindex, aweightpoint, atabnum1, atabnum2, \
- ifn1, ifn2 [, ifn3, ifn4, ... ifnN]</synopsis><para/>
-<synopsis>aout <link linkend="tabmorphak">tabmorphak</link> aindex, kweightpoint, ktabnum1, ktabnum2, \
- ifn1, ifn2 [, ifn3, ifn4, ... ifnN]</synopsis><para/>
-<synopsis>kout <link linkend="tabmorphi">tabmorphi</link> kindex, kweightpoint, ktabnum1, ktabnum2, \
- ifn1, ifn2 [, ifn3, ifn4, ... ifnN]</synopsis><para/>
-<synopsis><link linkend="tabplay">tabplay</link> ktrig, knumtics, kfn, kout1 [,kout2,..., koutN]</synopsis><para/>
-<synopsis><link linkend="tabrec">tabrec</link> ktrig_start, ktrig_stop, knumtics, kfn, kin1 [,kin2,...,kinN]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>FLTK:Other</title>
-<para>
-<para/>
-<synopsis><link linkend="vphaseseg">vphaseseg</link> kphase, ioutab, ielems, itab1,idist1,itab2 \
- [,idist2,itab3, ... ,idistN-1,itabN]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Mathematical Operations:Arithmetic and Logic Operations</title>
-<para>
-<para/>
-<synopsis>a <link linkend="adds">&plus;</link> b (no rate restriction)</synopsis>
-<para/>
-<synopsis>a <link linkend="divides">&sol;</link> b (no rate restriction)</synopsis>
-<para/>
-<synopsis>a <link linkend="modulus">&percnt;</link> b (no rate restriction)</synopsis>
-<para/>
-<synopsis>a <link linkend="multiplies">&ast;</link> b (no rate restriction)</synopsis>
-<para/>
-<synopsis>a <link linkend="opbitor">&verbar;</link> b (bitwise OR)</synopsis>
-<para/>
-<synopsis>a <link linkend="opor">&verbar;&verbar;</link> b (logical OR; not audio-rate)</synopsis>
-<para/>
-<synopsis>a <link linkend="raises">&circ;</link> b (b not audio-rate)</synopsis>
-<para/>
-<synopsis>a <link linkend="subtracts">&minus;</link> b (no rate restriction)</synopsis>
-<para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Mathematical Operations:Comparators and Accumulators</title>
-<para>
-<para/>
-<synopsis><link linkend="clear">clear</link> avar1 [, avar2] [, avar3] [...]</synopsis><para/>
-<synopsis><link linkend="vincr">vincr</link> accum, aincr</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Mathematical Operations:Mathematical Functions</title>
-<para>
-<para/>
-<synopsis><link linkend="abs">abs</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="ceil">ceil</link>(x) (init-, control-, or audio-rate arg allowed)</synopsis><para/>
-<synopsis><link linkend="exp">exp</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="floor">floor</link>(x) (init-, control-, or audio-rate arg allowed)</synopsis><para/>
-<synopsis><link linkend="frac">frac</link>(x) (init-rate or control-rate args; also works at audio rate in Csound5)</synopsis><para/>
-<synopsis><link linkend="int">int</link>(x) (init-rate or control-rate; also works at audio rate in Csound5)</synopsis><para/>
-<synopsis><link linkend="log">log</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="log10">log10</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="logbtwo">logbtwo</link>(x) (init-rate or control-rate args only)</synopsis><para/>
-<synopsis><link linkend="powoftwo">powoftwo</link>(x) (init-rate or control-rate args only)</synopsis><para/>
-<synopsis><link linkend="round">round</link>(x) (init-, control-, or audio-rate arg allowed)</synopsis><para/>
-<synopsis><link linkend="sqrt">sqrt</link>(x) (no rate restriction)</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Mathematical Operations:Trigonometric Functions</title>
-<para>
-<para/>
-<synopsis><link linkend="cos">cos</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="cosh">cosh</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="cosinv">cosinv</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="sin">sin</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="sinh">sinh</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="sininv">sininv</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="tan">tan</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="tanh">tanh</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="taninv">taninv</link>(x) (no rate restriction)</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Mathematical Operations:Amplitude Functions</title>
-<para>
-<para/>
-<synopsis><link linkend="ampdb">ampdb</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="ampdbfs">ampdbfs</link>(x) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="db">db</link>(x)</synopsis><para/>
-<synopsis><link linkend="dbamp">dbamp</link>(x) (init-rate or control-rate args only)</synopsis><para/>
-<synopsis><link linkend="dbfsamp">dbfsamp</link>(x) (init-rate or control-rate args only)</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Mathematical Operations:Random Functions</title>
-<para>
-<para/>
-<synopsis><link linkend="birnd">birnd</link>(x) (init- or control-rate only)</synopsis><para/>
-<synopsis><link linkend="rnd">rnd</link>(x) (init- or control-rate only)</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Mathematical Operations:Opcode Equivalents of Functions</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="divz">divz</link> xa, xb, ksubst</synopsis><synopsis>ires <link linkend="divz">divz</link> ia, ib, isubst</synopsis><synopsis>kres <link linkend="divz">divz</link> ka, kb, ksubst</synopsis><para/>
-<synopsis>ares <link linkend="mac">mac</link> asig1, ksig1 [, asig2] [, ksig2] [, asig3] [, ksig3] [...]</synopsis><para/>
-<synopsis>ares <link linkend="maca">maca</link> asig1 , asig2 [, asig3] [, asig4] [, asig5] [...]</synopsis><para/>
-<synopsis>aout <link linkend="polynomial">polynomial</link> ain, k0 [, k1 [, k2 [...]]]</synopsis><para/>
-<synopsis>ares <link linkend="pow">pow</link> aarg, kpow [, inorm]</synopsis><synopsis>ires <link linkend="pow">pow</link> iarg, ipow [, inorm]</synopsis><synopsis>kres <link linkend="pow">pow</link> karg, kpow [, inorm]</synopsis><para/>
-<synopsis>ares <link linkend="product">product</link> asig1, asig2 [, asig3] [...]</synopsis><para/>
-<synopsis>ares <link linkend="sum">sum</link> asig1 [, asig2] [, asig3] [...]</synopsis><para/>
-<synopsis>ares <link linkend="taninv2">taninv2</link> ay, ax</synopsis><synopsis>ires <link linkend="taninv2">taninv2</link> iy, ix</synopsis><synopsis>kres <link linkend="taninv2">taninv2</link> ky, kx</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Pitch Converters:Functions</title>
-<para>
-<para/>
-<synopsis><link linkend="cent">cent</link>(x) </synopsis><para/>
-<synopsis><link linkend="cpsmidinn">cpsmidinn</link> (MidiNoteNumber) (init- or control-rate args only)</synopsis><para/>
-<synopsis><link linkend="cpsoct">cpsoct</link> (oct) (no rate restriction)</synopsis><para/>
-<synopsis><link linkend="cpspch">cpspch</link> (pch) (init- or control-rate args only)</synopsis><para/>
-<synopsis><link linkend="octave">octave</link>(x)</synopsis><para/>
-<synopsis><link linkend="octcps">octcps</link> (cps) (init- or control-rate args only)</synopsis><para/>
-<synopsis><link linkend="octmidinn">octmidinn</link> (MidiNoteNumber) (init- or control-rate args only)</synopsis><para/>
-<synopsis><link linkend="octpch">octpch</link> (pch) (init- or control-rate args only)</synopsis><para/>
-<synopsis><link linkend="pchmidinn">pchmidinn</link> (MidiNoteNumber) (init- or control-rate args only)</synopsis><para/>
-<synopsis><link linkend="pchoct">pchoct</link> (oct) (init- or control-rate args only)</synopsis><para/>
-<synopsis><link linkend="semitone">semitone</link>(x)</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Pitch Converters:Tuning Opcodes</title>
-<para>
-<para/>
-<synopsis>icps <link linkend="cps2pch">cps2pch</link> ipch, iequal</synopsis><para/>
-<synopsis>kcps <link linkend="cpstun">cpstun</link> ktrig, kindex, kfn</synopsis><para/>
-<synopsis>icps <link linkend="cpstuni">cpstuni</link> index, ifn</synopsis><para/>
-<synopsis>icps <link linkend="cpsxpch">cpsxpch</link> ipch, iequal, irepeat, ibase</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Real-time MIDI:Input</title>
-<para>
-<para/>
-<synopsis>kaft <link linkend="aftouch">aftouch</link> [imin] [, imax]</synopsis><para/>
-<synopsis>ival <link linkend="chanctrl">chanctrl</link> ichnl, ictlno [, ilow] [, ihigh]</synopsis><synopsis>kval <link linkend="chanctrl">chanctrl</link> ichnl, ictlno [, ilow] [, ihigh]</synopsis><para/>
-<synopsis>idest <link linkend="ctrl14">ctrl14</link> ichan, ictlno1, ictlno2, imin, imax [, ifn]</synopsis><synopsis>kdest <link linkend="ctrl14">ctrl14</link> ichan, ictlno1, ictlno2, kmin, kmax [, ifn]</synopsis><para/>
-<synopsis>idest <link linkend="ctrl21">ctrl21</link> ichan, ictlno1, ictlno2, ictlno3, imin, imax [, ifn]</synopsis><synopsis>kdest <link linkend="ctrl21">ctrl21</link> ichan, ictlno1, ictlno2, ictlno3, kmin, kmax [, ifn]</synopsis><para/>
-<synopsis>idest <link linkend="ctrl7">ctrl7</link> ichan, ictlno, imin, imax [, ifn]</synopsis><synopsis>kdest <link linkend="ctrl7">ctrl7</link> ichan, ictlno, kmin, kmax [, ifn]</synopsis><synopsis>adest <link linkend="ctrl7">ctrl7</link> ichan, ictlno, kmin, kmax [, ifn] [, icutoff]</synopsis><para/>
-<synopsis><link linkend="ctrlinit">ctrlinit</link> ichnl, ictlno1, ival1 [, ictlno2] [, ival2] [, ictlno3] \
- [, ival3] [,...ival32]</synopsis><para/>
-<synopsis><link linkend="initc14">initc14</link> ichan, ictlno1, ictlno2, ivalue</synopsis><para/>
-<synopsis><link linkend="initc21">initc21</link> ichan, ictlno1, ictlno2, ictlno3, ivalue</synopsis><para/>
-<synopsis><link linkend="initc7">initc7</link> ichan, ictlno, ivalue</synopsis><para/>
-<synopsis><link linkend="massign">massign</link> ichnl, insnum[, ireset]</synopsis><synopsis><link linkend="massign">massign</link> ichnl, &quot;insname&quot;[, ireset]</synopsis><para/>
-<synopsis>idest <link linkend="midic14">midic14</link> ictlno1, ictlno2, imin, imax [, ifn]</synopsis><synopsis>kdest <link linkend="midic14">midic14</link> ictlno1, ictlno2, kmin, kmax [, ifn]</synopsis><para/>
-<synopsis>idest <link linkend="midic21">midic21</link> ictlno1, ictlno2, ictlno3, imin, imax [, ifn]</synopsis><synopsis>kdest <link linkend="midic21">midic21</link> ictlno1, ictlno2, ictlno3, kmin, kmax [, ifn]</synopsis><para/>
-<synopsis>idest <link linkend="midic7">midic7</link> ictlno, imin, imax [, ifn]</synopsis><synopsis>kdest <link linkend="midic7">midic7</link> ictlno, kmin, kmax [, ifn]</synopsis><para/>
-<synopsis>ival <link linkend="midictrl">midictrl</link> inum [, imin] [, imax]</synopsis><synopsis>kval <link linkend="midictrl">midictrl</link> inum [, imin] [, imax]</synopsis><para/>
-<synopsis>ival <link linkend="notnum">notnum</link>&#160;</synopsis><para/>
-<synopsis>ibend <link linkend="pchbend">pchbend</link> [imin] [, imax]</synopsis><synopsis>kbend <link linkend="pchbend">pchbend</link> [imin] [, imax]</synopsis><para/>
-<synopsis><link linkend="pgmassign">pgmassign</link> ipgm, inst[, ichn]</synopsis><synopsis><link linkend="pgmassign">pgmassign</link> ipgm, &quot;insname&quot;[, ichn]</synopsis><para/>
-<synopsis>ires <link linkend="polyaft">polyaft</link> inote [, ilow] [, ihigh]</synopsis><synopsis>kres <link linkend="polyaft">polyaft</link> inote [, ilow] [, ihigh]</synopsis><para/>
-<synopsis>ival <link linkend="veloc">veloc</link> [ilow] [, ihigh]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Real-time MIDI:Output</title>
-<para>
-<para/>
-<synopsis><link linkend="nrpn">nrpn</link> kchan, kparmnum, kparmvalue</synopsis><para/>
-<synopsis><link linkend="outiat">outiat</link> ichn, ivalue, imin, imax</synopsis><para/>
-<synopsis><link linkend="outic">outic</link> ichn, inum, ivalue, imin, imax</synopsis><para/>
-<synopsis><link linkend="outic14">outic14</link> ichn, imsb, ilsb, ivalue, imin, imax</synopsis><para/>
-<synopsis><link linkend="outipat">outipat</link> ichn, inotenum, ivalue, imin, imax</synopsis><para/>
-<synopsis><link linkend="outipb">outipb</link> ichn, ivalue, imin, imax</synopsis><para/>
-<synopsis><link linkend="outipc">outipc</link> ichn, iprog, imin, imax</synopsis><para/>
-<synopsis><link linkend="outkat">outkat</link> kchn, kvalue, kmin, kmax</synopsis><para/>
-<synopsis><link linkend="outkc">outkc</link> kchn, knum, kvalue, kmin, kmax</synopsis><para/>
-<synopsis><link linkend="outkc14">outkc14</link> kchn, kmsb, klsb, kvalue, kmin, kmax</synopsis><para/>
-<synopsis><link linkend="outkpat">outkpat</link> kchn, knotenum, kvalue, kmin, kmax</synopsis><para/>
-<synopsis><link linkend="outkpb">outkpb</link> kchn, kvalue, kmin, kmax</synopsis><para/>
-<synopsis><link linkend="outkpc">outkpc</link> kchn, kprog, kmin, kmax</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Real-time MIDI:Converters</title>
-<para>
-<para/>
-<synopsis>iamp <link linkend="ampmidi">ampmidi</link> iscal [, ifn]</synopsis><para/>
-<synopsis>icps <link linkend="cpsmidi">cpsmidi</link>&#160;</synopsis><para/>
-<synopsis>icps <link linkend="cpsmidib">cpsmidib</link> [irange]</synopsis><synopsis>kcps <link linkend="cpsmidib">cpsmidib</link> [irange]</synopsis><para/>
-<synopsis>icps <link linkend="cpstmid">cpstmid</link> ifn</synopsis><para/>
-<synopsis>ioct <link linkend="octmidi">octmidi</link>&#160;</synopsis><para/>
-<synopsis>ioct <link linkend="octmidib">octmidib</link> [irange]</synopsis><synopsis>koct <link linkend="octmidib">octmidib</link> [irange]</synopsis><para/>
-<synopsis>ipch <link linkend="pchmidi">pchmidi</link>&#160;</synopsis><para/>
-<synopsis>ipch <link linkend="pchmidib">pchmidib</link> [irange]</synopsis><synopsis>kpch <link linkend="pchmidib">pchmidib</link> [irange]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Real-time MIDI:Generic I/O</title>
-<para>
-<para/>
-<synopsis>kstatus, kchan, kdata1, kdata2 <link linkend="midiin">midiin</link>&#160;</synopsis><para/>
-<synopsis><link linkend="midiout">midiout</link> kstatus, kchan, kdata1, kdata2</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Real-time MIDI:Event Extenders</title>
-<para>
-<para/>
-<synopsis>kflag <link linkend="release">release</link>&#160;</synopsis><para/>
-<synopsis><link linkend="xtratim">xtratim</link> iextradur</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Real-time MIDI:Note Output</title>
-<para>
-<para/>
-<synopsis><link linkend="midion">midion</link> kchn, knum, kvel</synopsis><para/>
-<synopsis><link linkend="midion2">midion2</link> kchn, knum, kvel, ktrig</synopsis><para/>
-<synopsis><link linkend="moscil">moscil</link> kchn, knum, kvel, kdur, kpause</synopsis><para/>
-<synopsis><link linkend="noteoff">noteoff</link> ichn, inum, ivel</synopsis><para/>
-<synopsis><link linkend="noteon">noteon</link> ichn, inum, ivel</synopsis><para/>
-<synopsis><link linkend="noteondur">noteondur</link> ichn, inum, ivel, idur</synopsis><para/>
-<synopsis><link linkend="noteondur2">noteondur2</link> ichn, inum, ivel, idur</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Real-time MIDI:MIDI/Score Interoperability</title>
-<para>
-<para/>
-<synopsis><link linkend="midichannelaftertouch">midichannelaftertouch</link> xchannelaftertouch [, ilow] [, ihigh]</synopsis><para/>
-<synopsis>ichn <link linkend="midichn">midichn</link>&#160;</synopsis><para/>
-<synopsis><link linkend="midicontrolchange">midicontrolchange</link> xcontroller, xcontrollervalue [, ilow] [, ihigh]</synopsis><para/>
-<synopsis><link linkend="mididefault">mididefault</link> xdefault, xvalue</synopsis><para/>
-<synopsis><link linkend="midinoteoff">midinoteoff</link> xkey, xvelocity</synopsis><para/>
-<synopsis><link linkend="midinoteoncps">midinoteoncps</link> xcps, xvelocity</synopsis><para/>
-<synopsis><link linkend="midinoteonkey">midinoteonkey</link> xkey, xvelocity</synopsis><para/>
-<synopsis><link linkend="midinoteonoct">midinoteonoct</link> xoct, xvelocity</synopsis><para/>
-<synopsis><link linkend="midinoteonpch">midinoteonpch</link> xpch, xvelocity</synopsis><para/>
-<synopsis><link linkend="midipitchbend">midipitchbend</link> xpitchbend [, ilow] [, ihigh]</synopsis><para/>
-<synopsis><link linkend="midipolyaftertouch">midipolyaftertouch</link> xpolyaftertouch, xcontrollervalue [, ilow] [, ihigh]</synopsis><para/>
-<synopsis><link linkend="midiprogramchange">midiprogramchange</link> xprogram</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Real-time MIDI:System Realtime</title>
-<para>
-<para/>
-<synopsis><link linkend="mclock">mclock</link> ifreq</synopsis><para/>
-<synopsis><link linkend="mrtmsg">mrtmsg</link> imsgtype</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Real-time MIDI:Slider Banks</title>
-<para>
-<para/>
-<synopsis>i1,...,i16 <link linkend="s16b14">s16b14</link> ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1, \
- initvalue1, ifn1,..., ictlno_msb16, ictlno_lsb16, imin16, imax16, initvalue16, ifn16</synopsis><synopsis>k1,...,k16 <link linkend="s16b14">s16b14</link> ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1, \
- initvalue1, ifn1,..., ictlno_msb16, ictlno_lsb16, imin16, imax16, initvalue16, ifn16</synopsis><para/>
-<synopsis>i1,...,i32 <link linkend="s32b14">s32b14</link> ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1, \
- initvalue1, ifn1,..., ictlno_msb32, ictlno_lsb32, imin32, imax32, initvalue32, ifn32</synopsis><synopsis>k1,...,k32 <link linkend="s32b14">s32b14</link> ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1, \
- initvalue1, ifn1,..., ictlno_msb32, ictlno_lsb32, imin32, imax32, initvalue32, ifn32</synopsis><para/>
-<synopsis>i1,...,i16 <link linkend="slider16">slider16</link> ichan, ictlnum1, imin1, imax1, init1, ifn1,..., \
- ictlnum16, imin16, imax16, init16, ifn16</synopsis><synopsis>k1,...,k16 <link linkend="slider16">slider16</link> ichan, ictlnum1, imin1, imax1, init1, ifn1,..., \
- ictlnum16, imin16, imax16, init16, ifn16</synopsis><para/>
-<synopsis>k1,...,k16 <link linkend="slider16f">slider16f</link> ichan, ictlnum1, imin1, imax1, init1, ifn1, \
- icutoff1,..., ictlnum16, imin16, imax16, init16, ifn16, icutoff16</synopsis><para/>
-<synopsis>kflag <link linkend="slider16table">slider16table</link> ichan, ioutTable, ioffset, ictlnum1, imin1, imax1, \
- init1, ifn1, .... , ictlnum16, imin16, imax16, init16, ifn16</synopsis><para/>
-<synopsis>kflag <link linkend="slider16tablef">slider16tablef</link> ichan, ioutTable, ioffset, ictlnum1, imin1, imax1, \
- init1, ifn1, icutoff1, .... , ictlnum16, imin16, imax16, init16, ifn16, icutoff16</synopsis><para/>
-<synopsis>i1,...,i32 <link linkend="slider32">slider32</link> ichan, ictlnum1, imin1, imax1, init1, ifn1,..., \
- ictlnum32, imin32, imax32, init32, ifn32</synopsis><synopsis>k1,...,k32 <link linkend="slider32">slider32</link> ichan, ictlnum1, imin1, imax1, init1, ifn1,..., \
- ictlnum32, imin32, imax32, init32, ifn32</synopsis><para/>
-<synopsis>k1,...,k32 <link linkend="slider32f">slider32f</link> ichan, ictlnum1, imin1, imax1, init1, ifn1, icutoff1, \
- ..., ictlnum32, imin32, imax32, init32, ifn32, icutoff32</synopsis><para/>
-<synopsis>kflag <link linkend="slider32table">slider32table</link> ichan, ioutTable, ioffset, ictlnum1, imin1, \
- imax1, init1, ifn1, .... , ictlnum32, imin32, imax32, init32, ifn32</synopsis><para/>
-<synopsis>kflag <link linkend="slider32tablef">slider32tablef</link> ichan, ioutTable, ioffset, ictlnum1, imin1, imax1, \
- init1, ifn1, icutoff1, .... , ictlnum32, imin32, imax32, init32, ifn32, icutoff32</synopsis><para/>
-<synopsis>i1,...,i64 <link linkend="slider64">slider64</link> ichan, ictlnum1, imin1, imax1, init1, ifn1,..., \
- ictlnum64, imin64, imax64, init64, ifn64</synopsis><synopsis>k1,...,k64 <link linkend="slider64">slider64</link> ichan, ictlnum1, imin1, imax1, init1, ifn1,..., \
- ictlnum64, imin64, imax64, init64, ifn64</synopsis><para/>
-<synopsis>k1,...,k64 <link linkend="slider64f">slider64f</link> ichan, ictlnum1, imin1, imax1, init1, ifn1, \
- icutoff1,..., ictlnum64, imin64, imax64, init64, ifn64, icutoff64</synopsis><para/>
-<synopsis>kflag <link linkend="slider64table">slider64table</link> ichan, ioutTable, ioffset, ictlnum1, imin1, \
- imax1, init1, ifn1, .... , ictlnum64, imin64, imax64, init64, ifn64</synopsis><para/>
-<synopsis>kflag <link linkend="slider64tablef">slider64tablef</link> ichan, ioutTable, ioffset, ictlnum1, imin1, imax1, \
- init1, ifn1, icutoff1, .... , ictlnum64, imin64, imax64, init64, ifn64, icutoff64</synopsis><para/>
-<synopsis>i1,...,i8 <link linkend="slider8">slider8</link> ichan, ictlnum1, imin1, imax1, init1, ifn1,..., \
- ictlnum8, imin8, imax8, init8, ifn8</synopsis><synopsis>k1,...,k8 <link linkend="slider8">slider8</link> ichan, ictlnum1, imin1, imax1, init1, ifn1,..., \
- ictlnum8, imin8, imax8, init8, ifn8</synopsis><para/>
-<synopsis>k1,...,k8 <link linkend="slider8f">slider8f</link> ichan, ictlnum1, imin1, imax1, init1, ifn1, icutoff1, \
- ..., ictlnum8, imin8, imax8, init8, ifn8, icutoff8</synopsis><para/>
-<synopsis>kflag <link linkend="slider8table">slider8table</link> ichan, ioutTable, ioffset, ictlnum1, imin1, imax1, \
- init1, ifn1,..., ictlnum8, imin8, imax8, init8, ifn8</synopsis><para/>
-<synopsis>kflag <link linkend="slider8tablef">slider8tablef</link> ichan, ioutTable, ioffset, ictlnum1, imin1, imax1, \
- init1, ifn1, icutoff1, .... , ictlnum8, imin8, imax8, init8, ifn8, icutoff8</synopsis><para/>
-<synopsis>k1, k2, ...., k16 <link linkend="sliderKawai">sliderKawai</link> imin1, imax1, init1, ifn1, \
- imin2, imax2, init2, ifn2, ..., imin16, imax16, init16, ifn16</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Spectral Processing:STFT</title>
-<para>
-<para/>
-<synopsis><link linkend="ktableseg">ktableseg</link> ifn1, idur1, ifn2 [, idur2] [, ifn3] [...]</synopsis><para/>
-<synopsis>ares <link linkend="pvadd">pvadd</link> ktimpnt, kfmod, ifilcod, ifn, ibins [, ibinoffset] \
- [, ibinincr] [, iextractmode] [, ifreqlim] [, igatefn]</synopsis><para/>
-<synopsis><link linkend="pvbufread">pvbufread</link> ktimpnt, ifile</synopsis><para/>
-<synopsis>ares <link linkend="pvcross">pvcross</link> ktimpnt, kfmod, ifile, kampscale1, kampscale2 [, ispecwp]</synopsis><para/>
-<synopsis>ares <link linkend="pvinterp">pvinterp</link> ktimpnt, kfmod, ifile, kfreqscale1, kfreqscale2, \
- kampscale1, kampscale2, kfreqinterp, kampinterp</synopsis><para/>
-<synopsis>ares <link linkend="pvoc">pvoc</link> ktimpnt, kfmod, ifilcod [, ispecwp] [, iextractmode] \
- [, ifreqlim] [, igatefn]</synopsis><para/>
-<synopsis>kfreq, kamp <link linkend="pvread">pvread</link> ktimpnt, ifile, ibin</synopsis><para/>
-<synopsis><link linkend="tableseg">tableseg</link> ifn1, idur1, ifn2 [, idur2] [, ifn3] [...]</synopsis><para/>
-<synopsis><link linkend="tablexseg">tablexseg</link> ifn1, idur1, ifn2 [, idur2] [, ifn3] [...]</synopsis><para/>
-<synopsis>ares <link linkend="vpvoc">vpvoc</link> ktimpnt, kfmod, ifile [, ispecwp] [, ifn]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Spectral Processing:LPC</title>
-<para>
-<para/>
-<synopsis>ares <link linkend="lpfreson">lpfreson</link> asig, kfrqratio</synopsis><para/>
-<synopsis><link linkend="lpinterp">lpinterp</link> islot1, islot2, kmix</synopsis><para/>
-<synopsis>krmsr, krmso, kerr, kcps <link linkend="lpread">lpread</link> ktimpnt, ifilcod [, inpoles] [, ifrmrate]</synopsis><para/>
-<synopsis>ares <link linkend="lpreson">lpreson</link> asig</synopsis><para/>
-<synopsis><link linkend="lpslot">lpslot</link> islot</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Spectral Processing:Streaming</title>
-<para>
-<para/>
-<synopsis>fsig <link linkend="binit">binit</link> fin, isize</synopsis><para/>
-<synopsis>ftrks <link linkend="partials">partials</link> ffr, fphs, kthresh, kminpts, kmaxgap, imaxtracks</synopsis><para/>
-<synopsis>ares <link linkend="pvsadsyn">pvsadsyn</link> fsrc, inoscs, kfmod [, ibinoffset] [, ibinincr] [, iinit]</synopsis><para/>
-<synopsis>fsig <link linkend="pvsanal">pvsanal</link> ain, ifftsize, ioverlap, iwinsize, iwintype [, iformat] [, iinit]</synopsis><para/>
-<synopsis>fsig <link linkend="pvsarp">pvsarp</link> fsigin, kbin, kdepth, kgain</synopsis><para/>
-<synopsis>fsig <link linkend="pvsbandp">pvsbandp</link> fsigin, xlowcut,
- xlowfull, xhighfull, xhighcut[, ktype]</synopsis><para/>
-<synopsis>fsig <link linkend="pvsbandr">pvsbandr</link> fsigin, xlowcut,
- xlowfull, xhighfull, xhighcut[, ktype]</synopsis><para/>
-<synopsis>kamp, kfr <link linkend="pvsbin">pvsbin</link> fsig, kbin</synopsis><para/>
-<synopsis>fsig <link linkend="pvsblur">pvsblur</link> fsigin, kblurtime, imaxdel</synopsis><para/>
-<synopsis>ihandle, ktime <link linkend="pvsbuffer">pvsbuffer</link> fsig, ilen </synopsis><para/>
-<synopsis>fsig <link linkend="pvsbufread">pvsbufread</link> ktime, khandle[, ilo, ihi] </synopsis><para/>
-<synopsis>fsig <link linkend="pvscale">pvscale</link> fsigin, kscal[, ikeepform, igain]]</synopsis><para/>
-<synopsis>kcent <link linkend="pvscent">pvscent</link> fsig</synopsis><para/>
-<synopsis>fsig <link linkend="pvscross">pvscross</link> fsrc, fdest, kamp1, kamp2</synopsis><para/>
-<synopsis>fsig <link linkend="pvsdemix">pvsdemix</link> fleft, fright, kpos, kwidth, ipoints</synopsis><para/>
-<synopsis>fsig <link linkend="pvsdiskin">pvsdiskin</link>SFname,ktscal,kgain[,ioffset, ichan]</synopsis><para/>
-<synopsis><link linkend="pvsdisp">pvsdisp</link> fsig[, ibins, iwtflg] </synopsis><para/>
-<synopsis>fsig <link linkend="pvsfilter">pvsfilter</link> fsigin, fsigfil, kdepth[, igain]</synopsis><para/>
-<synopsis>fsig <link linkend="pvsfread">pvsfread</link> ktimpt, ifn [, ichan]</synopsis><para/>
-<synopsis>fsig <link linkend="pvsfreeze">pvsfreeze</link> fsigin, kfreeza, kfreezf</synopsis><para/>
-<synopsis><link linkend="pvsftr">pvsftr</link> fsrc, ifna [, ifnf]</synopsis><para/>
-<synopsis>kflag <link linkend="pvsftw">pvsftw</link> fsrc, ifna [, ifnf]</synopsis><para/>
-<synopsis><link linkend="pvsfwrite">pvsfwrite</link> fsig, ifile</synopsis><para/>
-<synopsis>fsig <link linkend="pvshift">pvshift</link> fsigin, kshift, klowest[, ikeepform, igain]</synopsis><para/>
-<synopsis>ffr,fphs <link linkend="pvsifd">pvsifd</link> ain, ifftsize, ihopsize, iwintype[,iscal]</synopsis><para/>
-<synopsis>fsig <link linkend="pvsin">pvsin</link> kchan[,isize,iolap,iwinsize,iwintype,iformat]</synopsis><para/>
-<synopsis>ioverlap, inumbins, iwinsize, iformat <link linkend="pvsinfo">pvsinfo</link> fsrc</synopsis><para/>
-<synopsis>fsig <link linkend="pvsinit">pvsinit</link> isize[,iolap,iwinsize,iwintype, iformat]</synopsis><para/>
-<synopsis>fsig <link linkend="pvsmaska">pvsmaska</link> fsrc, ifn, kdepth</synopsis><para/>
-<synopsis>fsig <link linkend="pvsmix">pvsmix</link> fsigin1, fsigin2</synopsis><para/>
-<synopsis>fsig <link linkend="pvsmooth">pvsmooth</link> fsigin, kacf, kfcf</synopsis><para/>
-<synopsis>fsig <link linkend="pvsmorph">pvsmorph</link> fsig1, fsig2, kampint, kfrqint</synopsis><para/>
-<synopsis>fsig <link linkend="pvsosc">pvsosc</link> kamp, kfreq, ktype, isize [,ioverlap] [, iwinsize] [, iwintype] [, iformat]</synopsis><para/>
-<synopsis><link linkend="pvsout">pvsout</link> fsig, kchan</synopsis><para/>
-<synopsis>kfr, kamp <link linkend="pvspitch">pvspitch</link> fsig, kthresh</synopsis><para/>
-<synopsis>fsig <link linkend="pvstencil">pvstencil</link> fsigin, kgain, klevel, iftable</synopsis><para/>
-<synopsis>fsig <link linkend="pvsvoc">pvsvoc</link> famp, fexc, kdepth, kgain</synopsis><para/>
-<synopsis>ares <link linkend="pvsynth">pvsynth</link> fsrc, [iinit]</synopsis><para/>
-<synopsis>asig <link linkend="resyn">resyn</link> fin, kscal, kpitch, kmaxtracks, ifn</synopsis><para/>
-<synopsis>asig <link linkend="sinsyn">sinsyn</link> fin, kscal, kmaxtracks, ifn</synopsis><para/>
-<synopsis>asig <link linkend="tradsyn">tradsyn</link> fin, kscal, kpitch, kmaxtracks, ifn</synopsis><para/>
-<synopsis>fsig <link linkend="trcross">trcross</link> fin1, fin2, ksearch,kdepth[,kmode] </synopsis><para/>
-<synopsis>fsig <link linkend="trfilter">trfilter</link> fin, kamnt, ifn</synopsis><para/>
-<synopsis>fsig, kfr,kamp <link linkend="trhighest">trhighest</link> fin1, kscal</synopsis><para/>
-<synopsis>fsig, kfr,kamp <link linkend="trlowest">trlowest</link> fin1, kscal</synopsis><para/>
-<synopsis>fsig <link linkend="trmix">trmix</link> fin1, fin2 </synopsis><para/>
-<synopsis>fsig <link linkend="trscale">trscale</link> fin, kpitch[, kgain]</synopsis><para/>
-<synopsis>fsig <link linkend="trshift">trshift</link> fin, kpshift[, kgain]</synopsis><para/>
-<synopsis>fsiglow, fsighi <link linkend="trsplit">trsplit</link> fin, ksplit[, kgainlow, kgainhigh]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Strings:Definition</title>
-<para>
-<para/>
-<synopsis>Sdst <link linkend="strget">strget</link> indx</synopsis><para/>
-<synopsis><link linkend="strset">strset</link> iarg, istring</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Strings:Manipulation</title>
-<para>
-<para/>
-<synopsis><link linkend="puts">puts</link> Sstr, ktrig[, inonl]</synopsis><para/>
-<synopsis>Sdst <link linkend="sprintf">sprintf</link> Sfmt, xarg1[, xarg2[, ... ]]</synopsis><synopsis>Sdst <link linkend="sprintf">sprintfk</link> Sfmt, xarg1[, xarg2[, ... ]]</synopsis><para/>
-<synopsis>Sdst <link linkend="sprintfk">sprintfk</link> Sfmt, xarg1[, xarg2[, ... ]]</synopsis><para/>
-<synopsis>Sdst <link linkend="strcat">strcat</link> Ssrc1, Ssrc2</synopsis><para/>
-<synopsis>Sdst <link linkend="strcatk">strcatk</link> Ssrc1, Ssrc2</synopsis><para/>
-<synopsis>ires <link linkend="strcmp">strcmp</link> S1, S2</synopsis><para/>
-<synopsis>kres <link linkend="strcmpk">strcmpk</link> S1, S2</synopsis><para/>
-<synopsis>Sdst <link linkend="strcpy">strcpy</link> Ssrc</synopsis><para/>
-<synopsis>Sdst <link linkend="strcpyk">strcpyk</link> Ssrc</synopsis><para/>
-<synopsis>ipos <link linkend="strindex">strindex</link> S1, S2</synopsis><para/>
-<synopsis>kpos <link linkend="strindexk">strindexk</link> S1, S2</synopsis><para/>
-<synopsis>ilen <link linkend="strlen">strlen</link> Sstr</synopsis><para/>
-<synopsis>klen <link linkend="strlenk">strlenk</link> Sstr</synopsis><para/>
-<synopsis>ipos <link linkend="strrindex">strrindex</link> S1, S2</synopsis><para/>
-<synopsis>kpos <link linkend="strrindexk">strrindexk</link> S1, S2</synopsis><para/>
-<synopsis>Sdst <link linkend="strsub">strsub</link> Ssrc[, istart[, iend]]</synopsis><para/>
-<synopsis>Sdst <link linkend="strsubk">strsubk</link> Ssrc, kstart, kend</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Strings:Conversion</title>
-<para>
-<para/>
-<synopsis>ichr <link linkend="strchar">strchar</link> Sstr[, ipos]</synopsis><para/>
-<synopsis>kchr <link linkend="strchark">strchark</link> Sstr[, kpos]</synopsis><para/>
-<synopsis>Sdst <link linkend="strlower">strlower</link> Ssrc</synopsis><para/>
-<synopsis>Sdst <link linkend="strlowerk">strlowerk</link> Ssrc</synopsis><para/>
-<synopsis>ir <link linkend="strtod">strtod</link> Sstr</synopsis><synopsis>ir <link linkend="strtod">strtod</link> indx</synopsis><para/>
-<synopsis>kr <link linkend="strtodk">strtodk</link> Sstr</synopsis><synopsis>kr <link linkend="strtodk">strtodk</link> kndx</synopsis><para/>
-<synopsis>ir <link linkend="strtol">strtol</link> Sstr</synopsis><synopsis>ir <link linkend="strtol">strtol</link> indx</synopsis><para/>
-<synopsis>kr <link linkend="strtolk">strtolk</link> Sstr</synopsis><synopsis>kr <link linkend="strtolk">strtolk</link> kndx</synopsis><para/>
-<synopsis>Sdst <link linkend="strupper">strupper</link> Ssrc</synopsis><para/>
-<synopsis>Sdst <link linkend="strupperk">strupperk</link> Ssrc</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Vectorial:Tables</title>
-<para>
-<para/>
-<synopsis><link linkend="vtaba">vtaba</link> andx, ifn, aout1 [, aout2, aout3, .... , aoutN ]</synopsis><para/>
-<synopsis><link linkend="vtabi">vtabi</link> indx, ifn, iout1 [, iout2, iout3, .... , ioutN ]</synopsis><para/>
-<synopsis><link linkend="vtabk">vtabk</link> kndx, ifn, kout1 [, kout2, kout3, .... , koutN ]</synopsis><para/>
-<synopsis><link linkend="vtable1k">vtable1k</link> kfn,kout1 [, kout2, kout3, .... , koutN ]</synopsis><para/>
-<synopsis><link linkend="vtablea">vtablea</link> andx, kfn, kinterp, ixmode, aout1 [, aout2, aout3, .... , aoutN ]</synopsis><para/>
-<synopsis><link linkend="vtablei">vtablei</link> indx, ifn, interp, ixmode, iout1 [, iout2, iout3, .... , ioutN ]</synopsis><para/>
-<synopsis><link linkend="vtablek">vtablek</link> kndx, kfn, kinterp, ixmode, kout1 [, kout2, kout3, .... , koutN ]</synopsis><para/>
-<synopsis><link linkend="vtablewa">vtablewa</link> andx, kfn, ixmode, ainarg1 [, ainarg2, ainarg3 , .... , ainargN ]</synopsis><para/>
-<synopsis><link linkend="vtablewi">vtablewi</link> indx, ifn, ixmode, inarg1 [, inarg2, inarg3 , .... , inargN ]</synopsis><para/>
-<synopsis><link linkend="vtablewk">vtablewk</link> kndx, kfn, ixmode, kinarg1 [, kinarg2, kinarg3 , .... , kinargN ]</synopsis><para/>
-<synopsis><link linkend="vtabwa">vtabwa</link> andx, ifn, ainarg1 [, ainarg2, ainarg3 , .... , ainargN ]</synopsis><para/>
-<synopsis><link linkend="vtabwi">vtabwi</link> indx, ifn, inarg1 [, inarg2, inarg3 , .... , inargN ]</synopsis><para/>
-<synopsis><link linkend="vtabwk">vtabwk</link> kndx, ifn, kinarg1 [, kinarg2, kinarg3 , .... , kinargN ]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Vectorial:Scalar operations</title>
-<para>
-<para/>
-<synopsis><link linkend="vadd">vadd</link> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis><para/>
-<synopsis><link linkend="vadd_i">vadd_i</link> ifn, ival, ielements [, idstoffset]</synopsis><para/>
-<synopsis><link linkend="vexp">vexp</link> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis><para/>
-<synopsis><link linkend="vexp_i">vexp_i</link> ifn, ival, ielements[, idstoffset]</synopsis><para/>
-<synopsis><link linkend="vmult">vmult</link> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis><para/>
-<synopsis><link linkend="vmult_i">vmult_i</link> ifn, ival, ielements [, idstoffset]</synopsis><para/>
-<synopsis><link linkend="vpow">vpow</link> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis><para/>
-<synopsis><link linkend="vpow_i">vpow_i</link> ifn, ival, ielements [, idstoffset]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Vectorial:Vectorial operations</title>
-<para>
-<para/>
-<synopsis><link linkend="vaddv">vaddv</link> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis><para/>
-<synopsis><link linkend="vaddv_i">vaddv_i</link> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis><para/>
-<synopsis><link linkend="vcopy">vcopy</link> ifn, ifn2, kelements [, kdstoffset] [, ksrcoffset] [, kverbose]</synopsis><para/>
-<synopsis><link linkend="vcopy_i">vcopy_i</link> ifn, ifn2, ielements [,idstoffset, isrcoffset]</synopsis><para/>
-<synopsis><link linkend="vdivv">vdivv</link> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis><para/>
-<synopsis><link linkend="vdivv_i">vdivv_i</link> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis><para/>
-<synopsis><link linkend="vexpv">vexpv</link> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis><para/>
-<synopsis><link linkend="vexpv_i">vexpv_i</link> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis><para/>
-<synopsis><link linkend="vmap">vmap</link> ifn1, ifn2, ielements [,idstoffset, isrcoffset]</synopsis><para/>
-<synopsis><link linkend="vmultv">vmultv</link> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis><para/>
-<synopsis><link linkend="vmultv_i">vmultv_i</link> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis><para/>
-<synopsis><link linkend="vpowv">vpowv</link> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis><para/>
-<synopsis><link linkend="vpowv_i">vpowv_i</link> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis><para/>
-<synopsis><link linkend="vsubv">vsubv</link> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis><para/>
-<synopsis><link linkend="vsubv_i">vsubv_i</link> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Vectorial:Envelopes</title>
-<para>
-<para/>
-<synopsis><link linkend="vexpseg">vexpseg</link> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis><para/>
-<synopsis><link linkend="vlinseg">vlinseg</link> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Vectorial:Limiting and Wrapping</title>
-<para>
-<para/>
-<synopsis><link linkend="vlimit">vlimit</link> ifn, kmin, kmax, ielements</synopsis><para/>
-<synopsis><link linkend="vmirror">vmirror</link> ifn, kmin, kmax, ielements</synopsis><para/>
-<synopsis><link linkend="vwrap">vwrap</link> ifn, kmin, kmax, ielements</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Vectorial:Delay Paths</title>
-<para>
-<para/>
-<synopsis>kout <link linkend="vdelayk">vdelayk</link> iksig, kdel, imaxdel [, iskip, imode]</synopsis><para/>
-<synopsis><link linkend="vecdelay">vecdelay</link> ifn, ifnIn, ifnDel, ielements, imaxdel [, iskip]
-</synopsis><para/>
-<synopsis><link linkend="vport">vport</link> ifn, khtime, ielements [, ifnInit]
-</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Vectorial:Random</title>
-<para>
-<para/>
-<synopsis><link linkend="vrandh">vrandh</link> ifn, krange, kcps, ielements [, idstoffset] [, iseed]
- [, isize] [, ioffset]</synopsis><para/>
-<synopsis><link linkend="vrandi">vrandi</link> ifn, krange, kcps, ielements [, idstoffset] [, iseed]
- [, isize] [, ioffset]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Vectorial:Cellular Automata</title>
-<para>
-<para/>
-<synopsis><link linkend="vcella">vcella</link> ktrig, kreinit, ioutFunc, initStateFunc, \
- iRuleFunc, ielements, irulelen [, iradius]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Zak Patch System</title>
-<para>
-<para/>
-<synopsis><link linkend="zacl">zacl</link> kfirst, klast</synopsis><para/>
-<synopsis><link linkend="zakinit">zakinit</link> isizea, isizek</synopsis><para/>
-<synopsis>ares <link linkend="zamod">zamod</link> asig, kzamod</synopsis><para/>
-<synopsis>ares <link linkend="zar">zar</link> kndx</synopsis><para/>
-<synopsis>ares <link linkend="zarg">zarg</link> kndx, kgain</synopsis><para/>
-<synopsis><link linkend="zaw">zaw</link> asig, kndx</synopsis><para/>
-<synopsis><link linkend="zawm">zawm</link> asig, kndx [, imix]</synopsis><para/>
-<synopsis>ir <link linkend="zir">zir</link> indx</synopsis><para/>
-<synopsis><link linkend="ziw">ziw</link> isig, indx</synopsis><para/>
-<synopsis><link linkend="ziwm">ziwm</link> isig, indx [, imix]</synopsis><para/>
-<synopsis><link linkend="zkcl">zkcl</link> kfirst, klast</synopsis><para/>
-<synopsis>kres <link linkend="zkmod">zkmod</link> ksig, kzkmod</synopsis><para/>
-<synopsis>kres <link linkend="zkr">zkr</link> kndx</synopsis><para/>
-<synopsis><link linkend="zkw">zkw</link> ksig, kndx</synopsis><para/>
-<synopsis><link linkend="zkwm">zkwm</link> ksig, kndx [, imix]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>OSC</title>
-<para>
-<para/>
-<synopsis>ihandle <link linkend="OSCinit">OSCinit</link> iport</synopsis><para/>
-<synopsis>kans <link linkend="OSClisten">OSClisten</link> ihandle, idest, itype [, xdata1, xdata2, ...]</synopsis><para/>
-<synopsis><link linkend="OSCsend">OSCsend</link> kwhen, ihost, iport, idestination, itype [, kdata1, kdata2, ...]</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Network</title>
-<para>
-<para/>
-<synopsis><link linkend="remoteport">remoteport</link> iportnum</synopsis><para/>
-<synopsis>asig <link linkend="sockrecv">sockrecv</link> iport, ilength</synopsis><synopsis>asigl, asigr <link linkend="sockrecv">sockrecvs</link> iport, ilength</synopsis><synopsis>asig <link linkend="sockrecv">strecv</link> Sipaddr, iport</synopsis><para/>
-<synopsis><link linkend="socksend">socksend</link> asig, Sipaddr, iport, ilength</synopsis><synopsis><link linkend="socksend">socksends</link> asigl, asigr, Sipaddr, iport,
- ilength</synopsis><synopsis><link linkend="socksend">stsend</link> asig, Sipaddr, iport</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Remote Opcodes</title>
-<para>
-<para/>
-<synopsis><link linkend="insglobal">insglobal</link>isource, instrnum [,instrnum...] </synopsis><para/>
-<synopsis><link linkend="insremot">insremot</link>idestination, isource, instrnum [,instrnum...] </synopsis><para/>
-<synopsis><link linkend="midglobal">midglobal</link>isource, instrnum [,instrnum...] </synopsis><para/>
-<synopsis><link linkend="midremot">midremot</link>idestination, isource, instrnum [,instrnum...] </synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Mixer Opcodes</title>
-<para>
-<para/>
-<synopsis><link linkend="MixerClear">MixerClear</link>&#160;</synopsis><para/>
-<synopsis>kgain <link linkend="MixerGetLevel">MixerGetLevel</link> isend, ibuss</synopsis><para/>
-<synopsis>asignal <link linkend="MixerReceive">MixerReceive</link> ibuss, ichannel</synopsis><para/>
-<synopsis><link linkend="MixerSend">MixerSend</link> asignal, isend, ibuss, ichannel</synopsis><para/>
-<synopsis><link linkend="MixerSetLevel">MixerSetLevel</link> isend, ibuss, kgain</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Image Processing Opcodes</title>
-<para>
-<para/>
-<synopsis>iimagenum <link linkend="imagecreate">imagecreate</link> iwidth, iheight</synopsis><para/>
-<synopsis><link linkend="imagefree">imagefree</link> iimagenum</synopsis><para/>
-<synopsis>ared agreen ablue <link linkend="imagegetpixel">imagegetpixel</link> iimagenum, ax, ay</synopsis><synopsis>kred kgreen kblue <link linkend="imagegetpixel">imagegetpixel</link> iimagenum, kx, ky</synopsis><para/>
-<synopsis>iimagenum <link linkend="imageload">imageload</link> filename</synopsis><para/>
-<synopsis><link linkend="imagesave">imagesave</link> iimagenum, filename</synopsis><para/>
-<synopsis><link linkend="imagesetpixel">imagegetpixel</link> iimagenum, ax, ay, ared, agreen, ablue</synopsis><synopsis><link linkend="imagesetpixel">imagegetpixel</link> iimagenum, kx, ky, kred, kgreen, kblue</synopsis><para/>
-<synopsis>iwidth iheight <link linkend="imagesize">imagesize</link> iimagenum</synopsis><para/>
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Miscellaneous</title>
-<para>
-<para/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<synopsis>ires <link linkend="system">system_i</link> itrig, Scmd, [inowait]</synopsis><synopsis>kres <link linkend="system">system</link> ktrig, Scmd, [knowait]</synopsis><para/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</para></formalpara>
-<para></para><para></para><formalpara>
-<title>Utilities</title>
-<para>
-<para/>
-<synopsis><link linkend="scaleutility">scale</link> [OPTIONS ... ] infile</synopsis><para/>
-</para></formalpara>
-<para></para></part>
diff --git a/misc/topXO.xml b/misc/topXO.xml
deleted file mode 100644
index d22a38f..0000000
--- a/misc/topXO.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- &miscquickref;
- &miscpitch;
- &miscamp;
- &miscformants;
- &miscmodalfreq;
- &miscwindows;
- &miscsf2;
- &miscglossary;
- &pfacehistory;
-<!-- &misccsound64; -->
diff --git a/miscopcodes/top.xml b/miscopcodes/top.xml
index c7d1bb7..fd6ef40 100644
--- a/miscopcodes/top.xml
+++ b/miscopcodes/top.xml
@@ -3,10 +3,9 @@
<title>Miscellaneous opcodes</title>
<para>Here is a list of opcodes that don't fall in any category:
<itemizedlist>
- <listitem><para><link linkend="system"><citetitle>system</citetitle></link> - Call an external program via the system call.</para></listitem>
- <listitem><para><link linkend="modmatrix"><citetitle>modmatrix</citetitle></link>
- - modulation matrix opcode with optimizations for sparse matrices.</para></listitem>
+ <listitem><link linkend="system"><citetitle>system</citetitle></link> - Call an external program via the system call.</listitem>
+ <listitem><link linkend="modmatrix"><citetitle>modmatrix</citetitle></link>
+ - modulation matrix opcode with optimizations for sparse matrices.</listitem>
</itemizedlist>
</para>
-
</chapter>
diff --git a/news.txt b/news.txt
deleted file mode 100644
index f8dcfd5..0000000
--- a/news.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-4.23-3 "Linear" Edition (April 24, 2004):
- * Thanks to a note from Matt J. Ingalls, made the if opcode's
- documentation more readable.
-
- * Thanks to a note from John ffitch, I added the formula for the
- tone opcode.
-
- * Corrected the example for the printk2 opcode.
-
- * Thanks to Iain McCurdy, added examples for these FLTK widget
- opcodes: flbox, flbutton, flcount, fljoy, flknob, flpanel,
- flroller, flscroll, flsetcolor, flslider, fltabs, fltext, and
- flvalue.
-
- * Added examples for the following score statements: r.
-
- * Thanks to a note from Dave Phillips, deleted the extraneous istep
- paragraph from the FLslider opcode's documentation.
-
- * Thanks to a note from Francisco Vila, updated the example for
- the pvsynth opcode.
-
- * Thanks to a note from Francisco Vila, clarified the example for
- the infamous CSD file format.
-
-
-4.23-2 "Now on SourceForge.net" Edition (December 1, 2003):
- * Thanks to a note from Matt J. Ingalls, made sure the entries
- for ink and outk were deprecated.
-
- * Thanks to Atte André Jensen, Matthew Gillard is now correctly
- credited for the wterrain opcode.
-
- * Thanks to Dr. Richard Boulanger for pointing out an error with the
- GEN01 routine.
-
- * Thanks to Kanata Motohashi for pointing out errors in the buzz,
- gbuzz, mxadsr, and pvscross opcodes.
-
- * Added examples for the following opcodes: tableng.
-
- * Added examples for the following GEN routines: 01, 02, 03, 05,
- 06, 07, 08, 09, 10, 11, 12, 13, 14, and 19.
-
- * Added an example for the FLknob opcode, thanks to Dave Phillips
- for letting use one of his posts to the Csound mailing list.
-
- * Thanks to a note from Ben Moran, updated the "See Also" section
- for the print opcode.
-
- * Gave Robin Whittle credit for the tablewa opcode.
-
- * Fixed a broken link to the explanation of the PVOC-EX format.
- Thanks goes to Robert Thompson for letting me know about it.
-
- * Added a "See Also" reference to the vco2 opcode from the vco
- opcode's documentation. Many readers of the on-line manual were
- finding the vco opcode but were overlooking vco2.
-
- * Made some changes thanks to Luis Jure. Fixed the documentation
- for the foscil opcode and the m statement. Made the Csound64
- documentation a little more readable. Also fixed the "Random
- (Noise) Generators" section of the Signal Generators chapter.
-
-
-4.23-1 "GNU Free Documentation Licensed" Edition (May 11, 2003):
- * Changed the license to the GNU Free Documentation License.
-
- * Added documentation for the following opcodes: bqrez, fprintks,
- fprints, nstrnum, prints, schedkwhennamed, and subinstrinit.
-
- * Added documentation for the new bug tracking system.
-
- * Added a pointer to the CsoundAV documentation.
-
- * Updated documentation for the following opcodes: event, massign,
- mute, pgmassign, prealloc, printks, schedule, schedwhen, sfinstr,
- sfinstr3, sfinstr3m, sfinstrm, sfplay, sfplay3, sfplaym, and
- subinstr.
-
- * Added examples for the following opcodes: soundin, sndwarp,
- subinstr, and wguide1.
-
- * Because it's easier to understand, I restored the use of the
- soundin opcode in the examples of the following opcodes: babo, bbcutm,
- cross2, dam, dcblock, dispfft, flanger, follow2, follow, fout, hilbert,
- hrtfer, interp, nreverb, peak, pitchamdf, pitch, soundin, tempest,
- and waveset.
-
- * Removed the example for the harmon opcode because it no longer works.
-
- * Updated the documentation for the grain3, linsegr, and madsr opcodes
- thanks to a note from Istvan Varga.
-
- * Updated the credits for trigseq, thanks to a note from Oeyvind
- Brandtsegg.
-
- * Corrected the formula listed for the dcblock opcode, thanks to a
- note from Anders Andersson.
-
- * Thanks to a note from David Gladstein, corrected the csoptions flag
- in the csd format and clarified the documentation for the schedule
- opcode.
-
- * Thanks to a note from Steven Yi, I added an appendix for the 64-bit
- version of Csound.
-
- * Thanks to a note from Matt J. Ingalls, clarified the documentation
- for the event opcode.
-
- * Thanks to a note from John ffitch, I changed the names of the
- parameters for the rand opcode. I also clarified what happens in the
- gbuzz opcode when the knh parameter is zero.
-
- * Thanks to a note from Gabriel Maldonado, added a warning about
- using integer values for ksmps.
-
- * Thanks to a note from Jason Thomas, got rid of the broken example
- for the GEN 05 routine.
diff --git a/opcode_list.txt b/opcode_list.txt
index 2d904e1..f2c5e55 100644
--- a/opcode_list.txt
+++ b/opcode_list.txt
@@ -18,240 +18,323 @@ FLslidBnk2Set FLslidBnk2Setk FLslidBnkGetHandle FLslidBnkSet
FLslidBnkSetk FLslider FLtabs FLtabsEnd
FLtabs_end FLtext FLupdate FLvalue
FLvkeybd FLvslidBnk FLvslidBnk2 FLxyin
-MixerClear MixerGetLevel MixerReceive MixerSend
-MixerSetLevel OSCinit OSClisten OSCrecv
-OSCsend a abs active
-add adsr adsyn adsynt
-adsynt2 aftouch alpass ampdb
-ampdbfs ampmidi and areson
-aresonk atone atonek atonex
-babo balance bamboo barmodel
-bbcutm bbcuts betarand bexprnd
-bformdec bformenc binit biquad
+JackoAudioIn JackoAudioInConnect JackoAudioOut JackoAudioOutConnect
+JackoFreewheel JackoInfo JackoInit JackoMidiInConnect
+JackoMidiOut JackoMidiOutConnect JackoNoteOut JackoOn
+JackoTransport MixerClear MixerGetLevel MixerReceive
+MixerSend MixerSetLevel MixerSetLevel_i OSCinit
+OSClisten OSCsend a abs
+active adsr adsyn adsynt
+adsynt2 aftouch alpass alwayson
+ampdb ampdbfs ampmidi ampmidid
+areson aresonk array atone
+atonek atonex babo balance
+bamboo barmodel bbcutm bbcuts
+betarand bexprnd bformdec bformdec1
+bformenc bformenc1 binit biquad
biquada birnd bqrez butbp
butbr buthp butlp butterbp
butterbr butterhp butterlp button
-buzz cabasa cauchy ceil
-cent cggoto chanctrl changed
-chani chano chebyshevpoly checkbox
-chn_S chn_a chn_k chnclear
-chnexport chnget chnmix chnparams
-chnrecv chnsend chnset cigoto
-ckgoto clear clfilt clip
-clockoff clockon cngoto cogoto
-comb compress control convle
-convolve cos cosh cosinv
+buzz cabasa cauchy cauchyi
+ceil cell cent centroid
+cggoto chanctrl changed chani
+chano chebyshevpoly checkbox chn_S
+chn_a chn_k chnclear chnexport
+chnget chnmix chnparams chnset
+chuap cigoto cingoto ckgoto
+clear clfilt clip clockoff
+clockon cngoto comb compileorc
+compilestr compress connect control
+convle convolve copy2ftab copy2ttab
+copya2ftab copyf2array cos cosh
+cosinv cosseg cossegb cossegr
cps2pch cpsmidi cpsmidib cpsmidinn
cpsoct cpspch cpstmid cpstun
-cpstuni cpsxpch cpuprc cross2
-crunch ctlchn ctrl14 ctrl21
-ctrl7 ctrlinit cuserrnd dam
-date dates db dbamp
-dbfsamp dcblock dconv delay
+cpstuni cpsxpch cpumeter cpuprc
+cross2 crossfm crossfmi crossfmpm
+crossfmpmi crosspm crosspmi crunch
+ctlchn ctrl14 ctrl21 ctrl7
+ctrlinit cuserrnd dam date
+dates db dbamp dbfsamp
+dcblock dcblock2 dconv delay
delay1 delayk delayr delayw
deltap deltap3 deltapi deltapn
deltapx deltapxw denorm diff
diskgrain diskin diskin2 dispfft
-display distort distort1 div
-divz downsamp dripwater dumpk
-dumpk2 dumpk3 dumpk4 duserrnd
-endin endop envlpx envlpxr
-eqfil event event_i exitnow
-exp expcurve expon exprand
-expseg expsega expsegr ficlose
-filelen filenchnls filepeak filesr
-filter2 fin fini fink
-fiopen flanger flashtxt flooper
-flooper2 flooper3 floor fluidAllOut
+display distort distort1 divz
+doppler downsamp dripwater dssiactivate
+dssiaudio dssictls dssiinit dssilist
+dumpk dumpk2 dumpk3 dumpk4
+duserrnd dust dust2 endin
+endop envlpx envlpxr ephasor
+eqfil evalstr event event_i
+exitnow exp expcurve expon
+exprand exprandi expseg expsega
+expsegb expsegba expsegr fareylen
+fareyleni ficlose filebit filelen
+filenchnls filepeak filesr filevalid
+fillarray filter2 fin fini
+fink fiopen flanger flashtxt
+flooper flooper2 floor fluidAllOut
fluidCCi fluidCCk fluidControl fluidEngine
fluidLoad fluidNote fluidOut fluidProgramSelect
-fmb3 fmbell fmmetal fmpercfl
-fmrhode fmvoice fmwurlie fof
-fof2 fofilter fog fold
-follow follow2 foscil foscili
-fout fouti foutir foutk
-fprintks fprints frac freeverb
-ftchnls ftconv ftfree ftgen
+fluidSetInterpMethod fmb3 fmbell fmmetal
+fmpercfl fmrhode fmvoice fmwurlie
+fof fof2 fofilter fog
+fold follow follow2 foscil
+foscili fout fouti foutir
+foutk fprintks fprints frac
+fractalnoise freeverb ftchnls ftconv
+ftcps ftfree ftgen ftgenonce
ftgentmp ftlen ftload ftloadk
-ftlptim ftmorf ftsave ftsavek
-ftsr gain gainslider gauss
-gbuzz getcfg gogobel goto
-grain grain2 grain3 granule
-guiro harmon harmon2 harmon3
-harmon4 hilbert hrtfer hrtfmove
-hrtfmove2 hrtfstat hsboscil hvs1
-hvs2 hvs3 i iampmidid
-igoto ihold imagecreate imagefree
-imagegetpixel imageload imagesave imagesetpixel
-imagesize in in32 inch
-inh init initc14 initc21
-initc7 ino inq inrg
-ins insglobal insremot instr
-int integ interp invalue
-inx inz jack_transport jitter
-jitter2 jspline k kampmidid
-kgoto ktableseg lfo limit
+ftlptim ftmorf ftresize ftresizei
+ftsave ftsavek ftsr gain
+gainslider gauss gaussi gausstrig
+gbuzz genarray genarray_i gendy
+gendyc gendyx getcfg gogobel
+goto grain grain2 grain3
+granule guiro harmon harmon2
+harmon3 harmon4 hilbert hrtfearly
+hrtfer hrtfmove hrtfmove2 hrtfreverb
+hrtfstat hsboscil hvs1 hvs2
+hvs3 i igoto ihold
+imagecreate imagefree imagegetpixel imageload
+imagesave imagesetpixel imagesize in
+in32 inch inh init
+initc14 initc21 initc7 inleta
+inletf inletk inletkid ino
+inq inrg ins insglobal
+insremot instr int integ
+interp invalue inx inz
+jacktransport jitter jitter2 joystick
+jspline k kgoto ktableseg
+la_i_add_mc la_i_add_mr la_i_add_vc la_i_add_vr
+la_i_assign_mc la_i_assign_mr la_i_assign_t la_i_assign_vc
+la_i_assign_vr la_i_conjugate_mc la_i_conjugate_mr la_i_conjugate_vc
+la_i_conjugate_vr la_i_distance_vc la_i_distance_vr la_i_divide_mc
+la_i_divide_mr la_i_divide_vc la_i_divide_vr la_i_dot_mc
+la_i_dot_mc_vc la_i_dot_mr la_i_dot_mr_vr la_i_dot_vc
+la_i_dot_vr la_i_get_mc la_i_get_mr la_i_get_vc
+la_i_get_vr la_i_invert_mc la_i_invert_mr la_i_lower_solve_mc
+la_i_lower_solve_mr la_i_lu_det_mc la_i_lu_det_mr la_i_lu_factor_mc
+la_i_lu_factor_mr la_i_lu_solve_mc la_i_lu_solve_mr la_i_mc_create
+la_i_mc_set la_i_mr_create la_i_mr_set la_i_multiply_mc
+la_i_multiply_mr la_i_multiply_vc la_i_multiply_vr la_i_norm1_mc
+la_i_norm1_mr la_i_norm1_vc la_i_norm1_vr la_i_norm_euclid_mc
+la_i_norm_euclid_mr la_i_norm_euclid_vc la_i_norm_euclid_vr la_i_norm_inf_mc
+la_i_norm_inf_mr la_i_norm_inf_vc la_i_norm_inf_vr la_i_norm_max_mc
+la_i_norm_max_mr la_i_print_mc la_i_print_mr la_i_print_vc
+la_i_print_vr la_i_qr_eigen_mc la_i_qr_eigen_mr la_i_qr_factor_mc
+la_i_qr_factor_mr la_i_qr_sym_eigen_mc la_i_qr_sym_eigen_mr la_i_random_mc
+la_i_random_mr la_i_random_vc la_i_random_vr la_i_size_mc
+la_i_size_mr la_i_size_vc la_i_size_vr la_i_subtract_mc
+la_i_subtract_mr la_i_subtract_vc la_i_subtract_vr la_i_t_assign
+la_i_trace_mc la_i_trace_mr la_i_transpose_mc la_i_transpose_mr
+la_i_upper_solve_mc la_i_upper_solve_mr la_i_vc_create la_i_vc_set
+la_i_vr_create la_i_vr_set la_k_a_assign la_k_add_mc
+la_k_add_mr la_k_add_vc la_k_add_vr la_k_assign_a
+la_k_assign_f la_k_assign_mc la_k_assign_mr la_k_assign_t
+la_k_assign_vc la_k_assign_vr la_k_conjugate_mc la_k_conjugate_mr
+la_k_conjugate_vc la_k_conjugate_vr la_k_current_f la_k_current_vr
+la_k_distance_vc la_k_distance_vr la_k_divide_mc la_k_divide_mr
+la_k_divide_vc la_k_divide_vr la_k_dot_mc la_k_dot_mc_vc
+la_k_dot_mr la_k_dot_mr_vr la_k_dot_vc la_k_dot_vr
+la_k_f_assign la_k_get_mc la_k_get_mr la_k_get_vc
+la_k_get_vr la_k_invert_mc la_k_invert_mr la_k_lower_solve_mc
+la_k_lower_solve_mr la_k_lu_det_mc la_k_lu_det_mr la_k_lu_factor_mc
+la_k_lu_factor_mr la_k_lu_solve_mc la_k_lu_solve_mr la_k_mc_set
+la_k_mr_set la_k_multiply_mc la_k_multiply_mr la_k_multiply_vc
+la_k_multiply_vr la_k_norm1_mc la_k_norm1_mr la_k_norm1_vc
+la_k_norm1_vr la_k_norm_euclid_mc la_k_norm_euclid_mr la_k_norm_euclid_vc
+la_k_norm_euclid_vr la_k_norm_inf_mc la_k_norm_inf_mr la_k_norm_inf_vc
+la_k_norm_inf_vr la_k_norm_max_mc la_k_norm_max_mr la_k_qr_eigen_mc
+la_k_qr_eigen_mr la_k_qr_factor_mc la_k_qr_factor_mr la_k_qr_sym_eigen_mc
+la_k_qr_sym_eigen_mr la_k_random_mc la_k_random_mr la_k_random_vc
+la_k_random_vr la_k_subtract_mc la_k_subtract_mr la_k_subtract_vc
+la_k_subtract_vr la_k_t_assign la_k_trace_mc la_k_trace_mr
+la_k_upper_solve_mc la_k_upper_solve_mr la_k_vc_set la_k_vr_set
+lenarray lentab lfo limit
line linen linenr lineto
-linrand linseg linsegr locsend
-locsig log log10 logbtwo
-logcurve loop_ge loop_gt loop_le
-loop_lt loopseg loopsegp lorenz
+linrand linseg linsegb linsegr
+locsend locsig log log10
+log2 logbtwo logcurve loop_ge
+loop_gt loop_le loop_lt loopseg
+loopsegp looptseg loopxseg lorenz
loscil loscil3 loscilx lowpass2
-lowres lowresx lpf18 lpfreson
-lphasor lpinterp lposcil lposcil3
-lposcila lposcilsa lposcilsa2 lpread
-lpreson lpshold lpsholdp lpslot
-mac maca madsr mandel
-mandol marimba massign max
-max_k maxabs maxabsaccum maxaccum
-maxalloc maxk mclock mdelay
-metro midglobal midic14 midic21
-midic7 midichannelaftertouch midichn midicontrolchange
-midictrl mididefault midiin midinoteoff
-midinoteoncps midinoteonkey midinoteonoct midinoteonpch
-midion midion2 midiout midipgm
-midipitchbend midipolyaftertouch midiprogramchange miditempo
-midremot min minabs minabsaccum
-minaccum mirror mod mode
-monitor moog moogladder moogvcf
-moogvcf2 moscil mpulse mrtmsg
-mul multitap mute mutex_lock
-mutex_locki mutex_unlock mutex_unlocki mxadsr
-nestedap nlalp nlfilt noise
-not noteoff noteon noteondur
-noteondur2 notnum nreverb nrpn
-nsamp nstrnum ntrpol octave
-octcps octmidi octmidib octmidinn
-octpch opcode or oscbnk
-oscil oscil1 oscil1i oscil3
-oscili oscilikt osciliktp oscilikts
-osciln oscils oscilv oscilx
-out out32 outc outch
-outh outiat outic outic14
-outipat outipb outipc outkat
-outkc outkc14 outkpat outkpb
-outkpc outo outq outq1
-outq2 outq3 outq4 outrg
-outs outs1 outs2 outvalue
-outx outz p pan
-pan2 pareq partials partikkel
-partikkelsync pcauchy pchbend pchmidi
+lowres lowresx lpf18 lpform
+lpfreson lphasor lpinterp lposcil
+lposcil3 lposcila lposcilsa lposcilsa2
+lpread lpreson lpshold lpsholdp
+lpslot lua_exec lua_iaopcall lua_iaopcall_off
+lua_ikopcall lua_ikopcall_off lua_iopcall lua_iopcall_off
+lua_opdef mac maca madsr
+mandel mandol maparray maparray_i
+marimba massign max max_k
+maxabs maxabsaccum maxaccum maxalloc
+maxarray maxtab mclock mdelay
+median mediank metro midglobal
+midic14 midic21 midic7 midichannelaftertouch
+midichn midicontrolchange midictrl mididefault
+midifilestatus midiin midinoteoff midinoteoncps
+midinoteonkey midinoteonoct midinoteonpch midion
+midion2 midiout midipgm midipitchbend
+midipolyaftertouch midiprogramchange miditempo midremot
+min minabs minabsaccum minaccum
+minarray mincer mintab mirror
+mode modmatrix monitor moog
+moogladder moogvcf moogvcf2 moscil
+mp3in mp3len mpulse mrtmsg
+multitap mute mxadsr nestedap
+nlalp nlfilt nlfilt2 noise
+noteoff noteon noteondur noteondur2
+notnum nreverb nrpn nsamp
+nstrnum ntrpol octave octcps
+octmidi octmidib octmidinn octpch
+opcode oscbnk oscil oscil1
+oscil1i oscil3 oscili oscilikt
+osciliktp oscilikts osciln oscils
+oscilx out out32 outc
+outch outh outiat outic
+outic14 outipat outipb outipc
+outkat outkc outkc14 outkpat
+outkpb outkpc outleta outletf
+outletk outletkid outo outq
+outq1 outq2 outq3 outq4
+outrg outs outs1 outs2
+outvalue outx outz p
+pan pan2 pareq partials
+partikkel partikkelget partikkelset partikkelsync
+passign pcauchy pchbend pchmidi
pchmidib pchmidinn pchoct pconvolve
pcount pdclip pdhalf pdhalfy
peak pgmassign pgmchn phaser1
phaser2 phasor phasorbnk pindex
-pinkish pitch pitchamdf planet
-pluck poisson polyaft polynomial
-pop pop_f port portk
-poscil poscil3 pow powershape
-powoftwo prealloc prepiano print
-printf printf_i printk printk2
-printks prints product pset
+pinkish pitch pitchac pitchamdf
+planet platerev plltrack pluck
+poisson polyaft polynomial pop
+pop_f port portk poscil
+poscil3 pow powershape powoftwo
+prealloc prepiano print printf
+printf_i printk printk2 printks
+prints product pset ptable
+ptable3 ptablei ptableiw ptablew
ptrack push push_f puts
pvadd pvbufread pvcross pvinterp
-pvoc pvread pvsadsyn pvsanal
-pvsarp pvsbandp pvsbandr pvsbin
-pvsblur pvsbuffer pvsbufread pvscale
-pvscent pvscross pvsdemix pvsdiskin
-pvsdisp pvsfilter pvsfread pvsfreeze
-pvsftr pvsftw pvsfwrite pvshift
-pvsifd pvsin pvsinfo pvsinit
-pvsmaska pvsmix pvsmooth pvsmorph
-pvsosc pvsout pvspitch pvstencil
-pvsvoc pvsynth pyassign pyassigni
-pyassignt pycall pycall1 pycall1i
-pycall1t pycall2 pycall2i pycall2t
-pycall3 pycall3i pycall3t pycall4
-pycall4i pycall4t pycall5 pycall5i
-pycall5t pycall6 pycall6i pycall6t
-pycall7 pycall7i pycall7t pycall8
-pycall8i pycall8t pycalli pycalln
-pycallni pycallt pyeval pyevali
-pyevalt pyexec pyexeci pyexect
-pyinit pylassign pylassigni pylassignt
-pylcall pylcall1 pylcall1i pylcall1t
-pylcall2 pylcall2i pylcall2t pylcall3
-pylcall3i pylcall3t pylcall4 pylcall4i
-pylcall4t pylcall5 pylcall5i pylcall5t
-pylcall6 pylcall6i pylcall6t pylcall7
-pylcall7i pylcall7t pylcall8 pylcall8i
-pylcall8t pylcalli pylcalln pylcallni
-pylcallt pyleval pylevali pylevalt
-pylexec pylexeci pylexect pylrun
-pylruni pylrunt pyrun pyruni
-pyrunt rand randh randi
-random randomh randomi rbjeq
-readclock readk readk2 readk3
-readk4 reinit release remoteport
+pvoc pvread pvs2tab pvsadsyn
+pvsanal pvsarp pvsbandp pvsbandr
+pvsbin pvsblur pvsbuffer pvsbufread
+pvsbufread2 pvscale pvscent pvscross
+pvsdemix pvsdiskin pvsdisp pvsenvftw
+pvsfilter pvsfread pvsfreeze pvsftr
+pvsftw pvsfwrite pvsgain pvsgendy
+pvshift pvsifd pvsin pvsinfo
+pvsinit pvslock pvsmaska pvsmix
+pvsmooth pvsmorph pvsosc pvsout
+pvspitch pvstanal pvstencil pvsvoc
+pvswarp pvsynth pwd pyassign
+pyassigni pyassignt pycall pycall1
+pycall1i pycall1t pycall2 pycall2i
+pycall2t pycall3 pycall3i pycall3t
+pycall4 pycall4i pycall4t pycall5
+pycall5i pycall5t pycall6 pycall6i
+pycall6t pycall7 pycall7i pycall7t
+pycall8 pycall8i pycall8t pycalli
+pycalln pycallni pycallt pyeval
+pyevali pyevalt pyexec pyexeci
+pyexect pyinit pylassign pylassigni
+pylassignt pylcall pylcall1 pylcall1i
+pylcall1t pylcall2 pylcall2i pylcall2t
+pylcall3 pylcall3i pylcall3t pylcall4
+pylcall4i pylcall4t pylcall5 pylcall5i
+pylcall5t pylcall6 pylcall6i pylcall6t
+pylcall7 pylcall7i pylcall7t pylcall8
+pylcall8i pylcall8t pylcalli pylcalln
+pylcallni pylcallt pyleval pylevali
+pylevalt pylexec pylexeci pylexect
+pylrun pylruni pylrunt pyrun
+pyruni pyrunt qinf qnan
+rand randh randi random
+randomh randomi rbjeq readclock
+readf readfi readk readk2
+readk3 readk4 readks readscore
+readscratch reinit release remoteport
remove repluck reson resonk
resonr resonx resonxk resony
-resonz resyn reverb reverb2
-reverbsc rezzy rigoto rireturn
-rms rnd rnd31 round
-rspline rtclock s16b14 s32b14
-samphold sandpaper scale scanhammer
+resonz resyn return reverb
+reverb2 reverbsc rewindscore rezzy
+rigoto rireturn rms rnd
+rnd31 round rspline rtclock
+s16b14 s32b14 samphold sandpaper
+scale scalearray scalet scanhammer
scans scantable scanu schedkwhen
schedkwhennamed schedule schedwhen scoreline
scoreline_i seed sekere semitone
sense sensekey seqtime seqtime2
-setctrl setksmps sfilist sfinstr
+serialBegin serialEnd serialFlush serialPrint
+serialRead serialWrite serialWrite_i setctrl
+setksmps setscorepos sfilist sfinstr
sfinstr3 sfinstr3m sfinstrm sfload
sflooper sfpassign sfplay sfplay3
sfplay3m sfplaym sfplist sfpreset
-shaker shl shr sin
-sinh sininv sinsyn sleighbells
+shaker signum sin sinh
+sininv sinsyn sleighbells slicearray
slider16 slider16f slider16table slider16tablef
slider32 slider32f slider32table slider32tablef
slider64 slider64f slider64table slider64tablef
slider8 slider8f slider8table slider8tablef
sliderKawai sndload sndloop sndwarp
sndwarpst sockrecv sockrecvs socksend
-socksends soundin soundout soundouts
-space spat3d spat3di spat3dt
-spdist specaddm specdiff specdisp
-specfilt spechist specptrk specscal
-specsum spectrum splitrig sprintf
-sprintfk spsend sqrt stack
-statevar stix strcat strcatk
-strchar strchark strcmp strcmpk
-strcpy strcpyk strecv streson
-strget strindex strindexk strlen
-strlenk strlower strlowerk strrindex
-strrindexk strset strsub strsubk
-strtod strtodk strtol strtolk
-strupper strupperk stsend sub
-subinstr subinstrinit sum svfilter
-syncgrain syncloop syncphasor system
-system_i tab tab_i table
-table3 tablecopy tablegpw tablei
-tableicopy tableigpw tableikt tableimix
-tableiw tablekt tablemix tableng
-tablera tableseg tablew tablewa
-tablewkt tablexkt tablexseg tabmorph
-tabmorpha tabmorphak tabmorphi tabplay
-tabrec tabw tabw_i tambourine
-tan tanh taninv taninv2
-tb0 tb0_init tb1 tb10
-tb10_init tb11 tb11_init tb12
-tb12_init tb13 tb13_init tb14
-tb14_init tb15 tb15_init tb1_init
-tb2 tb2_init tb3 tb3_init
-tb4 tb4_init tb5 tb5_init
-tb6 tb6_init tb7 tb7_init
-tb8 tb8_init tb9 tb9_init
-tbvcf tempest tempo tempoval
-tigoto timedseq timeinstk timeinsts
-timek times timout tival
-tlineto tone tonek tonex
-tradsyn trandom transeg trcross
+socksend_k socksends soundin soundout
+soundouts space spat3d spat3di
+spat3dt spdist specaddm specdiff
+specdisp specfilt spechist specptrk
+specscal specsum spectrum splitrig
+sprintf sprintfk spsend sqrt
+stack statevar stix strcat
+strcatk strchar strchark strcmp
+strcmpk strcpy strcpyk strecv
+streson strget strindex strindexk
+strlen strlenk strlower strlowerk
+strrindex strrindexk strset strsub
+strsubk strtod strtodk strtol
+strtolk strupper strupperk stsend
+subinstr subinstrinit sum sumarray
+sumtab svfilter syncgrain syncloop
+syncphasor system system_i tab
+tab2pvs tab_i tabgen table
+table3 table3kt tablecopy tablefilter
+tablefilteri tablegpw tablei tableicopy
+tableigpw tableikt tableimix tableiw
+tablekt tablemix tableng tablera
+tableseg tableshuffle tableshufflei tablew
+tablewa tablewkt tablexkt tablexseg
+tabmap tabmap_i tabmorph tabmorpha
+tabmorphak tabmorphi tabplay tabrec
+tabslice tabsum tabw tabw_i
+tambourine tan tanh taninv
+taninv2 tb0 tb0_init tb1
+tb10 tb10_init tb11 tb11_init
+tb12 tb12_init tb13 tb13_init
+tb14 tb14_init tb15 tb15_init
+tb1_init tb2 tb2_init tb3
+tb3_init tb4 tb4_init tb5
+tb5_init tb6 tb6_init tb7
+tb7_init tb8 tb8_init tb9
+tb9_init tbvcf tempest tempo
+temposcal tempoval tigoto timedseq
+timeinstk timeinsts timek times
+timout tival tlineto tone
+tonek tonex tradsyn trandom
+transeg transegb transegr trcross
trfilter trhighest trigger trigseq
trirand trlowest trmix trscale
trshift trsplit turnoff turnoff2
-turnon unirand upsamp urd
-vadd vadd_i vaddv vaddv_i
-vaget valpass vaset vbap16
-vbap16move vbap4 vbap4move vbap8
-vbap8move vbaplsinit vbapz vbapzmove
+turnon unirand upsamp urandom
+urd vadd vadd_i vaddv
+vaddv_i vaget valpass vaset
+vbap vbap16 vbap1move vbap4
+vbap4move vbap8 vbap8move vbapg
+vbaplsinit vbapmove vbapz vbapzmove
vcella vco vco2 vco2ft
vco2ift vco2init vcomb vcopy
vcopy_i vdel_k vdelay vdelay3
@@ -262,23 +345,22 @@ vexp_i vexpseg vexpv vexpv_i
vibes vibr vibrato vincr
vlimit vlinseg vlowres vmap
vmirror vmult vmult_i vmultv
-vmultv_i voice vphaseseg vport
-vpow vpow_i vpowv vpowv_i
-vpvoc vrandh vrandi vstaudio
-vstaudiog vstbankload vstbanksave vstedit
-vstinfo vstinit vstmidiout vstnote
-vstnoteondur vstparamget vstparamset vstprogset
-vsttempo vsubv vsubv_i vtaba
-vtabi vtabk vtable1k vtablea
-vtablei vtablek vtablewa vtablewi
-vtablewk vtabwa vtabwi vtabwk
-vwrap waveset weibull wgbow
-wgbowedbar wgbrass wgclar wgflute
-wgpluck wgpluck2 wguide1 wguide2
-wrap wterrain xadsr xin
-xor xout xscanmap xscans
-xscansmap xscanu xtratim xyin
-zacl zakinit zamod zar
-zarg zaw zawm zfilter2
-zir ziw ziwm zkcl
-zkmod zkr zkw zkwm \ No newline at end of file
+vmultv_i voice vosim vphaseseg
+vport vpow vpow_i vpowv
+vpowv_i vpvoc vrandh vrandi
+vsubv vsubv_i vtaba vtabi
+vtabk vtable1k vtablea vtablei
+vtablek vtablewa vtablewi vtablewk
+vtabwa vtabwi vtabwk vwrap
+waveset weibull wgbow wgbowedbar
+wgbrass wgclar wgflute wgpluck
+wgpluck2 wguide1 wguide2 wiiconnect
+wiidata wiirange wiisend wrap
+writescratch wterrain xadsr xin
+xout xscanmap xscans xscansmap
+xscanu xtratim xyin zacl
+zakinit zamod zar zarg
+zaw zawm zfilter2 zir
+ziw ziwm zkcl zkmod
+zkr zkw zkwm
+
diff --git a/opcode_listXO.txt b/opcode_listXO.txt
deleted file mode 100644
index 8d17aa7..0000000
--- a/opcode_listXO.txt
+++ /dev/null
@@ -1,226 +0,0 @@
-MixerClear MixerGetLevel MixerReceive MixerSend
-MixerSetLevel OSCinit OSClisten OSCrecv
-OSCsend a abs active
-add adsr adsyn adsynt
-adsynt2 aftouch alpass ampdb
-ampdbfs ampmidi and areson
-aresonk atone atonek atonex
-balance bamboo barmodel bbcutm
-bbcuts betarand bexprnd binit
-biquad biquada birnd bqrez
-butbp butbr buthp butlp
-butterbp butterbr butterhp butterlp
-buzz cabasa cauchy ceil
-cent cggoto chanctrl changed
-chani chano chebyshevpoly chn_S
-chn_a chn_k chnclear chnexport
-chnget chnmix chnparams chnrecv
-chnsend chnset cigoto ckgoto
-clear clfilt clip clockoff
-clockon cngoto cogoto comb
-compress convle convolve cos
-cosh cosinv cps2pch cpsmidi
-cpsmidib cpsmidinn cpsoct cpspch
-cpstmid cpstun cpstuni cpsxpch
-cpuprc cross2 crunch ctlchn
-ctrl14 ctrl21 ctrl7 ctrlinit
-cuserrnd dam date dates
-db dbamp dbfsamp dcblock
-dconv delay delay1 delayk
-delayr delayw deltap deltap3
-deltapi deltapn deltapx deltapxw
-denorm diff diskgrain diskin
-diskin2 dispfft display distort
-distort1 div divz downsamp
-dripwater dumpk dumpk2 dumpk3
-dumpk4 duserrnd endin endop
-envlpx envlpxr eqfil event
-event_i exitnow exp expcurve
-expon exprand expseg expsega
-expsegr ficlose filelen filenchnls
-filepeak filesr filter2 fin
-fini fink fiopen flanger
-flooper flooper2 flooper3 floor
-fmb3 fmbell fmmetal fmpercfl
-fmrhode fmvoice fmwurlie fof
-fof2 fofilter fog fold
-follow follow2 foscil foscili
-fout fouti foutir foutk
-fprintks fprints frac freeverb
-ftchnls ftconv ftfree ftgen
-ftgentmp ftlen ftload ftloadk
-ftlptim ftmorf ftsave ftsavek
-ftsr gain gainslider gauss
-gbuzz getcfg gogobel goto
-grain grain2 grain3 granule
-guiro harmon harmon2 harmon3
-harmon4 hilbert hrtfmove hrtfmove2
-hrtfstat hsboscil hvs1 hvs2
-hvs3 i iampmidid igoto
-ihold imagecreate imagefree imagegetpixel
-imageload imagesave imagesetpixel imagesize
-in inch init initc14
-initc21 initc7 ins insglobal
-insremot instr int integ
-interp invalue inz jitter
-jitter2 jspline k kampmidid
-kgoto ktableseg lfo limit
-line linen linenr lineto
-linrand linseg linsegr locsend
-locsig log log10 logbtwo
-logcurve loop_ge loop_gt loop_le
-loop_lt loopseg loopsegp lorenz
-loscil loscil3 loscilx lowpass2
-lowres lowresx lpf18 lpfreson
-lphasor lpinterp lposcil lposcil3
-lposcila lposcilsa lposcilsa2 lpread
-lpreson lpshold lpsholdp lpslot
-mac maca madsr mandel
-mandol marimba massign max
-max_k maxabs maxabsaccum maxaccum
-maxalloc maxk mclock mdelay
-metro midglobal midic14 midic21
-midic7 midichannelaftertouch midichn midicontrolchange
-midictrl mididefault midiin midinoteoff
-midinoteoncps midinoteonkey midinoteonoct midinoteonpch
-midion midion2 midiout midipgm
-midipitchbend midipolyaftertouch midiprogramchange miditempo
-midremot min minabs minabsaccum
-minaccum mirror mod mode
-monitor moog moogladder moogvcf
-moogvcf2 moscil mpulse mrtmsg
-mul multitap mute mutex_lock
-mutex_locki mutex_unlock mutex_unlocki mxadsr
-nestedap nlalp nlfilt noise
-not noteoff noteon noteondur
-noteondur2 notnum nreverb nrpn
-nsamp nstrnum ntrpol octave
-octcps octmidi octmidib octmidinn
-octpch oggread opcode or
-oscbnk oscil oscil1 oscil1i
-oscil3 oscili oscilikt osciliktp
-oscilikts osciln oscils oscilx
-out outc outch outiat
-outic outic14 outipat outipb
-outipc outkat outkc outkc14
-outkpat outkpb outkpc outs
-outs1 outs2 outvalue outz
-p pan pan2 pareq
-partials partikkel partikkelsync pcauchy
-pchbend pchmidi pchmidib pchmidinn
-pchoct pconvolve pcount pdclip
-pdhalf pdhalfy peak pgmassign
-pgmchn phaser1 phaser2 phasor
-phasorbnk pindex pinkish pitch
-pitchamdf planet pluck poisson
-polyaft polynomial pop pop_f
-port portk poscil poscil3
-pow powershape powoftwo prealloc
-prepiano print printf printf_i
-printk printk2 printks prints
-product pset ptrack push
-push_f puts pvadd pvbufread
-pvcross pvinterp pvoc pvread
-pvsadsyn pvsanal pvsarp pvsbandp
-pvsbandr pvsbin pvsblur pvsbuffer
-pvsbufread pvscale pvscent pvscross
-pvsdemix pvsdiskin pvsdisp pvsfilter
-pvsfread pvsfreeze pvsftr pvsftw
-pvsfwrite pvshift pvsifd pvsin
-pvsinfo pvsinit pvsmaska pvsmix
-pvsmooth pvsmorph pvsosc pvsout
-pvspitch pvstencil pvsvoc pvsynth
-rand randh randi random
-randomh randomi rbjeq readclock
-readk readk2 readk3 readk4
-reinit release remoteport remove
-repluck reson resonk resonr
-resonx resonxk resony resonz
-resyn reverb reverb2 reverbsc
-rezzy rigoto rireturn rms
-rnd rnd31 round rspline
-rtclock s16b14 s32b14 samphold
-sandpaper scale scanhammer scans
-scantable scanu schedkwhen schedkwhennamed
-schedule schedwhen scoreline scoreline_i
-seed sekere semitone sense
-sensekey seqtime seqtime2 setksmps
-sfilist sfinstr sfinstr3 sfinstr3m
-sfinstrm sfload sflooper sfpassign
-sfplay sfplay3 sfplay3m sfplaym
-sfplist sfpreset shaker shl
-shr sin sinh sininv
-sinsyn sleighbells slider16 slider16f
-slider16table slider16tablef slider32 slider32f
-slider32table slider32tablef slider64 slider64f
-slider64table slider64tablef slider8 slider8f
-slider8table slider8tablef sliderKawai sndload
-sndloop sndwarp sndwarpst sockrecv
-sockrecvs socksend socksends soundin
-soundout soundouts space spdist
-splitrig sprintf sprintfk spsend
-sqrt stack statevar stix
-strcat strcatk strchar strchark
-strcmp strcmpk strcpy strcpyk
-strecv streson strget strindex
-strindexk strlen strlenk strlower
-strlowerk strrindex strrindexk strset
-strsub strsubk strtod strtodk
-strtol strtolk strupper strupperk
-stsend sub subinstr subinstrinit
-sum svfilter syncgrain syncloop
-syncphasor system system_i tab
-tab_i table table3 tablecopy
-tablegpw tablei tableicopy tableigpw
-tableikt tableimix tableiw tablekt
-tablemix tableng tablera tableseg
-tablew tablewa tablewkt tablexkt
-tablexseg tabmorph tabmorpha tabmorphak
-tabmorphi tabplay tabrec tabw
-tabw_i tambourine tan tanh
-taninv taninv2 tb0 tb0_init
-tb1 tb10 tb10_init tb11
-tb11_init tb12 tb12_init tb13
-tb13_init tb14 tb14_init tb15
-tb15_init tb1_init tb2 tb2_init
-tb3 tb3_init tb4 tb4_init
-tb5 tb5_init tb6 tb6_init
-tb7 tb7_init tb8 tb8_init
-tb9 tb9_init tbvcf tempest
-tempo tempoval tigoto timedseq
-timeinstk timeinsts timek times
-timout tival tlineto tone
-tonek tonex tradsyn trandom
-transeg trcross trfilter trhighest
-trigger trigseq trirand trlowest
-trmix trscale trshift trsplit
-turnoff turnoff2 turnon unirand
-upsamp urd vadd vadd_i
-vaddv vaddv_i vaget valpass
-vaset vcella vco vco2
-vco2ft vco2ift vco2init vcomb
-vcopy vcopy_i vdel_k vdelay
-vdelay3 vdelayk vdelayx vdelayxq
-vdelayxs vdelayxw vdelayxwq vdelayxws
-vdivv vdivv_i vecdelay veloc
-vexp vexp_i vexpseg vexpv
-vexpv_i vibes vibr vibrato
-vincr vlimit vlinseg vlowres
-vmap vmirror vmult vmult_i
-vmultv vmultv_i voice vosim
-vphaseseg vport vpow vpow_i
-vpowv vpowv_i vpvoc vrandh
-vrandi vsubv vsubv_i vtaba
-vtabi vtabk vtable1k vtablea
-vtablei vtablek vtablewa vtablewi
-vtablewk vtabwa vtabwi vtabwk
-vwrap waveset weibull wgbow
-wgbowedbar wgbrass wgclar wgflute
-wgpluck wgpluck2 wguide1 wguide2
-wrap wterrain xadsr xin
-xor xout xscanmap xscans
-xscansmap xscanu xtratim xyin
-zacl zakinit zamod zar
-zarg zaw zawm zfilter2
-zir ziw ziwm zkcl
-zkmod zkr zkw zkwm \ No newline at end of file
diff --git a/opcodeparser.py b/opcodeparser.py
index 1108a8f..fac71ec 100644
--- a/opcodeparser.py
+++ b/opcodeparser.py
@@ -32,15 +32,20 @@ files[len(files):]=glob.glob('opcodes/*/*.xml')
files[len(files):]=glob.glob('vectorial/*.xml')
files[len(files):]=glob.glob('utility/*.xml')
files.sort()
+if files.index('opcodes/topXO.xml') >= 0:
+ files.remove('opcodes/topXO.xml')
headerText = text[0:text.find('<book id="index"')]
for i,filename in enumerate(files):
entry = ''
- #print file
+ #print filename
source = open(filename, 'r')
- # Necessary to define entities
- newfile = headerText + source.read()
+ # Necessary to define entities>
+ entryText = source.read().replace("\xef\xbb\xbf","")
+ newfile = headerText + entryText
+ newfile = newfile.replace("\r", "")
+
source.close()
#print text
xmldoc = minidom.parseString(newfile)
diff --git a/opcodes.xml b/opcodes.xml
index 4ecb0f3..2998c5f 100644
--- a/opcodes.xml
+++ b/opcodes.xml
@@ -7,6 +7,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Sets the control rate.</desc><synopsis><opcodename>kr</opcodename> = iarg</synopsis></opcode>
<opcode><desc>Sets the number of samples in a control period.</desc><synopsis><opcodename>ksmps</opcodename> = iarg</synopsis></opcode>
<opcode><desc>Sets the number of channels of audio output.</desc><synopsis><opcodename>nchnls</opcodename> = iarg</synopsis></opcode>
+<opcode><desc>Sets the number of channels of audio input.</desc><synopsis><opcodename>nchnls_i</opcodename> = iarg</synopsis></opcode>
<opcode><desc>Sets the audio sampling rate.</desc><synopsis><opcodename>sr</opcodename> = iarg</synopsis></opcode>
</category>
<category name="Orchestra Syntax:Block Statements">
@@ -43,20 +44,18 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
kl2minf, kl2maxf, ilfomode, keqminf, keqmaxf, keqminl, keqmaxl, \
keqminq, keqmaxq, ieqmode, kfn [, il1fn] [, il2fn] [, ieqffn] \
[, ieqlfn] [, ieqqfn] [, itabl] [, ioutfn]</synopsis></opcode>
-<opcode><desc>A simple oscillator.</desc><synopsis>ares <opcodename>oscil</opcodename> xamp, xcps, ifn [, iphs]</synopsis><synopsis>kres <opcodename>oscil</opcodename> kamp, kcps, ifn [, iphs]</synopsis></opcode>
-<opcode><desc>A simple oscillator with cubic interpolation.</desc><synopsis>ares <opcodename>oscil3</opcodename> xamp, xcps, ifn [, iphs]</synopsis><synopsis>kres <opcodename>oscil3</opcodename> kamp, kcps, ifn [, iphs]</synopsis></opcode>
+<opcode><desc>A simple oscillator.</desc><synopsis>ares <opcodename>oscil</opcodename> xamp, xcps [, ifn, iphs]</synopsis><synopsis>kres <opcodename>oscil</opcodename> kamp, kcps [, ifn, iphs]</synopsis></opcode>
+<opcode><desc>A simple oscillator with cubic interpolation.</desc><synopsis>ares <opcodename>oscil3</opcodename> xamp, xcps [, ifn, iphs]</synopsis><synopsis>kres <opcodename>oscil3</opcodename> kamp, kcps [, ifn, iphs]</synopsis></opcode>
<opcode><desc>A simple oscillator with linear interpolation.</desc><synopsis>ares <opcodename>oscili</opcodename> xamp, xcps, ifn [, iphs]</synopsis><synopsis>kres <opcodename>oscili</opcodename> kamp, kcps, ifn [, iphs]</synopsis></opcode>
<opcode><desc>A linearly interpolated oscillator that allows changing the table number at k-rate.</desc><synopsis>ares <opcodename>oscilikt</opcodename> xamp, xcps, kfn [, iphs] [, istor]</synopsis><synopsis>kres <opcodename>oscilikt</opcodename> kamp, kcps, kfn [, iphs] [, istor]</synopsis></opcode>
<opcode><desc>A linearly interpolated oscillator that allows allows phase modulation.</desc><synopsis>ares <opcodename>osciliktp</opcodename> kcps, kfn, kphs [, istor]</synopsis></opcode>
<opcode><desc>A linearly interpolated oscillator with sync status that allows changing the table number at k-rate.</desc><synopsis>ares <opcodename>oscilikts</opcodename> xamp, xcps, kfn, async, kphs [, istor]</synopsis></opcode>
<opcode><desc>Accesses table values at a user-defined frequency.</desc><synopsis>ares <opcodename>osciln</opcodename> kamp, ifrq, ifn, itimes</synopsis></opcode>
<opcode><desc>A simple, fast sine oscillator</desc><synopsis>ares <opcodename>oscils</opcodename> iamp, icps, iphs [, iflg]</synopsis></opcode>
-<opcode><desc>High precision oscillator.</desc><synopsis>ares <opcodename>poscil</opcodename> aamp, acps, ifn [, iphs]</synopsis><synopsis>ares <opcodename>poscil</opcodename> aamp, kcps, ifn [, iphs]</synopsis><synopsis>ares <opcodename>poscil</opcodename> kamp, acps, ifn [, iphs]</synopsis><synopsis>ares <opcodename>poscil</opcodename> kamp, kcps, ifn [, iphs]</synopsis><synopsis>ires <opcodename>poscil</opcodename> kamp, kcps, ifn [, iphs]</synopsis><synopsis>kres <opcodename>poscil</opcodename> kamp, kcps, ifn [, iphs]</synopsis></opcode>
-<opcode><desc>High precision oscillator with cubic interpolation.</desc><synopsis>ares <opcodename>poscil3</opcodename> kamp, kcps, ifn [, iphs]</synopsis><synopsis>kres <opcodename>poscil3</opcodename> kamp, kcps, ifn [, iphs]</synopsis></opcode>
+<opcode><desc>High precision oscillator.</desc><synopsis>ares <opcodename>poscil</opcodename> aamp, acps [, ifn, iphs]</synopsis><synopsis>ares <opcodename>poscil</opcodename> aamp, kcps [, ifn, iphs]</synopsis><synopsis>ares <opcodename>poscil</opcodename> kamp, acps [, ifn, iphs]</synopsis><synopsis>ares <opcodename>poscil</opcodename> kamp, kcps [, ifn, iphs]</synopsis><synopsis>ires <opcodename>poscil</opcodename> kamp, kcps [, ifn, iphs]</synopsis><synopsis>kres <opcodename>poscil</opcodename> kamp, kcps [, ifn, iphs]</synopsis></opcode>
+<opcode><desc>High precision oscillator with cubic interpolation.</desc><synopsis>ares <opcodename>poscil3</opcodename> aamp, acps [, ifn, iphs]</synopsis><synopsis>ares <opcodename>poscil3</opcodename> aamp, kcps [, ifn, iphs]</synopsis><synopsis>ares <opcodename>poscil3</opcodename> kamp, acps [, ifn, iphs]</synopsis><synopsis>ares <opcodename>poscil3</opcodename> kamp, kcps [, ifn, iphs]</synopsis><synopsis>ires <opcodename>poscil3</opcodename> kamp, kcps [, ifn, iphs]</synopsis><synopsis>kres <opcodename>poscil3</opcodename> kamp, kcps [, ifn, iphs]</synopsis></opcode>
<opcode><desc>Easier-to-use user-controllable vibrato.</desc><synopsis>kout <opcodename>vibr</opcodename> kAverageAmp, kAverageFreq, ifn</synopsis></opcode>
-<opcode><desc>Generates a natural-sounding user-controllable vibrato.</desc><synopsis>kout <opcodename>vibrato</opcodename> kAverageAmp, kAverageFreq, kRandAmountAmp, \
- kRandAmountFreq, kAmpMinRate, kAmpMaxRate, kcpsMinRate, \
- kcpsMaxRate, ifn [, iphs]</synopsis></opcode>
+<opcode><desc>Generates a natural-sounding user-controllable vibrato.</desc><synopsis>kout <opcodename>vibrato</opcodename> kAverageAmp, kAverageFreq, kRandAmountAmp, kRandAmountFreq, kAmpMinRate, kAmpMaxRate, kcpsMinRate, kcpsMaxRate, ifn [, iphs</synopsis></opcode>
</category>
<category name="Signal Generators:Dynamic Spectrum Oscillators">
<opcode><desc>Output is a set of harmonically related sine partials.</desc><synopsis>ares <opcodename>buzz</opcodename> xamp, xcps, knh, ifn [, iphs]</synopsis></opcode>
@@ -71,18 +70,18 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
</category>
<category name="Signal Generators:FM Synthesis">
<opcode><desc>Two mutually frequency and/or phase modulated oscillators.</desc><synopsis>a1, a2 <opcodename>crossfm</opcodename> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis><synopsis>a1, a2 <opcodename>crossfmi</opcodename> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis><synopsis>a1, a2 <opcodename>crosspm</opcodename> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis><synopsis>a1, a2 <opcodename>crosspmi</opcodename> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis><synopsis>a1, a2 <opcodename>crossfmpm</opcodename> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis><synopsis>a1, a2 <opcodename>crossfmpmi</opcodename> xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]</synopsis></opcode>
-<opcode><desc>Uses FM synthesis to create a Hammond B3 organ sound.</desc><synopsis>ares <opcodename>fmb3</opcodename> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
- ifn4, ivfn</synopsis></opcode>
-<opcode><desc>Uses FM synthesis to create a tublar bell sound.</desc><synopsis>ares <opcodename>fmbell</opcodename> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
- ifn4, ivfn</synopsis></opcode>
+<opcode><desc>Uses FM synthesis to create a Hammond B3 organ sound.</desc><synopsis>ares <opcodename>fmb3</opcodename> kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, ifn3, \
+ ifn4, ivfn]</synopsis></opcode>
+<opcode><desc>Uses FM synthesis to create a tublar bell sound.</desc><synopsis>ares <opcodename>fmbell</opcodename> kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, ifn3, \
+ ifn4, ivfn, isus]</synopsis></opcode>
<opcode><desc>Uses FM synthesis to create a</desc><synopsis>ares <opcodename>fmmetal</opcodename> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
ifn4, ivfn</synopsis></opcode>
-<opcode><desc>Uses FM synthesis to create a percussive flute sound.</desc><synopsis>ares <opcodename>fmpercfl</opcodename> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, \
- ifn3, ifn4, ivfn</synopsis></opcode>
+<opcode><desc>Uses FM synthesis to create a percussive flute sound.</desc><synopsis>ares <opcodename>fmpercfl</opcodename> kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, \
+ ifn3, ifn4, ivfn]</synopsis></opcode>
<opcode><desc>Uses FM synthesis to create a Fender Rhodes electric piano sound.</desc><synopsis>ares <opcodename>fmrhode</opcodename> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, \
ifn3, ifn4, ivfn</synopsis></opcode>
-<opcode><desc>FM Singing Voice Synthesis</desc><synopsis>ares <opcodename>fmvoice</opcodename> kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate, ifn1, \
- ifn2, ifn3, ifn4, ivibfn</synopsis></opcode>
+<opcode><desc>FM Singing Voice Synthesis</desc><synopsis>ares <opcodename>fmvoice</opcodename> kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate[, ifn1, \
+ ifn2, ifn3, ifn4, ivibfn]</synopsis></opcode>
<opcode><desc>Uses FM synthesis to create a Wurlitzer electric piano sound.</desc><synopsis>ares <opcodename>fmwurlie</opcodename> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
ifn4, ivfn</synopsis></opcode>
<opcode><desc>A basic frequency modulated oscillator.</desc><synopsis>ares <opcodename>foscil</opcodename> xamp, kcps, xcar, xmod, kndx, ifn [, iphs]</synopsis></opcode>
@@ -131,36 +130,47 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
</category>
<category name="Signal Generators:Hyper Vectorial Synthesis">
<opcode><desc>Allows one-dimensional Hyper Vectorial Synthesis (HVS) controlled by externally-updated k-variables.</desc><synopsis><opcodename>hvs1</opcodename> kx, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis></opcode>
-<opcode><desc>Allows two-dimensional Hyper Vectorial Synthesis (HVS) controlled by externally-updated k-variables.</desc><synopsis><opcodename>hvs2</opcodename> kx, ky, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis></opcode>
-<opcode><desc>Allows three-dimensional Hyper Vectorial Synthesis (HVS) controlled by externally-updated k-variables.</desc><synopsis><opcodename>hvs3</opcodename> kx, ky, kz, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis></opcode>
+<opcode><desc>Allows two-dimensional Hyper Vectorial Synthesis (HVS) controlled by externally-updated k-variables.</desc><synopsis><opcodename>hvs2</opcodename> kx, ky, inumParms, inumPointsX, inumPointsY, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis></opcode>
+<opcode><desc>Allows three-dimensional Hyper Vectorial Synthesis (HVS) controlled by externally-updated k-variables.</desc><synopsis><opcodename>hvs3</opcodename> kx, ky, kz, inumParms, inumPointsX, inumPointsY, inumPointsZ, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis></opcode>
</category>
<category name="Signal Generators:Linear and Exponential Generators">
+<opcode><desc>Trace a series of line segments between specified points with
+ cosine interpolation.</desc><synopsis>ares <opcodename>cosseg</opcodename> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><synopsis>kres <opcodename>cosseg</opcodename> ia, idur1, ib [, idur2] [, ic] [...]</synopsis></opcode>
+<opcode><desc>Trace a series of line segments between specified absolute points with
+ cosine interpolation.</desc><synopsis>ares <opcodename>cossegb</opcodename> ia, itim1, ib [, itim2] [, ic] [...]</synopsis><synopsis>kres <opcodename>cossegb</opcodename> ia, itim1, ib [, itim2] [, ic] [...]</synopsis></opcode>
+<opcode><desc>Trace a series of line segments between specified points with
+ cosine interpolation, including a release segment.</desc><synopsis>ares <opcodename>cossegr</opcodename> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><synopsis>kres <opcodename>cossegr</opcodename> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis></opcode>
<opcode><desc>This opcode implements a formula for generating a normalised exponential curve in range 0 - 1. It is based on the Max / MSP work of Eric Singer (c) 1994.</desc><synopsis>kout <opcodename>expcurve</opcodename> kindex, ksteepness</synopsis></opcode>
<opcode><desc>Trace an exponential curve between specified points.</desc><synopsis>ares <opcodename>expon</opcodename> ia, idur, ib</synopsis><synopsis>kres <opcodename>expon</opcodename> ia, idur, ib</synopsis></opcode>
<opcode><desc>Trace a series of exponential segments between specified points.</desc><synopsis>ares <opcodename>expseg</opcodename> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><synopsis>kres <opcodename>expseg</opcodename> ia, idur1, ib [, idur2] [, ic] [...]</synopsis></opcode>
<opcode><desc>An exponential segment generator operating at a-rate.</desc><synopsis>ares <opcodename>expsega</opcodename> ia, idur1, ib [, idur2] [, ic] [...]</synopsis></opcode>
+<opcode><desc>Trace a series of exponential segments between specified
+ absolute points.</desc><synopsis>ares <opcodename>expsegb</opcodename> ia, itim1, ib [, itim2] [, ic] [...]</synopsis><synopsis>kres <opcodename>expsegb</opcodename> ia, itim1, ib [, itim2] [, ic] [...]</synopsis></opcode>
+<opcode><desc>An exponential segment generator operating at a-rate with
+ absolute times.</desc><synopsis>ares <opcodename>expsegba</opcodename> ia, itim1, ib [, itim2] [, ic] [...]</synopsis></opcode>
<opcode><desc>Trace a series of exponential segments between specified points including a release segment.</desc><synopsis>ares <opcodename>expsegr</opcodename> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><synopsis>kres <opcodename>expsegr</opcodename> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis></opcode>
<opcode><desc>An implementation of a logarithmic gain curve which is similar to the gainslider~ object from Cycling 74 Max / MSP.</desc><synopsis>kout <opcodename>gainslider</opcodename> kindex</synopsis></opcode>
<opcode><desc>A jitter-spline generator.</desc><synopsis>ares <opcodename>jspline</opcodename> xamp, kcpsMin, kcpsMax</synopsis><synopsis>kres <opcodename>jspline</opcodename> kamp, kcpsMin, kcpsMax</synopsis></opcode>
<opcode><desc>Trace a straight line between specified points.</desc><synopsis>ares <opcodename>line</opcodename> ia, idur, ib</synopsis><synopsis>kres <opcodename>line</opcodename> ia, idur, ib</synopsis></opcode>
<opcode><desc>Trace a series of line segments between specified points.</desc><synopsis>ares <opcodename>linseg</opcodename> ia, idur1, ib [, idur2] [, ic] [...]</synopsis><synopsis>kres <opcodename>linseg</opcodename> ia, idur1, ib [, idur2] [, ic] [...]</synopsis></opcode>
+<opcode><desc>Trace a series of line segments between specified absolute points.</desc><synopsis>ares <opcodename>linsegb</opcodename> ia, itim1, ib [, itim2] [, ic] [...]</synopsis><synopsis>kres <opcodename>linsegb</opcodename> ia, itim1, ib [, itim2] [, ic] [...]</synopsis></opcode>
<opcode><desc>Trace a series of line segments between specified points including a release segment.</desc><synopsis>ares <opcodename>linsegr</opcodename> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis><synopsis>kres <opcodename>linsegr</opcodename> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis></opcode>
<opcode><desc>This opcode implements a formula for generating a normalised logarithmic curve in range 0 - 1. It is based on the Max / MSP work of Eric Singer (c) 1994.</desc><synopsis>kout <opcodename>logcurve</opcodename> kindex, ksteepness</synopsis></opcode>
-<opcode><desc>Generate control signal consisting of linear segments delimited by two or more specified points.</desc><synopsis>ksig <opcodename>loopseg</opcodename> kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis></opcode>
+<opcode><desc>Generate control signal consisting of linear segments delimited by two or more specified points.</desc><synopsis>ksig <opcodename>loopseg</opcodename> kfreq, ktrig, iphase, kvalue0, ktime0 [, kvalue1] [, ktime1] \
+[, kvalue2] [, ktime2][...]</synopsis></opcode>
<opcode><desc>Control signals based on linear segments.</desc><synopsis>ksig <opcodename>loopsegp</opcodename> kphase, kvalue0, kdur0, kvalue1 \
[, kdur1, ... , kdurN-1, kvalueN]</synopsis></opcode>
-<opcode><desc>Generate control signal consisting of exponential or linear segments delimited by two or more specified points.</desc><synopsis>ksig <opcodename>looptseg</opcodename> kfreq, ktrig, ktime0, kvalue0, ktype, [, ktime1] [,ktype1] [, kvalue1] \
- [, ktime2] [,ktype2] [, kvalue2] [...]</synopsis></opcode>
-<opcode><desc>Generate control signal consisting of exponential segments delimited by two or more specified points.</desc><synopsis>ksig <opcodename>loopxseg</opcodename> kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis></opcode>
-<opcode><desc>Generate control signal consisting of held segments.</desc><synopsis>ksig <opcodename>lpshold</opcodename> kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
+<opcode><desc>Generate control signal consisting of exponential or linear segments delimited by two or more specified points.</desc><synopsis>ksig <opcodename>looptseg</opcodename> kfreq, ktrig, ktime0, kvalue0, ktype0, [, ktime1] [, kvalue1] [,ktype1] \
+ [, ktime2] [, kvalue2] [,ktype2] [...][, ktimeN] [, kvalueN]</synopsis></opcode>
+<opcode><desc>Generate control signal consisting of exponential segments delimited by two or more specified points.</desc><synopsis>ksig <opcodename>loopxseg</opcodename> kfreq, ktrig, iphase, ktime0, kvalue0 [, ktime1] [, kvalue1] \
[, ktime2] [, kvalue2] [...]</synopsis></opcode>
+<opcode><desc>Generate control signal consisting of held segments.</desc><synopsis>ksig <opcodename>lpshold</opcodename> kfreq, ktrig, iphase, ktime0, kvalue0 [, ktime1] [, kvalue1] [, ktime2] [, kvalue2] [...]</synopsis></opcode>
<opcode><desc>Control signals based on held segments.</desc><synopsis>ksig <opcodename>lpsholdp</opcodename> kphase, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
[, ktime2] [, kvalue2] [...]</synopsis></opcode>
<opcode><desc>Generate random spline curves.</desc><synopsis>ares <opcodename>rspline</opcodename> xrangeMin, xrangeMax, kcpsMin, kcpsMax</synopsis><synopsis>kres <opcodename>rspline</opcodename> krangeMin, krangeMax, kcpsMin, kcpsMax</synopsis></opcode>
<opcode><desc>Arbitrary signal scaling.</desc><synopsis>kscl <opcodename>scale</opcodename> kinput, kmax, kmin</synopsis></opcode>
<opcode><desc>Constructs a user-definable envelope.</desc><synopsis>ares <opcodename>transeg</opcodename> ia, idur, itype, ib [, idur2] [, itype] [, ic] ...</synopsis><synopsis>kres <opcodename>transeg</opcodename> ia, idur, itype, ib [, idur2] [, itype] [, ic] ...</synopsis></opcode>
+<opcode><desc>Constructs a user-definable envelope in absolute time.</desc><synopsis>ares <opcodename>transegb</opcodename> ia, itim, itype, ib [, itim2] [, itype] [, ic] ...</synopsis><synopsis>kres <opcodename>transegb</opcodename> ia, itim, itype, ib [, itim2] [, itype] [, ic] ...</synopsis></opcode>
<opcode><desc>Constructs a user-definable envelope with extended release segment.</desc><synopsis>ares <opcodename>transegr</opcodename> ia, idur, itype, ib [, idur2] [, itype] [, ic] ...</synopsis><synopsis>kres <opcodename>transegr</opcodename> ia, idur, itype, ib [, idur2] [, itype] [, ic] ...</synopsis></opcode>
</category>
<category name="Signal Generators:Envelope Generators">
@@ -182,6 +192,16 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Semi-physical model of a crunch sound.</desc><synopsis>ares <opcodename>crunch</opcodename> iamp, idettack [, inum] [, idamp] [, imaxshake]</synopsis></opcode>
<opcode><desc>Semi-physical model of a water drop.</desc><synopsis>ares <opcodename>dripwater</opcodename> kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \
[, ifreq1] [, ifreq2]</synopsis></opcode>
+<opcode><desc>Dynamic stochastic approach to waveform synthesis conceived by Iannis Xenakis.</desc><synopsis>ares <opcodename>gendy</opcodename> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis><synopsis>kres <opcodename>gendy</opcodename> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis></opcode>
+<opcode><desc>Dynamic stochastic approach to waveform synthesis using cubic interpolation.</desc><synopsis>ares <opcodename>gendyc</opcodename> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis><synopsis>kres <opcodename>gendyc</opcodename> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis></opcode>
+<opcode><desc>Variation of the dynamic stochastic approach to waveform
+ synthesis conceived by Iannis Xenakis.</desc><synopsis>ares <opcodename>gendyx</opcodename> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl, kcurveup, kcurvedown [, initcps] [, knum]</synopsis><synopsis>kres <opcodename>gendyx</opcodename> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl, kcurveup, kcurvedown [, initcps] [, knum]</synopsis></opcode>
<opcode><desc>Audio output is a tone related to the striking of a cow bell or similar.</desc><synopsis>ares <opcodename>gogobel</opcodename> kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivfn</synopsis></opcode>
<opcode><desc>Semi-physical model of a guiro sound.</desc><synopsis>ares <opcodename>guiro</opcodename> kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] [, ifreq1]</synopsis></opcode>
<opcode><desc>Implements the Lorenz system of equations.</desc><synopsis>ax, ay, az <opcodename>lorenz</opcodename> ksv, krv, kbv, kh, ix, iy, iz, iskip [, iskipinit]</synopsis></opcode>
@@ -217,10 +237,20 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Beta distribution random number generator (positive values only).</desc><synopsis>ares <opcodename>betarand</opcodename> krange, kalpha, kbeta</synopsis><synopsis>ires <opcodename>betarand</opcodename> krange, kalpha, kbeta</synopsis><synopsis>kres <opcodename>betarand</opcodename> krange, kalpha, kbeta</synopsis></opcode>
<opcode><desc>Exponential distribution random number generator.</desc><synopsis>ares <opcodename>bexprnd</opcodename> krange</synopsis><synopsis>ires <opcodename>bexprnd</opcodename> krange</synopsis><synopsis>kres <opcodename>bexprnd</opcodename> krange</synopsis></opcode>
<opcode><desc>Cauchy distribution random number generator.</desc><synopsis>ares <opcodename>cauchy</opcodename> kalpha</synopsis><synopsis>ires <opcodename>cauchy</opcodename> kalpha</synopsis><synopsis>kres <opcodename>cauchy</opcodename> kalpha</synopsis></opcode>
+<opcode><desc>Cauchy distribution random number generator with
+ interpolation.</desc><synopsis>ares <opcodename>cauchyi</opcodename> klambda, xamp, xcps</synopsis><synopsis>ires <opcodename>cauchyi</opcodename> klambda, xamp, xcps</synopsis><synopsis>kres <opcodename>cauchyi</opcodename> klambda, xamp, xcps</synopsis></opcode>
<opcode><desc>Continuous USER-defined-distribution RaNDom generator.</desc><synopsis>aout <opcodename>cuserrnd</opcodename> kmin, kmax, ktableNum</synopsis><synopsis>iout <opcodename>cuserrnd</opcodename> imin, imax, itableNum</synopsis><synopsis>kout <opcodename>cuserrnd</opcodename> kmin, kmax, ktableNum</synopsis></opcode>
<opcode><desc>Discrete USER-defined-distribution RaNDom generator.</desc><synopsis>aout <opcodename>duserrnd</opcodename> ktableNum</synopsis><synopsis>iout <opcodename>duserrnd</opcodename> itableNum</synopsis><synopsis>kout <opcodename>duserrnd</opcodename> ktableNum</synopsis></opcode>
+<opcode><desc>Random impulses.</desc><synopsis>ares <opcodename>dust</opcodename> kamp, kdensity</synopsis><synopsis>kres <opcodename>dust</opcodename> kamp, kdensity</synopsis></opcode>
+<opcode><desc>Random impulses.</desc><synopsis>ares <opcodename>dust2</opcodename> kamp, kdensity</synopsis><synopsis>kres <opcodename>dust2</opcodename> kamp, kdensity</synopsis></opcode>
<opcode><desc>Exponential distribution random number generator (positive values only).</desc><synopsis>ares <opcodename>exprand</opcodename> klambda</synopsis><synopsis>ires <opcodename>exprand</opcodename> klambda</synopsis><synopsis>kres <opcodename>exprand</opcodename> klambda</synopsis></opcode>
+<opcode><desc>Exponential distribution random number generator with
+ interpolation (positive values only).</desc><synopsis>ares <opcodename>exprandi</opcodename> klambda, xamp, xcps</synopsis><synopsis>ires <opcodename>exprandi</opcodename> klambda, xamp, xcps</synopsis><synopsis>kres <opcodename>exprandi</opcodename> klambda, xamp, xcps</synopsis></opcode>
+<opcode><desc>A fractal noise generator.</desc><synopsis>ares <opcodename>fractalnoise</opcodename> kamp, kbeta</synopsis></opcode>
<opcode><desc>Gaussian distribution random number generator.</desc><synopsis>ares <opcodename>gauss</opcodename> krange</synopsis><synopsis>ires <opcodename>gauss</opcodename> krange</synopsis><synopsis>kres <opcodename>gauss</opcodename> krange</synopsis></opcode>
+<opcode><desc>Gaussian distribution random number generator with
+ interpolation.</desc><synopsis>ares <opcodename>gaussi</opcodename> krange, xamp, xcps</synopsis><synopsis>ires <opcodename>gaussi</opcodename> krange, xamp, xcps</synopsis><synopsis>kres <opcodename>gaussi</opcodename> krange, xamp, xcps</synopsis></opcode>
+<opcode><desc>Random impulses around a certain frequency.</desc><synopsis>ares <opcodename>gausstrig</opcodename> kamp, kcps, kdev [, imode]</synopsis><synopsis>kres <opcodename>gausstrig</opcodename> kamp, kcps, kdev [, imode]</synopsis></opcode>
<opcode><desc>Generates a segmented line whose segments are randomly generated.</desc><synopsis>kout <opcodename>jitter</opcodename> kamp, kcpsMin, kcpsMax</synopsis></opcode>
<opcode><desc>Generates a segmented line with user-controllable random segments.</desc><synopsis>kout <opcodename>jitter2</opcodename> ktotamp, kamp1, kcps1, kamp2, kcps2, kamp3, kcps3</synopsis></opcode>
<opcode><desc>Linear distribution random number generator (positive values only).</desc><synopsis>ares <opcodename>linrand</opcodename> krange</synopsis><synopsis>ires <opcodename>linrand</opcodename> krange</synopsis><synopsis>kres <opcodename>linrand</opcodename> krange</synopsis></opcode>
@@ -232,13 +262,14 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Generates random numbers and holds them for a period of time.</desc><synopsis>ares <opcodename>randh</opcodename> xamp, xcps [, iseed] [, isize] [, ioffset]</synopsis><synopsis>kres <opcodename>randh</opcodename> kamp, kcps [, iseed] [, isize] [, ioffset]</synopsis></opcode>
<opcode><desc>Generates a controlled random number series with interpolation between each new number.</desc><synopsis>ares <opcodename>randi</opcodename> xamp, xcps [, iseed] [, isize] [, ioffset]</synopsis><synopsis>kres <opcodename>randi</opcodename> kamp, kcps [, iseed] [, isize] [, ioffset]</synopsis></opcode>
<opcode><desc>Generates a controlled pseudo-random number series between min and max values.</desc><synopsis>ares <opcodename>random</opcodename> kmin, kmax</synopsis><synopsis>ires <opcodename>random</opcodename> imin, imax</synopsis><synopsis>kres <opcodename>random</opcodename> kmin, kmax</synopsis></opcode>
-<opcode><desc>Generates random numbers with a user-defined limit and holds them for a period of time.</desc><synopsis>ares <opcodename>randomh</opcodename> kmin, kmax, acps</synopsis><synopsis>kres <opcodename>randomh</opcodename> kmin, kmax, kcps</synopsis></opcode>
-<opcode><desc>Generates a user-controlled random number series with interpolation between each new number.</desc><synopsis>ares <opcodename>randomi</opcodename> kmin, kmax, acps</synopsis><synopsis>kres <opcodename>randomi</opcodename> kmin, kmax, kcps</synopsis></opcode>
+<opcode><desc>Generates random numbers with a user-defined limit and holds them for a period of time.</desc><synopsis>ares <opcodename>randomh</opcodename> kmin, kmax, xcps [,imode] [,ifirstval]</synopsis><synopsis>kres <opcodename>randomh</opcodename> kmin, kmax, kcps [,imode] [,ifirstval]</synopsis></opcode>
+<opcode><desc>Generates a user-controlled random number series with interpolation between each new number.</desc><synopsis>ares <opcodename>randomi</opcodename> kmin, kmax, xcps [,imode] [,ifirstval]</synopsis><synopsis>kres <opcodename>randomi</opcodename> kmin, kmax, kcps [,imode] [,ifirstval]</synopsis></opcode>
<opcode><desc>31-bit bipolar random opcodes with controllable distribution.</desc><synopsis>ax <opcodename>rnd31</opcodename> kscl, krpow [, iseed]</synopsis><synopsis>ix <opcodename>rnd31</opcodename> iscl, irpow [, iseed]</synopsis><synopsis>kx <opcodename>rnd31</opcodename> kscl, krpow [, iseed]</synopsis></opcode>
<opcode><desc>Sets the global seed value.</desc><synopsis><opcodename>seed</opcodename> ival</synopsis></opcode>
<opcode><desc>Generates a controlled pseudo-random number series between min and max values according to a trigger.</desc><synopsis>kout <opcodename>trandom</opcodename> ktrig, kmin, kmax</synopsis></opcode>
<opcode><desc>Triangular distribution random number generator</desc><synopsis>ares <opcodename>trirand</opcodename> krange</synopsis><synopsis>ires <opcodename>trirand</opcodename> krange</synopsis><synopsis>kres <opcodename>trirand</opcodename> krange</synopsis></opcode>
<opcode><desc>Uniform distribution random number generator (positive values only).</desc><synopsis>ares <opcodename>unirand</opcodename> krange</synopsis><synopsis>ires <opcodename>unirand</opcodename> krange</synopsis><synopsis>kres <opcodename>unirand</opcodename> krange</synopsis></opcode>
+<opcode><desc>truly random opcodes with controllable range.</desc><synopsis>ax <opcodename>urandom</opcodename> [imin, imax]</synopsis><synopsis>ix <opcodename>urandom</opcodename> [imin, imax]</synopsis><synopsis>kx <opcodename>urandom</opcodename> [imin, imax]</synopsis></opcode>
<opcode><desc>A discrete user-defined-distribution random generator that can be used as a function.</desc><synopsis>aout = <opcodename>urd</opcodename>(ktableNum)</synopsis><synopsis>iout = <opcodename>urd</opcodename>(itableNum)</synopsis><synopsis>kout = <opcodename>urd</opcodename>(ktableNum)</synopsis></opcode>
<opcode><desc>Weibull distribution random number generator (positive values only).</desc><synopsis>ares <opcodename>weibull</opcodename> ksigma, ktau</synopsis><synopsis>ires <opcodename>weibull</opcodename> ksigma, ktau</synopsis><synopsis>kres <opcodename>weibull</opcodename> ksigma, ktau</synopsis></opcode>
</category>
@@ -268,11 +299,11 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
ar15, ar16] <opcodename>loscilx</opcodename> xamp, kcps, ifn \
[, iwsize, ibas, istrt, imod1, ibeg1, iend1]</synopsis></opcode>
<opcode><desc>Generates a table index for sample playback</desc><synopsis>ares <opcodename>lphasor</opcodename> xtrns [, ilps] [, ilpe] [, imode] [, istrt] [, istor]</synopsis></opcode>
-<opcode><desc>Read sampled sound from a table with optional looping and high precision.</desc><synopsis>ares <opcodename>lposcil</opcodename> kamp, kfreqratio, kloop, kend, ifn [, iphs]</synopsis></opcode>
+<opcode><desc>Read sampled sound from a table with looping and high precision.</desc><synopsis>ares <opcodename>lposcil</opcodename> kamp, kfreqratio, kloop, kend, ifn [, iphs]</synopsis></opcode>
<opcode><desc>Read sampled sound from a table with high precision and cubic interpolation.</desc><synopsis>ares <opcodename>lposcil3</opcodename> kamp, kfreqratio, kloop, kend, ifn [, iphs]</synopsis></opcode>
-<opcode><desc>Read sampled sound from a table with optional looping and high precision.</desc><synopsis>ar <opcodename>lposcila</opcodename> aamp, kfreqratio, kloop, kend, ift [,iphs] </synopsis></opcode>
-<opcode><desc>Read stereo sampled sound from a table with optional looping and high precision.</desc><synopsis>ar1, ar2 <opcodename>lposcilsa</opcodename> aamp, kfreqratio, kloop, kend, ift [,iphs] </synopsis></opcode>
-<opcode><desc>Read stereo sampled sound from a table with optional looping and high precision.</desc><synopsis>ar1, ar2 <opcodename>lposcilsa2</opcodename> aamp, kfreqratio, kloop, kend, ift [,iphs] </synopsis></opcode>
+<opcode><desc>Read sampled sound from a table with looping and high precision.</desc><synopsis>ar <opcodename>lposcila</opcodename> aamp, kfreqratio, kloop, kend, ift [,iphs] </synopsis></opcode>
+<opcode><desc>Read stereo sampled sound from a table with looping and high precision.</desc><synopsis>ar1, ar2 <opcodename>lposcilsa</opcodename> aamp, kfreqratio, kloop, kend, ift [,iphs] </synopsis></opcode>
+<opcode><desc>Read stereo sampled sound from a table with looping and high precision.</desc><synopsis>ar1, ar2 <opcodename>lposcilsa2</opcodename> aamp, kfreqratio, kloop, kend, ift [,iphs] </synopsis></opcode>
<opcode><desc>Prints a list of all instruments of a previously loaded SoundFont2 (SF2) file.</desc><synopsis><opcodename>sfilist</opcodename> ifilhandle</synopsis></opcode>
<opcode><desc>Plays a SoundFont2 (SF2) sample instrument, generating a stereo sound.</desc><synopsis>ar1, ar2 <opcodename>sfinstr</opcodename> ivel, inotenum, xamp, xfreq, instrnum, ifilhandle \
[, iflag] [, ioffset]</synopsis></opcode>
@@ -284,7 +315,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
[, iflag] [, ioffset]</synopsis></opcode>
<opcode><desc>Loads an entire SoundFont2 (SF2) sample file into memory.</desc><synopsis>ir <opcodename>sfload</opcodename> &quot;filename&quot;</synopsis></opcode>
<opcode><desc>Plays a SoundFont2 (SF2) sample preset, generating a stereo sound, with user-defined
- time-varying crossfade looping.</desc><synopsis>ar1, ar2 <opcodename>sflooper</opcodename> ivel, inotenum, kamp, kpitch, ipreindex, kloopstart, kloopend, kcrossfade, ifn \
+ time-varying crossfade looping.</desc><synopsis>ar1, ar2 <opcodename>sflooper</opcodename> ivel, inotenum, kamp, kpitch, ipreindex, kloopstart, kloopend, kcrossfade \
[, istart, imode, ifenv, iskip] </synopsis></opcode>
<opcode><desc>Assigns all presets of a SoundFont2 (SF2) sample file to a sequence of progressive index numbers.</desc><synopsis><opcodename>sfpassign</opcodename> istartindex, ifilhandle[, imsgs]</synopsis></opcode>
<opcode><desc>Plays a SoundFont2 (SF2) sample preset, generating a stereo sound.</desc><synopsis>ar1, ar2 <opcodename>sfplay</opcodename> ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset] [, ienv]</synopsis></opcode>
@@ -308,9 +339,41 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Compute the waveform and the wavetable for use in scanned synthesis.</desc><synopsis><opcodename>xscanu</opcodename> init, irate, ifnvel, ifnmass, ifnstif, ifncentr, ifndamp, kmass, \
kstif, kcentr, kdamp, ileft, iright, kpos, kstrngth, ain, idisp, id</synopsis></opcode>
</category>
+<category name="Signal Generators:STK Opcodes">
+<opcode><desc>STKBandedWG uses banded waveguide techniques to model a variety of sounds.</desc><synopsis>asignal <opcodename>STKBandedWG</opcodename> ifrequency, iamplitude, [kpress, kv1[, kmot, kv2[, klfo, kv3[, klfodepth, kv4[, kvel, kv5[, kstrk, kv6[, kinstr, kv7]]]]]]]</synopsis></opcode>
+<opcode><desc>STK Hammond-oid organ-like FM synthesis instrument.</desc><synopsis>asignal <opcodename>STKBeeThree</opcodename> ifrequency, iamplitude, [kop4, kv1[, kop3, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKBlowBotl uses a helmholtz resonator (biquad filter) with a polynomial jet excitation.</desc><synopsis>asignal <opcodename>STKBlowBotl</opcodename> ifrequency, iamplitude, [knoise, kv1[, klfo, kv2[, klfodepth, kv3[, kvol, kv4]]]]</synopsis></opcode>
+<opcode><desc>STK clarinet physical model with one register hole and one tonehole.</desc><synopsis>asignal <opcodename>STKBlowHole</opcodename> ifrequency, iamplitude, [kreed, kv1[, knoise, kv2[, khole, kv3[, kreg, kv4[, kbreath, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKBowed is a bowed string instrument.</desc><synopsis>asignal <opcodename>STKBowed</opcodename> ifrequency, iamplitude, [kpress, kv1[, kpos, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKBrass is a simple brass instrument.</desc><synopsis>asignal <opcodename>STKBrass</opcodename> ifrequency, iamplitude, [klip, kv1[, kslide, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKClarinet uses a simple clarinet physical model.</desc><synopsis>asignal <opcodename>STKClarinet</opcodename> ifrequency, iamplitude, [kstiff, kv1[, knoise, kv2[, klfo, kv3[, klfodepth, kv4[, kbreath, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKDrummer is a drum sampling synthesizer.</desc><synopsis>asignal <opcodename>STKDrummer</opcodename> ifrequency, iamplitude</synopsis></opcode>
+<opcode><desc>STKFMVoices is a singing FM synthesis instrument.</desc><synopsis>asignal <opcodename>STKFMVoices</opcodename> ifrequency, iamplitude, [kvowel, kv1[, kspec, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKFlute uses a simple flute physical model.</desc><synopsis>asignal <opcodename>STKFlute</opcodename> ifrequency, iamplitude, [kjet, kv1[, knoise, kv2[, klfo, kv3[, klfodepth, kv4[, kbreath, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKHevyMetl produces metal sounds.</desc><synopsis>asignal <opcodename>STKHevyMetl</opcodename> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKMandolin produces mamdolin-like sounds.</desc><synopsis>asignal <opcodename>STKMandolin</opcodename> ifrequency, iamplitude, [kbody, kv1[, kpos, kv2[, ksus, kv3[, kdetune, kv4[, kmic, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKModalBar is a resonant bar instrument.</desc><synopsis>asignal <opcodename>STKModalBar</opcodename> ifrequency, iamplitude, [khard, kv1[, kpos, kv2[, klfo, kv3[, klfodepth, kv4[, kmix, kv5[, kvol, kv6[, kinstr, kv7]]]]]]]</synopsis></opcode>
+<opcode><desc>STKMoog produces moog-like swept filter sounds.</desc><synopsis>asignal <opcodename>STKMoog</opcodename> ifrequency, iamplitude, [kq, kv1[, krate, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKPercFlut is a percussive flute FM synthesis instrument.</desc><synopsis>asignal <opcodename>STKPercFlut</opcodename> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKPlucked uses a plucked string physical model.</desc><synopsis>asignal <opcodename>STKPlucked</opcodename> ifrequency, iamplitude</synopsis></opcode>
+<opcode><desc>STKResonate is a noise driven formant filter.</desc><synopsis>asignal <opcodename>STKResonate</opcodename> ifrequency, iamplitude, [kfreq, kv1[, kpole, kv2[, knotch, kv3[, kzero, kv4[, kenv, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STK Fender Rhodes-like electric piano FM synthesis instrument.</desc><synopsis>asignal <opcodename>STKRhodey</opcodename> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKSaxofony is a faux conical bore reed instrument.</desc><synopsis>asignal <opcodename>STKSaxofony</opcodename> ifrequency, iamplitude, [kstiff, kv1[, kapert, kv2[, kblow, kv3[, knoise, kv4[, klfo, kv5[, klfodepth, kv6[, kbreath, kv7]]]]]]]</synopsis></opcode>
+<opcode><desc>STKShakers is an instrument that simulates environmental sounds or collisions of multiple independent sound producing objects.</desc><synopsis>asignal <opcodename>STKShakers</opcodename> ifrequency, iamplitude, [kenerg, kv1[, kdecay, kv2[, kshake, kv3[, knum, kv4[, kres, kv5[, kinstr, kv6]]]]]]</synopsis></opcode>
+<opcode><desc>STKSimple is a wavetable/noise instrument.</desc><synopsis>asignal <opcodename>STKSimple</opcodename> ifrequency, iamplitude, [kpos, kv1[, kcross, kv2[, kenv, kv3[, kgain, kv4]]]]</synopsis></opcode>
+<opcode><desc>STKSitar uses a plucked string physical model.</desc><synopsis>asignal <opcodename>STKSitar</opcodename> ifrequency, iamplitude</synopsis></opcode>
+<opcode><desc>STKStifKarp is a plucked stiff string instrument.</desc><synopsis>asignal <opcodename>STKStifKarp</opcodename> ifrequency, iamplitude, [kpos, kv1[, ksus, kv2[, kstretch, kv3]]]</synopsis></opcode>
+<opcode><desc>STKTubeBell is a tubular bell (orchestral chime) FM synthesis instrument.</desc><synopsis>asignal <opcodename>STKTubeBell</opcodename> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKVoicForm is a four formant synthesis instrument.</desc><synopsis>asignal <opcodename>STKVoicForm</opcodename> ifrequency, iamplitude, [kmix, kv1[, ksel, kv2[, klfo, kv3[, klfodepth, kv4[, kloud, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKWhistle produces whistle sounds.</desc><synopsis>asignal <opcodename>STKWhistle</opcodename> ifrequency, iamplitude, [kmod, kv1[, knoise, kv2[, kfipfreq, kv3[, kfipgain, kv4[, kvol, kv5]]]]]</synopsis></opcode>
+<opcode><desc>STKWurley simulates a Wurlitzer electric piano FM synthesis instrument.</desc><synopsis>asignal <opcodename>STKWurley</opcodename> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis></opcode>
+</category>
<category name="Signal Generators:Table Access">
-<opcode><desc>Accesses table values by incremental sampling.</desc><synopsis>kres <opcodename>oscil1</opcodename> idel, kamp, idur, ifn</synopsis></opcode>
-<opcode><desc>Accesses table values by incremental sampling with linear interpolation.</desc><synopsis>kres <opcodename>oscil1i</opcodename> idel, kamp, idur, ifn</synopsis></opcode>
+<opcode><desc>Accesses table values by incremental sampling.</desc><synopsis>kres <opcodename>oscil1</opcodename> idel, kamp, idur [, ifn]</synopsis></opcode>
+<opcode><desc>Accesses table values by incremental sampling with linear interpolation.</desc><synopsis>kres <opcodename>oscil1i</opcodename> idel, kamp, idur [, ifn]</synopsis></opcode>
+<opcode><desc>Accesses table values by direct indexing.</desc><synopsis>ares <opcodename>ptable</opcodename> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <opcodename>ptable</opcodename> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <opcodename>ptable</opcodename> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis></opcode>
+<opcode><desc>Accesses table values by direct indexing with cubic interpolation.</desc><synopsis>ares <opcodename>ptable3</opcodename> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <opcodename>ptable3</opcodename> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <opcodename>ptable3</opcodename> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis></opcode>
+<opcode><desc>Accesses table values by direct indexing with linear interpolation.</desc><synopsis>ares <opcodename>ptablei</opcodename> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <opcodename>ptablei</opcodename> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <opcodename>ptablei</opcodename> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis></opcode>
<opcode><desc>Fast table opcodes.</desc><synopsis>ir <opcodename>tab_i</opcodename> indx, ifn[, ixmode]</synopsis><synopsis>kr <opcodename>tab</opcodename> kndx, ifn[, ixmode]</synopsis><synopsis>ar <opcodename>tab</opcodename> xndx, ifn[, ixmode]</synopsis><synopsis><opcodename>tabw_i</opcodename> isig, indx, ifn [,ixmode]</synopsis><synopsis><opcodename>tabw</opcodename> ksig, kndx, ifn [,ixmode]</synopsis><synopsis><opcodename>tabw</opcodename> asig, andx, ifn [,ixmode]</synopsis></opcode>
<opcode><desc>Accesses table values by direct indexing.</desc><synopsis>ares <opcodename>table</opcodename> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <opcodename>table</opcodename> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <opcodename>table</opcodename> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis></opcode>
<opcode><desc>Accesses table values by direct indexing with cubic interpolation.</desc><synopsis>ares <opcodename>table3</opcodename> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>ires <opcodename>table3</opcodename> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis><synopsis>kres <opcodename>table3</opcodename> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis></opcode>
@@ -351,23 +414,25 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Outputs k-rate signals of an arbitrary number of channels to a specified file, in raw (headerless) format.</desc><synopsis><opcodename>foutk</opcodename> ifilename, iformat, kout1 [, kout2, kout3,....,koutN]</synopsis></opcode>
<opcode><desc>Similar to printks but prints to a file.</desc><synopsis><opcodename>fprintks</opcodename> &quot;filename&quot;, &quot;string&quot;, [, kval1] [, kval2] [...]</synopsis></opcode>
<opcode><desc>Similar to prints but prints to a file.</desc><synopsis><opcodename>fprints</opcodename> &quot;filename&quot;, &quot;string&quot; [, ival1] [, ival2] [...]</synopsis></opcode>
+<opcode><desc>Read a line of text from an external file.</desc><synopsis>Sres, kline <opcodename>readf</opcodename> ifilname</synopsis></opcode>
+<opcode><desc>Read a line of text from an external file.</desc><synopsis>Sres, iline <opcodename>readfi</opcodename> ifilname</synopsis></opcode>
<opcode><desc>Periodically reads an orchestra control-signal value from an external file.</desc><synopsis>kres <opcodename>readk</opcodename> ifilname, iformat, iprd</synopsis></opcode>
<opcode><desc>Periodically reads two orchestra control-signal values from an external file.</desc><synopsis>kr1, kr2 <opcodename>readk2</opcodename> ifilname, iformat, iprd</synopsis></opcode>
<opcode><desc>Periodically reads three orchestra control-signal values from an external file.</desc><synopsis>kr1, kr2, kr3 <opcodename>readk3</opcodename> ifilname, iformat, iprd</synopsis></opcode>
<opcode><desc>Periodically reads four orchestra control-signal values from an external file.</desc><synopsis>kr1, kr2, kr3, kr4 <opcodename>readk4</opcodename> ifilname, iformat, iprd</synopsis></opcode>
</category>
<category name="Signal I/O:Signal Input">
-<opcode><desc>Deprecated. Reads audio data from an external device or stream and can alter its pitch.</desc><synopsis>ar1 [, ar2 [, ar3 [, ... ar24]]] <opcodename>diskin</opcodename> ifilcod, kpitch [, iskiptim] \
+<opcode><desc>Deprecated. Reads audio data from an external device or stream and can alter its pitch.</desc><synopsis>ar1 [, ar2 [, ar3 [, ... arN]]] <opcodename>diskin</opcodename> ifilcod, kpitch [, iskiptim] \
[, iwraparound] [, iformat] [, iskipinit]</synopsis></opcode>
<opcode><desc>Reads audio data from a file, and can alter its pitch using one of several
available interpolation types, as well as convert the sample rate to match
- the orchestra sr setting.</desc><synopsis>a1[, a2[, ... a24]] <opcodename>diskin2</opcodename> ifilcod, kpitch[, iskiptim \
+ the orchestra sr setting.</desc><synopsis>a1[, a2[, ... aN]] <opcodename>diskin2</opcodename> ifilcod, kpitch[, iskiptim \
[, iwrap[, iformat [, iwsize[, ibufsize[, iskipinit]]]]]]</synopsis></opcode>
<opcode><desc>Reads mono audio data from an external device or stream.</desc><synopsis>ar1 <opcodename>in</opcodename></synopsis></opcode>
<opcode><desc>Reads a 32-channel audio signal from an external device or stream.</desc><synopsis>ar1, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12, ar13, ar14, \
ar15, ar16, ar17, ar18, ar19, ar20, ar21, ar22, ar23, ar24, ar25, ar26, \
ar27, ar28, ar29, ar30, ar31, ar32 <opcodename>in32</opcodename></synopsis></opcode>
-<opcode><desc>Reads from a numbered channel in an external audio signal or stream.</desc><synopsis>ain <opcodename>inch</opcodename> kchan</synopsis></opcode>
+<opcode><desc>Reads from numbered channels in an external audio signal or stream.</desc><synopsis>ain1[, ...] <opcodename>inch</opcodename> kchan1[,...]</synopsis></opcode>
<opcode><desc>Reads six-channel audio data from an external device or stream.</desc><synopsis>ar1, ar2, ar3, ar4, ar5, ar6 <opcodename>inh</opcodename></synopsis></opcode>
<opcode><desc>Reads eight-channel audio data from an external device or stream.</desc><synopsis>ar1, ar2, ar3, ar4, ar5, ar6, ar7, ar8 <opcodename>ino</opcodename></synopsis></opcode>
<opcode><desc>Reads quad audio data from an external device or stream.</desc><synopsis>ar1, ar2, ar3, a4 <opcodename>inq</opcodename></synopsis></opcode>
@@ -377,7 +442,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Reads a 16-channel audio signal from an external device or stream.</desc><synopsis>ar1, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12, \
ar13, ar14, ar15, ar16 <opcodename>inx</opcodename></synopsis></opcode>
<opcode><desc>Reads multi-channel audio samples into a ZAK array from an external device or stream.</desc><synopsis><opcodename>inz</opcodename> ksig1</synopsis></opcode>
-<opcode><desc>Reads stereo audio data from an external MP3 file.</desc><synopsis>ar1, ar2 <opcodename>mp3in</opcodename> ifilcod, iskptim, iformat, iskipinit, ibufsize</synopsis></opcode>
+<opcode><desc>Reads stereo audio data from an external MP3 file.</desc><synopsis>ar1, ar2 <opcodename>mp3in</opcodename> ifilcod[, iskptim, iformat, iskipinit, ibufsize]</synopsis></opcode>
<opcode><desc>Reads audio data from an external device or stream.</desc><synopsis>ar1[, ar2[, ar3[, ... a24]]] <opcodename>soundin</opcodename> ifilcod [, iskptim] [, iformat] \
[, iskipinit] [, ibufsize]</synopsis></opcode>
</category>
@@ -412,7 +477,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<category name="Signal I/O:Software Bus">
<opcode><desc>Reads data from the software bus</desc><synopsis>kval <opcodename>chani</opcodename> kchan</synopsis><synopsis>aval <opcodename>chani</opcodename> kchan</synopsis></opcode>
<opcode><desc>Send data to the outwards software bus</desc><synopsis><opcodename>chano</opcodename> kval, kchan</synopsis><synopsis><opcodename>chano</opcodename> aval, kchan</synopsis></opcode>
-<opcode><desc>Declare a channel of the named software bus.</desc><synopsis> <opcodename>chn_k</opcodename> Sname, imode[, itype, idflt, imin, imax]</synopsis><synopsis> <opcodename>chn_a</opcodename> Sname, imode</synopsis><synopsis> <opcodename>chn_S</opcodename> Sname, imode</synopsis></opcode>
+<opcode><desc>Declare a channel of the named software bus.</desc><synopsis> <opcodename>chn_k</opcodename> Sname, imode[, itype, idflt, imin, ima, ix, iy, iwidth, iheight, Sattributes]</synopsis><synopsis> <opcodename>chn_a</opcodename> Sname, imode</synopsis><synopsis> <opcodename>chn_S</opcodename> Sname, imode</synopsis></opcode>
<opcode><desc>Clears an audio output channel of the named software bus.</desc><synopsis><opcodename>chnclear</opcodename> Sname</synopsis></opcode>
<opcode><desc>Export a global variable as a channel of the bus.</desc><synopsis>gival <opcodename>chnexport</opcodename> Sname, imode[, itype, idflt, imin, imax]</synopsis><synopsis>gkval <opcodename>chnexport</opcodename> Sname, imode[, itype, idflt, imin, imax]</synopsis><synopsis>gaval <opcodename>chnexport</opcodename> Sname, imode</synopsis><synopsis>gSval <opcodename>chnexport</opcodename> Sname, imode</synopsis></opcode>
<opcode><desc>Reads data from the software bus.</desc><synopsis>ival <opcodename>chnget</opcodename> Sname</synopsis><synopsis>kval <opcodename>chnget</opcodename> Sname</synopsis><synopsis>aval <opcodename>chnget</opcodename> Sname</synopsis><synopsis>Sval <opcodename>chnget</opcodename> Sname</synopsis></opcode>
@@ -422,7 +487,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Recieves data from the software bus.</desc><synopsis>ival <opcodename>chnrecv</opcodename> Sname</synopsis><synopsis>kval <opcodename>chnrecv</opcodename> Sname</synopsis><synopsis>aval <opcodename>chnrecv</opcodename> Sname</synopsis><synopsis>Sval <opcodename>chnrecv</opcodename> Sname</synopsis></opcode>
<opcode><desc>Sends data via the named software bus.</desc><synopsis><opcodename>chnsend</opcodename> ival, Sname</synopsis><synopsis><opcodename>chnsend</opcodename> kval, Sname</synopsis><synopsis><opcodename>chnsend</opcodename> aval, Sname</synopsis><synopsis><opcodename>chnsend</opcodename> Sval, Sname</synopsis></opcode>
<opcode><desc>Writes data to the named software bus.</desc><synopsis><opcodename>chnset</opcodename> ival, Sname</synopsis><synopsis><opcodename>chnset</opcodename> kval, Sname</synopsis><synopsis><opcodename>chnset</opcodename> aval, Sname</synopsis><synopsis><opcodename>chnset</opcodename> Sval, Sname</synopsis></opcode>
-<opcode><desc>Sets the local ksmps value in a user-defined opcode block.</desc><synopsis><opcodename>setksmps</opcodename> iksmps</synopsis></opcode>
+<opcode><desc>Sets the local ksmps value in an instrument or user-defined opcode block</desc><synopsis><opcodename>setksmps</opcodename> iksmps</synopsis></opcode>
<opcode><desc>Passes variables to a user-defined opcode block,</desc><synopsis>xinarg1 [, xinarg2] ... [xinargN] <opcodename>xin</opcodename></synopsis></opcode>
<opcode><desc>Retrieves variables from a user-defined opcode block,</desc><synopsis><opcodename>xout</opcodename> xoutarg1 [, xoutarg2] ... [, xoutargN]</synopsis></opcode>
</category>
@@ -443,6 +508,8 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Returns the number of channels in a sound file.</desc><synopsis>ir <opcodename>filenchnls</opcodename> ifilcod [, iallowraw]</synopsis></opcode>
<opcode><desc>Returns the peak absolute value of a sound file.</desc><synopsis>ir <opcodename>filepeak</opcodename> ifilcod [, ichnl]</synopsis></opcode>
<opcode><desc>Returns the sample rate of a sound file.</desc><synopsis>ir <opcodename>filesr</opcodename> ifilcod [, iallowraw]</synopsis></opcode>
+<opcode><desc>Checks that a file can be used.</desc><synopsis>ir <opcodename>filevalid</opcodename> ifilcod</synopsis></opcode>
+<opcode><desc>Returns the length of an MP3 sound file.</desc><synopsis>ir <opcodename>mp3len</opcodename> ifilcod</synopsis></opcode>
</category>
<category name="Signal Modifiers:Amplitude Modifiers">
<opcode><desc>Adjust one audio signal according to the values of another.</desc><synopsis>ares <opcodename>balance</opcodename> asig, acomp [, ihp] [, iskip]</synopsis></opcode>
@@ -473,8 +540,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Taps a delay line at variable offset times.</desc><synopsis>ares <opcodename>deltapn</opcodename> xnumsamps</synopsis></opcode>
<opcode><desc>Read from or write to a delay line with interpolation.</desc><synopsis>aout <opcodename>deltapx</opcodename> adel, iwsize</synopsis></opcode>
<opcode><desc>Mixes the input signal to a delay line.</desc><synopsis><opcodename>deltapxw</opcodename> ain, adel, iwsize</synopsis></opcode>
-<opcode><desc>Short description. Single line for opcode listing.</desc><synopsis>outarg1, outarg2 <opcodename>newopcodename</opcodename> inarg1, inarg2</synopsis></opcode>
-<opcode><desc>Multitap delay line implementation.</desc><synopsis>ares <opcodename>multitap</opcodename> asig [, itime1] [, igain1] [, itime2] [, igain2] [...]</synopsis></opcode>
+<opcode><desc>Multitap delay line implementation.</desc><synopsis>ares <opcodename>multitap</opcodename> asig [, itime1, igain1] [, itime2, igain2] [...]</synopsis></opcode>
<opcode><desc>Short description. Single line for opcode listing.</desc><synopsis>outarg1, outarg2 <opcodename>newopcodename</opcodename> inarg1, inarg2</synopsis></opcode>
<opcode><desc>An interpolating variable time delay.</desc><synopsis>ares <opcodename>vdelay</opcodename> asig, adel, imaxdel [, iskip]</synopsis></opcode>
<opcode><desc>A variable time delay with cubic interpolation.</desc><synopsis>ares <opcodename>vdelay3</opcodename> asig, adel, imaxdel [, iskip]</synopsis></opcode>
@@ -502,17 +568,22 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
asig, kalpha, kbeta, kord0, kord1, kord2, kord3</synopsis></opcode>
<opcode><desc>Codes a signal into the ambisonic B format.</desc><synopsis>aw, ax, ay, az <opcodename>bformenc1</opcodename> asig, kalpha, kbeta</synopsis><synopsis>aw, ax, ay, az, ar, as, at, au, av <opcodename>bformenc1</opcodename> asig, kalpha, kbeta</synopsis><synopsis>aw, ax, ay, az, ar, as, at, au, av, ak, al, am, an, ao, ap, aq <opcodename>bformenc1</opcodename> \
asig, kalpha, kbeta</synopsis></opcode>
+<opcode><desc>Generates 3D binaural audio with high-fidelity early reflections in a parametric room using a Phase Truncation algorithm.</desc><synopsis>aleft, aright, irt60low, irt60high, imfp <opcodename>hrtfearly</opcodename> asrc, ksrcx, ksrcy, ksrcz, klstnrx, klstnry, klstnrz, \
+ ifilel, ifiler, idefroom [,ifade, isr, iorder, ithreed, kheadrot, iroomx, iroomy, iroomz, iwallhigh, \
+ iwalllow, iwallgain1, iwallgain2, iwallgain3, ifloorhigh, ifloorlow, ifloorgain1, ifloorgain2, \
+ ifloorgain3, iceilinghigh, iceilinglow, iceilinggain1, iceilinggain2, iceilinggain3]</synopsis></opcode>
<opcode><desc>Creates 3D audio for two speakers.</desc><synopsis>aleft, aright <opcodename>hrtfer</opcodename> asig, kaz, kelev, <quote>HRTFcompact</quote></synopsis></opcode>
<opcode><desc>Generates dynamic 3d binaural audio for headphones using magnitude interpolation and phase truncation.</desc><synopsis>aleft, aright <opcodename>hrtfmove</opcodename> asrc, kAz, kElev, ifilel, ifiler [, imode, ifade, isr]</synopsis></opcode>
<opcode><desc>Generates dynamic 3d binaural audio for headphones using a Woodworth based spherical head model
with improved low frequency phase accuracy.</desc><synopsis>aleft, aright <opcodename>hrtfmove2</opcodename> asrc, kAz, kElev, ifilel, ifiler [,ioverlap, iradius, isr]</synopsis></opcode>
+<opcode><desc>A binaural, dynamic FDN based diffuse-field reverberator. The opcode works independently as an efficient, flexible reverberator.</desc><synopsis>aleft, aright, idel <opcodename>hrtfreverb</opcodename> asrc, ilowrt60, ihighrt60, ifilel, ifiler [,isr, imfp, iorder]</synopsis></opcode>
<opcode><desc>Generates static 3d binaural audio for headphones using a
Woodworth based spherical head model with improved low frequency
phase accuracy.</desc><synopsis>
aleft, aright <opcodename>hrtfstat</opcodename> asrc, iAz, iElev, ifilel, ifiler [,iradius, isr]
</synopsis></opcode>
<opcode><desc>Distributes the audio signals of a previous</desc><synopsis>a1, a2 <opcodename>locsend</opcodename></synopsis><synopsis>a1, a2, a3, a4 <opcodename>locsend</opcodename></synopsis></opcode>
-<opcode><desc>Takes and input signal and distributes between 2 or 4 channels.</desc><synopsis>a1, a2 <opcodename>locsig</opcodename> asig, kdegree, kdistance, kreverbsend</synopsis><synopsis>a1, a2, a3, a4 <opcodename>locsig</opcodename> asig, kdegree, kdistance, kreverbsend</synopsis></opcode>
+<opcode><desc>Takes an input signal and distributes between 2 or 4 channels.</desc><synopsis>a1, a2 <opcodename>locsig</opcodename> asig, kdegree, kdistance, kreverbsend</synopsis><synopsis>a1, a2, a3, a4 <opcodename>locsig</opcodename> asig, kdegree, kdistance, kreverbsend</synopsis></opcode>
<opcode><desc>Distribute an audio signal amongst four channels.</desc><synopsis>a1, a2, a3, a4 <opcodename>pan</opcodename> asig, kx, ky, ifn [, imode] [, ioffset]</synopsis></opcode>
<opcode><desc>Distribute an audio signal across two channels.</desc><synopsis>a1, a2 <opcodename>pan2</opcodename> asig, xp [, imode]</synopsis></opcode>
<opcode><desc>Distributes an input signal among 4 channels using cartesian coordinates.</desc><synopsis>a1, a2, a3, a4 <opcodename>space</opcodename> asig, ifn, ktime, kreverbsend, kx, ky</synopsis></opcode>
@@ -521,6 +592,8 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Can be used to render an impulse response for a 3D space at i-time.</desc><synopsis><opcodename>spat3dt</opcodename> ioutft, iX, iY, iZ, idist, ift, imode, irlen [, iftnocl]</synopsis></opcode>
<opcode><desc>Calculates distance values from xy coordinates.</desc><synopsis>k1 <opcodename>spdist</opcodename> ifn, ktime, kx, ky</synopsis></opcode>
<opcode><desc>Generates output signals based on a previously defined</desc><synopsis>a1, a2, a3, a4 <opcodename>spsend</opcodename></synopsis></opcode>
+<opcode><desc>Distributes an audio signal among many channels.</desc><synopsis>ar1[, ar2...] <opcodename>vbap</opcodename> asig, kazim [,
+ kelev] [, kspread] [, ilayout]</synopsis></opcode>
<opcode><desc>Distributes an audio signal among 16 channels.</desc><synopsis>ar1, ..., ar16 <opcodename>vbap16</opcodename> asig, kazim [, kelev] [, kspread]</synopsis></opcode>
<opcode><desc>Distribute an audio signal among 16 channels with moving virtual sources.</desc><synopsis>ar1, ..., ar16 <opcodename>vbap16move</opcodename> asig, idur, ispread, ifldnum, ifld1 \
[, ifld2] [...]</synopsis></opcode>
@@ -530,7 +603,10 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Distributes an audio signal among 8 channels.</desc><synopsis>ar1, ..., ar8 <opcodename>vbap8</opcodename> asig, kazim [, kelev] [, kspread]</synopsis></opcode>
<opcode><desc>Distributes an audio signal among 8 channels with moving virtual sources.</desc><synopsis>ar1, ..., ar8 <opcodename>vbap8move</opcodename> asig, idur, ispread, ifldnum, ifld1 \
[, ifld2] [...]</synopsis></opcode>
+<opcode><desc>Calculates the gains for a sound location between multiple channels.</desc><synopsis>k1[, k2...] <opcodename>vbapg</opcodename> kazim [,kelev] [, kspread] [, ilayout]</synopsis></opcode>
<opcode><desc>Configures VBAP output according to loudspeaker parameters.</desc><synopsis><opcodename>vbaplsinit</opcodename> idim, ilsnum [, idir1] [, idir2] [...] [, idir32]</synopsis></opcode>
+<opcode><desc>Distributes an audio signal among many channels with moving virtual sources.</desc><synopsis>ar1[, ar2...] <opcodename>vbapmove</opcodename> asig, idur, ispread, ifldnum, ifld1 \
+ [, ifld2] [...]</synopsis></opcode>
<opcode><desc>Writes a multi-channel audio signal to a ZAK array.</desc><synopsis><opcodename>vbapz</opcodename> inumchnls, istartndx, asig, kazim [, kelev] [, kspread]</synopsis></opcode>
<opcode><desc>Writes a multi-channel audio signal to a ZAK array with moving virtual sources.</desc><synopsis><opcodename>vbapzmove</opcodename> inumchnls, istartndx, asig, idur, ispread, ifldnum, ifld1, \
ifld2, [...]</synopsis></opcode>
@@ -539,11 +615,13 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Reverberates an input signal with a flat frequency response.</desc><synopsis>ares <opcodename>alpass</opcodename> asig, krvt, ilpt [, iskip] [, insmps]</synopsis></opcode>
<opcode><desc>A physical model reverberator.</desc><synopsis>a1, a2 <opcodename>babo</opcodename> asig, ksrcx, ksrcy, ksrcz, irx, iry, irz [, idiff] [, ifno]</synopsis></opcode>
<opcode><desc>Reverberates an input signal with a</desc><synopsis>ares <opcodename>comb</opcodename> asig, krvt, ilpt [, iskip] [, insmps]</synopsis></opcode>
+<opcode><desc>Reverberates an input signal with a</desc><synopsis>ares <opcodename>combinv</opcodename> asig, krvt, ilpt [, iskip] [, insmps]</synopsis></opcode>
<opcode><desc>Opcode version of Jezar's Freeverb</desc><synopsis>aoutL, aoutR <opcodename>freeverb</opcodename> ainL, ainR, kRoomSize, kHFDamp[, iSRate[, iSkip]] </synopsis></opcode>
<opcode><desc>Three different nested all-pass filters.</desc><synopsis>ares <opcodename>nestedap</opcodename> asig, imode, imaxdel, idel1, igain1 [, idel2] [, igain2] \
[, idel3] [, igain3] [, istor]</synopsis></opcode>
<opcode><desc>A reverberator consisting of 6 parallel comb-lowpass filters.</desc><synopsis>ares <opcodename>nreverb</opcodename> asig, ktime, khdif [, iskip] [,inumCombs] [, ifnCombs] \
[, inumAlpas] [, ifnAlpas]</synopsis></opcode>
+<opcode><desc>Models the reverberation of a metal plate.</desc><synopsis>a1[, a2, ...] <opcodename>platerev</opcodename> itabexcite. itabouts, kbndry, iaspect, istiff, idecay, iloss, aexcite1[, aexcite2, ...]</synopsis></opcode>
<opcode><desc>Reverberates an input signal with a</desc><synopsis>ares <opcodename>reverb</opcodename> asig, krvt [, iskip]</synopsis></opcode>
<opcode><desc>Same as the nreverb opcode.</desc><synopsis>ares <opcodename>reverb2</opcodename> asig, ktime, khdif [, iskip] [,inumCombs] \
[, ifnCombs] [, inumAlpas] [, ifnAlpas]</synopsis></opcode>
@@ -560,8 +638,9 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Converts a control signal to an audio signal using linear interpolation.</desc><synopsis>ares <opcodename>interp</opcodename> ksig [, iskip] [, imode]</synopsis></opcode>
<opcode><desc>Calculates the weighted mean value of two input signals.</desc><synopsis>ares <opcodename>ntrpol</opcodename> asig1, asig2, kpoint [, imin] [, imax]</synopsis><synopsis>ires <opcodename>ntrpol</opcodename> isig1, isig2, ipoint [, imin] [, imax]</synopsis><synopsis>kres <opcodename>ntrpol</opcodename> ksig1, ksig2, kpoint [, imin] [, imax]</synopsis></opcode>
<opcode><desc>Converts a k-rate parameter to an a-rate value with interpolation.</desc><synopsis><opcodename>a</opcodename>(x) (control-rate args only)</synopsis></opcode>
-<opcode><desc>Returns an init-type equivalent of a k-rate argument.</desc><synopsis><opcodename>i</opcodename>(x) (control-rate args only)</synopsis></opcode>
-<opcode><desc>Converts a i-rate parameter to an k-rate value.</desc><synopsis><opcodename>k</opcodename>(x) (i-rate args only)</synopsis></opcode>
+<opcode><desc>Returns an init-type equivalent of a k-rate argument, or directly returns an i-rate argument.</desc><synopsis><opcodename>i</opcodename>(x) (control-rate or init-rate arg)</synopsis></opcode>
+<opcode><desc>Converts a i-rate parameter to an k-rate value.
+ Or converts an a-rate value to a k-rate value by down-sampling.</desc><synopsis><opcodename>k</opcodename>(x) (i-rate args only)</synopsis><synopsis><opcodename>k</opcodename>(x) (a-rate args only)</synopsis></opcode>
<opcode><desc>Performs a sample-and-hold operation on its input.</desc><synopsis>ares <opcodename>samphold</opcodename> asig, agate [, ival] [, ivstor]</synopsis><synopsis>kres <opcodename>samphold</opcodename> ksig, kgate [, ival] [, ivstor]</synopsis></opcode>
<opcode><desc>Modify a signal by up-sampling.</desc><synopsis>ares <opcodename>upsamp</opcodename> ksig</synopsis></opcode>
<opcode><desc>Access values of the current buffer of an a-rate variable by indexing.</desc><synopsis>kval <opcodename>vaget</opcodename> kndx, avar</synopsis></opcode>
@@ -600,6 +679,8 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>A low-pass Butterworth filter.</desc><synopsis>ares <opcodename>butterlp</opcodename> asig, kfreq [, iskip]</synopsis></opcode>
<opcode><desc>Implements low-pass and high-pass filters of different styles.</desc><synopsis>ares <opcodename>clfilt</opcodename> asig, kfreq, itype, inpol [, ikind] [, ipbr] [, isba] [, iskip]</synopsis></opcode>
<opcode><desc>A fast and robust method for approximating sound propagation, achieving convincing Doppler shifts without having to solve equations.</desc><synopsis>ashifted <opcodename>doppler</opcodename> asource, ksourceposition, kmicposition [, isoundspeed, ifiltercutoff]</synopsis></opcode>
+<opcode><desc>A median filter, a variant FIR lowpass filter.</desc><synopsis>ares <opcodename>median</opcodename> asig, ksize, imaxsize [, iskip]</synopsis></opcode>
+<opcode><desc>A median filter, a variant FIR lowpass filter.</desc><synopsis>kres <opcodename>mediank</opcodename> kin, ksize, imaxsize [, iskip]</synopsis></opcode>
<opcode><desc>A filter that simulates a mass-spring-damper system</desc><synopsis>aout <opcodename>mode</opcodename> ain, kfreq, kQ [, iskip]</synopsis></opcode>
<opcode><desc>A first-order recursive low-pass filter with variable frequency response.</desc><synopsis>ares <opcodename>tone</opcodename> asig, khp [, iskip]</synopsis></opcode>
<opcode><desc>Emulates a stack of filters using the tone opcode.</desc><synopsis>ares <opcodename>tonex</opcodename> asig, khp [, inumlayer] [, iskip]</synopsis></opcode>
@@ -610,7 +691,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>A resonant lowpass filter.</desc><synopsis>ares <opcodename>lowpass2</opcodename> asig, kcf, kq [, iskip]</synopsis></opcode>
<opcode><desc>Another resonant lowpass filter.</desc><synopsis>ares <opcodename>lowres</opcodename> asig, kcutoff, kresonance [, iskip]</synopsis></opcode>
<opcode><desc>Simulates layers of serially connected resonant lowpass filters.</desc><synopsis>ares <opcodename>lowresx</opcodename> asig, kcutoff, kresonance [, inumlayer] [, iskip]</synopsis></opcode>
-<opcode><desc>A 3-pole sweepable resonant lowpass filter.</desc><synopsis>ares <opcodename>lpf18</opcodename> asig, kfco, kres, kdist</synopsis></opcode>
+<opcode><desc>A 3-pole sweepable resonant lowpass filter.</desc><synopsis>ares <opcodename>lpf18</opcodename> asig, kfco, kres, kdist [, iskip]</synopsis></opcode>
<opcode><desc>Moog ladder lowpass filter.</desc><synopsis>asig <opcodename>moogladder</opcodename> ain, kcf, kres[, istor]</synopsis></opcode>
<opcode><desc>A digital emulation of the Moog diode ladder filter configuration.</desc><synopsis>ares <opcodename>moogvcf</opcodename> asig, xfco, xres [,iscale, iskip]</synopsis></opcode>
<opcode><desc>A digital emulation of the Moog diode ladder filter configuration.</desc><synopsis>ares <opcodename>moogvcf2</opcodename> asig, xfco, xres [,iscale, iskip]</synopsis></opcode>
@@ -644,6 +725,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Formant filter.</desc><synopsis>asig <opcodename>fofilter</opcodename> ain, kcf, kris, kdec[, istor]</synopsis></opcode>
<opcode><desc>A Hilbert transformer.</desc><synopsis>ar1, ar2 <opcodename>hilbert</opcodename> asig</synopsis></opcode>
<opcode><desc>A filter with a non-linear effect.</desc><synopsis>ares <opcodename>nlfilt</opcodename> ain, ka, kb, kd, kC, kL</synopsis></opcode>
+<opcode><desc>A filter with a non-linear effect and blowup protection.</desc><synopsis>ares <opcodename>nlfilt2</opcodename> ain, ka, kb, kd, kC, kL</synopsis></opcode>
<opcode><desc>Implementation of Zoelzer's parametric equalizer filters.</desc><synopsis>ares <opcodename>pareq</opcodename> asig, kc, kv, kq [, imode] [, iskip]</synopsis></opcode>
<opcode><desc>Parametric equalizer and filter opcode with 7 filter types, based
on algorithm by Robert Bristow-Johnson.</desc><synopsis>ar <opcodename>rbjeq</opcodename> asig, kfco, klvl, kQ, kS[, imode]</synopsis></opcode>
@@ -663,13 +745,13 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Waveshapes a signal by raising it to a variable exponent.</desc><synopsis>aout <opcodename>powershape</opcodename> ain, kShapeAmount [, ifullscale]</synopsis></opcode>
</category>
<category name="Signal Modifiers:Comparators and Accumulators">
-<opcode><desc>Produces a signal that is the maximum of any number of input signals.</desc><synopsis>amax <opcodename>max</opcodename> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmax <opcodename>max</opcodename> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis></opcode>
+<opcode><desc>Produces a signal that is the maximum of any number of input signals.</desc><synopsis>amax <opcodename>max</opcodename> ain1, ain2 [, ain3] [, ain4] [...]</synopsis><synopsis>kmax <opcodename>max</opcodename> kin1, kin2 [, kin3] [, kin4] [...]</synopsis></opcode>
<opcode><desc>Local maximum (or minimum) value of an incoming asig signal</desc><synopsis>knumkout <opcodename>max_k</opcodename> asig, ktrig, itype</synopsis></opcode>
-<opcode><desc>Produces a signal that is the maximum of the absolute values of any number of input signals.</desc><synopsis>amax <opcodename>maxabs</opcodename> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmax <opcodename>maxabs</opcodename> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis></opcode>
+<opcode><desc>Produces a signal that is the maximum of the absolute values of any number of input signals.</desc><synopsis>amax <opcodename>maxabs</opcodename> ain1, ain2 [, ain3] [, ain4] [...]</synopsis><synopsis>kmax <opcodename>maxabs</opcodename> kin1, kin2 [, kin3] [, kin4] [...]</synopsis></opcode>
<opcode><desc>Accumulates the maximum of the absolute values of audio signals.</desc><synopsis><opcodename>maxabsaccum</opcodename> aAccumulator, aInput</synopsis></opcode>
<opcode><desc>Accumulates the maximum value of audio signals.</desc><synopsis><opcodename>maxaccum</opcodename> aAccumulator, aInput</synopsis></opcode>
-<opcode><desc>Produces a signal that is the minimum of any number of input signals.</desc><synopsis>amin <opcodename>min</opcodename> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmin <opcodename>min</opcodename> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis></opcode>
-<opcode><desc>Produces a signal that is the minimum of the absolute values of any number of input signals.</desc><synopsis>amin <opcodename>minabs</opcodename> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis><synopsis>kmin <opcodename>minabs</opcodename> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis></opcode>
+<opcode><desc>Produces a signal that is the minimum of any number of input signals.</desc><synopsis>amin <opcodename>min</opcodename> ain1, ain2 [, ain3] [, ain4] [...]</synopsis><synopsis>kmin <opcodename>min</opcodename> kin1, kin2 [, kin3] [, kin4] [...]</synopsis></opcode>
+<opcode><desc>Produces a signal that is the minimum of the absolute values of any number of input signals.</desc><synopsis>amin <opcodename>minabs</opcodename> ain1, ain2 [, ain3] [, ain4] [...]</synopsis><synopsis>kmin <opcodename>minabs</opcodename> kin1, kin2 [, kin3] [, kin4] [...]</synopsis></opcode>
<opcode><desc>Accumulates the minimum of the absolute values of audio signals.</desc><synopsis><opcodename>minabsaccum</opcodename> aAccumulator, aInput</synopsis></opcode>
<opcode><desc>Accumulates the minimum value of audio signals.</desc><synopsis><opcodename>minaccum</opcodename> aAccumulator, aInput</synopsis></opcode>
</category>
@@ -685,6 +767,12 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Determines if one value is less than another.</desc><synopsis>(a <opcodename>&lt;</opcodename> b <opcodename>?</opcodename> v1 <opcodename>:</opcodename> v2)</synopsis></opcode>
<opcode><desc>Determines if one value is not equal to another.</desc><synopsis>(a <opcodename>!=</opcodename> b <opcodename>?</opcodename> v1 <opcodename>:</opcodename> v2)</synopsis></opcode>
</category>
+<category name="Instrument Control:Compilation">
+<opcode><desc>compiles a new orchestra from an ASCII file</desc><synopsis>ires <opcodename>compileorc</opcodename> Sfilename</synopsis></opcode>
+<opcode><desc>compiles a new orchestra passed in as an ASCII string</desc><synopsis>ires <opcodename>compilestr</opcodename> Sorch</synopsis></opcode>
+<opcode><desc>Evalstrs evaluates a string containing Csound code, returning a value.</desc><synopsis>ires <opcodename>evalstr</opcodename> Scode </synopsis></opcode>
+<opcode><desc>Returns a value from an instrument.</desc><synopsis><opcodename>return</opcodename> ival </synopsis></opcode>
+</category>
<category name="Instrument Control:Duration Control">
<opcode><desc>Creates a held note.</desc><synopsis><opcodename>ihold</opcodename></synopsis></opcode>
<opcode><desc>Enables an instrument to turn itself off.</desc><synopsis><opcodename>turnoff</opcodename></synopsis></opcode>
@@ -696,6 +784,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Generates a score event from an instrument.</desc><synopsis><opcodename>event</opcodename> &quot;scorechar&quot;, kinsnum, kdelay, kdur, [, kp4] [, kp5] [, ...]</synopsis><synopsis><opcodename>event</opcodename> &quot;scorechar&quot;, &quot;insname&quot;, kdelay, kdur, [, kp4] [, kp5] [, ...]</synopsis></opcode>
<opcode><desc>Generates a score event from an instrument.</desc><synopsis><opcodename>event_i</opcodename> &quot;scorechar&quot;, iinsnum, idelay, idur, [, ip4] [, ip5] [, ...]</synopsis><synopsis><opcodename>event_i</opcodename> &quot;scorechar&quot;, &quot;insname&quot;, idelay, idur, [, ip4] [, ip5] [, ...]</synopsis></opcode>
<opcode><desc>Mutes/unmutes new instances of a given instrument.</desc><synopsis><opcodename>mute</opcodename> insnum [, iswitch]</synopsis><synopsis><opcodename>mute</opcodename> &quot;insname&quot; [, iswitch]</synopsis></opcode>
+<opcode><desc>Read, preprocess and schedule a score from an input string.</desc><synopsis><opcodename>readscore</opcodename> Sin </synopsis></opcode>
<opcode><desc>Removes the definition of an instrument.</desc><synopsis><opcodename>remove</opcodename> insnum</synopsis></opcode>
<opcode><desc>Adds a new score event generated by a k-rate trigger.</desc><synopsis><opcodename>schedkwhen</opcodename> ktrigger, kmintim, kmaxnum, kinsnum, kwhen, kdur \
[, ip4] [, ip5] [...]</synopsis><synopsis><opcodename>schedkwhen</opcodename> ktrigger, kmintim, kmaxnum, &quot;insname&quot;, kwhen, kdur \
@@ -718,25 +807,28 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Transfer control on every pass.</desc><synopsis><opcodename>goto</opcodename> label</synopsis></opcode>
<opcode><desc>Branches conditionally at initialization or during performance time.</desc><synopsis><opcodename>if</opcodename> ia R ib <opcodename>igoto</opcodename> label</synopsis><synopsis><opcodename>if</opcodename> ka R kb <opcodename>kgoto</opcodename> label</synopsis><synopsis><opcodename>if</opcodename> xa R xb <opcodename>goto</opcodename> label</synopsis><synopsis><opcodename>if</opcodename> xa R xb <opcodename>then</opcodename></synopsis></opcode>
<opcode><desc>Transfer control during the i-time pass.</desc><synopsis><opcodename>igoto</opcodename> label</synopsis></opcode>
-<opcode><desc>Transfer control during the p-time passes.</desc><synopsis><opcodename>kgoto</opcodename> label</synopsis></opcode>
+<opcode><desc>Transfer control during the performance-time passes.</desc><synopsis><opcodename>kgoto</opcodename> label</synopsis></opcode>
<opcode><desc>Looping constructions.</desc><synopsis><opcodename>loop_ge</opcodename> indx, idecr, imin, label</synopsis><synopsis><opcodename>loop_ge</opcodename> kndx, kdecr, kmin, label</synopsis></opcode>
<opcode><desc>Looping constructions.</desc><synopsis><opcodename>loop_gt</opcodename> indx, idecr, imin, label</synopsis><synopsis><opcodename>loop_gt</opcodename> kndx, kdecr, kmin, label</synopsis></opcode>
<opcode><desc>Looping constructions.</desc><synopsis><opcodename>loop_le</opcodename> indx, incr, imax, label</synopsis><synopsis><opcodename>loop_le</opcodename> kndx, kncr, kmax, label</synopsis></opcode>
<opcode><desc>Looping constructions.</desc><synopsis><opcodename>loop_lt</opcodename> indx, incr, imax, label</synopsis><synopsis><opcodename>loop_lt</opcodename> kndx, kncr, kmax, label</synopsis></opcode>
<opcode><desc>Transfer control at i-time when a new note is being tied onto a previously held note</desc><synopsis><opcodename>tigoto</opcodename> label</synopsis></opcode>
<opcode><desc>Conditional branch during p-time depending on elapsed note time.</desc><synopsis><opcodename>timout</opcodename> istrt, idur, label</synopsis></opcode>
+<opcode><desc>A syntactic looping construction.</desc><synopsis><opcodename>until</opcodename> condition <opcodename>do</opcodename>
+ ... <opcodename>od</opcodename></synopsis></opcode>
</category>
<category name="Instrument Control:Realtime Performance Control">
-<opcode><desc>Returns the number of active instances of an instrument.</desc><synopsis>ir <opcodename>active</opcodename> insnum</synopsis><synopsis>kres <opcodename>active</opcodename> kinsnum</synopsis></opcode>
-<opcode><desc>Control allocation of cpu resources on a per-instrument basis, to optimize realtime output.</desc><synopsis><opcodename>cpuprc</opcodename> insnum, ipercent</synopsis></opcode>
+<opcode><desc>Returns the number of active instances of an instrument.</desc><synopsis>ir <opcodename>active</opcodename> insnum [,iopt]</synopsis><synopsis>ir <opcodename>active</opcodename> Sinsname [,iopt]</synopsis><synopsis>kres <opcodename>active</opcodename> kinsnum [,iopt]</synopsis></opcode>
+<opcode><desc>Reports the usage of cpu either total or per core.</desc><synopsis>ktot[,kcpu1, kcpu2,...]<opcodename>cpumeter</opcodename> ifreq</synopsis></opcode>
+<opcode><desc>Control allocation of cpu resources on a per-instrument basis, to optimize realtime output.</desc><synopsis><opcodename>cpuprc</opcodename> insnum, ipercent</synopsis><synopsis><opcodename>cpuprc</opcodename> Sinsname, ipercent</synopsis></opcode>
<opcode><desc>Exit Csound as fast as possible, with no cleaning up.</desc><synopsis><opcodename>exitnow</opcodename></synopsis></opcode>
<opcode><desc>Start/stop jack_transport and can optionally relocate the playback head.</desc><synopsis><opcodename>jacktransport</opcodename> icommand [, ilocation]</synopsis></opcode>
-<opcode><desc>Limits the number of allocations of an instrument.</desc><synopsis><opcodename>maxalloc</opcodename> insnum, icount</synopsis></opcode>
+<opcode><desc>Limits the number of allocations of an instrument.</desc><synopsis><opcodename>maxalloc</opcodename> insnum, icount</synopsis><synopsis><opcodename>maxalloc</opcodename> Sinsname, icount</synopsis></opcode>
<opcode><desc>Creates space for instruments but does not run them.</desc><synopsis><opcodename>prealloc</opcodename> insnum, icount</synopsis><synopsis><opcodename>prealloc</opcodename> &quot;insname&quot;, icount</synopsis></opcode>
</category>
<category name="Instrument Control:Initialization and Reinitialization">
-<opcode><desc>Performs a simple assignment.</desc><synopsis>ares <opcodename>=</opcodename> xarg</synopsis><synopsis>ires <opcodename>=</opcodename> iarg</synopsis><synopsis>kres <opcodename>=</opcodename> karg</synopsis><synopsis>ires, ... <opcodename>=</opcodename> iarg, ...</synopsis><synopsis>kres, ... <opcodename>=</opcodename> karg, ...</synopsis></opcode>
-<opcode><desc>Puts the value of the i-time expression into a k- or a-rate variable.</desc><synopsis>ares <opcodename>init</opcodename> iarg</synopsis><synopsis>ires <opcodename>init</opcodename> iarg</synopsis><synopsis>kres <opcodename>init</opcodename> iarg</synopsis><synopsis>ares, ... <opcodename>init</opcodename> iarg, ...</synopsis><synopsis>ires, ... <opcodename>init</opcodename> iarg, ...</synopsis><synopsis>kres, ...<opcodename>init</opcodename> iarg, ...</synopsis></opcode>
+<opcode><desc>Performs a simple assignment.</desc><synopsis>ares <opcodename>=</opcodename> xarg</synopsis><synopsis>ires <opcodename>=</opcodename> iarg</synopsis><synopsis>kres <opcodename>=</opcodename> karg</synopsis><synopsis>ires, ... <opcodename>=</opcodename> iarg, ...</synopsis><synopsis>kres, ... <opcodename>=</opcodename> karg, ...</synopsis><synopsis>table [ kval] <opcodename>=</opcodename> karg</synopsis></opcode>
+<opcode><desc>Puts the value of the i-time expression into a k-, a-rate or t- variable.</desc><synopsis>ares <opcodename>init</opcodename> iarg</synopsis><synopsis>ires <opcodename>init</opcodename> iarg</synopsis><synopsis>kres <opcodename>init</opcodename> iarg</synopsis><synopsis>ares, ... <opcodename>init</opcodename> iarg, ...</synopsis><synopsis>ires, ... <opcodename>init</opcodename> iarg, ...</synopsis><synopsis>kres, ... <opcodename>init</opcodename> iarg, ...</synopsis><synopsis>tab <opcodename>init</opcodename> isize[, ival]</synopsis></opcode>
<opcode><desc>Returns the number of a named instrument.</desc><synopsis>insno <opcodename>nstrnum</opcodename> &quot;name&quot;</synopsis></opcode>
<opcode><desc>Show the value in a given p-field.</desc><synopsis><opcodename>p</opcodename>(x) </synopsis></opcode>
<opcode><desc>Assigns a range of p-fields to ivariables.</desc><synopsis> ivar1, ... <opcodename>passign</opcodename> [istart]</synopsis></opcode>
@@ -754,6 +846,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Envelope follower unit generator.</desc><synopsis>ares <opcodename>follow</opcodename> asig, idt</synopsis></opcode>
<opcode><desc>Another controllable envelope extractor.</desc><synopsis>ares <opcodename>follow2</opcodename> asig, katt, krel</synopsis></opcode>
<opcode><desc>Return Csound settings.</desc><synopsis>Svalue <opcodename>getcfg</opcodename> iopt</synopsis></opcode>
+<opcode><desc>Reads data from a joystick controller.</desc><synopsis>kres <opcodename>joystick</opcodename> kdevice ktab</synopsis></opcode>
<opcode><desc>Trigger Metronome</desc><synopsis>ktrig <opcodename>metro</opcodename> kfreq [, initphase]</synopsis></opcode>
<opcode><desc>Returns the current tempo at k-rate, of either the MIDI file (if available) or the score</desc><synopsis>ksig <opcodename>miditempo</opcodename></synopsis></opcode>
<opcode><desc>Reads data from a P5 Glove controller.</desc><synopsis><opcodename>p5gconnect</opcodename></synopsis></opcode>
@@ -765,14 +858,16 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
[, istrt] [, iocts] [, iq] [, inptls] [, irolloff] [, iskip]</synopsis></opcode>
<opcode><desc>Follows the pitch of a signal based on the AMDF method.</desc><synopsis>kcps, krms <opcodename>pitchamdf</opcodename> asig, imincps, imaxcps [, icps] [, imedi] \
[, idowns] [, iexcps] [, irmsmedi]</synopsis></opcode>
+<opcode><desc>Tracks the pitch of a signal.</desc><synopsis>acps, alock <opcodename>plltrack</opcodename> asig, kd [, kloopf, kloopq, klf, khf, kthresh]</synopsis></opcode>
<opcode><desc>Tracks the pitch of a signal.</desc><synopsis>kcps, kamp <opcodename>ptrack</opcodename> asig, ihopsize[,ipeaks]</synopsis></opcode>
+<opcode><desc>returns a value stored in the instance of an instrument.</desc><synopsis>ival <opcodename>readscratch</opcodename>[index]</synopsis></opcode>
<opcode><desc>Rewinds the playback position of the current score performance.</desc><synopsis> <opcodename>rewindscore</opcodename></synopsis></opcode>
<opcode><desc>Determines the root-mean-square amplitude of an audio signal.</desc><synopsis>kres <opcodename>rms</opcodename> asig [, ihp] [, iskip]</synopsis></opcode>
<opcode><desc>Returns the ASCII code of a key that has been pressed.</desc><synopsis>kres[, kkeydown] <opcodename>sensekey</opcodename></synopsis></opcode>
<opcode><desc>Generates a trigger signal according to the values stored in a table.</desc><synopsis>ktrig_out <opcodename>seqtime</opcodename> ktime_unit, kstart, kloop, kinitndx, kfn_times</synopsis></opcode>
<opcode><desc>Generates a trigger signal according to the values stored in a table.</desc><synopsis>ktrig_out <opcodename>seqtime2</opcodename> ktrig_in, ktime_unit, kstart, kloop, kinitndx, kfn_times</synopsis></opcode>
<opcode><desc>Configurable slider controls for realtime user input.</desc><synopsis><opcodename>setctrl</opcodename> inum, ival, itype</synopsis></opcode>
-<opcode><desc>Sets the playback position of the current score performance to a given position.</desc><synopsis> <opcodename>setscorepos ipos</opcodename></synopsis></opcode>
+<opcode><desc>Sets the playback position of the current score performance to a given position.</desc><synopsis> <opcodename>setscorepos ipos</opcodename></synopsis></opcode>
<opcode><desc>Split a trigger signal</desc><synopsis><opcodename>splitrig</opcodename> ktrig, kndx, imaxtics, ifn, kout1 [,kout2,...,koutN]</synopsis></opcode>
<opcode><desc>Estimate the tempo of beat patterns in a control signal.</desc><synopsis>ktemp <opcodename>tempest</opcodename> kin, iprd, imindur, imemdur, ihp, ithresh, ihtim, ixfdbak, \
istartempo, ifn [, idisprd] [, itweek]</synopsis></opcode>
@@ -781,10 +876,11 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Time Variant Sequencer</desc><synopsis>ktrig <opcodename>timedseq</opcodename> ktimpnt, ifn, kp1 [,kp2, kp3, ...,kpN]</synopsis></opcode>
<opcode><desc>Informs when a krate signal crosses a threshold.</desc><synopsis>kout <opcodename>trigger</opcodename> ksig, kthreshold, kmode</synopsis></opcode>
<opcode><desc>Accepts a trigger signal as input and outputs a group of values.</desc><synopsis><opcodename>trigseq</opcodename> ktrig_in, kstart, kloop, kinitndx, kfn_values, kout1 [, kout2] [...]</synopsis></opcode>
-<opcode><desc>Reads data from a number of external Nintendo Wiimote controllers.</desc><synopsis>kres <opcodename>wiiconnect</opcodename> [itimeout, imaxnum]</synopsis></opcode>
+<opcode><desc>Reads data from a number of external Nintendo Wiimote controllers.</desc><synopsis>ires <opcodename>wiiconnect</opcodename> [itimeout, imaxnum]</synopsis></opcode>
<opcode><desc>Reads data fields from a number of external Nintendo Wiimote controllers.</desc><synopsis>kres <opcodename>wiidata</opcodename> kcontrol[, knum]</synopsis></opcode>
<opcode><desc>Sets scaling and range limits for certain Wiimote fields.</desc><synopsis> <opcodename>wiirange</opcodename> icontrol, iminimum, imaximum[, inum]</synopsis></opcode>
<opcode><desc>Sends data to one of a number of external Nintendo Wiimote controllers.</desc><synopsis>kres <opcodename>wiisend</opcodename> kcontrol, kvalue[, knum]</synopsis></opcode>
+<opcode><desc>writes a value into the scratchpad of the instance of an instrument.</desc><synopsis><opcodename>writescratch</opcodename>ival[, index]</synopsis></opcode>
<opcode><desc>Sense the cursor position in an output window</desc><synopsis>kx, ky <opcodename>xyin</opcodename> iprd, ixmin, ixmax, iymin, iymax [, ixinit] [, iyinit]</synopsis></opcode>
</category>
<category name="Instrument Control:Stacks">
@@ -799,7 +895,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Creates and runs a numbered instrument instance at init-time.</desc><synopsis><opcodename>subinstrinit</opcodename> instrnum [, p4] [, p5] [...]</synopsis><synopsis><opcodename>subinstrinit</opcodename> &quot;insname&quot; [, p4] [, p5] [...]</synopsis></opcode>
</category>
<category name="Instrument Control:Time Reading">
-<opcode><desc>Returns the number seconds since 1 January 1970.</desc><synopsis>ir <opcodename>date</opcodename></synopsis></opcode>
+<opcode><desc>Returns the number seconds since a base date.</desc><synopsis>ir <opcodename>date</opcodename></synopsis></opcode>
<opcode><desc>Returns as a string the date and time specified.</desc><synopsis>Sir <opcodename>dates</opcodename> [ itime]</synopsis></opcode>
<opcode><desc>Reads the value of an internal clock.</desc><synopsis>ir <opcodename>readclock</opcodename> inum</synopsis></opcode>
<opcode><desc>Read the real time clock from the operating system.</desc><synopsis>ires <opcodename>rtclock</opcodename></synopsis><synopsis>kres <opcodename>rtclock</opcodename></synopsis></opcode>
@@ -808,21 +904,59 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Read absolute time in k-rate cycles.</desc><synopsis>ires <opcodename>timek</opcodename></synopsis><synopsis>kres <opcodename>timek</opcodename></synopsis></opcode>
<opcode><desc>Read absolute time in seconds.</desc><synopsis>ires <opcodename>times</opcodename></synopsis><synopsis>kres <opcodename>times</opcodename></synopsis></opcode>
</category>
+<category name="Jacko Opcodes">
+<opcode><desc>Receives an audio signal from a Jack port.</desc><synopsis>asignal <opcodename>JackoAudioIn </opcodename>ScsoundPortName</synopsis></opcode>
+<opcode><desc>Creates an audio connection from a Jack port to Csound.</desc><synopsis><opcodename>JackoAudioInConnect </opcodename>SexternalPortName, ScsoundPortName</synopsis></opcode>
+<opcode><desc>Sends an audio signal to a Jack port.</desc><synopsis><opcodename>JackoAudioOut </opcodename> ScsoundPortName, asignal</synopsis></opcode>
+<opcode><desc>Creates an audio connection from Csound to a Jack port.</desc><synopsis><opcodename>JackoAudioOutConnect </opcodename>ScsoundPortName, SexternalPortName</synopsis></opcode>
+<opcode><desc>Turns Jack's freewheeling mode on or off.</desc><synopsis><opcodename>JackoFreewheel </opcodename>[ienabled]</synopsis></opcode>
+<opcode><desc>Prints information about the Jack system.</desc><synopsis><opcodename>JackoInfo </opcodename></synopsis></opcode>
+<opcode><desc>Initializes Csound as a Jack client.</desc><synopsis><opcodename>JackoInit </opcodename>SclientName, ServerName</synopsis></opcode>
+<opcode><desc>Creates a MIDI connection from a Jack port to Csound.</desc><synopsis><opcodename>JackoMidiInConnect </opcodename>SexternalPortName, ScsoundPortName</synopsis></opcode>
+<opcode><desc>Sends a MIDI channel message to a Jack port.</desc><synopsis><opcodename>JackoMidiOut </opcodename> ScsoundPortName, kstatus, kchannel, kdata1[, kdata2]</synopsis></opcode>
+<opcode><desc>Creates a MIDI connection from Csound to a Jack port.</desc><synopsis><opcodename>JackoMidiOutConnect </opcodename>ScsoundPortName, SexternalPortName</synopsis></opcode>
+<opcode><desc>Sends a MIDI channel message to a Jack port.</desc><synopsis><opcodename>JackoNoteOut </opcodename> ScsoundPortName, kstatus, kchannel, kdata1[, kdata2]</synopsis></opcode>
+<opcode><desc>Enables or disables all Jack ports.</desc><synopsis><opcodename>JackoOn </opcodename>[iactive] </synopsis></opcode>
+<opcode><desc>Control the Jack transport.</desc><synopsis><opcodename>JackoTransport </opcodename> kcommand, [kposition]</synopsis></opcode>
+</category>
+<category name="Lua Opcodes">
+<opcode><desc>Executes an arbitrary block of Lua code from the Csound orchestra.</desc><synopsis><opcodename>lua_exec</opcodename> Sluacode</synopsis></opcode>
+<opcode><desc>Calls a Lua opcode at i-rate only. Any number of output and/or
+ input arguments may be passed. All arguments must be passed on
+ the right-hand side. Outputs are returned in the argument.</desc><synopsis><opcodename>lua_iopcall</opcodename> Sname, ...</synopsis><synopsis><opcodename>lua_ikopcall</opcodename> Sname, ...</synopsis><synopsis><opcodename>lua_iaopcall</opcodename> Sname, ...</synopsis><synopsis><opcodename>lua_iopcall_off</opcodename> Sname, ...</synopsis><synopsis><opcodename>lua_ikopcall_off</opcodename> Sname, ...</synopsis><synopsis><opcodename>lua_iaopcall_off</opcodename> Sname, ...</synopsis></opcode>
+<opcode><desc>Define an opcode in Lua at i-rate. The opcode can take any
+ number of output and/or input arguments of any type.</desc><synopsis><opcodename>lua_opdef</opcodename> Sname, Sluacode</synopsis></opcode>
+</category>
+<category name="Serial I/O">
+<opcode><desc>Open a serial port.</desc><synopsis>iPort <opcodename>serialBegin</opcodename> SPortName [, ibaudRate]</synopsis></opcode>
+<opcode><desc>Close a serial port.</desc><synopsis> <opcodename>serialEnd</opcodename> iPort</synopsis></opcode>
+<opcode><desc>Flush data from a serial port.</desc><synopsis> <opcodename>serialFlush</opcodename> iPort</synopsis></opcode>
+<opcode><desc>Print data from a serial port.</desc><synopsis> <opcodename>serialPrint</opcodename> iPort</synopsis></opcode>
+<opcode><desc>Read data from a serial port.</desc><synopsis>kByte <opcodename>serialRead</opcodename> iPort</synopsis></opcode>
+<opcode><desc>Write data to a serial port.</desc><synopsis> <opcodename>serialWrite</opcodename> iPort, iByte</synopsis><synopsis> <opcodename>serialWrite</opcodename> iPort, kByte</synopsis><synopsis> <opcodename>serialWrite</opcodename> iPort, SBytes</synopsis></opcode>
+<opcode><desc>Write data to a serial port.</desc><synopsis> <opcodename>serialWrite_i</opcodename> iPort, iByte</synopsis><synopsis> <opcodename>serialWrite_i</opcodename> iPort, SBytes</synopsis></opcode>
+</category>
<category name="Table Control">
<opcode><desc>Deletes function table.</desc><synopsis><opcodename>ftfree</opcodename> ifno, iwhen</synopsis></opcode>
<opcode><desc>Generate a score function table from within the orchestra.</desc><synopsis>gir <opcodename>ftgen</opcodename> ifn, itime, isize, igen, iarga [, iargb ] [...]</synopsis></opcode>
-<opcode><desc>Generate a function table from within an instrument definition, without
- duplication of data.</desc><synopsis>ifno <opcodename>ftgenonce</opcodename> ip1dummy, ip2dummy, isize, igen, iarga, iargb, ...</synopsis></opcode>
<opcode><desc>Generate a score function table from within the orchestra, which is deleted at the end of the note.</desc><synopsis>ifno <opcodename>ftgentmp</opcodename> ip1, ip2dummy, isize, igen, iarga, iargb, ...</synopsis></opcode>
<opcode><desc>Loads a sound file into memory for use by</desc><synopsis><opcodename>sndload</opcodename> Sfname[, ifmt[, ichns[, isr[, ibas[, iamp[, istrt \
[, ilpmod[, ilps[, ilpe]]]]]]]]]</synopsis></opcode>
</category>
<category name="Table Control:Table Queries">
+<opcode><desc>Generate a vector with initial values.</desc><synopsis>karray[] <opcodename>array</opcodename> ival1, ival2,.....ivaln</synopsis></opcode>
+<opcode><desc>Generate a vector with initial values.</desc><synopsis>karray[] <opcodename>fillarray</opcodename> ival1, ival2,.....ivaln</synopsis></opcode>
<opcode><desc>Returns the number of channels in a stored function table.</desc><synopsis><opcodename>ftchnls</opcodename>(x) (init-rate args only)</synopsis></opcode>
+<opcode><desc>Returns the base frequency of a stored function table in Hz.</desc><synopsis><opcodename>ftcps</opcodename>(x) (init-rate args only)</synopsis></opcode>
<opcode><desc>Returns the size of a stored function table.</desc><synopsis><opcodename>ftlen</opcodename>(x) (init-rate args only)</synopsis></opcode>
<opcode><desc>Returns the loop segment start-time of a stored function table number.</desc><synopsis><opcodename>ftlptim</opcodename>(x) (init-rate args only)</synopsis></opcode>
<opcode><desc>Returns the sampling-rate of a stored function table.</desc><synopsis><opcodename>ftsr</opcodename>(x) (init-rate args only)</synopsis></opcode>
+<opcode><desc>Generate a vector with an arithmetic sequence.</desc><synopsis>karray <opcodename>genarray</opcodename> kstart, kens[, inc]</synopsis><synopsis>iarray <opcodename>genarray</opcodename> istart, iens[, inc]</synopsis></opcode>
+<opcode><desc>Generate a vector with an arithmetic sequence.</desc><synopsis>karray <opcodename>genarray_i</opcodename> istart, iend [,inc]</synopsis></opcode>
+<opcode><desc>Calculate the length of a vector.</desc><synopsis>ir <opcodename>lenarray</opcodename> karray</synopsis><synopsis>kr <opcodename>lenarray</opcodename> karray</synopsis></opcode>
+<opcode><desc>Apply a function to every element of a vector.</desc><synopsis>karray <opcodename>maparray</opcodename> kinarray, String</synopsis><synopsis>karray <opcodename>maparray_i</opcodename> kinarray, String</synopsis></opcode>
<opcode><desc>Returns the number of samples loaded into a stored function table number.</desc><synopsis><opcodename>nsamp</opcodename>(x) (init-rate args only)</synopsis></opcode>
+<opcode><desc>Take a slice of a vector.</desc><synopsis>karray <opcodename>slicearray</opcodename> kinarray, istart, iend</synopsis></opcode>
<opcode><desc>Interrogates a function table for length.</desc><synopsis>ires <opcodename>tableng</opcodename> ifn</synopsis><synopsis>kres <opcodename>tableng</opcodename> kfn</synopsis></opcode>
<opcode><desc>Adding values in a range of a table.</desc><synopsis>kr <opcodename>tabsum</opcodename> ifn[[, kmin] [, kmax]]</synopsis></opcode>
<opcode><desc>Table Read Access inside expressions.</desc><synopsis><opcodename>tb0_init</opcodename> ifn</synopsis><synopsis><opcodename>tb1_init</opcodename> ifn</synopsis><synopsis><opcodename>tb2_init</opcodename> ifn</synopsis><synopsis><opcodename>tb3_init</opcodename> ifn</synopsis><synopsis><opcodename>tb4_init</opcodename> ifn</synopsis><synopsis><opcodename>tb5_init</opcodename> ifn</synopsis><synopsis><opcodename>tb6_init</opcodename> ifn</synopsis><synopsis><opcodename>tb7_init</opcodename> ifn</synopsis><synopsis><opcodename>tb8_init</opcodename> ifn</synopsis><synopsis><opcodename>tb9_init</opcodename> ifn</synopsis><synopsis><opcodename>tb10_init</opcodename> ifn</synopsis><synopsis><opcodename>tb11_init</opcodename> ifn</synopsis><synopsis><opcodename>tb12_init</opcodename> ifn</synopsis><synopsis><opcodename>tb13_init</opcodename> ifn</synopsis><synopsis><opcodename>tb14_init</opcodename> ifn</synopsis><synopsis><opcodename>tb15_init</opcodename> ifn</synopsis><synopsis>iout = <opcodename>tb0</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb0</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb1</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb1</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb2</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb2</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb3</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb3</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb4</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb4</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb5</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb5</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb6</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb6</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb7</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb7</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb8</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb8</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb9</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb9</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb10</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb10</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb11</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb11</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb12</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb12</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb13</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb13</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb14</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb14</opcodename>(kIndex)</synopsis><synopsis>iout = <opcodename>tb15</opcodename>(iIndex)</synopsis><synopsis>kout = <opcodename>tb15</opcodename>(kIndex)</synopsis></opcode>
@@ -837,7 +971,10 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Load a set of previously-allocated tables from a file.</desc><synopsis><opcodename>ftloadk</opcodename> &quot;filename&quot;, ktrig, iflag, ifn1 [, ifn2] [...]</synopsis></opcode>
<opcode><desc>Save a set of previously-allocated tables to a file.</desc><synopsis><opcodename>ftsave</opcodename> &quot;filename&quot;, iflag, ifn1 [, ifn2] [...]</synopsis></opcode>
<opcode><desc>Save a set of previously-allocated tables to a file.</desc><synopsis><opcodename>ftsavek</opcodename> &quot;filename&quot;, ktrig, iflag, ifn1 [, ifn2] [...]</synopsis></opcode>
+<opcode><desc>Change the contents of existing function tables of any length.</desc><synopsis><opcodename>ptablew</opcodename> asig, andx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis><synopsis><opcodename>ptablew</opcodename> isig, indx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis><synopsis><opcodename>ptablew</opcodename> ksig, kndx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis></opcode>
<opcode><desc>Simple, fast table copy opcode.</desc><synopsis><opcodename>tablecopy</opcodename> kdft, ksft</synopsis></opcode>
+<opcode><desc>Filters a source table and writes result into a destination table.</desc><synopsis>knumpassed <opcodename>tablefilter</opcodename> kouttable, kintatble, kmode, kparam</synopsis></opcode>
+<opcode><desc>Filters a source table and writes result into a destination table.</desc><synopsis>inumpassed <opcodename>tablefilteri</opcodename> iouttable, iintatble, imode, iparam</synopsis></opcode>
<opcode><desc>Writes a table's guard point.</desc><synopsis><opcodename>tablegpw</opcodename> kfn</synopsis></opcode>
<opcode><desc>Simple, fast table copy opcode.</desc><synopsis><opcodename>tableicopy</opcodename> idft, isft</synopsis></opcode>
<opcode><desc>Writes a table's guard point.</desc><synopsis><opcodename>tableigpw</opcodename> ifn</synopsis></opcode>
@@ -849,13 +986,13 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Writes tables in sequential locations.</desc><synopsis>kstart <opcodename>tablewa</opcodename> kfn, asig, koff</synopsis></opcode>
<opcode><desc>Change the contents of existing function tables.</desc><synopsis><opcodename>tablewkt</opcodename> asig, andx, kfn [, ixmode] [, ixoff] [, iwgmode]</synopsis><synopsis><opcodename>tablewkt</opcodename> ksig, kndx, kfn [, ixmode] [, ixoff] [, iwgmode]</synopsis></opcode>
<opcode><desc>Allow morphing between a set of tables.</desc><synopsis>kout <opcodename>tabmorph</opcodename> kindex, kweightpoint, ktabnum1, ktabnum2, \
- ifn1, ifn2 [, ifn3, ifn4, ... ifnN]</synopsis></opcode>
+ ifn1, ifn2 [, ifn3, ifn4, ...,ifnN]</synopsis></opcode>
<opcode><desc>Allow morphing between a set of tables at audio rate with interpolation.</desc><synopsis>aout <opcodename>tabmorpha</opcodename> aindex, aweightpoint, atabnum1, atabnum2, \
ifn1, ifn2 [, ifn3, ifn4, ... ifnN]</synopsis></opcode>
<opcode><desc>Allow morphing between a set of tables at audio rate with interpolation.</desc><synopsis>aout <opcodename>tabmorphak</opcodename> aindex, kweightpoint, ktabnum1, ktabnum2, \
ifn1, ifn2 [, ifn3, ifn4, ... ifnN]</synopsis></opcode>
<opcode><desc>Allow morphing between a set of tables with interpolation.</desc><synopsis>kout <opcodename>tabmorphi</opcodename> kindex, kweightpoint, ktabnum1, ktabnum2, \
- ifn1, ifn2 [, ifn3, ifn4, ... ifnN]</synopsis></opcode>
+ ifn1, ifn2 [, ifn3, ifn4, ..., ifnN]</synopsis></opcode>
<opcode><desc>Playing-back control signals.</desc><synopsis><opcodename>tabplay</opcodename> ktrig, knumtics, kfn, kout1 [,kout2,..., koutN]</synopsis></opcode>
<opcode><desc>Recording of control signals.</desc><synopsis><opcodename>tabrec</opcodename> ktrig_start, ktrig_stop, knumtics, kfn, kin1 [,kin2,...,kinN]</synopsis></opcode>
</category>
@@ -982,8 +1119,11 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Extracts an integer from a decimal number.</desc><synopsis><opcodename>int</opcodename>(x) (init-rate or control-rate; also works at audio rate in Csound5)</synopsis></opcode>
<opcode><desc>Returns a natural log.</desc><synopsis><opcodename>log</opcodename>(x) (no rate restriction)</synopsis></opcode>
<opcode><desc>Returns a base 10 log.</desc><synopsis><opcodename>log10</opcodename>(x) (no rate restriction)</synopsis></opcode>
+<opcode><desc>Returns a base 2 log.</desc><synopsis><opcodename>log2</opcodename>(x) (no rate restriction)</synopsis></opcode>
<opcode><desc>Performs a logarithmic base two calculation.</desc><synopsis><opcodename>logbtwo</opcodename>(x) (init-rate or control-rate args only)</synopsis></opcode>
<opcode><desc>Performs a power-of-two calculation.</desc><synopsis><opcodename>powoftwo</opcodename>(x) (init-rate or control-rate args only)</synopsis></opcode>
+<opcode><desc>Questions whether the argument is a infinite number</desc><synopsis><opcodename>qinf</opcodename>(x) (no rate restriction)</synopsis></opcode>
+<opcode><desc>Questions whether the argument is a infinite number</desc><synopsis><opcodename>qnan</opcodename>(x) (no rate restriction)</synopsis></opcode>
<opcode><desc>Returns the integer value nearest to</desc><synopsis><opcodename>round</opcodename>(x) (init-, control-, or audio-rate arg allowed)</synopsis></opcode>
<opcode><desc>Returns a square root value.</desc><synopsis><opcodename>sqrt</opcodename>(x) (no rate restriction)</synopsis></opcode>
</category>
@@ -991,6 +1131,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Performs a cosine function.</desc><synopsis><opcodename>cos</opcodename>(x) (no rate restriction)</synopsis></opcode>
<opcode><desc>Performs a hyperbolic cosine function.</desc><synopsis><opcodename>cosh</opcodename>(x) (no rate restriction)</synopsis></opcode>
<opcode><desc>Performs a arccosine function.</desc><synopsis><opcodename>cosinv</opcodename>(x) (no rate restriction)</synopsis></opcode>
+<opcode><desc>Performs a signum function.</desc><synopsis><opcodename>signum</opcodename>(x) (no rate restriction)</synopsis></opcode>
<opcode><desc>Performs a sine function.</desc><synopsis><opcodename>sin</opcodename>(x) (no rate restriction)</synopsis></opcode>
<opcode><desc>Performs a hyperbolic sine function.</desc><synopsis><opcodename>sinh</opcodename>(x) (no rate restriction)</synopsis></opcode>
<opcode><desc>Performs an arcsine function.</desc><synopsis><opcodename>sininv</opcodename>(x) (no rate restriction)</synopsis></opcode>
@@ -1010,14 +1151,14 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Returns a random number in a unipolar range at the rate given by the input argument.</desc><synopsis><opcodename>rnd</opcodename>(x) (init- or control-rate only)</synopsis></opcode>
</category>
<category name="Mathematical Operations:Opcode Equivalents of Functions">
-<opcode><desc>Safely divides two numbers.</desc><synopsis>ares <opcodename>divz</opcodename> xa, xb, ksubst</synopsis><synopsis>ires <opcodename>divz</opcodename> ia, ib, isubst</synopsis><synopsis>kres <opcodename>divz</opcodename> ka, kb, ksubst</synopsis></opcode>
-<opcode><desc>Multiplies and accumulates a- and k-rate signals.</desc><synopsis>ares <opcodename>mac</opcodename> asig1, ksig1 [, asig2] [, ksig2] [, asig3] [, ksig3] [...]</synopsis></opcode>
+<opcode><desc>Safely divides two numbers.</desc><synopsis>ares <opcodename>divz</opcodename> xa, xb, ksubst</synopsis><synopsis>ires <opcodename>divz</opcodename> ia, ib, isubst</synopsis><synopsis>kres <opcodename>divz</opcodename> ka, kb, ksubst</synopsis><synopsis>...<opcodename>divz</opcodename>(ka, kb, ksubst)... (no rate restriction)</synopsis></opcode>
+<opcode><desc>Multiplies and accumulates a- and k-rate signals.</desc><synopsis>ares <opcodename>mac</opcodename> ksig1, asig1 [, ksig2] [, asig2] [, ksig3] [, asig3] [...]</synopsis></opcode>
<opcode><desc>Multiply and accumulate a-rate signals only.</desc><synopsis>ares <opcodename>maca</opcodename> asig1 , asig2 [, asig3] [, asig4] [, asig5] [...]</synopsis></opcode>
<opcode><desc>Efficiently evaluates a polynomial of arbitrary order.</desc><synopsis>aout <opcodename>polynomial</opcodename> ain, k0 [, k1 [, k2 [...]]]</synopsis></opcode>
<opcode><desc>Computes one argument to the power of another argument.</desc><synopsis>ares <opcodename>pow</opcodename> aarg, kpow [, inorm]</synopsis><synopsis>ires <opcodename>pow</opcodename> iarg, ipow [, inorm]</synopsis><synopsis>kres <opcodename>pow</opcodename> karg, kpow [, inorm]</synopsis></opcode>
<opcode><desc>Multiplies any number of a-rate signals.</desc><synopsis>ares <opcodename>product</opcodename> asig1, asig2 [, asig3] [...]</synopsis></opcode>
<opcode><desc>Sums any number of a-rate signals.</desc><synopsis>ares <opcodename>sum</opcodename> asig1 [, asig2] [, asig3] [...]</synopsis></opcode>
-<opcode><desc>Returns an arctangent.</desc><synopsis>ares <opcodename>taninv2</opcodename> ay, ax</synopsis><synopsis>ires <opcodename>taninv2</opcodename> iy, ix</synopsis><synopsis>kres <opcodename>taninv2</opcodename> ky, kx</synopsis></opcode>
+<opcode><desc>Returns an arctangent.</desc><synopsis>ares <opcodename>taninv2</opcodename> ay, ax</synopsis><synopsis>ires <opcodename>taninv2</opcodename> iy, ix</synopsis><synopsis>kres <opcodename>taninv2</opcodename> ky, kx</synopsis><synopsis>...<opcodename>taninv2</opcodename>(ky, kx)... (no rate restriction)</synopsis></opcode>
</category>
<category name="Pitch Converters:Functions">
<opcode><desc>Calculates a factor to raise/lower a frequency by a given amount of cents.</desc><synopsis><opcodename>cent</opcodename>(x) </synopsis></opcode>
@@ -1077,7 +1218,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
</category>
<category name="Real-time MIDI:Converters">
<opcode><desc>Get the velocity of the current MIDI event.</desc><synopsis>iamp <opcodename>ampmidi</opcodename> iscal [, ifn]</synopsis></opcode>
-<opcode><desc>Rescale a MIDI velocity number to a fit a dynamic range ian decibels.</desc><synopsis>xamp<opcodename>ampmidid</opcodename>kvelocity, idecibels</synopsis></opcode>
+<opcode><desc>Musically map MIDI velocity to peak amplitude within a specified dynamic range in decibels.</desc><synopsis>iamplitude <opcodename>ampmidid</opcodename> ivelocity, idecibels</synopsis><synopsis>kamplitude <opcodename>ampmidid</opcodename> kvelocity, idecibels</synopsis></opcode>
<opcode><desc>Get the note number of the current MIDI event, expressed in cycles-per-second.</desc><synopsis>icps <opcodename>cpsmidi</opcodename></synopsis></opcode>
<opcode><desc>Get the note number of the current MIDI event and modify it by the current pitch-bend value, express it in cycles-per-second.</desc><synopsis>icps <opcodename>cpsmidib</opcodename> [irange]</synopsis><synopsis>kcps <opcodename>cpsmidib</opcodename> [irange]</synopsis></opcode>
<opcode><desc>Get a MIDI note number (allows customized micro-tuning scales).</desc><synopsis>icps <opcodename>cpstmid</opcodename> ifn</synopsis></opcode>
@@ -1144,7 +1285,7 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
..., ictlnum32, imin32, imax32, init32, ifn32, icutoff32</synopsis></opcode>
<opcode><desc>Stores a bank of 32 different MIDI control messages to a table.</desc><synopsis>kflag <opcodename>slider32table</opcodename> ichan, ioutTable, ioffset, ictlnum1, imin1, \
imax1, init1, ifn1, .... , ictlnum32, imin32, imax32, init32, ifn32</synopsis></opcode>
-<opcode><desc>Creates a bank of 32 different MIDI control message numbers, filtered before output.</desc><synopsis>kflag <opcodename>slider32tablef</opcodename> ichan, ioutTable, ioffset, ictlnum1, imin1, imax1, \
+<opcode><desc>Stores a bank of 32 different MIDI control messages to a table, filtered before output.</desc><synopsis>kflag <opcodename>slider32tablef</opcodename> ichan, ioutTable, ioffset, ictlnum1, imin1, imax1, \
init1, ifn1, icutoff1, .... , ictlnum32, imin32, imax32, init32, ifn32, icutoff32</synopsis></opcode>
<opcode><desc>Creates a bank of 64 different MIDI control message numbers.</desc><synopsis>i1,...,i64 <opcodename>slider64</opcodename> ichan, ictlnum1, imin1, imax1, init1, ifn1,..., \
ictlnum64, imin64, imax64, init64, ifn64</synopsis><synopsis>k1,...,k64 <opcodename>slider64</opcodename> ichan, ictlnum1, imin1, imax1, init1, ifn1,..., \
@@ -1167,18 +1308,19 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<opcode><desc>Creates a bank of 16 different MIDI control message numbers from a KAWAI MM-16 midi mixer.</desc><synopsis>k1, k2, ...., k16 <opcodename>sliderKawai</opcodename> imin1, imax1, init1, ifn1, \
imin2, imax2, init2, ifn2, ..., imin16, imax16, init16, ifn16</synopsis></opcode>
</category>
-<category name="Signal Flow Graph">
+<category name="Signal Flow Graph Opcodes">
<opcode><desc>Activates the indicated instrument in the orchestra header,
- without need for an i statement. Instruments must be
- activated in the same order as they are defined.</desc><synopsis><opcodename>alwayson </opcodename>Tinstrument [p4, ..., pn]</synopsis></opcode>
-<opcode><desc>Connects the named outlet ports of source instruments to the
- named inlet ports of sink instruments.</desc><synopsis><opcodename>connect </opcodename>Tsource1, Soutlet1, Tsink1, Sinlet1</synopsis></opcode>
+ without need for an i statement.</desc><synopsis> <opcodename>alwayson</opcodename> Tinstrument [p4, ..., pn]</synopsis></opcode>
+<opcode><desc>Connects a source outlet to a sink inlet.</desc><synopsis><opcodename>connect </opcodename>Tsource1, Soutlet1, Tsink1, Sinlet1</synopsis></opcode>
+<opcode><desc>Generate a function table from within an instrument definition, without duplication of data.</desc><synopsis>ifno <opcodename>ftgenonce</opcodename> ip1, ip2dummy, isize, igen, iarga, iargb, ...</synopsis></opcode>
<opcode><desc>Receives an arate signal into an instrument through a named port.</desc><synopsis>asignal <opcodename>inleta </opcodename>Sname</synopsis></opcode>
<opcode><desc>Receives an frate signal (fsig) into an instrument from a named port.</desc><synopsis>fsignal <opcodename>inletf </opcodename>Sname</synopsis></opcode>
<opcode><desc>Receives a krate signal into an instrument from a named port.</desc><synopsis>ksignal <opcodename>inletk </opcodename>Sname</synopsis></opcode>
+<opcode><desc>Receives a krate signal into an instrument from a named port.</desc><synopsis>ksignal <opcodename>inletkid </opcodename>Sname, SinstanceID</synopsis></opcode>
<opcode><desc>Sends an arate signal out from an instrument to a named port.</desc><synopsis><opcodename>outleta </opcodename>Sname, asignal</synopsis></opcode>
<opcode><desc>Sends a frate signal (fsig) out from an instrument to a named port.</desc><synopsis><opcodename>outletf </opcodename>Sname, fsignal</synopsis></opcode>
<opcode><desc>Sends a krate signal out from an instrument to a named port.</desc><synopsis><opcodename>outletk </opcodename>Sname, ksignal</synopsis></opcode>
+<opcode><desc>Sends a krate signal out from an instrument to a named port.</desc><synopsis><opcodename>outletkid </opcodename>Sname, SinstanceID, ksignal</synopsis></opcode>
</category>
<category name="Spectral Processing:STFT">
<opcode><desc>Deprecated.</desc><synopsis><opcodename>ktableseg</opcodename> ifn1, idur1, ifn2 [, idur2] [, ifn3] [...]</synopsis></opcode>
@@ -1218,57 +1360,65 @@ This file is distributed under the GNU Free Documentation Licence--><opcodes>
<category name="Spectral Processing:Streaming">
<opcode><desc>PVS tracks to amplitude+frequency conversion.</desc><synopsis>fsig <opcodename>binit</opcodename> fin, isize</synopsis></opcode>
<opcode><desc>Partial track spectral analysis.</desc><synopsis>ftrks <opcodename>partials</opcodename> ffr, fphs, kthresh, kminpts, kmaxgap, imaxtracks</synopsis></opcode>
+<opcode><desc>Copies spectral data to t-variables.</desc><synopsis>kframe <opcodename>pvs2tab</opcodename> tvar, fsig</synopsis></opcode>
<opcode><desc>Resynthesize using a fast oscillator-bank.</desc><synopsis>ares <opcodename>pvsadsyn</opcodename> fsrc, inoscs, kfmod [, ibinoffset] [, ibinincr] [, iinit]</synopsis></opcode>
<opcode><desc>Generate an fsig from a mono audio source ain, using phase vocoder overlap-add analysis.</desc><synopsis>fsig <opcodename>pvsanal</opcodename> ain, ifftsize, ioverlap, iwinsize, iwintype [, iformat] [, iinit]</synopsis></opcode>
<opcode><desc>Arpeggiate the spectral components of a streaming pv signal.</desc><synopsis>fsig <opcodename>pvsarp</opcodename> fsigin, kbin, kdepth, kgain</synopsis></opcode>
-<opcode><desc>A band pass filter working in the spectral domain.</desc><synopsis>fsig <opcodename>pvsbandp</opcodename> fsigin, xlowcut,
- xlowfull, xhighfull, xhighcut[, ktype]</synopsis></opcode>
-<opcode><desc>A band reject filter working in the spectral domain.</desc><synopsis>fsig <opcodename>pvsbandr</opcodename> fsigin, xlowcut,
- xlowfull, xhighfull, xhighcut[, ktype]</synopsis></opcode>
+<opcode><desc>A band pass filter working in the spectral domain.</desc><synopsis>fsig <opcodename>pvsbandp</opcodename> fsigin, xlowcut, xlowfull, \
+ xhighfull, xhighcut[, ktype]</synopsis></opcode>
+<opcode><desc>A band reject filter working in the spectral domain.</desc><synopsis>fsig <opcodename>pvsbandr</opcodename> fsigin, xlowcut, xlowfull, \
+ xhighfull, xhighcut[, ktype]</synopsis></opcode>
<opcode><desc>Obtain the amp and freq values off a PVS signal bin.</desc><synopsis>kamp, kfr <opcodename>pvsbin</opcodename> fsig, kbin</synopsis></opcode>
<opcode><desc>Average the amp/freq time functions of each analysis channel for
a specified time.</desc><synopsis>fsig <opcodename>pvsblur</opcodename> fsigin, kblurtime, imaxdel</synopsis></opcode>
<opcode><desc>This opcode creates and writes to a circular buffer for f-signals (streaming PV signals).</desc><synopsis>ihandle, ktime <opcodename>pvsbuffer</opcodename> fsig, ilen </synopsis></opcode>
-<opcode><desc>This opcode reads a circular buffer of f-signals (streaming PV signals).</desc><synopsis>fsig <opcodename>pvsbufread</opcodename> ktime, khandle[, ilo, ihi] </synopsis></opcode>
-<opcode><desc>Scale the frequency components of a pv stream.</desc><synopsis>fsig <opcodename>pvscale</opcodename> fsigin, kscal[, ikeepform, igain]]</synopsis></opcode>
+<opcode><desc>This opcode reads a circular buffer of f-signals (streaming PV signals).</desc><synopsis>fsig <opcodename>pvsbufread</opcodename> ktime, khandle[, ilo, ihi, iclear] </synopsis></opcode>
+<opcode><desc>This opcode reads a circular buffer of f-signals (streaming PV signals), with binwise additional delays.</desc><synopsis>fsig <opcodename>pvsbufread2</opcodename> ktime, khandle, ift1, ift2 </synopsis></opcode>
+<opcode><desc>Scale the frequency components of a pv stream.</desc><synopsis>fsig <opcodename>pvscale</opcodename> fsigin, kscal[, kkeepform, kgain, kcoefs]</synopsis></opcode>
<opcode><desc>Calculate the spectral centroid of a signal.</desc><synopsis>kcent <opcodename>pvscent</opcodename> fsig</synopsis></opcode>
<opcode><desc>Performs cross-synthesis between two source fsigs.</desc><synopsis>fsig <opcodename>pvscross</opcodename> fsrc, fdest, kamp1, kamp2</synopsis></opcode>
<opcode><desc>Spectral azimuth-based de-mixing of stereo sources.</desc><synopsis>fsig <opcodename>pvsdemix</opcodename> fleft, fright, kpos, kwidth, ipoints</synopsis></opcode>
-<opcode><desc>Read a selected channel from a PVOC-EX analysis file.</desc><synopsis>fsig <opcodename>pvsdiskin</opcodename>SFname,ktscal,kgain[,ioffset, ichan]</synopsis></opcode>
+<opcode><desc>Read a selected channel from a PVOC-EX analysis file.</desc><synopsis>fsig <opcodename>pvsdiskin</opcodename> SFname,ktscal,kgain[,ioffset, ichan]</synopsis></opcode>
<opcode><desc>Displays a PVS signal as an amplitude vs. freq graph.</desc><synopsis><opcodename>pvsdisp</opcodename> fsig[, ibins, iwtflg] </synopsis></opcode>
<opcode><desc>Multiply amplitudes of a pvoc stream by those of a second
pvoc stream, with dynamic scaling.</desc><synopsis>fsig <opcodename>pvsfilter</opcodename> fsigin, fsigfil, kdepth[, igain]</synopsis></opcode>
<opcode><desc>Read a selected channel from a PVOC-EX analysis file.</desc><synopsis>fsig <opcodename>pvsfread</opcodename> ktimpt, ifn [, ichan]</synopsis></opcode>
<opcode><desc>Freeze the amplitude and frequency time functions of a pv stream according to a control-rate
- trigger.</desc><synopsis>fsig <opcodename>pvsfreeze</opcodename> fsigin, kfreeza, kfreezf</synopsis></opcode>
+ trigger.</desc><synopsis>fsig <opcodename>pvsfreeze</opcodename> fsigin, kfreeza, kfreezf</synopsis></opcode>
<opcode><desc>Reads amplitude and/or frequency data from function tables.</desc><synopsis><opcodename>pvsftr</opcodename> fsrc, ifna [, ifnf]</synopsis></opcode>
<opcode><desc>Writes amplitude and/or frequency data to function tables.</desc><synopsis>kflag <opcodename>pvsftw</opcodename> fsrc, ifna [, ifnf]</synopsis></opcode>
<opcode><desc>Write a fsig to a PVOCEX file.</desc><synopsis><opcodename>pvsfwrite</opcodename> fsig, ifile</synopsis></opcode>
+<opcode><desc>Scale the amplitude of a pv stream.</desc><synopsis>fsig <opcodename>pvsgain</opcodename> fsigin, kgain </synopsis></opcode>
<opcode><desc>Shift the frequency components of a pv stream, stretching/compressing
-its spectrum.</desc><synopsis>fsig <opcodename>pvshift</opcodename> fsigin, kshift, klowest[, ikeepform, igain]</synopsis></opcode>
+ its spectrum.</desc><synopsis>fsig <opcodename>pvshift</opcodename> fsigin, kshift, klowest[, kkeepform, igain, kcoefs]</synopsis></opcode>
<opcode><desc>Instantaneous Frequency Distribution, magnitude and phase analysis.</desc><synopsis>ffr,fphs <opcodename>pvsifd</opcodename> ain, ifftsize, ihopsize, iwintype[,iscal]</synopsis></opcode>
-<opcode><desc>Retrieve an fsig from the input software bus; a pvs equivalent to chani.</desc><synopsis>fsig <opcodename>pvsin</opcodename> kchan[,isize,iolap,iwinsize,iwintype,iformat]</synopsis></opcode>
+<opcode><desc>Retrieve an fsig from the input software bus; a pvs equivalent to chani.</desc><synopsis>fsig <opcodename>pvsin</opcodename> kchan[, isize, iolap, iwinsize, iwintype, iformat]</synopsis></opcode>
<opcode><desc>Get information from a PVOC-EX formatted source.</desc><synopsis>ioverlap, inumbins, iwinsize, iformat <opcodename>pvsinfo</opcodename> fsrc</synopsis></opcode>
-<opcode><desc>Initialise a spectral (f) variable to zero.</desc><synopsis>fsig <opcodename>pvsinit</opcodename> isize[,iolap,iwinsize,iwintype, iformat]</synopsis></opcode>
+<opcode><desc>Initialise a spectral (f) variable to zero.</desc><synopsis>fsig <opcodename>pvsinit</opcodename> isize[, iolap, iwinsize, iwintype, iformat]</synopsis></opcode>
+<opcode><desc>Frequency lock an input fsig</desc><synopsis>fsig <opcodename>pvslock</opcodename> fsigin, klock</synopsis></opcode>
<opcode><desc>Modify amplitudes using a function table, with dynamic scaling.</desc><synopsis>fsig <opcodename>pvsmaska</opcodename> fsrc, ifn, kdepth</synopsis></opcode>
<opcode><desc>Mix 'seamlessly' two pv signals.</desc><synopsis>fsig <opcodename>pvsmix</opcodename> fsigin1, fsigin2</synopsis></opcode>
<opcode><desc>Smooth the amplitude and frequency time functions of a pv stream using parallel 1st order
- lowpass IIR filters with time-varying cutoff frequency.</desc><synopsis>fsig <opcodename>pvsmooth</opcodename> fsigin, kacf, kfcf</synopsis></opcode>
+ lowpass IIR filters with time-varying cutoff frequency.</desc><synopsis>fsig <opcodename>pvsmooth</opcodename> fsigin, kacf, kfcf</synopsis></opcode>
<opcode><desc>Performs morphing (or interpolation) between two source fsigs.</desc><synopsis>fsig <opcodename>pvsmorph</opcodename> fsig1, fsig2, kampint, kfrqint</synopsis></opcode>
<opcode><desc>PVS-based oscillator simulator.</desc><synopsis>fsig <opcodename>pvsosc</opcodename> kamp, kfreq, ktype, isize [,ioverlap] [, iwinsize] [, iwintype] [, iformat]</synopsis></opcode>
<opcode><desc>Write a fsig to the pvs output bus.</desc><synopsis><opcodename>pvsout</opcodename> fsig, kchan</synopsis></opcode>
<opcode><desc>Track the pitch and amplitude of a PVS signal.</desc><synopsis>kfr, kamp <opcodename>pvspitch</opcodename> fsig, kthresh</synopsis></opcode>
+<opcode><desc>Phase vocoder analysis processing with onset detection/processing.</desc><synopsis>fsig <opcodename>pvstanal</opcodename> ktimescal, kamp, kpitch, ktab, [kdetect, kwrap, ioffset,ifftsize, ihop, idbthresh]
+ </synopsis></opcode>
<opcode><desc>Transforms a pvoc stream according to a masking function table.</desc><synopsis>fsig <opcodename>pvstencil</opcodename> fsigin, kgain, klevel, iftable</synopsis></opcode>
-<opcode><desc>Combine the spectral envelope of one fsig with the excitation (frequencies) of another.</desc><synopsis>fsig <opcodename>pvsvoc</opcodename> famp, fexc, kdepth, kgain</synopsis></opcode>
+<opcode><desc>Combine the spectral envelope of one fsig with the excitation (frequencies) of another.</desc><synopsis>fsig <opcodename>pvsvoc</opcodename> famp, fexc, kdepth, kgain [,kcoefs]</synopsis></opcode>
+<opcode><desc>Warp the spectral envelope of a PVS signal</desc><synopsis>fsig <opcodename>pvswarp</opcodename> fsigin, kscal, kshift[, klowest, kmeth, kgain, kcoefs]</synopsis></opcode>
<opcode><desc>Resynthesise using a FFT overlap-add.</desc><synopsis>ares <opcodename>pvsynth</opcodename> fsrc, [iinit]</synopsis></opcode>
<opcode><desc>Streaming partial track additive synthesis with cubic phase interpolation with
pitch control and support for timescale-modified input</desc><synopsis>asig <opcodename>resyn</opcodename> fin, kscal, kpitch, kmaxtracks, ifn</synopsis></opcode>
-<opcode><desc>Streaming partial track additive synthesis with cubic phase interpolation</desc><synopsis>asig <opcodename>sinsyn</opcodename> fin, kscal, kmaxtracks, ifn</synopsis></opcode>
+<opcode><desc>Streaming partial track additive synthesis with cubic phase interpolation</desc><synopsis>asig <opcodename>sinsyn</opcodename> fin, kscal, kmaxtracks, ifn</synopsis></opcode>
+<opcode><desc>Copies spectral data from t-variables.</desc><synopsis>fsig <opcodename>tab2pvs</opcodename> tvar[,ihopsize, iwinsize, iwintype]</synopsis></opcode>
<opcode><desc>Streaming partial track additive synthesis</desc><synopsis>asig <opcodename>tradsyn</opcodename> fin, kscal, kpitch, kmaxtracks, ifn</synopsis></opcode>
-<opcode><desc>Streaming partial track cross-synthesis.</desc><synopsis>fsig <opcodename>trcross</opcodename> fin1, fin2, ksearch,kdepth[,kmode] </synopsis></opcode>
+<opcode><desc>Streaming partial track cross-synthesis.</desc><synopsis>fsig <opcodename>trcross</opcodename> fin1, fin2, ksearch, kdepth [, kmode] </synopsis></opcode>
<opcode><desc>Streaming partial track filtering.</desc><synopsis>fsig <opcodename>trfilter</opcodename> fin, kamnt, ifn</synopsis></opcode>
-<opcode><desc>Extracts the highest-frequency track from a streaming track input signal.</desc><synopsis>fsig, kfr,kamp <opcodename>trhighest</opcodename> fin1, kscal</synopsis></opcode>
-<opcode><desc>Extracts the lowest-frequency track from a streaming track input signal.</desc><synopsis>fsig, kfr,kamp <opcodename>trlowest</opcodename> fin1, kscal</synopsis></opcode>
+<opcode><desc>Extracts the highest-frequency track from a streaming track input signal.</desc><synopsis>fsig, kfr, kamp <opcodename>trhighest</opcodename> fin1, kscal</synopsis></opcode>
+<opcode><desc>Extracts the lowest-frequency track from a streaming track input signal.</desc><synopsis>fsig, kfr, kamp <opcodename>trlowest</opcodename> fin1, kscal</synopsis></opcode>
<opcode><desc>Streaming partial track mixing.</desc><synopsis>fsig <opcodename>trmix</opcodename> fin1, fin2 </synopsis></opcode>
<opcode><desc>Streaming partial track frequency scaling.</desc><synopsis>fsig <opcodename>trscale</opcodename> fin, kpitch[, kgain]</synopsis></opcode>
<opcode><desc>Streaming partial track frequency scaling.</desc><synopsis>fsig <opcodename>trshift</opcodename> fin, kpshift[, kgain]</synopsis></opcode>
@@ -1304,13 +1454,20 @@ pitch control and support for timescale-modified input</desc><synopsis>asig <opc
bandwidth scaling envelopes, and stores the modified partials in
memory.</desc><synopsis><opcodename>lorisread</opcodename> ktimpnt, ifilcod, istoreidx, kfreqenv, kampenv, kbwenv[, ifadetime]</synopsis></opcode>
</category>
+<category name="Spectral Processing:Other">
+<opcode><desc>Calculate the spectral centroid of a signal.</desc><synopsis>kcent <opcodename>centroid</opcodename> asig, ktrig, ifftsize</synopsis></opcode>
+<opcode><desc>Phase-locked vocoder processing.</desc><synopsis>asig <opcodename>mincer</opcodename> atimpt, kamp, kpitch, ktab, klock[,ifftsize,idecim]
+ </synopsis></opcode>
+<opcode><desc>Phase-locked vocoder processing with onset detection/processing, 'tempo-scaling'.</desc><synopsis>asig <opcodename>temposcal</opcodename> ktimescal, kamp, kpitch, ktab, klock [,ifftsize, idecim, ithresh]
+ </synopsis></opcode>
+</category>
<category name="Strings:Definition">
<opcode><desc>Set string variable to value from strset table or string p-field</desc><synopsis>Sdst <opcodename>strget</opcodename> indx</synopsis></opcode>
<opcode><desc>Allows a string to be linked with a numeric value.</desc><synopsis><opcodename>strset</opcodename> iarg, istring</synopsis></opcode>
</category>
<category name="Strings:Manipulation">
<opcode><desc>Print a string constant or variable</desc><synopsis><opcodename>puts</opcodename> Sstr, ktrig[, inonl]</synopsis></opcode>
-<opcode><desc>printf-style formatted output to a string variable.</desc><synopsis>Sdst <opcodename>sprintf</opcodename> Sfmt, xarg1[, xarg2[, ... ]]</synopsis><synopsis>Sdst <opcodename>sprintfk</opcodename> Sfmt, xarg1[, xarg2[, ... ]]</synopsis></opcode>
+<opcode><desc>printf-style formatted output to a string variable.</desc><synopsis>Sdst <opcodename>sprintf</opcodename> Sfmt, xarg1[, xarg2[, ... ]]</synopsis></opcode>
<opcode><desc>printf-style formatted output to a string variable at k-rate.</desc><synopsis>Sdst <opcodename>sprintfk</opcodename> Sfmt, xarg1[, xarg2[, ... ]]</synopsis></opcode>
<opcode><desc>Concatenate strings</desc><synopsis>Sdst <opcodename>strcat</opcodename> Ssrc1, Ssrc2</synopsis></opcode>
<opcode><desc>Concatenate strings (k-rate)</desc><synopsis>Sdst <opcodename>strcatk</opcodename> Ssrc1, Ssrc2</synopsis></opcode>
@@ -1361,19 +1518,19 @@ pitch control and support for timescale-modified input</desc><synopsis>asig <opc
<opcode><desc>Performs power-of operations between a vector and a scalar</desc><synopsis><opcodename>vexp_i</opcodename> ifn, ival, ielements[, idstoffset]</synopsis></opcode>
<opcode><desc>Multiplies a vector in a table by a scalar value.</desc><synopsis><opcodename>vmult</opcodename> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis></opcode>
<opcode><desc>Multiplies a vector in a table by a scalar value.</desc><synopsis><opcodename>vmult_i</opcodename> ifn, ival, ielements [, idstoffset]</synopsis></opcode>
-<opcode><desc>Raises each element of a vector to a scalar power</desc><synopsis><opcodename>vpow</opcodename> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis></opcode>
+<opcode><desc>Raises each element of a vector to a scalar power.</desc><synopsis><opcodename>vpow</opcodename> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis></opcode>
<opcode><desc>Raises each element of a vector to a scalar power</desc><synopsis><opcodename>vpow_i</opcodename> ifn, ival, ielements [, idstoffset]</synopsis></opcode>
</category>
<category name="Vectorial:Vectorial operations">
-<opcode><desc>Performs addition between two vectorial control signals</desc><synopsis><opcodename>vaddv</opcodename> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis></opcode>
+<opcode><desc>Performs addition between two vectorial control signals.</desc><synopsis><opcodename>vaddv</opcodename> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis></opcode>
<opcode><desc>Performs addition between two vectorial control signals at init time.</desc><synopsis><opcodename>vaddv_i</opcodename> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis></opcode>
-<opcode><desc>Copies between two vectorial control signals</desc><synopsis><opcodename>vcopy</opcodename> ifn, ifn2, kelements [, kdstoffset] [, ksrcoffset] [, kverbose]</synopsis></opcode>
-<opcode><desc>Copies a vector from one table to another.</desc><synopsis><opcodename>vcopy_i</opcodename> ifn, ifn2, ielements [,idstoffset, isrcoffset]</synopsis></opcode>
+<opcode><desc>Copies between two vectorial control signals</desc><synopsis><opcodename>vcopy</opcodename> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [, kverbose]</synopsis></opcode>
+<opcode><desc>Copies a vector from one table to another.</desc><synopsis><opcodename>vcopy_i</opcodename> ifn1, ifn2, ielements [,idstoffset, isrcoffset]</synopsis></opcode>
<opcode><desc>Performs division between two vectorial control signals</desc><synopsis><opcodename>vdivv</opcodename> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis></opcode>
<opcode><desc>Performs division between two vectorial control signals at init time.</desc><synopsis><opcodename>vdivv_i</opcodename> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis></opcode>
<opcode><desc>Performs exponential operations between two vectorial control signals</desc><synopsis><opcodename>vexpv</opcodename> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis></opcode>
<opcode><desc>Performs exponential operations between two vectorial control signals at init time.</desc><synopsis><opcodename>vexpv_i</opcodename> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis></opcode>
-<opcode><desc>Maps elements from a vector according to indeces contained in another vector</desc><synopsis><opcodename>vmap</opcodename> ifn1, ifn2, ielements [,idstoffset, isrcoffset]</synopsis></opcode>
+<opcode><desc>Maps elements from a vector according to indexes contained in another vector.</desc><synopsis><opcodename>vmap</opcodename> ifn1, ifn2, ielements [,idstoffset, isrcoffset]</synopsis></opcode>
<opcode><desc>Performs mutiplication between two vectorial control signals</desc><synopsis><opcodename>vmultv</opcodename> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis></opcode>
<opcode><desc>Performs mutiplication between two vectorial control signals at init time.</desc><synopsis><opcodename>vmultv_i</opcodename> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis></opcode>
<opcode><desc>Performs power-of operations between two vectorial control signals</desc><synopsis><opcodename>vpowv</opcodename> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis></opcode>
@@ -1382,8 +1539,8 @@ pitch control and support for timescale-modified input</desc><synopsis>asig <opc
<opcode><desc>Performs subtraction between two vectorial control signals at init time.</desc><synopsis><opcodename>vsubv_i</opcodename> ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]</synopsis></opcode>
</category>
<category name="Vectorial:Envelopes">
-<opcode><desc>Vectorial envelope generator</desc><synopsis><opcodename>vexpseg</opcodename> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis></opcode>
-<opcode><desc>Vectorial envelope generator</desc><synopsis><opcodename>vlinseg</opcodename> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis></opcode>
+<opcode><desc>Vectorial envelope generator</desc><synopsis><opcodename>vexpseg</opcodename> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis></opcode>
+<opcode><desc>Vectorial envelope generator</desc><synopsis><opcodename>vlinseg</opcodename> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis></opcode>
</category>
<category name="Vectorial:Limiting and Wrapping">
<opcode><desc>Limiting and Wrapping Vectorial Signals</desc><synopsis><opcodename>vlimit</opcodename> ifn, kmin, kmax, ielements</synopsis></opcode>
@@ -1391,19 +1548,19 @@ pitch control and support for timescale-modified input</desc><synopsis>asig <opc
<opcode><desc>Limiting and Wrapping Vectorial Signals</desc><synopsis><opcodename>vwrap</opcodename> ifn, kmin, kmax, ielements</synopsis></opcode>
</category>
<category name="Vectorial:Delay Paths">
-<opcode><desc>k-rate variable time delay.</desc><synopsis>kout <opcodename>vdelayk</opcodename> iksig, kdel, imaxdel [, iskip, imode]</synopsis></opcode>
+<opcode><desc>k-rate variable time delay.</desc><synopsis>kout <opcodename>vdelayk</opcodename> ksig, kdel, imaxdel [, iskip, imode]</synopsis></opcode>
<opcode><desc>Vectorial Control-rate Delay Paths</desc><synopsis><opcodename>vecdelay</opcodename> ifn, ifnIn, ifnDel, ielements, imaxdel [, iskip]
</synopsis></opcode>
-<opcode><desc>Vectorial Control-rate Delay Paths</desc><synopsis><opcodename>vport</opcodename> ifn, khtime, ielements [, ifnInit]
-</synopsis></opcode>
+<opcode><desc>Vectorial Control-rate Delay Paths</desc><synopsis><opcodename>vport</opcodename> ifn, khtime, ielements [, ifnInit]</synopsis></opcode>
</category>
<category name="Vectorial:Random">
-<opcode><desc>Generates a vector of random numbers stored into a table, holding the values for a period of time.</desc><synopsis><opcodename>vrandh</opcodename> ifn, krange, kcps, ielements [, idstoffset] [, iseed]
+<opcode><desc>Generates a vector of random numbers stored into a table, holding the values for a period of time.</desc><synopsis><opcodename>vrandh</opcodename> ifn, krange, kcps, ielements [, idstoffset] [, iseed] \
[, isize] [, ioffset]</synopsis></opcode>
-<opcode><desc>Generate a sort of 'vectorial band-limited noise'</desc><synopsis><opcodename>vrandi</opcodename> ifn, krange, kcps, ielements [, idstoffset] [, iseed]
+<opcode><desc>Generate a sort of 'vectorial band-limited noise'</desc><synopsis><opcodename>vrandi</opcodename> ifn, krange, kcps, ielements [, idstoffset] [, iseed] \
[, isize] [, ioffset]</synopsis></opcode>
</category>
<category name="Vectorial:Cellular Automata">
+<opcode><desc>Cellular Automaton</desc><synopsis><opcodename>cell</opcodename> ktrig, kreinit, ioutFunc, initStateFunc, iRuleFunc, ielements</synopsis></opcode>
<opcode><desc>Cellular Automata</desc><synopsis><opcodename>vcella</opcodename> ktrig, kreinit, ioutFunc, initStateFunc, \
iRuleFunc, ielements, irulelen [, iradius]</synopsis></opcode>
</category>
@@ -1426,7 +1583,7 @@ pitch control and support for timescale-modified input</desc><synopsis>asig <opc
</category>
<category name="Plugin Hosting:DSSI and LADSPA">
<opcode><desc>Activates or deactivates a DSSI or LADSPA plugin.</desc><synopsis><opcodename>dssiactivate</opcodename> ihandle, ktoggle </synopsis></opcode>
-<opcode><desc>Processes audio using a LADSPA or DSSI plugin.</desc><synopsis>aout1 [, aout2, aout3, aout4] <opcodename>dssiaudio</opcodename> ihandle, ain1 [,ain2, ain3, ain4] </synopsis></opcode>
+<opcode><desc>Processes audio using a LADSPA or DSSI plugin.</desc><synopsis>[aout1, aout2, ..., aout9] <opcodename>dssiaudio</opcodename> ihandle, [ain1, ain2, ..., ain9]</synopsis></opcode>
<opcode><desc>Send control information to a LADSPA or DSSI plugin.</desc><synopsis><opcodename>dssictls</opcodename> ihandle, iport, kvalue, ktrigger </synopsis></opcode>
<opcode><desc>Loads a DSSI or LADSPA plugin.</desc><synopsis>ihandle <opcodename>dssiinit</opcodename> ilibraryname, iplugindex [, iverbose] </synopsis></opcode>
<opcode><desc>Lists all available DSSI and LADSPA plugins.</desc><synopsis><opcodename>dssilist</opcodename></synopsis></opcode>
@@ -1434,7 +1591,7 @@ pitch control and support for timescale-modified input</desc><synopsis>asig <opc
<category name="Plugin Hosting:VST">
<opcode><desc>VST audio output.</desc><synopsis>aout1,aout2 <opcodename>vstaudio</opcodename> instance, [ain1, ain2]</synopsis><synopsis>aout1,aout2 <opcodename>vstaudiog</opcodename> instance, [ain1, ain2]</synopsis></opcode>
<opcode><desc>Loads parameter banks to a VST plugin.</desc><synopsis><opcodename>vstbankload</opcodename> instance, ipath</synopsis></opcode>
-<opcode><desc>Opens the GUI editor widow for a VST plugin.</desc><synopsis><opcodename>vstedit</opcodename> instance</synopsis></opcode>
+<opcode><desc>Opens the GUI editor window for a VST plugin.</desc><synopsis><opcodename>vstedit</opcodename> instance</synopsis></opcode>
<opcode><desc>Displays the parameters and the programs of a VST plugin.</desc><synopsis><opcodename>vstinfo</opcodename> instance</synopsis></opcode>
<opcode><desc>Load a VST plugin into memory for use with the other vst4cs opcodes.</desc><synopsis>instance <opcodename>vstinit</opcodename> ilibrarypath [,iverbose]</synopsis></opcode>
<opcode><desc>Sends MIDI information to a VST plugin.</desc><synopsis><opcodename>vstmidiout</opcodename> instance, kstatus, kchan, kdata1, kdata2</synopsis></opcode>
@@ -1448,6 +1605,12 @@ pitch control and support for timescale-modified input</desc><synopsis>asig <opc
<opcode><desc>Listen for OSC messages to a particular path.</desc><synopsis>kans <opcodename>OSClisten</opcodename> ihandle, idest, itype [, xdata1, xdata2, ...]</synopsis></opcode>
<opcode><desc>Sends data to other processes using the OSC protocol</desc><synopsis><opcodename>OSCsend</opcodename> kwhen, ihost, iport, idestination, itype [, kdata1, kdata2, ...]</synopsis></opcode>
</category>
+<category name="Faust Opcodes">
+<opcode><desc>Instantiates and runs a compiled Faust program.</desc><synopsis><opcodename>ihandle,a1[,a2,...] faustaudio</opcodename> ifac[,ain1,...] </synopsis></opcode>
+<opcode><desc>Invokes the just-in-time compiler to produce a instantiable DSP process from a Faust program.</desc><synopsis><opcodename>ihandle faustcompile</opcodename> Scode, Sargs </synopsis></opcode>
+<opcode><desc>Adjusts a given control in a Faust DSP instance.</desc><synopsis><opcodename>faustctl</opcodename> idsp,Scontrol,kval </synopsis></opcode>
+<opcode><desc>Compiles, Instantiates and runs a compiled Faust program.</desc><synopsis><opcodename>ihandle,a1[,a2,...] faustgen</opcodename> SCode[,ain1,...] </synopsis></opcode>
+</category>
<category name="Network">
<opcode><desc>Defines the port for use with the remote system.</desc><synopsis><opcodename>remoteport</opcodename> iportnum</synopsis></opcode>
<opcode><desc>Receives data from other processes using the low-level UDP or TCP protocols</desc><synopsis>asig <opcodename>sockrecv</opcodename> iport, ilength</synopsis><synopsis>asigl, asigr <opcodename>sockrecvs</opcodename> iport, ilength</synopsis><synopsis>asig <opcodename>strecv</opcodename> Sipaddr, iport</synopsis></opcode>
@@ -1455,10 +1618,14 @@ pitch control and support for timescale-modified input</desc><synopsis>asig <opc
ilength</synopsis><synopsis><opcodename>stsend</opcodename> asig, Sipaddr, iport</synopsis></opcode>
</category>
<category name="Remote Opcodes">
-<opcode><desc>An opcode which can be used to implement a remote orchestra. This opcode will send note events from a source machine to many destinations.</desc><synopsis><opcodename>insglobal</opcodename>isource, instrnum [,instrnum...] </synopsis></opcode>
-<opcode><desc>An opcode which can be used to implement a remote orchestra. This opcode will send note events from a source machine to one destination.</desc><synopsis><opcodename>insremot</opcodename>idestination, isource, instrnum [,instrnum...] </synopsis></opcode>
-<opcode><desc>An opcode which can be used to implement a remote midi orchestra. This opcode will broadcast the midi events to all the machines involved in the remote concert.</desc><synopsis><opcodename>midglobal</opcodename>isource, instrnum [,instrnum...] </synopsis></opcode>
-<opcode><desc>An opcode which can be used to implement a remote midi orchestra. This opcode will send midi events from a source machine to one destination.</desc><synopsis><opcodename>midremot</opcodename>idestination, isource, instrnum [,instrnum...] </synopsis></opcode>
+<opcode><desc>An opcode which can be used to implement a remote
+ orchestra. This opcode will send note events from a source
+ machine to many destinations.</desc><synopsis><opcodename>insglobal</opcodename> isource, instrnum [,instrnum...] </synopsis></opcode>
+<opcode><desc>An opcode which can be used to implement a remote
+ orchestra. This opcode will send note events from a source
+ machine to one destination.</desc><synopsis><opcodename>insremot</opcodename> idestination, isource, instrnum [,instrnum...] </synopsis></opcode>
+<opcode><desc>An opcode which can be used to implement a remote midi orchestra. This opcode will broadcast the midi events to all the machines involved in the remote concert.</desc><synopsis><opcodename>midglobal</opcodename> isource, instrnum [,instrnum...] </synopsis></opcode>
+<opcode><desc>An opcode which can be used to implement a remote midi orchestra. This opcode will send midi events from a source machine to one destination.</desc><synopsis><opcodename>midremot</opcodename> idestination, isource, instrnum [,instrnum...] </synopsis></opcode>
</category>
<category name="Mixer Opcodes">
<opcode><desc>Resets all channels of a buss to 0.</desc><synopsis><opcodename>MixerClear</opcodename></synopsis></opcode>
@@ -1482,11 +1649,19 @@ pitch control and support for timescale-modified input</desc><synopsis>asig <opc
<category name="Image Processing Opcodes">
<opcode><desc>Create an empty image of a given size.</desc><synopsis>iimagenum <opcodename>imagecreate</opcodename> iwidth, iheight</synopsis></opcode>
<opcode><desc>Frees memory allocated for a previously loaded or created image.</desc><synopsis><opcodename>imagefree</opcodename> iimagenum</synopsis></opcode>
-<opcode><desc>Return the RGB pixel values of a previously opened or created image.</desc><synopsis>ared agreen ablue <opcodename>imagegetpixel</opcodename> iimagenum, ax, ay</synopsis><synopsis>kred kgreen kblue <opcodename>imagegetpixel</opcodename> iimagenum, kx, ky</synopsis></opcode>
+<opcode><desc>Return the RGB pixel values of a previously opened or created image.</desc><synopsis>ared, agreen, ablue <opcodename>imagegetpixel</opcodename> iimagenum, ax, ay</synopsis><synopsis>kred, kgreen, kblue <opcodename>imagegetpixel</opcodename> iimagenum, kx, ky</synopsis></opcode>
<opcode><desc>Load an image.</desc><synopsis>iimagenum <opcodename>imageload</opcodename> filename</synopsis></opcode>
<opcode><desc>Save a previously created image.</desc><synopsis><opcodename>imagesave</opcodename> iimagenum, filename</synopsis></opcode>
-<opcode><desc>Set the RGB value of a pixel inside a previously opened or created image.</desc><synopsis><opcodename>imagegetpixel</opcodename> iimagenum, ax, ay, ared, agreen, ablue</synopsis><synopsis><opcodename>imagegetpixel</opcodename> iimagenum, kx, ky, kred, kgreen, kblue</synopsis></opcode>
-<opcode><desc>Return the width and height of a previously opened or created image.</desc><synopsis>iwidth iheight <opcodename>imagesize</opcodename> iimagenum</synopsis></opcode>
+<opcode><desc>Set the RGB value of a pixel inside a previously opened or created image.</desc><synopsis><opcodename>imagesetpixel</opcodename> iimagenum, ax, ay, ared, agreen, ablue</synopsis><synopsis><opcodename>imagesetpixel</opcodename> iimagenum, kx, ky, kred, kgreen, kblue</synopsis></opcode>
+<opcode><desc>Return the width and height of a previously opened or created image.</desc><synopsis>iwidth, iheight <opcodename>imagesize</opcodename> iimagenum</synopsis></opcode>
+</category>
+<category name="Array Opcodes">
+<opcode><desc>Copy data from a vector to an f-table.</desc><synopsis><opcodename>copya2ftab</opcodename> tab, kftbl</synopsis></opcode>
+<opcode><desc>Copy data from an f-table to a vector.</desc><synopsis><opcodename>copyf2array</opcodename> tab, kftbl</synopsis></opcode>
+<opcode><desc>returns the maximum value in an array.</desc><synopsis>kmax <opcodename>maxarray</opcodename> karray</synopsis></opcode>
+<opcode><desc>returns the minimum value in an array.</desc><synopsis>kmin <opcodename>minarray</opcodename> karray</synopsis></opcode>
+<opcode><desc>Scales the values in a range of a vector (one dimensional array).</desc><synopsis><opcodename>scalearray</opcodename> tarray, kmin, kmax[, kleft, kright]</synopsis></opcode>
+<opcode><desc>returns the sum of the elements in an array.</desc><synopsis>ksum <opcodename>sumarray</opcodename> karray</synopsis></opcode>
</category>
<category name="Miscellaneous">
<opcode><desc></desc></opcode>
@@ -1505,6 +1680,8 @@ pitch control and support for timescale-modified input</desc><synopsis>asig <opc
<opcode><desc></desc></opcode>
<opcode><desc></desc></opcode>
<opcode><desc></desc></opcode>
+<opcode><desc>returns the length of a Farey Sequence.</desc><synopsis>kfl <opcodename>fareylen</opcodename> kfn</synopsis></opcode>
+<opcode><desc>returns the length of a Farey Sequence.</desc><synopsis>ifl <opcodename>fareyleni</opcodename> ifn</synopsis></opcode>
<opcode><desc></desc></opcode>
<opcode><desc></desc></opcode>
<opcode><desc></desc></opcode>
@@ -1582,9 +1759,12 @@ pitch control and support for timescale-modified input</desc><synopsis>asig <opc
inum_parm, kupdate</synopsis></opcode>
<opcode><desc></desc></opcode>
<opcode><desc></desc></opcode>
+<opcode><desc>Asks the underlying operating system for the current directory
+ name as a string.</desc><synopsis>Sres <opcodename>pwd</opcodename></synopsis></opcode>
<opcode><desc></desc></opcode>
<opcode><desc>Call an external program via the system call</desc><synopsis>ires <opcodename>system_i</opcodename> itrig, Scmd, [inowait]</synopsis><synopsis>kres <opcodename>system</opcodename> ktrig, Scmd, [knowait]</synopsis></opcode>
-<opcode><desc></desc></opcode>
+<opcode><desc>shuffles the content of a function table so that each element of the source
+ table is put into a different random position.</desc><synopsis><opcodename>tableshuffle</opcodename> ktablenum</synopsis><synopsis><opcodename>tableshufflei</opcodename> itablenum</synopsis></opcode>
<opcode><desc></desc></opcode>
<opcode><desc></desc></opcode>
<opcode><desc></desc></opcode>
@@ -1619,12 +1799,13 @@ inum_parm, kupdate</synopsis></opcode>
<opcode><desc>Performs both linear predictive and pitch-tracking analysis on a soundfile.</desc><synopsis><opcodename>csound -U lpanal</opcodename> [flags] infilename outfilename</synopsis><synopsis><opcodename>lpanal</opcodename> [flags] infilename outfilename</synopsis></opcode>
<opcode><desc>Creates a CSD file from the specified input files.</desc><synopsis><opcodename>makecsd</opcodename> [OPTIONS ... ] infile1 [ infile2 [ ... ]]</synopsis></opcode>
<opcode><desc>Mixes together a number of soundfiles.</desc><synopsis><opcodename>mixer</opcodename> [OPTIONS ... ] infile [[OPTIONS... ] infile] ...</synopsis></opcode>
+<opcode><desc>Outputs a catalog of opcodes and plugin modules.</desc><synopsis><opcodename>mkdb</opcodename> [-m] [base_directory]</synopsis></opcode>
<opcode><desc>Converts a .pvx file to a comma separated text file.</desc><synopsis><opcodename>pv_export</opcodename> pv_file cstext_file</synopsis><synopsis>csound -U <opcodename>pv_export</opcodename> pv_file cstext_file</synopsis></opcode>
<opcode><desc>Converts a comma-separated text file to a .pvx file.</desc><synopsis><opcodename>pv_import</opcodename> cstext_file pv_file</synopsis><synopsis>csound -U <opcodename>pv_import</opcodename> cstext_file pv_file</synopsis></opcode>
<opcode><desc>Converts a soundfile into a series of short-time Fourier transform frames.</desc><synopsis><opcodename>csound -U pvanal</opcodename> [flags] infilename outfilename</synopsis><synopsis><opcodename>pvanal</opcodename> [flags] infilename outfilename</synopsis></opcode>
<opcode><desc>View formatted text output of STFT analysis files.</desc><synopsis><opcodename>csound</opcodename> -U <opcodename>pvlook</opcodename> [flags] infilename</synopsis><synopsis><opcodename>pvlook</opcodename> [flags] infilename</synopsis></opcode>
<opcode><desc>Scale the amplitude of a sound file.</desc><synopsis><opcodename>scale</opcodename> [OPTIONS ... ] infile</synopsis></opcode>
-<opcode><desc>Converts SDIF files to files usable by adsynt.</desc><synopsis><opcodename>sdif2ad</opcodename> [flags] infilename outfilename</synopsis></opcode>
+<opcode><desc>Converts SDIF files to files usable by adsyn.</desc><synopsis><opcodename>sdif2ad</opcodename> [flags] infilename outfilename</synopsis></opcode>
<opcode><desc>Displays information about a soundfile.</desc><synopsis><opcodename>csound -U sndinfo</opcodename> [options] soundfilenames ...</synopsis><synopsis><opcodename>sndinfo</opcodename> [options] soundfilenames ...</synopsis></opcode>
<opcode><desc>Converts the sample rate of an audio file.</desc><synopsis><opcodename>srconv</opcodename> [flags] infile</synopsis></opcode>
</category>
diff --git a/opcodes/ATSadd.xml b/opcodes/ATSadd.xml
index 3170141..69d9185 100644
--- a/opcodes/ATSadd.xml
+++ b/opcodes/ATSadd.xml
@@ -61,7 +61,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an another example of the ATSadd opcode. It uses the file <ulink url="examples/ATSadd.csd"><citetitle>ATSadd.csd</citetitle></ulink>.
+ Here is a complete example of the ATSadd opcode. It uses the file <ulink url="examples/ATSadd.csd"><citetitle>ATSadd.csd</citetitle></ulink>.
<example>
<title>Example of the ATSadd opcode.</title>
@@ -73,6 +73,15 @@
</para>
<para>In the above example we synthesize 20 partials as in example 1 except this time we're using a <emphasis>ipartialoffset</emphasis> of 0 and <emphasis>ipartialincr</emphasis> of 2, which means that we'll start from the first partial and synthesize 20 partials total, skipping every other one (ie. partial 1, 3, 5,..).
</para>
+
+ <para>
+ Here is another example of the ATSadd opcode. It uses the file <ulink url="examples/ATSadd-2.csd"><citetitle>ATSadd-2.csd</citetitle></ulink>.
+ <example>
+ <title>Example 2 of the ATSadd opcode.</title>
+ <xi:include href="examples-xml/ATSadd-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+
</refsect1>
<refsect1>
diff --git a/opcodes/ATSaddnz.xml b/opcodes/ATSaddnz.xml
index 2037bad..ce37ae8 100644
--- a/opcodes/ATSaddnz.xml
+++ b/opcodes/ATSaddnz.xml
@@ -53,7 +53,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an another example of the ATSaddnz opcode. It uses the file <ulink url="examples/ATSaddnz.csd"><citetitle>ATSaddnz.csd</citetitle></ulink>.
+ Here is a complete example of the ATSaddnz opcode. It uses the file <ulink url="examples/ATSaddnz.csd"><citetitle>ATSaddnz.csd</citetitle></ulink>.
<example>
<title>Example of the ATSaddnz opcode.</title>
@@ -65,7 +65,20 @@
</para>
<para>Here we synthesize only the 25th noise band (<emphasis>ibandoffset</emphasis> of 24 and <emphasis>ibands</emphasis> of 1).
</para>
+
+ <para>
+ Here is another example of the ATSaddnz opcode. It uses the file <ulink url="examples/ATSaddnz-2.csd"><citetitle>ATSaddnz-2.csd</citetitle></ulink>.
+ <example>
+ <title>Example 2 of the ATSaddnz opcode.</title>
+ <xi:include href="examples-xml/ATSaddnz-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+
+
</refsect1>
+
+
+
<refsect1>
<title>See also</title>
<para><link linkend="ATSread"><citetitle>ATSread</citetitle></link>,
diff --git a/opcodes/ATSinfo.xml b/opcodes/ATSinfo.xml
index 822db62..8707eff 100644
--- a/opcodes/ATSinfo.xml
+++ b/opcodes/ATSinfo.xml
@@ -88,6 +88,15 @@
<para>In the example above we use <emphasis>ATSinfo</emphasis> to retrieve the duration and number of partials in the ATS file indicated by p4. With this info we synthesize the partials using atsadd. Since the duration and number of partials are not "hard-coded" we can use this code with any ATS file.</para>
</listitem>
</orderedlist>
+
+ <para>
+ Here is another example of the ATSinfo opcode. It uses the file <ulink url="examples/ATSinfo-2.csd"><citetitle>ATSinfo-2.csd</citetitle></ulink>.
+ <example>
+ <title>Example 2 of the ATSinfo opcode.</title>
+ <xi:include href="examples-xml/ATSinfo-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+
</refsect1>
<refsect1>
diff --git a/opcodes/ATSread.xml b/opcodes/ATSread.xml
index 324d4e6..e57768b 100644
--- a/opcodes/ATSread.xml
+++ b/opcodes/ATSread.xml
@@ -52,6 +52,16 @@
</para>
<para>Here we're using <emphasis>ATSread</emphasis> to get the 100th partial's frequency and amplitude data out of the 'beats.ats' ATS analysis file. We're using that data to drive an oscillator, but we could use it for anything else that can take a k-rate input, like the bandwidth and resonance of a filter etc.
</para>
+
+ <para>
+ Here is another example of the ATSread opcode. It uses the file <ulink url="examples/ATSread-2.csd"><citetitle>ATSread-2.csd</citetitle></ulink>.
+ <example>
+ <title>Example 2 of the ATSread opcode.</title>
+ <xi:include href="examples-xml/ATSread-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+
+
</refsect1>
<refsect1>
<title>See also</title>
diff --git a/opcodes/ATSsinnoi.xml b/opcodes/ATSsinnoi.xml
index 25b2f21..0055caa 100644
--- a/opcodes/ATSsinnoi.xml
+++ b/opcodes/ATSsinnoi.xml
@@ -66,6 +66,16 @@
</example>
<para>This example here is like the other example except that we use an envelope to control <emphasis>knzlev</emphasis> (the noise level). The result of this will be the "beats.wav" sound that has its noise component fade in over the duration of the note.
</para>
+
+ <para>
+ Here is another example of the ATSsinnoi opcode. It uses the file <ulink url="examples/ATSsinnoi-2.csd"><citetitle>ATSsinnoi-2.csd</citetitle></ulink>.
+ <example>
+ <title>Example 2 of the ATSsinnoi opcode.</title>
+ <xi:include href="examples-xml/ATSsinnoi-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+
+
</refsect1>
<refsect1>
<title>See also</title>
@@ -89,4 +99,4 @@
</simplelist>
</para>
</refsect1>
-</refentry> \ No newline at end of file
+</refentry>
diff --git a/opcodes/JackoInfo.xml b/opcodes/JackoInfo.xml
index 8b375d2..5d45d3c 100644
--- a/opcodes/JackoInfo.xml
+++ b/opcodes/JackoInfo.xml
@@ -37,6 +37,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the JackoInfo opcode. It uses the file <ulink url="examples/JackoInfo.csd"><citetitle>JackInfo.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the JackoInfo opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/JackoInfo.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="JackoInit"><citetitle>JackoInit</citetitle></link>,
diff --git a/opcodes/JackoInit.xml b/opcodes/JackoInit.xml
index d3ae057..2bdb10d 100644
--- a/opcodes/JackoInit.xml
+++ b/opcodes/JackoInit.xml
@@ -78,7 +78,19 @@
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.
- </para>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the JackoInit opcode. It uses the file <ulink url="examples/JackoInit.csd"><citetitle>JackoInit.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the JackoInit opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/JackoInit.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/JackoMidiOut.xml b/opcodes/JackoMidiOut.xml
index bdeea62..0069f9d 100644
--- a/opcodes/JackoMidiOut.xml
+++ b/opcodes/JackoMidiOut.xml
@@ -30,7 +30,7 @@
<title>Initialization</title>
<para>
<emphasis>ScsoundPortName</emphasis> -- The short name ("portname")
- of the internal Jack audio output port.
+ of the internal Jack MIDI output port.
</para>
</refsect1>
diff --git a/opcodes/JackoNoteOut.xml b/opcodes/JackoNoteOut.xml
index bc8a0de..eb2587f 100644
--- a/opcodes/JackoNoteOut.xml
+++ b/opcodes/JackoNoteOut.xml
@@ -30,7 +30,7 @@
<title>Initialization</title>
<para>
<emphasis>ScsoundPortName</emphasis> -- The short name ("portname")
- of the internal Jack audio output port.
+ of the internal Jack MIDI output port.
</para>
</refsect1>
diff --git a/opcodes/OSCinit.xml b/opcodes/OSCinit.xml
index f5cb6de..1eda391 100644
--- a/opcodes/OSCinit.xml
+++ b/opcodes/OSCinit.xml
@@ -78,10 +78,18 @@ gihandle <emphasis role="opc">OSCinit</emphasis> 7770
<emphasis role="oblock">endin</emphasis>
</programlisting>
</informalexample>
-
</refsect1>
<refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="OSClisten"><citetitle>OSClisten</citetitle></link>,
+ <link linkend="OSCsend"><citetitle>OSCsend</citetitle></link>
+ </para>
+ <para> More information on this opcode: <ulink url="http://www.youtube.com/watch?v=JX1C3TqP_9Y"><citetitle>http://www.youtube.com/watch?v=JX1C3TqP_9Y</citetitle></ulink> , made by Andrés Cabrera </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
diff --git a/opcodes/OSClisten.xml b/opcodes/OSClisten.xml
index e033cdb..c733e1c 100644
--- a/opcodes/OSClisten.xml
+++ b/opcodes/OSClisten.xml
@@ -120,6 +120,15 @@ ex:
</refsect1>
<refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="OSCsend"><citetitle>OSCsend</citetitle></link>,
+ <link linkend="OSCinit"><citetitle>OSCinit</citetitle></link>
+ </para>
+ <para> More information on this opcode: <ulink url="http://www.youtube.com/watch?v=JX1C3TqP_9Y"><citetitle>http://www.youtube.com/watch?v=JX1C3TqP_9Y</citetitle></ulink> , made by Andrés Cabrera </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
diff --git a/opcodes/OSCsend.xml b/opcodes/OSCsend.xml
index 385b3d4..1828f6a 100644
--- a/opcodes/OSCsend.xml
+++ b/opcodes/OSCsend.xml
@@ -95,6 +95,7 @@
<link linkend="OSClisten"><citetitle>OSClisten</citetitle></link>,
<link linkend="OSCinit"><citetitle>OSCinit</citetitle></link>
</para>
+ <para> More information on this opcode: <ulink url="http://www.youtube.com/watch?v=JX1C3TqP_9Y"><citetitle>http://www.youtube.com/watch?v=JX1C3TqP_9Y</citetitle></ulink> , made by Andrés Cabrera </para>
</refsect1>
<refsect1>
diff --git a/opcodes/STKBandedWG.xml b/opcodes/STKBandedWG.xml
index 7f41e8a..2451026 100755..100644
--- a/opcodes/STKBandedWG.xml
+++ b/opcodes/STKBandedWG.xml
@@ -1,4 +1,4 @@
-<refentry id="STKBandedWG">
+<refentry id="STKBandedWG">
<indexterm id="IndexStkbandedwg"><primary>STKBandedWG</primary></indexterm>
<refentryinfo><title>Signal Generators:STK Opcodes</title></refentryinfo>
<refmeta>
@@ -20,7 +20,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKBandedWG</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5[, kc6, kv6[, kc7, kv7]]]]]]]</synopsis>
+ <synopsis>asignal <command>STKBandedWG</command> ifrequency, iamplitude, [kpress, kv1[, kmot, kv2[, klfo, kv3[, klfodepth, kv4[, kvel, kv5[, kstrk, kv6[, kinstr, kv7]]]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -36,36 +36,34 @@
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv).
- The 7 controller numbers and values that work for STKBandedWG are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, pressure of bow.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, motion of bow.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, velocity. of bow</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 64, striking of bow.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 16, instrument presets (0 = uniform bar, 1 = tuned bar, 2 = glass harmonica, 3 = Tibetan bowl)</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kpress</emphasis> -- controller 2, pressure of bow. Value range of kv1 is 0-127.</para>
+<para><emphasis>kmot</emphasis> -- controller 4, motion of bow. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kvel</emphasis> -- controller 128, velocity of bow. Value range of kv5 is 0-127.</para>
+<para><emphasis>kstrk</emphasis> -- controller 64, striking of bow. Value range of kv6 is 0-127.</para>
+<para><emphasis>kinstr</emphasis> -- controller 16, instrument presets (0 = uniform bar, 1 = tuned bar, 2 = glass harmonica, 3 = Tibetan bowl). Value range of kv7 is 0-3.</para>
</refsect1>
<refsect1>
<note>
- <title>Note</title>
+ <title>Notes</title>
<para>
The code for this opcode is taken directly from the BandedWG class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the STKBandedWG opcode. It uses the file <ulink url="examples/STKBandedWG.csd"><citetitle>STKBandedWG.csd</citetitle></ulink>,
+ Here is an example of the STKBandedWG opcode. It uses the file <ulink url="examples/STKBandedWG.csd"><citetitle>STKBandedWG.csd</citetitle></ulink>.
<example>
<title>Example of the STKBandedWG opcode.</title>
@@ -87,4 +85,3 @@
</refsect1>
</refentry>
-
diff --git a/opcodes/STKBeeThree.xml b/opcodes/STKBeeThree.xml
index 925c2f2..a170491 100755..100644
--- a/opcodes/STKBeeThree.xml
+++ b/opcodes/STKBeeThree.xml
@@ -9,14 +9,15 @@
<refname>STKBeeThree</refname>
<refpurpose>
STK Hammond-oid organ-like FM synthesis instrument.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- STK Hammond-oid organ-like FM synthesis instrument.</para>
- <para>
+ STK Hammond-oid organ-like FM synthesis instrument.
+ </para>
+ <para>
This opcode a simple 4 operator topology, also referred to as algorithm 8 of the TX81Z.
It simulates the sound of a Hammond-oid organ, and some related sounds.
</para>
@@ -24,7 +25,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKBeeThree</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKBeeThree</command> ifrequency, iamplitude, [kop4, kv1[, kop3, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -38,36 +39,35 @@
</para>
</refsect1>
- <refsect1>
+ <refsect1>
<title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKBeeThree are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, gain of feedback of operator 4.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, gain of operator 3 </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, ADSR 2 and 4 target.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kop4</emphasis> -- controller 2, gain of feedback of operator 4. Value range of kv1 is 0-127.</para>
+<para><emphasis>kop3</emphasis> -- controller 4, gain of operator 3. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kadsr</emphasis> -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.</para>
</refsect1>
- <refsect1>
+ <refsect1>
<note>
- <title>Note</title>
+ <title>Notes</title>
<para>
The code for this opcode is taken directly from the BeeThree class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the STKBeeThree opcode. It uses the file <ulink url="examples/STKBeeThree.csd"><citetitle>STKBeeThree.csd</citetitle></ulink>, and <ulink url="examples/fwavblnk.aiff"><citetitle>fwavblnk.aiff</citetitle></ulink>.
+ Here is an example of the STKBeeThree opcode. It uses the file <ulink url="examples/STKBeeThree.csd"><citetitle>STKBeeThree.csd</citetitle></ulink>.
<example>
<title>Example of the STKBeeThree opcode.</title>
@@ -89,4 +89,3 @@
</refsect1>
</refentry>
-
diff --git a/opcodes/STKBlowBotl.xml b/opcodes/STKBlowBotl.xml
index 748da22..688c323 100755..100644
--- a/opcodes/STKBlowBotl.xml
+++ b/opcodes/STKBlowBotl.xml
@@ -21,7 +21,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKBlowBotl</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4]]]]</synopsis>
+ <synopsis>asignal <command>STKBlowBotl</command> ifrequency, iamplitude, [knoise, kv1[, klfo, kv2[, klfodepth, kv3[, kvol, kv4]]]]</synopsis>
</refsect1>
<refsect1>
@@ -35,28 +35,26 @@
</para>
</refsect1>
- <refsect1>
+ <refsect1>
<title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 4 controller numbers and values that work for STKBlowBotl are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, gain of noise.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, volume</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>knoise</emphasis> -- controller 4, gain of noise. Value range of kv1 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>kvol</emphasis> -- controller 128, volume. Value range of kv4 is 0-127.</para>
</refsect1>
<refsect1>
<note>
- <title>Note</title>
+ <title>Notes</title>
<para>
The code for this opcode is taken directly from the BlowBotl class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -85,5 +83,3 @@
</refsect1>
</refentry>
-
-
diff --git a/opcodes/STKBlowHole.xml b/opcodes/STKBlowHole.xml
index 93656a5..def70a0 100755..100644
--- a/opcodes/STKBlowHole.xml
+++ b/opcodes/STKBlowHole.xml
@@ -23,7 +23,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKBlowHole</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKBlowHole</command> ifrequency, iamplitude, [kreed, kv1[, knoise, kv2[, khole, kv3[, kreg, kv4[, kbreath, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -37,29 +37,27 @@
</para>
</refsect1>
- <refsect1>
+ <refsect1>
<title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKBlowHole are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, stiffness of reed </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, gain of noise.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, state of tonehole.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, state of register.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, breath pressure </para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kreed</emphasis> -- controller 2, stiffness of reed. Value range of kv1 is 0-127.</para>
+<para><emphasis>knoise</emphasis> -- controller 4, gain of noise. Value range of kv2 is 0-127.</para>
+<para><emphasis>khole</emphasis> -- controller 11, state of tonehole. Value range of kv3 is 0-127.</para>
+<para><emphasis>kreg</emphasis> -- controller 1, state of register. Value range of kv4 is 0-127.</para>
+<para><emphasis>kbreath</emphasis> -- controller 128, breath pressure. Value range of kv5 is 0-127.</para>
</refsect1>
- <refsect1>
+ <refsect1>
<note>
- <title>Note</title>
+ <title>Notes</title>
<para>
The code for this opcode is taken directly from the BlowHole class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -88,6 +86,3 @@
</refsect1>
</refentry>
-
-
-
diff --git a/opcodes/STKBowed.xml b/opcodes/STKBowed.xml
index 076ee59..85b4b39 100755..100644
--- a/opcodes/STKBowed.xml
+++ b/opcodes/STKBowed.xml
@@ -21,7 +21,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKBowed</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKBowed</command> ifrequency, iamplitude, [kpress, kv1[, kpos, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -37,18 +37,11 @@
<refsect1>
<title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKBowed are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, bow pressure.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, position on bow </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, volume.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kpress</emphasis> -- controller 2, bow pressure. Value range of kv1 is 0-127.</para>
+<para><emphasis>kpos</emphasis> -- controller 4, position on bow. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kvol</emphasis> -- controller 128, volume. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -58,6 +51,11 @@
The code for this opcode is taken directly from the Bowed class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -86,5 +84,3 @@
</refsect1>
</refentry>
-
-
diff --git a/opcodes/STKBrass.xml b/opcodes/STKBrass.xml
index 7549985..7c7e2e8 100755..100644
--- a/opcodes/STKBrass.xml
+++ b/opcodes/STKBrass.xml
@@ -21,7 +21,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKBrass</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKBrass</command> ifrequency, iamplitude, [klip, kv1[, kslide, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -37,18 +37,11 @@
<refsect1>
<title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKBrass are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, lip tension.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, slide length </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, volume.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>klip</emphasis> -- controller 2, lip tension. Value range of kv1 is 0-127.</para>
+<para><emphasis>kslide</emphasis> -- controller 4, slide length. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kvol</emphasis> -- controller 128, volume. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -58,6 +51,11 @@
The code for this opcode is taken directly from the Brass class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -86,6 +84,3 @@
</refsect1>
</refentry>
-
-
-
diff --git a/opcodes/STKClarinet.xml b/opcodes/STKClarinet.xml
index e623d68..59a18cf 100755..100644
--- a/opcodes/STKClarinet.xml
+++ b/opcodes/STKClarinet.xml
@@ -21,7 +21,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKClarinet</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKClarinet</command> ifrequency, iamplitude, [kstiff, kv1[, knoise, kv2[, klfo, kv3[, klfodepth, kv4[, kbreath, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -37,18 +37,11 @@
<refsect1>
<title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKClarinet are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, reed stiffness.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, gain of noise </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, breath pressure.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kstiff</emphasis> -- controller 2, reed stiffness. Value range of kv1 is 0-127.</para>
+<para><emphasis>knoise</emphasis> -- controller 4, gain of noise. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kbreath</emphasis> -- controller 128, breath pressure. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -58,6 +51,11 @@
The code for this opcode is taken directly from the Clarinet class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -76,7 +74,7 @@
<refsect1>
<title>See Also</title>
<para>
- <link linkend="STKFlute"><citetitle>STKFlute</citetitle></link>,
+ <link linkend="STKFlute"><citetitle>STKFlute</citetitle></link>.
</para>
</refsect1>
@@ -93,7 +91,3 @@
</refsect1>
</refentry>
-
-
-
-
diff --git a/opcodes/STKDrummer.xml b/opcodes/STKDrummer.xml
index b512e56..48ffdbc 100755..100644
--- a/opcodes/STKDrummer.xml
+++ b/opcodes/STKDrummer.xml
@@ -36,15 +36,6 @@
</para>
</refsect1>
- <refsect1>
- <title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). There are no controller numbers and values that work for STKDrummer:
- </para>
- </refsect1>
-
<refsect1>
<note>
<title>Note</title>
@@ -70,7 +61,7 @@
<refsect1>
<title>See Also</title>
<para>
- <link linkend="STKClarinet"><citetitle>STKClarinet</citetitle></link>,
+ <link linkend="STKClarinet"><citetitle>STKClarinet</citetitle></link>.
</para>
</refsect1>
@@ -87,8 +78,3 @@
</refsect1>
</refentry>
-
-
-
-
-
diff --git a/opcodes/STKFMVoices.xml b/opcodes/STKFMVoices.xml
index c48a831..5295da0 100755..100644
--- a/opcodes/STKFMVoices.xml
+++ b/opcodes/STKFMVoices.xml
@@ -9,7 +9,7 @@
<refname>STKFMVoices</refname>
<refpurpose>
STKFMVoices is a singing FM synthesis instrument.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -21,7 +21,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKFMVoices</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKFMVoices</command> ifrequency, iamplitude, [kvowel, kv1[, kspec, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -37,18 +37,11 @@
<refsect1>
<title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKFMVoices are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, vowel.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, spectral tilt </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, ADSR 2 and 4 Target.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kvowel</emphasis> -- controller 2, vowel. Value range of kv1 is 0-127.</para>
+<para><emphasis>kspec</emphasis> -- controller 4, spectral tilt. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kadsr</emphasis> -- controller 128, ADSR 2 and 4 Target. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -57,6 +50,11 @@
<para>
The code for this opcode is taken directly from the FMVoices class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
+ </para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
</para>
</note>
</refsect1>
@@ -64,8 +62,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the STKFMVoices opcode. It uses the file <ulink url="examples/STKFMVoices.csd"><citetitle>STKFMVoices.csd</citetitle></ulink>, and <ulink url="examples/fwavblnk.aiff"><citetitle>fwavblnk.aiff</citetitle></ulink>.
-
+ Here is an example of the STKFMVoices opcode. It uses the file <ulink url="examples/STKFMVoices.csd"><citetitle>STKFMVoices.csd</citetitle></ulink>.
<example>
<title>Example of the STKFMVoices opcode.</title>
<xi:include href="examples-xml/STKFMVoices.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
@@ -76,7 +73,7 @@
<refsect1>
<title>See Also</title>
<para>
- <link linkend="STKBeeThree"><citetitle>STKBeeThree</citetitle></link>,
+ <link linkend="STKBeeThree"><citetitle>STKBeeThree</citetitle></link>.
</para>
</refsect1>
@@ -93,7 +90,3 @@
</refsect1>
</refentry>
-
-
-
-
diff --git a/opcodes/STKFlute.xml b/opcodes/STKFlute.xml
index 20f56ba..bd9c290 100755..100644
--- a/opcodes/STKFlute.xml
+++ b/opcodes/STKFlute.xml
@@ -21,7 +21,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKFlute</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKFlute</command> ifrequency, iamplitude, [kjet, kv1[, knoise, kv2[, klfo, kv3[, klfodepth, kv4[, kbreath, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -37,18 +37,11 @@
<refsect1>
<title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKFlute are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, jet delay.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, gain of noise </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, breath pressure.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kjet</emphasis> -- controller 2, jet delay. Value range of kv1 is 0-127.</para>
+<para><emphasis>knoise</emphasis> -- controller 4, gain of noise. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kbreath</emphasis> -- controller 128, breath pressure. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -58,6 +51,11 @@
The code for this opcode is taken directly from the Flute class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -76,7 +74,7 @@
<refsect1>
<title>See Also</title>
<para>
- <link linkend="STKClarinet"><citetitle>STKClarinet</citetitle></link>,
+ <link linkend="STKClarinet"><citetitle>STKClarinet</citetitle></link>.
</para>
</refsect1>
@@ -93,8 +91,3 @@
</refsect1>
</refentry>
-
-
-
-
-
diff --git a/opcodes/STKHevyMetl.xml b/opcodes/STKHevyMetl.xml
index 1e6fc5b..1350b1b 100755..100644
--- a/opcodes/STKHevyMetl.xml
+++ b/opcodes/STKHevyMetl.xml
@@ -22,7 +22,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKHevyMetl</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKHevyMetl</command> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -38,17 +38,11 @@
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKHevyMetl are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, total modulator index.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, crossfade of modulator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, ADSR 2 and 4 target.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kmod</emphasis> -- controller2, total modulator index. Value range of kv1 is 0-127.</para>
+<para><emphasis>kcross</emphasis> -- controller 4, crossfade of modulator. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kadsr</emphasis> -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -58,13 +52,18 @@
The code for this opcode is taken directly from the HevyMetl class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the STKHevyMetl opcode. It uses the file <ulink url="examples/STKHevyMetl.csd"><citetitle>STKHevyMetl.csd</citetitle></ulink>, and <ulink url="examples/fwavblnk.aiff"><citetitle>fwavblnk.aiff</citetitle></ulink>.
+ Here is an example of the STKHevyMetl opcode. It uses the file <ulink url="examples/STKHevyMetl.csd"><citetitle>STKHevyMetl.csd</citetitle></ulink>.
<example>
<title>Example of the STKHevyMetl opcode.</title>
@@ -76,7 +75,7 @@
<refsect1>
<title>See Also</title>
<para>
- <link linkend="STKWurley"><citetitle>STKWurley</citetitle></link>,
+ <link linkend="STKWurley"><citetitle>STKWurley</citetitle></link>.
</para>
</refsect1>
@@ -93,4 +92,3 @@
</refsect1>
</refentry>
-
diff --git a/opcodes/STKMandolin.xml b/opcodes/STKMandolin.xml
index aab64cf..993cffe 100755..100644
--- a/opcodes/STKMandolin.xml
+++ b/opcodes/STKMandolin.xml
@@ -21,7 +21,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKMandolin</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKMandolin</command> ifrequency, iamplitude, [kbody, kv1[, kpos, kv2[, ksus, kv3[, kdetune, kv4[, kmic, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -37,17 +37,11 @@
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKMandolin are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, size of body.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, pluck position.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, string sustain.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, string detuning.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, position of microphone.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kbody</emphasis> -- controller 2, size of body. Value range of kv1 is 0-127.</para>
+<para><emphasis>kpos</emphasis> -- controller 4, pluck position. Value range of kv2 is 0-127.</para>
+<para><emphasis>ksus</emphasis> -- controller 11, string sustain. Value range of kv3 is 0-127.</para>
+<para><emphasis>kdetune</emphasis> -- controller 1, string detuning. Value range of kv4 is 0-127.</para>
+<para><emphasis>kmic</emphasis> -- controller 128, position of microphone. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -57,13 +51,18 @@
The code for this opcode is taken directly from the Mandolin class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the STKMandolin opcode. It uses the file <ulink url="examples/STKMandolin.csd"><citetitle>STKMandolin.csd</citetitle></ulink>, and <ulink url="examples/mandpluk.aiff"><citetitle>mandpluck.aiff</citetitle></ulink>.
+ Here is an example of the STKMandolin opcode. It uses the file <ulink url="examples/STKMandolin.csd"><citetitle>STKMandolin.csd</citetitle></ulink>.
<example>
<title>Example of the STKMandolin opcode.</title>
@@ -75,7 +74,7 @@
<refsect1>
<title>See Also</title>
<para>
- <link linkend="STKPlucked"><citetitle>STKPlucked</citetitle></link>,
+ <link linkend="STKPlucked"><citetitle>STKPlucked</citetitle></link>.
</para>
</refsect1>
@@ -92,5 +91,3 @@
</refsect1>
</refentry>
-
-
diff --git a/opcodes/STKModalBar.xml b/opcodes/STKModalBar.xml
index 5eb29d6..df90e89 100755..100644
--- a/opcodes/STKModalBar.xml
+++ b/opcodes/STKModalBar.xml
@@ -20,7 +20,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKModalBar</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5[, kc6, kv6[, kc7, kv7]]]]]]]</synopsis>
+ <synopsis>asignal <command>STKModalBar</command> ifrequency, iamplitude, [khard, kv1[, kpos, kv2[, klfo, kv3[, klfodepth, kv4[, kmix, kv5[, kvol, kv6[, kinstr, kv7]]]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -36,19 +36,13 @@
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 7 controller numbers and values that work for STKModalBar are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, hardness of the stick.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, stick position.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 8, direct stick mix</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, volume.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 16, instrument presets (0 = marimba, 1 = vibraphone, 2 = agogo, 3 = wood1, 4 = reso, 5 = wood2, 6 = beats, 7 = two fixed, 8 = clump)</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>khard</emphasis> -- controller 2, hardness of the stick. Value range of kv1 is 0-127.</para>
+<para><emphasis>kpos</emphasis> -- controller 4, stick position. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kmix</emphasis> -- controller 8, direct stick mix. Value range of kv5 is 0-127.</para>
+<para><emphasis>kvol</emphasis> -- controller 128, volume. Value range of kv6 is 0-127.</para>
+<para><emphasis>kinstr</emphasis> -- 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.</para>
</refsect1>
<refsect1>
@@ -58,6 +52,11 @@
The code for this opcode is taken directly from the ModalBar class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -86,5 +85,3 @@
</refsect1>
</refentry>
-
-
diff --git a/opcodes/STKMoog.xml b/opcodes/STKMoog.xml
index 13735ca..7a730b0 100755..100644
--- a/opcodes/STKMoog.xml
+++ b/opcodes/STKMoog.xml
@@ -21,7 +21,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKMoog</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKMoog</command> ifrequency, iamplitude, [kq, kv1[, krate, kv2[, klfo, kv3[, klfodepth, kv4[, kvol, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -37,17 +37,11 @@
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKMoog are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, Q filter.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, rate of filter sweep .</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, volume.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kq</emphasis> -- controller 2, Q filter. Value range of kv1 is 0-127.</para>
+<para><emphasis>krate</emphasis> -- controller 4, rate of filter sweep. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kvol</emphasis> -- controller 128, volume. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -57,6 +51,11 @@
The code for this opcode is taken directly from the Moog class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -85,5 +84,3 @@
</refsect1>
</refentry>
-
-
diff --git a/opcodes/STKPercFlut.xml b/opcodes/STKPercFlut.xml
index 564eefe..cfc511b 100755..100644
--- a/opcodes/STKPercFlut.xml
+++ b/opcodes/STKPercFlut.xml
@@ -20,7 +20,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKPercFlut</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKPercFlut</command> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -36,17 +36,11 @@
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKPercFlut are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, total modulator index.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, crossfade of modulator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, ADSR 2 and 4 target.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kmod</emphasis> -- controller 2, total modulator index. Value range of kv1 is 0-127.</para>
+<para><emphasis>kcross</emphasis> -- controller 4, crossfade of modulator. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kadsr</emphasis> -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -56,13 +50,18 @@
The code for this opcode is taken directly from the PercFlut class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the STKPercFlut opcode. It uses the file <ulink url="examples/STKPercFlut.csd"><citetitle>STKPercFlut.csd</citetitle></ulink>, and <ulink url="examples/fwavblnk.aiff"><citetitle>fwavblnk.aiff</citetitle></ulink>.
+ Here is an example of the STKPercFlut opcode. It uses the file <ulink url="examples/STKPercFlut.csd"><citetitle>STKPercFlut.csd</citetitle></ulink>.
<example>
<title>Example of the STKPercFlut opcode.</title>
diff --git a/opcodes/STKPlucked.xml b/opcodes/STKPlucked.xml
index 822f184..349986f 100755..100644
--- a/opcodes/STKPlucked.xml
+++ b/opcodes/STKPlucked.xml
@@ -35,15 +35,6 @@
</para>
</refsect1>
- <refsect1>
- <title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). There are no controller numbers and values that work for STKPlucked.
- </para>
- </refsect1>
-
<refsect1>
<note>
<title>Note</title>
@@ -69,7 +60,7 @@
<refsect1>
<title>See Also</title>
<para>
- <link linkend="STKSitar"><citetitle>STKSitar</citetitle></link>,
+ <link linkend="STKSitar"><citetitle>STKSitar</citetitle></link>.
</para>
</refsect1>
@@ -86,9 +77,3 @@
</refsect1>
</refentry>
-
-
-
-
-
-
diff --git a/opcodes/STKResonate.xml b/opcodes/STKResonate.xml
index b588c4b..0270433 100755..100644
--- a/opcodes/STKResonate.xml
+++ b/opcodes/STKResonate.xml
@@ -21,7 +21,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKResonate</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKResonate</command> ifrequency, iamplitude, [kfreq, kv1[, kpole, kv2[, knotch, kv3[, kzero, kv4[, kenv, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -37,18 +37,11 @@
<refsect1>
<title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKResonate are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, frequency of resonance.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, pole radii </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, notch frequency.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, zero radii.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, gain of envelope.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kfreq</emphasis> -- controller 2, frequency of resonance. Value range of kv1 is 0-127.</para>
+<para><emphasis>kpole</emphasis> -- controller 4, pole radii. Value range of kv2 is 0-127.</para>
+<para><emphasis>knotch</emphasis> -- controller 11, notch frequency. Value range of kv3 is 0-127.</para>
+<para><emphasis>kzero</emphasis> -- controller 1, zero radii. Value range of kv4 is 0-127.</para>
+<para><emphasis>kenv</emphasis> -- controller 128, gain of envelope. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -58,6 +51,11 @@
The code for this opcode is taken directly from the Resonate class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -86,9 +84,3 @@
</refsect1>
</refentry>
-
-
-
-
-
-
diff --git a/opcodes/STKRhodey.xml b/opcodes/STKRhodey.xml
index e439cac..5ea528b 100755..100644
--- a/opcodes/STKRhodey.xml
+++ b/opcodes/STKRhodey.xml
@@ -25,7 +25,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKRhodey</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKRhodey</command> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -41,17 +41,11 @@
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKRhodey are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, modulator index 1.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, crossfade of outputs.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, ADSR 2 and 4 target.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kmod</emphasis> -- controller 2, modulator index 1. Value range of kv1 is 0-127.</para>
+<para><emphasis>kcross</emphasis> -- controller 4, crossfade of outputs. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kadsr</emphasis> -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -61,13 +55,18 @@
The code for this opcode is taken directly from the Rhodey class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the STKRhodey opcode. It uses the file <ulink url="examples/STKRhodey.csd"><citetitle>STKRhodey.csd</citetitle></ulink>, and <ulink url="examples/fwavblnk.aiff"><citetitle>fwavblnk.aiff</citetitle></ulink>.
+ Here is an example of the STKRhodey opcode. It uses the file <ulink url="examples/STKRhodey.csd"><citetitle>STKRhodey.csd</citetitle></ulink>.
<example>
<title>Example of the STKRhodey opcode.</title>
@@ -79,7 +78,7 @@
<refsect1>
<title>See Also</title>
<para>
- <link linkend="STKWurley"><citetitle>STKWurley</citetitle></link>,
+ <link linkend="STKWurley"><citetitle>STKWurley</citetitle></link>.
</para>
</refsect1>
diff --git a/opcodes/STKSaxofony.xml b/opcodes/STKSaxofony.xml
index ae93bf2..f39dbb5 100755..100644
--- a/opcodes/STKSaxofony.xml
+++ b/opcodes/STKSaxofony.xml
@@ -23,7 +23,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKSaxofony</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5[, kc6, kv6[, kc7, kv7]]]]]]]</synopsis>
+ <synopsis>asignal <command>STKSaxofony</command> ifrequency, iamplitude, [kstiff, kv1[, kapert, kv2[, kblow, kv3[, knoise, kv4[, klfo, kv5[, klfodepth, kv6[, kbreath, kv7]]]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -39,19 +39,13 @@
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 7 controller numbers and values that work for STKSaxofony are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, stiffness of reed.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 26, .reed aperture</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, blow position </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, noise gain.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 29, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, breath pressure </para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kstiff</emphasis> -- controller 2, stiffness of reed. Value range of kv1 is 0-127.</para>
+<para><emphasis>kapert</emphasis> -- controller 26, reed aperture. Value range of kv2 is 0-127.</para>
+<para><emphasis>kblow</emphasis> -- controller 11, blow position. Value range of kv3 is 0-127.</para>
+<para><emphasis>knoise</emphasis> -- controller 4, noise gain. Value range of kv4 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 29, speed of low-frequency oscillator. Value range of kv5 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv6 is 0-127.</para>
+<para><emphasis>kbreath</emphasis> -- controller 128, breath pressure. Value range of kv7 is 0-127.</para>
</refsect1>
<refsect1>
@@ -61,13 +55,18 @@
The code for this opcode is taken directly from the Saxofony class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the STKSaxofony opcode. It uses the file <ulink url="examples/STKSaxofony.csd"><citetitle>STKSaxofony.csd</citetitle></ulink>,
+ Here is an example of the STKSaxofony opcode. It uses the file <ulink url="examples/STKSaxofony.csd"><citetitle>STKSaxofony.csd</citetitle></ulink>.
<example>
<title>Example of the STKSaxofony opcode.</title>
@@ -89,5 +88,3 @@
</refsect1>
</refentry>
-
-
diff --git a/opcodes/STKShakers.xml b/opcodes/STKShakers.xml
index 68abcd6..cf56499 100755..100644
--- a/opcodes/STKShakers.xml
+++ b/opcodes/STKShakers.xml
@@ -23,7 +23,7 @@ It simulates of breaking sticks, crunchy snow (or not), a wrench, sandpaper, and
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKShakers</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5[, kc6, kv6]]]]]]</synopsis>
+ <synopsis>asignal <command>STKShakers</command> ifrequency, iamplitude, [kenerg, kv1[, kdecay, kv2[, kshake, kv3[, knum, kv4[, kres, kv5[, kinstr, kv6]]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -39,20 +39,12 @@ It simulates of breaking sticks, crunchy snow (or not), a wrench, sandpaper, and
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 6 controller numbers and values that work for STKShakers are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, shake energy.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, system decay.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, .shake energy</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, number of objects </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, resonance frequency.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1071, instrument selection (Maraca = 0, Cabasa = 1, Sekere = 2, Guiro = 3, Water Drops = 4, Bamboo Chimes = 5, Tambourine = 6, Sleigh Bells = 7, Sticks = 8,
-Crunch = 9, Wrench = 10, Sand Paper = 11, Coke Can = 12, Next Mug = 13, Penny + Mug = 14, Nickle + Mug = 15, Dime + Mug = 16, Quarter + Mug = 17, Franc + Mug = 18, Peso + Mug = 19, Big Rocks = 20,
-Little Rocks = 21, Tuned Bamboo Chimes = 22) </para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kenerg</emphasis> -- controller 2, shake energy. Value range of kv1 is 0-127.</para>
+<para><emphasis>kdecay</emphasis> -- controller 4, system decay. Value range of kv2 is 0-127.</para>
+<para><emphasis>kshake</emphasis> -- controller 128, shake energy. Value range of kv3 is 0-127.</para>
+<para><emphasis>knum</emphasis> -- controller 11, number of objects. Value range of kv4 is 0-127.</para>
+<para><emphasis>kres</emphasis> -- controller 1, resonance frequency. Value range of kv5 is 0-127.</para>
+<para><emphasis>kinstr</emphasis> -- controller 1071, instrument selection (Maraca = 0, Cabasa = 1, Sekere = 2, Guiro = 3, Water Drops = 4, Bamboo Chimes = 5, Tambourine = 6, Sleigh Bells = 7, Sticks = 8, Crunch = 9, Wrench = 10, Sand Paper = 11, Coke Can = 12, Next Mug = 13, Penny + Mug = 14, Nickle + Mug = 15, Dime + Mug = 16, Quarter + Mug = 17, Franc + Mug = 18, Peso + Mug = 19, Big Rocks = 20, Little Rocks = 21, Tuned Bamboo Chimes = 22). Value range of kv6 is 0-22.</para>
</refsect1>
<refsect1>
@@ -62,6 +54,11 @@ Little Rocks = 21, Tuned Bamboo Chimes = 22) </para></listitem>
The code for this opcode is taken directly from the Shakers class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -90,6 +87,3 @@ Little Rocks = 21, Tuned Bamboo Chimes = 22) </para></listitem>
</refsect1>
</refentry>
-
-
-
diff --git a/opcodes/STKSimple.xml b/opcodes/STKSimple.xml
index a50c4ee..db3bcbe 100755..100644
--- a/opcodes/STKSimple.xml
+++ b/opcodes/STKSimple.xml
@@ -22,7 +22,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKSimple</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4]]]]</synopsis>
+ <synopsis>asignal <command>STKSimple</command> ifrequency, iamplitude, [kpos, kv1[, kcross, kv2[, kenv, kv3[, kgain, kv4]]]]</synopsis>
</refsect1>
<refsect1>
@@ -38,17 +38,10 @@
<refsect1>
<title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 4 controller numbers and values that work for STKSimple are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, position of filter pole.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, noise/pitched cross-fade </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, rate of envelope.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, gain.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kpos</emphasis> -- controller 2, position of filter pole. Value range of kv1 is 0-127.</para>
+<para><emphasis>kcross</emphasis> -- controller 4, noise/pitched cross-fade. Value range of kv2 is 0-127.</para>
+<para><emphasis>kenv</emphasis> -- controller 11, rate of envelope. Value range of kv3 is 0-127.</para>
+<para><emphasis>kgain</emphasis> -- controller 128, gain. Value range of kv4 is 0-127.</para>
</refsect1>
<refsect1>
@@ -58,6 +51,11 @@
The code for this opcode is taken directly from the Simple class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -76,7 +74,7 @@
<refsect1>
<title>See Also</title>
<para>
- <link linkend="STKClarinet"><citetitle>STKClarinet</citetitle></link>,
+ <link linkend="STKClarinet"><citetitle>STKClarinet</citetitle></link>.
</para>
</refsect1>
@@ -93,9 +91,3 @@
</refsect1>
</refentry>
-
-
-
-
-
-
diff --git a/opcodes/STKSitar.xml b/opcodes/STKSitar.xml
index f1ba223..c1d9d31 100755..100644
--- a/opcodes/STKSitar.xml
+++ b/opcodes/STKSitar.xml
@@ -35,15 +35,6 @@
</para>
</refsect1>
- <refsect1>
- <title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). There are no controller numbers and values that work for STKSitar.
- </para>
- </refsect1>
-
<refsect1>
<note>
<title>Note</title>
@@ -79,9 +70,3 @@
</refsect1>
</refentry>
-
-
-
-
-
-
diff --git a/opcodes/STKStifKarp.xml b/opcodes/STKStifKarp.xml
index df4feb6..43f6d76 100755..100644
--- a/opcodes/STKStifKarp.xml
+++ b/opcodes/STKStifKarp.xml
@@ -22,7 +22,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKStifKarp</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3]]]</synopsis>
+ <synopsis>asignal <command>STKStifKarp</command> ifrequency, iamplitude, [kpos, kv1[, ksus, kv2[, kstretch, kv3]]]</synopsis>
</refsect1>
<refsect1>
@@ -38,16 +38,9 @@
<refsect1>
<title>Performance</title>
-
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 3 controller numbers and values that work for STKStifKarp are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, pickup position.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, string sustain </para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, string stretch.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kpos</emphasis> -- controller 4, pickup position. Value range of kv1 is 0-127.</para>
+<para><emphasis>ksus</emphasis> -- controller11, string sustain. Value range of kv2 is 0-127.</para>
+<para><emphasis>kstretch</emphasis> -- controller 1, string stretch. Value range of kv3 is 0-127.</para>
</refsect1>
<refsect1>
@@ -57,6 +50,11 @@
The code for this opcode is taken directly from the StifKarp class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
diff --git a/opcodes/STKTubeBell.xml b/opcodes/STKTubeBell.xml
index ae4e575..a47c7f3 100755..100644
--- a/opcodes/STKTubeBell.xml
+++ b/opcodes/STKTubeBell.xml
@@ -21,7 +21,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKTubeBell</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKTubeBell</command> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -37,17 +37,11 @@
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKTubeBell are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, modulator index 1.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, crossfade of outputs.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, ADSR 2 and 4 target.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kmod</emphasis> -- controller 2, modulator index 1. Value range of kv1 is 0-127.</para>
+<para><emphasis>kcross</emphasis> -- controller 4, crossfade of outputs. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kadsr</emphasis> -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -57,13 +51,18 @@
The code for this opcode is taken directly from the TubeBell class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the STKTubeBell opcode. It uses the file <ulink url="examples/STKTubeBell.csd"><citetitle>STKTubeBell.csd</citetitle></ulink>, and <ulink url="examples/fwavblnk.aiff"><citetitle>fwavblnk.aiff</citetitle></ulink>.
+ Here is an example of the STKTubeBell opcode. It uses the file <ulink url="examples/STKTubeBell.csd"><citetitle>STKTubeBell.csd</citetitle></ulink>.
<example>
<title>Example of the STKTubeBell opcode.</title>
@@ -85,4 +84,3 @@
</refsect1>
</refentry>
-
diff --git a/opcodes/STKVoicForm.xml b/opcodes/STKVoicForm.xml
index 99d64e4..c899a50 100755..100644
--- a/opcodes/STKVoicForm.xml
+++ b/opcodes/STKVoicForm.xml
@@ -22,7 +22,7 @@ Measured formant data is included, and enough data is there to support either pa
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKVoicForm</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKVoicForm</command> ifrequency, iamplitude, [kmix, kv1[, ksel, kv2[, klfo, kv3[, klfodepth, kv4[, kloud, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -38,17 +38,11 @@ Measured formant data is included, and enough data is there to support either pa
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKVoicForm are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, voiced/unvoiced mix.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, vowel/phoneme selection.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, loudness (spectral tilt).</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kmix</emphasis> -- controller 2, voiced/unvoiced mix. Value range of kv1 is 0-127.</para>
+<para><emphasis>ksel</emphasis> -- controller 4, vowel/phoneme selection. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kloud</emphasis> -- controller 128, loudness (spectral tilt). Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -58,6 +52,11 @@ Measured formant data is included, and enough data is there to support either pa
The code for this opcode is taken directly from the VoicForm class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
@@ -65,10 +64,7 @@ Measured formant data is included, and enough data is there to support either pa
<title>Examples</title>
<para>
Here is an example of the STKVoicForm opcode.
- It uses the file <ulink url="examples/STKVoicForm.csd"><citetitle>STKVoicForm.csd</citetitle></ulink>
-, and <ulink url="examples/ahh.aiff"><citetitle>ahh.aiff</citetitle></ulink>
-, <ulink url="examples/eee.aiff"><citetitle>eee.aiff</citetitle></ulink>
-, <ulink url="examples/ooo.aiff"><citetitle>ooo.aiff</citetitle></ulink>.
+ It uses the file <ulink url="examples/STKVoicForm.csd"><citetitle>STKVoicForm.csd</citetitle></ulink>.
<example>
<title>Example of the STKVoicForm opcode.</title>
diff --git a/opcodes/STKWhistle.xml b/opcodes/STKWhistle.xml
index deed49e..bff671c 100755..100644
--- a/opcodes/STKWhistle.xml
+++ b/opcodes/STKWhistle.xml
@@ -20,7 +20,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKWhistle</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKWhistle</command> ifrequency, iamplitude, [kmod, kv1[, knoise, kv2[, kfipfreq, kv3[, kfipgain, kv4[, kvol, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -36,17 +36,11 @@
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKWhistle are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, blowing frequency modulation.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, noise gain.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, fipple modulation frequency.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, fipple modulation gain.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, volume.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kmod</emphasis> -- controller 2, blowing frequency modulation. Value range of kv1 is 0-127.</para>
+<para><emphasis>knoise</emphasis> -- controller 4, noise gain. Value range of kv2 is 0-127.</para>
+<para><emphasis>kfipfreq</emphasis> -- controller 11, fipple modulation frequency. Value range of kv3 is 0-127.</para>
+<para><emphasis>kfipgain</emphasis> -- controller 1, fipple modulation gain. Value range of kv4 is 0-127.</para>
+<para><emphasis>kvol</emphasis> -- controller 128, volume. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -56,6 +50,11 @@
The code for this opcode is taken directly from the Whistle class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
diff --git a/opcodes/STKWurley.xml b/opcodes/STKWurley.xml
index 7dba354..3ac5a9f 100755..100644
--- a/opcodes/STKWurley.xml
+++ b/opcodes/STKWurley.xml
@@ -21,7 +21,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>asignal <command>STKWurley</command> ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]</synopsis>
+ <synopsis>asignal <command>STKWurley</command> ifrequency, iamplitude, [kmod, kv1[, kcross, kv2[, klfo, kv3[, klfodepth, kv4[, kadsr, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
@@ -37,17 +37,11 @@
<refsect1>
<title>Performance</title>
- <para>
- <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
- Each controller pair consists of a controller number (kc) followed by a controller value (kv). The 5 controller numbers and values that work for STKWurley are:
- <itemizedlist>
- <listitem><para><emphasis>kc, kv</emphasis> -- 2, modulator index 1.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 4, crossfade of outputs.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 11, speed of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 1, depth of low-frequency oscillator.</para></listitem>
- <listitem><para><emphasis>kc, kv</emphasis> -- 128, ADSR 2 and 4 target.</para></listitem>
- </itemizedlist>
- </para>
+<para><emphasis>kmod</emphasis> -- controller 2, modulator index 1. Value range of kv1 is 0-127.</para>
+<para><emphasis>kcross</emphasis> -- controller 4, crossfade of outputs. Value range of kv2 is 0-127.</para>
+<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
+<para><emphasis>klfodepth</emphasis> -- controller1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
+<para><emphasis>kadsr</emphasis> -- controller 128, ADSR 2 and 4 target. Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
@@ -57,13 +51,18 @@
The code for this opcode is taken directly from the Wurley class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
+ <para>
+ <emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
+ Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
+The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
+</para>
</note>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the STKWurley opcode. It uses the file <ulink url="examples/STKWurley.csd"><citetitle>STKWurley.csd</citetitle></ulink>, and <ulink url="examples/fwavblnk.aiff"><citetitle>fwavblnk.aiff</citetitle></ulink>.
+ Here is an example of the STKWurley opcode. It uses the file <ulink url="examples/STKWurley.csd"><citetitle>STKWurley.csd</citetitle></ulink>.
<example>
<title>Example of the STKWurley opcode.</title>
@@ -75,7 +74,7 @@
<refsect1>
<title>See Also</title>
<para>
- <link linkend="STKRhodey"><citetitle>STKRhodey</citetitle></link>,
+ <link linkend="STKRhodey"><citetitle>STKRhodey</citetitle></link>.
</para>
</refsect1>
@@ -92,5 +91,3 @@
</refsect1>
</refentry>
-
-
diff --git a/opcodes/active.xml b/opcodes/active.xml
index c0dc049..eae1f82 100644
--- a/opcodes/active.xml
+++ b/opcodes/active.xml
@@ -48,7 +48,16 @@
</para>
<para>
- <emphasis>active</emphasis> returns the number of active instances of instrument number <emphasis>insnum/kinsnum</emphasis> (or named instrument <emphasis>Sinsname</emphasis>). As of Csound 4.17 the output is updated at k-rate (if input arg is k-rate), to allow running count of instr instances.
+ <emphasis>active</emphasis> returns the number of active
+ instances of instrument number
+ <emphasis>insnum/kinsnum</emphasis> (or named instrument
+ <emphasis>Sinsname</emphasis>). As of Csound 4.17 the output is
+ updated at k-rate (if input arg is k-rate), to allow running
+ count of instr instances.
+ </para>
+ <para>
+ As of Csound 5.17 if the instrument number is given as zero then
+ all instruments are counted.
</para>
</refsect1>
@@ -56,12 +65,21 @@
<title>Examples</title>
<para>
- Here is a simple example of the active opcode. It uses the file <ulink url="examples/active.csd"><citetitle>active.csd</citetitle></ulink>.
+ Here is a simple example of the active opcode. It uses the file
+ <ulink
+ url="examples/active.csd"><citetitle>active.csd</citetitle></ulink>.
<example>
<title>Simple example of the active opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/active.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <para>
+ See the sections <link linkend="UsingRealTime"><citetitle>Real-time
+ Audio</citetitle></link> and <link
+ linkend="CommandFlags"><citetitle>Command Line
+ Flags</citetitle></link> for more information on using command
+ line flags.
+ </para>
+ <xi:include href="examples-xml/active.csd.xml"
+ xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
Its output should include lines like this:
@@ -108,5 +126,6 @@ instr 2: icount = 2.000
<para>Examples written by &namekevin;.</para>
<para>New in Csound version 3.57; named instruments added version 5.13</para>
<para>Option for all ever active new in 5.13</para>
+ <para>Count of all instruments new in 5.17</para>
</refsect1>
</refentry>
diff --git a/opcodes/adds.xml b/opcodes/adds.xml
index c542f52..baa24c9 100644
--- a/opcodes/adds.xml
+++ b/opcodes/adds.xml
@@ -1,106 +1,121 @@
-
-<refentry id="adds">
-<indexterm id="IndexPlus"><primary>&plus;</primary></indexterm>
- <refentryinfo><title>Mathematical Operations:Arithmetic and Logic Operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>&plus;</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>&plus;</refname>
-
- <refpurpose>
- Addition operator
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Arithmetic operators perform operations of change-sign (negate), don't-change-sign, logical AND logical OR, add, subtract, multiply and divide. Note that a value or an expression may fall between two of these operators, either of which could take it as its left or right argument, as in
- <literallayout>
-a + b * c.
- </literallayout>
- </para>
-
- <para>
- In such cases three rules apply:
- </para>
-
- <para>
- 1. &ast; and <emphasis>&sol;</emphasis> bind to their neighbors more strongly than &plus; and &minus;. Thus the above expression is taken as
- <literallayout>
-a + (b * c)
- </literallayout>
- with &ast; taking b and c and then &plus; taking a and b &ast; c.
- </para>
-
- <para>
- 2. <emphasis>&plus;</emphasis> and <emphasis>&minus;</emphasis> bind more strongly than &amp;&amp;, which in turn is stronger than &verbar;&verbar;:
- <literallayout>
-a &amp;&amp; b - c &verbar;&verbar; d
- </literallayout>
- is taken as
- <literallayout>
-(a &amp;&amp; (b - c)) &verbar;&verbar; d
- </literallayout>
- </para>
-
- <para>
- 3. When both operators bind equally strongly, the operations are done left to right:
- <literallayout>
-a - b - c
- </literallayout>
- is taken as
- <literallayout>
-(a - b) - c
- </literallayout>
- </para>
-
- <para>
- Parentheses may be used as above to force particular groupings.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>&plus;</command>a (no rate restriction)</synopsis>
- <synopsis>a <command>&plus;</command> b (no rate restriction)</synopsis>
-
- <para>
- where the arguments <emphasis>a</emphasis> and <emphasis>b</emphasis> may be further expressions.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the &plus; operator. It uses the file <ulink url="examples/adds.csd"><citetitle>adds.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the &plus; operator.</title>
-
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/adds.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="subtracts"><citetitle>-</citetitle></link>,
- <link linkend="opand"><citetitle>&amp;&amp;</citetitle></link>,
- <link linkend="opor"><citetitle>&verbar;&verbar;</citetitle></link>,
- <link linkend="multiplies"><citetitle>&ast;</citetitle></link>,
- <link linkend="divides"><citetitle>&sol;</citetitle></link>,
- <link linkend="raises"><citetitle>&circ;</citetitle></link>,
- <link linkend="modulus"><citetitle>&percnt;</citetitle></link>
- </para>
- </refsect1>
-
-</refentry>
+
+<refentry id="adds">
+<indexterm id="IndexPlus"><primary>&plus;</primary></indexterm>
+ <refentryinfo><title>Mathematical Operations:Arithmetic and Logic Operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>&plus;</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>&plus;</refname>
+
+ <refpurpose>
+ Addition operator
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Arithmetic operators perform operations of change-sign (negate), do-no-change-sign, logical AND logical OR, add, subtract, multiply and divide. Note that a value or an expression may fall between two of these operators, either of which could take it as its left or right argument, as in
+ <literallayout>
+a + b * c.
+ </literallayout>
+ </para>
+
+ <para>
+ In such cases three rules apply:
+ </para>
+
+ <para>
+ 1. &ast; and <emphasis>&sol;</emphasis> bind to their neighbors more strongly than &plus; and &minus;. Thus the above expression is taken as
+ <literallayout>
+a + (b * c)
+ </literallayout>
+ with &ast; taking b and c and then &plus; taking a and b &ast; c.
+ </para>
+
+ <para>
+ 2. <emphasis>&plus;</emphasis> and <emphasis>&minus;</emphasis>
+ bind more strongly than &amp;&amp;, which in turn is stronger
+ than &verbar;&verbar;:
+ <literallayout>
+a &amp;&amp; b - c &verbar;&verbar; d
+ </literallayout>
+ is taken as
+ <literallayout>
+(a &amp;&amp; (b - c)) &verbar;&verbar; d
+ </literallayout>
+ </para>
+
+ <para>
+ 3. When both operators bind equally strongly, the operations are done left to right:
+ <literallayout>
+a - b - c
+ </literallayout>
+ is taken as
+ <literallayout>
+(a - b) - c
+ </literallayout>
+ </para>
+
+ <para>
+ Parentheses may be used as above to force particular groupings.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>&plus;</command>a (no rate restriction)</synopsis>
+ <synopsis>a <command>&plus;</command> b (no rate restriction)</synopsis>
+
+ <para>
+ where the arguments <emphasis>a</emphasis> and <emphasis>b</emphasis> may be further expressions.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Arguments</title>
+ <para>
+ The arguments of &plus; can be scalar values or k-rate one
+ dimensional arrays (vectors), or any combination. If one of the
+ arguments is an array, so is the value.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the &plus; operator. It uses the file <ulink url="examples/adds.csd"><citetitle>adds.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the &plus; operator.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/adds.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="subtracts"><citetitle>-</citetitle></link>,
+ <link linkend="opand"><citetitle>&amp;&amp;</citetitle></link>,
+ <link linkend="opor"><citetitle>&verbar;&verbar;</citetitle></link>,
+ <link linkend="multiplies"><citetitle>&ast;</citetitle></link>,
+ <link linkend="divides"><citetitle>&sol;</citetitle></link>,
+ <link linkend="raises"><citetitle>&circ;</citetitle></link>,
+ <link linkend="modulus"><citetitle>&percnt;</citetitle></link>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Credits</title>
+ <para>Arithmetic on vectors is new in version 6.00</para>
+ </refsect1>
+
+</refentry>
diff --git a/opcodes/alpass.xml b/opcodes/alpass.xml
index f716b1a..ad6c84a 100644
--- a/opcodes/alpass.xml
+++ b/opcodes/alpass.xml
@@ -24,7 +24,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>alpass</command> asig, krvt, ilpt [, iskip] [, insmps]</synopsis>
+ <synopsis>ares <command>alpass</command> asig, xrvt, ilpt [, iskip] [, insmps]</synopsis>
</refsect1>
<refsect1>
@@ -45,11 +45,11 @@
<refsect1>
<title>Performance</title>
<para>
- <emphasis>krvt</emphasis> -- the reverberation time (defined as the time in seconds for a signal to decay to 1/1000, or 60dB down from its original amplitude).
+ <emphasis>xrvt</emphasis> -- the reverberation time (defined as the time in seconds for a signal to decay to 1/1000, or 60dB down from its original amplitude).
</para>
<para>
- This filter reiterates the input with an echo density determined by loop time <emphasis>ilpt</emphasis>. The attenuation rate is independent and is determined by <emphasis>krvt</emphasis>, the reverberation time (defined as the time in seconds for a signal to decay to 1/1000, or 60dB down from its original amplitude). Output will begin to appear immediately.
+ This filter reiterates the input with an echo density determined by loop time <emphasis>ilpt</emphasis>. The attenuation rate is independent and is determined by <emphasis>xrvt</emphasis>, the reverberation time (defined as the time in seconds for a signal to decay to 1/1000, or 60dB down from its original amplitude). Output will begin to appear immediately.
</para>
</refsect1>
@@ -81,13 +81,15 @@
<refsect1>
<title>Credits</title>
- <para>
- <simplelist>
- <member>Author: William <quote>Pete</quote> Moss (<emphasis>vcomb</emphasis> and <emphasis>valpass</emphasis>)</member>
- <member>University of Texas at Austin</member>
- <member>Austin, Texas USA</member>
- <member>January 2002</member>
- </simplelist>
- </para>
+ <!-- <para> -->
+ <!-- <simplelist> -->
+ <!-- <member>Author: William <quote>Pete</quote> Moss (<emphasis>vcomb</emphasis> and <emphasis>valpass</emphasis>)</member> -->
+ <!-- <member>University of Texas at Austin</member> -->
+ <!-- <member>Austin, Texas USA</member> -->
+ <!-- <member>January 2002</member> -->
+ <!-- </simplelist> -->
+ <!-- </para> -->
+ <para>Audio rate parameter introduced in version 6.02</para>
+ <para>November 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/areson.xml b/opcodes/areson.xml
index aead8e2..030b666 100644
--- a/opcodes/areson.xml
+++ b/opcodes/areson.xml
@@ -11,26 +11,41 @@
<refnamediv>
<refname>areson</refname>
<refpurpose>
- A notch filter whose transfer functions are the complements of the reson opcode.
- </refpurpose>
+ A notch filter whose transfer functions are the complements of
+ the reson opcode.
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- A notch filter whose transfer functions are the complements of the reson opcode.
+ A notch filter whose transfer functions are the complements of
+ the reson opcode.
</para>
</refsect1>
<refsect1>
<title>Syntax</title>
<synopsis>ares <command>areson</command> asig, kcf, kbw [, iscl] [, iskip]</synopsis>
+ <synopsis>ares <command>areson</command> asig, acf, kbw [, iscl] [, iskip]</synopsis>
+ <synopsis>ares <command>areson</command> asig, kcf, abw [, iscl] [, iskip]</synopsis>
+ <synopsis>ares <command>areson</command> asig, acf, abw [, iscl] [, iskip]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>iscl</emphasis> (optional, default=0) -- coded scaling factor for resonators. A value of 1 signifies a peak response factor of 1, i.e. all frequencies other than kcf are attenuated in accordance with the (normalized) response curve. A value of 2 raises the response factor so that its overall RMS value equals 1. (This intended equalization of input and output power assumes all frequencies are physically present; hence it is most applicable to white noise.) A zero value signifies no scaling of the signal, leaving that to some later adjustment (see <link linkend="balance"><citetitle>balance</citetitle></link>). The default value is 0.
+ <emphasis>iscl</emphasis> (optional, default=0) -- coded scaling
+ factor for resonators. A value of 1 signifies a peak response
+ factor of 1, i.e. all frequencies other than kcf/acf are attenuated
+ in accordance with the (normalized) response curve. A value of 2
+ raises the response factor so that its overall RMS value equals
+ 1. (This intended equalization of input and output power assumes
+ all frequencies are physically present; hence it is most
+ applicable to white noise.) A zero value signifies no scaling of
+ the signal, leaving that to some later adjustment (see <link
+ linkend="balance"><citetitle>balance</citetitle></link>). The
+ default value is 0.
</para>
<para>
@@ -49,19 +64,41 @@
</para>
<para>
- <emphasis>kcf</emphasis> -- the center frequency of the filter, or frequency position of the peak response.
+ <emphasis>kcf</emphasis>/<emphasis>acf</emphasis> -- the center
+ frequency of the filter, or frequency position of the peak
+ response.
</para>
<para>
- <emphasis>kbw</emphasis> -- bandwidth of the filter (the Hz difference between the upper and lower half-power points).
+ <emphasis>kbw</emphasis>/<emphasis>abw</emphasis> -- bandwidth
+ of the filter (the Hz difference between the upper and lower
+ half-power points).
</para>
<para>
- <emphasis>areson</emphasis> is a filter whose transfer functions is the complement of <link linkend="reson"><citetitle>reson</citetitle></link>. Thus <emphasis>areson</emphasis> is a notch filter whose transfer functions represents the <quote>filtered out</quote> aspects of their complements. However, power scaling is not normalized in <emphasis>areson</emphasis> but remains the true complement of the corresponding unit. Thus an audio signal, filtered by parallel matching <emphasis>reson</emphasis> and <emphasis>areson</emphasis> units, would under addition simply reconstruct the original spectrum.
+ <emphasis>areson</emphasis> is a filter whose transfer functions
+ is the complement of <link
+ linkend="reson"><citetitle>reson</citetitle></link>. Thus
+ <emphasis>areson</emphasis> is a notch filter whose transfer
+ functions represents the <quote>filtered out</quote> aspects of
+ their complements. However, power scaling is not normalized in
+ <emphasis>areson</emphasis> but remains the true complement of
+ the corresponding unit. Thus an audio signal, filtered by
+ parallel matching <emphasis>reson</emphasis> and
+ <emphasis>areson</emphasis> units, would under addition simply
+ reconstruct the original spectrum.
</para>
<para>
- This property is particularly useful for controlled mixing of different sources (see <link linkend="lpreson"><citetitle>lpreson</citetitle></link>). Complex response curves such as those with multiple peaks can be obtained by using a bank of suitable filters in series. (The resultant response is the product of the component responses.) In such cases, the combined attenuation may result in a serious loss of signal power, but this can be regained by the use of <link linkend="balance"><citetitle>balance</citetitle></link>.
+ This property is particularly useful for controlled mixing of
+ different sources (see <link
+ linkend="lpreson"><citetitle>lpreson</citetitle></link>). Complex
+ response curves such as those with multiple peaks can be
+ obtained by using a bank of suitable filters in series. (The
+ resultant response is the product of the component responses.)
+ In such cases, the combined attenuation may result in a serious
+ loss of signal power, but this can be regained by the use of
+ <link linkend="balance"><citetitle>balance</citetitle></link>.
</para>
</refsect1>
@@ -72,7 +109,6 @@
<example>
<title>Example of the areson opcode.</title>
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
@@ -95,4 +131,10 @@
<link linkend="tonek"><citetitle>tonek</citetitle></link>
</para>
</refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>October 2013.</para>
+ </refsect1>
</refentry>
diff --git a/opcodes/array.xml b/opcodes/array.xml
new file mode 100644
index 0000000..a614246
--- /dev/null
+++ b/opcodes/array.xml
@@ -0,0 +1,67 @@
+
+<refentry id="array">
+<indexterm id="IndexArray"><primary>array</primary></indexterm>
+
+ <refentryinfo><title>Table Control:Table Queries</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>array</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>array</refname>
+ <refpurpose>
+ Generate a vector with initial values.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generate a vector (one-dimensional k-rate array) with initial values.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>karray[] <command>array</command> ival1, ival2,.....ivaln</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ival1,...ivaln</emphasis> -- values to place in the vector.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the array opcode. It uses the file <ulink url="examples/array.csd"><citetitle>array.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the array opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/array.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vectorial"><citetitle></citetitle>Vectorial opcodes</link>
+ <link linkend="fillarray"><citetitle></citetitle>fillarray</link>
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Codemist Ltd</member>
+ <member>2013</member>
+ </simplelist>
+ </para>
+ <para>New in version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/assign.xml b/opcodes/assign.xml
index 827023b..4a29dd9 100644
--- a/opcodes/assign.xml
+++ b/opcodes/assign.xml
@@ -23,6 +23,7 @@
<synopsis>kres <command>=</command> karg</synopsis>
<synopsis>ires, ... <command>=</command> iarg, ...</synopsis>
<synopsis>kres, ... <command>=</command> karg, ...</synopsis>
+ <synopsis>table [ kval] <command>=</command> karg</synopsis>
</refsect1>
<refsect1>
@@ -43,6 +44,10 @@
number of inputs. If there are less the last value is repeated
as necessary.
</para>
+ <para>
+ From version 5.14 values can be assigned to elements of a vector
+ with the square bracket form.
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/atonex.xml b/opcodes/atonex.xml
index 7dffcfa..5405e1f 100644
--- a/opcodes/atonex.xml
+++ b/opcodes/atonex.xml
@@ -25,6 +25,7 @@
<refsect1>
<title>Syntax</title>
<synopsis>ares <command>atonex</command> asig, khp [, inumlayer] [, iskip]</synopsis>
+ <synopsis>ares <command>atonex</command> asig, ahp [, inumlayer] [, iskip]</synopsis>
</refsect1>
<refsect1>
@@ -45,7 +46,7 @@
</para>
<para>
- <emphasis>khp</emphasis> -- the response curve's half-power point. Half power is defined as peak power / root 2.
+ <emphasis>khp</emphasis>/<emphasis>ahp</emphasis> -- the response curve's half-power point. Half power is defined as peak power / root 2.
</para>
</refsect1>
@@ -80,7 +81,8 @@
<member>Italy</member>
</simplelist>
</para>
-
-<para>New in Csound version 3.49</para>
+ <para>New in Csound version 3.49</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>October 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/barmodel.xml b/opcodes/barmodel.xml
index b3ab441..d6ed290 100644
--- a/opcodes/barmodel.xml
+++ b/opcodes/barmodel.xml
@@ -1,121 +1,121 @@
-
-<refentry id="barmodel">
-<indexterm id="IndexBarmodel"><primary>barmodel</primary></indexterm>
- <refentryinfo><title>Signal Generators:Models and Emulations</title></refentryinfo>
- <refmeta>
- <refentrytitle>barmodel</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>barmodel</refname>
- <refpurpose>
- Creates a tone similar to a struck metal bar.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Audio output is a tone similar to a struck metal bar, using a
- physical model developed from solving the partial differential
- equation. There are controls over the boundary conditions as
- well as the bar characteristics.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>ares <command>barmodel</command> kbcL, kbcR, iK, ib, kscan, iT30, ipos, ivel, iwid</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>iK</emphasis> -- dimensionless stiffness parameter. If
- this parameter is negative then the initialisation is skipped and
- the previous state of the bar is continued.
- </para>
-
- <para>
- <emphasis>ib</emphasis> -- high-frequency loss parameter (keep this small).
- </para>
-
- <para>
- <emphasis>iT30</emphasis> -- 30 db decay time in seconds.
- </para>
-
- <para>
- <emphasis>ipos</emphasis> -- position along the bar that the strike occurs.
- </para>
-
- <para>
- <emphasis>ivel</emphasis> -- normalized strike velocity.
- </para>
-
- <para>
- <emphasis>iwid</emphasis> -- spatial width of strike.
- </para>
-
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- A note is played on a metalic bar, with the arguments as below.
- </para>
-
- <para>
- <emphasis>kbcL</emphasis> -- Boundary condition at left end of
- bar (1 is clamped, 2 pivoting and 3 free).
- </para>
-
- <para>
- <emphasis>kbcR</emphasis> -- Boundary condition at right end of
- bar (1 is clamped, 2 pivoting and 3 free).
- </para>
-
- <para>
- <emphasis>kscan</emphasis> -- Speed of scanning the output location.
- </para>
-
- <para>
- Note that changing the boundary conditions during playing may
- lead to glitches and is made available as an experiment. The use of
- a non-zero <emphasis>kscan</emphasis> can give apparent re-introduction of sound due to
- modulation.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the barmodel opcode. It uses the file <ulink url="examples/barmodel.csd"><citetitle>barmodel.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the barmodel opcode.</title>
-
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/barmodel.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: Stefan Bilbao </member>
- <member>University of Edinburgh, UK</member>
- <member>Author: &namejohn; </member>
- <member>University of Bath, Codemist Ltd.</member>
- <member>Bath, UK</member>
- </simplelist>
- </para>
-
- <para>New in Csound version 5.01</para>
- </refsect1>
-</refentry>
+
+<refentry id="barmodel">
+<indexterm id="IndexBarmodel"><primary>barmodel</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Models and Emulations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>barmodel</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>barmodel</refname>
+ <refpurpose>
+ Creates a tone similar to a struck metal bar.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Audio output is a tone similar to a struck metal bar, using a
+ physical model developed from solving the partial differential
+ equation. There are controls over the boundary conditions as
+ well as the bar characteristics.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>barmodel</command> kbcL, kbcR, iK, ib, kscan, iT30, ipos, ivel, iwid</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>iK</emphasis> -- dimensionless stiffness parameter. If
+ this parameter is negative then the initialisation is skipped and
+ the previous state of the bar is continued.
+ </para>
+
+ <para>
+ <emphasis>ib</emphasis> -- high-frequency loss parameter (keep this small).
+ </para>
+
+ <para>
+ <emphasis>iT30</emphasis> -- 30 db decay time in seconds.
+ </para>
+
+ <para>
+ <emphasis>ipos</emphasis> -- position along the bar that the strike occurs.
+ </para>
+
+ <para>
+ <emphasis>ivel</emphasis> -- normalized strike velocity.
+ </para>
+
+ <para>
+ <emphasis>iwid</emphasis> -- spatial width of strike.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ A note is played on a metalic bar, with the arguments as below.
+ </para>
+
+ <para>
+ <emphasis>kbcL</emphasis> -- Boundary condition at left end of
+ bar (1 is clamped, 2 pivoting and 3 free).
+ </para>
+
+ <para>
+ <emphasis>kbcR</emphasis> -- Boundary condition at right end of
+ bar (1 is clamped, 2 pivoting and 3 free).
+ </para>
+
+ <para>
+ <emphasis>kscan</emphasis> -- Speed of scanning the output location.
+ </para>
+
+ <para>
+ Note that changing the boundary conditions during playing may
+ lead to glitches and is made available as an experiment. The use of
+ a non-zero <emphasis>kscan</emphasis> can give apparent re-introduction of sound due to
+ modulation.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the barmodel opcode. It uses the file <ulink url="examples/barmodel.csd"><citetitle>barmodel.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the barmodel opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/barmodel.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Stefan Bilbao </member>
+ <member>University of Edinburgh, UK</member>
+ <member>Author: &namejohn; </member>
+ <member>University of Bath, Codemist Ltd.</member>
+ <member>Bath, UK</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.01</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/bformdec1.xml b/opcodes/bformdec1.xml
index fc88f31..89330ef 100644
--- a/opcodes/bformdec1.xml
+++ b/opcodes/bformdec1.xml
@@ -33,7 +33,9 @@
<synopsis>ao1, ao2, ao3, ao4, ao5 <command>bformdec1</command> isetup, aw, ax, ay, az [, ar, as, \
at, au, av [, abk, al, am, an, ao, ap, aq]]</synopsis>
<synopsis>ao1, ao2, ao3, ao4, ao5, ao6, ao7, ao8 <command>bformdec1</command> isetup, aw, ax, ay, az \
- [, ar, as, at, au, av [, abk, al, am, an, ao, ap, aq]]]</synopsis>
+ [, ar, as, at, au, av [, abk, al, am, an, ao, ap,
+ aq]]]</synopsis>
+ <synopsis>aout[] <command>bformdec1</command> isetup, abform[]</synopsis>
</refsect1>
<refsect1>
diff --git a/opcodes/bformenc1.xml b/opcodes/bformenc1.xml
index 103ee44..e141dce 100644
--- a/opcodes/bformenc1.xml
+++ b/opcodes/bformenc1.xml
@@ -26,6 +26,7 @@
<synopsis>aw, ax, ay, az, ar, as, at, au, av <command>bformenc1</command> asig, kalpha, kbeta</synopsis>
<synopsis>aw, ax, ay, az, ar, as, at, au, av, ak, al, am, an, ao, ap, aq <command>bformenc1</command> \
asig, kalpha, kbeta</synopsis>
+ <synopsis>aarray[] <command>bformenc1</command> asig, kalpha, kbeta</synopsis>
</refsect1>
<!-- <refsect1>
@@ -44,6 +45,11 @@
</para>
<para>
+ <emphasis>aarray</emphasis>
+ -- output array to hold cells of the B format.
+ </para>
+
+ <para>
<emphasis>asig</emphasis> -- input signal.
</para>
@@ -86,5 +92,7 @@
</simplelist>
</para>
<para>New in version 5.09</para>
+ <para>Array output new in version 6.01</para>
+
</refsect1>
</refentry>
diff --git a/opcodes/buthp.xml b/opcodes/buthp.xml
index 70f7b2d..fd9b605 100644
--- a/opcodes/buthp.xml
+++ b/opcodes/buthp.xml
@@ -6,13 +6,11 @@
<refentrytitle>buthp</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>buthp</refname>
<refpurpose>
Same as the butterhp opcode.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -25,5 +23,6 @@
<refsect1>
<title>Syntax</title>
<synopsis>ares <command>buthp</command> asig, kfreq [, iskip]</synopsis>
+ <synopsis>ares <command>buthp</command> asig, afreq [, iskip]</synopsis>
</refsect1>
</refentry>
diff --git a/opcodes/butlp.xml b/opcodes/butlp.xml
index 6e52b8b..6e3f825 100644
--- a/opcodes/butlp.xml
+++ b/opcodes/butlp.xml
@@ -25,5 +25,6 @@
<refsect1>
<title>Syntax</title>
<synopsis>ares <command>butlp</command> asig, kfreq [, iskip]</synopsis>
+ <synopsis>ares <command>butlp</command> asig, afreq [, iskip]</synopsis>
</refsect1>
</refentry>
diff --git a/opcodes/butterbp.xml b/opcodes/butterbp.xml
index d6b6f50..0386930 100644
--- a/opcodes/butterbp.xml
+++ b/opcodes/butterbp.xml
@@ -24,7 +24,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>butterbp</command> asig, kfreq, kband [, iskip]</synopsis>
+ <synopsis>ares <command>butterbp</command> asig, xfreq, xband [, iskip]</synopsis>
</refsect1>
<refsect1>
@@ -45,11 +45,11 @@
</para>
<para>
- <emphasis>kfreq</emphasis> -- Cutoff or center frequency for each of the filters.
+ <emphasis>xfreq</emphasis> -- Cutoff or center frequency for each of the filters.
</para>
<para>
- <emphasis>kband</emphasis> -- Bandwidth of the bandpass and bandreject filters.
+ <emphasis>xband</emphasis> -- Bandwidth of the bandpass and bandreject filters.
</para>
</refsect1>
@@ -84,5 +84,7 @@
</simplelist>
</para>
<para>Existed in 3.30</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>October 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/butterbr.xml b/opcodes/butterbr.xml
index 99896d1..992015e 100644
--- a/opcodes/butterbr.xml
+++ b/opcodes/butterbr.xml
@@ -24,7 +24,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>butterbr</command> asig, kfreq, kband [, iskip]</synopsis>
+ <synopsis>ares <command>butterbr</command> asig, xfreq, xband [, iskip]</synopsis>
</refsect1>
<refsect1>
@@ -45,11 +45,11 @@
</para>
<para>
- <emphasis>kfreq</emphasis> -- Cutoff or center frequency for each of the filters.
+ <emphasis>xfreq</emphasis> -- Cutoff or center frequency for each of the filters.
</para>
<para>
- <emphasis>kband</emphasis> -- Bandwidth of the bandpass and bandreject filters.
+ <emphasis>xband</emphasis> -- Bandwidth of the bandpass and bandreject filters.
</para>
</refsect1>
@@ -88,5 +88,7 @@
</simplelist>
</para>
<para>Existed in 3.30</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>October 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/butterhp.xml b/opcodes/butterhp.xml
index 065635f..021bac3 100644
--- a/opcodes/butterhp.xml
+++ b/opcodes/butterhp.xml
@@ -25,6 +25,7 @@
<refsect1>
<title>Syntax</title>
<synopsis>ares <command>butterhp</command> asig, kfreq [, iskip]</synopsis>
+ <synopsis>ares <command>butterhp</command> asig, afreq [, iskip]</synopsis>
</refsect1>
<refsect1>
@@ -45,7 +46,7 @@
</para>
<para>
- <emphasis>kfreq</emphasis> -- Cutoff or center frequency for each of the filters.
+ <emphasis>kfreq</emphasis>/<emphasis>afreq</emphasis> -- Cutoff or center frequency for each of the filters.
</para>
</refsect1>
@@ -84,5 +85,7 @@
</simplelist>
</para>
<para>Existed in 3.30</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>October 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/butterlp.xml b/opcodes/butterlp.xml
index a304e6b..5963622 100644
--- a/opcodes/butterlp.xml
+++ b/opcodes/butterlp.xml
@@ -12,7 +12,7 @@
<refname>butterlp</refname>
<refpurpose>
A low-pass Butterworth filter.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -25,6 +25,7 @@
<refsect1>
<title>Syntax</title>
<synopsis>ares <command>butterlp</command> asig, kfreq [, iskip]</synopsis>
+ <synopsis>ares <command>butterlp</command> asig, afreq [, iskip]</synopsis>
</refsect1>
<refsect1>
@@ -45,7 +46,7 @@
</para>
<para>
- <emphasis>kfreq</emphasis> -- Cutoff or center frequency for each of the filters.
+ <emphasis>kfreq</emphasis>/<emphasis>afreq</emphasis> -- Cutoff or center frequency for each of the filters.
</para>
</refsect1>
@@ -84,5 +85,7 @@
</simplelist>
</para>
<para>Existed in 3.30</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>October 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/cauchyi.xml b/opcodes/cauchyi.xml
new file mode 100644
index 0000000..6057503
--- /dev/null
+++ b/opcodes/cauchyi.xml
@@ -0,0 +1,97 @@
+
+<refentry id="cauchyi">
+<indexterm id="IndexCauchyiXClass"><primary>x-class noise generators</primary></indexterm>
+
+<indexterm id="IndexCauchyi"><primary>cauchyi</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Random (Noise) Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>cauchyi</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>cauchyi</refname>
+ <refpurpose>
+ Cauchy distribution random number generator with
+ interpolation.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Cauchy distribution random number generator with controlled
+ interpolation between values. This is an x-class noise
+ generator.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>cauchyi</command> klambda, xamp, xcps</synopsis>
+ <synopsis>ires <command>cauchyi</command> klambda, xamp, xcps</synopsis>
+ <synopsis>kres <command>cauchyi</command> klambda, xamp, xcps</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kalpha</emphasis> -- controls the spread from zero (big <emphasis>kalpha</emphasis> = big spread). Outputs both positive and negative numbers.
+ </para>
+
+ <para>
+ For more detailed explanation of these distributions, see:
+ <orderedlist>
+ <listitem>
+ <para>C. Dodge - T.A. Jerse 1985. Computer music. Schirmer books. pp.265 - 286</para>
+ </listitem>
+
+ <listitem>
+ <para>D. Lorrain. A panoply of stochastic cannons. In C. Roads, ed. 1989. Music machine . Cambridge, Massachusetts: MIT press, pp. 351 - 379.</para>
+ </listitem>
+ </orderedlist>
+ </para>
+
+ <para>
+ <emphasis>xamp</emphasis> -- range over which random numbers are distributed.
+ </para>
+
+ <para>
+ <emphasis>xcps</emphasis> -- the frequency which new random
+ numbers are generated.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the cauchyi opcode. It uses the file <ulink url="examples/cauchyi.csd"><citetitle>cauchyi.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the cauchyi opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/cauchyi.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="cauchy"><citetitle>cauchy</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Bath</member>
+ <member>May 2011</member>
+ <member>New in version 5.14</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/ceil.xml b/opcodes/ceil.xml
index 449f828..906738d 100644
--- a/opcodes/ceil.xml
+++ b/opcodes/ceil.xml
@@ -38,13 +38,11 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the ceil opcode. It uses the file <ulink url="examples/ceil.csd"><citetitle>ceil.csd</citetitle></ulink>.
+ Here is an example of the ceil opcode. It uses the file <ulink
+ url="examples/ceil.csd"><citetitle>ceil.csd</citetitle></ulink>.
<example>
<title>Example of the ceil opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/ceil.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
diff --git a/opcodes/cell.xml b/opcodes/cell.xml
new file mode 100644
index 0000000..1bcf9f2
--- /dev/null
+++ b/opcodes/cell.xml
@@ -0,0 +1,119 @@
+<refentry id="cell">
+<indexterm id="IndexCell"><primary>cell</primary></indexterm>
+ <refentryinfo><title>Vectorial:Cellular Automata</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>cell</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>cell</refname>
+
+ <refpurpose>
+ Cellular Automaton
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ One-Dimensional Cellular Automaton. This opcode is the
+ modified version of <emphasis>vcella</emphasis> by Gabriel Maldonado.
+ </para>
+ </refsect1>
+
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>cell</command> ktrig, kreinit, ioutFunc, initStateFunc, iRuleFunc, ielements</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ioutFunc</emphasis> -- number of the table where the state of each cell is stored.
+ </para>
+
+ <para>
+ <emphasis>initStateFunc</emphasis> -- number of the table
+ containing the inital states of cells.
+ </para>
+
+ <para>
+ <emphasis>iRuleFunc</emphasis> -- number of a lookup table
+ containing the 8-bit rule.
+ </para>
+
+ <para>
+ <emphasis>ielements</emphasis> -- total number of cells in a row.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>ktri</emphasis> -- trigger signal. Each time it is
+ non-zero, a new generation of cells is evaluated.
+ </para>
+
+ <para>
+ <emphasis>kreinit</emphasis> -- reset signal. Each time it is
+ non-zero, state of all cells is forced to be that of
+ initStateFunc.
+ </para>
+
+ <para>
+ <emphasis>cell</emphasis> models a classical 1D cellular
+ automaton and stores the state of each cell in the table
+ identified by <emphasis>ioutFunc</emphasis>.
+ </para>
+ <para>
+ <emphasis>initStateFunc</emphasis> is an input vector containing
+ the inital value of the row of cells, while
+ <emphasis>iRuleFunc</emphasis> is an input vector containing the
+ chosen rule in the binary form (least significant bit first).
+ </para>
+ <para>
+ A new generation of cells is evaluated each time
+ <emphasis>ktrig</emphasis> contains a non-zero value. Also the
+ status of all cells can be forced to assume the status
+ corresponding to the contents of
+ <emphasis>initStateFunc</emphasis> each time
+ <emphasis>kreinit</emphasis> contains a non-zero value.
+ </para>
+ <para>
+ Note that each cell is supposed to be in one of two possible
+ states (1 = "alive", 0 = "dead"), although fractional values
+ should work too, because truncation is used.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is a simple example of the cell opcode. It uses the file
+ <ulink
+ url="examples/cell.csd"><citetitle>cell.csd</citetitle></ulink>.
+ <example>
+ <title>A simple example of the cell opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/cell.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Gleb Rogozinsky</member>
+ <member>October 2011</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.16.6</para>
+ </refsect1>
+</refentry>
+
diff --git a/opcodes/centroid.xml b/opcodes/centroid.xml
new file mode 100644
index 0000000..2e606e8
--- /dev/null
+++ b/opcodes/centroid.xml
@@ -0,0 +1,74 @@
+
+<refentry id="centroid">
+<indexterm id="IndexCentroid"><primary>centroid</primary></indexterm>
+ <refentryinfo><title>Spectral Processing:Other</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>centroid</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>centroid</refname>
+ <refpurpose>
+ Calculate the spectral centroid of a signal.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Calculate the spectral centroid of an audio signal on a given trigger.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>kcent <command>centroid</command> asig, ktrig, ifftsize</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <emphasis>ifftsize</emphasis> -- fftsize. Non pow-of-two values are converted to the next pow-of-two not smaller than ifftsize.
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kcent</emphasis> -- the spectral centroid in Hz
+ </para>
+ <para>
+ <emphasis>asig</emphasis> -- an input audio signal
+ </para>
+ <para>
+ <emphasis>ktrig</emphasis> -- 1 to calculate a new centroid, 0 to skip the process (and output previous value).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the centroid opcode. It uses the file <ulink url="examples/centroid.csd"><citetitle>centroid.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the centroid opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/centroid.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="pvscent"><citetitle>pvscent</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: V Lazzarini;</member>
+ <member>August 2012</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/chn.xml b/opcodes/chn.xml
index 16e7355..089a2bc 100644
--- a/opcodes/chn.xml
+++ b/opcodes/chn.xml
@@ -1,4 +1,4 @@
-
+
<refentry id="chn">
<indexterm id="Indexchn"><primary>chn</primary></indexterm>
<refentryinfo><title>Signal I/O:Software Bus</title></refentryinfo>
@@ -28,7 +28,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis> <command>chn_k</command> Sname, imode[, itype, idflt, imin, imax]</synopsis>
+ <synopsis> <command>chn_k</command> Sname, imode[, itype, idflt, imin, ima, ix, iy, iwidth, iheight, Sattributes]</synopsis>
<synopsis> <command>chn_a</command> Sname, imode</synopsis>
<synopsis> <command>chn_S</command> Sname, imode</synopsis>
</refsect1>
@@ -83,6 +83,21 @@
Must be greater than <emphasis>imin</emphasis>. In the case of exponential
scale, it should also match the sign of <emphasis>imin</emphasis>.
</para>
+ <para>
+ <emphasis>ix</emphasis> -- suggested x position for controller.
+ </para>
+ <para>
+ <emphasis>iy</emphasis> -- suggested y position for controller.
+ </para>
+ <para>
+ <emphasis>iwidth</emphasis> -- suggested width position for controller.
+ </para>
+ <para>
+ <emphasis>iheight</emphasis> -- suggested height position for controller.
+ </para>
+ <para>
+ <emphasis>Sattributes</emphasis> -- attributes for controller.
+ </para>
</refsect1>
diff --git a/opcodes/chnclear.xml b/opcodes/chnclear.xml
index b7e8c4d..c37a966 100644
--- a/opcodes/chnclear.xml
+++ b/opcodes/chnclear.xml
@@ -34,7 +34,18 @@
named channel of the software bus to clear.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the chnclear opcode. It uses the file <ulink url="examples/chnclear.csd"><citetitle>chnclear.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the chnclear opcode.</title>
+ <xi:include href="examples-xml/chnclear.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/chnget.xml b/opcodes/chnget.xml
index 5c4bb52..d53ec29 100644
--- a/opcodes/chnget.xml
+++ b/opcodes/chnget.xml
@@ -75,9 +75,15 @@
<emphasis role="opc">out</emphasis> a2
<emphasis role="oblock">endin</emphasis>
</programlisting>
- </informalexample>
-
- </refsect1>
+ </informalexample>
+ <para>
+ Here is another example of the chnget opcode. It uses the file <ulink url="examples/chnget.csd"><citetitle>chnget.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the chnget opcode.</title>
+ <xi:include href="examples-xml/chnget.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>Credits</title>
diff --git a/opcodes/chnmix.xml b/opcodes/chnmix.xml
index 6e7a262..3b55f89 100644
--- a/opcodes/chnmix.xml
+++ b/opcodes/chnmix.xml
@@ -43,7 +43,18 @@
time.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the chnmix opcode. It uses the file <ulink url="examples/chnmix.csd"><citetitle>chnmix.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the chnmix opcode.</title>
+ <xi:include href="examples-xml/chnmix.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/chnrecv.xml b/opcodes/chnrecv.xml
index 159a57e..5057389 100644
--- a/opcodes/chnrecv.xml
+++ b/opcodes/chnrecv.xml
@@ -19,6 +19,11 @@
Receives data from a channel of the inward named software bus.
Implies declaring the channel with imode=1 (see also chn_k, chn_a,
and chn_S).
+ Note that
+ chnsend/chnrecv (which in Csound6 work identically to invalue/outvalue)
+ are usually used for the callback-based communication between Csound and
+ an external host. Use the chnset/chnget opcodes for sending and receiving
+ data inside Csound.
</para>
</refsect1>
diff --git a/opcodes/chnsend.xml b/opcodes/chnsend.xml
index fea00a9..d7f5bed 100644
--- a/opcodes/chnsend.xml
+++ b/opcodes/chnsend.xml
@@ -17,7 +17,11 @@
<title>Description</title>
<para>
Send to a channel of the named software bus. Implies declaring the
- channel with imode=2 (see also chn_k, chn_a, and chn_S).
+ channel with imode=2 (see also chn_k, chn_a, and chn_S). Note that
+ chnsend/chnrecv (which in Csound6 work identically to invalue/outvalue)
+ are usually used for the callback-based communication between Csound and
+ an external host. Use the chnset/chnget opcodes for sending and receiving
+ data inside Csound.
</para>
</refsect1>
diff --git a/opcodes/chnset.xml b/opcodes/chnset.xml
index 624532d..4f8d840 100644
--- a/opcodes/chnset.xml
+++ b/opcodes/chnset.xml
@@ -77,7 +77,13 @@
<emphasis role="oblock">endin</emphasis>
</programlisting>
</informalexample>
-
+ <para>
+ Here is another example of the chnset opcode. It uses the file <ulink url="examples/chnset.csd"><citetitle>chnset.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the chnset opcode.</title>
+ <xi:include href="examples-xml/chnset.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/comb.xml b/opcodes/comb.xml
index 178338d..ce5d80e 100644
--- a/opcodes/comb.xml
+++ b/opcodes/comb.xml
@@ -30,7 +30,20 @@
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ilpt</emphasis> -- loop time in seconds, which determines the <quote>echo density</quote> of the reverberation. This in turn characterizes the <quote>color</quote> of the <emphasis>comb</emphasis> filter whose frequency response curve will contain <emphasis>ilpt</emphasis> * <emphasis>sr</emphasis>/2 peaks spaced evenly between 0 and <emphasis>sr</emphasis>/2 (the Nyquist frequency). Loop time can be as large as available memory will permit. The space required for an <emphasis>n</emphasis> second loop is 4<emphasis>n</emphasis>*<emphasis>sr</emphasis> bytes. Delay space is allocated and returned as in <link linkend="delay"><citetitle>delay</citetitle></link>.
+ <emphasis>ilpt</emphasis> -- loop time in seconds, which
+ determines the <quote>echo density</quote> of the
+ reverberation. This in turn characterizes the
+ <quote>color</quote> of the <emphasis>comb</emphasis> filter
+ whose frequency response curve will contain
+ <emphasis>ilpt</emphasis> * <emphasis>sr</emphasis>/2 peaks
+ spaced evenly between 0 and <emphasis>sr</emphasis>/2 (the
+ Nyquist frequency). Loop time can be as large as available
+ memory will permit. The space required for an
+ <emphasis>n</emphasis> second loop is
+ <emphasis>n</emphasis>*<emphasis>sr</emphasis> floating or
+ double numbers (usually 4 or 8 bytes). Delay space is allocated
+ and returned as in <link
+ linkend="delay"><citetitle>delay</citetitle></link>.
</para>
<para>
@@ -83,10 +96,7 @@
<title>Credits</title>
<para>
<simplelist>
- <member>Author: William <quote>Pete</quote> Moss (<emphasis>vcomb</emphasis> and <emphasis>valpass</emphasis>)</member>
- <member>University of Texas at Austin</member>
- <member>Austin, Texas USA</member>
- <member>January 2002</member>
+ <member>&namebarry;</member>
</simplelist>
</para>
</refsect1>
diff --git a/opcodes/combinv.xml b/opcodes/combinv.xml
new file mode 100644
index 0000000..682a734
--- /dev/null
+++ b/opcodes/combinv.xml
@@ -0,0 +1,110 @@
+
+<refentry id="combinv">
+<indexterm id="IndexCombinv"><primary>combinv</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Reverberation</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>combinv</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>combinv</refname>
+ <refpurpose>
+ Reverberates an input signal with a <quote>colored</quote> frequency response.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Reverberates an input signal with a <quote>colored</quote>
+ frequency response with a FIR filter.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>combinv</command> asig, krvt, ilpt [, iskip] [, insmps]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ilpt</emphasis> -- loop time in seconds, which
+ determines the <quote>echo density</quote> of the
+ reverberation. This in turn characterizes the
+ <quote>color</quote> of the <emphasis>combinv</emphasis> filter
+ whose frequency response curve will contain
+ <emphasis>ilpt</emphasis> * <emphasis>sr</emphasis>/2 peaks
+ spaced evenly between 0 and <emphasis>sr</emphasis>/2 (the
+ Nyquist frequency). Loop time can be as large as available
+ memory will permit. The space required for an
+ <emphasis>n</emphasis> second loop is
+ <emphasis>n</emphasis>*<emphasis>sr</emphasis> floating or
+ double numbers (usually 4 or 8 bytes). Delay space is allocated
+ and returned as in <link
+ linkend="delay"><citetitle>delay</citetitle></link>.
+ </para>
+
+ <para>
+ <emphasis>iskip</emphasis> (optional, default=0) -- initial disposition of delay-loop data space (cf. <link linkend="reson"><citetitle>reson</citetitle></link>). The default value is 0.
+ </para>
+
+ <para>
+ <emphasis>insmps</emphasis> (optional, default=0) -- delay amount, as a number of samples.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>krvt</emphasis> -- the reverberation time (defined as the time in seconds for a signal to decay to 1/1000, or 60dB down from its original amplitude).
+ </para>
+
+ <para>
+ This filter reiterates input with an echo density determined by
+ loop time <emphasis>ilpt</emphasis>. The attenuation rate is
+ independent and is determined by <emphasis>krvt</emphasis>, the
+ reverberation time (defined as the time in seconds for a signal
+ to decay to 1/1000, or 60dB down from its original amplitude). Affect from a combinv filter will appear only after <emphasis>ilpt</emphasis> seconds.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the combinv opcode. It uses the file <ulink url="examples/combinv.csd"><citetitle>combinv.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the combinv opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/combinv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="alpass"><citetitle>alpass</citetitle></link>,
+ <link linkend="comb"><citetitle>comb</citetitle></link>
+ <link linkend="reverb"><citetitle>reverb</citetitle></link>,
+ <link linkend="valpass"><citetitle>valpass</citetitle></link>,
+ <link linkend="vcomb"><citetitle>vcomb</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>October 2012</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/compileorc.xml b/opcodes/compileorc.xml
new file mode 100644
index 0000000..0a65206
--- /dev/null
+++ b/opcodes/compileorc.xml
@@ -0,0 +1,69 @@
+
+<refentry id="compileorc">
+<indexterm id="Indexcompileorc"><primary>compileorc</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Compilation</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>compileorc</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>compileorc</refname>
+ <refpurpose>
+ compiles a new orchestra from an ASCII file
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Compileorc will compile one or more instruments at init time, which will be added to the running engine. In case of
+existing instrument numbers or names, these will be replaced, but any instance still running of the old instrument
+definition will still perform until it terminates.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ires <command>compileorc</command> Sfilename</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis><quote>Sfilename</quote></emphasis> -- a string containing the name of the file containing the orchestra.
+</para>
+ <para>
+ <emphasis><quote>ires</quote></emphasis> -- returns 0 if compilation was successful, or -1 if not.
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the compileorc opcode. It uses the file <ulink url="examples/compileorc.csd"><citetitle>compileorc.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the compileorc opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/compileorc.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>See also</title>
+ <para>
+ <link linkend="event"><citetitle>event</citetitle></link>,
+ <link linkend="event_i"><citetitle>event_i</citetitle></link>,
+ <link linkend="schedule"><citetitle>schedule</citetitle></link>,
+ <link linkend="schedwhen"><citetitle>schedwhen</citetitle></link>,
+ <link linkend="schedkwhen"><citetitle>schedkwhen</citetitle></link>,
+ <link linkend="schedkwhennamed"><citetitle>schedkwhennamed</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namevictor;, 2013 </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/compilestr.xml b/opcodes/compilestr.xml
new file mode 100644
index 0000000..c7bf5e0
--- /dev/null
+++ b/opcodes/compilestr.xml
@@ -0,0 +1,70 @@
+
+<refentry id="compilestr">
+<indexterm id="Indexcompilestr"><primary>compilestr</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Compilation</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>compilestr</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>compilestr</refname>
+ <refpurpose>
+ compiles a new orchestra passed in as an ASCII string
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Compilestr will compile one or more instruments at init time, which will be added to the running engine. In case of
+existing instrument numbers or names, these will be replaced, but any instance still running of the old instrument
+definition will still perform until it terminates. Only new instances will use the new definition.
+Multi-line strings are accepted, using {{ }} to enclose the string.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ires <command>compilestr</command> Sorch</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis><quote>Sorch</quote></emphasis> -- a string (in double-quotes or enclosed by {{ }}) containing one or more instruments.
+</para>
+ <para>
+ <emphasis><quote>ires</quote></emphasis> -- returns 0 if compilation was successful, or -1 if not.
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the compilestr opcode. It uses the file <ulink url="examples/compilestr.csd"><citetitle>compilestr.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the compilestr opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/compilestr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>See also</title>
+ <para>
+ <link linkend="event"><citetitle>event</citetitle></link>,
+ <link linkend="event_i"><citetitle>event_i</citetitle></link>,
+ <link linkend="schedule"><citetitle>schedule</citetitle></link>,
+ <link linkend="schedwhen"><citetitle>schedwhen</citetitle></link>,
+ <link linkend="schedkwhen"><citetitle>schedkwhen</citetitle></link>,
+ <link linkend="schedkwhennamed"><citetitle>schedkwhennamed</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namevictor;, 2013 </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/copya2ftab.xml b/opcodes/copya2ftab.xml
new file mode 100644
index 0000000..a5e0bb9
--- /dev/null
+++ b/opcodes/copya2ftab.xml
@@ -0,0 +1,74 @@
+
+<refentry id="copya2ftab">
+<indexterm id="IndexCopya2ftab"><primary>copya2ftab</primary></indexterm>
+ <refentryinfo><title>Array Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>copya2ftab</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>copya2ftab</refname>
+
+ <refpurpose>
+ Copy data from a vector to an f-table.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ The <emphasis>copya2ftab</emphasis> opcode takes a t-var and
+ copies the contents to an f-table.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>copya2ftab</command> tab, kftbl</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>tab</emphasis> -- tables for source.
+ </para>
+ <para>
+ <emphasis>kftbl</emphasis> -- f-tables for destination.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Example</title>
+ <para>
+ Here is an example of the copya2ftab opcode. It uses the file
+ <ulink url="examples/copya2ftab.csd"><citetitle>copya2ftab.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the copya2ftab opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/copya2ftab.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="copyf2array"><citetitle>copyf2array</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>October 2011</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.15</para>
+ <para>Renamed in Csound version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/copyf2array.xml b/opcodes/copyf2array.xml
new file mode 100644
index 0000000..4c34452
--- /dev/null
+++ b/opcodes/copyf2array.xml
@@ -0,0 +1,73 @@
+
+<refentry id="copyf2array">
+<indexterm id="IndexCopyf2array"><primary>copyf2array</primary></indexterm>
+ <refentryinfo><title>Array Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>copyf2array</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>copyf2array</refname>
+
+ <refpurpose>
+ Copy data from an f-table to a vector.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ The <emphasis>copyf2array</emphasis> opcode takes an f-table and
+ copies the contents to a t-var.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>copyf2array</command> tab, kftbl</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>tab</emphasis> -- tables for destination.
+ </para>
+ <para>
+ <emphasis>kftbl</emphasis> -- f-tables for source.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Example</title>
+ <para>
+ Here is an example of the copyf2array opcode. It uses the file
+ <ulink url="examples/copyf2array.csd"><citetitle>copyf2array.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the copyf2array opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/copyf2array.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="copya2ftab"><citetitle>copya2ftab</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>October 2011</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.15</para>
+ <para>Renamed in Csound version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/cosseg.xml b/opcodes/cosseg.xml
new file mode 100644
index 0000000..4679784
--- /dev/null
+++ b/opcodes/cosseg.xml
@@ -0,0 +1,110 @@
+
+<refentry id="cosseg">
+<indexterm id="IndexCosseg"><primary>cosseg</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>cosseg</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>cosseg</refname>
+ <refpurpose>
+ Trace a series of line segments between specified points with
+ cosine interpolation.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Trace a series of line segments between specified points with
+ cosine interpolation.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>cosseg</command> ia, idur1, ib [, idur2] [, ic] [...]</synopsis>
+
+ <synopsis>kres <command>cosseg</command> ia, idur1, ib [, idur2] [, ic] [...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ia</emphasis> -- starting value.
+ </para>
+
+ <para>
+ <emphasis>ib, ic</emphasis>, etc. -- value after
+ <emphasis>dur1</emphasis> seconds, etc.
+ </para>
+
+ <para>
+ <emphasis>idur1</emphasis> -- duration in seconds of first
+ segment. A zero or negative value will cause all initialization
+ to be skipped.
+ </para>
+
+ <para>
+ <emphasis>idur2, idur3</emphasis>, etc. -- duration in seconds
+ of subsequent segments. A zero or negative value will terminate
+ the initialization process with the preceding point, permitting
+ the last-defined line or curve to be continued indefinitely in
+ performance. The default is zero.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ These units generate control or audio signals whose values can
+ pass through 2 or more specified points. The sum of
+ <emphasis>dur</emphasis> values may or may not equal the
+ instrument's performance time: a shorter performance will
+ truncate the specified pattern, while a longer one will cause
+ the last value to be repeated until the end of the note.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the cosseg opcode. It uses the file <ulink url="examples/cosseg.csd"><citetitle>cosseg.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the cosseg opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/cosseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="expon"><citetitle>expon</citetitle></link>,
+ <link linkend="expseg"><citetitle>expseg</citetitle></link>,
+ <link linkend="expsegb"><citetitle>expsegb</citetitle></link>,
+ <link linkend="expsegr"><citetitle>expsegr</citetitle></link>,
+ <link linkend="line"><citetitle>line</citetitle></link>,
+ <link linkend="linseg"><citetitle>linseg</citetitle></link>,
+ <link linkend="linsegr"><citetitle>linsegr</citetitle></link>
+ <link linkend="transeg"><citetitle>transeg</citetitle></link>
+ <link linkend="transegb"><citetitle>transegb</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Aug 2012 </member>
+ </simplelist>
+ </para>
+ <para> New in version 5.18</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/cossegb.xml b/opcodes/cossegb.xml
new file mode 100644
index 0000000..5ffbe9c
--- /dev/null
+++ b/opcodes/cossegb.xml
@@ -0,0 +1,102 @@
+
+<refentry id="cossegb">
+<indexterm id="IndexCossegb"><primary>cossegb</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>cossegb</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>cossegb</refname>
+ <refpurpose>
+ Trace a series of line segments between specified absolute points with
+ cosine interpolation.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Trace a series of line segments between specified absolute points with
+ cosine interpolation.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>cossegb</command> ia, itim1, ib [, itim2] [, ic] [...]</synopsis>
+
+ <synopsis>kres <command>cossegb</command> ia, itim1, ib [, itim2] [, ic] [...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ia</emphasis> -- starting value.
+ </para>
+
+ <para>
+ <emphasis>ib, ic</emphasis>, etc. -- value at <emphasis>tim1</emphasis> seconds, etc.
+ </para>
+
+ <para>
+ <emphasis>itim1</emphasis> -- time in seconds of end of first
+ segment. A zero or negative value will cause all initialization
+ to be skipped.
+ </para>
+
+ <para>
+ <emphasis>itim2, itim3</emphasis>, etc. -- time in seconds at
+ the end of subsequent segments.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ These units generate control or audio signals whose values can pass through 2 or more specified points. The last <emphasis>tim</emphasis> value may or may not equal the instrument's performance time: a shorter performance will truncate the specified pattern, while a longer one will cause the last value to be repeated until the end of the note.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the cossegb opcode. It uses the file <ulink url="examples/cossegb.csd"><citetitle>cossegb.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the cossegb opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/cossegb.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="cosseg"><citetitle>cosseg</citetitle></link>,
+ <link linkend="expon"><citetitle>expon</citetitle></link>,
+ <link linkend="expseg"><citetitle>expseg</citetitle></link>,
+ <link linkend="expsegr"><citetitle>expsegr</citetitle></link>,
+ <link linkend="line"><citetitle>line</citetitle></link>,
+ <link linkend="linseg"><citetitle>linseg</citetitle></link>
+ <link linkend="linsegb"><citetitle>linsegb</citetitle></link>
+ <link linkend="linsegr"><citetitle>linsegr</citetitle></link>
+ <link linkend="transeg"><citetitle>transeg</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Aug 2012 </member>
+ </simplelist>
+ </para>
+ <para>New in version 5.18</para>
+
+ </refsect1>
+</refentry>
diff --git a/opcodes/cossegr.xml b/opcodes/cossegr.xml
new file mode 100644
index 0000000..962f5c1
--- /dev/null
+++ b/opcodes/cossegr.xml
@@ -0,0 +1,110 @@
+
+<refentry id="cossegr">
+<indexterm id="IndexCossegr"><primary>cossegr</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>cossegr</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>cossegr</refname>
+ <refpurpose>
+ Trace a series of line segments between specified points with
+ cosine interpolation, including a release segment.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Trace a series of line segments between specified points with
+ cosine interpolation, including a release segment.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>cossegr</command> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis>
+
+ <synopsis>kres <command>cossegr</command> ia, idur1, ib [, idur2] [, ic] [...], irel, iz</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ia</emphasis> -- starting value.
+ </para>
+
+ <para>
+ <emphasis>ib, ic</emphasis>, etc. -- value after <emphasis>dur1</emphasis> seconds, etc.
+ </para>
+
+ <para>
+ <emphasis>idur1</emphasis> -- duration in seconds of first segment. A zero or negative value will cause all initialization to be skipped.
+ </para>
+
+ <para>
+ <emphasis>idur2, idur3</emphasis>, etc. -- duration in seconds of subsequent segments. A zero or negative value will terminate the initialization process with the preceding point, permitting the last-defined line or curve to be continued indefinitely in performance. The default is zero.
+ </para>
+
+ <para>
+ <emphasis>irel, iz</emphasis> -- duration in seconds and final value of a note releasing segment.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ These units generate control or audio signals whose values can pass through 2 or more specified points. The sum of <emphasis>dur</emphasis> values may or may not equal the instrument's performance time: a shorter performance will truncate the specified pattern, while a longer one will cause the last-defined segment to continue on in the same direction.
+ </para>
+
+ <para>
+ <emphasis>cossegr</emphasis> is amongst the Csound <quote>r</quote> units that contain a note-off sensor and release time extender. When each senses an event termination or MIDI noteoff, it immediately extends the performance time of the current instrument by <emphasis>irel </emphasis>seconds, and sets out to reach the value <emphasis>iz</emphasis> by the end of that period (no matter which segment the unit is in). <quote>r</quote> units can also be modified by MIDI noteoff velocities. For two or more extenders in an instrument, extension is by the greatest period.
+ </para>
+ <para>
+ You can use other pre-made envelopes which start a release segment upon recieving a note off message, like <link linkend="linenr"><citetitle>linenr</citetitle></link> and <link linkend="expsegr"><citetitle>expsegr</citetitle></link>, or you can construct more complex envelopes using <link linkend="xtratim"><citetitle>xtratim</citetitle></link> and <link linkend="release"><citetitle>release</citetitle></link>. Note that you don't need to use <link linkend="xtratim"><citetitle>xtratim</citetitle></link> if you are using <emphasis>cossegr</emphasis>, since the time is extended automatically.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the cossegr opcode. It uses the file <ulink url="examples/cossegr.csd"><citetitle>cossegr.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the cossegr opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/cossegr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="linenr"><citetitle>linenr</citetitle></link>,
+ <link linkend="linsegr"><citetitle>linsegr</citetitle></link>,
+ <link linkend="expsegr"><citetitle>expsegr</citetitle></link>,
+ <link linkend="envlpxr"><citetitle>envlpxr</citetitle></link>,
+ <link linkend="mxadsr"><citetitle>mxadsr</citetitle></link>,
+ <link linkend="madsr"><citetitle>madsr</citetitle></link>
+ <link linkend="expon"><citetitle>expon</citetitle></link>,
+ <link linkend="expseg"><citetitle>expseg</citetitle></link>,
+ <link linkend="expsega"><citetitle>expsega</citetitle></link>
+ <link linkend="line"><citetitle>line</citetitle></link>,
+ <link linkend="linseg"><citetitle>linseg</citetitle></link>,
+ <link linkend="xtratim"><citetitle>xtratim</citetitle></link>,
+ <link linkend="transegr"><citetitle>transegr</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namejohn;</para>
+ <para>August 2012.</para>
+ <para>New in Csound 5.18</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/cpumeter.xml b/opcodes/cpumeter.xml
new file mode 100644
index 0000000..16479d9
--- /dev/null
+++ b/opcodes/cpumeter.xml
@@ -0,0 +1,81 @@
+
+<refentry id="cpumeter">
+<indexterm id="IndexCpumeter"><primary>cpumeter</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Realtime Performance Control</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>cpumeter</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>cpumeter</refname>
+ <refpurpose>
+ Reports the usage of cpu either total or per core.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Reports the usage of cpu either total or per core to monitor how
+ close to max-out the processing is.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ktot[,kcpu1, kcpu2,...]<command>cpumeter</command> ifreq</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifreq</emphasis> is the time in seconds that the meter
+ is refreshed. If this is too low then mainly figures of zero or one
+ hundred occur. A value of 0.1 seems acceptable.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>cpumeter</emphasis> reads the total idle time in the
+ last <emphasis>ifreq</emphasis> seconds and reports it as a percentage usage. If
+ more than just <emphasis>ktot</emphasis> results are requested these report the same value for
+ individual cores.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the cpumeter opcode. It uses the file <ulink url="examples/cpumeter.csd"><citetitle>cpumeter.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the cpumeter opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/cpumeter.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="maxalloc"><citetitle>maxalloc</citetitle></link>, <link linkend="prealloc"><citetitle>prealloc</citetitle></link>,
+ <link linkend="cpuprc"><citetitle>cpuprc</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>May 2011</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 5.14, for Linux/Unix and OSX only</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/crossfm.xml b/opcodes/crossfm.xml
index bc6d82a..bc6d82a 100755..100644
--- a/opcodes/crossfm.xml
+++ b/opcodes/crossfm.xml
diff --git a/opcodes/ctrl7.xml b/opcodes/ctrl7.xml
index b8d225f..e9cd15f 100644
--- a/opcodes/ctrl7.xml
+++ b/opcodes/ctrl7.xml
@@ -96,6 +96,12 @@
</example>
</para>
</refsect1>
+
+ <note>
+ ctrl7 only outputs k values once the controller is first moved. To
+ set an initial k-value, a call to initc7 is required. Ctrlinit does not work
+ for this purpose.
+ </note>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/cuserrnd.xml b/opcodes/cuserrnd.xml
index f6ca8d2..847e029 100644
--- a/opcodes/cuserrnd.xml
+++ b/opcodes/cuserrnd.xml
@@ -76,6 +76,46 @@
</para>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the cuserrnd opcode. It uses the file <ulink url="examples/cuserrnd.csd"><citetitle>cuserrnd.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the cuserrnd opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/cuserrnd.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+ i 1 time 0.00067: 53.14918
+ i 1 time 0.20067: 0.00000
+ i 1 time 0.40067: 0.00000
+ i 1 time 0.60067: 96.80406
+ i 1 time 0.80067: 94.20729
+ i 1 time 1.00000: 0.00000
+ i 1 time 1.20067: 86.13032
+ i 1 time 1.40067: 31.37096
+ i 1 time 1.60067: 70.35889
+ i 1 time 1.80000: 0.00000
+ i 1 time 2.00000: 49.18914
+
+WARNING: Seeding from current time 2006647442
+
+ i 2 time 3.00067: 21.45002
+ i 2 time 3.20067: 44.32333
+ i 2 time 3.40067: 46.05420
+ i 2 time 3.60000: 0.00000
+ i 2 time 3.80067: 41.32175
+ i 2 time 4.00000: 0.00000
+ i 2 time 4.20000: 63.72019
+ i 2 time 4.40067: 0.00000
+ i 2 time 4.60067: 0.00000
+ i 2 time 4.80067: 0.00000
+ i 2 time 5.00000: 74.49330
+ </screen>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/date.xml b/opcodes/date.xml
index 1e1933a..df714c6 100644
--- a/opcodes/date.xml
+++ b/opcodes/date.xml
@@ -12,15 +12,16 @@
<refname>date</refname>
<refpurpose>
- Returns the number seconds since 1 January 1970.
+ Returns the number seconds since a base date.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- Returns the number seconds since 1 January 1970, using the
- operating system's clock.
+ Returns the number seconds since a base date, using the
+ operating system's clock. The base is 1 January 1970 for Csound
+ using doubles, and 1 January 2010 for versions using floats.
</para>
</refsect1>
@@ -38,6 +39,13 @@
in seconds since the start of the epoch.
</para>
</refsect1>
+ <refsect1>
+ <para>
+ Note that the base date was originally 1970 but since verson
+ 5.14 it has been changed as single precission floating point
+ numbers are insufficient to indicate changes.
+ </para>
+ </refsect1>
<refsect1>
<title>Examples</title>
@@ -79,5 +87,6 @@ Thu Jan 1 01:00:01 1970
</para>
<para>New in Csound version 5.05</para>
+ <para>Changed in Csound version 5.14</para>
</refsect1>
</refentry>
diff --git a/opcodes/diskin.xml b/opcodes/diskin.xml
index f93d775..420e6a3 100644
--- a/opcodes/diskin.xml
+++ b/opcodes/diskin.xml
@@ -22,8 +22,13 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ar1 [, ar2 [, ar3 [, ... ar24]]] <command>diskin</command> ifilcod, kpitch [, iskiptim] \
+ <synopsis>ar1 [, ar2 [, ar3 [, ... arN]]] <command>diskin</command> ifilcod, kpitch [, iskiptim] \
[, iwraparound] [, iformat] [, iskipinit]</synopsis>
+<para> Note the N was 24 in versions before 5.14, and 40 after.</para>
+
+<synopsis>ar1[] <command>diskin2</command> ifilcod, kpitch[, iskiptim \
+ [, iwrap[, iformat [, iwsize[, ibufsize[, iskipinit]]]]]]</synopsis>
+<para> (in this version, the number of output channels is not limited.)</para>
</refsect1>
<refsect1>
@@ -96,8 +101,24 @@
<refsect1>
<title>Performance</title>
- <note><simpara><emphasis>diskin</emphasis> is deprecated since it can crash easily under certain circumstances. Use <link linkend="diskin2"><citetitle>diskin2</citetitle></link> instead.</simpara></note>
- <para>
+ <para>
+ <emphasis>a1 ... a24</emphasis>
+ -- output signals, in the range -0dbfs to 0dbfs. Any samples
+ before the beginning (i.e. negative location) and after the end of
+ the file are assumed to be zero, unless <emphasis>iwrap</emphasis> is non-zero.
+ The number of output arguments must be the same as the number of sound
+ file channels - which can be determined with the
+ <link linkend="filenchnls"><citetitle>filenchnls</citetitle></link> opcode,
+ otherwise an init error will occur.
+</para>
+
+ <para>
+ <emphasis>ar1[]</emphasis>
+ --- output signals, in a-rate array of size N, where N is the number of
+ channels in the file. Arrays are automatically allocated to the correct
+ size.
+ </para>
+<para>
<emphasis>kpitch</emphasis> -- can be any real number. A negative number signifies backwards playback. The given number is a pitch ratio, where:
<itemizedlist>
<listitem><para><emphasis>1</emphasis> = normal pitch</para></listitem>
@@ -110,10 +131,7 @@
</itemizedlist>
</para>
- <para>
- <emphasis>diskin</emphasis> is identical to <link linkend="soundin"><citetitle>soundin</citetitle></link> except that it can alter the pitch of the sound that is being read, and is capable of looping.
- </para>
-
+
<caution>
<title>Note to Windows users</title>
<para>
diff --git a/opcodes/diskin2.xml b/opcodes/diskin2.xml
index ba6b19b..a93e8c5 100644
--- a/opcodes/diskin2.xml
+++ b/opcodes/diskin2.xml
@@ -18,12 +18,13 @@
<refsect1>
<title>Description</title>
<para>
- Reads audio data from a file, and can alter its pitch using one of several
- available interpolation types, as well as convert the sample rate to match
- the orchestra sr setting. <emphasis>diskin2</emphasis> can also read multichannel files with any
- number of channels in the range 1 to 24.
- <emphasis>diskin2</emphasis> allows more control and higher sound quality than <emphasis>diskin</emphasis>,
- but there is also the disadvantage of higher CPU usage.
+ Reads audio data from a file, and can alter its pitch using
+ one of several available interpolation types, as well as
+ convert the sample rate to match the orchestra sr
+ setting. <emphasis>diskin2</emphasis> can also read
+ multichannel files with any number of channels in the range 1
+ to 24 in versions before 5.14, and 40 after.
+
</para>
@@ -31,9 +32,14 @@
<refsect1>
<title>Syntax</title>
- <synopsis>a1[, a2[, ... a24]] <command>diskin2</command> ifilcod, kpitch[, iskiptim \
+ <synopsis>a1[, a2[, ... aN]] <command>diskin2</command> ifilcod, kpitch[, iskiptim \
[, iwrap[, iformat [, iwsize[, ibufsize[, iskipinit]]]]]]</synopsis>
+ <synopsis>ar1[] <command>diskin2</command> ifilcod, kpitch[, iskiptim \
+ [, iwrap[, iformat [, iwsize[, ibufsize[, iskipinit]]]]]]</synopsis>
+
+<para> (in the array output version, the number of output channels does not have an upper limit.)</para>
+
</refsect1>
<refsect1>
@@ -49,7 +55,7 @@
environment variable <link linkend="CommandEnvironment"><citetitle>SSDIR</citetitle></link> (if defined) then by <link linkend="CommandEnvironment"><citetitle>SFDIR</citetitle></link>. See also
<link linkend="GEN01"><citetitle>GEN01</citetitle></link>.
Note: files longer than 2<superscript>31</superscript>-1 sample frames may not be played correctly
- on 32 bit platforms; this means a maximum length about 3 hours with a
+ on 32-bit platforms; this means a maximum length about 3 hours with a
sample rate of 192000 Hz.
</para>
@@ -208,7 +214,14 @@
file channels - which can be determined with the
<link linkend="filenchnls"><citetitle>filenchnls</citetitle></link> opcode,
otherwise an init error will occur.
+</para>
+ <para>
+ <emphasis>ar1[]</emphasis>
+ --- output signals, in a-rate array of size N, where N is the number of
+ channels in the file. Arrays are automatically allocated to the correct
+ size.
+ </para>
<note>
<title>Note</title>
<para>It is more efficient to read a single file with many channels,
@@ -217,7 +230,7 @@
</para>
</note>
- </para>
+
<para>
<emphasis>kpitch</emphasis>
diff --git a/opcodes/divides.xml b/opcodes/divides.xml
index faba997..69cb129 100644
--- a/opcodes/divides.xml
+++ b/opcodes/divides.xml
@@ -74,22 +74,28 @@ a - b - c
</refsect1>
<refsect1>
+ <title>Arguments</title>
+ <para>
+ The arguments of &sol; can be scalar values or k-rate one
+ dimensional arrays (vectors), or any combination. If one of the
+ arguments is an array, so is the value.
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Examples</title>
<para>
Here is an example of the &sol; operator. It uses the file <ulink url="examples/divides.csd"><citetitle>divides.csd</citetitle></ulink>.
-
<example>
<title>Example of the &sol; operator.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/divides.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include lines like this:
+ Its output should include lines like these:
<screen>
-instr 1: i1 = 3.000</screen>
+retrigger rate per note duration = 3.333333
+retrigger rate per note duration = 5.000000
+retrigger rate per note duration = 0.666667</screen>
</para>
</refsect1>
@@ -108,6 +114,7 @@ instr 1: i1 = 3.000</screen>
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
+ <para>Arithmetic on vectors is new in version 6.00</para>
</refsect1>
+
</refentry>
diff --git a/opcodes/divz.xml b/opcodes/divz.xml
index 7f8f740..df9a635 100644
--- a/opcodes/divz.xml
+++ b/opcodes/divz.xml
@@ -21,6 +21,7 @@
<synopsis>ares <command>divz</command> xa, xb, ksubst</synopsis>
<synopsis>ires <command>divz</command> ia, ib, isubst</synopsis>
<synopsis>kres <command>divz</command> ka, kb, ksubst</synopsis>
+ <synopsis>...<command>divz</command>(ka, kb, ksubst)... (no rate restriction)</synopsis>
</refsect1>
<refsect1>
@@ -72,5 +73,6 @@
<title>Credits</title>
<para>Author: &namejohn; after an idea by &namebarry;</para>
<para>Example written by &namekevin;.</para>
+ <para>Functional form available in csound Version 6.00</para>
</refsect1>
</refentry>
diff --git a/opcodes/dssiaudio.xml b/opcodes/dssiaudio.xml
index 9f44b43..7236141 100644
--- a/opcodes/dssiaudio.xml
+++ b/opcodes/dssiaudio.xml
@@ -12,7 +12,7 @@
</refnamediv>
<refsect1>
<title>Syntax</title>
- <synopsis>aout1 [, aout2, aout3, aout4] <command>dssiaudio</command> ihandle, ain1 [,ain2, ain3, ain4] </synopsis>
+ <synopsis>[aout1, aout2, ..., aout9] <command>dssiaudio</command> ihandle, [ain1, ain2, ..., ain9]</synopsis>
</refsect1>
<refsect1>
<title>Description</title>
diff --git a/opcodes/dumpk.xml b/opcodes/dumpk.xml
index b4d3c94..40537df 100644
--- a/opcodes/dumpk.xml
+++ b/opcodes/dumpk.xml
@@ -79,6 +79,7 @@
This opcode allows a generated control signal value to be saved in a named external file. The file contains no self-defining header information. But it contains a regularly sampled time series, suitable for later input or analysis. There may be any number of <emphasis>dumpk</emphasis> opcodes in an instrument or orchestra but each must write to a different file.
</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
@@ -89,6 +90,30 @@
<xi:include href="examples-xml/dumpk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
+ <para>
+ Here is another example of the dumpk opcode. It uses the file <ulink url="examples/dumpk-2.csd"><citetitle>dumpk-2.csd</citetitle></ulink>.
+ <example>
+ <title>Example 2 of the dumpk opcode.</title>
+ <xi:include href="examples-xml/dumpk-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like this:
+ <screen>
+WARNING: Seeding from current time 683384022
+
+ i 1 time 1.00033: 463.64510
+ i 1 time 2.00000: 463.64510
+ i 1 time 3.00000: 483.14200
+ i 1 time 4.00000: 567.55973
+ i 1 time 5.00000: 576.37060
+ i 1 time 6.00000: 460.66550
+
+ i 2 time 6.00033: 463.64510
+ i 2 time 7.00000: 463.64510
+ i 2 time 8.00000: 483.14200
+ i 2 time 9.00000: 567.55970
+ i 2 time 10.00000: 576.37060
+ i 2 time 11.00000: 460.66550</screen>
+ </para>
</refsect1>
<!-- <refsect1>
<title>Examples</title>
diff --git a/opcodes/dumpk2.xml b/opcodes/dumpk2.xml
index 7c0113b..0695be4 100644
--- a/opcodes/dumpk2.xml
+++ b/opcodes/dumpk2.xml
@@ -80,18 +80,36 @@
</para>
</refsect1>
- <refsect1>
+<refsect1>
<title>Examples</title>
<para>
- See the example for <link linkend="dumpk"><citetitle>dumpk</citetitle></link>. The only difference between <link linkend="dumpk"><citetitle>dumpk</citetitle></link> and <emphasis>dumpk2</emphasis> is that <emphasis>dumpk2</emphasis> can write two values at a time from the file.
-<!-- <informalexample>
- <programlisting>
-knum <emphasis>=</emphasis> knum+1 ; at each k-period
-ktemp <emphasis>tempest</emphasis> krms, .02, .1, 3, 2, 800, .005, 0, 60, 4, .1, .995 ;estimate the tempo
-koct <emphasis>specptrk</emphasis> wsig, 6, .9, 0 ;and the pitch
- <emphasis>dumpk3</emphasis> knum, ktemp, cpsoct(koct), &quot;what happened when&quot;, 8 0 ;&amp; save them
- </programlisting>
- </informalexample>-->
+ Here is an example of the dumpk2 opcode. It uses the file <ulink url="examples/dumpk2.csd"><citetitle>dumpk2.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the dumpk2 opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/dumpk2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ The output should include lines like these:
+ <screen>
+kfreq = 429.202551, kdb = -20.495694
+kfreq = 429.202551, kdb = -20.495694
+kfreq = 407.275258, kdb = -23.123776
+kfreq = 475.264472, kdb = -9.300846
+kfreq = 569.979181, kdb = -7.315527
+kfreq = 440.103457, kdb = -0.058331
+
+kfreq = 429.202600, kdb = -20.495700
+kfreq = 429.202600, kdb = -20.495700
+kfreq = 407.275300, kdb = -23.123800
+kfreq = 475.264500, kdb = -9.300800
+kfreq = 569.979200, kdb = -7.315500
+kfreq = 440.103500, kdb = -0.058300
+ </screen>
</para>
</refsect1>
diff --git a/opcodes/dumpk3.xml b/opcodes/dumpk3.xml
index f6e9557..8849a35 100644
--- a/opcodes/dumpk3.xml
+++ b/opcodes/dumpk3.xml
@@ -80,18 +80,38 @@
</para>
</refsect1>
- <refsect1>
+<refsect1>
<title>Examples</title>
<para>
- See the example for <link linkend="dumpk"><citetitle>dumpk</citetitle></link>. The only difference between <link linkend="dumpk"><citetitle>dumpk</citetitle></link> and <emphasis>dumpk3</emphasis> is that <emphasis>dumpk3</emphasis> can write three values at a time from the file.
-<!-- <informalexample>
- <programlisting>
-knum <emphasis>=</emphasis> knum+1 ; at each k-period
-ktemp <emphasis>tempest</emphasis> krms, .02, .1, 3, 2, 800, .005, 0, 60, 4, .1, .995 ;estimate the tempo
-koct <emphasis>specptrk</emphasis> wsig, 6, .9, 0 ;and the pitch
- <emphasis>dumpk3</emphasis> knum, ktemp, cpsoct(koct), &quot;what happened when&quot;, 8 0 ;&amp; save them
- </programlisting>
- </informalexample>-->
+ Here is an example of the dumpk3 opcode. It uses the file <ulink url="examples/dumpk3.csd"><citetitle>dumpk3.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the dumpk3 opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/dumpk3.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ The output should include lines like these:
+ <screen>
+WRITING:
+kfreq = 473.352855, kdb = -15.197657, kpan = 0.366764
+kfreq = 473.352855, kdb = -15.197657, kpan = 0.366764
+kfreq = 441.426368, kdb = -19.026206, kpan = 0.207327
+kfreq = 452.965140, kdb = -21.447486, kpan = 0.553270
+kfreq = 585.106328, kdb = -11.903852, kpan = 0.815665
+kfreq = 482.056760, kdb = -4.046744, kpan = 0.876537
+
+READING:
+kfreq = 473.352900, kdb = -15.197700, kpan = 0.366800
+kfreq = 473.352900, kdb = -15.197700, kpan = 0.366800
+kfreq = 441.426400, kdb = -19.026200, kpan = 0.207300
+kfreq = 452.965100, kdb = -21.447500, kpan = 0.553300
+kfreq = 585.106300, kdb = -11.903900, kpan = 0.815700
+kfreq = 482.056800, kdb = -4.046700, kpan = 0.876500
+ </screen>
</para>
</refsect1>
diff --git a/opcodes/dumpk4.xml b/opcodes/dumpk4.xml
index ceb6900..f7fabaa 100644
--- a/opcodes/dumpk4.xml
+++ b/opcodes/dumpk4.xml
@@ -80,18 +80,40 @@
</para>
</refsect1>
- <refsect1>
+<refsect1>
<title>Examples</title>
<para>
- See the example for <link linkend="dumpk"><citetitle>dumpk</citetitle></link>. The only difference between <link linkend="dumpk"><citetitle>dumpk</citetitle></link> and <emphasis>dumpk4</emphasis> is that <emphasis>dumpk4</emphasis> can write four values at a time from the file.
-<!-- <informalexample>
- <programlisting>
-knum <emphasis>=</emphasis> knum+1 ; at each k-period
-ktemp <emphasis>tempest</emphasis> krms, .02, .1, 3, 2, 800, .005, 0, 60, 4, .1, .995 ;estimate the tempo
-koct <emphasis>specptrk</emphasis> wsig, 6, .9, 0 ;and the pitch
- <emphasis>dumpk3</emphasis> knum, ktemp, cpsoct(koct), &quot;what happened when&quot;, 8 0 ;&amp; save them
- </programlisting>
- </informalexample>-->
+ Here is an example of the dumpk4 opcode. It uses the file <ulink url="examples/dumpk4.csd"><citetitle>dumpk4.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the dumpk4 opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/dumpk4.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ The output should include lines like these:
+ <screen>
+WRITING:
+kcf = 1122.469723, kq = 11.762839, kdb = -14.313445, kpan = 0.538142
+kcf = 1122.469723, kq = 11.762839, kdb = -14.313445, kpan = 0.538142
+kcf = 1148.638412, kq = 12.040490, kdb = -14.061868, kpan = 0.552205
+kcf = 165.796855, kq = 18.523179, kdb = -15.816977, kpan = 0.901528
+kcf = 147.729960, kq = 13.071911, kdb = -11.924531, kpan = 0.982518
+kcf = 497.430113, kq = 13.605512, kdb = -21.586611, kpan = 0.179229
+
+READING:
+WARNING: Seeding from current time 3308160476
+
+kcf = 1122.469700, kq = 11.762800, kdb = -14.313400, kpan = 0.538100
+kcf = 1122.469700, kq = 11.762800, kdb = -14.313400, kpan = 0.538100
+kcf = 1148.638400, kq = 12.040500, kdb = -14.061900, kpan = 0.552200
+kcf = 165.796900, kq = 18.523200, kdb = -15.817000, kpan = 0.901500
+kcf = 147.730000, kq = 13.071900, kdb = -11.924500, kpan = 0.982500
+kcf = 497.430100, kq = 13.605500, kdb = -21.586600, kpan = 0.179200
+ </screen>
</para>
</refsect1>
diff --git a/opcodes/duserrnd.xml b/opcodes/duserrnd.xml
index d6e05e0..20f9c50 100644
--- a/opcodes/duserrnd.xml
+++ b/opcodes/duserrnd.xml
@@ -69,6 +69,30 @@
</para>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the duserrnd opcode. It uses the file <ulink url="examples/duserrnd.csd"><citetitle>duserrnd.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the duserrnd opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/duserrnd.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+i 1 time 0.00067: 8.00000
+i 1 time 0.00133: 8.00000
+i 1 time 0.00200: 8.00000
+i 1 time 0.00267: 8.00000
+i 1 time 0.00333: 2.00000
+i 1 time 0.00400: 8.00000
+i 1 time 0.00533: 8.00000
+i 1 time 0.00600: 8.00000
+..........
+ </screen>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/dust.xml b/opcodes/dust.xml
new file mode 100644
index 0000000..954905d
--- /dev/null
+++ b/opcodes/dust.xml
@@ -0,0 +1,73 @@
+<refentry id="dust">
+ <indexterm id="IndexDust"><primary>dust</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Random (Noise) Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>dust</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>dust</refname>
+ <refpurpose>
+ Random impulses.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generates random impulses from 0 to 1.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>dust</command> kamp, kdensity</synopsis>
+ <synopsis>kres <command>dust</command> kamp, kdensity</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kamp</emphasis> -- amplitude.
+ </para>
+
+ <para>
+ <emphasis>kdensity</emphasis> -- average number of impulses per second.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the dust opcode. It uses the file <ulink url="examples/dust.csd"><citetitle>dust.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the dust opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/dust.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="dust2"><citetitle>dust2</citetitle></link>
+ <link linkend="gausstrig"><citetitle>gausstrig</citetitle></link>
+ <link linkend="mpulse"><citetitle>mpulse</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Based on James McCartney's Dust ugen (SuperCollider)</member>
+ <member>Author: &nametito;</member>
+ <member>January 2012</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 5.16</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/dust2.xml b/opcodes/dust2.xml
new file mode 100644
index 0000000..2c52ecc
--- /dev/null
+++ b/opcodes/dust2.xml
@@ -0,0 +1,73 @@
+<refentry id="dust2">
+ <indexterm id="IndexDust2"><primary>dust2</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Random (Noise) Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>dust2</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>dust2</refname>
+ <refpurpose>
+ Random impulses.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generates random impulses from -1 to 1.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>dust2</command> kamp, kdensity</synopsis>
+ <synopsis>kres <command>dust2</command> kamp, kdensity</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kamp</emphasis> -- amplitude.
+ </para>
+
+ <para>
+ <emphasis>kdensity</emphasis> -- average number of impulses per second.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the dust2 opcode. It uses the file <ulink url="examples/dust2.csd"><citetitle>dust2.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the dust2 opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/dust2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="dust"><citetitle>dust</citetitle></link>
+ <link linkend="gausstrig"><citetitle>gausstrig</citetitle></link>
+ <link linkend="mpulse"><citetitle>mpulse</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Based on James McCartney's Dust2 (SuperCollider)</member>
+ <member>Author: &nametito;</member>
+ <member>January 2012</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 5.16</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/equals.xml b/opcodes/equals.xml
index 96729d1..84d9798 100644
--- a/opcodes/equals.xml
+++ b/opcodes/equals.xml
@@ -61,21 +61,11 @@
<title>Examples</title>
<para>
Here is an example of the == operator. It uses the file <ulink url="examples/equals.csd"><citetitle>equals.csd</citetitle></ulink>.
-
<example>
<title>Example of the == operator.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/equals.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include lines like this:
- <screen>
-k1 = 2.000000, k2 = 0.000000
-k1 = 3.000000, k2 = 1.000000
-k1 = 4.000000, k2 = 0.000000</screen>
</para>
</refsect1>
@@ -89,9 +79,5 @@ k1 = 4.000000, k2 = 0.000000</screen>
<link linkend="notequal"><citetitle>!=</citetitle></link>
</para>
</refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
+s
</refentry>
diff --git a/opcodes/evalstr.xml b/opcodes/evalstr.xml
new file mode 100644
index 0000000..f72a6c9
--- /dev/null
+++ b/opcodes/evalstr.xml
@@ -0,0 +1,64 @@
+
+<refentry id="evalstr">
+<indexterm id="Indexevalstr"><primary>evalstr</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Compilation</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>evalstr</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>evalstr</refname>
+ <refpurpose>
+ Evalstrs evaluates a string containing Csound code, returning a value.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Evalstr compiles and runs Csound code and returns a value from the global space (instr 0). This opcode can be
+also used to compile new instruments (as compilestr).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ires <command>evalstr</command> Scode </synopsis>
+ <synopsis>kres <command>evalstr</command> Scode, ktrig </synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis><quote>Scode</quote></emphasis> -- a string to be compiled and evaluated.
+</para>
+
+ </refsect1>
+<refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis><quote>ktrig</quote></emphasis> -- triggers the compilation/evaluation if non-zero.
+ </para>
+
+ </refsect1>
+
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the evalstr opcode in conjunction with return:
+ <example>
+ <para>
+<programlisting>
+ival <emphasis role="op">evalstr</emphasis> "return 2 + 2"
+<emphasis role="op">print</emphasis> ival
+ </programlisting>
+ </para>
+ </example>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namevictor;, 2013 </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/event.xml b/opcodes/event.xml
index ab4f0af..ba79958 100644
--- a/opcodes/event.xml
+++ b/opcodes/event.xml
@@ -55,7 +55,7 @@
<emphasis>kp4, kp5, ...</emphasis> (optional) -- Parameters representing additional p-field in a score statement. It starts with the fourth p-field, p4.
</para>
<note>
- <para> Note that the <emphasis>event_i</emphasis> opcode can't accept string p-fields. If you need to pass strings when instantiating an instrument, use the <link linkend="scoreline"><citetitle>scoreline</citetitle></link> or <link linkend="scoreline_i"><citetitle>scoreline_i</citetitle></link> opcode.</para>
+ <para> Note that the <emphasis>event</emphasis> opcode cannot accept string p-fields. If you need to pass strings when instantiating an instrument, use the <link linkend="scoreline"><citetitle>scoreline</citetitle></link> or <link linkend="scoreline_i"><citetitle>scoreline_i</citetitle></link> opcode.</para>
</note>
</refsect1>
diff --git a/opcodes/event_i.xml b/opcodes/event_i.xml
index facdb37..0fe033a 100644
--- a/opcodes/event_i.xml
+++ b/opcodes/event_i.xml
@@ -56,10 +56,22 @@
<title>Performance</title>
<para> The event is added to the queue at initialisation time.</para>
<note>
- <para> Note that the <emphasis>event_i</emphasis> opcode can't accept string p-fields. If you need to pass strings when instantiating an instrument, use the <link linkend="scoreline"><citetitle>scoreline</citetitle></link> or <link linkend="scoreline_i"><citetitle>scoreline_i</citetitle></link> opcode.</para>
+ <para> Note that the <emphasis>event_i</emphasis> opcode cannot accept string p-fields. If you need to pass strings when instantiating an instrument, use the <link linkend="scoreline"><citetitle>scoreline</citetitle></link> or <link linkend="scoreline_i"><citetitle>scoreline_i</citetitle></link> opcode.</para>
</note>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the event_i opcode. It uses the file <ulink url="examples/event_i.csd"><citetitle>event_i.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the event_i opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/event_i.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See also</title>
<para><link linkend="event"><citetitle>event</citetitle></link>,
diff --git a/opcodes/exitnow.xml b/opcodes/exitnow.xml
index 4a5ea80..b671eba 100644
--- a/opcodes/exitnow.xml
+++ b/opcodes/exitnow.xml
@@ -25,11 +25,24 @@
<title>Syntax</title>
<synopsis><command>exitnow</command></synopsis>
</refsect1>
-
+
<refsect1>
<title>Performance</title>
<para>
Stops Csound on the initialisation cycle.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the exitnow opcode. It uses the file <ulink url="examples/exitnow.csd"><citetitle>exitnow.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the exitnow opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/exitnow.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
</refentry>
diff --git a/opcodes/exprandi.xml b/opcodes/exprandi.xml
new file mode 100644
index 0000000..d49afbf
--- /dev/null
+++ b/opcodes/exprandi.xml
@@ -0,0 +1,100 @@
+
+<refentry id="exprandi">
+<indexterm id="IndexExprandiXClass"><primary>x-class noise generators</primary></indexterm>
+
+<indexterm id="IndexExprandi"><primary>exprandi</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Random (Noise) Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>exprandi</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>exprandi</refname>
+ <refpurpose>
+ Exponential distribution random number generator with
+ interpolation (positive values only).
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Exponential distribution random number generator with controlled
+ interpolation between values (positive values only). This is an
+ x-class noise generator.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>exprandi</command> klambda, xamp, xcps</synopsis>
+ <synopsis>ires <command>exprandi</command> klambda, xamp, xcps</synopsis>
+ <synopsis>kres <command>exprandi</command> klambda, xamp, xcps</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>klambda</emphasis> -- lambda parameter for the exponential distribution.
+ </para>
+
+ <para>
+ The probablity density function of an exponential distribution is an exponential curve, whose mean is 0.69515/lambda.
+ For more detailed explanation of these distributions, see:
+ <orderedlist>
+ <listitem>
+ <para>C. Dodge - T.A. Jerse 1985. Computer music. Schirmer books. pp.265 - 286</para>
+ </listitem>
+
+ <listitem>
+ <para>D. Lorrain. A panoply of stochastic cannons. In
+ C. Roads, ed. 1989. Music machine . Cambridge,
+ Massachusetts: MIT press, pp. 351 - 379.</para>
+ </listitem>
+ </orderedlist>
+ </para>
+
+ <para>
+ <emphasis>xamp</emphasis> -- range over which random numbers are distributed.
+ </para>
+
+ <para>
+ <emphasis>xcps</emphasis> -- the frequency which new random
+ numbers are generated.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the exprandi opcode. It uses the file <ulink url="examples/exprandi.csd"><citetitle>exprandi.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the exprandi opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/exprandi.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="exprand"><citetitle>exprand</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Bath</member>
+ <member>May 2011</member>
+ <member>New in version 5.14</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/expsegb.xml b/opcodes/expsegb.xml
new file mode 100644
index 0000000..6a09575
--- /dev/null
+++ b/opcodes/expsegb.xml
@@ -0,0 +1,105 @@
+
+<refentry id="expsegb">
+<indexterm id="IndexExpsegb"><primary>expsegb</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>expsegb</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>expsegb</refname>
+ <refpurpose>
+ Trace a series of exponential segments between specified
+ absolute points.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Trace a series of exponential segments between specified
+ absolute points.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>expsegb</command> ia, itim1, ib [, itim2] [, ic] [...]</synopsis>
+
+ <synopsis>kres <command>expsegb</command> ia, itim1, ib [, itim2] [, ic] [...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ia</emphasis> -- starting value. Zero is illegal for exponentials.
+ </para>
+
+ <para>
+ <emphasis>ib, ic</emphasis>, etc. -- value at <emphasis>tim1</emphasis> seconds, etc. For exponentials, must be non-zero and must agree in sign with <emphasis>ia</emphasis>.
+ </para>
+
+ <para>
+ <emphasis>itim1</emphasis> -- time in seconds of end of first segment.
+ </para>
+
+ <para>
+ <emphasis>itim2, itim3</emphasis>, etc. -- time in seconds of
+ subsequent ends of segments.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ These units generate control or audio signals whose values can pass through 2 or more specified points. The last <emphasis>tim</emphasis> value may or may not equal the instrument's performance time: a shorter performance will truncate the specified pattern, while a longer one will cause the last-defined segment to continue on in the same direction.
+ </para>
+
+ <para>
+ Note that the <emphasis>expsegb</emphasis> opcode does not operate correctly at audio rate when segments are shorter than a k-period. Try the <link linkend="expsegba"><citetitle>expsegba</citetitle></link> opcode instead.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the expsegb opcode. It uses the file <ulink url="examples/expsegb.csd"><citetitle>expsegb.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the expsegb opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/expsegb.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="expon"><citetitle>expon</citetitle></link>,
+ <link linkend="expseg"><citetitle>expseg</citetitle></link>,
+ <link linkend="expsega"><citetitle>expsega</citetitle></link>,
+ <link linkend="expsegr"><citetitle>expsegr</citetitle></link>,
+ <link linkend="line"><citetitle>line</citetitle></link>,
+ <link linkend="linseg"><citetitle>linseg</citetitle></link>,
+ <link linkend="linsegr"><citetitle>linsegr</citetitle></link>
+ <link linkend="transeg"><citetitle>transeg</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>June 2011 </member>
+ </simplelist>
+ </para>
+ <para>New in version 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/expsegba.xml b/opcodes/expsegba.xml
new file mode 100644
index 0000000..3c030d2
--- /dev/null
+++ b/opcodes/expsegba.xml
@@ -0,0 +1,92 @@
+
+<refentry id="expsegba">
+<indexterm id="IndexExpsegba"><primary>expsegba</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>expsegba</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>expsegba</refname>
+ <refpurpose>
+ An exponential segment generator operating at a-rate with
+ absolute times.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ An exponential segment generator operating at a-rate. This unit
+ is almost identical to <link
+ linkend="expsegb"><citetitle>expsegb</citetitle></link>, but
+ more precise when defining segments with very short durations
+ (i.e., in a percussive attack phase) at audio rate.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>expsegba</command> ia, itim1, ib [, itim2] [, ic] [...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ia</emphasis> -- starting value. Zero is illegal.
+ </para>
+
+ <para>
+ <emphasis>ib</emphasis>, <emphasis>ic</emphasis>, etc. -- value after <emphasis>itim1</emphasis> seconds, etc. must be non-zero and must agree in sign with <emphasis>ia</emphasis>.
+ </para>
+
+ <para>
+ <emphasis>itim1</emphasis> -- time in seconds at end of first segment.
+ </para>
+
+ <para>
+ <emphasis>itim2</emphasis>, <emphasis>itim3</emphasis>, etc. --
+ time in seconds at the end of subsequent segments.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ This unit generate audio signals whose values can pass through
+ two or more specified points. The final <emphasis>tim
+ </emphasis> value may or may not equal the instrument's
+ performance time. A shorter performance will truncate the
+ specified pattern, while a longer one will cause the last
+ defined segment to continue on in the same direction.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the expsegba opcode. It uses the file <ulink url="examples/expsegba.csd"><citetitle>expsegba.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the expsegba opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/expsegba.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="expsegb"><citetitle>expsegb</citetitle></link>,
+ <link linkend="expsegr"><citetitle>expsegr</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namejohn;</para>
+ <para>June 2011</para>
+ <para>New in Csound 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/fareylen.xml b/opcodes/fareylen.xml
index 54da2b0..34e8583 100644
--- a/opcodes/fareylen.xml
+++ b/opcodes/fareylen.xml
@@ -23,28 +23,98 @@ where phi(m) is Euler's totient function, which gives the number of integers &le
</para>
<para>
Some values for the length of F<subscript>n</subscript> given n:
- <itemizedlist>
- <listitem>n |F<subscript>n</subscript>|</listitem>
- <listitem>1 2</listitem>
- <listitem>2 3</listitem>
- <listitem>3 5</listitem>
- <listitem>4 7</listitem>
- <listitem>5 11</listitem>
- <listitem>6 13</listitem>
- <listitem>7 19</listitem>
- <listitem>8 23</listitem>
- <listitem>9 29</listitem>
- <listitem>10 33</listitem>
- <listitem>11 43</listitem>
- <listitem>12 47</listitem>
- <listitem>13 59</listitem>
- <listitem>14 65</listitem>
- <listitem>15 73</listitem>
- <listitem>16 81</listitem>
- <listitem>17 97</listitem>
- <listitem>18 103</listitem>
- <listitem>19 121</listitem>
- </itemizedlist>
+ <informaltable>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>n</entry>
+ <entry>F<subscript>n</subscript></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>1</entry>
+ <entry>2</entry>
+ </row>
+ <row>
+ <entry>2</entry>
+ <entry>3</entry>
+ </row>
+ <row>
+ <entry>3</entry>
+ <entry>5</entry>
+ </row>
+ <row>
+ <entry>4</entry>
+ <entry>7</entry>
+ </row>
+ <row>
+ <entry>5</entry>
+ <entry>11</entry>
+ </row>
+ <row>
+ <entry>6</entry>
+ <entry>13</entry>
+ </row>
+ <row>
+ <entry>7</entry>
+ <entry>19</entry>
+ </row>
+ <row>
+ <entry>8</entry>
+ <entry>23</entry>
+ </row>
+ <row>
+ <entry>9</entry>
+ <entry>29</entry>
+ </row>
+ <row>
+ <entry>10</entry>
+ <entry>33</entry>
+ </row>
+ <row>
+ <entry>11</entry>
+ <entry>43</entry>
+ </row>
+ <row>
+ <entry>12</entry>
+ <entry>47</entry>
+ </row>
+ <row>
+ <entry>13</entry>
+ <entry>59</entry>
+ </row>
+ <row>
+ <entry>14</entry>
+ <entry>65</entry>
+ </row>
+ <row>
+ <entry>15</entry>
+ <entry>73</entry>
+ </row>
+ <row>
+ <entry>16</entry>
+ <entry>81</entry>
+ </row>
+ <row>
+ <entry>17</entry>
+ <entry>97</entry>
+ </row>
+ <row>
+ <entry>18</entry>
+ <entry>103</entry>
+ </row>
+ <row>
+ <entry>19</entry>
+ <entry>121</entry>
+ </row>
+ <row>
+ <entry>20</entry>
+ <entry>129</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
</para>
</refsect1>
diff --git a/opcodes/fareyleni.xml b/opcodes/fareyleni.xml
index cea7abf..3a048db 100644
--- a/opcodes/fareyleni.xml
+++ b/opcodes/fareyleni.xml
@@ -23,28 +23,98 @@ where phi(m) is Euler's totient function, which gives the number of integers &le
</para>
<para>
Some values for the length of F<subscript>n</subscript> given n:
- <itemizedlist>
- <listitem>n |F<subscript>n</subscript>|</listitem>
- <listitem>1 2</listitem>
- <listitem>2 3</listitem>
- <listitem>3 5</listitem>
- <listitem>4 7</listitem>
- <listitem>5 11</listitem>
- <listitem>6 13</listitem>
- <listitem>7 19</listitem>
- <listitem>8 23</listitem>
- <listitem>9 29</listitem>
- <listitem>10 33</listitem>
- <listitem>11 43</listitem>
- <listitem>12 47</listitem>
- <listitem>13 59</listitem>
- <listitem>14 65</listitem>
- <listitem>15 73</listitem>
- <listitem>16 81</listitem>
- <listitem>17 97</listitem>
- <listitem>18 103</listitem>
- <listitem>19 121</listitem>
- </itemizedlist>
+ <informaltable>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>n</entry>
+ <entry>F<subscript>n</subscript></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>1</entry>
+ <entry>2</entry>
+ </row>
+ <row>
+ <entry>2</entry>
+ <entry>3</entry>
+ </row>
+ <row>
+ <entry>3</entry>
+ <entry>5</entry>
+ </row>
+ <row>
+ <entry>4</entry>
+ <entry>7</entry>
+ </row>
+ <row>
+ <entry>5</entry>
+ <entry>11</entry>
+ </row>
+ <row>
+ <entry>6</entry>
+ <entry>13</entry>
+ </row>
+ <row>
+ <entry>7</entry>
+ <entry>19</entry>
+ </row>
+ <row>
+ <entry>8</entry>
+ <entry>23</entry>
+ </row>
+ <row>
+ <entry>9</entry>
+ <entry>29</entry>
+ </row>
+ <row>
+ <entry>10</entry>
+ <entry>33</entry>
+ </row>
+ <row>
+ <entry>11</entry>
+ <entry>43</entry>
+ </row>
+ <row>
+ <entry>12</entry>
+ <entry>47</entry>
+ </row>
+ <row>
+ <entry>13</entry>
+ <entry>59</entry>
+ </row>
+ <row>
+ <entry>14</entry>
+ <entry>65</entry>
+ </row>
+ <row>
+ <entry>15</entry>
+ <entry>73</entry>
+ </row>
+ <row>
+ <entry>16</entry>
+ <entry>81</entry>
+ </row>
+ <row>
+ <entry>17</entry>
+ <entry>97</entry>
+ </row>
+ <row>
+ <entry>18</entry>
+ <entry>103</entry>
+ </row>
+ <row>
+ <entry>19</entry>
+ <entry>121</entry>
+ </row>
+ <row>
+ <entry>20</entry>
+ <entry>129</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
</para>
</refsect1>
@@ -66,6 +136,18 @@ where phi(m) is Euler's totient function, which gives the number of integers &le
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the fareyleni opcode. It uses the file <ulink url="examples/fareyleni.csd"><citetitle>fareyleni.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the fareyleni opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fareyleni.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
diff --git a/opcodes/faustaudio.xml b/opcodes/faustaudio.xml
new file mode 100644
index 0000000..b20f0e4
--- /dev/null
+++ b/opcodes/faustaudio.xml
@@ -0,0 +1,67 @@
+
+<refentry id="faustaudio">
+<indexterm id="Indexfaustaudio"><primary>faustaudio</primary></indexterm>
+ <refentryinfo><title>Faust Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>faustaudio</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>faustaudio</refname>
+ <refpurpose>
+ Instantiates and runs a compiled Faust program.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Faustaudio will instantiate and run a Faust program compiled with faustcompile.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>ihandle,a1[,a2,...] faustaudio</command> ifac[,ain1,...] </synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis><quote>ifac</quote></emphasis> -- a handle to a compiled Faust program, produced by faustcompile.
+</para>
+ <para>
+ <emphasis><quote>ihandle</quote></emphasis> -- a handle to the Faust DSP instance, which can be used to access
+its controls with faustctl.
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis><quote>ain1,...</quote></emphasis> -- input signals
+ </para>
+ <para>
+ <emphasis><quote>a1,...</quote></emphasis> -- output signals
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the faustaudio opcode, with a simple program that mixes two inputs:
+ <example>
+ <para>
+<programlisting>
+ifac <emphasis role="op">faustcompile</emphasis> "process=+;", "-vec -lv 1"
+idsp,a1 <emphasis role="op">faustaudio</emphasis> ifac,ain1,ain2
+ </programlisting>
+ </para>
+ </example>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namevictor;, 2013 </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/faustcompile.xml b/opcodes/faustcompile.xml
new file mode 100644
index 0000000..43f5bc0
--- /dev/null
+++ b/opcodes/faustcompile.xml
@@ -0,0 +1,56 @@
+
+<refentry id="faustcompile">
+<indexterm id="Indexfaustcompile"><primary>faustcompile</primary></indexterm>
+ <refentryinfo><title>Faust Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>faustcompile</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>faustcompile</refname>
+ <refpurpose>
+ Invokes the just-in-time compiler to produce a instantiable DSP process from a Faust program.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Faustcompile will compile a Faust program from a string, controlled by various arguments.
+ Multi-line strings are accepted, using {{ }} to enclose the string.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>ihandle faustcompile</command> Scode, Sargs </synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis><quote>Scode</quote></emphasis> -- a string (in double-quotes or enclosed by {{ }}) containing a Faust program.
+</para>
+ <para>
+ <emphasis><quote>Sargs</quote></emphasis> -- a string (in double-quotes or enclosed by {{ }}) containing Faust compiler args.
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the faustcompile opcode, with a simple program that mixes two inputs:
+ <example>
+ <para>
+<programlisting>
+ihandle <emphasis role="op">faustcompile</emphasis> "process=+;", "-vec -lv 1"
+ </programlisting>
+ </para>
+ </example>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namevictor;, 2013 </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/faustctl.xml b/opcodes/faustctl.xml
new file mode 100644
index 0000000..db23cd8
--- /dev/null
+++ b/opcodes/faustctl.xml
@@ -0,0 +1,67 @@
+
+<refentry id="faustctl">
+<indexterm id="Indexfaustctl"><primary>faustctl</primary></indexterm>
+ <refentryinfo><title>Faust Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>faustctl</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>faustctl</refname>
+ <refpurpose>
+ Adjusts a given control in a Faust DSP instance.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Faustctl will set a given control in a running faust program
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>faustctl</command> idsp,Scontrol,kval </synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis><quote>Scontrol</quote></emphasis> -- a string containing the control name
+</para>
+ <para>
+ <emphasis><quote>idsp</quote></emphasis> -- a handle to an existing Faust DSP instance
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis><quote>kval</quote></emphasis> -- value to which the control will be set.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the faustctl opcode, with a simple program that adjusts the gain of an input:
+ <example>
+ <para>
+<programlisting>
+idsp,a1 <emphasis role="op">faustgen</emphasis> {{
+gain = hslider("vol",1,0,1,0.01);
+process = (_ * gain);
+}}, ain1
+<emphasis role="op">faustctl</emphasis> idsp, "vol", 0.5
+ </programlisting>
+ </para>
+ </example>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namevictor;, 2013 </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/faustgen.xml b/opcodes/faustgen.xml
new file mode 100644
index 0000000..2bbc978
--- /dev/null
+++ b/opcodes/faustgen.xml
@@ -0,0 +1,66 @@
+
+<refentry id="faustgen">
+<indexterm id="Indexfaustgen"><primary>faustgen</primary></indexterm>
+ <refentryinfo><title>Faust Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>faustgen</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>faustgen</refname>
+ <refpurpose>
+ Compiles, Instantiates and runs a compiled Faust program.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Faustgen will invoke the just-in-time compiler, instantiate and run a Faust program.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>ihandle,a1[,a2,...] faustgen</command> SCode[,ain1,...] </synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis><quote>Scode</quote></emphasis> -- a string containing a Faust program.
+</para>
+ <para>
+ <emphasis><quote>ihandle</quote></emphasis> -- a handle to the Faust DSP instance, which can be used to access
+its controls with faustctl.
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis><quote>ain1,...</quote></emphasis> -- input signals
+ </para>
+ <para>
+ <emphasis><quote>a1,...</quote></emphasis> -- output signals
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the faustgen opcode, with a simple program that mixes two inputs:
+ <example>
+ <para>
+<programlisting>
+idsp,a1 <emphasis role="op">faustgen</emphasis> "process=+;",ain1,ain2
+ </programlisting>
+ </para>
+ </example>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namevictor;, 2013 </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/ficlose.xml b/opcodes/ficlose.xml
index 862c77a..b777426 100644
--- a/opcodes/ficlose.xml
+++ b/opcodes/ficlose.xml
@@ -53,11 +53,24 @@
<para>This opcode should be used with care, as the file handle will become invalid, and will cause an init error when an opcode tries to access the closed file.</para>
</warning>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the ficlose opcode. It uses the file <ulink url="examples/ficlose.csd"><citetitle>ficlose.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the ficlose opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/ficlose.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
- <link linkend="fiopen"><citetitle>fout</citetitle></link>,
+ <link linkend="fiopen"><citetitle>fiopen</citetitle></link>,
<link linkend="fout"><citetitle>fout</citetitle></link>,
<link linkend="fouti"><citetitle>fouti</citetitle></link>,
<link linkend="foutir"><citetitle>foutir</citetitle></link>,
diff --git a/opcodes/filebit.xml b/opcodes/filebit.xml
index c4b3ce1..f0c2e33 100644
--- a/opcodes/filebit.xml
+++ b/opcodes/filebit.xml
@@ -65,7 +65,7 @@ and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
The audio file <quote>mary.wav</quote> is in monoaural CD format, so <emphasis>filebit</emphasis>'s output should include a line like this:
<screen>
-instr 1: ibits = 8.000
+instr 1: ibits = 16.000
</screen>
</para>
</refsect1>
diff --git a/opcodes/filelen.xml b/opcodes/filelen.xml
index add285d..c97e8fc 100644
--- a/opcodes/filelen.xml
+++ b/opcodes/filelen.xml
@@ -47,20 +47,18 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the filelen opcode. It uses the file <ulink url="examples/filelen.csd"><citetitle>filelen.csd</citetitle></ulink>, and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
+ Here is an example of the filelen opcode. It uses the file <ulink url="examples/filelen.csd"><citetitle>filelen.csd</citetitle></ulink>, <ulink url="examples/fox.wav"><citetitle>fox.wav</citetitle></ulink>, and <ulink url="examples/kickroll.wav"><citetitle>kickroll.wav</citetitle></ulink>.
<example>
<title>Example of the filelen opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/filelen.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- The audio file <quote>mary.wav</quote> is 3.5 seconds long. So <emphasis>filelen</emphasis>'s output should include a line like this:
+ The mono audio file <quote>fox.wav</quote> is 2.8 seconds long, and the stereo file <quote>kickroll.wav</quote> is 0.9 seconds. So <emphasis>filelen</emphasis>'s output should include a line for the mono and the stereo file like this:
<screen>
-instr 1: ilen = 3.501
+instr 1: ilen = 2.757
+instr 1: ilen = 0.857
</screen>
</para>
</refsect1>
@@ -83,7 +81,6 @@ instr 1: ilen = 3.501
<member>July 1999</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.57</para>
</refsect1>
diff --git a/opcodes/filenchnls.xml b/opcodes/filenchnls.xml
index c47c6ad..00f1e1d 100644
--- a/opcodes/filenchnls.xml
+++ b/opcodes/filenchnls.xml
@@ -47,9 +47,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the filenchnls opcode. It uses the file <ulink url="examples/filenchnls.csd"><citetitle>filenchnls.csd</citetitle></ulink>,
-and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
-
+ Here is an example of the filenchnls opcode. It uses the file <ulink url="examples/filenchnls.csd"><citetitle>filenchnls.csd</citetitle>, </ulink><ulink url="examples/fox.wav"><citetitle>fox.wav</citetitle></ulink>, and <ulink url="examples/kickroll.wav"><citetitle>kickroll.wav</citetitle></ulink>.
<example>
<title>Example of the filenchnls opcode.</title>
@@ -59,9 +57,10 @@ and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
<xi:include href="examples-xml/filenchnls.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- The audio file <quote>mary.wav</quote> is monoaural (1 channel). So <emphasis>filenchnls</emphasis>'s output should include a line like this:
+ The audio file <quote>fox.wav</quote> is monoaural (1 channel), while <quote>kickroll.wav</quote> is stereo (2 channels) So <emphasis>filenchnls</emphasis>'s output should include lines like this:
<screen>
-instr 1: ichnls = 1.000
+instr 1: ichn = 1.000
+instr 1: ichn = 2.000
</screen>
</para>
</refsect1>
@@ -84,7 +83,6 @@ instr 1: ichnls = 1.000
<member>July 1999</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.57</para>
</refsect1>
diff --git a/opcodes/filepeak.xml b/opcodes/filepeak.xml
index 487b3a6..e039704 100644
--- a/opcodes/filepeak.xml
+++ b/opcodes/filepeak.xml
@@ -56,7 +56,7 @@
<title>Examples</title>
<para>
Here is an example of the filepeak opcode. It uses the file <ulink url="examples/filepeak.csd"><citetitle>filepeak.csd</citetitle></ulink>,
-and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
+and <ulink url="examples/Church.wav"><citetitle>Church.wav</citetitle></ulink>.
<example>
<title>Example of the filepeak opcode.</title>
@@ -65,9 +65,10 @@ and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
<xi:include href="examples-xml/filepeak.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- The peak absolute value of the audio file <quote>mary.wav</quote> is 0.306902. So <emphasis>filepeak</emphasis>'s output should include a line like this:
+ The <emphasis>filepeak</emphasis>'s output should include lines like this:
<screen>
-instr 1: ipeak = 0.307
+Peak value in file 'Church.wav' is 0.909363 (-0.825 dB).
+Peak value in file 'Church_norm.wav' is 0.501190 (-6.000 dB).
</screen>
</para>
</refsect1>
@@ -89,7 +90,6 @@ instr 1: ipeak = 0.307
<member>July 1999</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.57</para>
</refsect1>
diff --git a/opcodes/filesr.xml b/opcodes/filesr.xml
index de08652..1006702 100644
--- a/opcodes/filesr.xml
+++ b/opcodes/filesr.xml
@@ -46,7 +46,7 @@
<title>Examples</title>
<para>
Here is an example of the filesr opcode. It uses the file <ulink url="examples/filesr.csd"><citetitle>filesr.csd</citetitle></ulink>,
-and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
+and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
<example>
<title>Example of the filesr opcode.</title>
@@ -54,9 +54,9 @@ and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
<xi:include href="examples-xml/filesr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- The audio file <quote>mary.wav</quote> was sampled at 44.1 KHz. So <emphasis>filesr</emphasis>'s output should include a line like this:
+ The audio file <quote>beats.wav</quote> was sampled at 44.1 KHz. So <emphasis>filesr</emphasis>'s output should include a line like this:
<screen>
-instr 1: isr = 44100.000
+sample rate = 44100.000000, size = 131072.000000
</screen>
</para>
</refsect1>
@@ -79,7 +79,6 @@ instr 1: isr = 44100.000
<member>July 1999</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.57</para>
</refsect1>
diff --git a/opcodes/filevalid.xml b/opcodes/filevalid.xml
index 88aee36..873f386 100644
--- a/opcodes/filevalid.xml
+++ b/opcodes/filevalid.xml
@@ -6,13 +6,11 @@
<refentrytitle>filevalid</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>filevalid</refname>
<refpurpose>
Checks that a file can be used.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -44,7 +42,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the filevalid opcode. It uses the file <ulink url="examples/filevalid.csd"><citetitle>filevalid.csd</citetitle></ulink>, and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
+ Here is an example of the filevalid opcode. It uses the file <ulink url="examples/filevalid.csd"><citetitle>filevalid.csd</citetitle></ulink>.
<example>
<title>Example of the filevalid opcode.</title>
@@ -54,7 +52,10 @@
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/filevalid.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
+ The output should include a line like this:
+ <screen>
+Audiofile 'frox.wav' does not exist!
+ </screen>
</para>
</refsect1>
@@ -77,8 +78,7 @@
<member>July 2010</member>
</simplelist>
</para>
- <para>Example written by &namejohn;.</para>
- <para>New in Csound version 4.13</para>
+ <para>New in Csound version 5.13</para>
</refsect1>
</refentry>
diff --git a/opcodes/fillarray.xml b/opcodes/fillarray.xml
new file mode 100644
index 0000000..1d805c5
--- /dev/null
+++ b/opcodes/fillarray.xml
@@ -0,0 +1,68 @@
+
+<refentry id="fillarray">
+<indexterm id="IndexFillarray"><primary>fillarray</primary></indexterm>
+
+ <refentryinfo><title>Table Control:Table Queries</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>fillarray</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>fillarray</refname>
+ <refpurpose>
+ Generate a vector with initial values.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generate a vector (one-dimensional k-rate array) with a sequence
+ of numeric values.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>karray[] <command>fillarray</command> ival1, ival2,.....ivaln</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ival1,...ivaln</emphasis> -- values to place in the vector.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the fillarray opcode. It uses the file <ulink url="examples/fillarray.csd"><citetitle>fillarray.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the fillarray opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fillarray.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vectorial"><citetitle></citetitle>Vectorial opcodes</link>
+ <link linkend="array"><citetitle></citetitle>array</link>
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Codemist Ltd</member>
+ <member>2013</member>
+ </simplelist>
+ </para>
+ <para>New in version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/filter2.xml b/opcodes/filter2.xml
index 5f1eb41..78a5fec 100644
--- a/opcodes/filter2.xml
+++ b/opcodes/filter2.xml
@@ -67,6 +67,14 @@
k1 <emphasis role="opc">filter2</emphasis> ksig, 2, 0, 0.5, 0.5 <emphasis role="comment">;; k-rate FIR filter</emphasis></programlisting>
</informalexample>
</para>
+ <para>
+ Here is another example of the filter2 opcode. It uses the file <ulink url="examples/filter2.csd"><citetitle>filter2.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the filter2 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/filter2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/fin.xml b/opcodes/fin.xml
index 0021b4e..d819eb1 100644
--- a/opcodes/fin.xml
+++ b/opcodes/fin.xml
@@ -23,6 +23,7 @@
<refsect1>
<title>Syntax</title>
<synopsis><command>fin</command> ifilename, iskipframes, iformat, ain1 [, ain2] [, ain3] [,...]</synopsis>
+ <synopsis><command>fin</command> ifilename, iskipframes, iformat, arr[]</synopsis>
</refsect1>
<refsect1>
@@ -58,7 +59,19 @@
<para>Please note that since this opcode generates its output using input parameters (on the right side of the opcode), these variables must be initialized before use, otherwise a 'used before defined' error will occur. You can use the <link linkend="init"><citetitle>init</citetitle></link> opcode for this.</para>
</note>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the fin opcode. It uses the file <ulink url="examples/fin.csd"><citetitle>fin.csd</citetitle></ulink> and <ulink url="examples/fox.wav"><citetitle>fox.wav</citetitle></ulink>.
+ <example>
+ <title>Example of the fin opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fin.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
@@ -74,9 +87,12 @@
<member>Author: &namegabriel;</member>
<member>Italy</member>
<member>1999</member>
+ <member>Author: &namejohn;</member>
+ <member>NUIM, 2013</member>
</simplelist>
</para>
<para>New in Csound version 3.56</para>
+ <para>Array version new in 6.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/fiopen.xml b/opcodes/fiopen.xml
index d2d4f19..2e84554 100644
--- a/opcodes/fiopen.xml
+++ b/opcodes/fiopen.xml
@@ -72,7 +72,19 @@
Notice that <link linkend="fout"><citetitle>fout</citetitle></link> and <link linkend="foutk"><citetitle>foutk</citetitle></link> can use either a string containing a file pathname, or a handle-number generated by <emphasis>fiopen</emphasis>. Whereas, with <link linkend="fouti"><citetitle>fouti</citetitle></link> and <link linkend="foutir"><citetitle>foutir</citetitle></link>, the target file can be only specified by means of a handle-number.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the fiopen opcode. It uses the file <ulink url="examples/fiopen.csd"><citetitle>fiopen.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the fiopen opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fiopen.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/flanger.xml b/opcodes/flanger.xml
index 1f5a1b0..45f0821 100644
--- a/opcodes/flanger.xml
+++ b/opcodes/flanger.xml
@@ -1,80 +1,81 @@
-
-<refentry id="flanger">
-<indexterm id="IndexFlanger"><primary>flanger</primary></indexterm>
- <refentryinfo><title>Signal Modifiers:Special Effects</title></refentryinfo>
- <refmeta>
- <refentrytitle>flanger</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>flanger</refname>
- <refpurpose>
- A user controlled flanger.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- A user controlled flanger.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>ares <command>flanger</command> asig, adel, kfeedback [, imaxd]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>imaxd</emphasis>(optional) -- maximum delay in seconds (needed for inital memory allocation)
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>asig</emphasis> -- input signal
- </para>
-
- <para>
- <emphasis>adel</emphasis> -- delay in seconds
- </para>
-
- <para>
- <emphasis>kfeedback</emphasis> -- feedback amount (in normal tasks this should not exceed 1, even if bigger values are allowed)
- </para>
-
- <para>
- This unit is useful for generating choruses and flangers. The delay must be varied at a-rate connecting <emphasis>adel</emphasis> to an oscillator output. Also the feedback can vary at k-rate. This opcode is implemented to allow <emphasis>kr</emphasis> different than <emphasis>sr</emphasis> (else delay could not be lower than <emphasis>ksmps</emphasis>) enhancing realtime performance. This unit is very similar to <link linkend="wguide1"><citetitle>wguide1</citetitle></link>, the only difference is <emphasis>flanger</emphasis> does not have the lowpass filter.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the flanger opcode. It uses the file <ulink url="examples/flanger.csd"><citetitle>flanger.csd</citetitle></ulink>, and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
- <example>
- <title>Example of the flanger opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/flanger.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: &namegabriel;</member>
- <member>Italy</member>
- </simplelist>
- </para>
- <para>Example written by &namekevin;.</para>
-
- <para>New in Csound version 3.49</para>
- </refsect1>
-</refentry>
+
+<refentry id="flanger">
+<indexterm id="IndexFlanger"><primary>flanger</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Special Effects</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>flanger</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>flanger</refname>
+ <refpurpose>
+ A user controlled flanger.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ A user controlled flanger.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>flanger</command> asig, adel, kfeedback [, imaxd]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>imaxd</emphasis>(optional) -- maximum delay in seconds (needed for inital memory allocation)
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>asig</emphasis> -- input signal
+ </para>
+
+ <para>
+ <emphasis>adel</emphasis> -- delay in seconds
+ </para>
+
+ <para>
+ <emphasis>kfeedback</emphasis> -- feedback amount (in normal tasks this should not exceed 1, even if bigger values are allowed)
+ </para>
+
+ <para>
+ This unit is useful for generating choruses and flangers. The delay must be varied at a-rate, for example by connecting <emphasis>adel</emphasis> to an oscillator output. The feedback can vary at k-rate. This opcode is implemented to allow <emphasis>kr</emphasis> different than <emphasis>sr</emphasis> (else delay could not be lower than <emphasis>ksmps</emphasis>) enhancing realtime performance. This unit is very similar to <link linkend="wguide1"><citetitle>wguide1</citetitle></link>, the only difference is <emphasis>flanger</emphasis> does not have the lowpass filter or the requirement that the delay be varied at a-rate.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the flanger opcode. It uses the file <ulink url="examples/flanger.csd"><citetitle>flanger.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the flanger opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/flanger.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para> More information on flanging on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Flanger"><citetitle>http://en.wikipedia.org/wiki/Flanger</citetitle></ulink></para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namegabriel;</member>
+ <member>Italy</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 3.49</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/flooper.xml b/opcodes/flooper.xml
index b88d15d..954ce4f 100644
--- a/opcodes/flooper.xml
+++ b/opcodes/flooper.xml
@@ -51,18 +51,16 @@
<emphasis>asig</emphasis> -- output sig
</para>
<para>
- <emphasis>kon</emphasis> -- amplitude control </para>
+ <emphasis>kamp</emphasis> -- amplitude control </para>
<para>
<emphasis>kpitch</emphasis> -- pitch control (transposition ratio); negative values play the loop back in reverse
</para>
-
</refsect1>
<refsect1>
<title>Examples</title>
<para>
<example>
- <title>Example</title>
<programlisting>
aout <emphasis role="opc">flooper</emphasis> 16000, 1, 1, 4, 0.05, 1 <emphasis role="comment">; loop starts at 1 sec, for 4 secs, 0.05 crossfade</emphasis>
<emphasis role="opc">out</emphasis> aout</programlisting>
@@ -76,8 +74,17 @@ table 1 to contain at least 5.05 seconds of audio (4 secs loop duration,
starting 1 sec into the table, using 0.05 secs after the loop end for the
crossfade).
</para>
- </refsect1>
+ <para>
+ Here is another example of the flooper opcode. It uses the file <ulink url="examples/flooper.csd"><citetitle>flooper.csd</citetitle></ulink> and <ulink url="examples/fox.wav"><citetitle>fox.wav</citetitle></ulink>.
+ <example>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/flooper.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/flooper2.xml b/opcodes/flooper2.xml
index 679dfef..54d9d37 100644
--- a/opcodes/flooper2.xml
+++ b/opcodes/flooper2.xml
@@ -81,7 +81,6 @@ loop length.</para>
<title>Examples</title>
<para>
<example>
- <title>Example</title>
<programlisting>
aout <emphasis role="opc">flooper2</emphasis> 16000, 1, 1, 5, 0.05, 1 <emphasis role="comment">; loop starts at 1 sec, for 4 secs, 0.05 crossfade</emphasis>
<emphasis role="opc">out</emphasis> aout</programlisting>
@@ -97,6 +96,14 @@ starting 1 sec into the table, using 0.05 secs after the loop end for the
crossfade). Looping is in mode 0 (normal forward loop).
</para>
+ <para>
+ Here is another example of the flooper2 opcode. It uses the file <ulink url="examples/flooper2.csd"><citetitle>flooper2.csd</citetitle></ulink> and <ulink url="examples/fox.wav"><citetitle>fox.wav</citetitle></ulink>.
+ <example>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/flooper2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/floor.xml b/opcodes/floor.xml
index 7e160fd..ca1dd34 100644
--- a/opcodes/floor.xml
+++ b/opcodes/floor.xml
@@ -34,7 +34,36 @@
further expression.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the floor opcode. It uses the file <ulink url="examples/floor.csd"><citetitle>floor.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the floor opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/floor.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <para>
+ The output should include lines like these:
+ <screen>
+instr 1: inumber = 9.000 idiv = 1.000 ifl = 9.000
+instr 1: inumber = 9.000 idiv = 2.000 ifl = 4.000
+instr 1: inumber = 9.000 idiv = 3.000 ifl = 3.000
+instr 1: inumber = 9.000 idiv = 4.000 ifl = 2.000
+instr 1: inumber = 9.000 idiv = 5.000 ifl = 1.000
+instr 1: inumber = 9.000 idiv = 6.000 ifl = 1.000
+instr 1: inumber = 9.000 idiv = 7.000 ifl = 1.000
+instr 1: inumber = 9.000 idiv = 8.000 ifl = 1.000
+instr 1: inumber = 9.000 idiv = 9.000 ifl = 1.000
+instr 1: inumber = 9.000 idiv = 10.000 ifl = 0.000
+ </screen>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/fluidAllOut.xml b/opcodes/fluidAllOut.xml
index bbadbd0..823f547 100644
--- a/opcodes/fluidAllOut.xml
+++ b/opcodes/fluidAllOut.xml
@@ -42,19 +42,17 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the fluidsynth opcodes. It uses the file <ulink url="examples/fluidAllOut.orc"><citetitle>fluidAllOut.orc</citetitle></ulink>.
+ Here is an example of the fluidAllOut opcodes. It uses the file <ulink url="examples/fluidAllOut.csd"><citetitle>fluidAllOut.csd</citetitle></ulink>.
</para>
- <xi:include href="examples-xml/fluidAllOut.orc.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- <para>
- Here is another more complex example of the fluidsynth opcodes written by Istvan Varga. It uses the file <ulink url="examples/fluidcomplex.csd"><citetitle>fluidcomplex.csd</citetitle></ulink>.
- </para>
- <xi:include href="examples-xml/fluidcomplex.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
+ <xi:include href="examples-xml/fluidAllOut.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</refsect1>
+
<refsect1>
<title>See Also</title>
<para><link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link>, <link linkend="fluidNote"><citetitle>fluidNote</citetitle></link>, <link linkend="fluidLoad"><citetitle>fluidLoad</citetitle></link></para>
- </refsect1>
+ <para> More information on soundfonts in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch048_d-reading-midi-files"><citetitle>http://en.flossmanuals.net/csound/ch048_d-reading-midi-files</citetitle></ulink></para>
+ <para> Other information on soundfonts on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Soundfont"><citetitle>http://en.wikipedia.org/wiki/Soundfont</citetitle></ulink></para>
+ </refsect1>
<refsect1>
<title>Credits</title>
<para>Opcode by Michael Gogins (gogins at pipeline dot
diff --git a/opcodes/fluidCCi.xml b/opcodes/fluidCCi.xml
index e9e898c..af36032 100644
--- a/opcodes/fluidCCi.xml
+++ b/opcodes/fluidCCi.xml
@@ -42,10 +42,21 @@
<para>This opcode is useful for setting controller values at init time. For
continous changes, use fluidCCk.</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the fluidCCi opcodes. It uses the file <ulink url="examples/fluidCCi.csd"><citetitle>fluidCCi.csd</citetitle></ulink>.
+ </para>
+ <xi:include href="examples-xml/fluidCCi.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para><link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link>, <link linkend="fluidNote"><citetitle>fluidNote</citetitle></link>, <link linkend="fluidLoad"><citetitle>fluidLoad</citetitle></link>, <link linkend="fluidCCk"><citetitle>fluidCCk</citetitle></link></para>
- </refsect1>
+ <para> More information on soundfonts in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch048_d-reading-midi-files"><citetitle>http://en.flossmanuals.net/csound/ch048_d-reading-midi-files</citetitle></ulink></para>
+ <para> Other information on soundfonts on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Soundfont"><citetitle>http://en.wikipedia.org/wiki/Soundfont</citetitle></ulink></para>
+ </refsect1>
<refsect1>
<title>Credits</title>
<para>Michael Gogins (gogins at pipeline dot com), Steven Yi.
diff --git a/opcodes/fluidCCk.xml b/opcodes/fluidCCk.xml
index 2f25753..254a7ac 100644
--- a/opcodes/fluidCCk.xml
+++ b/opcodes/fluidCCk.xml
@@ -41,11 +41,22 @@
<para><emphasis>kValue </emphasis> -- value to set for controller (usually
0-127)</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the fluidCCk opcodes. It uses the file <ulink url="examples/fluidCCk.csd"><citetitle>fluidCCk.csd</citetitle></ulink>.
+ </para>
+ <xi:include href="examples-xml/fluidCCk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para><link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link>, <link linkend="fluidNote"><citetitle>fluidNote</citetitle></link>, <link linkend="fluidLoad"><citetitle>fluidLoad</citetitle></link>, <link linkend="fluidCCi"><citetitle>fluidCCi</citetitle></link></para>
+ <para> More information on soundfonts in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch048_d-reading-midi-files"><citetitle>http://en.flossmanuals.net/csound/ch048_d-reading-midi-files</citetitle></ulink></para>
+ <para> Other information on soundfonts on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Soundfont"><citetitle>http://en.wikipedia.org/wiki/Soundfont</citetitle></ulink></para>
</refsect1>
-
+
<refsect1>
<title>Credits</title>
<para>Michael Gogins (gogins at pipeline dot com), Steven Yi.
diff --git a/opcodes/fluidControl.xml b/opcodes/fluidControl.xml
index b7d4df0..cf6699b 100644
--- a/opcodes/fluidControl.xml
+++ b/opcodes/fluidControl.xml
@@ -73,15 +73,20 @@ parameters, from Csound.</para>
</refsect1>
-<!-- <refsect1>
+ <refsect1>
<title>Examples</title>
-
- <xi:include href="examples-xml/fluid.orc.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </refsect1>-->
+ <para>
+ Here is a more complex example of the fluidsynth opcodes written by Istvan Varga. It uses the file <ulink url="examples/fluidcomplex.csd"><citetitle>fluidcomplex.csd</citetitle></ulink>.
+ </para>
+ <xi:include href="examples-xml/fluidcomplex.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para><link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link>, <link linkend="fluidNote"><citetitle>fluidNote</citetitle></link>, <link linkend="fluidLoad"><citetitle>fluidLoad</citetitle></link></para>
- </refsect1>
+ <para> More information on soundfonts in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch048_d-reading-midi-files"><citetitle>http://en.flossmanuals.net/csound/ch048_d-reading-midi-files</citetitle></ulink></para>
+ <para> Other information on soundfonts on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Soundfont"><citetitle>http://en.wikipedia.org/wiki/Soundfont</citetitle></ulink></para>
+ </refsect1>
<refsect1>
<title>Credits</title>
<para>Opcodes by Michael Gogins (gogins at pipeline dot
diff --git a/opcodes/fluidEngine.xml b/opcodes/fluidEngine.xml
index e708cc4..b4b0ddc 100644
--- a/opcodes/fluidEngine.xml
+++ b/opcodes/fluidEngine.xml
@@ -41,23 +41,18 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the fluidsynth opcodes. It uses the file <ulink url="examples/fluidAllOut.orc"><citetitle>fluidAllOut.orc</citetitle></ulink>.
+ Here is example of the fluidsynth opcodes using 2 engines. It uses the file <ulink url="examples/fluidEngine.csd"><citetitle>fluidEngine.csd</citetitle></ulink> and <ulink url="examples/midichn_advanced.mid"><citetitle>midichn_advanced.mid</citetitle></ulink>.
</para>
- <xi:include href="examples-xml/fluidAllOut.orc.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- <para>
- Here is another example of the fluidsynth opcodes using 2 engines. It uses the file <ulink url="examples/fluid-2.orc"><citetitle>fluid-2.orc</citetitle></ulink>.
- </para>
- <xi:include href="examples-xml/fluid-2.orc.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- <para>
- Here is another more complex example of the fluidsynth opcodes written by Istvan Varga. It uses the file <ulink url="examples/fluidcomplex.csd"><citetitle>fluidcomplex.csd</citetitle></ulink>.
- </para>
- <xi:include href="examples-xml/fluidcomplex.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
+ <xi:include href="examples-xml/fluidEngine.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</refsect1>
+
<refsect1>
<title>See Also</title>
<para><link linkend="fluidNote"><citetitle>fluidNote</citetitle></link>, <link linkend="fluidLoad"><citetitle>fluidLoad</citetitle></link></para>
- </refsect1>
+ <para> More information on soundfonts in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch048_d-reading-midi-files"><citetitle>http://en.flossmanuals.net/csound/ch048_d-reading-midi-files</citetitle></ulink></para>
+ <para> Other information on soundfonts on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Soundfont"><citetitle>http://en.wikipedia.org/wiki/Soundfont</citetitle></ulink></para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>Michael Gogins (gogins at pipeline dot com), Steven Yi.
diff --git a/opcodes/fluidLoad.xml b/opcodes/fluidLoad.xml
index 0b19114..81c6ada 100644
--- a/opcodes/fluidLoad.xml
+++ b/opcodes/fluidLoad.xml
@@ -49,20 +49,29 @@
channels any number of times; the SoundFont is only loaded the first
time.</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the fluidsynth opcodes. It uses the file <ulink url="examples/fluid.orc"><citetitle>fluid.orc</citetitle></ulink>.
- </para>
- <xi:include href="examples-xml/fluid.orc.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- <para>
- See <link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link> for more examples.
+ Here is an example of the fluidLoad opcode. It uses the file <ulink url="examples/fluidLoad.csd"><citetitle>fluidLoad.csd</citetitle></ulink> and <ulink url="examples/07AcousticGuitar.sf2"><citetitle>07AcousticGuitar.sf2</citetitle></ulink>.
+ <example>
+ <title>Example of the fluidLoad opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fluidLoad.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+The output should include a line like this:
+ <screen>
+SoundFont: 1 Bank: 0 Preset: 0 Seagul Acoustic Git
+ </screen>
</para>
</refsect1>
+
<refsect1>
<title>See Also</title>
<para><link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link>, <link linkend="fluidNote"><citetitle>fluidNote</citetitle></link></para>
- </refsect1>
+ <para> More information on soundfonts in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch048_d-reading-midi-files"><citetitle>http://en.flossmanuals.net/csound/ch048_d-reading-midi-files</citetitle></ulink></para>
+ <para> Other information on soundfonts on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Soundfont"><citetitle>http://en.wikipedia.org/wiki/Soundfont</citetitle></ulink></para>
+ </refsect1>
<refsect1>
<title>Credits</title>
<para>Michael Gogins (gogins at pipeline dot
diff --git a/opcodes/fluidNote.xml b/opcodes/fluidNote.xml
index 3cfa8cc..55a92d0 100644
--- a/opcodes/fluidNote.xml
+++ b/opcodes/fluidNote.xml
@@ -42,20 +42,27 @@ on in the given fluidEngine</para>
</refsect1>
-
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the fluidsynth opcodes. It uses the file <ulink url="examples/fluid.orc"><citetitle>fluid.orc</citetitle></ulink>.
- </para>
- <xi:include href="examples-xml/fluid.orc.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- <para>
- See <link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link> for more examples.
+ Here is an example of the fluidNote opcode. It uses the file <ulink url="examples/fluidNote.csd"><citetitle>fluidNote.csd</citetitle></ulink> and <ulink url="examples/19Trumpet.sf2"><citetitle>19Trumpet.sf2</citetitle></ulink>.
+ <example>
+ <title>Example of the fluidNote opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fluidNote.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+The output should include a line like this:
+ <screen>
+SoundFont: 1 Bank: 0 Preset: 56 Trumpet metallic
+ </screen>
</para>
</refsect1>
+
<refsect1>
<title>See Also</title>
<para><link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link>, <link linkend="fluidLoad"><citetitle>fluidLoad</citetitle></link></para>
+ <para> More information on soundfonts in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch048_d-reading-midi-files"><citetitle>http://en.flossmanuals.net/csound/ch048_d-reading-midi-files</citetitle></ulink></para>
+ <para> Other information on soundfonts on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Soundfont"><citetitle>http://en.wikipedia.org/wiki/Soundfont</citetitle></ulink></para>
</refsect1>
<refsect1>
<title>Credits</title>
diff --git a/opcodes/fluidOut.xml b/opcodes/fluidOut.xml
index a63c46c..fcb60f6 100644
--- a/opcodes/fluidOut.xml
+++ b/opcodes/fluidOut.xml
@@ -49,17 +49,29 @@ fluidEngine</para>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the fluidsynth opcodes. It uses the file <ulink url="examples/fluid.orc"><citetitle>fluid.orc</citetitle></ulink>.
- </para>
- <xi:include href="examples-xml/fluid.orc.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- <para>
- See <link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link> for more examples.
+ Here is an example of the fluidOut opcode with two fluidOuts. It uses the file <ulink url="examples/fluidOut.csd"><citetitle>fluidOut.csd</citetitle>, <ulink url="examples/01hpschd.sf2"><citetitle>01hpschd.sf2</citetitle></ulink> and </ulink><ulink url="examples/22Bassoon.sf2"><citetitle>22Bassoon.sf2</citetitle></ulink>.
+ <example>
+ <title>Example of the fluidOut opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fluidOut.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+The output should include lines like these:
+ <screen>
+chnl 1 using instr 1
+chnl 2 using instr 2
+
+SoundFont: 1 Bank: 0 Preset: 0 Harpsichord I-8
+SoundFont: 1 Bank: 0 Preset: 70 Ethan Bassoon mono
+ </screen>
</para>
</refsect1>
+
<refsect1>
<title>See Also</title>
<para><link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link>, <link linkend="fluidNote"><citetitle>fluidNote</citetitle></link>, <link linkend="fluidLoad"><citetitle>fluidLoad</citetitle></link></para>
- </refsect1>
+ <para> More information on soundfonts in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch048_d-reading-midi-files"><citetitle>http://en.flossmanuals.net/csound/ch048_d-reading-midi-files</citetitle></ulink></para>
+ <para> Other information on soundfonts on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Soundfont"><citetitle>http://en.wikipedia.org/wiki/Soundfont</citetitle></ulink></para>
+ </refsect1>
<refsect1>
<title>Credits</title>
<para>Michael Gogins (gogins at pipeline dot com), Steven Yi.
diff --git a/opcodes/fluidProgramSelect.xml b/opcodes/fluidProgramSelect.xml
index 2fef61c..d2f0a08 100644
--- a/opcodes/fluidProgramSelect.xml
+++ b/opcodes/fluidProgramSelect.xml
@@ -37,17 +37,22 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the fluidsynth opcodes. It uses the file <ulink url="examples/fluid.orc"><citetitle>fluid.orc</citetitle></ulink>.
+ Here is an example of the fluidProgramSelect opcode. It uses the file <ulink url="examples/fluidProgramSelect.csd"><citetitle>fluidProgramSelect.csd</citetitle></ulink>.
</para>
- <xi:include href="examples-xml/fluid.orc.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- <para>
- See <link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link> for more examples.
+ <xi:include href="examples-xml/fluidProgramSelect.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <para>
+ Here is another more complex example of the fluidsynth opcodes written by Istvan Varga. It uses the file <ulink url="examples/fluidcomplex.csd"><citetitle>fluidcomplex.csd</citetitle></ulink>.
</para>
+ <xi:include href="examples-xml/fluidcomplex.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</refsect1>
+
<refsect1>
<title>See Also</title>
<para><link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link>, <link linkend="fluidNote"><citetitle>fluidNote</citetitle></link>, <link linkend="fluidLoad"><citetitle>fluidLoad</citetitle></link></para>
- </refsect1>
+ <para> More information on soundfonts in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch048_d-reading-midi-files"><citetitle>http://en.flossmanuals.net/csound/ch048_d-reading-midi-files</citetitle></ulink></para>
+ <para> Other information on soundfonts on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Soundfont"><citetitle>http://en.wikipedia.org/wiki/Soundfont</citetitle></ulink></para>
+</refsect1>
+
<refsect1>
<title>Credits</title>
<para>Michael Gogins (gogins at pipeline dot com), Steven Yi.
diff --git a/opcodes/fluidSetInterpMethod.xml b/opcodes/fluidSetInterpMethod.xml
index cbc2cef..da6fef3 100644
--- a/opcodes/fluidSetInterpMethod.xml
+++ b/opcodes/fluidSetInterpMethod.xml
@@ -62,11 +62,26 @@
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the fluidSetInterpMethod opcode. It uses the file <ulink url="examples/fluidSetInterpMethod.csd"><citetitle>fluidSetInterpMethod.csd</citetitle></ulink> and <ulink url="examples/07AcousticGuitar.sf2"><citetitle>07AcousticGuitar.sf2</citetitle></ulink>.
+ <example>
+ <title>Example of the fluidSetInterpMethod opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fluidSetInterpMethod.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para><link linkend="fluidEngine"><citetitle>fluidEngine</citetitle></link></para>
+ <para> More information on soundfonts in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch048_d-reading-midi-files"><citetitle>http://en.flossmanuals.net/csound/ch048_d-reading-midi-files</citetitle></ulink></para>
+ <para> Other information on soundfonts on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Soundfont"><citetitle>http://en.wikipedia.org/wiki/Soundfont</citetitle></ulink></para>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>Author: &namesteven;</para>
diff --git a/opcodes/fmb3.xml b/opcodes/fmb3.xml
index 973b1b1..c9070d5 100644
--- a/opcodes/fmb3.xml
+++ b/opcodes/fmb3.xml
@@ -24,14 +24,17 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>fmb3</command> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
- ifn4, ivfn</synopsis>
+ <synopsis>ares <command>fmb3</command> kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, ifn3, \
+ ifn4, ivfn]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>fmb3</emphasis> takes 5 tables for initialization. The first 4 are the basic inputs and the last is the low frequency oscillator (LFO) used for vibrato. The last table should usually be a sine wave.
+ <emphasis>fmb3</emphasis> takes 5 tables for initialization. The
+ first 4 are the basic inputs and the last is the low frequency
+ oscillator (LFO) used for vibrato. The last table should usually
+ be a sine wave. These all default to a sine wave table.
</para>
<para>
@@ -109,7 +112,6 @@
<member>Bath, UK</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.47</para>
</refsect1>
diff --git a/opcodes/fmbell.xml b/opcodes/fmbell.xml
index 24e1888..4ea2b79 100644
--- a/opcodes/fmbell.xml
+++ b/opcodes/fmbell.xml
@@ -24,14 +24,17 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>fmbell</command> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \
- ifn4, ivfn</synopsis>
+ <synopsis>ares <command>fmbell</command> kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, ifn3, \
+ ifn4, ivfn, isus]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- All these opcodes take 5 tables for initialization. The first 4 are the basic inputs and the last is the low frequency oscillator (LFO) used for vibrato. The last table should usually be a sine wave.
+ All these opcodes take 5 tables for initialization. The first 4
+ are the basic inputs and the last is the low frequency
+ oscillator (LFO) used for vibrato. These all default to a
+ siewave table.
</para>
<para>
@@ -43,6 +46,11 @@
<listitem><para><emphasis>ifn4</emphasis> -- sine wave</para></listitem>
</itemizedlist>
</para>
+
+ <para>
+ The optional argument <emphasis>isus</emphasis> controls how long the
+ sound lasts, or how quickly it decays. It defaults to 4.
+ </para>
</refsect1>
<refsect1>
@@ -109,8 +117,9 @@
<member>Bath, UK</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.47</para>
+ <para>Optional argument new in 5.16</para>
+ <para>More optional argument new in 6.0</para>
</refsect1>
</refentry>
diff --git a/opcodes/fmmetal.xml b/opcodes/fmmetal.xml
index 4751285..92f1f0e 100644
--- a/opcodes/fmmetal.xml
+++ b/opcodes/fmmetal.xml
@@ -116,7 +116,6 @@
<member>Bath, UK</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.47</para>
</refsect1>
diff --git a/opcodes/fmpercfl.xml b/opcodes/fmpercfl.xml
index 2d817c6..46bea9d 100644
--- a/opcodes/fmpercfl.xml
+++ b/opcodes/fmpercfl.xml
@@ -24,14 +24,17 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>fmpercfl</command> kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, \
- ifn3, ifn4, ivfn</synopsis>
+ <synopsis>ares <command>fmpercfl</command> kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, \
+ ifn3, ifn4, ivfn]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- All these opcodes take 5 tables for initialization. The first 4 are the basic inputs and the last is the low frequency oscillator (LFO) used for vibrato. The last table should usually be a sine wave.
+ All these opcodes take 5 tables for initialization. The first 4
+ are the basic inputs and the last is the low frequency
+ oscillator (LFO) used for vibrato. These all default to a sine
+ wave table.
</para>
<para>
@@ -109,7 +112,6 @@
<member>Bath, UK</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.47</para>
</refsect1>
diff --git a/opcodes/fmrhode.xml b/opcodes/fmrhode.xml
index 8a590b0..9061cbb 100644
--- a/opcodes/fmrhode.xml
+++ b/opcodes/fmrhode.xml
@@ -116,7 +116,6 @@
<member>Bath, UK</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.47</para>
</refsect1>
diff --git a/opcodes/fmvoice.xml b/opcodes/fmvoice.xml
index 2031c5b..641ba18 100644
--- a/opcodes/fmvoice.xml
+++ b/opcodes/fmvoice.xml
@@ -24,14 +24,15 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>fmvoice</command> kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate, ifn1, \
- ifn2, ifn3, ifn4, ivibfn</synopsis>
+ <synopsis>ares <command>fmvoice</command> kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate[, ifn1, \
+ ifn2, ifn3, ifn4, ivibfn]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifn1, ifn2, ifn3,ifn3</emphasis> -- Tables, usually of sinewaves.
+ <emphasis>ifn1, ifn2, ifn3,ifn3, ivibfn</emphasis> -- Tables,
+ usually of sinewaves. The last is for vibrato
</para>
</refsect1>
diff --git a/opcodes/fmwurlie.xml b/opcodes/fmwurlie.xml
index 5189da5..314d610 100644
--- a/opcodes/fmwurlie.xml
+++ b/opcodes/fmwurlie.xml
@@ -116,7 +116,6 @@
<member>Bath, UK</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.47</para>
</refsect1>
diff --git a/opcodes/fofilter.xml b/opcodes/fofilter.xml
index 33c28e9..3c17726 100644
--- a/opcodes/fofilter.xml
+++ b/opcodes/fofilter.xml
@@ -29,7 +29,7 @@ in SuperCollider, but this is possibly implemented differently(?).
<refsect1>
<title>Syntax</title>
- <synopsis>asig <command>fofilter</command> ain, kcf, kris, kdec[, istor]</synopsis>
+ <synopsis>asig <command>fofilter</command> ain, xcf, xris, xdec[, istor]</synopsis>
</refsect1>
<refsect1>
@@ -49,29 +49,29 @@ previous information to remain. The default value is 0.
<emphasis>asig</emphasis> -- input signal.
</para>
<para>
- <emphasis>kcf</emphasis> -- filter centre frequency
+ <emphasis>xcf</emphasis> -- filter centre frequency
</para>
<para>
- <emphasis>kris</emphasis> -- impulse response attack time (secs).
+ <emphasis>xris</emphasis> -- impulse response attack time (secs).
</para>
<para>
- <emphasis>kdec</emphasis> -- impulse response decay time (secs).
+ <emphasis>xdec</emphasis> -- impulse response decay time (secs).
</para>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the fofilter opcode. It uses the file <ulink url="examples/fofilter.csd"><citetitle>fofilter.csd</citetitle></ulink>.
+
<example>
- <title>Example</title>
- <programlisting>
-kfe <emphasis role="opc">expseg</emphasis> 10, p3<emphasis role="op">*</emphasis>0.9, 180, p3<emphasis role="op">*</emphasis>0.1, 175
-kenv <emphasis role="opc">linen</emphasis> 1000, 0.05, p3, 0.05
-asig <emphasis role="opc">buzz</emphasis> kenv, kfe, sr<emphasis role="op">/</emphasis>(2<emphasis role="op">*</emphasis>kfe), 1
-afil <emphasis role="opc">fofilter</emphasis> asig, 900, 0.007, 0.04
-
- <emphasis role="opc">out</emphasis> afil</programlisting>
+ <title>Example of the fofilter opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fofilter.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
@@ -85,5 +85,7 @@ afil <emphasis role="opc">fofilter</emphasis> asig, 900, 0.007, 0.04
</simplelist>
</para>
<para>New plugin in version 5</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>November 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/fog.xml b/opcodes/fog.xml
index 34c7867..cc4ed1a 100644
--- a/opcodes/fog.xml
+++ b/opcodes/fog.xml
@@ -85,22 +85,21 @@
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-;p4 = transposition factor
-;p5 = speed factor
-;p6 = function table for grain data
-i1 = <emphasis role="ohdr">sr</emphasis><emphasis role="op">/</emphasis><emphasis role="opc">ftlen</emphasis>(p6) ;scaling to reflect sample rate and table length
-a1 <emphasis role="opc">phasor</emphasis> i1*p5 ;index for speed
-a2 <emphasis role="opc">fog</emphasis> 5000, 100, p4, a1, 0, 0, , .01, .02, .01, 2, p6, 1, p3, 0, 1 </programlisting>
- </informalexample>
+ Here is an example of the fog opcode. It uses the file <ulink url="examples/fog.csd"><citetitle>fog.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the fog opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fog.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
-
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/follow2.xml b/opcodes/follow2.xml
index e8205f1..f64f94d 100644
--- a/opcodes/follow2.xml
+++ b/opcodes/follow2.xml
@@ -67,7 +67,6 @@
<member>February 2000</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 4.03</para>
<para>Added notes by &namerasmus; on September 2002.</para>
diff --git a/opcodes/foscil.xml b/opcodes/foscil.xml
index fb89cb2..c22e285 100644
--- a/opcodes/foscil.xml
+++ b/opcodes/foscil.xml
@@ -107,9 +107,9 @@
</example>
</para>
</refsect1>
-
+
<refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
+ <title>See Also</title>
+ <para> More information about frequency modulation on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Frequency_modulation_synthesis"><citetitle>http://en.wikipedia.org/wiki/Frequency_modulation_synthesis</citetitle></ulink></para>
</refsect1>
</refentry>
diff --git a/opcodes/foscili.xml b/opcodes/foscili.xml
index 2fd9303..629b0bb 100644
--- a/opcodes/foscili.xml
+++ b/opcodes/foscili.xml
@@ -72,17 +72,14 @@
<example>
<title>Example of the foscili opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/foscili.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
-
+
<refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
+ <title>See Also</title>
+ <para> More information about frequency modulation on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Frequency_modulation_synthesis"><citetitle>http://en.wikipedia.org/wiki/Frequency_modulation_synthesis</citetitle></ulink></para>
</refsect1>
</refentry>
diff --git a/opcodes/fout.xml b/opcodes/fout.xml
index afe8d41..45b0d37 100644
--- a/opcodes/fout.xml
+++ b/opcodes/fout.xml
@@ -23,7 +23,8 @@
<refsect1>
<title>Syntax</title>
<synopsis><command>fout</command> ifilename, iformat, aout1 [, aout2, aout3,...,aoutN]</synopsis>
- </refsect1>
+ <synopsis><command>fout</command> ifilename, iformat, array[]</synopsis>
+ </refsect1>
<refsect1>
<title>Initialization</title>
@@ -115,16 +116,6 @@
</para>
<para>
- Here is an example of the fout opcode with a polyphonic score. It uses the file <ulink url="examples/fout_poly.csd"><citetitle>fout_poly.csd</citetitle></ulink> and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
-
- <example>
- <title>Example of the fout opcode with a polyphonic score.</title>
-
- <xi:include href="examples-xml/fout_poly.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
-
- <para>
Here is another example of <emphasis>fout</emphasis>, using it to save the contents of a table to an audio file. It uses the file <ulink url="examples/fout_ftable.csd"><citetitle>fout_ftable.csd</citetitle></ulink> and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
<example>
@@ -153,11 +144,13 @@
<member>Author: &namegabriel;</member>
<member>Italy</member>
<member>1999</member>
+ <member>Author: &namejohn;</member>
+ <member>NUIM, 2013</member>
</simplelist>
</para>
- <para>The simple example was written by &namekevin;.</para>
<para>New in Csound version 3.56</para>
<para>October 2002. Added a note from Richard Dobson.</para>
+ <para>Array version new in 6.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/fouti.xml b/opcodes/fouti.xml
index eac44c1..4a9810d 100644
--- a/opcodes/fouti.xml
+++ b/opcodes/fouti.xml
@@ -78,6 +78,18 @@
Notice that <link linkend="fout"><citetitle>fout</citetitle></link> and <link linkend="foutk"><citetitle>foutk</citetitle></link> can use either a string containing a file pathname, or a handle-number generated by <link linkend="fiopen"><citetitle>fiopen</citetitle></link>. Whereas, with <emphasis>fouti</emphasis> and <link linkend="foutir"><citetitle>foutir</citetitle></link>, the target file can be only specified by means of a handle-number.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the fouti opcode. It uses the file <ulink url="examples/fouti.csd"><citetitle>fouti.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the fouti opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fouti.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/foutir.xml b/opcodes/foutir.xml
index a9890e4..5efaf21 100644
--- a/opcodes/foutir.xml
+++ b/opcodes/foutir.xml
@@ -82,6 +82,18 @@
Notice that <link linkend="fout"><citetitle>fout</citetitle></link> and <link linkend="foutk"><citetitle>foutk</citetitle></link> can use either a string containing a file pathname, or a handle-number generated by <link linkend="fiopen"><citetitle>fiopen</citetitle></link>. Whereas, with <link linkend="fouti"><citetitle>fouti</citetitle></link> and <emphasis>foutir</emphasis>, the target file can be only specified by means of a handle-number.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the foutir opcode. It uses the file <ulink url="examples/foutir.csd"><citetitle>foutir.csd</citetitle></ulink>and creates a list "foutir.sco". It can be used as a score file.
+ <example>
+ <title>Example of the foutir opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/foutir.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/fractalnoise.xml b/opcodes/fractalnoise.xml
new file mode 100644
index 0000000..8953a81
--- /dev/null
+++ b/opcodes/fractalnoise.xml
@@ -0,0 +1,97 @@
+<refentry id="fractalnoise">
+ <indexterm id="IndexFractalNoise"><primary>fractalnoise</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Random (Noise) Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>fractalnoise</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>fractalnoise</refname>
+ <refpurpose>
+ A fractal noise generator.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ A fractal noise generator implemented as a white noise filtered
+ by a cascade of 15 first-order filters.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>fractalnoise</command> kamp, kbeta</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kamp</emphasis> -- amplitude.
+ </para>
+
+ <para>
+ <emphasis>kbeta</emphasis> -- spectral parameter related to the fractal dimension
+ <itemizedlist>
+ <listitem><para>0 - white</para></listitem>
+ <listitem><para>1 - pink</para></listitem>
+ <listitem><para>2 - brown</para></listitem>
+ </itemizedlist>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the fractalnoise opcode. It uses the file <ulink url="examples/fractalnoise.csd"><citetitle>fractalnoise.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the fractalnoise opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/fractalnoise.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>References</title>
+ <para>
+ <orderedlist>
+ <listitem>
+ <para>
+ R. Saletti. A comparison between two methods to generate
+ 1/(f^gamma) noise. In Proc. IEEE, volume 74,
+ pp. 1595-1596, November 1986.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ G. Corsini and R. Saletti. A 1/(f^gamma) power spectrum
+ noise sequence generator. IEEE Trans. on Instrumentation
+ and Measurement, 37(4):615-619, December 1988.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The Sounding Object, edited by Davide Rocchesso and
+ Federico Fontana, Edizioni di Mondo Estremo. Chapter 8 by
+ Federico Avanzini, pp. 154-157.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &nametito;</member>
+ <member>January 2012</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 5.16</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/ftchnls.xml b/opcodes/ftchnls.xml
index 8ec5056..1e49149 100644
--- a/opcodes/ftchnls.xml
+++ b/opcodes/ftchnls.xml
@@ -1,79 +1,74 @@
-
-<refentry id="ftchnls">
-<indexterm id="IndexFtchnls"><primary>ftchnls</primary></indexterm>
- <refentryinfo><title>Table Control:Table Queries</title></refentryinfo>
- <refmeta>
- <refentrytitle>ftchnls</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>ftchnls</refname>
- <refpurpose>
- Returns the number of channels in a stored function table.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Returns the number of channels in a stored function table.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>ftchnls</command>(x) (init-rate args only)</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- Returns the number of channels of a <link linkend="GEN01"><citetitle>GEN01</citetitle></link> table, determined from the header of the original file. If the original file has no header or the table was not created by these GEN01, <emphasis>ftchnls</emphasis> returns -1.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the ftchnls opcode. It uses the file <ulink url="examples/ftchnls.csd"><citetitle>ftchnls.csd</citetitle></ulink>, and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
-
- <example>
- <title>Example of the ftchnls opcode.</title>
-
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/ftchnls.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
-
- Since the audio file <quote>mary.wav</quote> is monophonic (1 channel), its output should include a line like this:
- <screen>
-instr 1: ichnls = 1.000
- </screen>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="ftlen"><citetitle>ftlen</citetitle></link>,
- <link linkend="ftlptim"><citetitle>ftlptim</citetitle></link>,
- <link linkend="ftsr"><citetitle>ftsr</citetitle></link>,
- <link linkend="nsamp"><citetitle>nsamp</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: Chris McCormick</member>
- <member>Perth, Australia</member>
- <member>December 2001</member>
- </simplelist>
- </para>
- <para>Example written by &namekevin;.</para>
- </refsect1>
-</refentry>
+
+<refentry id="ftchnls">
+<indexterm id="IndexFtchnls"><primary>ftchnls</primary></indexterm>
+ <refentryinfo><title>Table Control:Table Queries</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>ftchnls</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>ftchnls</refname>
+ <refpurpose>
+ Returns the number of channels in a stored function table.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Returns the number of channels in a stored function table.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>ftchnls</command>(x) (init-rate args only)</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ Returns the number of channels of a <link linkend="GEN01"><citetitle>GEN01</citetitle></link> table, determined from the header of the original file. If the original file has no header or the table was not created by these GEN01, <emphasis>ftchnls</emphasis> returns -1.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the ftchnls opcode. It uses the files <ulink url="examples/ftchnls.csd"><citetitle>ftchnls.csd</citetitle></ulink>, <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>, and <ulink url="examples/kickroll.wav"><citetitle>kickroll.wav</citetitle></ulink>.
+
+ <example>
+ <title>Example of the ftchnls opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/ftchnls.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ The audio file <quote>mary.wav</quote> is monophonic, the audio file <quote>kickroll.wav</quote> is stereophonic, so its output should include lines like these:
+ <screen>
+instr 1: ichnls = 1.000
+instr 1: ichnls = 2.000
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="ftlen"><citetitle>ftlen</citetitle></link>,
+ <link linkend="ftlptim"><citetitle>ftlptim</citetitle></link>,
+ <link linkend="ftsr"><citetitle>ftsr</citetitle></link>,
+ <link linkend="nsamp"><citetitle>nsamp</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Chris McCormick</member>
+ <member>Perth, Australia</member>
+ <member>December 2001</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/ftfree.xml b/opcodes/ftfree.xml
index a36b30c..1ea7263 100644
--- a/opcodes/ftfree.xml
+++ b/opcodes/ftfree.xml
@@ -39,12 +39,29 @@
</para>
</refsect1>
-<!--
- <refsect1>
- <title>Performance</title>
- </refsect1>-->
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the ftfree opcode. It uses the file <ulink url="examples/ftfree.csd"><citetitle>ftfree.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the ftfree opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/ftfree.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <screen>
+instr 1: gitempTable = 101.000
+B 0.000 .. 3.000 T 3.000 TT 3.000 M: 0.50000 0.50000
+INIT ERROR in instr 1: Invalid ftable no. 101.000000
+instr 1: gitempTable = 101.000
+Error deleting ftable 101
+ B 3.000 - note deleted. i1 had 1 init errors
+B 3.000 .. 5.000 T 5.000 TT 5.000 M: 0.00000 0.00000
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
diff --git a/opcodes/ftgen.xml b/opcodes/ftgen.xml
index 1b75cab..0ccc937 100644
--- a/opcodes/ftgen.xml
+++ b/opcodes/ftgen.xml
@@ -104,7 +104,6 @@
<member>1997</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>Added warning April 2002 by &namerasmus;</para>
</refsect1>
diff --git a/opcodes/ftgenonce.xml b/opcodes/ftgenonce.xml
index 3a209c9..e83ce4c 100644
--- a/opcodes/ftgenonce.xml
+++ b/opcodes/ftgenonce.xml
@@ -8,7 +8,7 @@
<refnamediv>
<refname>ftgenonce</refname>
<refpurpose>
- Generate a score function table from within the orchestra, which is deleted at the end of the note.
+ Generate a function table from within an instrument definition, without duplication of data.
</refpurpose>
</refnamediv>
@@ -75,7 +75,19 @@
<refsect1>
<title>Performance</title>
</refsect1>-->
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the ftgenonce opcode. It uses the file <ulink url="examples/ftgenonce.csd"><citetitle>ftgenonce.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the ftgenonce opcode.</title>
+ <xi:include href="examples-xml/ftgenonce.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
diff --git a/opcodes/ftlen.xml b/opcodes/ftlen.xml
index ba841f4..6766982 100644
--- a/opcodes/ftlen.xml
+++ b/opcodes/ftlen.xml
@@ -40,7 +40,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the ftlen opcode. It uses the file <ulink url="examples/ftlen.csd"><citetitle>ftlen.csd</citetitle></ulink>, and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
+ Here is an example of the ftlen opcode. It uses the file <ulink url="examples/ftlen.csd"><citetitle>ftlen.csd</citetitle></ulink>, <ulink url="examples/fox.wav"><citetitle>fox.wav</citetitle></ulink> and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
<example>
<title>Example of the ftlen opcode.</title>
@@ -51,9 +51,10 @@
<xi:include href="examples-xml/ftlen.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- The audio file <quote>mary.wav</quote> is 154390 samples long. The ftlen opcode reports it as 154389 samples long because it reserves 1 point for the guard point. Its output should include a line like this:
+ The audio file <quote>fox.wav</quote> is 121569 samples long, <quote>beats.wav</quote> has a length of 88200 samples. The ftlen opcode reports them as 121568 and 88199 samples, because it reserves 1 point for the guard point. Its output should include lines like these:
<screen>
-instr 1: ilen = 154389.000
+instr 1: ift = 121568.000
+instr 1: ift = 88199.000
</screen>
</para>
</refsect1>
@@ -78,6 +79,5 @@ instr 1: ilen = 154389.000
<member>1997</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/ftlptim.xml b/opcodes/ftlptim.xml
index 7f7b3cb..fc1bac7 100644
--- a/opcodes/ftlptim.xml
+++ b/opcodes/ftlptim.xml
@@ -1,81 +1,81 @@
-
-<refentry id="ftlptim">
-<indexterm id="IndexFtlptim"><primary>ftlptim</primary></indexterm>
- <refentryinfo><title>Table Control:Table Queries</title></refentryinfo>
- <refmeta>
- <refentrytitle>ftlptim</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>ftlptim</refname>
- <refpurpose>
- Returns the loop segment start-time of a stored function table number.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Returns the loop segment start-time of a stored function table number.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>ftlptim</command>(x) (init-rate args only)</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- Returns the loop segment start-time (in seconds) of stored function table number <emphasis>x</emphasis>. This reports the duration of the direct recorded attack and decay parts of a sound sample, prior to its looped segment. Returns zero (and a warning message) if the sample does not contain loop points.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the ftlptim opcode. It uses the file <ulink url="examples/ftlptim.csd"><citetitle>ftlptim.csd</citetitle></ulink>, and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
-
- <example>
- <title>Example of the ftlptim opcode.</title>
-
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/ftlptim.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
-
- Since the audio file <quote>mary.wav</quote> is non-looping, its output should include lines like this:
- <screen>
-WARNING: non-looping sample
-instr 1: itim = 0.000
- </screen>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="ftchnls"><citetitle>ftchnls</citetitle></link>,
- <link linkend="ftlen"><citetitle>ftlen</citetitle></link>,
- <link linkend="ftsr"><citetitle>ftsr</citetitle></link>,
- <link linkend="nsamp"><citetitle>nsamp</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: &namebarry;</member>
- <member>MIT</member>
- <member>Cambridge, Massachussetts</member>
- <member>1997</member>
- </simplelist>
- </para>
- <para>Example written by &namekevin;.</para>
- </refsect1>
-</refentry>
+
+<refentry id="ftlptim">
+<indexterm id="IndexFtlptim"><primary>ftlptim</primary></indexterm>
+ <refentryinfo><title>Table Control:Table Queries</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>ftlptim</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>ftlptim</refname>
+ <refpurpose>
+ Returns the loop segment start-time of a stored function table number.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Returns the loop segment start-time of a stored function table number.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>ftlptim</command>(x) (init-rate args only)</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ Returns the loop segment start-time (in seconds) of stored function table number <emphasis>x</emphasis>. This reports the duration of the direct recorded attack and decay parts of a sound sample, prior to its looped segment. Returns zero (and a warning message) if the sample does not contain loop points.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the ftlptim opcode. It uses the files <ulink url="examples/ftlptim.csd"><citetitle>ftlptim.csd</citetitle></ulink>, and <ulink url="examples/Church.wav"><citetitle>Church.wav</citetitle></ulink>.
+
+ <example>
+ <title>Example of the ftlptim opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/ftlptim.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ The audio file <quote>Church.wav</quote> is a looped sample, its output should include lines like these:
+ <screen>
+Base Note : 60 Detune : 0
+Low Note : 0 High Note : 127
+Low Vel. : 0 High Vel. : 127
+Gain : 1 Count : 1
+mode : 801
+start : 4529 end : 4912 count :0
+mode : 0
+start : 0 end : 0 count :0
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="ftchnls"><citetitle>ftchnls</citetitle></link>,
+ <link linkend="ftlen"><citetitle>ftlen</citetitle></link>,
+ <link linkend="ftsr"><citetitle>ftsr</citetitle></link>,
+ <link linkend="nsamp"><citetitle>nsamp</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namebarry;</member>
+ <member>MIT</member>
+ <member>Cambridge, Massachussetts</member>
+ <member>1997</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/ftmorf.xml b/opcodes/ftmorf.xml
index fe6f989..f386f87 100644
--- a/opcodes/ftmorf.xml
+++ b/opcodes/ftmorf.xml
@@ -30,7 +30,7 @@
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>iftfn</emphasis> -- The ftable function. The list of values are expected to be pre-existing ftable numbers.
+ <emphasis>iftfn</emphasis> -- The table containing the numbers of any existing tables which are used for the morphing.
</para>
<para>
diff --git a/opcodes/ftsr.xml b/opcodes/ftsr.xml
index a7aad35..51e0529 100644
--- a/opcodes/ftsr.xml
+++ b/opcodes/ftsr.xml
@@ -37,20 +37,18 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the ftsr opcode. It uses the file <ulink url="examples/ftsr.csd"><citetitle>ftsr.csd</citetitle></ulink>, and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
-
+ Here is an example of the ftsr opcode. It uses the file <ulink url="examples/ftsr.csd"><citetitle>ftsr.csd</citetitle></ulink>.
<example>
<title>Example of the ftsr opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/ftsr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Since the audio file <quote>mary.wav</quote> uses a 44.1 Khz sampling rate, its output should a line like this:
+its output should a line like these:
<screen>
-instr 1: isr = 44100.000
+sampling-rate of table number 1 = 44100
+sampling-rate of table number 2 = 22050
+sampling-rate of table number 3 = 44100
+sampling-rate of table number 4 = 44100
</screen>
</para>
</refsect1>
@@ -74,6 +72,5 @@ instr 1: isr = 44100.000
<member>October 1998</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/gaussi.xml b/opcodes/gaussi.xml
new file mode 100644
index 0000000..7763634
--- /dev/null
+++ b/opcodes/gaussi.xml
@@ -0,0 +1,102 @@
+
+<refentry id="gaussi">
+<indexterm id="IndexGaussiXClass"><primary>x-class noise generators</primary></indexterm>
+
+<indexterm id="IndexGaussi"><primary>gaussi</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Random (Noise) Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>gaussi</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>gaussi</refname>
+ <refpurpose>
+ Gaussian distribution random number generator with
+ interpolation.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Gaussian distribution random number generator with controlled
+ interpolation between values. This is an
+ x-class noise generator.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>gaussi</command> krange, xamp, xcps</synopsis>
+ <synopsis>ires <command>gaussi</command> krange, xamp, xcps</synopsis>
+ <synopsis>kres <command>gaussi</command> krange, xamp, xcps</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>krange</emphasis> -- the range of the random numbers (-<emphasis>krange</emphasis> to +<emphasis>krange</emphasis>). Outputs both positive and negative numbers.
+ </para>
+ <para>
+ <emphasis>gauss</emphasis> returns random numbers following a normal distribution centered around 0.0 (mu = 0.0) with a variance (sigma) of <emphasis>krange</emphasis> / 3.83. Thus more than 99.99%
+ of the random values generated are in the range -<emphasis>krange</emphasis> to +<emphasis>krange</emphasis>. If a mean value different of 0.0 is desired, this mean value has to
+ be added to the generated numbers (see example below).
+ </para>
+
+ <para>
+ For more detailed explanation of these distributions, see:
+ <orderedlist>
+ <listitem>
+ <para>C. Dodge - T.A. Jerse 1985. Computer music. Schirmer books. pp.265 - 286</para>
+ </listitem>
+
+ <listitem>
+ <para>D. Lorrain. A panoply of stochastic cannons. In C. Roads, ed. 1989. Music machine . Cambridge, Massachusetts: MIT press, pp. 351 - 379.</para>
+ </listitem>
+ </orderedlist>
+ </para>
+
+ <para>
+ <emphasis>xamp</emphasis> -- range over which random numbers are distributed.
+ </para>
+
+ <para>
+ <emphasis>xcps</emphasis> -- the frequency which new random
+ numbers are generated.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the gaussi opcode. It uses the file <ulink url="examples/gaussi.csd"><citetitle>gaussi.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the gaussi opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gaussi.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="gauss"><citetitle>gauss</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Bath</member>
+ <member>May 2011</member>
+ <member>New in version 5.14</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/gausstrig.xml b/opcodes/gausstrig.xml
new file mode 100644
index 0000000..d0268a6
--- /dev/null
+++ b/opcodes/gausstrig.xml
@@ -0,0 +1,99 @@
+<refentry id="gausstrig">
+ <indexterm id="IndexGausstrig"><primary>gausstrig</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Random (Noise) Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>gausstrig</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>gausstrig</refname>
+ <refpurpose>
+ Random impulses around a certain frequency.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generates random impulses around a certain frequency.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>gausstrig</command> kamp, kcps, kdev [, imode]</synopsis>
+ <synopsis>kres <command>gausstrig</command> kamp, kcps, kdev [, imode]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>imode</emphasis> (optional, default=0) -- imode &gt; 0
+ means better frequency modulation. If the frequency changes, the
+ delay before the next impulse is calculed again. With the
+ default mode we have the classic behavior of the GaussTrig ugen
+ in SuperCollider, where the frequency modulation is bypassed
+ during the delay time that precedes the next impulse.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kamp</emphasis> -- amplitude.
+ </para>
+
+ <para>
+ <emphasis>kcps</emphasis> -- the mean frequency over which random impulses are distributed.
+ </para>
+
+ <para>
+ <emphasis>kdev</emphasis> -- random deviation from mean (0 &lt;= dev &lt; 1).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the gausstrig opcode. It uses the file <ulink url="examples/gausstrig.csd"><citetitle>gausstrig.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the gausstrig opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gausstrig.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+
+ <para>
+ Here is an example of the gausstrig opcode with imode = 1. It uses the file <ulink url="examples/gausstrig-2.csd"><citetitle>gausstrig-2.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the gausstrig opcode with imode = 1.</title>
+
+ <xi:include href="examples-xml/gausstrig-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="dust"><citetitle>dust</citetitle></link>
+ <link linkend="dust2"><citetitle>dust2</citetitle></link>
+ <link linkend="mpulse"><citetitle>mpulse</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Based on Bhob Rainey's GaussTrig ugen (SuperCollider)</member>
+ <member>Author: &nametito;</member>
+ <member>January 2012</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 5.16</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/gbuzz.xml b/opcodes/gbuzz.xml
index 4e9c4b8..1f68a56 100644
--- a/opcodes/gbuzz.xml
+++ b/opcodes/gbuzz.xml
@@ -89,7 +89,6 @@
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
<para>September 2003. Thanks to &namekanata; for correcting the mentions of the <emphasis>kmul</emphasis> parameter.</para>
</refsect1>
</refentry>
diff --git a/opcodes/genarray.xml b/opcodes/genarray.xml
new file mode 100644
index 0000000..ebeed2b
--- /dev/null
+++ b/opcodes/genarray.xml
@@ -0,0 +1,75 @@
+
+<refentry id="genarray">
+<indexterm id="IndexGenarray"><primary>genarray</primary></indexterm>
+
+ <refentryinfo><title>Table Control:Table Queries</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>genarray</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>genarray</refname>
+ <refpurpose>
+ Generate a vector with an arithmetic sequence.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generate a vector (one-dimensional k-rate or i-rate array) with an arithmetic sequence.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>karray <command>genarray</command> kstart, kens[, inc]</synopsis>
+ <synopsis>iarray <command>genarray</command> istart, iens[, inc]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>istart</emphasis> -- value to place in first element.
+ </para>
+ <para>
+ <emphasis>iend</emphasis> -- last value to place in array.
+ </para>
+ <para>
+ <emphasis>inc</emphasis> -- amount to add to previous value
+ (default 1).
+ </para>
+ </refsect1>
+
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the genarray opcode. It uses the file <ulink url="examples/genarray.csd"><citetitle>genarray.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the genarray opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/genarray.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vectorial"><citetitle></citetitle>Vectorial opcodes</link>
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Codemist Ltd</member>
+ <member>2013</member>
+ </simplelist>
+ </para>
+ <para>New in version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/genarray_i.xml b/opcodes/genarray_i.xml
new file mode 100644
index 0000000..b23429d
--- /dev/null
+++ b/opcodes/genarray_i.xml
@@ -0,0 +1,77 @@
+
+<refentry id="genarray_i">
+<indexterm id="IndexGenarray_i"><primary>genarray_i</primary></indexterm>
+
+ <refentryinfo><title>Table Control:Table Queries</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>genarray_i</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>genarray_i</refname>
+ <refpurpose>
+ Generate a vector with an arithmetic sequence.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generate a vector (one-dimensional k-rate) with an arithmetic
+ sequence at initialisation time.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>karray <command>genarray_i</command> istart, iend [,inc]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>istart</emphasis> -- value to place in first element.
+ </para>
+ <para>
+ <emphasis>iend</emphasis> -- last value to place in array.
+ </para>
+ <para>
+ <emphasis>inc</emphasis> -- amount to add to previous value
+ (default 1).
+ </para>
+ </refsect1>
+
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the genarray_i opcode. It uses the file <ulink url="examples/genarray_i.csd"><citetitle>genarray_i.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the genarray_i opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/genarray_i.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vectorial"><citetitle></citetitle>Vectorial
+ opcodes</link>
+ <link linkend="fillarray"><citetitle>fillarray</citetitle></link>
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Codemist Ltd</member>
+ <member>2013</member>
+ </simplelist>
+ </para>
+ <para>New in version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/gendy.xml b/opcodes/gendy.xml
new file mode 100644
index 0000000..613842f
--- /dev/null
+++ b/opcodes/gendy.xml
@@ -0,0 +1,171 @@
+<refentry id="gendy">
+ <indexterm id="IndexGendy"><primary>gendy</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Models and Emulations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>gendy</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>gendy</refname>
+ <refpurpose>
+ Dynamic stochastic approach to waveform synthesis conceived by Iannis Xenakis.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Implementation of the <emphasis>Génération Dynamique Stochastique</emphasis>
+ (GENDYN), a dynamic stochastic approach to waveform synthesis conceived
+ by Iannis Xenakis.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>gendy</command> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis>
+ <synopsis>kres <command>gendy</command> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>initcps</emphasis> (optional, default=12) -- max number of
+ control points.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kamp</emphasis> -- amplitude.
+ </para>
+ <para>
+ <emphasis>kampdist</emphasis> -- choice of probability
+ distribution for the next perturbation of the amplitude of a
+ control point. The valid distributions are:
+ <itemizedlist>
+ <listitem><para>0 - LINEAR</para></listitem>
+ <listitem><para>1 - CAUCHY</para></listitem>
+ <listitem><para>2 - LOGIST</para></listitem>
+ <listitem><para>3 - HYPERBCOS</para></listitem>
+ <listitem><para>4 - ARCSINE</para></listitem>
+ <listitem><para>5 - EXPON</para></listitem>
+ <listitem><para>6 - SINUS (external k-rate signal)</para></listitem>
+ </itemizedlist>
+ If <emphasis>kampdist</emphasis>=6, the user can use an external
+ k-rate signal through <emphasis>kadpar</emphasis>.
+ </para>
+ <para>
+ <emphasis>kdurdist</emphasis> -- choice of distribution for the
+ perturbation of the current inter control point
+ duration. See <emphasis>kampdist</emphasis> for the valid distributions.
+ If <emphasis>kdurdist</emphasis>=6, the user can use an external
+ k-rate signal through <emphasis>kddpar</emphasis>.
+ </para>
+ <para>
+ <emphasis>kadpar</emphasis> -- parameter for the <emphasis>kampdist</emphasis>
+ distribution. Should be in the range of 0.0001 to 1.
+ </para>
+ <para>
+ <emphasis>kddpar</emphasis> -- parameter for the <emphasis>kdurdist</emphasis>
+ distribution. Should be in the range of 0.0001 to 1.
+ </para>
+ <para>
+ <emphasis>kminfreq</emphasis> -- minimum allowed frequency of oscillation.
+ </para>
+ <para>
+ <emphasis>kmaxfreq</emphasis> -- maximum allowed frequency of oscillation.
+ </para>
+ <para>
+ <emphasis>kampscl</emphasis> -- multiplier for the
+ distribution's delta value for amplitude (1.0 is full range).
+ </para>
+ <para>
+ <emphasis>kdurscl</emphasis> -- multiplier for the distribution's delta value for duration.
+ </para>
+ <para>
+ <emphasis>knum</emphasis> (optional,
+ default=<emphasis>initcps</emphasis>) -- current number of utilized control points.
+ </para>
+
+ <para>
+ The waveform is generated by <emphasis>knum</emphasis> - 1
+ segments and is repeated in the time. The vertexes (control points)
+ are moved according to a stochastic action and they are limited
+ within the boundaries of a mirror formed by an amplitude barrier
+ and a time barrier.
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gendy.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>[A repetition of the generated waveform with <emphasis>knum</emphasis>=12.]</phrase>
+ </textobject>
+
+ <caption>
+ <para>A repetition of the generated waveform with <emphasis>knum</emphasis>=12.</para>
+ </caption>
+ </mediaobject>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the gendy opcode. It uses the file
+ <ulink url="examples/gendy.csd"><citetitle>gendy.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the gendy opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gendy.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ <para>
+ Here is an example of the gendy opcode with some modulations. It uses the file
+ <ulink url="examples/gendy-2.csd"><citetitle>gendy-2.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the gendy opcode with some modulations.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gendy-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>References</title>
+ <para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Formalized Music (1992, Stuyvesant, NY: Pendragon Press),
+ pp. 246 - 254, 289 - 322.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="gendyc"><citetitle>gendyc</citetitle></link>
+ <link linkend="gendyx"><citetitle>gendyx</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Based on Nick Collins's Gendy1 ugen (SuperCollider)</member>
+ <member>Author: &nametito;</member>
+ <member>January 2012</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 5.16</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/gendyc.xml b/opcodes/gendyc.xml
new file mode 100644
index 0000000..50e8102
--- /dev/null
+++ b/opcodes/gendyc.xml
@@ -0,0 +1,150 @@
+<refentry id="gendyc">
+ <indexterm id="IndexGendyc"><primary>gendyc</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Models and Emulations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>gendyc</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>gendyc</refname>
+ <refpurpose>
+ Dynamic stochastic approach to waveform synthesis using cubic interpolation.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Implementation with cubic interpolation of the
+ <emphasis>Génération Dynamique Stochastique</emphasis> (GENDYN),
+ a dynamic stochastic approach to waveform synthesis conceived by
+ Iannis Xenakis.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>gendyc</command> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis>
+ <synopsis>kres <command>gendyc</command> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl [, initcps] [, knum]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>initcps</emphasis> (optional, default=12) -- max number of
+ control points.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kamp</emphasis> -- amplitude.
+ </para>
+ <para>
+ <emphasis>kampdist</emphasis> -- choice of probability
+ distribution for the next perturbation of the amplitude of a
+ control point. The valid distributions are:
+ <itemizedlist>
+ <listitem><para>0 - LINEAR</para></listitem>
+ <listitem><para>1 - CAUCHY</para></listitem>
+ <listitem><para>2 - LOGIST</para></listitem>
+ <listitem><para>3 - HYPERBCOS</para></listitem>
+ <listitem><para>4 - ARCSINE</para></listitem>
+ <listitem><para>5 - EXPON</para></listitem>
+ <listitem><para>6 - SINUS (external k-rate signal)</para></listitem>
+ </itemizedlist>
+ If <emphasis>kampdist</emphasis>=6, the user can use an external
+ k-rate signal through <emphasis>kadpar</emphasis>.
+ </para>
+ <para>
+ <emphasis>kdurdist</emphasis> -- choice of distribution for the
+ perturbation of the current inter control point
+ duration. See <emphasis>kampdist</emphasis> for the valid distributions.
+ If <emphasis>kdurdist</emphasis>=6, the user can use an external
+ k-rate signal through <emphasis>kddpar</emphasis>.
+ </para>
+ <para>
+ <emphasis>kadpar</emphasis> -- parameter for the <emphasis>kampdist</emphasis>
+ distribution. Should be in the range of 0.0001 to 1.
+ </para>
+ <para>
+ <emphasis>kddpar</emphasis> -- parameter for the <emphasis>kdurdist</emphasis>
+ distribution. Should be in the range of 0.0001 to 1.
+ </para>
+ <para>
+ <emphasis>kminfreq</emphasis> -- minimum allowed frequency of oscillation.
+ </para>
+ <para>
+ <emphasis>kmaxfreq</emphasis> -- maximum allowed frequency of oscillation.
+ </para>
+ <para>
+ <emphasis>kampscl</emphasis> -- multiplier for the
+ distribution's delta value for amplitude (1.0 is full range).
+ </para>
+ <para>
+ <emphasis>kdurscl</emphasis> -- multiplier for the distribution's delta value for duration.
+ </para>
+ <para>
+ <emphasis>knum</emphasis> (optional,
+ default=<emphasis>initcps</emphasis>) -- current number of utilized control points.
+ </para>
+
+ <para>
+ The waveform is generated by <emphasis>knum</emphasis> - 1
+ segments and is repeated in the time. The vertexes (control points)
+ are moved according to a stochastic action and they are limited
+ within the boundaries of a mirror formed by an amplitude barrier
+ and a time barrier.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the gendyc opcode. It uses the file
+ <ulink url="examples/gendyc.csd"><citetitle>gendyc.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the gendyc opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gendyc.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>References</title>
+ <para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Formalized Music (1992, Stuyvesant, NY: Pendragon Press),
+ pp. 246 - 254, 289 - 322.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="gendy"><citetitle>gendy</citetitle></link>
+ <link linkend="gendyx"><citetitle>gendyx</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Based on Nick Collins's Gendy1 and Bhob Rainey's Gendy4 (SuperCollider)</member>
+ <member>Author: &nametito;</member>
+ <member>January 2012</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 5.16</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/gendyx.xml b/opcodes/gendyx.xml
new file mode 100644
index 0000000..cf435af
--- /dev/null
+++ b/opcodes/gendyx.xml
@@ -0,0 +1,192 @@
+<refentry id="gendyx">
+ <indexterm id="IndexGendyx"><primary>gendyx</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Models and Emulations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>gendyx</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>gendyx</refname>
+ <refpurpose>
+ Variation of the dynamic stochastic approach to waveform
+ synthesis conceived by Iannis Xenakis.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ <emphasis>gendyx</emphasis> (gendy eXtended) is an implementation
+ of the <emphasis>Génération Dynamique Stochastique</emphasis>
+ (GENDYN), a dynamic stochastic approach to waveform synthesis
+ conceived by Iannis Xenakis, using curves instead of segments.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>gendyx</command> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl, kcurveup, kcurvedown [, initcps] [, knum]</synopsis>
+ <synopsis>kres <command>gendyx</command> kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
+ kampscl, kdurscl, kcurveup, kcurvedown [, initcps] [, knum]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>initcps</emphasis> (optional, default=12) -- max number of
+ control points.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kamp</emphasis> -- amplitude.
+ </para>
+ <para>
+ <emphasis>kampdist</emphasis> -- choice of probability
+ distribution for the next perturbation of the amplitude of a
+ control point. The valid distributions are:
+ <itemizedlist>
+ <listitem><para>0 - LINEAR</para></listitem>
+ <listitem><para>1 - CAUCHY</para></listitem>
+ <listitem><para>2 - LOGIST</para></listitem>
+ <listitem><para>3 - HYPERBCOS</para></listitem>
+ <listitem><para>4 - ARCSINE</para></listitem>
+ <listitem><para>5 - EXPON</para></listitem>
+ <listitem><para>6 - SINUS (external k-rate signal)</para></listitem>
+ </itemizedlist>
+ If <emphasis>kampdist</emphasis>=6, the user can use an external
+ k-rate signal through <emphasis>kadpar</emphasis>.
+ </para>
+ <para>
+ <emphasis>kdurdist</emphasis> -- choice of distribution for the
+ perturbation of the current inter control point
+ duration. See <emphasis>kampdist</emphasis> for the valid distributions.
+ If <emphasis>kdurdist</emphasis>=6, the user can use an external
+ k-rate signal through <emphasis>kddpar</emphasis>.
+ </para>
+ <para>
+ <emphasis>kadpar</emphasis> -- parameter for the <emphasis>kampdist</emphasis>
+ distribution. Should be in the range of 0.0001 to 1.
+ </para>
+ <para>
+ <emphasis>kddpar</emphasis> -- parameter for the <emphasis>kdurdist</emphasis>
+ distribution. Should be in the range of 0.0001 to 1.
+ </para>
+ <para>
+ <emphasis>kminfreq</emphasis> -- minimum allowed frequency of oscillation.
+ </para>
+ <para>
+ <emphasis>kmaxfreq</emphasis> -- maximum allowed frequency of oscillation.
+ </para>
+ <para>
+ <emphasis>kampscl</emphasis> -- multiplier for the
+ distribution's delta value for amplitude (1.0 is full range).
+ </para>
+ <para>
+ <emphasis>kdurscl</emphasis> -- multiplier for the distribution's delta value for duration.
+ </para>
+ <para>
+ <emphasis>kcurveup</emphasis> -- controls the curve for the increasing
+ amplitudes between two points; it has to be non negative.
+ <itemizedlist>
+ <listitem><para>0: step function (like a sample &amp; hold)</para></listitem>
+ <listitem><para>&lt;1: concave</para></listitem>
+ <listitem><para>1: linear (like gendy)</para></listitem>
+ <listitem><para>&gt;1: convex</para></listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ <emphasis>kcurvedown</emphasis> -- controls the curve for the decreasing
+ amplitudes between two points; it has to be non negative.
+ <itemizedlist>
+ <listitem><para>0: step function</para></listitem>
+ <listitem><para>&lt;1: convex</para></listitem>
+ <listitem><para>1: linear</para></listitem>
+ <listitem><para>&gt;1: concave</para></listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ <emphasis>knum</emphasis> (optional,
+ default=<emphasis>initcps</emphasis>) -- current number of utilized control points.
+ </para>
+ <para>
+ The waveform is generated by <emphasis>knum</emphasis> - 1
+ curves and is repeated in the time. The vertexes (control points)
+ are moved according to a stochastic action and they are limited
+ within the boundaries of a mirror formed by an amplitude barrier
+ and a time barrier.
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gendyx.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>[Extract of a waveform generated with <emphasis>gendyx</emphasis>.]</phrase>
+ </textobject>
+
+ <caption>
+ <para>Extract of a waveform generated with <emphasis>gendyx</emphasis>.</para>
+ </caption>
+ </mediaobject>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the gendyx opcode. It uses the file
+ <ulink url="examples/gendyx.csd"><citetitle>gendyx.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the gendyx opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gendyx.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ <para>
+ Here is an example of the gendyx opcode with some modulations. It uses the file
+ <ulink url="examples/gendyx-2.csd"><citetitle>gendyx-2.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the gendyx opcode with some modulations.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gendyx-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>References</title>
+ <para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Formalized Music (1992, Stuyvesant, NY: Pendragon Press),
+ pp. 246 - 254, 289 - 322.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="gendy"><citetitle>gendy</citetitle></link>
+ <link linkend="gendyc"><citetitle>gendyc</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Variation of the Nick Collins's Gendy1 ugen (SuperCollider)</member>
+ <member>Author: &nametito;</member>
+ <member>January 2012</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 5.16</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/getcfg.xml b/opcodes/getcfg.xml
index 2e895c6..d68152d 100644
--- a/opcodes/getcfg.xml
+++ b/opcodes/getcfg.xml
@@ -66,6 +66,35 @@
</para>
</refsect1>
+<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the getcfg opcode. It uses the file <ulink url="examples/getcfg.csd"><citetitle>getcfg.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the getcfg opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/getcfg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ The output should include lines like these:
+ <screen>
+------------------------------
+Max string len : 255
+Input file name (-i) : adc
+Output file name (-o) : dac
+RTaudio (-odac) : 1
+Beat mode (-t)? : 0
+Host Op. Sys. : Linux
+Callback ? : 0
+------------------------------
+ </screen>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/grain.xml b/opcodes/grain.xml
index a1f4ea1..cc29576 100644
--- a/opcodes/grain.xml
+++ b/opcodes/grain.xml
@@ -86,7 +86,7 @@
<refsect1>
<title>Examples</title>
<para>
- This example generates a texture with gradually shorter grains and wider amp and pitch spread. It uses the file <ulink url="examples/grain.csd"><citetitle>grain.csd</citetitle></ulink>, and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
+ This example generates a texture with gradually shorter grains and wider amp and pitch spread. It uses the file <ulink url="examples/grain.csd"><citetitle>grain.csd</citetitle></ulink>, and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
<example>
<title>Example of the grain opcode.</title>
diff --git a/opcodes/guiro.xml b/opcodes/guiro.xml
index 4ffcb8a..3b830d4 100644
--- a/opcodes/guiro.xml
+++ b/opcodes/guiro.xml
@@ -46,11 +46,11 @@
</para>
<para>
- <emphasis>ifreq</emphasis> (optional) -- the main resonant frequency. The default value is 2500.
+ <emphasis>ifreq</emphasis> (optional) -- the main resonant frequency. The default value is 2500 Hz.
</para>
<para>
- <emphasis>ifreq1</emphasis> (optional) -- the first resonant frequency.
+ <emphasis>ifreq1</emphasis> (optional) -- the first resonant frequency. Default value here is 4000 Hz
</para>
</refsect1>
diff --git a/opcodes/harmon.xml b/opcodes/harmon.xml
index 2b91434..09cb004 100644
--- a/opcodes/harmon.xml
+++ b/opcodes/harmon.xml
@@ -100,6 +100,5 @@
</simplelist>
</para>
<para>New in version 3.47</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/harmon234.xml b/opcodes/harmon234.xml
index cb5e222..ec5b3e5 100644
--- a/opcodes/harmon234.xml
+++ b/opcodes/harmon234.xml
@@ -116,6 +116,14 @@ a4 <emphasis role="opc">harmon2</emphasis> a3, koct, 1.25, 0.75, 0, 6.
<emphasis role="opc">outs</emphasis> a3, a4 <emphasis role="comment">; as well as the original</emphasis></programlisting>
</example>
</para>
+ <para>
+ Here is a complete example of the harmon3 opcode. It uses the file <ulink url="examples/harmon3.csd"><citetitle>harmon3.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the harmon3 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/harmon3.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/hilbert.xml b/opcodes/hilbert.xml
index ec24257..f9424ec 100644
--- a/opcodes/hilbert.xml
+++ b/opcodes/hilbert.xml
@@ -64,7 +64,7 @@
</para>
<para>
- Here is the first example of the hilbert opcode. It uses the file <ulink url="examples/hilbert.csd"><citetitle>hilbert.csd</citetitle></ulink>, and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
+ Here is the first example of the hilbert opcode. It uses the file <ulink url="examples/hilbert.csd"><citetitle>hilbert.csd</citetitle></ulink>, and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
<example>
<title>Example of the hilbert opcode implementing frequency shifting.</title>
@@ -79,7 +79,7 @@
</para>
<para>
- Here is the second example of the hilbert opcode. It uses the file <ulink url="examples/hilbert_barberpole.csd"><citetitle>hilbert_barberpole.csd</citetitle></ulink>, and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
+ Here is the second example of the hilbert opcode. It uses the file <ulink url="examples/hilbert_barberpole.csd"><citetitle>hilbert_barberpole.csd</citetitle></ulink>.
<example>
<title>Example of the hilbert opcode sounding like a <quote>barberpole phaser</quote>.</title>
diff --git a/opcodes/hrtfearly.xml b/opcodes/hrtfearly.xml
new file mode 100644
index 0000000..bcbe0ec
--- /dev/null
+++ b/opcodes/hrtfearly.xml
@@ -0,0 +1,171 @@
+
+<refentry id="hrtfearly">
+<indexterm id="IndexHrtfearly"><primary>hrtfearly</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Panning and Spatialization</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>hrtfearly</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>hrtfearly</refname>
+ <refpurpose>
+ Generates 3D binaural audio with high-fidelity early reflections in a parametric room using a Phase Truncation algorithm.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ This opcode essentially nests the <link linkend="hrtfmove"><citetitle>hrtfmove</citetitle></link> opcode in an image model for a user-definable shoebox-shaped room. A default room can be selected, or advanced room parameters can be used. Room surfaces can be controlled with high and low-frequency absorption coefficients and gain factors of a three-band equaliser.
+ </para>
+ <para>
+ Although valid as a stand alone opcode, <emphasis>hrtfearly</emphasis> is designed to work with <link linkend="hrtfreverb"><citetitle>hrtfreverb</citetitle></link> to provide spatially accurate, dynamic binaural reverberation. A number of sources can be processed dynamically using a number of <emphasis>hrtfearly</emphasis> instances. All can then be processed with one instance of <link linkend="hrtfreverb"><citetitle>hrtfreverb</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>aleft, aright, irt60low, irt60high, imfp <command>hrtfearly</command> asrc, ksrcx, ksrcy, ksrcz, klstnrx, klstnry, klstnrz, \
+ ifilel, ifiler, idefroom [,ifade, isr, iorder, ithreed, kheadrot, iroomx, iroomy, iroomz, iwallhigh, \
+ iwalllow, iwallgain1, iwallgain2, iwallgain3, ifloorhigh, ifloorlow, ifloorgain1, ifloorgain2, \
+ ifloorgain3, iceilinghigh, iceilinglow, iceilinggain1, iceilinggain2, iceilinggain3]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifilel</emphasis> - left HRTF spectral data file.
+ </para>
+ <para>
+ <emphasis>ifiler</emphasis> - right HRTF spectral data file.
+ </para>
+ <note>
+ <para>Spectral datafiles (based on the MIT HRTF database) are available in 3 different sampling rates: 44.1, 48 and 96 kHz and are labelled accordingly. Input and processing <emphasis>sr</emphasis> should match datafile <emphasis>sr</emphasis>. Files should be in the current directory or the SADIR (see <link linkend="CommandEnvironment"><citetitle>Environment Variables</citetitle></link>).
+ </para>
+ </note>
+ <note>
+ <para>HRTF Data files for use with
+ <link linkend="hrtfmove"><citetitle>hrtfmove</citetitle></link>,
+ <link linkend="hrtfmove2"><citetitle>hrtfmove2</citetitle></link>,
+ <link linkend="hrtfstat"><citetitle>hrtfstat</citetitle></link>,
+ <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link>,
+ <link linkend="hrtfreverb"><citetitle>hrtfreverb</citetitle></link>
+ were updated for Csound 5.15 and later (the code was updated and is more efficient). Old datafiles are now deprecated.
+ </para>
+ </note>
+ <para>
+ <emphasis>idefroom</emphasis> - default room, medium (1: 10*10*3), small (2: 3*4*3) or large (3: 20*25*7). Wall details (high coef, low coef, gain1, gain2, gain3): .3, .1, .75, .95, .9. Floor: .6, .1, .95, .6, .35. Ceiling: .2, .1, 1, 1, 1. If 0 is entered, optional room parameters will be read.
+ </para>
+ <para>
+ <emphasis>ifade</emphasis> - optional, number of processing buffers for phase change crossfade (default 8). Legal range is 1-24. See <link linkend="hrtfmove"><citetitle>hrtfmove</citetitle></link>.
+ </para>
+ <para>
+<emphasis>isr</emphasis> - optional, default 44.1kHz, legal values: 44100, 48000 and 96000.
+ </para>
+ <para>
+ <emphasis>iorder</emphasis> - optional, order of images processed: higher order: more reflections. Defaults to 1, legal range: 0-4.
+ </para>
+ <para>
+ <emphasis>ithreed</emphasis> - optional, process image sources in three dimensions (1) or two (0: default).
+ </para>
+ <para>
+ <emphasis>iroomx</emphasis> - optional, x room size in metres, will be read if no valid default room is entered (all below parameters behave similarly). Minimum room size is 2*2*2.
+ </para>
+ <para>
+ <emphasis>iroomy</emphasis> - optional, y room size.
+ </para>
+ <para>
+ <emphasis>iroomz</emphasis> - optional, z room size.
+ </para>
+ <para>
+ <emphasis>iwallhigh</emphasis> - optional, high frequency wall absorption coefficient (all 4 walls are assumed identical). Absorption coefficients will affect reverb time output.
+ </para>
+ <para>
+ <emphasis>iwalllow</emphasis> - optional, low frequency wall absorption coefficient.
+ </para>
+ <para>
+ <emphasis>iwallgain1</emphasis> - optional, gain on filter centred at 250 Hz (all filters have a Q implying 4 octaves).
+ </para>
+ <para>
+ <emphasis>iwallgain2</emphasis> - optional, as above, centred on 1000 Hz.
+ </para>
+ <para>
+ <emphasis>iwallgain3</emphasis> - optional, as above, centred on 4000 Hz.
+ </para>
+ <para>
+ <emphasis>ifloorhigh, ifloorlow, ifloorgain1, ifloorgain2, ifloorgain3
+</emphasis> - as above for floor.
+ </para>
+ <para>
+ <emphasis>
+iceilinghigh, iceilinglow, iceilinggain1, iceilinggain2, iceilinggain3
+</emphasis> - as above for ceiling.
+ </para>
+
+ <title>Performance</title>
+ <para>
+ <emphasis>ksrcx</emphasis> source x location, must be 10 cm inside room. Also, near-field HRTFs are not processed, so source will not change spatially within a 45 cm radius of the listener. These restrictions also apply to location parameters below.
+ </para>
+ <para>
+ <emphasis>ksrcy</emphasis> source y location.
+ </para>
+ <para>
+ <emphasis>ksrcz</emphasis> source z location.
+ </para>
+ <para>
+ <emphasis>klstnrx, klstnry, klstnrz</emphasis> listener location, as above.
+ </para>
+ <para>
+ <emphasis>kheadrot</emphasis> - optional, angular value for head rotation.
+ </para>
+ <para>
+ <emphasis>asrc</emphasis> - Input/source signal.
+ </para>
+
+ <title>Output</title>
+ <para>
+ <emphasis>irt60low</emphasis> - suggested low frequency reverb time for later binaural reverb.
+ </para>
+ <para>
+ <emphasis>irt60high</emphasis> - as above, for high frequency.
+ </para>
+ <para>
+ <emphasis>imfp</emphasis> - mean free path of room, to be used with later reverb.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the hrtfearly and hrtfreverb opcodes. It uses the file <ulink url="examples/hrtfearly.csd"><citetitle>hrtfearly.csd</citetitle></ulink>.
+ </para>
+ <example>
+ <title>Example of the htrfearly opcode.</title>
+<xi:include href="examples-xml/hrtfearly.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="hrtfreverb"><citetitle>hrtfreverb</citetitle></link>
+ <link linkend="hrtfmove"><citetitle>hrtfmove</citetitle></link>,
+ <link linkend="hrtfmove2"><citetitle>hrtfmove2</citetitle></link>,
+ <link linkend="hrtfstat"><citetitle>hrtfstat</citetitle></link>,
+ <link linkend="hrtfer"><citetitle>hrtfer</citetitle></link>.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Brian Carty</member>
+ <member>Maynooth</member>
+ <member>2011</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/hrtfmove.xml b/opcodes/hrtfmove.xml
index 81e7c85..b3ba9cc 100644
--- a/opcodes/hrtfmove.xml
+++ b/opcodes/hrtfmove.xml
@@ -38,6 +38,17 @@
<para>Spectral datafiles (based on the MIT HRTF database) are available in 3 different sampling rates: 44.1, 48 and 96 khz and are labelled accordingly. Input and processing <emphasis>sr</emphasis> should match datafile <emphasis>sr</emphasis>. Files should be in the current directory or the SADIR (see <link linkend="CommandEnvironment"><citetitle>Environment Variables</citetitle></link>).
</para>
</note>
+ <note>
+ <para>
+ HRTF Data files for use with
+ <link linkend="hrtfmove"><citetitle>hrtfmove</citetitle></link>,
+ <link linkend="hrtfmove2"><citetitle>hrtfmove2</citetitle></link>,
+ <link linkend="hrtfstat"><citetitle>hrtfstat</citetitle></link>,
+ <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link>,
+ <link linkend="hrtfreverb"><citetitle>hrtfreverb</citetitle></link>
+ were updated for Csound 5.15 and later (the code was updated and is more efficient). Old datafiles are now deprecated.
+ </para>
+</note>
<para>
<emphasis>imode</emphasis> -- optional, default 0 for phase truncation, 1 for minimum phase
</para>
@@ -89,6 +100,7 @@
<link linkend="hrtfstat"><citetitle>hrtfstat</citetitle></link>,
<link linkend="hrtfer"><citetitle>hrtfer</citetitle></link>.
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue9/newHRTFOpcodes.html"><citetitle>http://www.csounds.com/journal/issue9/newHRTFOpcodes.html</citetitle></ulink> , written by Brian Carty </para>
</refsect1>
<refsect1>
diff --git a/opcodes/hrtfmove2.xml b/opcodes/hrtfmove2.xml
index e53eab7..ee9cc81 100644
--- a/opcodes/hrtfmove2.xml
+++ b/opcodes/hrtfmove2.xml
@@ -40,6 +40,17 @@
Spectral datafiles (based on the MIT HRTF database) are available in 3 different sampling rates: 44.1, 48 and 96 khz and are labelled accordingly. Input and processing <emphasis>sr</emphasis> should match datafile <emphasis>sr</emphasis>. Files should be in the current directory or the SADIR (see <link linkend="CommandEnvironment"><citetitle>Environment Variables</citetitle></link>).
</para>
</note>
+<note>
+ <para>
+ HRTF Data files for use with
+ <link linkend="hrtfmove"><citetitle>hrtfmove</citetitle></link>,
+ <link linkend="hrtfmove2"><citetitle>hrtfmove2</citetitle></link>,
+ <link linkend="hrtfstat"><citetitle>hrtfstat</citetitle></link>,
+ <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link>,
+ <link linkend="hrtfreverb"><citetitle>hrtfreverb</citetitle></link>
+ were updated for Csound 5.15 and later (the code was updated and is more efficient). Old datafiles are now deprecated.
+ </para>
+</note>
<para>
<emphasis>ioverlap</emphasis> -- optional, number of overlaps for STFT processing (default 4). See STFT section of manual.
</para>
@@ -92,6 +103,7 @@
<link linkend="hrtfstat"><citetitle>hrtfstat</citetitle></link>,
<link linkend="hrtfer"><citetitle>hrtfer</citetitle></link>.
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue9/newHRTFOpcodes.html"><citetitle>http://www.csounds.com/journal/issue9/newHRTFOpcodes.html</citetitle></ulink> , written by Brian Carty </para>
</refsect1>
<refsect1>
diff --git a/opcodes/hrtfreverb.xml b/opcodes/hrtfreverb.xml
new file mode 100644
index 0000000..d46013a
--- /dev/null
+++ b/opcodes/hrtfreverb.xml
@@ -0,0 +1,110 @@
+
+<refentry id="hrtfreverb">
+<indexterm id="Indexhrtfreverb"><primary>hrtfreverb</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Panning and Spatialization</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>hrtfreverb</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>hrtfreverb</refname>
+ <refpurpose>
+ A binaural, dynamic FDN based diffuse-field reverberator. The opcode works independently as an efficient, flexible reverberator.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ A frequency-dependent, efficient reverberant field is created based on low and high frequency desired reverb times. The opcode is designed to work with <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link>, ideally using its outputs as inputs. However, <link linkend="hrtfreverb"><citetitle>hrtfreverb</citetitle></link> can be used as a standalone tool. Stability is enforced.
+ </para>
+ <para>
+ It is, however, designed for use with <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link> to provide spatially accurate reverberation with user definable source trajectories. Accurate interaural coherence is also provided.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>aleft, aright, idel <command>hrtfreverb</command> asrc, ilowrt60, ihighrt60, ifilel, ifiler [,isr, imfp, iorder]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ilowrt60</emphasis> - low frequency reverb time.
+ </para>
+ <para>
+ <emphasis>ihighrt60</emphasis> - high frequency reverb time.
+ </para>
+ <para>
+ <emphasis>ifilel</emphasis> - left HRTF spectral data file.
+ </para>
+ <para>
+ <emphasis>ifiler</emphasis> - right HRTF spectral data file.
+ </para>
+ <note>
+ <para>Spectral datafiles (based on the MIT HRTF database) are available in 3 different sampling rates: 44.1, 48 and 96 kHz and are labelled accordingly. Input and processing <emphasis>sr</emphasis> should match datafile <emphasis>sr</emphasis>. Files should be in the current directory or the SADIR (see <link linkend="CommandEnvironment"><citetitle>Environment Variables</citetitle></link>).
+ </para>
+ </note>
+ <note>
+ <para>HRTF Data files for use with
+ <link linkend="hrtfmove"><citetitle>hrtfmove</citetitle></link>,
+ <link linkend="hrtfmove2"><citetitle>hrtfmove2</citetitle></link>,
+ <link linkend="hrtfstat"><citetitle>hrtfstat</citetitle></link>,
+ <link linkend="hrtfreverb"><citetitle>hrtfreverb</citetitle></link>,
+ <link linkend="hrtfreverb"><citetitle>hrtfreverb</citetitle></link>
+ were updated for Csound 5.15 and later (the code was updated and is more efficient). Old datafiles are now deprecated.
+ </para>
+ </note>
+ <para>
+<emphasis>isr</emphasis> - optional, default 44.1kHz, legal values: 44100, 48000 and 96000.
+ </para>
+ <para>
+ <emphasis>imfp</emphasis> - optional, mean free path, defaults to that of a medium room. If used with <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link>, the mean free path of the room can be used to calculate the appropriate delay for the later reverb. Legal range: the mean free path of the smallest room allowed by hrtfearly (0.003876) 1.
+ </para>
+ <para>
+ <emphasis>iorder</emphasis> - optional, order of early reflection processing. If used with <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link>, the order of early reflections can be used to calculate the appropriate delay on the later reverb.
+ </para>
+
+
+ <title>Performance</title>
+ <para>
+ <emphasis>asrc</emphasis> - Input/source signal.
+ </para>
+
+ <title>Output</title>
+ <para>
+ <emphasis>idel</emphasis> - if used with <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link>, the appropriate delay for the later reverb, based on the room and order of processing.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Example</title>
+ <para>
+ See the <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link> manual page for a simple example of the <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link> and <emphasis>hrtfreverb</emphasis> opcodes.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link>
+ <link linkend="hrtfmove"><citetitle>hrtfmove</citetitle></link>,
+ <link linkend="hrtfmove2"><citetitle>hrtfmove2</citetitle></link>,
+ <link linkend="hrtfstat"><citetitle>hrtfstat</citetitle></link>,
+ <link linkend="hrtfer"><citetitle>hrtfer</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Brian Carty</member>
+ <member>Maynooth</member>
+ <member>2011</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/hrtfstat.xml b/opcodes/hrtfstat.xml
index 84799df..66b0d22 100644
--- a/opcodes/hrtfstat.xml
+++ b/opcodes/hrtfstat.xml
@@ -57,6 +57,18 @@
current directory or the SADIR (see <link linkend="CommandEnvironment"><citetitle>Environment Variables</citetitle></link>).
</para>
</note>
+<note>
+ <para>
+ HRTF Data files for use with
+ <link linkend="hrtfmove"><citetitle>hrtfmove</citetitle></link>,
+ <link linkend="hrtfmove2"><citetitle>hrtfmove2</citetitle></link>,
+ <link linkend="hrtfstat"><citetitle>hrtfstat</citetitle></link>,
+ <link linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link>,
+ <link linkend="hrtfreverb"><citetitle>hrtfreverb</citetitle></link>
+ were updated for Csound 5.15 and later (the code was updated and is more efficient). Old datafiles are now deprecated.
+ </para>
+</note>
+
<para>
<emphasis>iradius</emphasis> -- optional, head radius used for
phase spectra calculation in centimeters (default 9.0)
@@ -86,17 +98,28 @@
<link linkend="hrtfmove"><citetitle>hrtfmove</citetitle></link>, but cannot generate moving sources.
</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
- It can be found in the file <ulink url="examples/htrfstat.csd"><citetitle>htrfstat.csd</citetitle></ulink>.
+ Here is an example of the hrtfstat opcode. It uses the file <ulink url="examples/hrtfstat.csd"><citetitle>hrtfstat.csd</citetitle></ulink>.
</para>
<example>
- <title>Example of the htrfstat opcode.
+ <title>Example of the hrtfstat opcode.
</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/hrtfstat.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
+ <para>
+ Here is another example of the hrtfstat opcode. It uses the file <ulink url="examples/hrtfstat-2.csd"><citetitle>htrfstat-2.csd</citetitle></ulink>, and <ulink url="examples/Church.wav"><citetitle>Church.wav</citetitle></ulink>, which is a looped sample.
+
+ <example>
+ <title>Example two of the hrtfstat opcode</title>
+
+ <xi:include href="examples-xml/hrtfstat-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
@@ -106,6 +129,7 @@
<link linkend="hrtfmove2"><citetitle>hrtfmove2</citetitle></link>,
<link linkend="hrtfer"><citetitle>hrtfer</citetitle></link>.
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue9/newHRTFOpcodes.html"><citetitle>http://www.csounds.com/journal/issue9/newHRTFOpcodes.html</citetitle></ulink> , written by Brian Carty </para>
</refsect1>
<refsect1>
diff --git a/opcodes/hvs2.xml b/opcodes/hvs2.xml
index 7b1e09d..a34cb43 100644
--- a/opcodes/hvs2.xml
+++ b/opcodes/hvs2.xml
@@ -22,16 +22,16 @@
<refsect1>
<title>Syntax</title>
- <synopsis><command>hvs2</command> kx, ky, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis>
+ <synopsis><command>hvs2</command> kx, ky, inumParms, inumPointsX, inumPointsY, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>inumParms</emphasis> - number of parameters controlled by the HVS. Each HVS snapshot is made up of inumParms elements.
+ <emphasis>inumParms</emphasis> - number of parameters controlled by the HVS. Each HVS snapshot is made up of <emphasis>inumParms</emphasis> elements.
</para>
<para>
- <emphasis>inumPointsX</emphasis> - number of points that each dimension of the HVS cube (or square in case of two-dimensional HVS; or line in case of one-dimensional HVS) is made up.
+ <emphasis>inumPointsX</emphasis>, <emphasis>inumPointsY</emphasis> - number of points that each dimension of the HVS cube (or square in case of two-dimensional HVS; or line in case of one-dimensional HVS) is made up.
</para>
<para>
<emphasis>iOutTab</emphasis> - number of the table receiving the set of output-parameter instant values of the HVS. The total amount of parameters is defined by the <emphasis>inumParms</emphasis> argument.
@@ -132,9 +132,9 @@
</example>
</para>
<para>
- Here is second example of the hvs2 opcode. It uses the file <ulink url="examples/hvs2-2.csd"><citetitle>hvs2.csd</citetitle></ulink>.
+ Here is second example of the hvs2 opcode. It uses the file <ulink url="examples/hvs2-2.csd"><citetitle>hvs2-2.csd</citetitle></ulink>.
<example>
- <title>Example of the hvs2 opcode.</title>
+ <title>Second example of the hvs2 opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/hvs2-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
diff --git a/opcodes/hvs3.xml b/opcodes/hvs3.xml
index e5134e1..dac2017 100644
--- a/opcodes/hvs3.xml
+++ b/opcodes/hvs3.xml
@@ -22,16 +22,16 @@
<refsect1>
<title>Syntax</title>
- <synopsis><command>hvs3</command> kx, ky, kz, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis>
+ <synopsis><command>hvs3</command> kx, ky, kz, inumParms, inumPointsX, inumPointsY, inumPointsZ, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>inumParms</emphasis> - number of parameters controlled by the HVS. Each HVS snapshot is made up of inumParms elements.
+ <emphasis>inumParms</emphasis> - number of parameters controlled by the HVS. Each HVS snapshot is made up of <emphasis>inumParms</emphasis> elements.
</para>
<para>
- <emphasis>inumPointsX</emphasis> - number of points that each dimension of the HVS cube (or square in case of two-dimensional HVS; or line in case of one-dimensional HVS) is made up.
+ <emphasis>inumPointsX</emphasis>, <emphasis>inumPointsY</emphasis>, <emphasis>inumPointsZ</emphasis> - number of points that each dimension of the HVS cube (or square in case of two-dimensional HVS; or line in case of one-dimensional HVS) is made up.
</para>
<para>
<emphasis>iOutTab</emphasis> - number of the table receiving the set of output-parameter instant values of the HVS. The total amount of parameters is defined by the <emphasis>inumParms</emphasis> argument.
diff --git a/opcodes/imagesetpixel.xml b/opcodes/imagesetpixel.xml
index 1b9cadd..963290e 100644
--- a/opcodes/imagesetpixel.xml
+++ b/opcodes/imagesetpixel.xml
@@ -19,8 +19,8 @@
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis><command>imagegetpixel</command> iimagenum, ax, ay, ared, agreen, ablue</synopsis>
- <synopsis><command>imagegetpixel</command> iimagenum, kx, ky, kred, kgreen, kblue</synopsis>
+ <synopsis><command>imagesetpixel</command> iimagenum, ax, ay, ared, agreen, ablue</synopsis>
+ <synopsis><command>imagesetpixel</command> iimagenum, kx, ky, kred, kgreen, kblue</synopsis>
</refsect1>
<refsect1>
diff --git a/opcodes/imagesize.xml b/opcodes/imagesize.xml
index 98588d8..2b01cd9 100644
--- a/opcodes/imagesize.xml
+++ b/opcodes/imagesize.xml
@@ -44,7 +44,11 @@
<example>
<title>Example of the imagesize opcode.</title>
<xi:include href="examples-xml/imageopcodes.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
+ </example>
+ Its output should include a line like this:
+ <screen>
+imagewidth = 180.000000 pixels, imageheigth = 135.000000 pixels
+ </screen>
</para>
</refsect1>
diff --git a/opcodes/in.xml b/opcodes/in.xml
index e88a8f3..91c744c 100644
--- a/opcodes/in.xml
+++ b/opcodes/in.xml
@@ -18,28 +18,54 @@
<refsect1>
<title>Description</title>
<para>
- Reads mono audio data from an external device or stream.
+ Reads audio data from an external device or stream.
</para>
<warning>
<title>Warning</title>
<para>
- This opcode is designed to be used only with orchestras that have
- nchnls=1. Doing so with orchestras with nchnls &gt; 1 will
+ There are two versions of this opcode. The first is designed
+ to be used only with orchestras that have
+ inchnls=1. Doing so with orchestras with inchnls &gt; 1 will
cause incorrect audio input.
</para>
+ <para>
+ The second form will read multiple channels into an array.
+ </para>
</warning>
</refsect1>
<refsect1>
<title>Syntax</title>
<synopsis>ar1 <command>in</command></synopsis>
+ <synopsis>aarray <command>in</command></synopsis>
</refsect1>
<refsect1>
<title>Performance</title>
<para>
- Reads mono audio data from an external device or stream. If the command-line <link linkend="FlagsMinusLowerI"><citetitle>-i</citetitle></link> flag is set, sound is read continuously from the audio input stream (e.g. <emphasis>stdin</emphasis> or a soundfile) into an internal buffer. Any number of these opcodes can read freely from this buffer.
+ Form 1 reads mono audio data from an external device or
+ stream. If the command-line <link
+ linkend="FlagsMinusLowerI"><citetitle>-i</citetitle></link> flag
+ is set, sound is read continuously from the audio input stream
+ (e.g. <emphasis>stdin</emphasis> or a soundfile) into an
+ internal buffer. Any number of these opcodes can read freely
+ from this buffer.
+ </para>
+ <para>
+ The second format will read upto ichnls of audio into an audio
+ array, which must be initialised.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the in opcode. It uses the file <ulink url="examples/in.csd"><citetitle>in.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the in opcode.</title>
+ <xi:include href="examples-xml/in.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
@@ -63,8 +89,11 @@
<member>Authors: &namebarry;, &namematt;/&namemike;</member>
<member>MIT, Mills College</member>
<member>1993-1997</member>
+ <member>Authors: &namejohn;</member>
+ <member>NUIM, 2013</member>
</simplelist>
</para>
<para>Already in version 3.30</para>
+ <para>Array version in versio 6.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/inch.xml b/opcodes/inch.xml
index e7ca9d9..a161e86 100644
--- a/opcodes/inch.xml
+++ b/opcodes/inch.xml
@@ -46,6 +46,17 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the inch opcode. It uses the file <ulink url="examples/inch.csd"><citetitle>inch.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the inch opcode.</title>
+ <xi:include href="examples-xml/inch.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="in32"><citetitle>in32</citetitle></link>,
diff --git a/opcodes/include.xml b/opcodes/include.xml
index a62a7fc..b9ed25a 100644
--- a/opcodes/include.xml
+++ b/opcodes/include.xml
@@ -67,6 +67,13 @@ $BASSOON(3)</programlisting>
It must be stressed that these changes are at the textual level and so take no cognizance of any meaning.
</para>
+ <para>
+ If the version of Csound is built with the CURL library the
+ filename in an <emphasis>&num;include</emphasis> statement can
+ be an URL, recognised by including the substring "://" in the
+ name. This will include text via protocols such as http, https,
+ and ftp.
+ </para>
</refsect1>
<refsect1>
@@ -98,5 +105,6 @@ $BASSOON(3)</programlisting>
<para>Example written by &namekevin;.</para>
<para>New in Csound version 3.48</para>
+ <para>URLs available from Csound 6.02</para>
</refsect1>
</refentry>
diff --git a/opcodes/init.xml b/opcodes/init.xml
index c066b67..24892ef 100644
--- a/opcodes/init.xml
+++ b/opcodes/init.xml
@@ -9,7 +9,7 @@
<refnamediv>
<refname>init</refname>
<refpurpose>
- Puts the value of the i-time expression into a k- or a-rate variable.
+ Puts the value of the i-time expression into a k-, a-rate or t- variable.
</refpurpose>
</refnamediv>
@@ -20,7 +20,8 @@
<synopsis>kres <command>init</command> iarg</synopsis>
<synopsis>ares, ... <command>init</command> iarg, ...</synopsis>
<synopsis>ires, ... <command>init</command> iarg, ...</synopsis>
- <synopsis>kres, ...<command>init</command> iarg, ...</synopsis>
+ <synopsis>kres, ... <command>init</command> iarg, ...</synopsis>
+ <synopsis>tab <command>init</command> isize[, ival]</synopsis>
</refsect1>
<refsect1>
@@ -34,7 +35,7 @@
<title>Initialization</title>
<para>
Puts the value of the i-time expression
- <emphasis>iarg</emphasis> into a k- or a-rate variable, i.e.,
+ <emphasis>iarg</emphasis> into a k-, a-rate or t- variable, i.e.,
initialize the result. Note that <emphasis
role="strong">init</emphasis> provides the only case of an
init-time statement being permitted to write into a perf-time
@@ -47,15 +48,57 @@
output variables than input expressions then the last one is
repeated. It is an error to have more inputs than outputs.
</para>
+ <para>
+ The t-variable form was introduced in 5.14 and allocated space
+ for a vector or the given size, initialised to the given value
+ (default value is zero).
+ </para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the init opcode. It uses the file <ulink url="examples/init.csd"><citetitle>init.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the init opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/init.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+ i 1 time 0.00073: 1.00000
+ i 1 time 0.10014: 138.00000
+ i 1 time 0.20027: 276.00000
+ i 1 time 0.30041: 414.00000
+ i 1 time 0.40054: 552.00000
+ i 1 time 0.50068: 690.00000
+ i 1 time 0.60009: 827.00000
+ i 1 time 0.70023: 965.00000
+ i 1 time 0.80036: 1103.00000
+ i 1 time 0.90050: 1241.00000
+ i 2 time 2.00054: 1.00000
+ i 2 time 2.09995: 1.00000
+ i 2 time 2.20009: 1.00000
+ i 2 time 2.30023: 1.00000
+ i 2 time 2.40036: 1.00000
+ i 2 time 2.50050: 1.00000
+ i 2 time 2.59991: 1.00000
+ i 2 time 2.70005: 1.00000
+ i 2 time 2.80018: 1.00000
+ i 2 time 2.90032: 1.00000
+ </screen>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
<link linkend="assign"><citetitle>=</citetitle></link>,
<link linkend="divz"><citetitle>divz</citetitle></link>,
<link linkend="tival"><citetitle>tival</citetitle></link>
- </para>
+ </para>
+ <para> Other information on this opcode in the Floss Manuals: <ulink url="http://www.flossmanuals.net/csound/ch016_a-initialization-and-performance-pass"><citetitle>http://www.flossmanuals.net/csound/ch016_a-initialization-and-performance-pass</citetitle></ulink></para>
</refsect1>
<refsect1>
@@ -69,7 +112,7 @@
<member>Bath, UK</member>
<member>February 2010</member>
</simplelist>
- <para>New in version 5.13</para>
</para>
+ <para>Multiple form new in version 5.13; t-variable form new in 5.14.</para>
</refsect1>
</refentry>
diff --git a/opcodes/initc7.xml b/opcodes/initc7.xml
index 516d95b..a46df8d 100644
--- a/opcodes/initc7.xml
+++ b/opcodes/initc7.xml
@@ -55,6 +55,18 @@ ivalue = (initial_value - min) / (max - min)
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the initc7 opcode. It uses the file <ulink url="examples/initc7.csd"><citetitle>initc7.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the initc7 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/initc7.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="ctrl7"><citetitle>ctrl7</citetitle></link>,
diff --git a/opcodes/inleta.xml b/opcodes/inleta.xml
index aa22a7c..c946a15 100644
--- a/opcodes/inleta.xml
+++ b/opcodes/inleta.xml
@@ -46,19 +46,34 @@
The signals of all the outlets connected to an inlet are summed in the inlet.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the inleta opcode. It uses the file <ulink url="examples/inleta.csd"><citetitle>inleta.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the inleta opcode.</title>
+ <xi:include href="examples-xml/inleta.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
<link linkend="outleta"><citetitle>outleta</citetitle></link>
<link linkend="outletk"><citetitle>outletk</citetitle></link>
+ <link linkend="outletkid"><citetitle>outletkid</citetitle></link>
<link linkend="outletf"><citetitle>outletf</citetitle></link>
<link linkend="inletk"><citetitle>inletk</citetitle></link>
+ <link linkend="inletkid"><citetitle>inletkid</citetitle></link>
<link linkend="inletf"><citetitle>inletf</citetitle></link>
<link linkend="connect"><citetitle>connect</citetitle></link>
<link linkend="alwayson"><citetitle>alwayson</citetitle></link>
<link linkend="ftgenonce"><citetitle>ftgenonce</citetitle></link>
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue13/signalFlowGraphOpcodes.html"><citetitle>http://www.csounds.com/journal/issue13/signalFlowGraphOpcodes.html</citetitle></ulink> , written by Michael Gogins </para>
</refsect1>
<refsect1>
diff --git a/opcodes/inletf.xml b/opcodes/inletf.xml
index 978d872..e218cb7 100644
--- a/opcodes/inletf.xml
+++ b/opcodes/inletf.xml
@@ -52,9 +52,11 @@
<para>
<link linkend="outleta"><citetitle>outleta</citetitle></link>
<link linkend="outletk"><citetitle>outletk</citetitle></link>
+ <link linkend="outletkid"><citetitle>outletkid</citetitle></link>
<link linkend="outletf"><citetitle>outletf</citetitle></link>
<link linkend="inleta"><citetitle>inleta</citetitle></link>
<link linkend="inletk"><citetitle>inletk</citetitle></link>
+ <link linkend="inletkid"><citetitle>inletkid</citetitle></link>
<link linkend="connect"><citetitle>connect</citetitle></link>
<link linkend="alwayson"><citetitle>alwayson</citetitle></link>
<link linkend="ftgenonce"><citetitle>ftgenonce</citetitle></link>
diff --git a/opcodes/inletk.xml b/opcodes/inletk.xml
index 5396701..1f6c9db 100644
--- a/opcodes/inletk.xml
+++ b/opcodes/inletk.xml
@@ -42,16 +42,30 @@
<para>
During performance, the krate inlet signal is received from each instance of an instrument
- containing an outlet port to which this inlet has been connected using the <link linkend="connect">connect</link> opcode.
+ containing an outlet port to which this inlet has been connected using the
+ <link linkend="connect">connect</link> opcode.
The signals of all the outlets connected to an inlet are summed in the inlet.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the inletk opcode. It uses the file <ulink url="examples/inletk.csd"><citetitle>inletk.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the inletk opcode.</title>
+ <xi:include href="examples-xml/inletk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
<link linkend="outleta"><citetitle>outleta</citetitle></link>
<link linkend="outletk"><citetitle>outletk</citetitle></link>
+ <link linkend="outletkid"><citetitle>outletkid</citetitle></link>
<link linkend="outletf"><citetitle>outletf</citetitle></link>
<link linkend="inleta"><citetitle>inleta</citetitle></link>
<link linkend="inletf"><citetitle>inletf</citetitle></link>
diff --git a/opcodes/inletkid.xml b/opcodes/inletkid.xml
new file mode 100644
index 0000000..6e1cd8d
--- /dev/null
+++ b/opcodes/inletkid.xml
@@ -0,0 +1,81 @@
+<refentry id="inletkid">
+<indexterm id="Indexinletkid"><primary>inletkid</primary></indexterm>
+<refentryinfo><title>Signal Flow Graph Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>inletkid</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>inletkid</refname>
+ <refpurpose>
+ Receives a krate signal into an instrument from a named port.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Receives a krate signal into an instrument from a named port.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ksignal <command>inletkid </command>Sname, SinstanceID</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>Sname</emphasis> -- String name of the inlet port.
+ The name of the inlet is implicitly qualified by the instrument name
+ or number, so it is valid to use the same inlet name in more than one
+ instrument (but not to use the same inlet name twice in one instrument).
+ </para>
+ <para>
+ <emphasis>SinstanceID</emphasis> -- String name of the outlet port's
+ instance ID. This enables the inlet to discriminate between different
+ instances of the outlet, e,g. one instance of the outlet might be created by a note
+ specifying one instance ID, and another instance might be created by a note
+ specifying another ID. This might be used, e.g., to situate difference instances
+ of an instrument at different points in an Ambisonic space in a spatializing
+ effects processor.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>ksignal</emphasis> -- krate input signal
+ </para>
+
+ <para>
+ During performance, the krate inlet signal is received from each instance of an instrument
+ containing an outlet port to which this inlet has been connected using the
+ <link linkend="connect">connect</link> opcode. The signals of all the outlets that
+ are connected to an inlet, but only those share the specified instance ID, are summed in the inlet.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="outleta"><citetitle>outleta</citetitle></link>
+ <link linkend="outletk"><citetitle>outletk</citetitle></link>
+ <link linkend="outletkid"><citetitle>outletkid</citetitle></link>
+ <link linkend="outletf"><citetitle>outletf</citetitle></link>
+ <link linkend="inleta"><citetitle>inleta</citetitle></link>
+ <link linkend="inletf"><citetitle>inletf</citetitle></link>
+ <link linkend="connect"><citetitle>connect</citetitle></link>
+ <link linkend="alwayson"><citetitle>alwayson</citetitle></link>
+ <link linkend="ftgenonce"><citetitle>ftgenonce</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>By: &namemichael; 2009</para>
+ </refsect1>
+
+
+</refentry>
diff --git a/opcodes/inq.xml b/opcodes/inq.xml
index 91aef53..7c5d13a 100644
--- a/opcodes/inq.xml
+++ b/opcodes/inq.xml
@@ -43,6 +43,17 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the inq opcode. It uses the file <ulink url="examples/inq.csd"><citetitle>inq.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the inq opcode.</title>
+ <xi:include href="examples-xml/inq.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="diskin"><citetitle>diskin</citetitle></link>,
diff --git a/opcodes/ins.xml b/opcodes/ins.xml
index deb3ea5..014929b 100644
--- a/opcodes/ins.xml
+++ b/opcodes/ins.xml
@@ -43,6 +43,17 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the ins opcode. It uses the file <ulink url="examples/ins.csd"><citetitle>ins.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the ins opcode.</title>
+ <xi:include href="examples-xml/ins.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="diskin"><citetitle>diskin</citetitle></link>,
diff --git a/opcodes/insglobal.xml b/opcodes/insglobal.xml
index 9136963..f42b9b6 100644
--- a/opcodes/insglobal.xml
+++ b/opcodes/insglobal.xml
@@ -8,14 +8,31 @@
<refnamediv>
<refname>insglobal</refname>
<refpurpose>
- An opcode which can be used to implement a remote orchestra. This opcode will send note events from a source machine to many destinations.
- </refpurpose>
+ An opcode which can be used to implement a remote
+ orchestra. This opcode will send note events from a source
+ machine to many destinations.
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- With the <link linkend="insremot"><citetitle>insremot</citetitle></link> and <emphasis>insglobal</emphasis> opcodes you are able to perform instruments on remote machines and control them from a master machine. The remote opcodes are implemented using the master/client model. All the machines involved contain the same orchestra but only the master machine contains the information of the score. During the performance the master machine sends the note events to the clients. The <emphasis>insglobal</emphasis> opcode sends the events to all the machines involved in the remote concert. These machines are determined by the <link linkend="insremot"><citetitle>insremot</citetitle></link> definitions made above the <emphasis>insglobal</emphasis> command. To send events to only one machine use <link linkend="insremot"><citetitle>insremot</citetitle></link>.
+ With the <link
+ linkend="insremot"><citetitle>insremot</citetitle></link> and
+ <emphasis>insglobal</emphasis> opcodes you are able to perform
+ instruments on remote machines and control them from a master
+ machine. The remote opcodes are implemented using the
+ master/client model. All the machines involved contain the same
+ orchestra but only the master machine contains the information
+ of the score. During the performance the master machine sends
+ the note events to the clients. The
+ <emphasis>insglobal</emphasis> opcode sends the events to all
+ the machines involved in the remote concert. These machines are
+ determined by the <link
+ linkend="insremot"><citetitle>insremot</citetitle></link>
+ definitions made above the <emphasis>insglobal</emphasis>
+ command. To send events to only one machine use <link
+ linkend="insremot"><citetitle>insremot</citetitle></link>.
</para>
</refsect1>
@@ -28,7 +45,7 @@
<title>Initialization</title>
<para>
<emphasis>isource</emphasis>
- -- a string that is the intended host computer (e.g. 192.168.0.100). This is the source host which generates the events of the given instrument(s) and sends it to all the machines involved in the remote concert.
+ -- a string that is the intended server computer (e.g. 192.168.0.100). This is the source host which generates the events of the given instrument(s) and sends it to all the machines involved in the remote concert.
</para>
<para>
@@ -38,10 +55,26 @@
</refsect1>
-<!-- <refsect1>
+ <refsect1>
<title>Performance</title>
-
- </refsect1>-->
+ <note>
+ If is essential the computers using this opcode have the same
+ byte-order, data size (double or float) and pointer size. One
+ cannot use it with mixed 32 and 64 computers for instance.
+ </note>
+ <note>
+ Internally this opcode makes use of the gethostname and
+ gethostbyname functions to determine the client's and server's
+ IP address for checking which messages are for which machine.
+ If a computer has more than one IP address there is no way to
+ control which IP address is found.
+ </note>
+ <note>
+ The remote operation does not allow the sending of strings at
+ all.
+ </note>
+ </refsect1>
+
<refsect1>
<title>Examples</title>
<para>
diff --git a/opcodes/insremot.xml b/opcodes/insremot.xml
index aea7032..ee15d8e 100644
--- a/opcodes/insremot.xml
+++ b/opcodes/insremot.xml
@@ -8,14 +8,28 @@
<refnamediv>
<refname>insremot</refname>
<refpurpose>
- An opcode which can be used to implement a remote orchestra. This opcode will send note events from a source machine to one destination.
- </refpurpose>
+ An opcode which can be used to implement a remote
+ orchestra. This opcode will send note events from a source
+ machine to one destination.
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- With the insremot and insglobal opcodes you are able to perform instruments on remote machines and control them from a master machine. The remote opcodes are implemented using the master/client model. All the machines involved contain the same orchestra but only the master machine contains the information of the score. During the performance the master machine sends the note events to the clients. The insremot opcode will send events from a source machine to one destination if you want to send events to many destinations (broadcast) use the insglobal opcode instead. These two opcodes can be used in combination.
+ With the <emphasis>insremot</emphasis> and <link
+ linkend="insglobal"><citetitle>insglobal</citetitle></link>
+ opcodes you are able to perform instruments on remote machines
+ and control them from a master machine. The remote opcodes are
+ implemented using the master/client model. All the machines
+ involved contain the same orchestra but only the master machine
+ contains the information of the score. During the performance
+ the master machine sends the note events to the clients. The
+ <emphasis>insremot</emphasis> opcode will send events from a
+ source machine to one destination if you want to send events to
+ many destinations (broadcast) use the <link
+ linkend="insglobal"><citetitle>insglobal</citetitle></link>
+ opcode instead. These two opcodes can be used in combination.
</para>
</refsect1>
@@ -28,12 +42,12 @@
<title>Initialization</title>
<para>
<emphasis>idestination</emphasis>
- -- a string that is the intended host computer (e.g. 192.168.0.100). This is the destination host which receives the events from the given instrument.
+ -- a string that is the intended client computer (e.g. 192.168.0.100). This is the destination host which receives the events from the given instrument.
</para>
<para>
<emphasis>isource</emphasis>
- -- a string that is the intended host computer (e.g. 192.168.0.100). This is the source host which generates the events of the given instrument and sends it to the address given by idestination.
+ -- a string that is the intended server computer (e.g. 192.168.0.100). This is the source host which generates the events of the given instrument and sends it to the address given by idestination.
</para>
<para>
@@ -43,10 +57,25 @@
</refsect1>
-<!-- <refsect1>
+ <refsect1>
<title>Performance</title>
-
- </refsect1>-->
+ <note>
+ If is essential the computers using this opcode have the same
+ byte-order, data size (double or float) and pointer size. One
+ cannot use it with mixed 32 and 64 computers for instance.
+ </note>
+ <note>
+ Internally this opcode makes use of the gethostname and
+ gethostbyname functions to determine the client's and server's
+ IP address for checking which messages are for which machine.
+ If a computer has more than one IP address there is no way to
+ control which IP address is found.
+ </note>
+ <note>
+ The remote operation does not allow the sending of strings at
+ all.
+ </note>
+ </refsect1>
<refsect1>
<title>Examples</title>
<para>
diff --git a/opcodes/instance.xml b/opcodes/instance.xml
new file mode 100644
index 0000000..d578a0e
--- /dev/null
+++ b/opcodes/instance.xml
@@ -0,0 +1,116 @@
+
+<refentry id="instance">
+<indexterm id="IndexSchedule"><primary>instance</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Invocation</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>instance</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>instance</refname>
+ <refpurpose>
+ Schedules a new instrument instance, storing the instance handle in a variable.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Schedules a new instrument instance, returning a handle that can be used later to
+refer directly to the running instance. This opcode is similar to schedule, but has the added
+facility of retrieving the instance handle.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>iHandle <command>instance</command> insnum, iwhen, idur [, ip4] [, ip5] [...]</synopsis>
+ <synopsis>iHandle <command>instance</command> &quot;insname&quot;, iwhen, idur [, ip4] [, ip5] [...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>iHandle</emphasis> -- this variable will contain a handle to the event instance. It can be used, for example, to
+stop the given instrument instance via the kill opcode. Note that the instance handle is only valid once the instrument is initialised.
+ </para>
+ <para>
+ <emphasis>insnum</emphasis> -- instrument number. Equivalent to p1 in a score <link linkend="i"><citetitle>i statement</citetitle></link>. <emphasis>insnum</emphasis> must be a number greater than the number of the calling instrument.
+ </para>
+
+ <para>
+ <emphasis><quote>insname</quote></emphasis> -- A string (in double-quotes) representing a named instrument.
+ </para>
+
+ <para>
+ <emphasis>iwhen</emphasis> -- start time of the new event. Equivalent to p2 in a score <link linkend="i"><citetitle>i statement</citetitle></link>. <emphasis>iwhen</emphasis> must be nonnegative. If <emphasis>iwhen</emphasis> is zero, <emphasis>insum</emphasis> must be greater than or equal to the p1 of the current instrument.
+ </para>
+
+ <para>
+ <emphasis>idur</emphasis> -- duration of event. Equivalent to p3 in a score <link linkend="i"><citetitle>i statement</citetitle></link>.
+ </para>
+
+ <para>
+ <emphasis>ip4, ip5, ...</emphasis> -- Equivalent to p4, p5, etc., in a score <link linkend="i"><citetitle>i statement</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>instance</emphasis> adds a new score event. The arguments, including options, are the same as in a score. The <emphasis>iwhen</emphasis> time (p2) is measured from the time of this event.
+ </para>
+
+ <para>
+ If the duration is zero or negative the new event is of MIDI type, and inherits the release sub-event from the scheduling instruction.
+ </para>
+ <note>
+ <para> Note that the <emphasis>instance</emphasis> opcode can't accept string p-fields. If you need to pass strings when instantiating an instrument, use the <link linkend="scoreline"><citetitle>scoreline</citetitle></link> or <link linkend="scoreline_i"><citetitle>scoreline_i</citetitle></link> opcode.</para>
+ </note>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the instance opcode. It uses the file <ulink url="examples/instance.csd"><citetitle>instance.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the instance opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/instance.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="schedwhen"><citetitle>schedwhen</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See also</title>
+ <para><link linkend="event"><citetitle>event</citetitle></link>,
+ <link linkend="event_i"><citetitle>event_i</citetitle></link>,
+ <link linkend="schedwhen"><citetitle>schedwhen</citetitle></link>,
+ <link linkend="schedkwhen"><citetitle>schedkwhen</citetitle></link>,
+ <link linkend="schedkwhennamed"><citetitle>schedkwhennamed</citetitle></link>,
+ <link linkend="scoreline"><citetitle>scoreline</citetitle></link>,
+ <link linkend="scoreline_i"><citetitle>scoreline_i</citetitle></link></para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue15/phrase_loops.html"><citetitle>http://www.csounds.com/journal/issue15/phrase_loops.html</citetitle></ulink> , written by Jim Aikin </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>November 2013</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 3.491</para>
+ <para>Based on work by &namegabriel;</para>
+ <para>Thanks goes to David Gladstein, for clarifying the <emphasis>iwhen</emphasis> parameter.</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/int.xml b/opcodes/int.xml
index 2a5eecc..69213dc 100644
--- a/opcodes/int.xml
+++ b/opcodes/int.xml
@@ -39,16 +39,21 @@
<example>
<title>Example of the int opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/int.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include a line like this:
+ Its output should include lines like these:
<screen>
-instr 1: i2 = 3.000
+integer (0.000000/3) = 0.000000
+integer (1.000000/3) = 0.000000
+integer (2.000000/3) = 0.000000
+integer (3.000000/3) = 1.000000
+integer (4.000000/3) = 1.000000
+integer (5.000000/3) = 1.000000
+integer (6.000000/3) = 2.000000
+integer (7.000000/3) = 2.000000
+integer (8.000000/3) = 2.000000
+integer (9.000000/3) = 3.000000
</screen>
</para>
</refsect1>
@@ -68,6 +73,5 @@ instr 1: i2 = 3.000
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/interp.xml b/opcodes/interp.xml
index 3bcdd04..c4b1f48 100644
--- a/opcodes/interp.xml
+++ b/opcodes/interp.xml
@@ -96,9 +96,6 @@
<example>
<title>Example of the interp opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/interp.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
@@ -114,11 +111,11 @@
<link linkend="samphold"><citetitle>samphold</citetitle></link>,
<link linkend="upsamp"><citetitle>upsamp</citetitle></link>
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue10/CsoundRates.html"><citetitle>http://www.csounds.com/journal/issue10/CsoundRates.html</citetitle></ulink> , written by Andrés Cabrera </para>
</refsect1>
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
<para>Updated November 2002, thanks to a note from both &namerasmus; and &nameistvan;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/invalue.xml b/opcodes/invalue.xml
index 3769384..a088758 100644
--- a/opcodes/invalue.xml
+++ b/opcodes/invalue.xml
@@ -42,6 +42,18 @@
<emphasis>&quot;channel name&quot;</emphasis> -- An integer, string (in double-quotes), or string variable identifying the channel.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the invalue opcode. It uses the file <ulink url="examples/invalue.csd"><citetitle>invalue.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the invalue opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/invalue.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/jitter.xml b/opcodes/jitter.xml
index e3a37bd..f316e04 100644
--- a/opcodes/jitter.xml
+++ b/opcodes/jitter.xml
@@ -78,7 +78,6 @@
<refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
- <para>Example written by &namekevin;.</para>
<para>New in Version 4.15</para>
</refsect1>
</refentry>
diff --git a/opcodes/jitter2.xml b/opcodes/jitter2.xml
index 1f3acc1..56a1f73 100644
--- a/opcodes/jitter2.xml
+++ b/opcodes/jitter2.xml
@@ -94,7 +94,6 @@
<refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
- <para>Example written by &namekevin;.</para>
<para>New in Version 4.15</para>
</refsect1>
</refentry>
diff --git a/opcodes/joystick.xml b/opcodes/joystick.xml
new file mode 100644
index 0000000..96bb8a8
--- /dev/null
+++ b/opcodes/joystick.xml
@@ -0,0 +1,75 @@
+
+<refentry id="joystick">
+<indexterm id="Indexjoystick"><primary>joystick</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Sensing and Control</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>joystick</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>joystick</refname>
+ <refpurpose>
+ Reads data from a joystick controller.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Reads data from a Linux joystick controller
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>kres <command>joystick</command> kdevice ktab</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <note>
+ <para>
+ Please note that this opcode is currently only supported on
+ Linux.
+ </para>
+ </note>
+ <para>
+ <emphasis>kdevice</emphasis> -- the index of the joystick device, either /dev/js<emphasis>N</emphasis> or
+ /dev/input/js<emphasis>N</emphasis>.
+ </para>
+ <para>
+ <emphasis>ktab</emphasis> -- A table to hold input results,
+ should be at least enough elements to store one value for each
+ stick axis and one for each button + 2. The first two elements
+ of the table are initialized with the number of axes and the
+ number of buttons, respectively, when a joystick is opened. If a
+ joystick is unplugged during performance, the opcode will
+ repeatedly attempt to reopen the device with a delay between
+ attempts.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the joystick opcode. It uses the file <ulink url="examples/joystick.csd"><citetitle>joystick.csd</citetitle></ulink>.
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ </para>
+ <xi:include href="examples-xml/joystick.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <para>
+ Here is another example of the joystick opcode. It uses the file <ulink url="examples/joystick-2.csd"><citetitle>joystick-2.csd</citetitle></ulink>.
+ </para>
+ <xi:include href="examples-xml/joystick-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Justin Glenn Smith</member>
+ <member>2010</member>
+ </simplelist>
+ </para>
+ <para>New in version 5.17.12</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/jspline.xml b/opcodes/jspline.xml
index 73bdfdf..5fe66de 100644
--- a/opcodes/jspline.xml
+++ b/opcodes/jspline.xml
@@ -61,6 +61,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the jspline opcode. It uses the file <ulink url="examples/jspline.csd"><citetitle>jspline.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the jspline opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/jspline.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
<para>New in Version 4.15</para>
diff --git a/opcodes/kgoto.xml b/opcodes/kgoto.xml
index 55b1fde..e61fd84 100644
--- a/opcodes/kgoto.xml
+++ b/opcodes/kgoto.xml
@@ -10,7 +10,7 @@
<refname>kgoto</refname>
<refpurpose>
- Transfer control during the p-time passes.
+ Transfer control during the performance-time passes.
</refpurpose>
</refnamediv>
diff --git a/opcodes/kill.xml b/opcodes/kill.xml
new file mode 100644
index 0000000..0028aa9
--- /dev/null
+++ b/opcodes/kill.xml
@@ -0,0 +1,61 @@
+
+<refentry id="kill">
+<indexterm id="IndexTurnoff"><primary>kill</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Duration Control</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>kill</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>kill</refname>
+
+ <refpurpose>
+ Stops a given instrument instance.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Given a valid instrument instance, this opcode stops it.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>kill</command> kinstance</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kinstance</emphasis> -- a valid instrument instance. Whether of finite duration or <quote>held</quote>, the instance currently being performed is immediately removed from the active instance list. No other instances are affected.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ The following example uses the kill opcode. It uses the file <ulink url="examples/kill.csd"><citetitle>kill.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the kill opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/kill.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="ihold"><citetitle>ihold</citetitle></link>,
+ <link linkend="turnon"><citetitle>turnon</citetitle></link>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/kr.xml b/opcodes/kr.xml
index eeb44cb..bf34160 100644
--- a/opcodes/kr.xml
+++ b/opcodes/kr.xml
@@ -31,7 +31,7 @@
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>kr</emphasis> = (optional) -- set control rate to <emphasis>iarg</emphasis> samples per second. The default value is 1000.
+ <emphasis>kr</emphasis> = (optional) -- set control rate to <emphasis>iarg</emphasis> samples per second. The default value is 4410.
</para>
<para>
diff --git a/opcodes/lenarray.xml b/opcodes/lenarray.xml
new file mode 100644
index 0000000..7c56acd
--- /dev/null
+++ b/opcodes/lenarray.xml
@@ -0,0 +1,71 @@
+
+<refentry id="lenarray">
+<indexterm id="IndexLenarray"><primary>lenarray</primary></indexterm>
+
+ <refentryinfo><title>Table Control:Table Queries</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>lenarray</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>lenarray</refname>
+ <refpurpose>
+ Calculate the length of a vector.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Calculate the length of a vector (one-dimensionly k-rate array).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ir <command>lenarray</command> karray</synopsis>
+ <synopsis>kr <command>lenarray</command> karray</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kr</emphasis> -- length of vector.
+ </para>
+ <para>
+ <emphasis>karray</emphasis> -- array to query.
+
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the lenarray opcode. It uses the file <ulink url="examples/lenarray.csd"><citetitle>lenarray.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the lenarray opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/lenarray.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vectorial"><citetitle></citetitle>Vectorial opcodes</link>
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Codemist Ltd</member>
+ <member>2013</member>
+ </simplelist>
+ </para>
+ <para>New in version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/lessequal.xml b/opcodes/lessequal.xml
index f2d14c8..df49dc3 100644
--- a/opcodes/lessequal.xml
+++ b/opcodes/lessequal.xml
@@ -73,9 +73,14 @@
Its output should include lines like this:
<screen>
-k1 = 2.000000, k2 = 1.000000
-k1 = 3.000000, k2 = 1.000000
-k1 = 4.000000, k2 = 0.000000</screen>
+random number = 1.035781, result = 3.000000
+random number = 0.134037, result = 1.000000
+random number = 0.130742, result = 1.000000
+random number = 1.002550, result = 3.000000
+random number = 0.370565, result = 1.000000
+random number = 0.655759, result = 2.000000
+random number = 0.676154, result = 2.000000
+......</screen>
</para>
</refsect1>
@@ -90,8 +95,4 @@ k1 = 4.000000, k2 = 0.000000</screen>
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
</refentry>
diff --git a/opcodes/lessthan.xml b/opcodes/lessthan.xml
index 999e0ee..377343e 100644
--- a/opcodes/lessthan.xml
+++ b/opcodes/lessthan.xml
@@ -73,9 +73,8 @@
Its output should include lines like this:
<screen>
-k1 = 2.000000, k2 = 1.000000
-k1 = 3.000000, k2 = 0.000000
-k1 = 4.000000, k2 = 0.000000</screen>
+ipitch = 261.626
+ipitch = 800.00</screen>
</para>
</refsect1>
@@ -90,8 +89,4 @@ k1 = 4.000000, k2 = 0.000000</screen>
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
</refentry>
diff --git a/opcodes/limit.xml b/opcodes/limit.xml
index e188ab4..fa9da5e 100644
--- a/opcodes/limit.xml
+++ b/opcodes/limit.xml
@@ -70,6 +70,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the limit opcode. It uses the file <ulink url="examples/limit.csd"><citetitle>limit.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the limit opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/limit.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="mirror"><citetitle>mirror</citetitle></link>,
diff --git a/opcodes/line.xml b/opcodes/line.xml
index 9f7a786..7639d91 100644
--- a/opcodes/line.xml
+++ b/opcodes/line.xml
@@ -89,6 +89,5 @@
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/linen.xml b/opcodes/linen.xml
index 33a19ff..27503f5 100644
--- a/opcodes/linen.xml
+++ b/opcodes/linen.xml
@@ -79,6 +79,19 @@
</note>
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the linen opcode. It uses the file <ulink url="examples/linen.csd"><citetitle>linen.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the linen opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/linen.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/linenr.xml b/opcodes/linenr.xml
index f62fca8..cc0d306 100644
--- a/opcodes/linenr.xml
+++ b/opcodes/linenr.xml
@@ -61,6 +61,18 @@
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the linenr opcode. It uses the file <ulink url="examples/linenr.csd"><citetitle>linenr.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the linenr opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/linenr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/lineto.xml b/opcodes/lineto.xml
index a903363..5d8dd5b 100644
--- a/opcodes/lineto.xml
+++ b/opcodes/lineto.xml
@@ -48,6 +48,18 @@
</para>
<note><para>No new value for <emphasis>ksig</emphasis> or <emphasis>ktime</emphasis> will have effect until the previous <emphasis>ktime</emphasis> has elapsed.</para></note>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the lineto opcode. It uses the file <ulink url="examples/lineto.csd"><citetitle>lineto.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the lineto opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/lineto.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/linrand.xml b/opcodes/linrand.xml
index dd1627a..f7e35fa 100644
--- a/opcodes/linrand.xml
+++ b/opcodes/linrand.xml
@@ -60,16 +60,35 @@
<example>
<title>Example of the linrand opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/linrand.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
Its output should include a line like this:
<screen>
-instr 1: i1 = 0.394
+ i 1 time 0.00033: 13.54770
+ i 1 time 0.20033: 32.38746
+ i 1 time 0.40033: 47.69304
+ i 1 time 0.60033: 19.82218
+ i 1 time 0.80033: 42.98293
+ i 1 time 1.00000: 81.13174
+ i 1 time 1.20033: 47.39585
+ i 1 time 1.40033: 12.53248
+ i 1 time 1.60033: 35.70722
+ i 1 time 1.80000: 65.25774
+ i 1 time 2.00000: 23.24811
+Seeding from current time 392575384
+ i 2 time 3.00033: 23.05609
+ i 2 time 3.20033: 76.15114
+ i 2 time 3.40033: 22.78861
+ i 2 time 3.60000: 0.79064
+ i 2 time 3.80033: 43.49438
+ i 2 time 4.00000: 34.10963
+ i 2 time 4.20000: 31.88702
+ i 2 time 4.40033: 59.78054
+ i 2 time 4.60033: 4.96821
+ i 2 time 4.80033: 24.69674
+ i 2 time 5.00000: 21.88815
</screen>
</para>
</refsect1>
@@ -100,6 +119,5 @@ instr 1: i1 = 0.394
<member>1995</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/linseg.xml b/opcodes/linseg.xml
index a82aef3..f908423 100644
--- a/opcodes/linseg.xml
+++ b/opcodes/linseg.xml
@@ -1,104 +1,94 @@
-
-<refentry id="linseg">
-<indexterm id="IndexLinseg"><primary>linseg</primary></indexterm>
- <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
- <refmeta>
- <refentrytitle>linseg</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>linseg</refname>
- <refpurpose>
- Trace a series of line segments between specified points.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Trace a series of line segments between specified points.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>ares <command>linseg</command> ia, idur1, ib [, idur2] [, ic] [...]</synopsis>
-
- <synopsis>kres <command>linseg</command> ia, idur1, ib [, idur2] [, ic] [...]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ia</emphasis> -- starting value.
- </para>
-
- <para>
- <emphasis>ib, ic</emphasis>, etc. -- value after <emphasis>dur1</emphasis> seconds, etc.
- </para>
-
- <para>
- <emphasis>idur1</emphasis> -- duration in seconds of first segment. A zero or negative value will cause all initialization to be skipped.
- </para>
-
- <para>
- <emphasis>idur2, idur3</emphasis>, etc. -- duration in seconds of subsequent segments. A zero or negative value will terminate the initialization process with the preceding point, permitting the last-defined line or curve to be continued indefinitely in performance. The default is zero.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- These units generate control or audio signals whose values can pass through 2 or more specified points. The sum of <emphasis>dur</emphasis> values may or may not equal the instrument's performance time: a shorter performance will truncate the specified pattern, while a longer one will cause the last-defined segment to continue on in the same direction.
- </para>
- <para>
- <note>
- <para>
- A common error with this opcode is to assume that the last value
- is held after the total duration. <emphasis>linseg</emphasis> does not
- automatically end or stop at the end of the total duration. If your
- note length is longer than the sum of all <emphasis>idur</emphasis>
- values, <emphasis>kres</emphasis> (or <emphasis>ares</emphasis>) will
- not come to rest at the last given value, but will instead continue to
- rise or fall with the current rate. You can add a final segment at the
- same previous value to create a held final value.
- </para>
- </note>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the linseg opcode. It uses the file <ulink url="examples/linseg.csd"><citetitle>linseg.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the linseg opcode.</title>
-
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/linseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="expon"><citetitle>expon</citetitle></link>,
- <link linkend="expseg"><citetitle>expseg</citetitle></link>,
- <link linkend="expsegr"><citetitle>expsegr</citetitle></link>,
- <link linkend="line"><citetitle>line</citetitle></link>,
- <link linkend="linsegr"><citetitle>linsegr</citetitle></link>
- <link linkend="transeg"><citetitle>transeg</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
-</refentry>
+
+<refentry id="linseg">
+<indexterm id="IndexLinseg"><primary>linseg</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>linseg</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>linseg</refname>
+ <refpurpose>
+ Trace a series of line segments between specified points.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Trace a series of line segments between specified points.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>linseg</command> ia, idur1, ib [, idur2] [, ic] [...]</synopsis>
+
+ <synopsis>kres <command>linseg</command> ia, idur1, ib [, idur2] [, ic] [...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ia</emphasis> -- starting value.
+ </para>
+
+ <para>
+ <emphasis>ib, ic</emphasis>, etc. -- value after <emphasis>dur1</emphasis> seconds, etc.
+ </para>
+
+ <para>
+ <emphasis>idur1</emphasis> -- duration in seconds of first segment. A zero or negative value will cause all initialization to be skipped.
+ </para>
+
+ <para>
+ <emphasis>idur2, idur3</emphasis>, etc. -- duration in seconds of subsequent segments. A zero or negative value will terminate the initialization process with the preceding point, permitting the last-defined line or curve to be continued indefinitely in performance. The default is zero.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ These units generate control or audio signals whose values can pass through 2 or more specified points. The sum of <emphasis>dur</emphasis> values may or may not equal the instrument's performance time: a shorter performance will truncate the specified pattern, while a longer one will cause the last value to be repeated until the end of the note.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the linseg opcode. It uses the file <ulink url="examples/linseg.csd"><citetitle>linseg.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the linseg opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/linseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="expon"><citetitle>expon</citetitle></link>,
+ <link linkend="expseg"><citetitle>expseg</citetitle></link>,
+ <link linkend="expsegb"><citetitle>expsegb</citetitle></link>,
+ <link linkend="expsegr"><citetitle>expsegr</citetitle></link>,
+ <link linkend="cosseg"><citetitle>cosseg</citetitle></link>,
+ <link linkend="line"><citetitle>line</citetitle></link>,
+ <link linkend="linsegr"><citetitle>linsegr</citetitle></link>
+ <link linkend="transeg"><citetitle>transeg</citetitle></link>
+ <link linkend="transegb"><citetitle>transegb</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namebarry;</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/linsegb.xml b/opcodes/linsegb.xml
new file mode 100644
index 0000000..c389e8f
--- /dev/null
+++ b/opcodes/linsegb.xml
@@ -0,0 +1,98 @@
+
+<refentry id="linsegb">
+<indexterm id="IndexLinsegb"><primary>linsegb</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>linsegb</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>linsegb</refname>
+ <refpurpose>
+ Trace a series of line segments between specified absolute points.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Trace a series of line segments between specified absolute points.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>linsegb</command> ia, itim1, ib [, itim2] [, ic] [...]</synopsis>
+
+ <synopsis>kres <command>linsegb</command> ia, itim1, ib [, itim2] [, ic] [...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ia</emphasis> -- starting value.
+ </para>
+
+ <para>
+ <emphasis>ib, ic</emphasis>, etc. -- value at <emphasis>tim1</emphasis> seconds, etc.
+ </para>
+
+ <para>
+ <emphasis>itim1</emphasis> -- time in seconds of end of first
+ segment. A zero or negative value will cause all initialization
+ to be skipped.
+ </para>
+
+ <para>
+ <emphasis>itim2, itim3</emphasis>, etc. -- time in seconds at
+ the end of subsequent segments.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ These units generate control or audio signals whose values can pass through 2 or more specified points. The last <emphasis>tim</emphasis> value may or may not equal the instrument's performance time: a shorter performance will truncate the specified pattern, while a longer one will cause the last value to be repeated until the end of the note.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the linsegb opcode. It uses the file <ulink url="examples/linsegb.csd"><citetitle>linsegb.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the linsegb opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/linsegb.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="expon"><citetitle>expon</citetitle></link>,
+ <link linkend="expseg"><citetitle>expseg</citetitle></link>,
+ <link linkend="expsegr"><citetitle>expsegr</citetitle></link>,
+ <link linkend="line"><citetitle>line</citetitle></link>,
+ <link linkend="linseg"><citetitle>linseg</citetitle></link>
+ <link linkend="linsegr"><citetitle>linsegr</citetitle></link>
+ <link linkend="transeg"><citetitle>transeg</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>June 2011 </member>
+ </simplelist>
+ </para>
+ <para>New in version 5.14</para>
+
+ </refsect1>
+</refentry>
diff --git a/opcodes/linsegr.xml b/opcodes/linsegr.xml
index 24e953b..9b77e47 100644
--- a/opcodes/linsegr.xml
+++ b/opcodes/linsegr.xml
@@ -104,7 +104,6 @@
<refsect1>
<title>Credits</title>
<para>Author: &namebarry;</para>
- <para>Example written by &namekevin;.</para>
<para>December 2002, December 2006. Thanks to &nameistvan;, added documentation about the maximum release time.</para>
<para>New in Csound 3.47</para>
</refsect1>
diff --git a/opcodes/locsend.xml b/opcodes/locsend.xml
index 44da6af..9b76675 100644
--- a/opcodes/locsend.xml
+++ b/opcodes/locsend.xml
@@ -59,28 +59,18 @@
<para>
In the above example, the signal, <emphasis>asig</emphasis>, is sent around a complete circle once during the duration of a note while at the same time it becomes more and more <quote>distant</quote> from the listeners' location. <emphasis>locsig</emphasis> sends the appropriate amount of the signal internally to <emphasis>locsend</emphasis>. The outputs of the <emphasis>locsend</emphasis> are added to global accumulators in a common Csound style and the global signals are used as inputs to the reverb units in a separate instrument.
- </para>
+ For an example, see <link linkend="locsig"><citetitle>locsig</citetitle></link>.
+ </para>
<para>
<emphasis>locsig</emphasis> is useful for quad and stereo panning as well as fixed placed of sounds anywhere between two loudspeakers. Below is an example of the fixed placement of sounds in a stereo field.
- </para>
-
- <para>
- <informalexample>
- <programlisting>
-<emphasis role="oblock">instr</emphasis> 1
- a1, a2 <emphasis role="opc">locsig</emphasis> asig, p4, p5, .1
- ar1, ar2 <emphasis role="opc">locsend</emphasis>
- ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
- ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
- <emphasis role="opc">outs</emphasis> a1, a
-<emphasis role="oblock">endin</emphasis>
-<emphasis role="oblock">instr</emphasis> 99
- <emphasis role="comment">; reverb....</emphasis>
-<emphasis role="oblock">endin</emphasis></programlisting>
- </informalexample>
- </para>
-
+It uses the file <ulink url="examples/locsend_stereo.csd"><citetitle>locsend_stereo.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the locsend opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/locsend_stereo.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+</para>
<para>
A few notes:
<informalexample>
diff --git a/opcodes/locsig.xml b/opcodes/locsig.xml
index 292c53b..c1ee71b 100644
--- a/opcodes/locsig.xml
+++ b/opcodes/locsig.xml
@@ -45,35 +45,17 @@
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
- asig some audio signal
- kdegree <emphasis role="opc">line</emphasis> 0, p3, 360
- kdistance <emphasis role="opc">line</emphasis> 1, p3, 10
- a1, a2, a3, a4 <emphasis role="opc">locsig</emphasis> asig, kdegree, kdistance, .1
- ar1, ar2, ar3, ar4 <emphasis role="opc">locsend</emphasis>
- ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
- ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
- ga3 <emphasis role="op">=</emphasis> ga3<emphasis role="op">+</emphasis>ar3
- ga4 <emphasis role="op">=</emphasis> ga4<emphasis role="op">+</emphasis>ar4
- <emphasis>outq</emphasis> a1, a2, a3, a4
-<emphasis role="oblock">endin</emphasis>
+ Here is an example of the locsig opcode. It uses the file <ulink url="examples/locsig_quad.csd"><citetitle>locsig_quad.csd</citetitle></ulink>.
-<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb instrument</emphasis>
- a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
- a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
- a3 <emphasis role="opc">reverb2</emphasis> ga3, 2.5, .5
- a4 <emphasis role="opc">reverb2</emphasis> ga4, 2.5, .5
- <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
- ga1<emphasis role="op">=</emphasis>0
- ga2<emphasis role="op">=</emphasis>0
- ga3<emphasis role="op">=</emphasis>0
- ga4<emphasis role="op">=</emphasis>0</programlisting>
- </informalexample>
+ <example>
+ <title>Example of the locsig opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/locsig_quad.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
<para>
- In the above example, the signal, <emphasis>asig</emphasis>, is sent around a complete circle once during the duration of a note while at the same time it becomes more and more &quot;distant&quot; from the listeners' location. <emphasis>locsig</emphasis> sends the appropriate amount of the signal internally to <emphasis>locsend</emphasis>. The outputs of the <emphasis>locsend</emphasis> are added to global accumulators in a common Csound style and the global signals are used as inputs to the reverb units in a separate instrument.
+ In the above example, the signal, <emphasis>aout</emphasis>, is sent around a complete circle once during the duration of a note while at the same time it becomes more and more &quot;distant&quot; from the listeners' location. <emphasis>locsig</emphasis> sends the appropriate amount of the signal internally to <emphasis>locsend</emphasis>. The outputs of the <emphasis>locsend</emphasis> are added to global accumulators in a common Csound style and the global signals are used as inputs to the reverb units in a separate instrument.
</para>
<para>
diff --git a/opcodes/log10.xml b/opcodes/log10.xml
index e9e5ecb..b2296cb 100644
--- a/opcodes/log10.xml
+++ b/opcodes/log10.xml
@@ -64,6 +64,7 @@
<link linkend="frac"><citetitle>frac</citetitle></link>,
<link linkend="int"><citetitle>int</citetitle></link>,
<link linkend="log"><citetitle>log</citetitle></link>,
+ <link linkend="log2"><citetitle>log</citetitle></link>,
<link linkend="opi"><citetitle>i</citetitle></link>,
<link linkend="sqrt"><citetitle>sqrt</citetitle></link>
</para>
diff --git a/opcodes/log2.xml b/opcodes/log2.xml
new file mode 100644
index 0000000..7f905a6
--- /dev/null
+++ b/opcodes/log2.xml
@@ -0,0 +1,72 @@
+
+<refentry id="log2">
+<indexterm id="IndexLog2"><primary>log2</primary></indexterm>
+ <refentryinfo><title>Mathematical Operations:Mathematical Functions</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>log2</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>log2</refname>
+ <refpurpose>
+ Returns a base 2 log.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Returns the base 2 log of <emphasis>x</emphasis> (<emphasis>x</emphasis> positive only).
+ </para>
+
+ <para>
+ The argument value is restricted for <link linkend="log"><citetitle>log</citetitle></link>,
+ <emphasis>log2</emphasis>, and <link linkend="sqrt"><citetitle>sqrt</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>log2</command>(x) (no rate restriction)</synopsis>
+
+ <para>
+ where the argument within the parentheses may be an expression. Value converters perform arithmetic translation from units of one kind to units of another. The result can then be a term in a further expression.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the log2 opcode. It uses the file <ulink url="examples/log2.csd"><citetitle>log2.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the log2 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/log2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ Its output should include a line like this:
+ <screen>instr 1: i1 = 3.000</screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="abs"><citetitle>abs</citetitle></link>,
+ <link linkend="exp"><citetitle>exp</citetitle></link>,
+ <link linkend="frac"><citetitle>frac</citetitle></link>,
+ <link linkend="int"><citetitle>int</citetitle></link>,
+ <link linkend="log"><citetitle>log</citetitle></link>,
+ <link linkend="log10"><citetitle>log</citetitle></link>,
+ <link linkend="opi"><citetitle>i</citetitle></link>,
+ <link linkend="sqrt"><citetitle>sqrt</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by &namejohn;.</para>
+ <para>New in version 5.17.12</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/loop_ge.xml b/opcodes/loop_ge.xml
index f923f35..3071a44 100644
--- a/opcodes/loop_ge.xml
+++ b/opcodes/loop_ge.xml
@@ -74,6 +74,8 @@
<link linkend="loop_le"><citetitle>loop_le</citetitle></link> and
<link linkend="loop_lt"><citetitle>loop_lt</citetitle></link>.
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/2006summer/controlFlow_part2.html"><citetitle>http://www.csounds.com/journal/2006summer/controlFlow_part2.html</citetitle></ulink> , written by Steven Yi.
+ And in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch018_c-control-structures"><citetitle> http://en.flossmanuals.net/csound/ch018_c-control-structures</citetitle></ulink></para>
</refsect1>
<refsect1>
diff --git a/opcodes/loop_gt.xml b/opcodes/loop_gt.xml
index f17605d..74a114e 100644
--- a/opcodes/loop_gt.xml
+++ b/opcodes/loop_gt.xml
@@ -72,7 +72,10 @@
<link linkend="loop_le"><citetitle>loop_le</citetitle></link> and
<link linkend="loop_lt"><citetitle>loop_lt</citetitle></link>.
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/2006summer/controlFlow_part2.html"><citetitle>http://www.csounds.com/journal/2006summer/controlFlow_part2.html</citetitle></ulink> , written by Steven Yi.
+ And in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch018_c-control-structures"><citetitle> http://en.flossmanuals.net/csound/ch018_c-control-structures</citetitle></ulink></para>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>&nameistvan;.</para>
diff --git a/opcodes/loop_le.xml b/opcodes/loop_le.xml
index 6c5b1a8..48e7b76 100644
--- a/opcodes/loop_le.xml
+++ b/opcodes/loop_le.xml
@@ -67,6 +67,28 @@
<emphasis role="opc">if</emphasis> (kndx <emphasis role="op">&lt;=</emphasis> kmax) <emphasis role="opc">kgoto</emphasis> label</programlisting>
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the loop_le opcode. It uses the file <ulink url="examples/loop_le.csd"><citetitle>loop_le.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the loop_le opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/loop_le.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include a line like this:
+ <screen>
+play instance 0
+play instance 1
+play instance 2
+play instance 3
+play instance 4
+play instance 5
+ </screen>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
@@ -74,7 +96,9 @@
<link linkend="loop_gt"><citetitle>loop_gt</citetitle></link> and
<link linkend="loop_lt"><citetitle>loop_lt</citetitle></link>.
</para>
- </refsect1>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/2006summer/controlFlow_part2.html"><citetitle>http://www.csounds.com/journal/2006summer/controlFlow_part2.html</citetitle></ulink> , written by Steven Yi.
+ And in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch018_c-control-structures"><citetitle> http://en.flossmanuals.net/csound/ch018_c-control-structures</citetitle></ulink></para>
+ </refsect1>
<refsect1>
<title>Credits</title>
diff --git a/opcodes/loop_lt.xml b/opcodes/loop_lt.xml
index 19e2dce..7c26e9f 100644
--- a/opcodes/loop_lt.xml
+++ b/opcodes/loop_lt.xml
@@ -66,7 +66,27 @@
kndx <emphasis role="op">=</emphasis> kndx <emphasis role="op">+</emphasis> kncr
<emphasis role="opc">if</emphasis> (kndx <emphasis role="op">&lt;</emphasis> kmax) <emphasis role="opc">kgoto</emphasis> label</programlisting>
</para>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the loop_lt opcode. It uses the file <ulink url="examples/loop_lt.csd"><citetitle>loop_lt.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the loop_lt opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/loop_lt.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include a line like this:
+ <screen>
+play instance 0
+play instance 1
+play instance 2
+play instance 3
+play instance 4
+ </screen>
+ </para>
+ </refsect1>
+
</refsect1>
<refsect1>
<title>See Also</title>
@@ -75,6 +95,9 @@
<link linkend="loop_gt"><citetitle>loop_gt</citetitle></link> and
<link linkend="loop_le"><citetitle>loop_le</citetitle></link>.
</para>
+
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/2006summer/controlFlow_part2.html"><citetitle>http://www.csounds.com/journal/2006summer/controlFlow_part2.html</citetitle></ulink> , written by Steven Yi.
+ And in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch018_c-control-structures"><citetitle> http://en.flossmanuals.net/csound/ch018_c-control-structures</citetitle></ulink></para>
</refsect1>
<refsect1>
diff --git a/opcodes/loopseg.xml b/opcodes/loopseg.xml
index 3e6524f..aa78e47 100644
--- a/opcodes/loopseg.xml
+++ b/opcodes/loopseg.xml
@@ -1,99 +1,102 @@
-
-<refentry id="loopseg">
-<indexterm id="IndexLoopseg"><primary>loopseg</primary></indexterm>
- <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
- <refmeta>
- <refentrytitle>loopseg</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>loopseg</refname>
- <refpurpose>
- Generate control signal consisting of linear segments delimited by two or more specified points.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Generate control signal consisting of linear segments delimited by two or more specified points. The entire envelope is looped at <emphasis>kfreq</emphasis> rate. Each parameter can be varied at k-rate.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>ksig <command>loopseg</command> kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>ksig</emphasis> -- Output signal.
- </para>
-
- <para>
- <emphasis>kfreq</emphasis> -- Repeat rate in Hz or fraction of Hz.
- </para>
-
- <para>
- <emphasis>ktrig</emphasis> -- If non-zero, retriggers the envelope from start (see <link linkend="trigger"><citetitle>trigger opcode</citetitle></link>), before the envelope cycle is completed.
- </para>
-
- <para>
- <emphasis>ktime0...ktimeN</emphasis> -- Times of points; expressed in fraction of a cycle.
- </para>
-
- <para>
- <emphasis>kvalue0...kvalueN</emphasis> -- Values of points
- </para>
-
- <para>
- <emphasis>loopseg</emphasis> opcode is similar to <link linkend="linseg"><citetitle>linseg</citetitle></link>, but the entire envelope is looped at <emphasis>kfreq</emphasis> rate. Notice that times are not expressed in seconds but in fraction of a cycle. Actually each duration represent is proportional to the other, and the entire cycle duration is proportional to the sum of all duration values.
- </para>
-
- <para>
- The sum of all duration is then rescaled according to <emphasis>kfreq</emphasis> argument. For example, considering an envelope made up of 3 segments, each segment having 100 as duration value, their sum will be 300. This value represents the total duration of the envelope, and is actually divided into 3 equal parts, a part for each segment.
- </para>
-
- <para>
- Actually, the real envelope duration in seconds is determined by <emphasis>kfreq</emphasis>. Again, if the envelope is made up of 3 segments, but this time the first and last segments have a duration of 50, whereas the central segment has a duration of 100 again, their sum will be 200. This time 200 represent the total duration of the 3 segments, so the central segment will be twice as long as the other segments.
- </para>
-
- <para>
- All parameters can be varied at k-rate. Negative frequency values are allowed, reading the envelope backward. <emphasis>ktime0</emphasis> should always be set to 0, except if the user wants some special effect.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the loopseg opcode. It uses the file <ulink url="examples/loopseg.csd"><citetitle>loopseg.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the loopseg opcode.</title>
-
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/loopseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="lpshold"><citetitle>lpshold</citetitle></link>
- <link linkend="loopxseg"><citetitle>loopxseg</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Author: &namegabriel;</para>
- <para>New in Version 4.13</para>
- </refsect1>
-</refentry>
+
+<refentry id="loopseg">
+<indexterm id="IndexLoopseg"><primary>loopseg</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>loopseg</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>loopseg</refname>
+ <refpurpose>
+ Generate control signal consisting of linear segments delimited by two or more specified points.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generate control signal consisting of linear segments delimited by two or more specified points. The entire envelope is looped at <emphasis>kfreq</emphasis> rate. Each parameter can be varied at k-rate.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ksig <command>loopseg</command> kfreq, ktrig, iphase, kvalue0, ktime0 [, kvalue1] [, ktime1] \
+[, kvalue2] [, ktime2][...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>iphase</emphasis> -- A value between 0 and 1 to say
+ where to start the loop. Zero, the commonest value, indicates
+ the beginning.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>ksig</emphasis> -- Output signal.
+ </para>
+
+ <para>
+ <emphasis>kfreq</emphasis> -- Repeat rate in Hz or fraction of Hz.
+ </para>
+
+ <para>
+ <emphasis>ktrig</emphasis> -- If non-zero, retriggers the envelope from start (see <link linkend="trigger"><citetitle>trigger opcode</citetitle></link>), before the envelope cycle is completed.
+ </para>
+
+ <para>
+ <emphasis>kvalue0...kvalueN</emphasis> -- Values of points
+ </para>
+
+ <para>
+ <emphasis>ktime0...ktimeN</emphasis> -- Times between points; expressed in fractions of a cycle (see below). The final time designates a ramp between the final value and the first value.
+ </para>
+
+ <para>
+ <emphasis>loopseg</emphasis> opcode is similar to <link linkend="linseg"><citetitle>linseg</citetitle></link>, but the entire envelope is looped at <emphasis>kfreq</emphasis> rate. Notice that times are not expressed in seconds but in fraction of a cycle. Actually each duration represent is proportional to the other, and the entire cycle duration is proportional to the sum of all duration values.
+ </para>
+
+ <para>
+ The sum of all duration is then rescaled according to <emphasis>kfreq</emphasis> argument. For example, considering an envelope made up of 3 segments, each segment having 100 as duration value, their sum will be 300. This value represents the total duration of the envelope, and is actually divided into 3 equal parts, a part for each segment.
+ </para>
+
+ <para>
+ Actually, the real envelope duration in seconds is determined by <emphasis>kfreq</emphasis>. Again, if the envelope is made up of 3 segments, but this time the first and last segments have a duration of 50, whereas the central segment has a duration of 100 again, their sum will be 200. This time 200 represent the total duration of the 3 segments, so the central segment will be twice as long as the other segments.
+ </para>
+
+ <para>
+ All parameters can be varied at k-rate. Negative frequency values are allowed, reading the envelope backward. <emphasis>ktime0</emphasis> should always be set to 0, except if the user wants some special effect.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the loopseg opcode. It uses the file <ulink url="examples/loopseg.csd"><citetitle>loopseg.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the loopseg opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/loopseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="lpshold"><citetitle>lpshold</citetitle></link>
+ <link linkend="loopxseg"><citetitle>loopxseg</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namegabriel;</para>
+ <para>New in Version 4.13</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/looptseg.xml b/opcodes/looptseg.xml
index 3b988e3..208140d 100644
--- a/opcodes/looptseg.xml
+++ b/opcodes/looptseg.xml
@@ -1,4 +1,4 @@
-
+
<refentry id="looptseg">
<indexterm id="IndexLooptseg"><primary>looptseg</primary></indexterm>
<refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
@@ -24,8 +24,17 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ksig <command>looptseg</command> kfreq, ktrig, ktime0, kvalue0, ktype, [, ktime1] [,ktype1] [, kvalue1] \
- [, ktime2] [,ktype2] [, kvalue2] [...]</synopsis>
+ <synopsis>ksig <command>looptseg</command> kfreq, ktrig, iphase, kvalue0, ktype0, ktime0, [, kvalue1] [,ktype1] [, ktime1] \
+ [, kvalue2] [,ktype2] [, ktime2] [...] [, kvalueN] [,ktypeN] [, ktimeN]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>iphase</emphasis> -- A value between 0 and 1 to say
+ where to start the loop. Zero, the commonest value, indicates
+ the beginning.
+ </para>
</refsect1>
<refsect1>
@@ -43,11 +52,11 @@
</para>
<para>
- <emphasis>ktime0...ktimeN</emphasis> -- Times of points; expressed in fraction of a cycle.
+ <emphasis>kvalue0...kvalueN</emphasis> -- Values of points
</para>
<para>
- <emphasis>kvalue0...kvalueN</emphasis> -- Values of points
+ <emphasis>ktime0...ktimeN</emphasis> -- Times between points; expressed in fractions of a cycle (see below). The final time designates a ramp between the final value and the first value.
</para>
<para>
diff --git a/opcodes/loopxseg.xml b/opcodes/loopxseg.xml
index b6531b9..580c896 100644
--- a/opcodes/loopxseg.xml
+++ b/opcodes/loopxseg.xml
@@ -1,99 +1,100 @@
-
-<refentry id="loopxseg">
-<indexterm id="IndexLoopxseg"><primary>loopxseg</primary></indexterm>
- <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
- <refmeta>
- <refentrytitle>loopxseg</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>loopxseg</refname>
- <refpurpose>
- Generate control signal consisting of exponential segments delimited by two or more specified points.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Generate control signal consisting of exponential segments delimited by two or more specified points. The entire envelope is looped at <emphasis>kfreq</emphasis> rate. Each parameter can be varied at k-rate.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>ksig <command>loopxseg</command> kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>ksig</emphasis> -- Output signal.
- </para>
-
- <para>
- <emphasis>kfreq</emphasis> -- Repeat rate in Hz or fraction of Hz.
- </para>
-
- <para>
- <emphasis>ktrig</emphasis> -- If non-zero, retriggers the envelope from start (see <link linkend="trigger"><citetitle>trigger opcode</citetitle></link>), before the envelope cycle is completed.
- </para>
-
- <para>
- <emphasis>ktime0...ktimeN</emphasis> -- Times of points; expressed in fraction of a cycle.
- </para>
-
- <para>
- <emphasis>kvalue0...kvalueN</emphasis> -- Values of points
- </para>
-
- <para>
- <emphasis>loopxseg</emphasis> opcode is similar to <link linkend="expseg"><citetitle>expseg</citetitle></link>, but the entire envelope is looped at <emphasis>kfreq</emphasis> rate. Notice that times are not expressed in seconds but in fraction of a cycle. Actually each duration represent is proportional to the other, and the entire cycle duration is proportional to the sum of all duration values.
- </para>
-
- <para>
- The sum of all duration is then rescaled according to <emphasis>kfreq</emphasis> argument. For example, considering an envelope made up of 3 segments, each segment having 100 as duration value, their sum will be 300. This value represents the total duration of the envelope, and is actually divided into 3 equal parts, a part for each segment.
- </para>
-
- <para>
- Actually, the real envelope duration in seconds is determined by <emphasis>kfreq</emphasis>. Again, if the envelope is made up of 3 segments, but this time the first and last segments have a duration of 50, whereas the central segment has a duration of 100 again, their sum will be 200. This time 200 represent the total duration of the 3 segments, so the central segment will be twice as long as the other segments.
- </para>
-
- <para>
- All parameters can be varied at k-rate. Negative frequency values are allowed, reading the envelope backward. <emphasis>ktime0</emphasis> should always be set to 0, except if the user wants some special effect.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the loopxseg opcode. It uses the file <ulink url="examples/loopxseg.csd"><citetitle>loopxseg.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the loopxseg opcode.</title>
-
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/loopxseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="lpshold"><citetitle>lpshold</citetitle></link>
- <link linkend="loopseg"><citetitle>loopseg</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Author: &namejohn;</para>
- <para>New in Version 5.12</para>
- </refsect1>
-</refentry>
+
+<refentry id="loopxseg">
+<indexterm id="IndexLoopxseg"><primary>loopxseg</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>loopxseg</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>loopxseg</refname>
+ <refpurpose>
+ Generate control signal consisting of exponential segments delimited by two or more specified points.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generate control signal consisting of exponential segments delimited by two or more specified points. The entire envelope is looped at <emphasis>kfreq</emphasis> rate. Each parameter can be varied at k-rate.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ksig <command>loopxseg</command> kfreq, ktrig, iphase, ktime0, kvalue0 [, ktime1] [, kvalue1] \
+ [, ktime2] [, kvalue2] [...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>ksig</emphasis> -- Output signal.
+ </para>
+
+ <para>
+ <emphasis>kfreq</emphasis> -- Repeat rate in Hz or fraction of Hz.
+ </para>
+
+ <para>
+ <emphasis>ktrig</emphasis> -- If non-zero, retriggers the envelope from start (see <link linkend="trigger"><citetitle>trigger opcode</citetitle></link>), before the envelope cycle is completed.
+ </para>
+
+ <para>
+ <emphasis>iphase</emphasis> -- A value between 0 and 1 to say
+ where to start the loop. Zero, the commonest value, indicates
+ the beginning.
+ </para>
+
+ <para>
+ <emphasis>ktime0...ktimeN</emphasis> -- Times of points; expressed in fraction of a cycle.
+ </para>
+
+ <para>
+ <emphasis>kvalue0...kvalueN</emphasis> -- Values of points
+ </para>
+
+ <para>
+ <emphasis>loopxseg</emphasis> opcode is similar to <link linkend="expseg"><citetitle>expseg</citetitle></link>, but the entire envelope is looped at <emphasis>kfreq</emphasis> rate. Notice that times are not expressed in seconds but in fraction of a cycle. Actually each duration represent is proportional to the other, and the entire cycle duration is proportional to the sum of all duration values.
+ </para>
+
+ <para>
+ The sum of all duration is then rescaled according to <emphasis>kfreq</emphasis> argument. For example, considering an envelope made up of 3 segments, each segment having 100 as duration value, their sum will be 300. This value represents the total duration of the envelope, and is actually divided into 3 equal parts, a part for each segment.
+ </para>
+
+ <para>
+ Actually, the real envelope duration in seconds is determined by <emphasis>kfreq</emphasis>. Again, if the envelope is made up of 3 segments, but this time the first and last segments have a duration of 50, whereas the central segment has a duration of 100 again, their sum will be 200. This time 200 represent the total duration of the 3 segments, so the central segment will be twice as long as the other segments.
+ </para>
+
+ <para>
+ All parameters can be varied at k-rate. Negative frequency values are allowed, reading the envelope backward. <emphasis>ktime0</emphasis> should always be set to 0, except if the user wants some special effect.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the loopxseg opcode. It uses the file <ulink url="examples/loopxseg.csd"><citetitle>loopxseg.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the loopxseg opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/loopxseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="lpshold"><citetitle>lpshold</citetitle></link>
+ <link linkend="loopseg"><citetitle>loopseg</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namejohn;</para>
+ <para>New in Version 5.12</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/lorismorph.xml b/opcodes/lorismorph.xml
index 58e6b03..b4707da 100644
--- a/opcodes/lorismorph.xml
+++ b/opcodes/lorismorph.xml
@@ -72,6 +72,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the lorismorph opcode. It uses the file <ulink url="examples/lorismorph.csd"><citetitle>lorismorph.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the lorismorph opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/lorismorph.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>This implementation of the Loris unit generators was written by Kelly
Fitz (<ulink
diff --git a/opcodes/lorisplay.xml b/opcodes/lorisplay.xml
index 70c98cd..42243f6 100644
--- a/opcodes/lorisplay.xml
+++ b/opcodes/lorisplay.xml
@@ -59,6 +59,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the lorisplay opcode. It uses the file <ulink url="examples/lorisplay.csd"><citetitle>lorisplay.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the lorisplay opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/lorisplay.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>This implementation of the Loris unit generators was written by Kelly
Fitz (<ulink
diff --git a/opcodes/lorisread.xml b/opcodes/lorisread.xml
index c5244b4..bb33d97 100644
--- a/opcodes/lorisread.xml
+++ b/opcodes/lorisread.xml
@@ -105,6 +105,18 @@ bandwidth-enhanced partial data is stored in memory with a specified
label for future access by another generator.</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the lorisread opcode. It uses the file <ulink url="examples/lorisread.csd"><citetitle>lorisread.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the lorisread opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/lorisread.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
diff --git a/opcodes/loscil.xml b/opcodes/loscil.xml
index bd88cef..afb0d69 100644
--- a/opcodes/loscil.xml
+++ b/opcodes/loscil.xml
@@ -110,7 +110,7 @@ a1, a2 <emphasis role="opc">loscil</emphasis> 10000, 1, 1, 1 ,1</programlisting>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the loscil opcode. It uses the file <ulink url="examples/loscil.csd"><citetitle>loscil.csd</citetitle></ulink>, and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
+ Here is an example of the loscil opcode. It uses the file <ulink url="examples/loscil.csd"><citetitle>loscil.csd</citetitle></ulink>, <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink> and <ulink url="examples/kickroll.wav"><citetitle>kickroll.wav</citetitle></ulink>.
<example>
<title>Example of the loscil opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
@@ -130,6 +130,5 @@ a1, a2 <emphasis role="opc">loscil</emphasis> 10000, 1, 1, 1 ,1</programlisting>
<refsect1>
<title>Credits</title>
<para>Note about the mono/stereo difference was contributed by &namerasmus;.</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/loscil3.xml b/opcodes/loscil3.xml
index 7c3bf27..e1ce32b 100644
--- a/opcodes/loscil3.xml
+++ b/opcodes/loscil3.xml
@@ -100,7 +100,7 @@ a1, a2 <emphasis role="opc">loscil3</emphasis> 10000, 1, 1, 1, 1</programlisting
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the loscil3 opcode. It uses the file <ulink url="examples/loscil3.csd"><citetitle>loscil3.csd</citetitle></ulink>, and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
+ Here is an example of the loscil3 opcode. It uses the file <ulink url="examples/loscil3.csd"><citetitle>loscil3.csd</citetitle></ulink>, <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink> and <ulink url="examples/kickroll.wav"><citetitle>kickroll.wav</citetitle></ulink>.
<example>
<title>Example of the loscil3 opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
@@ -119,6 +119,5 @@ a1, a2 <emphasis role="opc">loscil3</emphasis> 10000, 1, 1, 1, 1</programlisting
<refsect1>
<title>Credits</title>
<para>Note about the mono/stereo difference was contributed by &namerasmus;.</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/lowres.xml b/opcodes/lowres.xml
index 008bd75..1789e6d 100644
--- a/opcodes/lowres.xml
+++ b/opcodes/lowres.xml
@@ -56,7 +56,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the lowres opcode. It uses the file <ulink url="examples/lowres.csd"><citetitle>lowres.csd</citetitle></ulink> and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
+ Here is an example of the lowres opcode. It uses the file <ulink url="examples/lowres.csd"><citetitle>lowres.csd</citetitle></ulink>.
<example>
<title>Example of the lowres opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
@@ -80,8 +80,6 @@
<member>Italy</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.49</para>
</refsect1>
</refentry>
diff --git a/opcodes/lowresx.xml b/opcodes/lowresx.xml
index 03e2109..3ab2eaa 100644
--- a/opcodes/lowresx.xml
+++ b/opcodes/lowresx.xml
@@ -12,7 +12,7 @@
<refname>lowresx</refname>
<refpurpose>
Simulates layers of serially connected resonant lowpass filters.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -24,17 +24,22 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>lowresx</command> asig, kcutoff, kresonance [, inumlayer] [, iskip]</synopsis>
+ <synopsis>ares <command>lowresx</command> asig, xcutoff, xresonance [, inumlayer] [, iskip]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>inumlayer</emphasis> -- number of elements in a <emphasis>lowresx</emphasis> stack. Default value is 4. There is no maximum.
+ <emphasis>inumlayer</emphasis> -- number of elements in a
+ <emphasis>lowresx</emphasis> stack. Default value is 4. There is
+ no maximum.
</para>
<para>
- <emphasis>iskip</emphasis> -- initial disposition of internal data space. A zero value will clear the space; a non-zero value will allow previous information to remain. The default value is 0.
+ <emphasis>iskip</emphasis> -- initial disposition of internal
+ data space. A zero value will clear the space; a non-zero value
+ will allow previous information to remain. The default value is
+ 0.
</para>
</refsect1>
@@ -45,22 +50,30 @@
</para>
<para>
- <emphasis>kcutoff</emphasis> -- filter cutoff frequency point
+ <emphasis>xcutoff</emphasis> -- filter cutoff frequency point
</para>
<para>
- <emphasis>kresonance</emphasis> -- resonance amount
+ <emphasis>xresonance</emphasis> -- resonance amount
</para>
<para>
- <emphasis>lowresx</emphasis> is equivalent to more layer of <link linkend="lowres"><citetitle>lowres</citetitle></link> with the same arguments serially connected. Using a stack of a larger number of filters allows a sharper cutoff. This is faster than using a larger number of instances of <emphasis>lowres</emphasis> in a Csound orchestra because only one initialization and k cycle are needed at time and the audio loop falls entirely inside the cache memory of processor. Based on an orchestra by &namehans;
+ <emphasis>lowresx</emphasis> is equivalent to more layer of
+ <link linkend="lowres"><citetitle>lowres</citetitle></link> with
+ the same arguments serially connected. Using a stack of a larger
+ number of filters allows a sharper cutoff. This is faster than
+ using a larger number of instances of
+ <emphasis>lowres</emphasis> in a Csound orchestra because only
+ one initialization and k cycle are needed at time and the audio
+ loop falls entirely inside the cache memory of processor. Based
+ on an orchestra by &namehans;
</para>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the lowresx opcode. It uses the file <ulink url="examples/lowresx.csd"><citetitle>lowresx.csd</citetitle></ulink>, and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
+ Here is an example of the lowresx opcode. It uses the file <ulink url="examples/lowresx.csd"><citetitle>lowresx.csd</citetitle></ulink>.
<example>
<title>Example of the lowresx opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
@@ -86,5 +99,7 @@
</para>
<para>New in Csound version 3.49</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>November 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/lpf18.xml b/opcodes/lpf18.xml
index 6d9347b..c91be56 100644
--- a/opcodes/lpf18.xml
+++ b/opcodes/lpf18.xml
@@ -20,23 +20,30 @@
</para>
</refsect1>
- <refsect1>
+ <refsect1>
<title>Syntax</title>
- <synopsis>ares <command>lpf18</command> asig, kfco, kres, kdist</synopsis>
+ <synopsis>ares <command>lpf18</command> asig, xfco, xres, xdist [, iskip]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>iskip</emphasis> (optional, default=0) -- Skip initialization if present and non-zero.
+ </para>
</refsect1>
<refsect1>
<title>Performance</title>
<para>
- <emphasis>kfco</emphasis> -- the filter cutoff frequency in Hz. Should be in the range 0 to <emphasis>sr</emphasis>/2.
+ <emphasis>xfco</emphasis> -- the filter cutoff frequency in Hz. Should be in the range 0 to <emphasis>sr</emphasis>/2.
</para>
<para>
- <emphasis>kres</emphasis> -- the amount of resonance. Self-oscillation occurs when <emphasis>kres</emphasis> is approximately 1. Should usually be in the range 0 to 1, however, values slightly greater than 1 are possible for more sustained oscillation and an <quote>overdrive</quote> effect.
+ <emphasis>xres</emphasis> -- the amount of resonance. Self-oscillation occurs when <emphasis>xres</emphasis> is approximately 1. Should usually be in the range 0 to 1, however, values slightly greater than 1 are possible for more sustained oscillation and an <quote>overdrive</quote> effect.
</para>
<para>
- <emphasis>kdist</emphasis> -- amount of distortion. <emphasis>kdist</emphasis> = 0 gives a clean output. <emphasis>kdist</emphasis> &gt; 0 adds <emphasis>tanh</emphasis>() distortion controlled by the filter parameters, in such a way that both low cutoff and high resonance increase the distortion amount. Some experimentation is encouraged.
+ <emphasis>xdist</emphasis> -- amount of distortion. <emphasis>kdist</emphasis> = 0 gives a clean output. <emphasis>xdist</emphasis> &gt; 0 adds <emphasis>tanh</emphasis>() distortion controlled by the filter parameters, in such a way that both low cutoff and high resonance increase the distortion amount. Some experimentation is encouraged.
</para>
<para>
@@ -74,5 +81,7 @@
</para>
<para>Example written by &namekevin; with help from Iain Duncan. Thanks goes to Iain for helping with the example.</para>
<para>New in Csound version 4.10</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>October 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/lpfreson.xml b/opcodes/lpfreson.xml
index e65d574..c907761 100644
--- a/opcodes/lpfreson.xml
+++ b/opcodes/lpfreson.xml
@@ -6,19 +6,17 @@
<refentrytitle>lpfreson</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>lpfreson</refname>
<refpurpose>
Resynthesises a signal from the data passed internally by a previous lpread, applying formant shifting.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- Resynthesises a signal from the data passed internally by a previous lpread, applying formant shifting.
+ Resynthesises a signal from the data passed internally by a previous <emphasis>lpread</emphasis>, applying formant shifting.
</para>
</refsect1>
@@ -40,15 +38,34 @@
<para>
<emphasis>lpfreson</emphasis> receives values internally produced by a leading <emphasis>lpread</emphasis>.<emphasis>lpread</emphasis> gets its values from the control file according to the input value <emphasis>ktimpnt</emphasis> (in seconds). If <emphasis>ktimpnt</emphasis> proceeds at the analysis rate, time-normal synthesis will result; proceeding at a faster, slower, or variable rate will result in time-warped synthesis. At each k-period, <emphasis>lpread</emphasis> interpolates between adjacent frames to more accurately determine the parameter values (presented as output) and the filter coefficient settings (passed internally to a subsequent <emphasis>lpreson</emphasis>).
</para>
+
<para>The error signal <emphasis>kerr</emphasis> (between 0 and 1) derived during predictive analysis reflects the deterministic/random nature of the analyzed source. This will emerge low for pitched (periodic) material and higher for noisy material. The transition from voiced to unvoiced speech, for example, produces an error signal value of about .3. During synthesis, the error signal value can be used to determine the nature of the <link linkend="lpreson"><citetitle>lpreson</citetitle></link> driving function: for example, by arbitrating between pitched and non-pitched input, or even by determining a mix of the two. In normal speech resynthesis, the pitched input to <link linkend="lpreson"><citetitle>lpreson</citetitle></link> is a wideband periodic signal or pulse train derived from a unit such as <link linkend="buzz"><citetitle>buzz</citetitle></link>, and the nonpitched source is usually derived from <link linkend="rand"><citetitle>rand</citetitle></link>. However, any audio signal can be used as the driving function, the only assumption of the analysis being that it has a flat response.
</para>
- <para><link linkend="lpfreson"><citetitle>lpfreson</citetitle></link> is a formant shifted <link linkend="lpreson"><citetitle>lpreson</citetitle></link>, in which <emphasis>kfrqratio</emphasis> is the (cps) ratio of shifted to original formant positions. This permits synthesis in which the source object changes its apparent acoustic size. <link linkend="lpfreson"><citetitle>lpfreson</citetitle></link> with <emphasis>kfrqratio</emphasis> = 1 is equivalent to <link linkend="lpreson"><citetitle>lpreson</citetitle></link>.
+
+ <para><emphasis>lpfreson</emphasis> is a formant shifted <link linkend="lpreson"><citetitle>lpreson</citetitle></link>, in which <emphasis>kfrqratio</emphasis> is the (cps) ratio of shifted to original formant positions. This permits synthesis in which the source object changes its apparent acoustic size. <emphasis>lpfreson</emphasis> with <emphasis>kfrqratio</emphasis> = 1 is equivalent to <link linkend="lpreson"><citetitle>lpreson</citetitle></link>.
</para>
- <para>Generally, <link linkend="lpreson"><citetitle>lpreson</citetitle></link> provides a means whereby the time-varying content and spectral shaping of a composite audio signal can be controlled by the dynamic spectral content of another. There can be any number of lpread/lpreson (or lpfreson) pairs in an instrument or in an orchestra; they can read from the same or different control files independently.
+
+ <para>Generally, <link linkend="lpreson"><citetitle>lpreson</citetitle></link> provides a means whereby the time-varying content and spectral shaping of a composite audio signal can be controlled by the dynamic spectral content of another. There can be any number of <emphasis>lpread/lpreson</emphasis> (or <emphasis>lpfreson</emphasis>) pairs in an instrument or in an orchestra; they can read from the same or different control files independently.
</para>
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the lpfreson opcode. It uses the file <ulink url="examples/lpfreson.csd"><citetitle>lpfreson.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the lpfreson opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/lpfreson.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ The audio file <quote>fox.wav</quote> is 2.8 seconds long. So <emphasis>filelen</emphasis>'s output should be a line like this:
+ <screen>
+fox.wav = 2.756667 seconds
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="lpread"><citetitle>lpread</citetitle></link>,
diff --git a/opcodes/lpinterp.xml b/opcodes/lpinterp.xml
index 0d680c4..9e5a38a 100644
--- a/opcodes/lpinterp.xml
+++ b/opcodes/lpinterp.xml
@@ -6,14 +6,12 @@
<refentrytitle>lpinterp</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>lpslot</refname>
<refname>lpinterp</refname>
<refpurpose>
Computes a new set of poles from the interpolation between two analysis.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -53,21 +51,20 @@
Here is a typical orc using the opcodes:
<informalexample>
<programlisting>
-ipower <emphasis>init</emphasis> 50000 ; Define sound generator
-ifreq <emphasis>init</emphasis> 440
-asrc <emphasis>buzz</emphasis> ipower,ifreq,10,1
+ipower <emphasis role="opc">init</emphasis> 50000 <emphasis role="comment">; Define sound generator</emphasis>
+ifreq <emphasis role="opc">init</emphasis> 440
+asrc <emphasis role="opc">buzz</emphasis> ipower, ifreq, 10, 1
-ktime <emphasis>line</emphasis> 0,p3,p3 ; Define time lin
- <emphasis>lpslot</emphasis> 0 ; Read square data poles
-krmsr,krmso,kerr,kcps <emphasis>lpread</emphasis> ktime,&quot;square.pol&quot;
- <emphasis>lpslot</emphasis> 1 ; Read triangle data poles
-krmsr,krmso,kerr,kcps <emphasis>lpread</emphasis> ktime,&quot;triangle.pol&quot;
-kmix <emphasis>line</emphasis> 0,p3,1 ; Compute result of mixing
- <emphasis>lpinterp</emphasis> 0,1,kmix ; and balance power
-ares <emphasis>lpreson</emphasis> asrc
-aout <emphasis>balance</emphasis> ares,asrc
- <emphasis>out</emphasis> aout
- </programlisting>
+ktime <emphasis role="opc">line</emphasis> 0, p3, p3 <emphasis role="comment">; Define time lin</emphasis>
+ <emphasis role="opc">lpslot</emphasis> 0 <emphasis role="comment">; Read square data poles</emphasis>
+krmsr, krmso, kerr, kcps <emphasis role="opc">lpread</emphasis> ktime,&quot;square.pol&quot;
+ <emphasis role="opc">lpslot</emphasis> 1 <emphasis role="comment">; Read triangle data poles</emphasis>
+krmsr, krmso, kerr, kcps <emphasis role="opc">lpread</emphasis> ktime,&quot;triangle.pol&quot;
+kmix <emphasis role="opc">line</emphasis> 0, p3, 1 <emphasis role="comment">; Compute result of mixing</emphasis>
+ <emphasis role="opc">lpinterp</emphasis> 0, 1, kmix <emphasis role="comment">; and balance power</emphasis>
+ares <emphasis role="opc">lpreson</emphasis> asrc
+aout <emphasis role="opc">balance</emphasis> ares, asrc
+ <emphasis role="opc">out</emphasis> aout</programlisting>
</informalexample>
</para>
</refsect1>
diff --git a/opcodes/lposcil.xml b/opcodes/lposcil.xml
index 74c0bb2..0dc3ef7 100644
--- a/opcodes/lposcil.xml
+++ b/opcodes/lposcil.xml
@@ -54,6 +54,20 @@
<emphasis>lposcil</emphasis> (looping precise oscillator) allows varying at k-rate, the starting and ending point of a sample contained in a table (<link linkend="GEN01"><citetitle>GEN01</citetitle></link>). This can be useful when reading a sampled loop of a wavetable, where repeat speed can be varied during the performance.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the lposcil opcode. It uses the file <ulink url="examples/lposcil.csd"><citetitle>lposcil.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the lposcil opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/lposcil.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
diff --git a/opcodes/lposcil3.xml b/opcodes/lposcil3.xml
index b3bc43c..578277f 100644
--- a/opcodes/lposcil3.xml
+++ b/opcodes/lposcil3.xml
@@ -54,6 +54,19 @@
<emphasis>lposcil3</emphasis> (looping precise oscillator) allows varying at k-rate, the starting and ending point of a sample contained in a table (<link linkend="GEN01"><citetitle>GEN01</citetitle></link>). This can be useful when reading a sampled loop of a wavetable, where repeat speed can be varied during the performance.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the lposcil3 opcode. It uses the file <ulink url="examples/lposcil3.csd"><citetitle>lposcil3.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the lposcil3 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/lposcil3.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/lposcila.xml b/opcodes/lposcila.xml
index 3632197..4cfaa46 100644
--- a/opcodes/lposcila.xml
+++ b/opcodes/lposcila.xml
@@ -59,19 +59,18 @@
<emphasis>lposcila</emphasis> is the same as <link linkend="lposcil"><citetitle>lposcil</citetitle></link>, but has an audio-rate amplitude argument (instead of k-rate) to allow fast envelope transients.
</para>
</refsect1>
-<!--
+
<refsect1>
<title>Examples</title>
<para>
Here is an example of the lposcila opcode. It uses the file <ulink url="examples/lposcila.csd"><citetitle>lposcila.csd</citetitle></ulink>.
-
<example>
<title>Example of the lposcila opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/lposcila.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
- </refsect1>-->
+ </refsect1>
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/lposcilsa.xml b/opcodes/lposcilsa.xml
index 5204d30..56fa08f 100644
--- a/opcodes/lposcilsa.xml
+++ b/opcodes/lposcilsa.xml
@@ -59,19 +59,19 @@
<emphasis>lposcilsa</emphasis> is the same as <link linkend="lposcila"><citetitle>lposcila</citetitle></link>, but works with stereo files loaded with <link linkend="GEN01"><citetitle>GEN01</citetitle></link>.
</para>
</refsect1>
-<!--
+
<refsect1>
<title>Examples</title>
<para>
Here is an example of the lposcilsa opcode. It uses the file <ulink url="examples/lposcilsa.csd"><citetitle>lposcilsa.csd</citetitle></ulink>.
-
<example>
<title>Example of the lposcilsa opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/lposcilsa.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
- </refsect1>-->
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/lposcilsa2.xml b/opcodes/lposcilsa2.xml
index 6ebe954..e38fa5a 100644
--- a/opcodes/lposcilsa2.xml
+++ b/opcodes/lposcilsa2.xml
@@ -59,19 +59,19 @@
<emphasis>lposcilsa2</emphasis> is the same as <link linkend="lposcilsa"><citetitle>lposcilsa</citetitle></link>, but no interpolation is implemented and only works with integer <emphasis>kfreqratio</emphasis> values. Much faster than <link linkend="lposcilsa"><citetitle>lposcilsa</citetitle></link>, it is mainly intended to be used with <emphasis>kfreqratio</emphasis> = 1, being in this case a fast substitute of <link linkend="soundin"><citetitle>soundin</citetitle></link>, since the soundfile must be entirely loaded in memory.
</para>
</refsect1>
-<!--
+
<refsect1>
<title>Examples</title>
<para>
Here is an example of the lposcilsa2 opcode. It uses the file <ulink url="examples/lposcilsa2.csd"><citetitle>lposcilsa2.csd</citetitle></ulink>.
-
<example>
<title>Example of the lposcilsa2 opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/lposcilsa2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
- </refsect1>-->
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/lpread.xml b/opcodes/lpread.xml
index d9c882d..731c1fa 100644
--- a/opcodes/lpread.xml
+++ b/opcodes/lpread.xml
@@ -80,6 +80,22 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the lpread opcode. It uses the file <ulink url="examples/lpread.csd"><citetitle>lpread.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the lpread opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/lpread.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ The audio file <quote>fox.wav</quote> is 2.8 seconds long. So <emphasis>filelen</emphasis>'s output should be a line like this:
+ <screen>
+fox.wav = 2.756667 seconds
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="lpfreson"><citetitle>lpfreson</citetitle></link>,
diff --git a/opcodes/lpreson.xml b/opcodes/lpreson.xml
index 5dceb57..f259787 100644
--- a/opcodes/lpreson.xml
+++ b/opcodes/lpreson.xml
@@ -6,19 +6,17 @@
<refentrytitle>lpreson</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>lpreson</refname>
<refpurpose>
Resynthesises a signal from the data passed internally by a previous lpread.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- Resynthesises a signal from the data passed internally by a previous lpread.
+ Resynthesises a signal from the data passed internally by a previous <emphasis>lpread</emphasis>.
</para>
</refsect1>
@@ -36,16 +34,45 @@
<para>
<emphasis>lpreson</emphasis> receives values internally produced by a leading <emphasis>lpread</emphasis>.<emphasis>lpread</emphasis> gets its values from the control file according to the input value <emphasis>ktimpnt</emphasis> (in seconds). If <emphasis>ktimpnt</emphasis> proceeds at the analysis rate, time-normal synthesis will result; proceeding at a faster, slower, or variable rate will result in time-warped synthesis. At each k-period, <emphasis>lpread</emphasis> interpolates between adjacent frames to more accurately determine the parameter values (presented as output) and the filter coefficient settings (passed internally to a subsequent <emphasis>lpreson</emphasis>).
</para>
-<para>The error signal <emphasis>kerr</emphasis> (between 0 and 1) derived during predictive analysis reflects the deterministic/random nature of the analyzed source. This will emerge low for pitched (periodic) material and higher for noisy material. The transition from voiced to unvoiced speech, for example, produces an error signal value of about .3. During synthesis, the error signal value can be used to determine the nature of the <link linkend="lpreson"><citetitle>lpreson</citetitle></link> driving function: for example, by arbitrating between pitched and non-pitched input, or even by determining a mix of the two. In normal speech resynthesis, the pitched input to <link linkend="lpreson"><citetitle>lpreson</citetitle></link> is a wideband periodic signal or pulse train derived from a unit such as <link linkend="buzz"><citetitle>buzz</citetitle></link>, and the nonpitched source is usually derived from <link linkend="rand"><citetitle>rand</citetitle></link>. However, any audio signal can be used as the driving function, the only assumption of the analysis being that it has a flat response.
+
+ <para>
+ The error signal <emphasis>kerr</emphasis> (between 0 and 1) derived during predictive analysis reflects the deterministic/random nature of the analyzed source. This will emerge low for pitched (periodic) material and higher for noisy material. The transition from voiced to unvoiced speech, for example, produces an error signal value of about .3. During synthesis, the error signal value can be used to determine the nature of the <emphasis>lpreson</emphasis> driving function: for example, by arbitrating between pitched and non-pitched input, or even by determining a mix of the two. In normal speech resynthesis, the pitched input to <emphasis>lpreson</emphasis> is a wideband periodic signal or pulse train derived from a unit such as <link linkend="buzz"><citetitle>buzz</citetitle></link>, and the nonpitched source is usually derived from <link linkend="rand"><citetitle>rand</citetitle></link>. However, any audio signal can be used as the driving function, the only assumption of the analysis being that it has a flat response.
</para>
- <para><link linkend="lpfreson"><citetitle>lpfreson</citetitle></link> is a formant shifted <link linkend="lpreson"><citetitle>lpreson</citetitle></link>, in which <emphasis>kfrqratio</emphasis> is the (cps) ratio of shifted to original formant positions. This permits synthesis in which the source object changes its apparent acoustic size. <link linkend="lpfreson"><citetitle>lpfreson</citetitle></link> with <emphasis>kfrqratio</emphasis> = 1 is equivalent to <link linkend="lpreson"><citetitle>lpreson</citetitle></link>.
+
+ <para>
+ <link linkend="lpfreson"><citetitle>lpfreson</citetitle></link> is a formant shifted <emphasis>lpreson</emphasis>, in which <emphasis>kfrqratio</emphasis> is the (cps) ratio of shifted to original formant positions. This permits synthesis in which the source object changes its apparent acoustic size. <link linkend="lpfreson"><citetitle>lpfreson</citetitle></link> with <emphasis>kfrqratio</emphasis> = 1 is equivalent to <emphasis>lpreson</emphasis>.
</para>
- <para>Generally, <link linkend="lpreson"><citetitle>lpreson</citetitle></link> provides a means whereby the time-varying content and spectral shaping of a composite audio signal can be controlled by the dynamic spectral content of another. There can be any number of lpread/lpreson (or lpfreson) pairs in an instrument or in an orchestra; they can read from the same or different control files independently.
+
+ <para>
+ Generally, <emphasis>lpreson</emphasis> provides a means whereby the time-varying content and spectral shaping of a composite audio signal can be controlled by the dynamic spectral content of another. There can be any number of <emphasis>lpread/lpreson</emphasis> (or <emphasis>lpfreson</emphasis>) pairs in an instrument or in an orchestra; they can read from the same or different control files independently.
</para>
-
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the lpreson opcode. It uses the file <ulink url="examples/lpreson.csd"><citetitle>lpreson.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the lpreson opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/lpreson.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ The audio file <quote>fox.wav</quote> is 2.8 seconds long. So <emphasis>filelen</emphasis>'s output should be a line like this:
+ <screen>
+fox.wav = 2.756667 seconds
+ </screen>
+ </para>
+ <para>
+ Here is another example of the lpreson opcode. It uses the file <ulink url="examples/lpreson-2.csd"><citetitle>lpreson-2.csd</citetitle></ulink>.
+ <example>
+ <title>Another example of the lpreson opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/lpreson-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="lpfreson"><citetitle>lpfreson</citetitle></link>,
diff --git a/opcodes/lpshold.xml b/opcodes/lpshold.xml
index 4f44b61..b5ec5f6 100644
--- a/opcodes/lpshold.xml
+++ b/opcodes/lpshold.xml
@@ -24,8 +24,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ksig <command>lpshold</command> kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis>
+ <synopsis>ksig <command>lpshold</command> kfreq, ktrig, iphase, ktime0, kvalue0 [, kvalue1] [, ktime1] [, kvalue2] [, ktime2] [...]</synopsis>
</refsect1>
<refsect1>
@@ -43,7 +42,9 @@
</para>
<para>
- <emphasis>ktime0...ktimeN</emphasis> -- Times of points; expressed in fraction of a cycle
+ <emphasis>iphase</emphasis> -- A vaue between 0 and 1 to say
+ where to start the loop. Zero, the commonest value, indicates
+ the beginning.
</para>
<para>
@@ -51,6 +52,10 @@
</para>
<para>
+ <emphasis>ktime0...ktimeN</emphasis> -- Times between points; expressed in fractions of a cycle (see below). The final time designates a ramp between the final value and the first value.
+ </para>
+
+ <para>
<emphasis>lpshold</emphasis> is similar to <link linkend="loopseg"><citetitle>loopseg</citetitle></link>, but can generate only horizontal segments, i.e. holds values for each time interval placed between <emphasis>ktimeN</emphasis> and <emphasis>ktimeN+1</emphasis>. It can be useful, among other things, for melodic control, like old analog sequencers.
</para>
</refsect1>
diff --git a/opcodes/lpsholdp.xml b/opcodes/lpsholdp.xml
index 13c88fe..2391a59 100644
--- a/opcodes/lpsholdp.xml
+++ b/opcodes/lpsholdp.xml
@@ -26,8 +26,8 @@
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis>ksig <command>lpsholdp</command> kphase, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \
- [, ktime2] [, kvalue2] [...]</synopsis>
+ <synopsis>ksig <command>lpsholdp</command> kphase, kvalue0, ktime0 [, kvalue1] [, ktime1] \
+ [, kvalue2] [, ktime2] [...]</synopsis>
</refsect1>
<refsect1>
@@ -36,13 +36,13 @@
<emphasis>ksig</emphasis> - output signal
</para>
<para>
- <emphasis>kphase</emphasis> -
+ <emphasis>kphase</emphasis> -- point of the sequence read, expressed as a fraction of a cycle (0 to 1)
</para>
<para>
- <emphasis>kvalue0</emphasis> ...<emphasis>kvalueN</emphasis> - values of points
+ <emphasis>kvalue0...kvalueN</emphasis> -- Values of points
</para>
<para>
- <emphasis>ktime0</emphasis> ...<emphasis>ktimeN</emphasis> - times of points expessed in fraction of a cycle
+ <emphasis>ktime0...ktimeN</emphasis> -- Times between points; expressed in fractions of a cycle (see below). The final time designates a ramp between the final value and the first value.
</para>
<para>
<emphasis>lpsholdp</emphasis> opcode is similar to
diff --git a/opcodes/lpslot.xml b/opcodes/lpslot.xml
index 31d640f..6d4ccfd 100644
--- a/opcodes/lpslot.xml
+++ b/opcodes/lpslot.xml
@@ -6,13 +6,11 @@
<refentrytitle>lpslot</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>lpslot</refname>
<refpurpose>
Selects the slot to be use by further lp opcodes.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -47,21 +45,20 @@
Here is a typical orc using the opcodes:
<informalexample>
<programlisting>
-ipower <emphasis>init</emphasis> 50000 ; Define sound generator
-ifreq <emphasis>init</emphasis> 440
-asrc <emphasis>buzz</emphasis> ipower,ifreq,10,1
+ipower <emphasis role="opc">init</emphasis> 50000 <emphasis role="comment">; Define sound generator</emphasis>
+ifreq <emphasis role="opc">init</emphasis> 440
+asrc <emphasis role="opc">buzz</emphasis> ipower, ifreq, 10, 1
-ktime <emphasis>line</emphasis> 0,p3,p3 ; Define time lin
- <emphasis>lpslot</emphasis> 0 ; Read square data poles
-krmsr,krmso,kerr,kcps <emphasis>lpread</emphasis> ktime,&quot;square.pol&quot;
- <emphasis>lpslot</emphasis> 1 ; Read triangle data poles
-krmsr,krmso,kerr,kcps <emphasis>lpread</emphasis> ktime,&quot;triangle.pol&quot;
-kmix <emphasis>line</emphasis> 0,p3,1 ; Compute result of mixing
- <emphasis>lpinterp</emphasis> 0,1,kmix ; and balance power
-ares <emphasis>lpreson</emphasis> asrc
-aout <emphasis>balance</emphasis> ares,asrc
- <emphasis>out</emphasis> aout
- </programlisting>
+ktime <emphasis role="opc">line</emphasis> 0, p3, p3 <emphasis role="comment">; Define time lin</emphasis>
+ <emphasis role="opc">lpslot</emphasis> 0 <emphasis role="comment">; Read square data poles</emphasis>
+krmsr, krmso, kerr, kcps <emphasis role="opc">lpread</emphasis> ktime,&quot;square.pol&quot;
+ <emphasis role="opc">lpslot</emphasis> 1 <emphasis role="comment">; Read triangle data poles</emphasis>
+krmsr, krmso, kerr, kcps <emphasis role="opc">lpread</emphasis> ktime,&quot;triangle.pol&quot;
+kmix <emphasis role="opc">line</emphasis> 0, p3, 1 <emphasis role="comment">; Compute result of mixing</emphasis>
+ <emphasis role="opc">lpinterp</emphasis> 0, 1, kmix <emphasis role="comment">; and balance power</emphasis>
+ares <emphasis role="opc">lpreson</emphasis> asrc
+aout <emphasis role="opc">balance</emphasis> ares, asrc
+ <emphasis role="opc">out</emphasis> aout</programlisting>
</informalexample>
</para>
</refsect1>
diff --git a/opcodes/lua_exec.xml b/opcodes/lua_exec.xml
new file mode 100644
index 0000000..7af0d92
--- /dev/null
+++ b/opcodes/lua_exec.xml
@@ -0,0 +1,101 @@
+<refentry id="lua_exec">
+ <indexterm id="Indexlua_exec">
+ <primary>
+ lua_exec
+ </primary>
+ </indexterm>
+ <refentryinfo><title>Lua Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>
+ lua_exec
+ </refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>
+ lua_exec
+ </refname>
+ <refpurpose>
+ Executes an arbitrary block of Lua code from the Csound orchestra.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>
+ Description
+ </title>
+ <para>
+ Executes an arbitrary block of Lua code from the Csound orchestra.
+ The code is executed at initialization time, typically from the
+ orchestra header.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>
+ Syntax
+ </title>
+ <synopsis><command>lua_exec</command> Sluacode</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>
+ Initialization
+ </title>
+ <para>
+ <emphasis>Sluacode</emphasis> -- A block of Lua code, of any
+ length. Multi-line blocks may be enclosed in
+ double braces (i.e. <literal>{{ }}</literal>). This code is
+ evaluated once at initialization time, typically from the
+ orchestra header. Global and local variables, functions,
+ tables, and classes may be declared and defined. Objects defined
+ at global Lua scope remain in scope throughout the performance,
+ and are visible to any other Lua code in the same Csound thread.
+ </para>
+ <para>
+ The running instance of Csound is stored as a
+ Lua lightuserdata in a global variable <literal>csound</literal>.
+ This can be passed to any Csound API function. One use of this
+ would be to generate a score using Lua in the orchestra header,
+ and schedule the events for performance using <literal>csoundInputMessage</literal>.
+ </para>
+ <note>
+ <para>
+ By default, all objects defined in Lua are defined at global
+ scope. In order to ensure that objects are confined to their
+ own block of code, that is to ensure that the object is visible
+ only in lexical scope, the object must be declared as local.
+ This is the feature of Lua that beginners tend to find the most
+ troublesome.
+ </para>
+ <para>
+ Another thing to look out for is that Lua arrays use 1-based
+ indexing, not the 0-based indexing used in C and many other
+ programming languages.
+ </para>
+ </note>
+
+ </refsect1>
+
+ <refsect1>
+ <title>
+ See Also
+ </title>
+ <para>
+ <link linkend="lua_opdef"><citetitle>lua_opdef</citetitle></link>,
+ <link linkend="lua_opcall"><citetitle>lua_opcall</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>
+ Credits
+ </title>
+ <para>
+ By: &namemichael; 2011
+ </para>
+ <para>
+ New in Csound version 5.13.2
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/lua_opcall.xml b/opcodes/lua_opcall.xml
new file mode 100644
index 0000000..6cef916
--- /dev/null
+++ b/opcodes/lua_opcall.xml
@@ -0,0 +1,137 @@
+ <refentry id="lua_opcall">
+ <indexterm id="Indexlua_opcall">
+ <primary>
+ lua_opcall
+ </primary>
+ </indexterm>
+ <refentryinfo><title>Lua Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>
+ lua_opcall
+ </refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>
+ lua_opcall
+ </refname>
+ <refpurpose>
+ Calls a Lua opcode at i-rate only. Any number of output and/or
+ input arguments may be passed. All arguments must be passed on
+ the right-hand side. Outputs are returned in the argument.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>
+ Syntax
+ </title>
+ <synopsis><command>lua_iopcall</command> Sname, ...</synopsis>
+ <synopsis><command>lua_ikopcall</command> Sname, ...</synopsis>
+ <synopsis><command>lua_iaopcall</command> Sname, ...</synopsis>
+ <synopsis><command>lua_iopcall_off</command> Sname, ...</synopsis>
+ <synopsis><command>lua_ikopcall_off</command> Sname, ...</synopsis>
+ <synopsis><command>lua_iaopcall_off</command> Sname, ...</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>
+ Initialization and Performance
+ </title>
+ <para>
+ <emphasis>Sname</emphasis> -- The name of the opcode.
+ </para>
+ <para>
+ <emphasis>...</emphasis> -- An arbitrary list of any number of
+ output and input arguments, of any type. The number, sequence,
+ and types of these arguments must agree with the cdef of the
+ arguments structure that is declared in the corresponding
+ <literal>lua_opdef</literal> opcode.
+ </para>
+ <para>
+ <literal>lua_iopcall</literal> calls a Lua opcode at i-rate only.
+ Requires <literal>opname_init</literal> to be defined in Lua.
+ </para>
+ <literal>lua_ikopcall</literal> calls a Lua opcode at i-rate and
+ k-rate. Requires <literal>opname_init</literal> and
+ <literal>opname_kontrol</literal> to be defined in Lua.
+ <para>
+ <literal>lua_iaopcall</literal> calls a Lua opcode at i-rate and a-rate.
+ Requires <literal>opname_init</literal> and
+ <literal>opname_audio</literal> to be defined in Lua.
+ </para>
+ <para>
+ <literal>lua_iopcall_off</literal> calls a Lua opcode at i-rate only.
+ Requires <literal>opname_init</literal> and
+ <literal>opname_noteoff</literal> to be defined in Lua.
+ </para>
+ <literal>lua_ikopcall_off</literal> calls a Lua opcode at i-rate and
+ k-rate. Requires <literal>opname_init</literal>,
+ <literal>opname_kontrol</literal>, and <literal>opname_noteoff</literal>
+ to be defined in Lua.
+ <para>
+ <literal>lua_iaopcall_off</literal> calls a Lua opcode at i-rate
+ and a-rate. Requires <literal>opname_init</literal>,
+ <literal>opname_audio</literal>, and <literal>opname_noteoff</literal>
+ to be defined in Lua.
+ </para>
+ <para>
+ Lua code accesses elements of arguments as follows (pointers
+ to both scalars and arrays are dereferenced by the Lua array access
+ operator):
+ </para>
+ <programlisting>
+ ffi.cdef(' struct arguments_t { double *a_out, double *i_in, double *i_txt, double *f_sig };');
+ local arguments = ffi.cast("struct arguments_t *", carguments_lightuserdata)
+ for i = 0, ksmps -1 do begin carguments.a_out[i] = carguments.i_in[0] * 3 end end
+ </programlisting>
+ <para>
+ The "off" variants of the opcode always schedule a "note off" event
+ that is called when the intrument instance is removed from the
+ active list, and which can be used to release unneeded resources,
+ reschedule the instrument to render a reverb tail, and so on.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <!--To add examples, create the csd file in the examples directory, then run:-->
+ <!--python csd2docbook.py -f newopcodename.csd-->
+ <!--to generate the xml highlighted version used below-->
+ <title>
+ Example
+ </title>
+ <para>
+ Here is an example of a Lua opcode, showing how to pass strings
+ back and forth between Lua opcodes and Csound orchestra code.
+ The example uses the file <ulink url="examples/luaopcode.csd">
+ <citetitle>luaopcode.csd</citetitle></ulink>.
+ <example>
+ <title>
+ Example of a Lua opcode.
+ </title>
+ <xi:include href="examples-xml/luaopcode.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>
+ See Also
+ </title>
+ <para>
+ <link linkend="lua_exec"><citetitle>lua_exec</citetitle></link>,
+ <link linkend="lua_opdef"><citetitle>lua_opdef</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>
+ Credits
+ </title>
+ <para>
+ By: &namemichael; 2011
+ </para>
+ <para>
+ New in Csound version 5.13.2
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/lua_opdef.xml b/opcodes/lua_opdef.xml
new file mode 100644
index 0000000..d24ae9c
--- /dev/null
+++ b/opcodes/lua_opdef.xml
@@ -0,0 +1,157 @@
+<refentry id="lua_opdef">
+ <indexterm id="Indexlua_opdef">
+ <primary>
+ lua_opdef
+ </primary>
+ </indexterm>
+ <refentryinfo><title>Lua Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>
+ lua_opdef
+ </refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>
+ lua_opdef
+ </refname>
+ <refpurpose>
+ Define an opcode in Lua at i-rate. The opcode can take any
+ number of output and/or input arguments of any type.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>
+ Description
+ </title>
+ <para>
+ Define an opcode in Lua at i-rate. The opcode can take any
+ number of output and/or input arguments of any type.
+ The code is executed at initialization time, typically from the
+ orchestra header. Global and local variables, functions,
+ tables, and classes may be declared and defined. Objects defined
+ at global Lua scope remain in scope throughout the performance,
+ and are visible to any other Lua code in the same Csound thread.
+ </para>
+ <note>
+ <para>
+ By default, all objects defined in Lua are defined at global
+ scope. In order to ensure that objects are confined to their
+ own block of code, that is to ensure that the object is visible
+ only in lexical scope, the object must be declared as local.
+ This is the feature of Lua that beginners tend to find the most
+ troublesome.
+ </para>
+ <para>
+ Another thing to look out for is that Lua arrays use 1-based
+ indexing, not the 0-based indexing used in C and many other
+ programming languages.
+ </para>
+ </note>
+ </refsect1>
+
+ <refsect1>
+ <title>
+ Syntax
+ </title>
+ <synopsis><command>lua_opdef</command> Sname, Sluacode</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>
+ Initialization
+ </title>
+ <para>
+ <emphasis>Sname</emphasis> -- The name of the opcode.
+ </para>
+ <para>
+ <emphasis>Sluacode</emphasis> -- A block of Lua code, of any
+ length. Multi-line blocks may be enclosed in double braces
+ (i.e. <literal>{{ }}</literal>). This code is
+ evaluated once at initialization time.
+ </para>
+ <para>
+ The Lua code must define all functions that will be called from Csound,
+ using the following naming convention, where opcodename
+ stands for the actual opcode name:
+ </para>
+ <itemizedlist>
+ <listitem><simpara>
+ <literal>opcodename_init</literal> for the i-rate opcode subroutine.
+ </simpara></listitem>
+ <listitem><simpara>
+ <literal>opcodename_kontrol</literal> for the k-rate opcode subroutine.
+ </simpara></listitem>
+ <listitem><simpara>
+ <literal>opcodename_audio</literal> for the a-rate opcode subroutine.
+ </simpara></listitem>
+ <listitem><simpara>
+ <literal>opcodename_noteoff</literal> for the note-off subroutine.
+ </simpara></listitem>
+ </itemizedlist>
+ <para>
+ Each of these Lua functions will receive three lightuserdata
+ (i.e. pointer) arguments: the CSOUND object, the opcode instance,
+ and a pointer to the opcode arguments, which the Lua code must be type cast
+ to a LuaJIT FFI ctype structure containing the opcode output arguments,
+ input arguments, and state variables. Using LuaJIT FFI, the elements of
+ this structure will be accessible as though they were Lua types.
+ </para>
+ <para>
+ Each of these Lua functions must return 0 for success
+ or 1 for failure.
+ </para>
+ <para>
+ The Lua functions may do absolutely anything, although of
+ course if real-time performance is expected, care must be
+ taken to disable Lua garbage collection and observe other
+ recommendations for real-time code.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <!--To add examples, create the csd file in the examples directory, then run:-->
+ <!--python csd2docbook.py -f newopcodename.csd-->
+ <!--to generate the xml highlighted version used below-->
+ <title>
+ Example
+ </title>
+ <para>
+ Here is an example of a Lua opcode, implementing a Moog
+ ladder filter. For purposes of comparison, a user-defined
+ opcode and the native Csound opcode that compute the same
+ sound using the same algorithm also are shown, and timed.
+ The example uses the file <ulink url="examples/luamoog.csd">
+ <citetitle>luamoog.csd</citetitle></ulink>.
+ <example>
+ <title>
+ Example of a Lua opcode.
+ </title>
+ <xi:include href="examples-xml/luamoog.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>
+ See Also
+ </title>
+ <para>
+ <link linkend="lua_exec"><citetitle>lua_exec</citetitle></link>,
+ <link linkend="lua_opcall"><citetitle>lua_opcall</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>
+ Credits
+ </title>
+ <para>
+ By: &namemichael; 2011
+ </para>
+ <para>
+ New in Csound version 5.13.2
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/mac.xml b/opcodes/mac.xml
index 689bfbb..3e1bb61 100644
--- a/opcodes/mac.xml
+++ b/opcodes/mac.xml
@@ -25,7 +25,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>mac</command> asig1, ksig1 [, asig2] [, ksig2] [, asig3] [, ksig3] [...]</synopsis>
+ <synopsis>ares <command>mac</command> ksig1, asig1 [, ksig2] [, asig2] [, ksig3] [, asig3] [...]</synopsis>
</refsect1>
<refsect1>
@@ -45,6 +45,18 @@
</literallayout>
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the mac opcode. It uses the file <ulink url="examples/mac.csd"><citetitle>mac.csd</citetitle></ulink>. It is written for *NIX systems, and will generate errors on Windows.
+ <example>
+ <title>Example of the mac opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/mac.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/maca.xml b/opcodes/maca.xml
index 6df04da..5df46fc 100644
--- a/opcodes/maca.xml
+++ b/opcodes/maca.xml
@@ -8,7 +8,6 @@
<refnamediv>
<refname>maca</refname>
-
<refpurpose>
Multiply and accumulate a-rate signals only.
</refpurpose>
@@ -41,6 +40,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the maca opcode. It uses the file <ulink url="examples/maca.csd"><citetitle>maca.csd</citetitle></ulink>. It is written for *NIX systems, and will generate errors on Windows.
+ <example>
+ <title>Example of the maca opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/maca.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="mac"><citetitle>mac</citetitle></link>
diff --git a/opcodes/madsr.xml b/opcodes/madsr.xml
index 7a24013..de4a769 100644
--- a/opcodes/madsr.xml
+++ b/opcodes/madsr.xml
@@ -99,7 +99,14 @@
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/madsr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- </para>
+
+ Here is another example of the madsr opcode, using midi input. It uses the file <ulink url="examples/madsr-2.csd"><citetitle>madsr-2.csd</citetitle></ulink>.
+
+ <example>
+ <title>second example of the madsr opcode.</title>
+ <xi:include href="examples-xml/madsr-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/mandel.xml b/opcodes/mandel.xml
index 5691ca4..24df9e0 100644
--- a/opcodes/mandel.xml
+++ b/opcodes/mandel.xml
@@ -52,6 +52,26 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the mandel opcode. It uses the file <ulink url="examples/mandel.csd"><citetitle>mandel.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the mandel opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/mandel.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ More information on this opcode: <ulink url="http://mymbs.mbs.net/~pfisher/FOV2-0010016C/FOV2-0010016E/FOV2-001001A3/chapters/35evans/intro.html"><citetitle>Composing Fractal Music with Csound</citetitle></ulink>, by Brian Evans
+ </para>
+ </refsect1>
+
+
+ <refsect1>
<title>Credits</title>
<para>Written by &namegabriel;.</para>
<para>New in Csound 5 (Previously available only on CsoundAV)</para>
diff --git a/opcodes/mandol.xml b/opcodes/mandol.xml
index 1b6a360..374261e 100644
--- a/opcodes/mandol.xml
+++ b/opcodes/mandol.xml
@@ -91,7 +91,6 @@ url="ftp://ftp.cs.bath.ac.uk/pub/dream/documentation/sounds/modelling/"><citetit
<member>Bath, UK</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.47</para>
</refsect1>
diff --git a/opcodes/maparray.xml b/opcodes/maparray.xml
new file mode 100644
index 0000000..3b81c1f
--- /dev/null
+++ b/opcodes/maparray.xml
@@ -0,0 +1,79 @@
+
+<refentry id="maparray">
+<indexterm id="IndexMaparray"><primary>maparray</primary></indexterm>
+
+ <refentryinfo><title>Table Control:Table Queries</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>maparray</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>maparray</refname>
+ <refpurpose>
+ Apply a function to every element of a vector.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Apply a function of one argument to every element of a vector (one-dimensional k-rate array).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>karray <command>maparray</command> kinarray, String</synopsis>
+ <synopsis>karray <command>maparray_i</command> kinarray, String</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>String</emphasis> -- a string that names an opcode
+ function, at i-rate for maparray_i or k-rate for maparray.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>karray</emphasis> -- array for answers.
+ </para>
+ <para>
+ <emphasis>kinarray</emphasis> -- array for arguments to the function.
+ </para>
+
+ </refsect1>
+
+<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the maparray opcode. It uses the file <ulink url="examples/maparray.csd"><citetitle>maparray.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the maparray opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/maparray.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vectorial"><citetitle></citetitle>Vectorial opcodes</link>
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Codemist Ltd</member>
+ <member>2013</member>
+ </simplelist>
+ </para>
+ <para>New in version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/massign.xml b/opcodes/massign.xml
index ff4784c..b02f853 100644
--- a/opcodes/massign.xml
+++ b/opcodes/massign.xml
@@ -65,6 +65,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the massign opcode. It uses the file <ulink url="examples/massign.csd"><citetitle>massign.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the massign opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/massign.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="ctrlinit"><citetitle>ctrlinit</citetitle></link>
diff --git a/opcodes/max.xml b/opcodes/max.xml
index 1957329..d6ec11d 100644
--- a/opcodes/max.xml
+++ b/opcodes/max.xml
@@ -25,8 +25,8 @@
<refsect1>
<title>Syntax</title>
- <synopsis>amax <command>max</command> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis>
- <synopsis>kmax <command>max</command> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis>
+ <synopsis>amax <command>max</command> ain1, ain2 [, ain3] [, ain4] [...]</synopsis>
+ <synopsis>kmax <command>max</command> kin1, kin2 [, kin3] [, kin4] [...]</synopsis>
</refsect1>
<refsect1>
@@ -41,6 +41,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the max opcode. It uses the file <ulink url="examples/max.csd"><citetitle>max.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the max opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/max.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="min"><citetitle>min</citetitle></link>,
diff --git a/opcodes/max_k.xml b/opcodes/max_k.xml
index b0f9f37..184faf8 100644
--- a/opcodes/max_k.xml
+++ b/opcodes/max_k.xml
@@ -45,26 +45,41 @@
<para>
max_k outputs the local maximum (or minimum) value of the incoming <emphasis>asig</emphasis> signal, checked in the time interval between <emphasis>ktrig</emphasis> has become true twice. <emphasis>itype</emphasis> determinates the behaviour of max_k:</para>
<para>
- 1 - absolute maximum (sign of negative values is changed to positive before evaluation)
+ 1 - absolute maximum (sign of negative values is changed to positive before evaluation).
</para>
<para>
- 2 - actual maximum
+ 2 - actual maximum.
</para>
<para>
- 3 - actual minimum
+ 3 - actual minimum.
</para>
<para>
- 4 - calculate average value of <emphasis>asig</emphasis> in the time interval
+ 4 - calculate average value of <emphasis>asig</emphasis> in the
+ time interval since the last trigger.
</para>
<para>
This opcode can be useful in several situations, for example to implement a vu-meter.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the max_k opcode. It uses the file <ulink url="examples/max_k.csd"><citetitle>max_k.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the max_k opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/max_k.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>Written by &namegabriel;.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ <para>New in Csound 5 (Previously available only on
+ CsoundAV)</para>
+ <para>Fixed to agree with documentation in 5.15</para>
</refsect1>
</refentry>
diff --git a/opcodes/maxabs.xml b/opcodes/maxabs.xml
index 7988414..a6207a1 100644
--- a/opcodes/maxabs.xml
+++ b/opcodes/maxabs.xml
@@ -25,8 +25,8 @@
<refsect1>
<title>Syntax</title>
- <synopsis>amax <command>maxabs</command> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis>
- <synopsis>kmax <command>maxabs</command> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis>
+ <synopsis>amax <command>maxabs</command> ain1, ain2 [, ain3] [, ain4] [...]</synopsis>
+ <synopsis>kmax <command>maxabs</command> kin1, kin2 [, kin3] [, kin4] [...]</synopsis>
</refsect1>
<refsect1>
@@ -39,6 +39,18 @@
<emphasis>kin1, kin2, ...</emphasis> -- k-rate signals to be compared.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the maxabs opcode. It uses the file <ulink url="examples/maxabs.csd"><citetitle>maxabs.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the maxabs opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/maxabs.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/maxabsaccum.xml b/opcodes/maxabsaccum.xml
index 79e5896..0f5ed10 100644
--- a/opcodes/maxabsaccum.xml
+++ b/opcodes/maxabsaccum.xml
@@ -53,6 +53,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the maxabsaccum opcode. It uses the file <ulink url="examples/maxabsaccum.csd"><citetitle>maxabsaccum.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the maxabsaccum opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/maxabsaccum.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="minabsaccum"><citetitle>minabsaccum</citetitle></link>,
diff --git a/opcodes/maxaccum.xml b/opcodes/maxaccum.xml
index cfe2384..fc7798b 100644
--- a/opcodes/maxaccum.xml
+++ b/opcodes/maxaccum.xml
@@ -53,6 +53,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the maxaccum opcode. It uses the file <ulink url="examples/maxaccum.csd"><citetitle>maxaccum.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the maxabs opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/maxaccum.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="minaccum"><citetitle>minaccum</citetitle></link>,
diff --git a/opcodes/maxalloc.xml b/opcodes/maxalloc.xml
index a0c9b1e..5389bd4 100644
--- a/opcodes/maxalloc.xml
+++ b/opcodes/maxalloc.xml
@@ -64,7 +64,7 @@
<xi:include href="examples-xml/maxalloc.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- Its output should contain a message like this:
+ Its output should contain messages like these:
<screen>
WARNING: cannot allocate last note because it exceeds instr maxalloc
</screen>
@@ -87,7 +87,6 @@ WARNING: cannot allocate last note because it exceeds instr maxalloc
<member>July 1999</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.57</para>
</refsect1>
diff --git a/opcodes/maxarray.xml b/opcodes/maxarray.xml
new file mode 100644
index 0000000..5913823
--- /dev/null
+++ b/opcodes/maxarray.xml
@@ -0,0 +1,76 @@
+
+<refentry id="maxarray">
+<indexterm id="IndexMaxarray"><primary>maxarray</primary></indexterm>
+ <refentryinfo><title>Array Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>maxarray</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>maxarray</refname>
+
+ <refpurpose>
+ returns the maximum value in an array.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ The <emphasis>maxarray</emphasis> opcode returns the maximum value
+ in a k-rate array.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>kmax <command>maxarray</command> karray</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kmax</emphasis> -- variable for result.
+ </para>
+ <para>
+ <emphasis>karray</emphasis> -- array for reading.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the maxarray opcode. It uses the file <ulink url="examples/maxarray.csd"><citetitle>maxarray.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the maxarray opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/maxarray.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="minarray"><citetitle>minarray</citetitle></link>,
+ <link linkend="sumarray"><citetitle>sumarray</citetitle></link>,
+ <link linkend="scalearray"><citetitle>scalearray</citetitle></link>,
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>October 2011</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.14</para>
+ <para>Revised in Csound version 6.00 to work on multidimensional arrays</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/mclock.xml b/opcodes/mclock.xml
index a4887d8..5f71e95 100644
--- a/opcodes/mclock.xml
+++ b/opcodes/mclock.xml
@@ -50,6 +50,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the mclock opcode. It uses the file <ulink url="examples/mclock.csd"><citetitle>mclock.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the mclock opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/mclock.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
diff --git a/opcodes/median.xml b/opcodes/median.xml
index df123d5..782f5f8 100644
--- a/opcodes/median.xml
+++ b/opcodes/median.xml
@@ -1,7 +1,7 @@
-
+
<refentry id="median">
<indexterm id="IndexMedian"><primary>median</primary></indexterm>
- <refentryinfo><title>Signal Modifiers:Standard Filters:Low Pass</title></refentryinfo>
+ <refentryinfo><title>Signal Modifiers:Standard Filters</title></refentryinfo>
<refmeta>
<refentrytitle>median</refentrytitle>
</refmeta>
diff --git a/opcodes/mediank.xml b/opcodes/mediank.xml
index aff308c..1aed935 100644
--- a/opcodes/mediank.xml
+++ b/opcodes/mediank.xml
@@ -1,7 +1,7 @@
-
+
<refentry id="mediank">
<indexterm id="IndexMediank"><primary>mediank</primary></indexterm>
- <refentryinfo><title>Signal Modifiers:Standard Filters:Low Pass</title></refentryinfo>
+ <refentryinfo><title>Signal Modifiers:Standard Filters</title></refentryinfo>
<refmeta>
<refentrytitle>mediank</refentrytitle>
</refmeta>
diff --git a/opcodes/metro.xml b/opcodes/metro.xml
index 282432c..5ae75f0 100644
--- a/opcodes/metro.xml
+++ b/opcodes/metro.xml
@@ -49,26 +49,33 @@
<emphasis>metro</emphasis> will produce a trigger signal of 1 when its phase is exactly 0 or 1. If you want to skip the initial trigger, use a very small value like 0.00000001.
</para>
</note>
-
</refsect1>
<refsect1>
<title>Examples</title>
<para>
Here is an example of the metro opcode. It uses the file <ulink url="examples/metro.csd"><citetitle>metro.csd</citetitle></ulink>
-
<example>
<title>Example of the metro opcode.</title>
<xi:include href="examples-xml/metro.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
+ </example>
+ Here is another example of the metro opcode. It uses the file <ulink url="examples/metro-2.csd"><citetitle>metro-2.csd</citetitle></ulink>
+ <example>
+ <title>Another xample of the metro opcode.</title>
+ <xi:include href="examples-xml/metro-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>See Also</title>
+ <para> More information on this opcode in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch018_c-control-structures/"><citetitle>http://en.flossmanuals.net/csound/ch018_c-control-structures/</citetitle></ulink></para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>Written by &namegabriel;.</para>
- <para>Example written by &nameandres;.</para>
+ <para>First Example written by &nameandres;.</para>
<para>New in Csound 5 (Previously available only on CsoundAV)</para>
</refsect1>
</refentry>
diff --git a/opcodes/midic7.xml b/opcodes/midic7.xml
index 62ec9d8..70e968d 100644
--- a/opcodes/midic7.xml
+++ b/opcodes/midic7.xml
@@ -76,6 +76,17 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the midic7 opcode. It uses the file <ulink url="examples/midic7.csd"><citetitle>midic7.csd</citetitle></ulink>
+ <example>
+ <title>Example of the midic7 opcode.</title>
+ <xi:include href="examples-xml/midic7.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="ctrl7"><citetitle>ctrl7</citetitle></link>,
diff --git a/opcodes/midichannelaftertouch.xml b/opcodes/midichannelaftertouch.xml
index cd2476f..98c751f 100644
--- a/opcodes/midichannelaftertouch.xml
+++ b/opcodes/midichannelaftertouch.xml
@@ -70,16 +70,11 @@
<title>Examples</title>
<para>
Here is an example of the midichannelaftertouch opcode. It uses the file <ulink url="examples/midichannelaftertouch.csd"><citetitle>midichannelaftertouch.csd</citetitle></ulink>.
-
<example>
<title>Example of the midichannelaftertouch opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/midichannelaftertouch.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
Its output should include lines like:
<screen>
i1 127.00000
@@ -108,7 +103,6 @@
<refsect1>
<title>Credits</title>
<para>Author: Michael Gogins</para>
- <para>Example written by &namekevin;.</para>
<para>New in version 4.20</para>
</refsect1>
</refentry>
diff --git a/opcodes/midichn.xml b/opcodes/midichn.xml
index 3fd2104..6406832 100644
--- a/opcodes/midichn.xml
+++ b/opcodes/midichn.xml
@@ -66,8 +66,10 @@
Its output should include lines like:
<screen>
-note 7 (time = 0.00) was activated from channel 4
-note 8 (time = 0.00) was activated from channel 2
+note 1 (time = 0.00) was activated from channel 1
+note 2 (time = 2.00) was activated from channel 4
+note 3 (time = 3.00) was activated from channel 2
+note 4 (time = 5.00) was activated from channel 3
</screen>
</para>
</refsect1>
@@ -87,8 +89,6 @@ note 8 (time = 0.00) was activated from channel 2
<member>May 2002</member>
</simplelist>
</para>
- <para>The simple example was written by &namekevin;.</para>
-
<para>New in version 4.20</para>
</refsect1>
</refentry>
diff --git a/opcodes/midicontrolchange.xml b/opcodes/midicontrolchange.xml
index 0041f3b..e9374a0 100644
--- a/opcodes/midicontrolchange.xml
+++ b/opcodes/midicontrolchange.xml
@@ -72,6 +72,18 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the midicontrolchange opcode. It uses the file <ulink url="examples/midicontrolchange.csd"><citetitle>midicontrolchange.csd</citetitle></ulink>
+
+ <example>
+ <title>Example of the midicontrolchange opcode.</title>
+ <xi:include href="examples-xml/midicontrolchange.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="midichannelaftertouch"><citetitle>midichannelaftertouch</citetitle></link>,
diff --git a/opcodes/midictrl.xml b/opcodes/midictrl.xml
index 72c2786..bd3a88e 100644
--- a/opcodes/midictrl.xml
+++ b/opcodes/midictrl.xml
@@ -56,6 +56,17 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the midictrl opcode. It uses the file <ulink url="examples/midictrl.csd"><citetitle>midictrl.csd</citetitle></ulink>
+ <example>
+ <title>Example of the midictrl opcode.</title>
+ <xi:include href="examples-xml/midictrl.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="aftouch"><citetitle>aftouch</citetitle></link>,
diff --git a/opcodes/mididefault.xml b/opcodes/mididefault.xml
index 1787cbb..cf6ae39 100644
--- a/opcodes/mididefault.xml
+++ b/opcodes/mididefault.xml
@@ -61,6 +61,18 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the mididefault opcode. It uses the file <ulink url="examples/mididefault.csd"><citetitle>mididefault.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the mididefault opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/mididefault.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="midichannelaftertouch"><citetitle>midichannelaftertouch</citetitle></link>,
diff --git a/opcodes/midifilestatus.xml b/opcodes/midifilestatus.xml
new file mode 100644
index 0000000..91775c0
--- /dev/null
+++ b/opcodes/midifilestatus.xml
@@ -0,0 +1,44 @@
+
+<refentry id="midifilestatus">
+<indexterm id="IndexMidifilestatus"><primary>midifilestatus</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Sensing and Control</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>midifilestatus</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>midifilestatus</refname>
+
+ <refpurpose>
+ Returns the playback status of MIDI file input.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Returns the current playback status at k-rate, of the input MIDI file, 1 if file is playing, 0 if the end-of-the file
+has been reached.
+
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ksig <command>midifilestatus</command></synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>March 2006</member>
+ <member>New in Csound6</member>
+ </simplelist>
+ </para>
+
+ </refsect1>
+</refentry>
diff --git a/opcodes/midiin.xml b/opcodes/midiin.xml
index fcf9fbe..8de4333 100644
--- a/opcodes/midiin.xml
+++ b/opcodes/midiin.xml
@@ -61,6 +61,7 @@
</para>
</note>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
@@ -74,6 +75,7 @@
</example>
</para>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/midinoteoff.xml b/opcodes/midinoteoff.xml
index 4e01bad..ae7cb17 100644
--- a/opcodes/midinoteoff.xml
+++ b/opcodes/midinoteoff.xml
@@ -64,16 +64,11 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<title>Examples</title>
<para>
Here is an example of the midinoteoff opcode. It uses the file <ulink url="examples/midinoteoff.csd"><citetitle>midinoteoff.csd</citetitle></ulink>.
-
<example>
<title>Example of the midinoteoff opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/midinoteoff.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
Its output should include lines like:
<screen>
i1 60.00000
@@ -101,7 +96,6 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<refsect1>
<title>Credits</title>
<para>Author: Michael Gogins</para>
- <para>Example written by &namekevin;.</para>
<para>New in version 4.20</para>
</refsect1>
</refentry>
diff --git a/opcodes/midinoteoncps.xml b/opcodes/midinoteoncps.xml
index 0c8e08f..5fe919e 100644
--- a/opcodes/midinoteoncps.xml
+++ b/opcodes/midinoteoncps.xml
@@ -64,16 +64,11 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<title>Examples</title>
<para>
Here is an example of the midinoteoncps opcode. It uses the file <ulink url="examples/midinoteoncps.csd"><citetitle>midinoteoncps.csd</citetitle></ulink>.
-
<example>
<title>Example of the midinoteoncps opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/midinoteoncps.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
Its output should include lines like:
<screen>
i1 261.62561
@@ -101,7 +96,6 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<refsect1>
<title>Credits</title>
<para>Author: Michael Gogins</para>
- <para>Example written by &namekevin;.</para>
<para>New in version 4.20</para>
</refsect1>
</refentry>
diff --git a/opcodes/midinoteonkey.xml b/opcodes/midinoteonkey.xml
index 9f966a5..55d896c 100644
--- a/opcodes/midinoteonkey.xml
+++ b/opcodes/midinoteonkey.xml
@@ -64,16 +64,11 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<title>Examples</title>
<para>
Here is an example of the midinoteonkey opcode. It uses the file <ulink url="examples/midinoteonkey.csd"><citetitle>midinoteonkey.csd</citetitle></ulink>.
-
<example>
<title>Example of the midinoteonkey opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/midinoteonkey.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
Its output should include lines like:
<screen>
i1 60.00000
@@ -101,7 +96,6 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<refsect1>
<title>Credits</title>
<para>Author: Michael Gogins</para>
- <para>Example written by &namekevin;.</para>
<para>New in version 4.20</para>
</refsect1>
</refentry>
diff --git a/opcodes/midinoteonoct.xml b/opcodes/midinoteonoct.xml
index f0c98a9..1a6209a 100644
--- a/opcodes/midinoteonoct.xml
+++ b/opcodes/midinoteonoct.xml
@@ -64,19 +64,15 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<title>Examples</title>
<para>
Here is an example of the midinoteonoct opcode. It uses the file <ulink url="examples/midinoteonoct.csd"><citetitle>midinoteonoct.csd</citetitle></ulink>.
-
<example>
<title>Example of the midinoteonoct opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/midinoteonoct.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
Its output should include lines like:
<screen>
i1 8.00000
+ i1 8.91700
i1 9.33333
</screen>
</para>
@@ -101,7 +97,6 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<refsect1>
<title>Credits</title>
<para>Author: Michael Gogins</para>
- <para>Example written by &namekevin;.</para>
<para>New in version 4.20</para>
</refsect1>
</refentry>
diff --git a/opcodes/midinoteonpch.xml b/opcodes/midinoteonpch.xml
index a8a7836..488703f 100644
--- a/opcodes/midinoteonpch.xml
+++ b/opcodes/midinoteonpch.xml
@@ -64,16 +64,11 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<title>Examples</title>
<para>
Here is an example of the midinoteonpch opcode. It uses the file <ulink url="examples/midinoteonpch.csd"><citetitle>midinoteonpch.csd</citetitle></ulink>.
-
<example>
<title>Example of the midinoteonpch opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/midinoteonpch.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
Its output should include lines like:
<screen>
i1 8.09000
@@ -101,7 +96,6 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<refsect1>
<title>Credits</title>
<para>Author: Michael Gogins</para>
- <para>Example written by &namekevin;.</para>
<para>New in version 4.20</para>
</refsect1>
</refentry>
diff --git a/opcodes/midion2.xml b/opcodes/midion2.xml
index bb583af..d3b696b 100644
--- a/opcodes/midion2.xml
+++ b/opcodes/midion2.xml
@@ -51,6 +51,21 @@
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the midion2 opcode. It uses the file <ulink url="examples/midion2.csd"><citetitle>midion2.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the midion2 opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/midion2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/midiout.xml b/opcodes/midiout.xml
index c880211..2e71b4c 100644
--- a/opcodes/midiout.xml
+++ b/opcodes/midiout.xml
@@ -62,7 +62,19 @@
</para>
</warning>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the midiout opcode. It uses the file <ulink url="examples/midiout.csd"><citetitle>midiout.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the midiout opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/midiout.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/midipitchbend.xml b/opcodes/midipitchbend.xml
index 8ad37ba..2fbfc25 100644
--- a/opcodes/midipitchbend.xml
+++ b/opcodes/midipitchbend.xml
@@ -71,12 +71,8 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<title>Examples</title>
<para>
Here is an example of the midipitchbend opcode. It uses the file <ulink url="examples/midipitchbend.csd"><citetitle>midipitchbend.csd</citetitle></ulink>.
-
<example>
<title>Example of the midipitchbend opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/midipitchbend.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
@@ -109,7 +105,6 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
<refsect1>
<title>Credits</title>
<para>Author: Michael Gogins</para>
- <para>Example written by &namekevin;.</para>
<para>New in version 4.20</para>
</refsect1>
</refentry>
diff --git a/opcodes/midipolyaftertouch.xml b/opcodes/midipolyaftertouch.xml
index 7a92339..6a79aa4 100644
--- a/opcodes/midipolyaftertouch.xml
+++ b/opcodes/midipolyaftertouch.xml
@@ -72,6 +72,24 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the midipolyaftertouch opcode. It uses the file <ulink url="examples/midipolyaftertouch.csd"><citetitle>midipolyaftertouch.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the midipolyaftertouch opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/midipolyaftertouch.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like:
+ <screen>
+ i1 127.00000
+ i1 20.00000
+ i1 44.00000
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="midichannelaftertouch"><citetitle>midichannelaftertouch</citetitle></link>,
diff --git a/opcodes/midiprogramchange.xml b/opcodes/midiprogramchange.xml
index 01334a0..da69d5d 100644
--- a/opcodes/midiprogramchange.xml
+++ b/opcodes/midiprogramchange.xml
@@ -57,6 +57,18 @@ and MIDI, including both MIDI files and real-time MIDI input, without using any
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the midiprogramchange opcode. It uses the file <ulink url="examples/midiprogramchange.csd"><citetitle>midiprogramchange.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the midiprogramchange opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/midiprogramchange.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="midichannelaftertouch"><citetitle>midichannelaftertouch</citetitle></link>,
diff --git a/opcodes/miditempo.xml b/opcodes/miditempo.xml
index 695318e..24b7044 100644
--- a/opcodes/miditempo.xml
+++ b/opcodes/miditempo.xml
@@ -30,6 +30,22 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the miditempo opcode. It uses the files <ulink url="examples/miditempo.csd"><citetitle>miditempo.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the miditempo opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/miditempo.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include a line like this:
+ <screen>
+ miditempo = 96
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
diff --git a/opcodes/min.xml b/opcodes/min.xml
index 88a75dd..9b42f1d 100644
--- a/opcodes/min.xml
+++ b/opcodes/min.xml
@@ -25,8 +25,8 @@
<refsect1>
<title>Syntax</title>
- <synopsis>amin <command>min</command> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis>
- <synopsis>kmin <command>min</command> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis>
+ <synopsis>amin <command>min</command> ain1, ain2 [, ain3] [, ain4] [...]</synopsis>
+ <synopsis>kmin <command>min</command> kin1, kin2 [, kin3] [, kin4] [...]</synopsis>
</refsect1>
<refsect1>
@@ -39,7 +39,19 @@
<emphasis>kin1, kin2, ...</emphasis> -- k-rate signals to be compared.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the min opcode. It uses the file <ulink url="examples/min.csd"><citetitle>min.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the min opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/min.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/minabs.xml b/opcodes/minabs.xml
index b110b82..cfcf0b1 100644
--- a/opcodes/minabs.xml
+++ b/opcodes/minabs.xml
@@ -25,8 +25,8 @@
<refsect1>
<title>Syntax</title>
- <synopsis>amin <command>minabs</command> ain1 [, ain2] [, ain3] [, ain4] [...]</synopsis>
- <synopsis>kmin <command>minabs</command> kin1 [, kin2] [, kin3] [, kin4] [...]</synopsis>
+ <synopsis>amin <command>minabs</command> ain1, ain2 [, ain3] [, ain4] [...]</synopsis>
+ <synopsis>kmin <command>minabs</command> kin1, kin2 [, kin3] [, kin4] [...]</synopsis>
</refsect1>
<refsect1>
@@ -41,6 +41,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the minabs opcode. It uses the file <ulink url="examples/minabs.csd"><citetitle>minabs.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the minabs opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/minabs.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="maxabs"><citetitle>maxabs</citetitle></link>,
diff --git a/opcodes/minabsaccum.xml b/opcodes/minabsaccum.xml
index 64d6ad2..c93019a 100644
--- a/opcodes/minabsaccum.xml
+++ b/opcodes/minabsaccum.xml
@@ -53,6 +53,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the minabsaccum opcode. It uses the file <ulink url="examples/minabsaccum.csd"><citetitle>minabsaccum.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the minabsaccum opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/minabsaccum.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="maxabsaccum"><citetitle>maxabsaccum</citetitle></link>,
diff --git a/opcodes/minaccum.xml b/opcodes/minaccum.xml
index e291246..08d35e2 100644
--- a/opcodes/minaccum.xml
+++ b/opcodes/minaccum.xml
@@ -53,6 +53,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the minaccum opcode. It uses the file <ulink url="examples/minaccum.csd"><citetitle>minaccum.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the minaccum opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/minaccum.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="maxaccum"><citetitle>maxaccum</citetitle></link>,
diff --git a/opcodes/minarray.xml b/opcodes/minarray.xml
new file mode 100644
index 0000000..7664ab9
--- /dev/null
+++ b/opcodes/minarray.xml
@@ -0,0 +1,76 @@
+
+<refentry id="minarray">
+<indexterm id="IndexMinarray"><primary>minarray</primary></indexterm>
+ <refentryinfo><title>Array Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>minarray</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>minarray</refname>
+
+ <refpurpose>
+ returns the minimum value in an array.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ The <emphasis>minarray</emphasis> opcode returns the minimum value
+ in a k-rate array.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>kmin <command>minarray</command> karray</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kmin</emphasis> -- variable for result.
+ </para>
+ <para>
+ <emphasis>karray</emphasis> -- array for reading.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the minarray opcode. It uses the file <ulink url="examples/minarray.csd"><citetitle>minarray.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the minarray opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/minarray.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="maxarray"><citetitle>maxarray</citetitle></link>,
+ <link linkend="sumarray"><citetitle>sumarray</citetitle></link>,
+ <link linkend="scalearray"><citetitle>scalearray</citetitle></link>,
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>October 2011</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.14</para>
+ <para>Revised in Csound version 6.00 to work on multidimensional arrays</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/mincer.xml b/opcodes/mincer.xml
index 57627f3..c1342dd 100644
--- a/opcodes/mincer.xml
+++ b/opcodes/mincer.xml
@@ -1,6 +1,6 @@
-<refentry id="mincer">
+<refentry id="mincer">
<indexterm id="IndexMincer"><primary>mincer</primary></indexterm>
- <refentryinfo><title>Spectral processing: mincer</title></refentryinfo>
+ <refentryinfo><title>Spectral Processing:Other</title></refentryinfo>
<refmeta>
<refentrytitle>mincer</refentrytitle>
</refmeta>
@@ -33,7 +33,7 @@ given position ("frozen"). The quality of the effect is generally improved with
<refsect1>
<title>Syntax</title>
- <synopsis>asig <command>mincer</command> atimpt, kamp, kpitch, klock, ktab[,ifftsize,idecim]
+ <synopsis>asig <command>mincer</command> atimpt, kamp, kpitch, ktab, klock[,ifftsize,idecim]
</synopsis>
</refsect1>
@@ -69,37 +69,19 @@ given position ("frozen"). The quality of the effect is generally improved with
<link linkend="GEN01"><citetitle>GEN01</citetitle></link>) are accepted, but the opcode
expects a mono source. Tables can be switched at k-rate.
</para>
-
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the mincer opcode. It uses the file <ulink url="examples/mincer.csd"><citetitle>mincer.csd</citetitle></ulink>
<example>
- <title>Example</title>
- <programlisting>
-
-idur = p3
-ilock = p4
-itab = 1
-ipitch = 1
-itimescale = 0.5
-iamp = 0.5
-
-atime line 0,idur,idur*itimescale
-a1 mincer atime,iamp,ipitch,itab,ilock
-
- out a1
-
- </programlisting>
+ <title>Example of the mincer opcode.</title>
+ <xi:include href="examples-xml/mincer.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
</para>
-
-
</refsect1>
-
-
-
+
<refsect1>
<title>Credits</title>
<para>
@@ -108,7 +90,6 @@ a1 mincer atime,iamp,ipitch,itab,ilock
<member>February 2010</member>
</simplelist>
</para>
-
<para>New plugin in version 5.13</para>
<para>February 2005.</para>
</refsect1>
diff --git a/opcodes/mirror.xml b/opcodes/mirror.xml
index 48b2d4d..ac5bd1e 100644
--- a/opcodes/mirror.xml
+++ b/opcodes/mirror.xml
@@ -70,6 +70,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the mirror opcode. It uses the file <ulink url="examples/mirror.csd"><citetitle>mirror.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the mirror opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/mirror.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="limit"><citetitle>limit</citetitle></link>,
diff --git a/opcodes/mixerclear.xml b/opcodes/mixerclear.xml
index 79d1458..729e208 100644
--- a/opcodes/mixerclear.xml
+++ b/opcodes/mixerclear.xml
@@ -66,6 +66,14 @@ However, an instrument may have any number of sends or receives. After the final
<emphasis role="opc">outs</emphasis> a1blocked, a2blocked
<emphasis role="opc">MixerClear</emphasis>
<emphasis role="oblock">endin</emphasis></programlisting>
+
+ <para>
+ Here is a complete example of the Mixerclear opcode. It uses the file <ulink url="examples/Mixer.csd"><citetitle>Mixer.csd</citetitle></ulink>
+ <example>
+ <title>Complete example of the Mixerclear opcode.</title>
+ <xi:include href="examples-xml/Mixer.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/mixergetlevel.xml b/opcodes/mixergetlevel.xml
index d8dd2ba..d26e89f 100644
--- a/opcodes/mixergetlevel.xml
+++ b/opcodes/mixergetlevel.xml
@@ -52,6 +52,17 @@ However, an instrument may have any number of sends or receives. After the final
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the MixerGetLevel opcode. It uses the file <ulink url="examples/Mixer.csd"><citetitle>Mixer.csd</citetitle></ulink>
+ <example>
+ <title>Example of the MixerGetLevel opcode.</title>
+ <xi:include href="examples-xml/Mixer.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+</refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>Michael Gogins (gogins at pipeline dot com).</para>
</refsect1>
diff --git a/opcodes/mixerreceive.xml b/opcodes/mixerreceive.xml
index 52376dd..f44ccd2 100644
--- a/opcodes/mixerreceive.xml
+++ b/opcodes/mixerreceive.xml
@@ -76,6 +76,13 @@ However, an instrument may have any number of sends or receives. After the final
<emphasis role="opc">outs</emphasis> a1blocked, a2blocked
<emphasis role="opc">MixerClear</emphasis>
<emphasis role="oblock">endin</emphasis></programlisting>
+ <para>
+ Here is a complete example of the MixerReceive opcode. It uses the file <ulink url="examples/Mixer.csd"><citetitle>Mixer.csd</citetitle></ulink>
+ <example>
+ <title>Complete example of the MixerReceive opcode.</title>
+ <xi:include href="examples-xml/Mixer.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/mixersend.xml b/opcodes/mixersend.xml
index e4db773..3c6c625 100644
--- a/opcodes/mixersend.xml
+++ b/opcodes/mixersend.xml
@@ -70,6 +70,13 @@ asig2 <emphasis role="op">=</emphasis> aright <emphasis role="op">*</empha
<emphasis role="opc">MixerSend</emphasis> asig1, 100, 220, 0
<emphasis role="opc">MixerSend</emphasis> asig2, 100, 220, 1
<emphasis role="oblock">endin</emphasis></programlisting>
+ <para>
+ Here is a complete example of the MixerSend opcode. It uses the file <ulink url="examples/Mixer.csd"><citetitle>Mixer.csd</citetitle></ulink>
+ <example>
+ <title>Complete example of the MixerSend opcode.</title>
+ <xi:include href="examples-xml/Mixer.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/mixersetlevel.xml b/opcodes/mixersetlevel.xml
index 034d780..e5ec03c 100644
--- a/opcodes/mixersetlevel.xml
+++ b/opcodes/mixersetlevel.xml
@@ -81,6 +81,13 @@ However, an instrument may have any number of sends or receives. After the final
<emphasis role="stamnt">i</emphasis> 1 0 0 200 220 0.5
<emphasis role="comment">; Reverb to Output</emphasis>
<emphasis role="stamnt">i</emphasis> 1 0 0 210 220 0.2</programlisting>
+ <para>
+ Here is a complete example of the MixerSetLevel opcode. It uses the file <ulink url="examples/Mixer.csd"><citetitle>Mixer.csd</citetitle></ulink>
+ <example>
+ <title>Complete example of the MixerSetLevel opcode.</title>
+ <xi:include href="examples-xml/Mixer.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/mode.xml b/opcodes/mode.xml
index 44e1b0d..3a68710 100644
--- a/opcodes/mode.xml
+++ b/opcodes/mode.xml
@@ -25,7 +25,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>aout <command>mode</command> ain, kfreq, kQ [, iskip]</synopsis>
+ <synopsis>aout <command>mode</command> ain, xfreq, xQ [, iskip]</synopsis>
</refsect1>
<refsect1>
@@ -48,24 +48,24 @@
</para>
<para>
- <emphasis>kfreq</emphasis> -- resonant frequency of the filter
+ <emphasis>xfreq</emphasis> -- resonant frequency of the filter
<warning>
<title>Warning</title>
<para>
- This filter becomes unstable if <emphasis>sr</emphasis>/<emphasis>kfreq</emphasis> &lt;
- pi (e.g <emphasis>kfreq</emphasis> &gt; 14037 Hz @ 44 kHz)
+ This filter becomes unstable if <emphasis>sr</emphasis>/<emphasis>xfreq</emphasis> &lt;
+ pi (e.g <emphasis>xfreq</emphasis> &gt; 14037 Hz @ 44 kHz)
</para>
</warning>
</para>
<para>
- <emphasis>kQ</emphasis> -- quality factor of the filter
+ <emphasis>xQ</emphasis> -- quality factor of the filter
</para>
- <para>The resonance time is roughly proportionnal to <emphasis>kQ</emphasis>/<emphasis>kfreq</emphasis>.</para>
+ <para>The resonance time is roughly proportional to <emphasis>xQ</emphasis>/<emphasis>xfreq</emphasis>.</para>
<para>
- See <link linkend="MiscModalFreq"><citetitle>Modal Frequency Ratios</citetitle></link> for frequency ratios of real intruments which can be used to determine the values of <emphasis>kfreq</emphasis>.
+ See <link linkend="MiscModalFreq"><citetitle>Modal Frequency Ratios</citetitle></link> for frequency ratios of real instruments which can be used to determine the values of <emphasis>xfreq</emphasis>.
</para>
</refsect1>
@@ -86,5 +86,7 @@
<para>Original UDO and documentation/example by François Blanc</para>
<para>Opcode translation to C-code by Steven Yi</para>
<para>New in version 5.04</para>
- </refsect1>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>November 2013.</para>
+ </refsect1>
</refentry>
diff --git a/opcodes/modulus.xml b/opcodes/modulus.xml
index 214968c..52f8b05 100644
--- a/opcodes/modulus.xml
+++ b/opcodes/modulus.xml
@@ -66,22 +66,23 @@
</refsect1>
<refsect1>
+ <title>Arguments</title>
+ <para>
+ The arguments of &percnt; can be scalar values or k-rate one
+ dimensional arrays (vectors), or any combination. If one of the
+ arguments is an array, so is the value.
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Examples</title>
<para>
Here is an example of the &percnt; operator. It uses the file <ulink url="examples/modulus.csd"><citetitle>modulus.csd</citetitle></ulink>.
-
<example>
<title>Example of the &percnt; operator.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/modulus.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include a line like this:
- <screen>
-instr 1: i1 = 2.000</screen>
</para>
</refsect1>
@@ -100,6 +101,7 @@ instr 1: i1 = 2.000</screen>
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
+ <para>Arithmetic on vectors is new in version 6.00</para>
</refsect1>
+
</refentry>
diff --git a/opcodes/monitor.xml b/opcodes/monitor.xml
index 8e469ed..3f2a037 100644
--- a/opcodes/monitor.xml
+++ b/opcodes/monitor.xml
@@ -36,6 +36,18 @@
See the entry for the <link linkend="fout"><citetitle>fout</citetitle></link> opcode for an example of usage of <emphasis>monitor</emphasis>.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the monitor opcode. It uses the file <ulink url="examples/monitor.csd"><citetitle>monitor.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the monitor opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/monitor.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See also</title>
diff --git a/opcodes/moog.xml b/opcodes/moog.xml
index 2e8249f..59572ed 100644
--- a/opcodes/moog.xml
+++ b/opcodes/moog.xml
@@ -93,8 +93,6 @@
<member>Bath, UK</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.47</para>
</refsect1>
</refentry>
diff --git a/opcodes/moogladder.xml b/opcodes/moogladder.xml
index 8883b65..9a73bab 100644
--- a/opcodes/moogladder.xml
+++ b/opcodes/moogladder.xml
@@ -27,16 +27,20 @@ the original analogue filter.
<refsect1>
<title>Syntax</title>
<synopsis>asig <command>moogladder</command> ain, kcf, kres[, istor]</synopsis>
+ <synopsis>asig <command>moogladder</command> ain, acf, kres[, istor]</synopsis>
+ <synopsis>asig <command>moogladder</command> ain, kcf, ares[, istor]</synopsis>
+ <synopsis>asig <command>moogladder</command> ain, acf, ares[, istor]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>istor</emphasis> --initial disposition of internal data space. Since
-filtering incorporates a feedback loop of previous output,
-the initial status of the storage space used is significant.
-A zero value will clear the space; a non-zero value will allow
-previous information to remain. The default value is 0.
+ <emphasis>istor</emphasis> --initial disposition of internal
+ data space. Since filtering incorporates a feedback loop of
+ previous output, the initial status of the storage space used is
+ significant. A zero value will clear the space; a non-zero
+ value will allow previous information to remain. The default
+ value is 0.
</para>
</refsect1>
@@ -46,27 +50,25 @@ previous information to remain. The default value is 0.
<emphasis>asig</emphasis> -- input signal.
</para>
<para>
- <emphasis>kcf</emphasis> -- filter cutoff frequency
+ <emphasis>kcf</emphasis>/<emphasis>acf</emphasis> -- filter cutoff frequency
</para>
<para>
- <emphasis>kres</emphasis> -- resonance, generally &lt; 1, but not limited to it.
-Higher than 1 resonance values might cause aliasing,
-analogue synths generally allow resonances to be above 1.
+ <emphasis>kres</emphasis>/<emphasis>ares</emphasis> --
+ resonance, generally &lt; 1, but not limited to it. Higher than
+ 1 resonance values might cause aliasing, analogue synths
+ generally allow resonances to be above 1.
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the moogladder opcode. It uses the file <ulink url="examples/moogladder.csd"><citetitle>moogladder.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-kfe <emphasis role="opc">expseg</emphasis> 500, p3<emphasis role="op">*</emphasis>0.9, 1800, p3<emphasis role="op">*</emphasis>0.1, 3000
-kenv <emphasis role="opc">linen</emphasis> 10000, 0.05, p3, 0.05
-asig <emphasis role="opc">buzz</emphasis> kenv, 100, sr<emphasis role="op">/</emphasis>(200), 1
-afil <emphasis role="opc">moogladder</emphasis> asig, kfe, 1
- <emphasis role="opc">out</emphasis> afil</programlisting>
+ <title>Example of the moogladder opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/moogladder.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
@@ -81,5 +83,7 @@ afil <emphasis role="opc">moogladder</emphasis> asig, kfe, 1
</para>
<para>New plugin in version 5</para>
<para>January 2005.</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>October 2013.</para>
</refsect1>
-</refentry>
+</refentry>
diff --git a/opcodes/moogvcf.xml b/opcodes/moogvcf.xml
index 6341ee7..65cd513 100644
--- a/opcodes/moogvcf.xml
+++ b/opcodes/moogvcf.xml
@@ -60,7 +60,7 @@
</para>
<warning>
- <para>This filter requires that the input signal be normalized to one. This can be easily achieved using <link linkend="Zerodbfs"><citetitle>0dbfs</citetitle></link>, like this:
+ <para>Before version 6.02 this filter required that the input signal be normalized to one. This can be easily achieved using <link linkend="Zerodbfs"><citetitle>0dbfs</citetitle></link>, like this:
<literallayout>ares <command>moogvcf</command> asig, kfco, kres, 0dbfs</literallayout></para>
<para>You can also use <link linkend="moogvcf2"><citetitle>moogvcf2</citetitle></link> which defaults scaling to <link linkend="Zerodbfs"><citetitle>0dbfs</citetitle></link>. </para>
</warning>
@@ -95,8 +95,6 @@
<member>October 1998</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.49</para>
</refsect1>
</refentry>
diff --git a/opcodes/moogvcf2.xml b/opcodes/moogvcf2.xml
index 9d67296..8fc3fdc 100644
--- a/opcodes/moogvcf2.xml
+++ b/opcodes/moogvcf2.xml
@@ -102,7 +102,6 @@
<member>October 1998/ July 2006</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 5.03</para>
</refsect1>
diff --git a/opcodes/mp3in.xml b/opcodes/mp3in.xml
index bbe62f2..b79b53f 100644
--- a/opcodes/mp3in.xml
+++ b/opcodes/mp3in.xml
@@ -22,7 +22,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ar1, ar2 <command>mp3in</command> ifilcod, iskptim, iformat, iskipinit, ibufsize</synopsis>
+ <synopsis>ar1, ar2 <command>mp3in</command> ifilcod[, iskptim, iformat, iskipinit, ibufsize]</synopsis>
</refsect1>
<refsect1>
@@ -54,7 +54,7 @@
<para>
<emphasis>ibuffersize</emphasis> (optional) -- sets the internal buffer size
- for reading. If the value is zero or negative it defaults to
+ for reading. If the value is omitted, zero or negative it defaults to
4096 bytes.
</para>
</refsect1>
@@ -67,6 +67,19 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the mp3in opcode. It uses the file <ulink url="examples/mp3in.csd"><citetitle>mp3in.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the mp3in opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/mp3in.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="diskin"><citetitle>diskin</citetitle></link>,
@@ -76,6 +89,7 @@
<link linkend="inh"><citetitle>inh</citetitle></link>,
<link linkend="ino"><citetitle>ino</citetitle></link>,
<link linkend="inq"><citetitle>inq</citetitle></link>,
+ <link linkend="mp3len"><citetitle>mp3len</citetitle></link>,
<link linkend="soundin"><citetitle>soundin</citetitle></link>
</para>
</refsect1>
diff --git a/opcodes/mp3len.xml b/opcodes/mp3len.xml
new file mode 100644
index 0000000..aee9a5a
--- /dev/null
+++ b/opcodes/mp3len.xml
@@ -0,0 +1,75 @@
+
+<refentry id="mp3len">
+<indexterm id="IndexMp3len"><primary>mp3len</primary></indexterm>
+ <refentryinfo><title>Signal I/O:Soundfile Queries</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>mp3len</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>mp3len</refname>
+ <refpurpose>
+ Returns the length of an MP3 sound file.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Returns the length of an MP3 sound file.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ir <command>mp3len</command> ifilcod</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifilcod</emphasis> -- sound file to be queried
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>mp3len</emphasis> returns the length of the sound file <emphasis>ifilcod</emphasis> in seconds.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the mp3len opcode. It uses the file <ulink url="examples/mp3len.csd"><citetitle>mp3len.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the mp3len opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/mp3len.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="mp3in"><citetitle>mp3in</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Feb 2011</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/mpulse.xml b/opcodes/mpulse.xml
index 3da22e2..80804d2 100644
--- a/opcodes/mpulse.xml
+++ b/opcodes/mpulse.xml
@@ -62,11 +62,17 @@
</example>
</para>
</refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ Another example of how to use mpulse can be found here: <link linkend="mode"><citetitle>mode</citetitle></link>
+ </para>
+ </refsect1>
<refsect1>
<title>Credits</title>
<para>Written by &namejohn;.</para>
<para>New in version 4.08</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/multiplies.xml b/opcodes/multiplies.xml
index e1fbddd..8dfe2ed 100644
--- a/opcodes/multiplies.xml
+++ b/opcodes/multiplies.xml
@@ -74,6 +74,15 @@ a - b - c
</refsect1>
<refsect1>
+ <title>Arguments</title>
+ <para>
+ The arguments of &ast; can be scalar values or k-rate one
+ dimensional arrays (vectors), or any combination. If one of the
+ arguments is an array, so is the value.
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Examples</title>
<para>
Here is an example of the &ast; operator. It uses the file <ulink url="examples/multiplies.csd"><citetitle>multiplies.csd</citetitle></ulink>.
@@ -89,7 +98,12 @@ a - b - c
Its output should include a line like this:
<screen>
-instr 1: i1 = 192.000</screen>
+
+base amplitude * rising expon output = 0.8 * 0.010000
+base amplitude * rising expon output = 0.8 * 0.012589
+..........
+base amplitude * rising expon output = 0.8 * 0.794328
+base amplitude * rising expon output = 0.8 * 0.998466</screen>
</para>
</refsect1>
@@ -108,6 +122,7 @@ instr 1: i1 = 192.000</screen>
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
+ <para>Arithmetic on vectors is new in version 6.00</para>
</refsect1>
+
</refentry>
diff --git a/opcodes/multitap.xml b/opcodes/multitap.xml
index b8c9e55..85050da 100644
--- a/opcodes/multitap.xml
+++ b/opcodes/multitap.xml
@@ -22,7 +22,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>multitap</command> asig [, itime1] [, igain1] [, itime2] [, igain2] [...]</synopsis>
+ <synopsis>ares <command>multitap</command> asig [, itime1, igain1] [, itime2, igain2] [...]</synopsis>
</refsect1>
<refsect1>
@@ -35,20 +35,16 @@
The delay line is fed by <emphasis>asig</emphasis>.
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
- a1 <emphasis role="opc">oscil</emphasis> 1000, 100, 1
- a2 <emphasis role="opc">multitap</emphasis> a1, 1.2, .5, 1.4, .2
- <emphasis role="opc">out</emphasis> a2</programlisting>
- </informalexample>
- </para>
-
- <para>
- This results in two delays, one with length of 1.2 and gain of .5, and one with length of 1.4 and gain of .2.
+ Here is an example of the multitap opcode. It uses the file <ulink url="examples/multitap.csd"><citetitle>multitap.csd</citetitle></ulink>
+ <example>
+ <title>Example of the multitap opcode.</title>
+ <xi:include href="examples-xml/multitap.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ This results in two delays, one with length of 1.2 and gain of .5, and one with length of 1.4 and gain of .2.
</para>
</refsect1>
diff --git a/opcodes/mute.xml b/opcodes/mute.xml
index d0f0d71..e54381c 100644
--- a/opcodes/mute.xml
+++ b/opcodes/mute.xml
@@ -72,7 +72,6 @@
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
<para>New in version 4.22</para>
</refsect1>
</refentry>
diff --git a/opcodes/mxadsr.xml b/opcodes/mxadsr.xml
index 9963784..d9d79a9 100644
--- a/opcodes/mxadsr.xml
+++ b/opcodes/mxadsr.xml
@@ -87,6 +87,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the mxadsr opcode. It uses the file <ulink url="examples/mxadsr.csd"><citetitle>mxadsr.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the mxadsr opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/mxadsr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="expsegr"><citetitle>linsegr</citetitle></link>,
diff --git a/opcodes/nchnls.xml b/opcodes/nchnls.xml
index 27d9aa2..7810477 100644
--- a/opcodes/nchnls.xml
+++ b/opcodes/nchnls.xml
@@ -40,6 +40,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the nchnls opcode. It uses the file <ulink url="examples/nchnls.csd"><citetitle>nchnls.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the nchnls opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/nchnls.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="kr"><citetitle>kr</citetitle></link>,
diff --git a/opcodes/nchnls_i.xml b/opcodes/nchnls_i.xml
index a70d23c..6303914 100644
--- a/opcodes/nchnls_i.xml
+++ b/opcodes/nchnls_i.xml
@@ -1,15 +1,15 @@
<refentry id="nchnls_i">
-<indexterm id="IndexNchns_I"><primary>nchns_i</primary></indexterm>
+<indexterm id="IndexNchns_I"><primary>nchnls_i</primary></indexterm>
<refentryinfo><title>Orchestra Syntax:Header</title></refentryinfo>
<refmeta>
- <refentrytitle>nchns_i</refentrytitle>
+ <refentrytitle>nchnls_i</refentrytitle>
</refmeta>
<refnamediv>
- <refname>nchns_i</refname>
+ <refname>nchnls_i</refname>
<refpurpose>
Sets the number of channels of audio input.
@@ -32,13 +32,13 @@
<refsect1>
<title>Syntax</title>
- <synopsis><command>nchns_i</command> = iarg</synopsis>
+ <synopsis><command>nchnls_i</command> = iarg</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
-<emphasis>nchns_i</emphasis> = (optional) -- set number of channels of
+<emphasis>nchnls_i</emphasis> = (optional) -- set number of channels of
audio input to <emphasis>iarg</emphasis>. (1 = mono, 2 = stereo, 4 =
quadraphonic.) The default value is the valus of <emphasis>nchnls</emphasis>.
</para>
@@ -49,6 +49,18 @@ quadraphonic.) The default value is the valus of <emphasis>nchnls</emphasis>.
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the nchnls_i opcode. It uses the file <ulink url="examples/nchnls_i.csd"><citetitle>nchnls_i.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the nchnls_i opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/nchnls_i.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="kr"><citetitle>kr</citetitle></link>,
diff --git a/opcodes/nlfilt.xml b/opcodes/nlfilt.xml
index 0fbc307..430982c 100644
--- a/opcodes/nlfilt.xml
+++ b/opcodes/nlfilt.xml
@@ -98,7 +98,19 @@ Y{n} =a Y{n-1} + b Y{n-2} + d Y^2{n-L} + X{n} - C
</para>
</warning>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the nlfilt opcode. It uses the file <ulink url="examples/nlfilt.csd"><citetitle>nlfilt.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the nlfilt opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/nlfilt.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/nlfilt2.xml b/opcodes/nlfilt2.xml
new file mode 100644
index 0000000..d0036ed
--- /dev/null
+++ b/opcodes/nlfilt2.xml
@@ -0,0 +1,126 @@
+
+<refentry id="nlfilt2">
+<indexterm id="IndexNlfilt2"><primary>nlfilt2</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Specialized Filters</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>nlfilt2</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>nlfilt2</refname>
+ <refpurpose>
+ A filter with a non-linear effect and blowup protection.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Implements the filter:
+ <literallayout>
+Y{n} =tanh(a Y{n-1} + b Y{n-2} + d Y^2{n-L} + X{n} - C)
+ </literallayout>
+ described in Dobson and Fitch (ICMC'96) as modified by Risto Holopainen.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>nlfilt2</command> ain, ka, kb, kd, kC, kL</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Non-linear effect. The range of parameters are:
+ <literallayout>
+ a = b = 0
+ d = 0.8, 0.9, 0.7
+ C = 0.4, 0.5, 0.6
+ L = 20
+ </literallayout>
+ This affects the lower register most but there are audible effects over the whole range. We suggest that it may be useful for coloring drums, and for adding arbitrary highlights to notes.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Low Pass with non-linear. The range of parameters are:
+ <literallayout>
+ a = 0.4
+ b = 0.2
+ d = 0.7
+ C = 0.11
+ L = 20, ... 200
+ </literallayout>
+ There are instability problems with this variant but the effect is more pronounced of the lower register, but is otherwise much like the pure comb. Short values of <emphasis>L</emphasis> can add attack to a sound.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ High Pass with non-linear. The range of parameters are:
+ <literallayout>
+ a = 0.35
+ b = -0.3
+ d = 0.95
+ C = 0,2, ... 0.4
+ L = 200
+ </literallayout>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ High Pass with non-linear. The range of parameters are:
+ <literallayout>
+ a = 0.7
+ b = -0.2, ... 0.5
+ d = 0.9
+ C = 0.12, ... 0.24
+ L = 500, 10
+ </literallayout>
+ The high pass version is less likely to oscillate. It adds scintillation to medium-high registers. With a large delay <emphasis>L</emphasis> it is a little like a reverberation, while with small values there appear to be formant-like regions. There are arbitrary color changes and resonances as the pitch changes. Works well with individual notes.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+
+ <warning>
+ <title>Warning</title>
+ <para>
+ The &quot;useful&quot; ranges of parameters are not yet mapped.
+ </para>
+ </warning>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the nlfilt2 opcode. It uses the file <ulink url="examples/nlfilt2.csd"><citetitle>nlfilt2.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the nlfilt2 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/nlfilt2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>University of Bath/Codemist Ltd.</member>
+ <member>Bath, UK</member>
+ <member>2012</member>
+ </simplelist>
+ </para>
+ <para>New in version 5.19</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/noise.xml b/opcodes/noise.xml
index 0e74717..28f9e2b 100644
--- a/opcodes/noise.xml
+++ b/opcodes/noise.xml
@@ -38,7 +38,8 @@
</para>
<para>
- <emphasis>kbeta</emphasis> -- beta of the lowpass filter. Should be in the range of -1 to 1.
+ <emphasis>kbeta</emphasis> -- beta of the lowpass filter. Should
+ be in the range of -1 to 1, exclusive of the end-points.
</para>
<para>
@@ -94,8 +95,6 @@
<member>December 2000</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 4.10</para>
</refsect1>
</refentry>
diff --git a/opcodes/notequal.xml b/opcodes/notequal.xml
index 2e1fe7e..6bd1e3d 100644
--- a/opcodes/notequal.xml
+++ b/opcodes/notequal.xml
@@ -61,21 +61,14 @@
<title>Examples</title>
<para>
Here is an example of the != operator. It uses the file <ulink url="examples/notequal.csd"><citetitle>notequal.csd</citetitle></ulink>.
-
<example>
<title>Example of the != operator.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/notequal.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
Its output should include lines like this:
<screen>
-k1 = 2.000000, k2 = 1.000000
-k1 = 3.000000, k2 = 0.000000
-k1 = 4.000000, k2 = 1.000000</screen>
+instr 1: ipch = 277.167</screen>
</para>
</refsect1>
@@ -90,8 +83,4 @@ k1 = 4.000000, k2 = 1.000000</screen>
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
</refentry>
diff --git a/opcodes/notnum.xml b/opcodes/notnum.xml
index 8c5fe16..2e3d19b 100644
--- a/opcodes/notnum.xml
+++ b/opcodes/notnum.xml
@@ -39,18 +39,11 @@
<title>Examples</title>
<para>
Here is an example of the notnum opcode. It uses the file <ulink url="examples/notnum.csd"><citetitle>notnum.csd</citetitle></ulink>.
-
<example>
<title>Example of the notnum opcode.</title>
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/notnum.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- Here is an example of the notnum opcode used to produce audio output. It uses the file <ulink url="examples/notnum_complex.csd"><citetitle>notnum_complex.csd</citetitle></ulink>
- <example>
- <title>Complex example of the notnum opcode.</title>
- <xi:include href="examples-xml/notnum_complex.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
</para>
</refsect1>
@@ -80,6 +73,6 @@
<member>May 1997</member>
</simplelist>
</para>
- <para>Examples written by &namekevin; and David Akbari.</para>
+ <para>Example written by David Akbari.</para>
</refsect1>
</refentry>
diff --git a/opcodes/nrpn.xml b/opcodes/nrpn.xml
index 4cbdb97..bf8dd41 100644
--- a/opcodes/nrpn.xml
+++ b/opcodes/nrpn.xml
@@ -48,6 +48,19 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the nrpn opcode. It uses the file <ulink url="examples/nrpn.csd"><citetitle>nrpn.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the nrpn opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <para>This example generates notes for every note received on the MIDI input. It generates MIDI notes on csound's MIDI output, so be sure to connect something.</para>
+ <xi:include href="examples-xml/nrpn.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
diff --git a/opcodes/nsamp.xml b/opcodes/nsamp.xml
index 8dc68c3..69a3976 100644
--- a/opcodes/nsamp.xml
+++ b/opcodes/nsamp.xml
@@ -42,17 +42,16 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the nsamp opcode. It uses the file <ulink url="examples/nsamp.csd"><citetitle>nsamp.csd</citetitle></ulink>, and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
-
+ Here is an example of the nsamp opcode. It uses the file <ulink url="examples/nsamp.csd"><citetitle>nsamp.csd</citetitle></ulink>, <ulink url="examples/kickroll.wav"><citetitle>kickroll.wav</citetitle></ulink>. and <ulink url="examples/fox.wav"><citetitle>fox.wav</citetitle></ulink>.
<example>
<title>Example of the nsamp opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/nsamp.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Since the audio file <quote>mary.wav</quote> has 154390 samples, its output should include a line like this:
+ Since the stereo audio file <quote>kickroll.wav</quote> has 37792 samples and the mono file <quote>fox.wav</quote> has 121569 samples, its output should include lines like these:
<screen>
-instr 1: isz = 154390.000</screen>
+actual numbers of samples = 37792
+actual numbers of samples = 121569</screen>
</para>
</refsect1>
@@ -75,6 +74,5 @@ instr 1: isz = 154390.000</screen>
<member>October 1998</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/ntrpol.xml b/opcodes/ntrpol.xml
index 346fecf..1e33992 100644
--- a/opcodes/ntrpol.xml
+++ b/opcodes/ntrpol.xml
@@ -62,6 +62,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the ntrpol opcode. It uses the file <ulink url="examples/ntrpol.csd"><citetitle>ntrpol.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the ntrpol opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/ntrpol.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
diff --git a/opcodes/octave.xml b/opcodes/octave.xml
index 34dc7fd..a2cd40f 100644
--- a/opcodes/octave.xml
+++ b/opcodes/octave.xml
@@ -49,21 +49,24 @@
<title>Examples</title>
<para>
Here is an example of the octave opcode. It uses the file <ulink url="examples/octave.csd"><citetitle>octave.csd</citetitle></ulink>.
-
<example>
<title>Example of the octave opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/octave.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
Its output should include lines like:
<screen>
-instr 1: iroot = 440.000
-instr 1: ifactor = 4.000
-instr 1: inew = 1760.149</screen>
+ i1 3520.00000
+ i1 1760.00000
+ i1 880.00000
+ i1 440.00000
+ i1 7040.00000
+ i1 3520.00000
+ i1 1760.00000
+ i1 880.00000
+ i1 440.00000
+ .......</screen>
</para>
</refsect1>
@@ -78,7 +81,6 @@ instr 1: inew = 1760.149</screen>
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
<para>New in version 4.16</para>
</refsect1>
</refentry>
diff --git a/opcodes/opand.xml b/opcodes/opand.xml
index f00a7cc..343815e 100644
--- a/opcodes/opand.xml
+++ b/opcodes/opand.xml
@@ -62,6 +62,29 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the Logical AND operator. It uses the file <ulink url="examples/opand.csd"><citetitle>opand.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the opand opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/opand.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+ i1 0.00000
+ i1 3.00000
+ i1 1.00000
+ i1 3.00000
+ i1 1.00000
+ i1 2.00000
+ i1 3.00000
+.....
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="subtracts"><citetitle>-</citetitle></link>,
diff --git a/opcodes/opcode.xml b/opcodes/opcode.xml
index a7dd93f..cf200e2 100644
--- a/opcodes/opcode.xml
+++ b/opcodes/opcode.xml
@@ -88,7 +88,7 @@
</para>
<para>
- <emphasis>intypes</emphasis> -- list of input types, any combination of the characters: a, k, K, i, o, p, and j. A single 0 character can be used if there are no input arguments. Double quotes and delimiter characters (e.g. comma) are <emphasis>not</emphasis> needed.
+ <emphasis>intypes</emphasis> -- list of input types, any combination of the characters: a, k, O, P, V, K, i, o, p, and j. A single 0 character can be used if there are no input arguments. Double quotes and delimiter characters (e.g. comma) are <emphasis>not</emphasis> needed.
</para>
<para>
@@ -134,6 +134,27 @@
<entry>k-rate</entry>
</row>
+ <row>
+ <entry>O</entry>
+ <entry>optional k-rate variable, defaults to 0</entry>
+ <entry>k- and i-rate, constant</entry>
+ <entry>k-rate</entry>
+ </row>
+
+ <row>
+ <entry>P</entry>
+ <entry>optional k-rate variable, defaults to 1</entry>
+ <entry>k- and i-rate, constant</entry>
+ <entry>k-rate</entry>
+ </row>
+
+ <row>
+ <entry>V</entry>
+ <entry>optional k-rate variable, defaults to 0.5</entry>
+ <entry>k- and i-rate, constant</entry>
+ <entry>k-rate</entry>
+ </row>
+
<row>
<entry>K</entry>
<entry>k-rate with initialization</entry>
diff --git a/opcodes/opi.xml b/opcodes/opi.xml
index 08bd8f7..51fbf99 100644
--- a/opcodes/opi.xml
+++ b/opcodes/opi.xml
@@ -12,20 +12,20 @@
<refname>i</refname>
<refpurpose>
- Returns an init-type equivalent of a k-rate argument.
+ Returns an init-type equivalent of a k-rate argument, or directly returns an i-rate argument.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- Returns an init-type equivalent of a k-rate argument.
+ Returns an init-type equivalent of a k-rate argument, or directly returns an i-rate argument.
</para>
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis><command>i</command>(x) (control-rate args only)</synopsis>
+ <synopsis><command>i</command>(x) (control-rate or init-rate arg)</synopsis>
<para>
Value converters perform arithmetic translation from units of one kind to units of another. The result can then be a term in a further expression.
@@ -49,5 +49,12 @@
<link linkend="log10"><citetitle>log10</citetitle></link>,
<link linkend="sqrt"><citetitle>sqrt</citetitle></link>
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue10/CsoundRates.html"><citetitle>http://www.csounds.com/journal/issue10/CsoundRates.html</citetitle></ulink> , written by Andrés Cabrera </para>
</refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>i-rate arg version of function new since 5.14</para>
+ </refsect1>
+
</refentry>
diff --git a/opcodes/opk.xml b/opcodes/opk.xml
index 36cedbf..425e7d1 100644
--- a/opcodes/opk.xml
+++ b/opcodes/opk.xml
@@ -13,7 +13,8 @@
<refpurpose>
Converts a i-rate parameter to an k-rate value.
- </refpurpose>
+ Or converts an a-rate value to a k-rate value by down-sampling.
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -28,9 +29,13 @@
<refsect1>
<title>Syntax</title>
<synopsis><command>k</command>(x) (i-rate args only)</synopsis>
+ <synopsis><command>k</command>(x) (a-rate args only)</synopsis>
<para>
- where the argument within the parentheses may be an expression. Value converters perform arithmetic translation from units of one kind to units of another. The result can then be a term in a further expression.
+ where the argument within the parentheses may be an
+ expression. Value converters perform arithmetic translation from
+ units of one kind to units of another. The result can then be a
+ term in a further expression.
</para>
</refsect1>
@@ -41,11 +46,15 @@
<link linkend="opi"><citetitle>i</citetitle></link>
<link linkend="opa"><citetitle>a</citetitle></link>
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue10/CsoundRates.html"><citetitle>http://www.csounds.com/journal/issue10/CsoundRates.html</citetitle></ulink> , written by Andrés Cabrera </para>
</refsect1>
<refsect1>
<title>Credits</title>
- <para>Author: Istvan Varga</para>
+ <para>Author: &nameistvan;</para>
<para>New in version Csound 5.00</para>
+ <para>Author: &namejohn;</para>
+ <para>arate to krate new in version Csound 6.00</para>
+
</refsect1>
</refentry>
diff --git a/opcodes/opor.xml b/opcodes/opor.xml
index bbf5fbd..f7e6044 100644
--- a/opcodes/opor.xml
+++ b/opcodes/opor.xml
@@ -74,6 +74,37 @@ a - b - c
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the &verbar; operator. It uses the file <ulink url="examples/logicOR.csd"><citetitle>logicOR.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the &verbar; operator.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/logicOR.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ Its output should include a line like these:
+ <screen>
+Value:127 ChanNo:11 CtrlNo:62
+Value:127 ChanNo:11 CtrlNo:60
+Value:127 ChanNo:11 CtrlNo:60
+Value:127 ChanNo:11 CtrlNo:60
+Value:127 ChanNo:11 CtrlNo:60
+....
+Value:0 ChanNo:11 CtrlNo:62
+Value:0 ChanNo:11 CtrlNo:62
+Value:0 ChanNo:11 CtrlNo:62
+Value:0 ChanNo:11 CtrlNo:62
+....
+Value:77 ChanNo:11 CtrlNo:23
+Value:77 ChanNo:11 CtrlNo:23
+Value:76 ChanNo:11 CtrlNo:23
+Value:76 ChanNo:11 CtrlNo:23
+....</screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="subtracts"><citetitle>-</citetitle></link>,
diff --git a/opcodes/oscil.xml b/opcodes/oscil.xml
index 9f9983d..a21ea2d 100644
--- a/opcodes/oscil.xml
+++ b/opcodes/oscil.xml
@@ -21,14 +21,16 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>oscil</command> xamp, xcps, ifn [, iphs]</synopsis>
- <synopsis>kres <command>oscil</command> kamp, kcps, ifn [, iphs]</synopsis>
+ <synopsis>ares <command>oscil</command> xamp, xcps [, ifn, iphs]</synopsis>
+ <synopsis>kres <command>oscil</command> kamp, kcps [, ifn, iphs]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifn</emphasis> -- function table number. Requires a wrap-around guard point.
+ <emphasis>ifn</emphasis> -- (optional) function table
+ number. Requires a wrap-around guard point. The table number
+ defaults to -1 which indicates a sinewave.
</para>
<para>
diff --git a/opcodes/oscil1.xml b/opcodes/oscil1.xml
index 233acf7..852d4ca 100644
--- a/opcodes/oscil1.xml
+++ b/opcodes/oscil1.xml
@@ -22,7 +22,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>kres <command>oscil1</command> idel, kamp, idur, ifn</synopsis>
+ <synopsis>kres <command>oscil1</command> idel, kamp, idur [, ifn]</synopsis>
</refsect1>
<refsect1>
@@ -36,7 +36,10 @@
</para>
<para>
- <emphasis>ifn</emphasis> -- function table number. <emphasis>tablei, oscil1i</emphasis> require the extended guard point.
+ <emphasis>ifn</emphasis> -- (optional) function table
+ number. <emphasis>tablei, oscil1i</emphasis> require the
+ extended guard point. The number defaults to -1 which indicates
+ a sinewave.
</para>
</refsect1>
@@ -51,6 +54,31 @@
<emphasis>oscil1</emphasis> accesses values by sampling once through the function table at a rate determined by <emphasis>idur</emphasis>. For the first <emphasis>idel</emphasis> seconds, the point of scan will reside at the first location of the table; it will then begin moving through the table at a constant rate, reaching the end in another <emphasis>idur</emphasis> seconds; from that time on (i.e. after <emphasis>idel</emphasis> + <emphasis>idur</emphasis> seconds) it will remain pointing at the last location. Each value obtained from sampling is then multiplied by an amplitude factor <emphasis>kamp</emphasis> before being written into the result.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the oscil1 opcode. It uses the file <ulink url="examples/oscil1.csd"><citetitle>oscil1.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the oscil1 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/oscil1i.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ <para>
+ The example will produce the following output:
+ <screen>
+ i1 0.50000
+ i1 0.20000
+ i1 0.80000
+ i1 0.10000
+ i1 0.90000
+ i1 0.00000
+ i1 1.00000
+ i1 0.50000
+ </screen>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/oscil1i.xml b/opcodes/oscil1i.xml
index f35f6e1..6846668 100644
--- a/opcodes/oscil1i.xml
+++ b/opcodes/oscil1i.xml
@@ -22,7 +22,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>kres <command>oscil1i</command> idel, kamp, idur, ifn</synopsis>
+ <synopsis>kres <command>oscil1i</command> idel, kamp, idur [, ifn]</synopsis>
</refsect1>
<refsect1>
@@ -36,7 +36,9 @@
</para>
<para>
- <emphasis>ifn</emphasis> -- function table number. <emphasis>oscil1i</emphasis> requires the extended guard point.
+ <emphasis>ifn</emphasis> -- (optional) function table
+ number. <emphasis>oscil1i</emphasis> requires the extended guard
+ point. The default value is -1 indicating a sine wave.
</para>
</refsect1>
@@ -50,6 +52,18 @@
<emphasis>oscil1i</emphasis> is an interpolating unit in which the fractional part of index is used to interpolate between adjacent table entries. The smoothness gained by interpolation is at some small cost in execution time (see also <link linkend="oscili"><citetitle>oscili</citetitle></link>, etc.), but the interpolating and non-interpolating units are otherwise interchangeable.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the oscil1i opcode. It uses the file <ulink url="examples/oscil1i.csd"><citetitle>oscil1i.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the oscil1i opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/oscil1i.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/oscil3.xml b/opcodes/oscil3.xml
index c0ce0df..5ab9448 100644
--- a/opcodes/oscil3.xml
+++ b/opcodes/oscil3.xml
@@ -22,15 +22,17 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>oscil3</command> xamp, xcps, ifn [, iphs]</synopsis>
+ <synopsis>ares <command>oscil3</command> xamp, xcps [, ifn, iphs]</synopsis>
- <synopsis>kres <command>oscil3</command> kamp, kcps, ifn [, iphs]</synopsis>
+ <synopsis>kres <command>oscil3</command> kamp, kcps [, ifn, iphs]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifn</emphasis> -- function table number. Requires a wrap-around guard point.
+ <emphasis>ifn</emphasis> (optional) -- function table
+ number. Requires a wrap-around guard point. Defaults to -1
+ indicating a sinewave.
</para>
<para>
@@ -84,7 +86,6 @@
<refsect1>
<title>Credits</title>
<para>Author: &namejohn;</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.50</para>
</refsect1>
</refentry>
diff --git a/opcodes/oscili.xml b/opcodes/oscili.xml
index d441de8..7c86431 100644
--- a/opcodes/oscili.xml
+++ b/opcodes/oscili.xml
@@ -82,6 +82,5 @@
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/osciln.xml b/opcodes/osciln.xml
index 871dc87..a27aa50 100644
--- a/opcodes/osciln.xml
+++ b/opcodes/osciln.xml
@@ -48,6 +48,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the osciln opcode. It uses the file <ulink url="examples/osciln.csd"><citetitle>osciln.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the osciln opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/osciln.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="table"><citetitle>table</citetitle></link>,
diff --git a/opcodes/oscils.xml b/opcodes/oscils.xml
index 6037813..8ed86d9 100644
--- a/opcodes/oscils.xml
+++ b/opcodes/oscils.xml
@@ -90,8 +90,6 @@
<member>January 2002</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in version 4.18</para>
</refsect1>
</refentry>
diff --git a/opcodes/out.xml b/opcodes/out.xml
index 3102ffa..f7f2f27 100644
--- a/opcodes/out.xml
+++ b/opcodes/out.xml
@@ -11,26 +11,28 @@
<refnamediv>
<refname>out</refname>
<refpurpose>
- Writes mono audio data to an external device or stream.
- </refpurpose>
+ Writes audio data to an external device or stream.
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- Writes mono audio data to an external device or stream.
+ Writes audio data to an external device or stream, either from
+ audio variables or from an audio array.
</para>
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis><command>out</command> asig</synopsis>
+ <synopsis><command>out</command> asig1[, asig2,....]</synopsis>
+ <synopsis><command>out</command> aarray</synopsis>
</refsect1>
<refsect1>
<title>Performance</title>
<para>
- Sends mono audio samples to an accumulating output buffer
+ Sends audio samples to an accumulating output buffer
(created at the beginning of performance) which serves to
collect the output of all active instruments before the sound is
written to disk. There can be any number of these output units
@@ -46,6 +48,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the out opcode. It uses the file <ulink url="examples/out.csd"><citetitle>out.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the out opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/out.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="outh"><citetitle>outh</citetitle></link>,
@@ -69,8 +83,11 @@
<member>Author: &namebarry;, &namematt;/&namemike;</member>
<member>MIT, Mills College</member>
<member>1993-1997</member>
- </simplelist>
+ <member>Author: &namejohn;</member>
+ <member>NUIM, 2013</member>
+ </simplelist>
</para>
<para>Original in Csound v1</para>
+ <para>Aray version in 6.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/outc.xml b/opcodes/outc.xml
index c0cd7ae..6823648 100644
--- a/opcodes/outc.xml
+++ b/opcodes/outc.xml
@@ -33,6 +33,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outc opcode. It uses the file <ulink url="examples/outc.csd"><citetitle>outc.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outc opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outc.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="out32"><citetitle>out32</citetitle></link>,
diff --git a/opcodes/outch.xml b/opcodes/outch.xml
index 709abaf..ed58211 100644
--- a/opcodes/outch.xml
+++ b/opcodes/outch.xml
@@ -33,8 +33,36 @@
<note>
<para>
The highest number for <emphasis>kchanX</emphasis> available for use with <emphasis>outch</emphasis> depends on <link linkend="nchnls"><citetitle>nchnls</citetitle></link>. If <emphasis>kchanX</emphasis> is greater than <emphasis>nchnls</emphasis>, <emphasis>asigX</emphasis> will be silent. Note that <emphasis>outch</emphasis> will give a warning but not an error in this case.
- </para>
- </note>
+ </para>
+ </note>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outch opcode. It uses the file <ulink url="examples/outch.csd"><citetitle>outch.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outch opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outch.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <screen>
+signal is sent to channel 5
+signal is sent to channel 4
+signal is sent to channel 3
+signal is sent to channel 2
+signal is sent to channel 1
+signal is sent to channel 5
+........
+ </screen>
+ </para>
+ <para>
+ Here is another example of the outch opcode. It uses the file <ulink url="examples/outch.csd"><citetitle>outch-2.csd</citetitle></ulink>.
+ <example>
+ <title>Another example of the outch opcode.</title>
+ <xi:include href="examples-xml/outch-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
@@ -45,6 +73,7 @@
<link linkend="outx"><citetitle>outx</citetitle></link>,
<link linkend="outz"><citetitle>outz</citetitle></link>
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue16/audiorouting.html"><citetitle>http://www.csounds.com/journal/issue16/audiorouting.html</citetitle></ulink> , written by Andreas Russo </para>
</refsect1>
<refsect1>
@@ -57,7 +86,6 @@
<member>May 2000</member>
</simplelist>
</para>
-
<para>New in Csound Version 4.07</para>
</refsect1>
</refentry>
diff --git a/opcodes/outiat.xml b/opcodes/outiat.xml
index 1d81805..75f3e79 100644
--- a/opcodes/outiat.xml
+++ b/opcodes/outiat.xml
@@ -57,7 +57,19 @@
It can scale an i-value floating-point argument according to the <emphasis>imin</emphasis> and <emphasis>imax</emphasis> values. For example, set <emphasis>imin</emphasis> = 1.0 and <emphasis>imax</emphasis> = 2.0. When the <emphasis>ivalue</emphasis> argument receives a 2.0 value, the opcode will send a 127 value to the MIDI OUT device. When the <emphasis>ivalue</emphasis> argument receives a 1.0 value, it will send a 0 value. i-rate opcodes send their message once during instrument initialization.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outiat opcode. It uses the file <ulink url="examples/outiat.csd"><citetitle>outiat.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outiat opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outiat.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/outic.xml b/opcodes/outic.xml
index aa06651..80e2ce9 100644
--- a/opcodes/outic.xml
+++ b/opcodes/outic.xml
@@ -63,6 +63,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outic opcode. It uses the file <ulink url="examples/outic.csd"><citetitle>outic.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outic opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outic.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="outiat"><citetitle>outiat</citetitle></link>,
diff --git a/opcodes/outipb.xml b/opcodes/outipb.xml
index 0f83689..9085caf 100644
--- a/opcodes/outipb.xml
+++ b/opcodes/outipb.xml
@@ -61,6 +61,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outipb opcode. It uses the file <ulink url="examples/outipb.csd"><citetitle>outipb.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outipb opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outipb.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="outiat"><citetitle>outiat</citetitle></link>,
diff --git a/opcodes/outipc.xml b/opcodes/outipc.xml
index 6dadd14..85ff5e8 100644
--- a/opcodes/outipc.xml
+++ b/opcodes/outipc.xml
@@ -60,6 +60,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outipc opcode. It uses the file <ulink url="examples/outipc.csd"><citetitle>outipc.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outipc opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outipc.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="outiat"><citetitle>outiat</citetitle></link>,
diff --git a/opcodes/outkat.xml b/opcodes/outkat.xml
index 21fbf71..f9e05c2 100644
--- a/opcodes/outkat.xml
+++ b/opcodes/outkat.xml
@@ -54,7 +54,19 @@
It can scale the k-value floating-point argument according to the <emphasis>kmin</emphasis> and <emphasis>kmax</emphasis> values. For example: set <emphasis>kmin</emphasis> = 1.0 and <emphasis>kmax</emphasis> = 2.0. When the <emphasis>kvalue</emphasis> argument receives a 2.0 value, the opcode will send a 127 value to the MIDI OUT device. When the <emphasis>kvalue</emphasis> argument receives a 1.0 value, it will send a 0 value. k-rate opcodes send a message each time the MIDI converted value of argument <emphasis>kvalue</emphasis> changes.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outkat opcode. It uses the file <ulink url="examples/outkat.csd"><citetitle>outkat.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outkat opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outkat.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/outkc.xml b/opcodes/outkc.xml
index 56725da..fbc9c70 100644
--- a/opcodes/outkc.xml
+++ b/opcodes/outkc.xml
@@ -61,6 +61,18 @@ When the <emphasis>kvalue</emphasis> argument receives a 2.0 value, the opcode w
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outkc opcode. It uses the file <ulink url="examples/outkc.csd"><citetitle>outkc.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outkc opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outkc.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="outiat"><citetitle>outiat</citetitle></link>,
diff --git a/opcodes/outkpb.xml b/opcodes/outkpb.xml
index 19da1d4..e2af073 100644
--- a/opcodes/outkpb.xml
+++ b/opcodes/outkpb.xml
@@ -57,6 +57,18 @@ When the <emphasis>kvalue</emphasis> argument receives a 2.0 value, the opcode w
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outkpb opcode. It uses the file <ulink url="examples/outkpb.csd"><citetitle>outkpb.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outkpb opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outkpb.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="outiat"><citetitle>outiat</citetitle></link>,
diff --git a/opcodes/outleta.xml b/opcodes/outleta.xml
index 1060798..6a5b712 100644
--- a/opcodes/outleta.xml
+++ b/opcodes/outleta.xml
@@ -48,17 +48,32 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outleta opcode. It uses the file <ulink url="examples/outleta.csd"><citetitle>outleta.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outleta opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outleta.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="outletk"><citetitle>outletk</citetitle></link>
+ <link linkend="outletkid"><citetitle>outletkid</citetitle></link>
<link linkend="outletf"><citetitle>outletf</citetitle></link>
<link linkend="inleta"><citetitle>inleta</citetitle></link>
<link linkend="inletk"><citetitle>inletk</citetitle></link>
+ <link linkend="inletkid"><citetitle>inletkid</citetitle></link>
<link linkend="inletf"><citetitle>inletf</citetitle></link>
<link linkend="connect"><citetitle>connect</citetitle></link>
<link linkend="alwayson"><citetitle>alwayson</citetitle></link>
<link linkend="ftgenonce"><citetitle>ftgenonce</citetitle></link>
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue13/signalFlowGraphOpcodes.html"><citetitle>http://www.csounds.com/journal/issue13/signalFlowGraphOpcodes.html</citetitle></ulink> , written by Michael Gogins </para>
</refsect1>
<refsect1>
diff --git a/opcodes/outletf.xml b/opcodes/outletf.xml
index 8760eb4..334f23a 100644
--- a/opcodes/outletf.xml
+++ b/opcodes/outletf.xml
@@ -52,8 +52,10 @@
<para>
<link linkend="outleta"><citetitle>outleta</citetitle></link>
<link linkend="outletk"><citetitle>outletk</citetitle></link>
+ <link linkend="outletkid"><citetitle>outletkid</citetitle></link>
<link linkend="inleta"><citetitle>inleta</citetitle></link>
<link linkend="inletk"><citetitle>inletk</citetitle></link>
+ <link linkend="inletkid"><citetitle>inletkid</citetitle></link>
<link linkend="inletf"><citetitle>inletf</citetitle></link>
<link linkend="connect"><citetitle>connect</citetitle></link>
<link linkend="alwayson"><citetitle>alwayson</citetitle></link>
diff --git a/opcodes/outletk.xml b/opcodes/outletk.xml
index 91d2520..bb387f0 100644
--- a/opcodes/outletk.xml
+++ b/opcodes/outletk.xml
@@ -48,17 +48,32 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outletk opcode. It uses the file <ulink url="examples/outletk.csd"><citetitle>outletk.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outletk opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outletk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="outleta"><citetitle>outleta</citetitle></link>
<link linkend="outletf"><citetitle>outletf</citetitle></link>
+ <link linkend="outletkid"><citetitle>outletkid</citetitle></link>
<link linkend="inleta"><citetitle>inleta</citetitle></link>
<link linkend="inletk"><citetitle>inletk</citetitle></link>
+ <link linkend="inletkid"><citetitle>inletkid</citetitle></link>
<link linkend="inletf"><citetitle>inletf</citetitle></link>
<link linkend="connect"><citetitle>connect</citetitle></link>
<link linkend="alwayson"><citetitle>alwayson</citetitle></link>
<link linkend="ftgenonce"><citetitle>ftgenonce</citetitle></link>
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue13/signalFlowGraphOpcodes.html"><citetitle>http://www.csounds.com/journal/issue13/signalFlowGraphOpcodes.html</citetitle></ulink> , written by Michael Gogins </para>
</refsect1>
<refsect1>
diff --git a/opcodes/outletkid.xml b/opcodes/outletkid.xml
new file mode 100644
index 0000000..f81429e
--- /dev/null
+++ b/opcodes/outletkid.xml
@@ -0,0 +1,81 @@
+<refentry id="outletkid">
+<indexterm id="Indexoutletkid"><primary>outletkid</primary></indexterm>
+ <refentryinfo><title>Signal Flow Graph Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>outletkid</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>outletkid</refname>
+ <refpurpose>
+ Sends a krate signal out from an instrument to a named port.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Sends a krate signal out from an instrument to a named port.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>outletkid </command>Sname, SinstanceID, ksignal</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>Sname</emphasis> -- String name of the outlet port.
+ The name of the outlet is implicitly qualified by the instrument name
+ or number, so it is valid to use the same outlet name in more than one
+ instrument (but not to use the same outlet name twice in one instrument).
+ </para>
+ <para>
+ <emphasis>SinstanceID</emphasis> -- String name of the outlet port's
+ instance ID. This enables the inlet to discriminate between different
+ instances of the outlet, e,g. one instance of the outlet might be created by a note
+ specifying one instance ID, and another instance might be created by a note
+ specifying another ID. This might be used, e.g., to situate difference instances
+ of an instrument at different points in an Ambisonic space in a spatializing
+ effects processor.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>ksignal</emphasis> -- krate output signal
+ </para>
+
+ <para>
+ During performance, the krate output signal is sent to each instance of an instrument
+ containing an inlet port to which this outlet has been connected using the
+ <link linkend="connect">connect</link> opcode.
+ The signals of all the outlets connected to an inlet, but only those
+ that have a matching instance ID, are summed in the inlet.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="outleta"><citetitle>outleta</citetitle></link>
+ <link linkend="outletf"><citetitle>outletf</citetitle></link>
+ <link linkend="inleta"><citetitle>inleta</citetitle></link>
+ <link linkend="inletk"><citetitle>inletk</citetitle></link>
+ <link linkend="inletkid"><citetitle>inletkid</citetitle></link>
+ <link linkend="inletf"><citetitle>inletf</citetitle></link>
+ <link linkend="connect"><citetitle>connect</citetitle></link>
+ <link linkend="alwayson"><citetitle>alwayson</citetitle></link>
+ <link linkend="ftgenonce"><citetitle>ftgenonce</citetitle></link>
+ </para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue13/signalFlowGraphOpcodes.html"><citetitle>http://www.csounds.com/journal/issue13/signalFlowGraphOpcodes.html</citetitle></ulink> , written by Michael Gogins </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>By: &namemichael; 2009</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/outq.xml b/opcodes/outq.xml
index 56045bc..a932139 100644
--- a/opcodes/outq.xml
+++ b/opcodes/outq.xml
@@ -39,6 +39,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outq opcode. It uses the file <ulink url="examples/outq.csd"><citetitle>outq.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outq opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outq.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="out"><citetitle>out</citetitle></link>,
diff --git a/opcodes/outq1.xml b/opcodes/outq1.xml
index b9fc7d1..3235a57 100644
--- a/opcodes/outq1.xml
+++ b/opcodes/outq1.xml
@@ -39,6 +39,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outq1 opcode. It uses the file <ulink url="examples/outq1.csd"><citetitle>outq1.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outq1 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outq1.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="out"><citetitle>out</citetitle></link>,
diff --git a/opcodes/outq2.xml b/opcodes/outq2.xml
index 3189633..c2b2a0a 100644
--- a/opcodes/outq2.xml
+++ b/opcodes/outq2.xml
@@ -39,6 +39,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outq2 opcode. It uses the file <ulink url="examples/outq2.csd"><citetitle>outq2.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outq2 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outq2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="out"><citetitle>out</citetitle></link>,
diff --git a/opcodes/outq3.xml b/opcodes/outq3.xml
index 3db2080..db3fcf9 100644
--- a/opcodes/outq3.xml
+++ b/opcodes/outq3.xml
@@ -39,6 +39,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outq3 opcode. It uses the file <ulink url="examples/outq3.csd"><citetitle>outq3.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outq3 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outq3.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="out"><citetitle>out</citetitle></link>,
diff --git a/opcodes/outq4.xml b/opcodes/outq4.xml
index f729da1..ac9f044 100644
--- a/opcodes/outq4.xml
+++ b/opcodes/outq4.xml
@@ -39,6 +39,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outq4 opcode. It uses the file <ulink url="examples/outq4.csd"><citetitle>outq4.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outq4 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outq4.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="out"><citetitle>out</citetitle></link>,
diff --git a/opcodes/outrg.xml b/opcodes/outrg.xml
index 901b60b..53029de 100644
--- a/opcodes/outrg.xml
+++ b/opcodes/outrg.xml
@@ -45,27 +45,35 @@
<emphasis>outrg</emphasis> allows to output a range of adjacent channels to the output device. <emphasis>kstart</emphasis> indicates the first channel to be accessed (channel 1 is the first channel). The user must be sure that the number obtained by summing kstart plus the number of accessed channels -1 is &lt;= <link linkend="nchnls"><citetitle>nchnls</citetitle></link>.
</para>
</refsect1>
-<!--
+
<refsect1>
<title>Examples</title>
<para>
Here is an example of the outrg opcode. It uses the file <ulink url="examples/outrg.csd"><citetitle>outrg.csd</citetitle></ulink>.
-
<example>
<title>Example of the outrg opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/outrg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
+ Its output should include lines like these:
+ <screen>
+speaker 1 position 0.000200
+speaker 1 position 0.000400
+speaker 1 position 0.000600
+.....
+speaker 1 position 1.000000
+speaker 2 position 0.000000
+speaker 2 position 0.000200
+....
+speaker 2 position 0.999800
+speaker 3 position 0.000000
+speaker 3 position 0.000200
+....
+speaker 3 position 0.999600
+speaker 4 position 0.000000
+.....</screen>
</para>
- </refsect1>-->
-<!-- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="lposcil"><citetitle>lposcil</citetitle></link>,
- <link linkend="lposcila"><citetitle>lposcila</citetitle></link>,
- <link linkend="outrg2"><citetitle>outrg2</citetitle></link>
- </para>
- </refsect1>-->
+ </refsect1>
<refsect1>
<title>Credits</title>
diff --git a/opcodes/outs.xml b/opcodes/outs.xml
index f8e827b..dfa76b6 100644
--- a/opcodes/outs.xml
+++ b/opcodes/outs.xml
@@ -39,6 +39,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outs opcode. It uses the file <ulink url="examples/outs.csd"><citetitle>outs.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outs opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outs.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="out"><citetitle>out</citetitle></link>,
diff --git a/opcodes/outs1.xml b/opcodes/outs1.xml
index 9134ea3..ad7e7c0 100644
--- a/opcodes/outs1.xml
+++ b/opcodes/outs1.xml
@@ -39,6 +39,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outs1 opcode. It uses the file <ulink url="examples/outs1.csd"><citetitle>outs1.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outs1 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outs1.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="out"><citetitle>out</citetitle></link>,
diff --git a/opcodes/outs2.xml b/opcodes/outs2.xml
index 8e3b5c3..6f6eda6 100644
--- a/opcodes/outs2.xml
+++ b/opcodes/outs2.xml
@@ -39,6 +39,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outs2 opcode. It uses the file <ulink url="examples/outs2.csd"><citetitle>outs2.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outs2 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outs2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="out"><citetitle>out</citetitle></link>,
diff --git a/opcodes/outvalue.xml b/opcodes/outvalue.xml
index e04d2f5..317a923 100644
--- a/opcodes/outvalue.xml
+++ b/opcodes/outvalue.xml
@@ -33,17 +33,25 @@
<para>
<emphasis>&quot;channel name&quot;</emphasis> -- An integer or string (in double-quotes) representing channel.
</para>
-
<para>
<emphasis>kvalue</emphasis> -- The k-rate value that is sent to the channel.
</para>
-
-
-
<para>
<emphasis>string</emphasis> -- The string or string variable that is sent to the channel.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the outvalue opcode. It uses the file <ulink url="examples/outvalue.csd"><citetitle>outvalue.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the outvalue opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/outvalue.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/pan.xml b/opcodes/pan.xml
index 771e468..99f9a28 100644
--- a/opcodes/pan.xml
+++ b/opcodes/pan.xml
@@ -54,22 +54,17 @@
<emphasis>kx, ky</emphasis> values are not restricted to 0 - 1. A circular motion passing through all four speakers (inscribed) would have a diameter of root 2, and might be defined by a circle of radius R = root 1/2 with center at (.5,.5). <emphasis>kx, ky</emphasis> would then come from Rcos(angle), Rsin(angle), with an implicit origin at (.5,.5) (i.e. <emphasis>ioffset</emphasis> = 1). Unscaled raw values operate similarly. Sounds can thus be located anywhere in the polar or Cartesian plane; points lying outside the speaker square are projected correctly onto the square's perimeter as for a listener at the center.
</para>
</refsect1>
-
+
<refsect1>
- <title>Examples</title>
+ <title>Example</title>
<para>
- <informalexample>
- <programlisting>
-<emphasis role="oblock">instr</emphasis> 1
- k1 <emphasis role="opc">phasor</emphasis> 1<emphasis role="op">/</emphasis>p3 <emphasis role="comment">; fraction of circle</emphasis>
- k2 <emphasis role="opc">tablei</emphasis> k1, 1, 1 <emphasis role="comment">; sin of angle (sinusoid in f1)</emphasis>
- k3 <emphasis role="opc">tablei</emphasis> k1, 1, 1, .25, 1 <emphasis role="comment">; cos of angle (sin offset 1/4 circle)</emphasis>
- a1 <emphasis role="opc">oscili</emphasis> 10000,440, 1 <emphasis role="comment">; audio signal..</emphasis>
- a1,a2,a3,a4 <emphasis role="opc">pan</emphasis> a1, k2<emphasis role="op">/</emphasis>2, k3<emphasis role="op">/</emphasis>2, 2, 1, 1 <emphasis role="comment">; sent in a circle (f2=1st quad sin)</emphasis>
-
- <emphasis role="opc">outq</emphasis> a1, a2, a3, a4
-<emphasis role="oblock">endin</emphasis></programlisting>
- </informalexample>
+ Here is an example of the pan opcodes. It uses the file <ulink url="examples/pan.csd"><citetitle>pan.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pan opcodes.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pan.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
+
</refentry>
diff --git a/opcodes/pan2.xml b/opcodes/pan2.xml
index 7195beb..6fe53fa 100644
--- a/opcodes/pan2.xml
+++ b/opcodes/pan2.xml
@@ -50,22 +50,19 @@
</refsect1>
+
<refsect1>
- <title>Examples</title>
+ <title>Example</title>
<para>
- <informalexample>
- <programlisting>
-<emphasis role="oblock">instr</emphasis> 1
- kline <emphasis role="opc">line</emphasis> 0, p3, 1 <emphasis role="comment">; straight line</emphasis>
- ain <emphasis role="opc">oscili</emphasis> 10000,440, 1 <emphasis role="comment">; audio signal..</emphasis>
- a1,a2 <emphasis role="opc">pan2</emphasis> ain, kline <emphasis role="comment">; sent across image</emphasis>
-
- <emphasis role="opc">outs</emphasis> a1, a2
-<emphasis role="oblock">endin</emphasis>
- </programlisting>
- </informalexample>
+ Here is an example of the pan2 opcodes. It uses the file <ulink url="examples/pan2.csd"><citetitle>pan2.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pan2 opcodes.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pan2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/partials.xml b/opcodes/partials.xml
index ac5e35f..31fe69c 100644
--- a/opcodes/partials.xml
+++ b/opcodes/partials.xml
@@ -75,28 +75,16 @@
</refsect1>
<refsect1>
- <title>Examples</title>
+ <title>Example</title>
<para>
+ Here is an example of the partials opcodes. It uses the file <ulink url="examples/partials.csd"><citetitle>partials.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
- aout resyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th)
-out aout
- </programlisting>
+ <title>Example of the partials opcodes.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/partials.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
- </para>
-
- <para>
-The example above shows partial tracking of an ifd-analysis signal and
-cubic-phase additive resynthesis with pitch shifting.
-
- </para>
-
+ </para>
+ <para>The example above shows partial tracking of an ifd-analysis signal and cubic-phase additive resynthesis with pitch shifting.</para>
</refsect1>
<refsect1>
diff --git a/opcodes/partikkel.xml b/opcodes/partikkel.xml
index 2b73227..c601787 100644
--- a/opcodes/partikkel.xml
+++ b/opcodes/partikkel.xml
@@ -337,21 +337,18 @@
<title>Examples</title>
<para>
- Here is an example of the partikkel opcode. It uses the file <ulink url="examples/PartikkelExample1.csd"><citetitle>PartikkelExample1.csd</citetitle></ulink>.
-
+ Here is an example of the partikkel opcode. It uses the file <ulink url="examples/partikkel.csd"><citetitle>partikkel.csd</citetitle></ulink>.
<example>
<title>Example of the partikkel opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/PartikkelExample1.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <xi:include href="examples-xml/partikkel.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
-
<para>
- Here is another example of the partikkel opcode. It uses the file <ulink url="examples/partikkel_softsync.csd"><citetitle>partikkel_softsync.csd</citetitle></ulink>.
-
+ Here is another example of the partikkel opcode. It uses the file <ulink url="examples/partikkel-2.csd"><citetitle>partikkel-2.csd</citetitle></ulink>.
<example>
- <title>Example with soft sync of two partikkel generators.</title>
- <xi:include href="examples-xml/partikkel_softsync.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <title>Example 2 of the partikkel opcode.</title>
+ <xi:include href="examples-xml/partikkel-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
diff --git a/opcodes/partikkelsync.xml b/opcodes/partikkelsync.xml
index 1efa30d..947294c 100644
--- a/opcodes/partikkelsync.xml
+++ b/opcodes/partikkelsync.xml
@@ -51,21 +51,19 @@
</para>
</refsect1>
-
-<!-- <refsect1>
- <title>Examples</title>
-
- <para>
- Here is an example of the partikkel opcode. It uses the file <ulink url="examples/partikkel.csd"><citetitle>partikkel.csd</citetitle></ulink>.
+ <refsect1>
+ <title>Example</title>
+ <para>
+ Here is an example of the partikkelsync opcodes. It uses the file <ulink url="examples/partikkelsync.csd"><citetitle>partikkelsync.csd</citetitle></ulink>.
<example>
- <title>Example of the partikkel opcode.</title>
+ <title>Example with soft sync of two partikkel generators.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/partikkel.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <xi:include href="examples-xml/partikkelsync.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
- </refsect1>-->
-
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para><link linkend="partikkel"><citetitle>partikkel</citetitle></link>
diff --git a/opcodes/pcauchy.xml b/opcodes/pcauchy.xml
index ca18724..3120343 100644
--- a/opcodes/pcauchy.xml
+++ b/opcodes/pcauchy.xml
@@ -57,19 +57,37 @@
<title>Examples</title>
<para>
Here is an example of the pcauchy opcode. It uses the file <ulink url="examples/pcauchy.csd"><citetitle>pcauchy.csd</citetitle></ulink>.
-
<example>
<title>Example of the pcauchy opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/pcauchy.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
Its output should include a line like this:
<screen>
-instr 1: i1 = 0.012
+ i 1 time 0.00033: 10.48851
+ i 1 time 0.20033: 0.29508
+ i 1 time 0.40033: 1.75214
+ i 1 time 0.60033: 22.88281
+ i 1 time 0.80033: 16.06435
+ i 1 time 1.00000: 0.43110
+ i 1 time 1.20033: 16.51694
+ i 1 time 1.40033: 2.98797
+ i 1 time 1.60033: 1.32767
+ i 1 time 1.80000: 17.94039
+ i 1 time 2.00000: 4.85994
+ Seeding from current time 1526147515
+ i 2 time 3.00033: 0.89797
+ i 2 time 3.20033: 9.19447
+ i 2 time 3.40033: 0.73053
+ i 2 time 3.60000: 7.43371
+ i 2 time 3.80033: 5.87640
+ i 2 time 4.00000: 0.80456
+ i 2 time 4.20000: 4.50637
+ i 2 time 4.40033: 2.08145
+ i 2 time 4.60033: 13.47125
+ i 2 time 4.80033: 3.16399
+ i 2 time 5.00000: 11.05428
</screen>
</para>
</refsect1>
@@ -100,6 +118,5 @@ instr 1: i1 = 0.012
<member>1995</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/pchbend.xml b/opcodes/pchbend.xml
index 720b426..2a6827c 100644
--- a/opcodes/pchbend.xml
+++ b/opcodes/pchbend.xml
@@ -48,12 +48,8 @@
<title>Examples</title>
<para>
Here is an example of the pchbend opcode. It uses the file <ulink url="examples/pchbend.csd"><citetitle>pchbend.csd</citetitle></ulink>.
-
<example>
<title>Example of the pchbend opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/pchbend.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
@@ -86,6 +82,5 @@
<member>May 1997</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/pconvolve.xml b/opcodes/pconvolve.xml
index 63c0a0a..4c895c4 100644
--- a/opcodes/pconvolve.xml
+++ b/opcodes/pconvolve.xml
@@ -92,81 +92,20 @@
<note>
<title>NOTE</title>
<para>
- You will need to download the impulse response files from noisevault.com
- or replace the filenames with your own impulse files
+ You can download impulse response files from noisevault.com
+ or replace the filenames with your own impulse files.
</para>
</note>
-
- <informalexample>
- <programlisting>
- <emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
- <emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 100
- <emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
-
-
- <emphasis role ="oblock">instr 1</emphasis>
-kmix <emphasis role="op">=</emphasis> .5 <emphasis role ="comment">; Wet/dry mix. Vary as desired.</emphasis>
-kvol <emphasis role="op">=</emphasis> .5<emphasis role="op">*</emphasis>kmix <emphasis role ="comment">; Overall volume level of reverb. May need to adjust</emphasis>
- <emphasis role ="comment">; when wet/dry mix is changed, to avoid clipping.</emphasis>
-
-<emphasis role ="comment">; do some safety checking to make sure we the parameters a good</emphasis>
-kmix <emphasis role="op">=</emphasis> (kmix <emphasis role="op">&lt;</emphasis> 0 <emphasis role="op">||</emphasis> kmix <emphasis role="op">&gt;</emphasis> 1 <emphasis role="op">?</emphasis> .5 <emphasis role="op">:</emphasis> kmix)
-kvol <emphasis role="op">=</emphasis> (kvol <emphasis role="op">&lt;</emphasis> 0 <emphasis role="op">?</emphasis> 0 <emphasis role="op">:</emphasis> .5<emphasis role="op">*</emphasis>kvol<emphasis role="op">*</emphasis>kmix)
-
-<emphasis role ="comment">; size of each convolution partion -- for best performance, this parameter needs to be tweaked</emphasis>
-ipartitionsize <emphasis role="op">=</emphasis> p4
-
-<emphasis role ="comment">; calculate latency of pconvolve opcode</emphasis>
-idel <emphasis role="op">=</emphasis> (ksmps <emphasis role="op">&lt;</emphasis> ipartitionsize <emphasis role="op">?</emphasis> ipartitionsize <emphasis role="op">+</emphasis> ksmps <emphasis role="op">:</emphasis> ipartitionsize)<emphasis role="op">/</emphasis><emphasis role="ohdr">sr</emphasis>
-<emphasis role="opc">prints</emphasis> &quot;Convolving with a latency of %f seconds%n&quot;, idel
-
-<emphasis role ="comment">; actual processing</emphasis>
-al, ar <emphasis role="opc">ins</emphasis>
-
-awetl, awetr <emphasis role="opc">pconvolve</emphasis> kvol<emphasis role="op">*</emphasis>(al<emphasis role="op">+</emphasis>ar), &quot;Mercedes-van.wav&quot;, ipartitionsize
-
-<emphasis role ="comment">; Delay dry signal, to align it with the convoled sig</emphasis>
-adryl <emphasis role="opc">delay</emphasis> (1<emphasis role="op">-</emphasis>kmix)<emphasis role="op">*</emphasis>al, idel
-adryr <emphasis role="opc">delay</emphasis> (1<emphasis role="op">-</emphasis>kmix)<emphasis role="op">*</emphasis>ar, idel
-
- <emphasis role="opc">outs</emphasis> adryl<emphasis role="op">+</emphasis>awetl, adryr<emphasis role="op">+</emphasis>awetr
-
- <emphasis role ="oblock">endin</emphasis>
-
-
-
-
- <emphasis role ="oblock">instr 2</emphasis>
-imix <emphasis role="op">=</emphasis> 0.5 <emphasis role ="comment">; Wet/dry mix. Vary as desired.</emphasis>
-ivol <emphasis role="op">=</emphasis> .5<emphasis role="op">*</emphasis>imix <emphasis role ="comment">; Overall volume level of reverb. May need to adjust</emphasis>
- <emphasis role ="comment">; when wet/dry mix is changed, to avoid clipping.</emphasis>
-
-ipartitionsize <emphasis role="op">=</emphasis> 32768 <emphasis role ="comment">; size of each convolution partion</emphasis>
-idel <emphasis role="op">=</emphasis> (ksmps <emphasis role="op">&lt;</emphasis> ipartitionsize <emphasis role="op">?</emphasis> ipartitionsize <emphasis role="op">+</emphasis> ksmps <emphasis role="op">:</emphasis> ipartitionsize)<emphasis role="op">/</emphasis><emphasis role="ohdr">sr</emphasis> <emphasis role ="comment">; latency of pconvolve opcode</emphasis>
-
-kcount <emphasis role="opc">init</emphasis> idel<emphasis role="op">*</emphasis><emphasis role="ohdr">kr</emphasis>
-
-<emphasis role ="comment">; since we are using a soundin [instead of ins] we can</emphasis>
-<emphasis role ="comment">; do a kind of "look ahead" by looping during one k-pass</emphasis>
-<emphasis role ="comment">; without output, creating zero-latency</emphasis>
-
-<emphasis role="olabel">loop</emphasis>:
- al, ar <emphasis role="opc">soundin</emphasis> &quot;John_Cage_1.aif&quot;, 0
-
- awetl, awetr <emphasis role="opc">pconvolve</emphasis> ivol<emphasis role="op">*</emphasis>(al<emphasis role="op">+</emphasis>ar),&quot;FactoryHall.aif&quot;, ipartitionsize
-
- adryl <emphasis role="opc">delay</emphasis> (1<emphasis role="op">-</emphasis>imix)<emphasis role="op">*</emphasis>al,idel <emphasis role="comment">; Delay dry signal, to align it with</emphasis>
- adryr <emphasis role="opc">delay</emphasis> (1<emphasis role="op">-</emphasis>imix)<emphasis role="op">*</emphasis>ar,idel
-
- kcount <emphasis role="op">=</emphasis> kcount <emphasis role="op">-</emphasis> 1
- <emphasis role="opc">if</emphasis> kcount <emphasis role="op">&gt;</emphasis> 0 <emphasis role="opc">kgoto</emphasis> <emphasis role="olabel">loop</emphasis>
-
- <emphasis role="opc">outs</emphasis> awetl<emphasis role="op">+</emphasis>adryl, awetr<emphasis role="op">+</emphasis>adryr
-
- <emphasis role ="oblock">endin</emphasis></programlisting>
- </informalexample>
-
+ <para>
+ Here is an example of the pconvolve opcode. It uses the file <ulink url="examples/pconvolve.csd"><citetitle>pconvolve.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pconvolve opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pconvolve.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
+
<refsect1>
<title>See also</title>
<para>
diff --git a/opcodes/pcount.xml b/opcodes/pcount.xml
index d9387f0..cfc76ec 100644
--- a/opcodes/pcount.xml
+++ b/opcodes/pcount.xml
@@ -57,18 +57,16 @@
<para>
The example will produce the following output:
<screen>
-SECTION 1:
-new alloc for instr 1:
-WARNING: instr 1 uses 3 p-fields but is given 5
-instr 1: inum = 5.000
-B 0.000 .. 1.000 T 1.000 TT 1.000 M: 0.0
-new alloc for instr 1:
-WARNING: instr 1 uses 3 p-fields but is given 5
-instr 1: inum = 5.000
-B 1.000 .. 2.000 T 2.000 TT 2.000 M: 0.0
-new alloc for instr 1:
-WARNING: instr 1 uses 3 p-fields but is given 7
-instr 1: inum = 7.000
+WARNING: instr 1 uses 3 p-fields but is given 8
+B 0.000 .. 2.000 T 2.000 TT 2.000 M: 0.49966 0.49966
+WARNING: instr 1 uses 3 p-fields but is given 10
+B 2.000 .. 4.000 T 4.000 TT 4.000 M: 0.50000 0.50000
+WARNING: instr 1 uses 3 p-fields but is given 10
+B 4.000 .. 6.000 T 6.000 TT 6.000 M: 0.49943 0.49943
+WARNING: instr 1 uses 3 p-fields but is given 6
+B 6.000 .. 8.000 T 8.000 TT 8.000 M: 0.00000 0.00000
+WARNING: instr 1 uses 3 p-fields but is given 20
+B 8.000 .. 18.000 T 18.000 TT 18.000 M: 0.49994 0.49994
</screen>
The warnings occur because pfields are not used explicitly by the instrument.
</para>
diff --git a/opcodes/pdhalf.xml b/opcodes/pdhalf.xml
index 2174a47..22c2a13 100644
--- a/opcodes/pdhalf.xml
+++ b/opcodes/pdhalf.xml
@@ -86,23 +86,8 @@
aout <emphasis role="opc">tablei</emphasis> apd, 1, 1</programlisting>
</informalexample>
</para>
-
- <para>
- More information about Phase distortion synthesis can be found on Wikipedia at
- <ulink url="http://en.wikipedia.org/wiki/Phase_distortion_synthesis">
- <citetitle>http://en.wikipedia.org/wiki/Phase_distortion_synthesis</citetitle>
- </ulink>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="pdhalfy"><citetitle>pdhalfy</citetitle></link>,
- <link linkend="pdclip"><citetitle>pdclip</citetitle></link>
- </para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
@@ -114,6 +99,16 @@
</example>
</para>
</refsect1>
+
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="pdhalfy"><citetitle>pdhalfy</citetitle></link>,
+ <link linkend="pdclip"><citetitle>pdclip</citetitle></link>
+ </para>
+ <para> More information about phase distortion on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Phase_distortion_synthesis"><citetitle>http://en.wikipedia.org/wiki/Phase_distortion_synthesis</citetitle></ulink></para>
+ </refsect1>
<refsect1>
<title>Credits</title>
diff --git a/opcodes/pdhalfy.xml b/opcodes/pdhalfy.xml
index 99c8553..a3965bb 100644
--- a/opcodes/pdhalfy.xml
+++ b/opcodes/pdhalfy.xml
@@ -89,23 +89,8 @@
aout <emphasis role="opc">tablei</emphasis> apd, 1, 1</programlisting>
</informalexample>
</para>
-
- <para>
- More information about Phase distortion synthesis can be found on Wikipedia at
- <ulink url="http://en.wikipedia.org/wiki/Phase_distortion_synthesis">
- <citetitle>http://en.wikipedia.org/wiki/Phase_distortion_synthesis</citetitle>
- </ulink>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="pdhalf"><citetitle>pdhalf</citetitle></link>,
- <link linkend="pdclip"><citetitle>pdclip</citetitle></link>
- </para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
@@ -117,6 +102,15 @@
</example>
</para>
</refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="pdhalf"><citetitle>pdhalf</citetitle></link>,
+ <link linkend="pdclip"><citetitle>pdclip</citetitle></link>
+ </para>
+ <para> More information about phase distortion on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Phase_distortion_synthesis"><citetitle>http://en.wikipedia.org/wiki/Phase_distortion_synthesis</citetitle></ulink></para>
+ </refsect1>
<refsect1>
<title>Credits</title>
diff --git a/opcodes/phaser1.xml b/opcodes/phaser1.xml
index 5944ee4..bdf415e 100644
--- a/opcodes/phaser1.xml
+++ b/opcodes/phaser1.xml
@@ -132,6 +132,7 @@ y(n) = C * x(n) + x(n-1) - C * y(n-1)
<title>See Also</title>
<para>
<link linkend="phaser2"><citetitle>phaser2</citetitle></link>
+ <para> Other information about phasers on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Phaser_(effect)"><citetitle>http://en.wikipedia.org/wiki/Phaser_(effect)</citetitle></ulink></para>
</para>
</refsect1>
diff --git a/opcodes/phaser2.xml b/opcodes/phaser2.xml
index 029da7d..5a43270 100644
--- a/opcodes/phaser2.xml
+++ b/opcodes/phaser2.xml
@@ -26,13 +26,6 @@
</refsect1>
<refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>iskip</emphasis> (optional, default=0) -- used to control initial disposition of internal data space. Since filtering incorporates a feedback loop of previous output, the initial status of the storage space used is significant. A zero value will clear the space; a non-zero value will allow previous information to remain. The default value is 0.
- </para>
- </refsect1>
-
- <refsect1>
<title>Performance</title>
<para>
<emphasis>kfreq</emphasis> -- frequency (in Hz) of the filter(s). This is the center frequency of the notch of the first allpass filter in the series. This frequency is used as the base frequency from which the frequencies of the other notches are derived.
@@ -153,6 +146,7 @@ aout <emphasis>=</emphasis> ain + aphs
<title>See Also</title>
<para>
<link linkend="phaser1"><citetitle>phaser1</citetitle></link>
+ <para> Other information about phasers on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Phaser_(effect)"><citetitle>http://en.wikipedia.org/wiki/Phaser_(effect)</citetitle></ulink></para>
</para>
</refsect1>
diff --git a/opcodes/phasor.xml b/opcodes/phasor.xml
index 57ffeff..8005a0c 100644
--- a/opcodes/phasor.xml
+++ b/opcodes/phasor.xml
@@ -77,8 +77,4 @@
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
</refentry>
diff --git a/opcodes/pindex.xml b/opcodes/pindex.xml
index 3af9be0..276b6b5 100644
--- a/opcodes/pindex.xml
+++ b/opcodes/pindex.xml
@@ -41,7 +41,7 @@
<title>Performance</title>
</refsect1>-->
- <refsect1>
+ <refsect1>
<title>Examples</title>
<para>
Here is an example of the pindex opcode. It uses the file <ulink url="examples/pindex.csd"><citetitle>pindex.csd</citetitle></ulink>.
@@ -86,6 +86,29 @@ instr 1: inum = 7.000
</screen>
The warnings can be ignored, because the pfields are used indirectly through pindex instead of explicitly through p4, p5, etc.
</para>
+ <para>
+ Here is another example of the pindex opcode. It uses the file <ulink url="examples/pindex-2.csd"><citetitle>pindex-2.csd</citetitle></ulink>.
+
+ <example>
+ <title>Second example of the pindex opcode.</title>
+ <xi:include href="examples-xml/pindex-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ <para>
+ The example will produce the following output:
+ <screen>
+WARNING: instr 1 uses 3 p-fields but is given 8
+B 0.000 .. 2.000 T 2.000 TT 2.000 M: 0.49966 0.49966
+WARNING: instr 1 uses 3 p-fields but is given 10
+B 2.000 .. 4.000 T 4.000 TT 4.000 M: 0.50000 0.50000
+WARNING: instr 1 uses 3 p-fields but is given 10
+B 4.000 .. 6.000 T 6.000 TT 6.000 M: 0.49943 0.49943
+WARNING: instr 1 uses 3 p-fields but is given 6
+B 6.000 .. 8.000 T 8.000 TT 8.000 M: 0.00000 0.00000
+WARNING: instr 1 uses 3 p-fields but is given 20
+B 8.000 .. 18.000 T 18.000 TT 18.000 M: 0.49994 0.49994
+ </screen>
+ </para>
</refsect1>
<refsect1>
@@ -94,6 +117,7 @@ instr 1: inum = 7.000
<link linkend="pcount"><citetitle>pcount</citetitle></link>
</para>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>Example by: Anthony Kozar</para>
diff --git a/opcodes/pitch.xml b/opcodes/pitch.xml
index 07d6743..5ecd380 100644
--- a/opcodes/pitch.xml
+++ b/opcodes/pitch.xml
@@ -98,7 +98,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the pitch opcode. It uses the file <ulink url="examples/pitch.csd"><citetitle>pitch.csd</citetitle></ulink> and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
+ Here is an example of the pitch opcode. It uses the file <ulink url="examples/pitch.csd"><citetitle>pitch.csd</citetitle></ulink>.
<example>
<title>Example of the pitch opcode.</title>
@@ -121,7 +121,6 @@
<member>April 1999</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
<para>New in Csound version 3.54</para>
</refsect1>
diff --git a/opcodes/pitchamdf.xml b/opcodes/pitchamdf.xml
index 9cf573f..d0695b1 100644
--- a/opcodes/pitchamdf.xml
+++ b/opcodes/pitchamdf.xml
@@ -90,7 +90,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the pitchamdf opcode. It uses the file <ulink url="examples/pitchamdf.csd"><citetitle>pitchamdf.csd</citetitle></ulink> and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
+ Here is an example of the pitchamdf opcode. It uses the file <ulink url="examples/pitchamdf.csd"><citetitle>pitchamdf.csd</citetitle></ulink>.
<example>
<title>Example of the pitchamdf opcode.</title>
diff --git a/opcodes/planet.xml b/opcodes/planet.xml
index ee04d50..885b29b 100644
--- a/opcodes/planet.xml
+++ b/opcodes/planet.xml
@@ -69,18 +69,20 @@
<title>Examples</title>
<para>
Here is an example of the planet opcode. It uses the file <ulink url="examples/planet.csd"><citetitle>planet.csd</citetitle></ulink>.
-
<example>
<title>Example of the planet opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/planet.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
-
+
+
+ <refsect1>
+ <title>See Also</title>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue9/FlutesInOrbit.html"><citetitle>http://www.csounds.com/journal/issue9/FlutesInOrbit.html</citetitle></ulink> , written by Brian Redfern. </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>
@@ -89,7 +91,6 @@
<member>December 1998</member>
</simplelist>
</para>
-
<para>New in Csound version 3.50</para>
</refsect1>
</refentry>
diff --git a/opcodes/platerev.xml b/opcodes/platerev.xml
new file mode 100644
index 0000000..abf77bb
--- /dev/null
+++ b/opcodes/platerev.xml
@@ -0,0 +1,113 @@
+
+<refentry id="platerev">
+<indexterm id="IndexPlaterev"><primary>platerev</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Reverberation</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>platerev</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>platerev</refname>
+ <refpurpose>
+ Models the reverberation of a metal plate.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Models the reverberation of a rectangular metal plate with
+ settable physical characteristics when excited by audio signal(s).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>a1[, a2, ...] <command>platerev</command> itabexcite. itabouts, kbndry, iaspect, istiff, idecay, iloss, aexcite1[, aexcite2, ...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>itabexcite</emphasis> -- number of a table that
+ contains triplets for each excitation signal, (frequency, radius,
+ initial phase in radians). The radius should be less than 1.
+ These control where the excitation happens. The values in the
+ table for frequency and radius may be changed in performance,
+ with the proviso about clicking if the changes are too large.
+ </para>
+
+ <para>
+ <emphasis>itabouts</emphasis> -- number of a table that
+ contains triplets for each output signal, (frequency, radius,
+ initial phase in radians). See itabexcite description.
+
+ </para>
+
+ <para>
+ <emphasis>kbndry</emphasis> -- boundary condition of the plate;
+ 0 = free, 1 = clamped, 2 = pivoting. Other values are
+ undefined. Thus parameter may be changed at k-rate but that
+ might give rise to clicks.
+ </para>
+ <para>
+ <emphasis>iaspect</emphasis> -- plate aspect ratio which should
+ be less than or equal to 1.
+ </para>
+ <para>
+ <emphasis>istiff</emphasis> -- plate stiffness parameter (set
+ around 1 or less for plate reverb).
+ </para>
+ <para>
+ <emphasis>idecay</emphasis> -- time taken for 30 dB decay
+ </para>
+ <para>
+ <emphasis>iloss</emphasis> -- loss parameter for
+ high-frequency damping (value about 0.001 suggested).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ A metal plate is excited by a stereo signal and the resulting
+ reverberation captured.
+ </para>
+ <para>
+ <emphasis>aexcite</emphasis>n -- excitation signal to be
+ inserted into the plate.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the platerev opcode. It uses the file <ulink url="examples/plate.csd"><citetitle>plate.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the platerev opcode.</title>
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/plate.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Stefan Bilbao </member>
+ <member>University of Edinburgh, UK</member>
+ <member>Author: &namejohn; </member>
+ <member>University of Bath, Codemist Ltd.</member>
+ <member>Bath, UK</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.17.12</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/plltrack.xml b/opcodes/plltrack.xml
new file mode 100644
index 0000000..e88c559
--- /dev/null
+++ b/opcodes/plltrack.xml
@@ -0,0 +1,95 @@
+
+<refentry id="plltrack">
+ <indexterm id="Indexplltrack"><primary>plltrack</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Sensing and Control</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>plltrack</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>plltrack</refname>
+ <refpurpose>
+ Tracks the pitch of a signal.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ <emphasis>plltrack</emphasis>, a pitch tracker based on a phase-locked loop algorithm, described in Zolzer, U, Sankarababu, S.V. and Moller, S, "PLL-based Pitch Detection and Tracking for Audio Signals. Proc. of IIH-MSP 2012".
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>acps, alock <command>plltrack</command> asig, kd [, kloopf, kloopq, klf, khf, kthresh]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>acps</emphasis> -- estimated pitch in Hz.
+ </para>
+
+ <para>
+ <emphasis>alock</emphasis> -- phase lock indicator, a phase error indicating the quality of the tracking, with values between 0 and 1. Higher values
+indicate good tracking
+ </para>
+
+<para>
+ <emphasis>kd</emphasis> -- PLL feedback gain, controls frequency range of PLL (between 0 and 1). Higher values increase the range of the tracking.
+ </para>
+
+<para>
+ <emphasis>kloopf</emphasis> -- PLL LP filter cf, controls frequency range of PLL (opt, defaults to 20Hz).
+ </para>
+
+<para>
+ <emphasis>kloopq</emphasis> -- PLL LP filter Q, controls rise time of FO step (opt, defaults to 1/3)
+ </para>
+
+<para>
+ <emphasis>klf</emphasis> -- lowest tracking freq (opt, defaults to 20Hz)
+ </para>
+
+<para>
+ <emphasis>khf</emphasis> -- highest tracking freq (opt, defaults to 1500Hz)
+ </para>
+
+<para>
+ <emphasis>kthresh</emphasis> -- tracking signal level threshold (optional, defaults to 0.001, equiv to -60dBfs)
+ </para>
+
+ <para>
+ <emphasis>plltrack</emphasis> analyzes the input signal, <emphasis>asig</emphasis>,
+ estimating the fundamental of a monophonic signal. Its output is updated every sample.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the plltrack operator. It uses the file <ulink url="examples/plltrack.csd"><citetitle>plltrack.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the plltrack operator.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/plltrack.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>NUI, Maynooth.</member>
+ <member>Maynooth, Ireland</member>
+ <member>September, 2012</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.18.031</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/pluck.xml b/opcodes/pluck.xml
index a76f26c..d6fa020 100644
--- a/opcodes/pluck.xml
+++ b/opcodes/pluck.xml
@@ -108,20 +108,11 @@
<title>Examples</title>
<para>
Here is an example of the pluck opcode. It uses the file <ulink url="examples/pluck.csd"><citetitle>pluck.csd</citetitle></ulink>.
-
<example>
<title>Example of the pluck opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/pluck.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
</refentry>
diff --git a/opcodes/plusbecomes.xml b/opcodes/plusbecomes.xml
new file mode 100644
index 0000000..42650f2
--- /dev/null
+++ b/opcodes/plusbecomes.xml
@@ -0,0 +1,76 @@
+
+<refentry id="plusbecomes">
+<indexterm id="IndexPlusbecomes"><primary>=</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Initialization and Reinitialization</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>=</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>=</refname>
+
+ <refpurpose>
+ Performs add and assignment.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>+=</command> xarg</synopsis>
+ <synopsis>ires <command>+=</command> iarg</synopsis>
+ <synopsis>kres <command>+=</command> karg</synopsis>
+ <synopsis>table [ kval] <command>+=</command> karg</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Performs an add and assign.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>+=</emphasis> - Adds the value of the expression
+ <emphasis>iarg</emphasis> (<emphasis>karg, xarg</emphasis>) into
+ the named result. This provides a means of saving an evaluated
+ result for later use.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the plusbecomes opcode. It uses the file <ulink url="examples/reverb.csd"><citetitle>reverb.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the plusbecomes opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/reverb.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="assign"><citetitle>assign</citetitle></link>,
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>University of Bath, and Codemist Ltd.</member>
+ <member>Bath, UK</member>
+ <member>2013</member>
+ </simplelist>
+ <para>New in version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/poisson.xml b/opcodes/poisson.xml
index 2110342..e4515a9 100644
--- a/opcodes/poisson.xml
+++ b/opcodes/poisson.xml
@@ -144,6 +144,5 @@
<member>1995</member>
</simplelist>
</para>
- <para>Example written by &namekevin; and &nameandres;</para>
</refsect1>
</refentry>
diff --git a/opcodes/pop.xml b/opcodes/pop.xml
index 06e2a80..0e12f89 100644
--- a/opcodes/pop.xml
+++ b/opcodes/pop.xml
@@ -53,6 +53,19 @@
</para>
</refsect1>
<refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the pop opcode. It uses the file <ulink url="examples/pop.csd"><citetitle>pop.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pop opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pop.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<title>See also</title>
<para>
<link linkend="stack"><citetitle>stack</citetitle></link>,
@@ -60,7 +73,9 @@
<link linkend="pop_f"><citetitle>pop_f</citetitle></link> and
<link linkend="push_f"><citetitle>push_f</citetitle></link>.
</para>
+ <para>Using this opcode is somewhat hackish, as you can read here: <ulink url="http://csound.1045644.n5.nabble.com/passing-a-string-to-a-UDO-td1099284.html"></ulink></para>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>By: &nameistvan;.</para>
diff --git a/opcodes/port.xml b/opcodes/port.xml
index 8e2a76c..a5ff931 100644
--- a/opcodes/port.xml
+++ b/opcodes/port.xml
@@ -58,6 +58,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the port opcode. It uses the file <ulink url="examples/port.csd"><citetitle>port.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the port opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/port.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="areson"><citetitle>areson</citetitle></link>,
diff --git a/opcodes/poscil.xml b/opcodes/poscil.xml
index 09a4785..83070b0 100644
--- a/opcodes/poscil.xml
+++ b/opcodes/poscil.xml
@@ -22,27 +22,29 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>poscil</command> aamp, acps, ifn [, iphs]</synopsis>
+ <synopsis>ares <command>poscil</command> aamp, acps [, ifn, iphs]</synopsis>
- <synopsis>ares <command>poscil</command> aamp, kcps, ifn [, iphs]</synopsis>
+ <synopsis>ares <command>poscil</command> aamp, kcps [, ifn, iphs]</synopsis>
- <synopsis>ares <command>poscil</command> kamp, acps, ifn [, iphs]</synopsis>
+ <synopsis>ares <command>poscil</command> kamp, acps [, ifn, iphs]</synopsis>
- <synopsis>ares <command>poscil</command> kamp, kcps, ifn [, iphs]</synopsis>
+ <synopsis>ares <command>poscil</command> kamp, kcps [, ifn, iphs]</synopsis>
- <synopsis>ires <command>poscil</command> kamp, kcps, ifn [, iphs]</synopsis>
+ <synopsis>ires <command>poscil</command> kamp, kcps [, ifn, iphs]</synopsis>
- <synopsis>kres <command>poscil</command> kamp, kcps, ifn [, iphs]</synopsis>
+ <synopsis>kres <command>poscil</command> kamp, kcps [, ifn, iphs]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifn</emphasis> -- function table number
+ <emphasis>ifn</emphasis> -- (optional) function table number. This
+ defaults to -1 which indicates a sinewave.
</para>
<para>
- <emphasis>iphs</emphasis> (optional, default=0) -- initial phase (normalized table index 0-1)
+ <emphasis>iphs</emphasis> (optional, default=0) -- initial phase
+ (normalized table index 0-1)
</para>
</refsect1>
@@ -52,29 +54,51 @@
<emphasis>ares</emphasis> -- output signal
</para>
<para>
- <emphasis>kamp</emphasis>, <emphasis>aamp</emphasis> -- the amplitude of the output signal.
+ <emphasis>kamp</emphasis>, <emphasis>aamp</emphasis> -- the
+ amplitude of the output signal.
</para>
<para>
- <emphasis>kcps</emphasis>, <emphasis>acps</emphasis> -- the frequency of the output signal in cycles per second.
+ <emphasis>kcps</emphasis>, <emphasis>acps</emphasis> -- the
+ frequency of the output signal in cycles per second.
</para>
<para>
- <emphasis>poscil</emphasis> (precise oscillator) is the same as <link linkend="oscili"><citetitle>oscili</citetitle></link>, but allows much more precise frequency control, especially when using long tables and low frequency values. It uses floating-point table indexing, instead of integer math, like <emphasis>oscil</emphasis> and <emphasis>oscili</emphasis>. It is only a bit slower than <emphasis>oscili</emphasis>.
+ <emphasis>poscil</emphasis> (precise oscillator) is the same as
+ <link linkend="oscili"><citetitle>oscili</citetitle></link>, but
+ allows much more precise frequency control, especially when
+ using long tables and low frequency values. It uses
+ floating-point table indexing, instead of integer math, like
+ <emphasis>oscil</emphasis> and <emphasis>oscili</emphasis>. It
+ is only a bit slower than <emphasis>oscili</emphasis>.
</para>
<para>
- Since Csound 4.22, <emphasis>poscil</emphasis> can accept also negative frequency values and use a-rate values both for amplitude and frequency. So both AM and FM are allowed using this opcode.
+ Since Csound 4.22, <emphasis>poscil</emphasis> can accept also
+ negative frequency values and use a-rate values both for
+ amplitude and frequency. So both AM and FM are allowed using
+ this opcode.
</para>
- <para>The opcode <link linkend="poscil3"><citetitle>poscil3</citetitle></link> is the same as <emphasis>poscil</emphasis>, but uses cubic interpolation.</para>
- <para>Note that <emphasis>poscil</emphasis> can use deffered (non-power of two) length tables.</para>
+ <para>The opcode <link
+ linkend="poscil3"><citetitle>poscil3</citetitle></link> is the
+ same as <emphasis>poscil</emphasis>, but uses cubic
+ interpolation.</para>
+ <para>Note that <emphasis>poscil</emphasis> can use deffered
+ (non-power of two) length tables.</para>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the poscil opcode. It uses the file <ulink url="examples/poscil.csd"><citetitle>poscil.csd</citetitle></ulink>.
+ Here is an example of the poscil opcode. It uses the file <ulink
+ url="examples/poscil.csd"><citetitle>poscil.csd</citetitle></ulink>.
<example>
<title>Example of the poscil opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/poscil.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <para>See the sections <link
+ linkend="UsingRealTime"><citetitle>Real-time
+ Audio</citetitle></link> and <link
+ linkend="CommandFlags"><citetitle>Command Line
+ Flags</citetitle></link> for more information on using command
+ line flags.</para>
+ <xi:include href="examples-xml/poscil.csd.xml"
+ xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
@@ -95,9 +119,9 @@
<member>1998</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
- <para>November 2002. Added a note about the changes to Csound version 4.22, thanks to &namerasmus;.</para>
+ <para>November 2002. Added a note about the changes to Csound
+ version 4.22, thanks to &namerasmus;.</para>
<para>New in Csound version 3.52</para>
+ <para>Function table optional in Csound version 6.00</para>
</refsect1>
</refentry>
diff --git a/opcodes/poscil3.xml b/opcodes/poscil3.xml
index d784693..2c24af9 100644
--- a/opcodes/poscil3.xml
+++ b/opcodes/poscil3.xml
@@ -22,15 +22,24 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>poscil3</command> kamp, kcps, ifn [, iphs]</synopsis>
+ <synopsis>ares <command>poscil3</command> aamp, acps [, ifn, iphs]</synopsis>
- <synopsis>kres <command>poscil3</command> kamp, kcps, ifn [, iphs]</synopsis>
+ <synopsis>ares <command>poscil3</command> aamp, kcps [, ifn, iphs]</synopsis>
+
+ <synopsis>ares <command>poscil3</command> kamp, acps [, ifn, iphs]</synopsis>
+
+ <synopsis>ares <command>poscil3</command> kamp, kcps [, ifn, iphs]</synopsis>
+
+ <synopsis>ires <command>poscil3</command> kamp, kcps [, ifn, iphs]</synopsis>
+
+ <synopsis>kres <command>poscil3</command> kamp, kcps [, ifn, iphs]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifn</emphasis> -- function table number
+ <emphasis>ifn</emphasis> -- (optional) function table number. This
+ defaults to -1 which indicates a sinewave.
</para>
<para>
<emphasis>iphs</emphasis> (optional, default=0) -- initial phase (normalized table index 0-1)
@@ -43,15 +52,15 @@
<emphasis>ares</emphasis> -- output signal
</para>
<para>
- <emphasis>kamp</emphasis> -- the amplitude of the output signal.
+ <emphasis>kamp</emphasis>, <emphasis>aamp</emphasis> -- the amplitude of the output signal.
</para>
<para>
- <emphasis>kcps</emphasis> -- the frequency of the output signal in cycles per second.
+ <emphasis>kcps</emphasis>, <emphasis>acps</emphasis> -- the frequency of the output signal in cycles per second.
</para>
<para>
<emphasis>poscil3</emphasis> works like <link linkend="poscil"><citetitle>poscil</citetitle></link>, but uses cubic interpolation.
</para>
- <para>Note that <emphasis>poscil3</emphasis> can use deffered (non-power of two) length tables.</para>
+ <para>Note that <emphasis>poscil3</emphasis> can use defered (non-power of two) length tables.</para>
</refsect1>
<refsect1>
@@ -60,16 +69,27 @@
Here is an example of the poscil3 opcode. It uses the file <ulink url="examples/poscil3.csd"><citetitle>poscil3.csd</citetitle></ulink>.
<example>
<title>Example of the poscil3 opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/poscil3.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <para>
+ See the sections <link
+ linkend="UsingRealTime"><citetitle>Real-time
+ Audio</citetitle></link> and <link
+ linkend="CommandFlags"><citetitle>Command Line
+ Flags</citetitle></link> for more information on using
+ command line flags.
+ </para>
+ <xi:include href="examples-xml/poscil3.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
<para>
- Here is another example of the poscil3 opcode, which uses a table filled from a sound file. It uses the file <ulink url="examples/poscil3-file.csd"><citetitle>poscil3-file.csd</citetitle></ulink>.
- <example>
- <title>Another example of the poscil3 opcode.</title>
- <xi:include href="examples-xml/poscil3-file.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
+ Here is another example of the poscil3 opcode, which uses a
+ table filled from a sound file. It uses the file
+ <ulink url="examples/poscil3-file.csd">
+ <citetitle>poscil3-file.csd</citetitle>
+ </ulink>.
+ <example>
+ <title>Another example of the poscil3 opcode.</title>
+ <xi:include href="examples-xml/poscil3-file.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
@@ -88,8 +108,8 @@
<member>Italy</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.52</para>
+ <para> variants with a-rate amplitude or frequency new in
+ 5.16</para>
</refsect1>
</refentry>
diff --git a/opcodes/pow.xml b/opcodes/pow.xml
index 645684e..34bc08f 100644
--- a/opcodes/pow.xml
+++ b/opcodes/pow.xml
@@ -63,19 +63,20 @@
<title>Examples</title>
<para>
Here is an example of the pow opcode. It uses the file <ulink url="examples/pow.csd"><citetitle>pow.csd</citetitle></ulink>.
-
<example>
<title>Example of the pow opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/pow.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include a line like this:
+ Its output should include lines like these:
<screen>
-instr 1: i1 = 4096.000</screen>
+ i1 0.50000
+ i1 0.50007
+ i1 0.50014
+.......
+ i1 14.45986
+ i1 14.46130
+</screen>
</para>
</refsect1>
@@ -88,6 +89,5 @@ instr 1: i1 = 4096.000</screen>
<member>1995</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/powoftwo.xml b/opcodes/powoftwo.xml
index 9dd775a..fea787b 100644
--- a/opcodes/powoftwo.xml
+++ b/opcodes/powoftwo.xml
@@ -43,18 +43,21 @@
<title>Examples</title>
<para>
Here is an example of the powoftwo opcode. It uses the file <ulink url="examples/powoftwo.csd"><citetitle>powoftwo.csd</citetitle></ulink>.
-
<example>
<title>Example of the powoftwo opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/powoftwo.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
Its output should include a line like this:
- <screen>instr 1: i1 = 4096.000</screen>
+ <screen>
+instr 1: iQuantize = 32768.000
+instr 1: iQuantize = 2048.000
+instr 1: iQuantize = 128.000
+instr 1: iQuantize = 8.000
+instr 1: iQuantize = 2.000
+instr 1: iQuantize = 1.000
+</screen>
</para>
</refsect1>
@@ -85,8 +88,6 @@
<member>July 1999</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.57</para>
</refsect1>
</refentry>
diff --git a/opcodes/print.xml b/opcodes/print.xml
index 9a6504f..76987ed 100644
--- a/opcodes/print.xml
+++ b/opcodes/print.xml
@@ -48,19 +48,16 @@
<title>Examples</title>
<para>
Here is an example of the print opcode. It uses the file <ulink url="examples/print.csd"><citetitle>print.csd</citetitle></ulink>.
-
<example>
<title>Example of the print opcode.</title>
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/print.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include lines like this:
+ Its output should include lines like these:
<screen>
-instr 1: p4 = 50.375
-instr 1: p4 = 300.000
-instr 1: p4 = -999.000
+instr 1: irand = 2.930
+instr 1: irand = 0.420
+instr 1: irand = 2.316
</screen>
</para>
</refsect1>
@@ -78,8 +75,4 @@ instr 1: p4 = -999.000
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
</refentry>
diff --git a/opcodes/printf.xml b/opcodes/printf.xml
index 481c963..772c75d 100644
--- a/opcodes/printf.xml
+++ b/opcodes/printf.xml
@@ -71,11 +71,31 @@
values to the nearest integer. Note that only k-rate and i-rate arguments are valid (no a-rate printing)
</para>
</refsect1>
-
- <!--<refsect1>
- <title>Example</title>
- </refsect1>-->
-
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the printf opcode. It uses the file <ulink url="examples/printf.csd"><citetitle>printf.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the printf opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/printf.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ <para>
+ The example will produce the following output:
+ <screen>
+Audiofile 'frox.wav' does not exist!
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+<para> More information about printf: <ulink url="http://www.cplusplus.com/reference/clibrary/cstdio/printf/"><citetitle>http://www.cplusplus.com/reference/clibrary/cstdio/printf/</citetitle></ulink></para>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/printk2.xml b/opcodes/printk2.xml
index bb2ebe9..36ac089 100644
--- a/opcodes/printk2.xml
+++ b/opcodes/printk2.xml
@@ -56,20 +56,22 @@
<para>
Here is an example of the printk2 opcode. It uses the file <ulink url="examples/printk2.csd"><citetitle>printk2.csd</citetitle></ulink>.
-
<example>
<title>Example of the printk2 opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/printk2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- Its output should include a line like this:
+ Its output should include lines like these:
<screen>
+ i1 0.00000
+ i1 3.00000
+ i1 1.00000
+ i1 3.00000
i1 1.00000
i1 2.00000
+ i1 3.00000
+.....
</screen>
</para>
</refsect1>
@@ -91,8 +93,6 @@
<member>1998</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.48</para>
</refsect1>
</refentry>
diff --git a/opcodes/product.xml b/opcodes/product.xml
index 3e1fccf..ae5cc5d 100644
--- a/opcodes/product.xml
+++ b/opcodes/product.xml
@@ -34,6 +34,18 @@
<emphasis>asig1, asig2, asig3, ...</emphasis> -- a-rate signals to be multiplied.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the product opcode. It uses the file <ulink url="examples/product.csd"><citetitle>product.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the product opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/product.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>Credits</title>
diff --git a/opcodes/pset.xml b/opcodes/pset.xml
index cc19180..e91b3eb 100644
--- a/opcodes/pset.xml
+++ b/opcodes/pset.xml
@@ -35,18 +35,21 @@
<emphasis>pset</emphasis> (optional) defines and initializes numeric arrays at orchestra load time. It may be used as an orchestra header statement (i.e. instrument 0) or within an instrument. When defined within an instrument, it is not part of its i-time or performance operation, and only one statement is allowed per instrument. These values are available as i-time defaults. When an instrument is triggered from MIDI it only gets p1 and p2 from the event, and p3, p4, etc. will receive the actual preset values.
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- The example below illustrates <emphasis>pset</emphasis> as used within an instrument.
-
- <informalexample>
- <programlisting>
-<emphasis role="oblock">instr</emphasis> 1
- <emphasis role="opc">pset</emphasis> 0,0,3,4,5,6 <emphasis role="comment">; pfield substitutes</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> 10000, 440, p6</programlisting>
- </informalexample>
+ Here is an example of the pset opcode. It uses the file <ulink url="examples/pset.csd"><citetitle>pset.csd</citetitle></ulink>
+ <example>
+ <title>Example of the pset opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pset.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <para> Here is another example of the pset opcode, using pset with midi. It uses the file <ulink url="examples/pset-midi.csd"><citetitle>pset-midi.csd</citetitle></ulink></para>
+ <example>
+ <title>Second example of the pset opcode.</title>
+ <xi:include href="examples-xml/pset-midi.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
diff --git a/opcodes/ptable.xml b/opcodes/ptable.xml
new file mode 100644
index 0000000..2f2a657
--- /dev/null
+++ b/opcodes/ptable.xml
@@ -0,0 +1,108 @@
+
+<refentry id="ptable">
+<indexterm id="IndexPtable"><primary>ptable</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Table Access</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>ptable</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>ptable</refname>
+ <refpurpose>
+ Accesses table values by direct indexing.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Accesses table values by direct indexing.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>ptable</command> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis>
+
+ <synopsis>ires <command>ptable</command> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis>
+
+ <synopsis>kres <command>ptable</command> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn</emphasis> -- function table number.
+ </para>
+
+ <para>
+ <emphasis>ixmode</emphasis> (optional) -- index data mode. The default value is 0.
+ <itemizedlist>
+ <listitem><para>0 = raw index</para></listitem>
+ <listitem><para>1 = normalized (0 to 1)</para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ <emphasis>ixoff</emphasis> (optional) -- amount by which index is to be offset. For a table with origin at center, use tablesize/2 (raw) or .5 (normalized). The default value is 0.
+ </para>
+
+ <para>
+ <emphasis>iwrap</emphasis> (optional) -- wraparound index flag. The default value is 0.
+ <itemizedlist>
+ <listitem>
+ <para>0 = nowrap (index &lt; 0 treated as index=0; index &gt; tablesize sticks at index=size)</para>
+ </listitem>
+
+ <listitem>
+ <para>1 = wraparound.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>ptable</emphasis> invokes table lookup on behalf of init, control or audio indices. These indices can be raw entry numbers (0, 1, 2,... size - 1) or scaled values (0 to 1). Indices are first modified by the offset value then checked for range before table lookup (see <emphasis>iwrap</emphasis>). If index is likely to be full scale, or if interpolation is being used, the table should have an extended guard point. <emphasis>table</emphasis> indexed by a periodic phasor ( see <link linkend="phasor"><citetitle>phasor</citetitle></link>) will simulate an oscillator.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the ptable opcode. It uses the file <ulink url="examples/ptable.csd"><citetitle>ptable.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the ptable opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/ptable.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="table"><citetitle>table</citetitle></link>,
+ <link linkend="tablei"><citetitle>tablei</citetitle></link>,
+ <link linkend="table3"><citetitle>table3</citetitle></link>,
+ <link linkend="ptable3"><citetitle>ptable3</citetitle></link>,
+ <link linkend="ptablei"><citetitle>ptablei</citetitle></link>,
+ <link linkend="oscil1"><citetitle>oscil1</citetitle></link>,
+ <link linkend="oscil1i"><citetitle>oscil1i</citetitle></link>,
+ <link linkend="osciln"><citetitle>osciln</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Jan 2012</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 5.16</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/ptable3.xml b/opcodes/ptable3.xml
new file mode 100644
index 0000000..171e68e
--- /dev/null
+++ b/opcodes/ptable3.xml
@@ -0,0 +1,97 @@
+
+<refentry id="ptable3">
+<indexterm id="IndexPtable3"><primary>ptable3</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Table Access</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>ptable3</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>ptable3</refname>
+ <refpurpose>
+ Accesses table values by direct indexing with cubic interpolation.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Accesses table values by direct indexing with cubic interpolation.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>ptable3</command> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis>
+
+ <synopsis>ires <command>ptable3</command> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis>
+
+ <synopsis>kres <command>ptable3</command> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn</emphasis> -- function table number.
+ </para>
+
+ <para>
+ <emphasis>ixmode</emphasis> (optional) -- index data mode. The default value is 0.
+ <itemizedlist>
+ <listitem><para>0 = raw index</para></listitem>
+ <listitem><para>1 = normalized (0 to 1)</para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ <emphasis>ixoff</emphasis> (optional) -- amount by which index is to be offset. For a table with origin at center, use tablesize/2 (raw) or .5 (normalized). The default value is 0.
+ </para>
+
+ <para>
+ <emphasis>iwrap</emphasis> (optional) -- wraparound index flag. The default value is 0.
+ <itemizedlist>
+ <listitem>
+ <para>0 = nowrap (index &lt; 0 treated as index=0; index &gt; tablesize sticks at index=size)</para>
+ </listitem>
+
+ <listitem>
+ <para>1 = wraparound.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>ptable3</emphasis> is identical to <link
+ linkend="table3"><citetitle>table3</citetitle></link>, except
+ that it uses does not require the table to have a power of two size.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="table"><citetitle>table</citetitle></link>,
+ <link linkend="tablei"><citetitle>tablei</citetitle></link>,
+ <link linkend="table3"><citetitle>table3</citetitle></link>,
+ <link linkend="ptable"><citetitle>ptable</citetitle></link>,
+ <link linkend="ptablei"><citetitle>ptablei</citetitle></link>,
+ <link linkend="oscil1"><citetitle>oscil1</citetitle></link>,
+ <link linkend="oscil1i"><citetitle>oscil1i</citetitle></link>,
+ <link linkend="osciln"><citetitle>osciln</citetitle></link>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Jan 2012</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.16</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/ptablei.xml b/opcodes/ptablei.xml
new file mode 100644
index 0000000..e5a8342
--- /dev/null
+++ b/opcodes/ptablei.xml
@@ -0,0 +1,115 @@
+
+<refentry id="ptablei">
+<indexterm id="IndexPtablei"><primary>ptablei</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Table Access</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>ptablei</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>ptablei</refname>
+ <refpurpose>
+ Accesses table values by direct indexing with linear interpolation.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Accesses table values by direct indexing with linear interpolation.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>ptablei</command> andx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis>
+
+ <synopsis>ires <command>ptablei</command> indx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis>
+
+ <synopsis>kres <command>ptablei</command> kndx, ifn [, ixmode] [, ixoff] [, iwrap]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn</emphasis> -- function table number. The table
+ need not be a power of 2 long.
+ </para>
+
+ <para>
+ <emphasis>ixmode</emphasis> (optional) -- index data mode. The default value is 0.
+ <itemizedlist>
+ <listitem><para>0 = raw index</para></listitem>
+ <listitem><para>1 = normalized (0 to 1)</para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ <emphasis>ixoff</emphasis> (optional) -- amount by which index is to be offset. For a table with origin at center, use tablesize/2 (raw) or .5 (normalized). The default value is 0.
+ </para>
+
+ <para>
+ <emphasis>iwrap</emphasis> (optional) -- wraparound index flag. The default value is 0.
+ <itemizedlist>
+ <listitem>
+ <para>0 = nowrap (index &lt; 0 treated as index=0; index &gt; tablesize sticks at index=size)</para>
+ </listitem>
+
+ <listitem>
+ <para>1 = wraparound.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>ptablei</emphasis> is a interpolating unit in which
+ the fractional part of index is used to interpolate between
+ adjacent table entries. The smoothness gained by interpolation
+ is at some small cost in execution time (see also <link
+ linkend="oscili"><citetitle>oscili</citetitle></link>, etc.),
+ but the interpolating and non-interpolating units are otherwise
+ interchangeable.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the ptablei opcode. It uses the file <ulink url="examples/ptablei.csd"><citetitle>ptablei.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the ptablei opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/ptablei.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="table"><citetitle>table</citetitle></link>,
+ <link linkend="tablei"><citetitle>tablei</citetitle></link>,
+ <link linkend="table3"><citetitle>table3</citetitle></link>,
+ <link linkend="ptable"><citetitle>ptable</citetitle></link>,
+ <link linkend="ptable3"><citetitle>ptable3</citetitle></link>,
+ <link linkend="oscil1"><citetitle>oscil1</citetitle></link>,
+ <link linkend="oscil1i"><citetitle>oscil1i</citetitle></link>,
+ <link linkend="osciln"><citetitle>osciln</citetitle></link>
+ </para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue12/genInstruments.html"><citetitle>http://www.csounds.com/journal/issue12/genInstruments.html</citetitle></ulink> , written by Jacob Joaquin </para>
+ </refsect1>
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Jan 2012</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.16</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/ptablew.xml b/opcodes/ptablew.xml
new file mode 100644
index 0000000..a7e3586
--- /dev/null
+++ b/opcodes/ptablew.xml
@@ -0,0 +1,209 @@
+
+<refentry id="ptablew">
+<indexterm id="IndexPtablew"><primary>ptablew</primary></indexterm>
+ <refentryinfo><title>Table Control:Read/Write Opreations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>ptablew</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>ptablew</refname>
+ <refpurpose>
+ Change the contents of existing function tables of any length.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ This opcode operates on existing function tables, changing their
+ contents. <emphasis>ptablew</emphasis> is for writing at k- or at a-rates, with the table
+ number being specified at init time. Using <emphasis>ptablew</emphasis> with i-rate signal
+ and index values is allowed, but the specified data will always be written to the function table
+ at k-rate, not during the initialization pass. The valid combinations of variable
+ types are shown by the first letter of the variable names.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>ptablew</command> asig, andx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis>
+
+ <synopsis><command>ptablew</command> isig, indx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis>
+
+ <synopsis><command>ptablew</command> ksig, kndx, ifn [, ixmode] [, ixoff] [, iwgmode]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>asig</emphasis>, <emphasis>isig,</emphasis> <emphasis>ksig</emphasis> -- The value to be written into the table.
+ </para>
+
+ <para>
+ <emphasis>andx</emphasis>, <emphasis>indx</emphasis>, <emphasis>kndx</emphasis> -- Index into table, either a positive number range matching the table length (<emphasis>ixmode</emphasis> = 0) or a 0 to 1 range (<emphasis>ixmode</emphasis> != 0)
+ </para>
+
+ <para>
+ <emphasis>ifn</emphasis> -- Table number. Must be &gt;= 1. Floats are rounded down to an integer. If a table number does not point to a valid table, or the table has not yet been loaded (<link linkend="GEN01"><citetitle>GEN01</citetitle></link>) then an error will result and the instrument will be de-activated.
+ </para>
+
+ <para>
+ <emphasis>ixmode</emphasis> (optional, default=0) -- index mode.
+ <itemizedlist>
+ <listitem>
+ <para>
+ 0 = <emphasis>xndx</emphasis> and <emphasis>ixoff</emphasis> ranges match the length of the table.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ !=0 = <emphasis>xndx</emphasis> and <emphasis>ixoff</emphasis> have a 0 to 1 range.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ <emphasis>ixoff</emphasis> (optional, default=0) -- index offset.
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ 0 = Total index is controlled directly by <emphasis>xndx</emphasis>, i.e. the indexing starts from the start of the table.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ !=0 = Start indexing from somewhere else in the table. Value must be positive and less than the table length (<emphasis>ixmode</emphasis> = 0) or less than 1 (<emphasis>ixmode</emphasis> != 0).
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ <emphasis>iwgmode</emphasis> (optional, default=0) -- Wrap and guardpoint mode.
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ 0 = Limit mode.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ 1 = Wrap mode.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ 2 = Guardpoint mode.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+
+ <refsect2>
+ <title>Limit mode (0)</title>
+ <para>
+ Limit the total index (<emphasis>ndx</emphasis> + <emphasis>ixoff</emphasis>) to between 0 and the guard point. For a table of length 5, this means that locations 0 to 3 and location 4 (the guard point) can be written. A negative total index writes to location 0.
+ </para>
+ </refsect2>
+
+ <refsect2>
+ <title>Wrap mode (1)</title>
+ <para>
+ Wrap total index value into locations 0 to E, where E is one less than the table length. For example, wrap into a 0 to 3 range - so that total index 6 writes to location 2.
+ </para>
+ </refsect2>
+
+ <refsect2>
+ <title>Guardpoint mode (2)</title>
+ <para>
+ The guardpoint is written at the same time as location 0 is written - with the same value.
+ </para>
+
+ <para>
+ This facilitates writing to tables which are intended to be read with interpolation for producing smooth cyclic waveforms. In addition, before it is used, the total index is incremented by half the range between one location and the next, before being rounded down to the integer address of a table location.
+ </para>
+
+ <para>
+ Normally (<emphasis>igwmode</emphasis> = 0 or 1) for a table of length 5 - which has locations 0 to 3 as the main table and location 4 as the guard point, a total index in the range of 0 to 0.999 will write to location 0. (&quot;0.999&quot; means just less than 1.0.) 1.0 to 1.999 will write to location 1 etc. A similar pattern holds for all total indexes 0 to 4.999 (<emphasis>igwmode</emphasis> = 0) or to 3.999 (<emphasis>igwmode</emphasis> = 1). <emphasis>igwmode</emphasis> = 0 enables locations 0 to 4 to be written - with the guardpoint (4) being written with a potentially different value from location 0.
+ </para>
+
+ <para>
+ With a table of length 5 and the <emphasis>iwgmode</emphasis> = 2, then when the total index is in the range 0 to 0.499, it will write to locations 0 and 4. Range 0.5 to 1.499 will write to location 1 etc. 3.5 to 4.0 will also write to locations 0 and 4.
+ </para>
+
+ <para>
+ This way, the writing operation most closely approximates the results of interpolated reading. Guard point mode should only be used with tables that have a guardpoint.
+ </para>
+
+ <para>
+ Guardpoint mode is accomplished by adding 0.5 to the total index, rounding to the next lowest integer, wrapping it modulo the factor of two which is one less than the table length, writing the table (locations 0 to 3 in our example) and then writing to the guard point if index = 0.
+ </para>
+
+ <para>
+ <emphasis>ptablew</emphasis> has no output value. The last three parameters are optional and have default values of 0.
+ </para>
+ </refsect2>
+
+ <refsect2>
+ <title>Caution with k-rate table numbers</title>
+ <para>
+ At k-rate or a-rate, if a table number of &lt; 1 is given, or the table number points to a non-existent table, or to one which has a length of 0 (it is to be loaded from a file later) then an error will result and the instrument will be deactivated. <emphasis>kfn</emphasis> and <emphasis>afn</emphasis> must be initialized at the appropriate rate using <emphasis>init</emphasis>. Attempting to load an i-rate value into <emphasis>kfn</emphasis> or <emphasis>afn</emphasis> will result in an error.
+ </para>
+ </refsect2>
+ <warning>
+ <para>
+ Note that <emphasis>ptablew</emphasis> is always a k-rate opcode. This means that even its i-rate version runs at k-rate and will write the value of the i-rate variable. For this reason, the following code will not work as expected:
+ </para>
+<programlisting>
+<emphasis role="csdtag">&lt;CsoundSynthesizer&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsOptions&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsInstruments&gt;</emphasis>
+giFt <emphasis role="opc">ftgen</emphasis> 1, 0, 8, 2, 0
+<emphasis role="oblock">instr 1</emphasis>
+indx <emphasis role="op">=</emphasis> 0
+ <emphasis role="opc">ptablew</emphasis> 10, indx, giFt
+ival <emphasis role="opc">tab_i</emphasis> indx, giFt
+ <emphasis role="opc">print</emphasis> ival
+<emphasis role="oblock">endin</emphasis>
+<emphasis role="csdtag">&lt;/CsInstruments&gt;</emphasis>
+<emphasis role="csdtag">&lt;CsScore&gt;</emphasis>
+<emphasis role="stamnt">i</emphasis> 1 0 1
+<emphasis role="csdtag">&lt;/CsScore&gt;</emphasis>
+<emphasis role="csdtag">&lt;/CsoundSynthesizer&gt;</emphasis></programlisting>
+ <para>
+ Although it may seem this program should print a 10 to the console. It will print 0, because <link linkend="tab"><citetitle>tab_i</citetitle></link> will read the value at the initialization of the note, before the first performance pass, when <emphasis>ptablew</emphasis> writes its value.
+ </para>
+ </warning>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="tableiw"><citetitle>tableiw</citetitle></link>,
+ <link linkend="tablewkt"><citetitle>tablewkt</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn; after Robin Whittle</member>
+ <member>Feb 2012</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/push.xml b/opcodes/push.xml
index d4ae664..d877163 100644
--- a/opcodes/push.xml
+++ b/opcodes/push.xml
@@ -52,6 +52,19 @@
Any stack errors (trying to push when there is no more space, or pop from an empty stack, inconsistent number or type of arguments, etc.) are fatal and terminate performance.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the push opcode. It uses the file <ulink url="examples/push.csd"><citetitle>push.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the push opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/push.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See also</title>
<para>
@@ -60,7 +73,9 @@
<link linkend="pop_f"><citetitle>pop_f</citetitle></link> and
<link linkend="push_f"><citetitle>push_f</citetitle></link>.
</para>
+ <para>Using this opcode is somewhat hackish, as you can read here: <ulink url="http://csound.1045644.n5.nabble.com/passing-a-string-to-a-UDO-td1099284.html"></ulink></para>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>By: &nameistvan;.</para>
diff --git a/opcodes/puts.xml b/opcodes/puts.xml
index a426926..aaaa978 100644
--- a/opcodes/puts.xml
+++ b/opcodes/puts.xml
@@ -46,6 +46,28 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the puts opcode. It uses the file <ulink url="examples/puts.csd"><citetitle>puts.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the puts opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/puts.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+frequency in Hertz : 440
+frequency in Hertz : 441
+frequency in Hertz : 442
+....
+frequency in Hertz : 459
+frequency in Hertz : 460 </screen>
+ </para>
+ </refsect1>
+
+
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
diff --git a/opcodes/pvadd.xml b/opcodes/pvadd.xml
index 73ab68b..3a948b6 100644
--- a/opcodes/pvadd.xml
+++ b/opcodes/pvadd.xml
@@ -168,6 +168,14 @@ asig <emphasis role="opc">pvadd</emphasis> ktime, 1, <quote>oboe.pvoc</quote>,
Expect to have to scale up the amplitudes by factors of 10-100, by the way.
</para>
</note>
+ <para>
+ Here is a complete example of the pvadd opcode. It uses the file <ulink url="examples/pvadd.csd"><citetitle>pvadd.csd</citetitle></ulink>
+ <example>
+ <title>Example of the pvadd opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvadd.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/pvbufread.xml b/opcodes/pvbufread.xml
index 76fa2ac..31e7f3d 100644
--- a/opcodes/pvbufread.xml
+++ b/opcodes/pvbufread.xml
@@ -6,13 +6,11 @@
<refentrytitle>pvbufread</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvbufread</refname>
<refpurpose>
Reads from a phase vocoder analysis file and makes the retrieved data available.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -30,7 +28,7 @@
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifile</emphasis> -- the <emphasis>pvoc</emphasis> number (n in pvoc.n) or the name in quotes of the analysis file made using pvanal. (See <link linkend="pvoc"><citetitle>pvoc</citetitle></link>.)
+ <emphasis>ifile</emphasis> -- the <emphasis>pvoc</emphasis> number (n in pvoc.n) or the name in quotes of the analysis file made using <emphasis>pvanal</emphasis>. (See <link linkend="pvoc"><citetitle>pvoc</citetitle></link>.)
</para>
</refsect1>
@@ -44,18 +42,17 @@
<refsect1>
<title>Examples</title>
<para>
- The example below shows an example using <emphasis>pvbufread</emphasis> with <emphasis>pvinterp</emphasis> to interpolate between the sound of an oboe and the sound of a clarinet. The value of <emphasis>kinterp</emphasis> returned by a linseg is used to determine the timing of the transitions between the two sounds. The interpolation of frequencies and amplitudes are controlled by the same factor in this example, but for other effects it might be interesting to not have them synchronized in this way. In this example the sound will begin as a clarinet, transform into the oboe and then return again to the clarinet sound. The value of <emphasis>kfreqscale2</emphasis> is 1.065 because the oboe in this case is a semitone higher in pitch than the clarinet and this brings them approximately to the same pitch. The value of <emphasis>kampscale2</emphasis> is .75 because the analyzed clarinet was somewhat louder than the analyzed oboe. The setting of these two parameters make the transition quite smooth in this case, but such adjustments are by no means necessary or even advocated.
+ The example below shows an example using <emphasis>pvbufread</emphasis> with <emphasis>pvinterp</emphasis> to interpolate between the sound of an oboe and the sound of a clarinet. The value of <emphasis>kinterp</emphasis> returned by a <emphasis>linseg</emphasis> is used to determine the timing of the transitions between the two sounds. The interpolation of frequencies and amplitudes are controlled by the same factor in this example, but for other effects it might be interesting to not have them synchronized in this way. In this example the sound will begin as a clarinet, transform into the oboe and then return again to the clarinet sound. The value of <emphasis>kfreqscale2</emphasis> is 1.065 because the oboe in this case is a semitone higher in pitch than the clarinet and this brings them approximately to the same pitch. The value of <emphasis>kampscale2</emphasis> is 0.75 because the analyzed clarinet was somewhat louder than the analyzed oboe. The setting of these two parameters make the transition quite smooth in this case, but such adjustments are by no means necessary or even advocated.
</para>
<para>
<informalexample>
<programlisting>
-ktime1 <emphasis>line</emphasis> 0, p3, 3.5 ; used as index in the &quot;oboe.pvoc&quot; file
-ktime2 <emphasis>line</emphasis> 0, p3, 4.5 ; used as index in the &quot;clar.pvoc&quot; file
-kinterp <emphasis>linseg</emphasis> 1, p3*.15, 1, p3*.35, 0, p3*.25, 0, p3*.15, 1, p3*.1, 1
- <emphasis>pvbufread</emphasis> ktime1, &quot;oboe.pvoc&quot;
-apv <emphasis>pvinterp</emphasis> ktime2,1,&quot;clar.pvoc&quot;,1,1.065,1,.75,1-kinterp,1-kinterp
- </programlisting>
+ktime1 <emphasis role="opc">line</emphasis> 0, p3, 3.5 <emphasis role="comment">; used as index in the &quot;oboe.pvoc&quot; file</emphasis>
+ktime2 <emphasis role="opc">line</emphasis> 0, p3, 4.5 <emphasis role="comment">; used as index in the &quot;clar.pvoc&quot; file</emphasis>
+kinterp <emphasis role="opc">linseg</emphasis> 1, p3<emphasis role="op">*</emphasis>0.15, 1, p3<emphasis role="op">*</emphasis>0.35, 0, p3<emphasis role="op">*</emphasis>0.25, 0, p3<emphasis role="op">*</emphasis>0.15, 1, p3<emphasis role="op">*</emphasis>0.1, 1
+ <emphasis role="opc">pvbufread</emphasis> ktime1, &quot;oboe.pvoc&quot;
+apv <emphasis role="opc">pvinterp</emphasis> ktime2,1,&quot;clar.pvoc&quot;, 1, 1.065, 1, 0.75, 1<emphasis role="op">-</emphasis>kinterp, 1<emphasis role="op">-</emphasis>kinterp</programlisting>
</informalexample>
</para>
@@ -66,14 +63,21 @@ apv <emphasis>pvinterp</emphasis> ktime2,1,&quot;clar.pvoc&quot;,1,1.065,1,
<para>
<informalexample>
<programlisting>
-ktime1 <emphasis>line</emphasis> 0, p3, 3.5 ; used as index in the &quot;oboe.pvoc&quot; file
-ktime2 <emphasis>line</emphasis> 0, p3, 4.5 ; used as index in the &quot;clar.pvoc&quot; file
-kcross <emphasis>expon</emphasis> .001, p3, 1
- <emphasis>pvbufread</emphasis> ktime1, &quot;oboe.pvoc&quot;
-apv <emphasis>pvcross</emphasis> ktime2, 1, &quot;clar.pvoc&quot;, 1-kcross, kcross
- </programlisting>
+ktime1 <emphasis role="opc">line</emphasis> 0, p3, 3.5 <emphasis role="comment">; used as index in the &quot;oboe.pvoc&quot; file</emphasis>
+ktime2 <emphasis role="opc">line</emphasis> 0, p3, 4.5 <emphasis role="comment">; used as index in the &quot;clar.pvoc&quot; file</emphasis>
+kcross <emphasis role="opc">expon</emphasis> 0.001, p3, 1
+ <emphasis role="opc">pvbufread</emphasis> ktime1, &quot;oboe.pvoc&quot;
+apv <emphasis role="opc">pvcross</emphasis> ktime2, 1, &quot;clar.pvoc&quot;, 1<emphasis role="op">-</emphasis>kcross, kcross</programlisting>
</informalexample>
</para>
+ <para>
+ Here is a complete example of the pvbufread opcode. It uses the file <ulink url="examples/pvbufread.csd"><citetitle>pvbufread.csd</citetitle></ulink>
+ <example>
+ <title>Example of the pvbufread opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvbufread.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/pvcross.xml b/opcodes/pvcross.xml
index fbfb2d3..982075c 100644
--- a/opcodes/pvcross.xml
+++ b/opcodes/pvcross.xml
@@ -6,13 +6,11 @@
<refentrytitle>pvcross</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvcross</refname>
<refpurpose>
Applies the amplitudes from one phase vocoder analysis file to the data from a second file.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -30,7 +28,7 @@
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifile</emphasis> -- the <emphasis>pvoc</emphasis> number (n in pvoc.n) or the name in quotes of the analysis file made using pvanal. (See <link linkend="pvoc"><citetitle>pvoc</citetitle></link>.)
+ <emphasis>ifile</emphasis> -- the <emphasis>pvoc</emphasis> number (n in pvoc.n) or the name in quotes of the analysis file made using <emphasis>pvanal</emphasis>. (See <link linkend="pvoc"><citetitle>pvoc</citetitle></link>.)
</para>
<para>
@@ -46,7 +44,7 @@ its frequency content is varied by <emphasis>kfmod</emphasis>. The default value
</para>
<para>
- <emphasis>kfmod</emphasis> -- a control-rate transposition factor: a value of 1 incurs no transposition, 1.5 transposes up a perfect fifth, and .5 down an octave.
+ <emphasis>kfmod</emphasis> -- a control-rate transposition factor: a value of 1 incurs no transposition, 1.5 transposes up a perfect fifth, and 0.5 down an octave.
</para>
<para>
@@ -67,14 +65,21 @@ its frequency content is varied by <emphasis>kfmod</emphasis>. The default value
<para>
<informalexample>
<programlisting>
-ktime1 <emphasis>line</emphasis> 0, p3, 3.5 ; used as index in the &quot;oboe.pvoc&quot; file
-ktime2 <emphasis>line</emphasis> 0, p3, 4.5 ; used as index in the &quot;clar.pvoc&quot; file
-kcross <emphasis>expon</emphasis> .001, p3, 1
- <emphasis>pvbufread</emphasis> ktime1, &quot;oboe.pvoc&quot;
-apv <emphasis>pvcross</emphasis> ktime2, 1, &quot;clar.pvoc&quot;, 1-kcross, kcross
- </programlisting>
+ktime1 <emphasis role="opc">line</emphasis> 0, p3, 3.5 <emphasis role="comment">; used as index in the &quot;oboe.pvoc&quot; file</emphasis>
+ktime2 <emphasis role="opc">line</emphasis> 0, p3, 4.5 <emphasis role="comment">; used as index in the &quot;clar.pvoc&quot; file</emphasis>
+kcross <emphasis role="opc">expon</emphasis> 0.001, p3, 1
+ <emphasis role="opc">pvbufread</emphasis> ktime1, &quot;oboe.pvoc&quot;
+apv <emphasis role="opc">pvcross</emphasis> ktime2, 1, &quot;clar.pvoc&quot;, 1<emphasis role="op">-</emphasis>kcross, kcross</programlisting>
</informalexample>
</para>
+ <para>
+ Here is a complete example of the pvcross opcode. It uses the file <ulink url="examples/pvcross.csd"><citetitle>pvcross.csd</citetitle></ulink>
+ <example>
+ <title>Example of the pvcross opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvcross.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/pvinterp.xml b/opcodes/pvinterp.xml
index 6a5a79c..a9de25b 100644
--- a/opcodes/pvinterp.xml
+++ b/opcodes/pvinterp.xml
@@ -6,13 +6,11 @@
<refentrytitle>pvinterp</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvinterp</refname>
<refpurpose>
Interpolates between the amplitudes and frequencies of two phase vocoder analysis files.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -46,7 +44,7 @@
</para>
<para>
- <emphasis>kfreqscale1</emphasis>, <emphasis>kfreqscale2</emphasis>, <emphasis>kampscale1</emphasis>, <emphasis>kampscale2</emphasis> -- used in <emphasis>pvinterp</emphasis> to scale the frequencies and amplitudes stored in each frame of the phase vocoder analysis file. <emphasis>kfreqscale1</emphasis> and <emphasis>kampscale1</emphasis> scale the frequencies and amplitudes of the data from the file read by the previously called <link linkend="pvbufread"><citetitle>pvbufread</citetitle></link> (this data is passed internally to the pvinterp unit). <emphasis>kfreqscale2</emphasis> and <emphasis>kampscale2</emphasis> scale the frequencies and amplitudes of the file named by <emphasis>ifile</emphasis> in the <emphasis>pvinterp</emphasis> argument list and read within the <emphasis>pvinterp</emphasis> unit.
+ <emphasis>kfreqscale1</emphasis>, <emphasis>kfreqscale2</emphasis>, <emphasis>kampscale1</emphasis>, <emphasis>kampscale2</emphasis> -- used in <emphasis>pvinterp</emphasis> to scale the frequencies and amplitudes stored in each frame of the phase vocoder analysis file. <emphasis>kfreqscale1</emphasis> and <emphasis>kampscale1</emphasis> scale the frequencies and amplitudes of the data from the file read by the previously called <link linkend="pvbufread"><citetitle>pvbufread</citetitle></link> (this data is passed internally to the <emphasis>pvinterp</emphasis> unit). <emphasis>kfreqscale2</emphasis> and <emphasis>kampscale2</emphasis> scale the frequencies and amplitudes of the file named by <emphasis>ifile</emphasis> in the <emphasis>pvinterp</emphasis> argument list and read within the <emphasis>pvinterp</emphasis> unit.
</para>
<para>
@@ -54,7 +52,7 @@
</para>
<para>
- <emphasis>kfreqinterp</emphasis>, <emphasis>kampinterp</emphasis> -- used in <emphasis>pvinterp</emphasis>, determine the interpolation distance between the values of one phase vocoder file and the values of a second file. When the value of <emphasis>kfreqinterp</emphasis> is 1, the frequency values will be entirely those from the first file (read by the <emphasis>pvbufread</emphasis>), post scaling by the <emphasis>kfreqscale1</emphasis> argument. When the value of <emphasis>kfreqinterp</emphasis> is 0 the frequency values will be those of the second file (read by the <emphasis>pvinterp</emphasis> unit itself), post scaling by kfreqscale2. When <emphasis>kfreqinterp</emphasis> is between 0 and 1 the frequency values will be calculated, on a bin, by bin basis, as the percentage between each pair of frequencies (in other words, <emphasis>kfreqinterp</emphasis>=.5 will cause the frequencies values to be half way between the values in the set of data from the first file and the set of data from the second file).
+ <emphasis>kfreqinterp</emphasis>, <emphasis>kampinterp</emphasis> -- used in <emphasis>pvinterp</emphasis>, determine the interpolation distance between the values of one phase vocoder file and the values of a second file. When the value of <emphasis>kfreqinterp</emphasis> is 1, the frequency values will be entirely those from the first file (read by the <emphasis>pvbufread</emphasis>), post scaling by the <emphasis>kfreqscale1</emphasis> argument. When the value of <emphasis>kfreqinterp</emphasis> is 0 the frequency values will be those of the second file (read by the <emphasis>pvinterp</emphasis> unit itself), post scaling by <emphasis>kfreqscale2</emphasis>. When <emphasis>kfreqinterp</emphasis> is between 0 and 1 the frequency values will be calculated, on a bin, by bin basis, as the percentage between each pair of frequencies (in other words, <emphasis>kfreqinterp</emphasis>=0.5 will cause the frequencies values to be half way between the values in the set of data from the first file and the set of data from the second file).
</para>
<para>
@@ -65,20 +63,27 @@
<refsect1>
<title>Examples</title>
<para>
- The example below shows an example using <emphasis>pvbufread</emphasis> with <emphasis>pvinterp</emphasis> to interpolate between the sound of an oboe and the sound of a clarinet. The value of <emphasis>kinterp</emphasis> returned by a linseg is used to determine the timing of the transitions between the two sounds. The interpolation of frequencies and amplitudes are controlled by the same factor in this example, but for other effects it might be interesting to not have them synchronized in this way. In this example the sound will begin as a clarinet, transform into the oboe and then return again to the clarinet sound. The value of <emphasis>kfreqscale2</emphasis> is 1.065 because the oboe in this case is a semitone higher in pitch than the clarinet and this brings them approximately to the same pitch. The value of <emphasis>kampscale2</emphasis> is .75 because the analyzed clarinet was somewhat louder than the analyzed oboe. The setting of these two parameters make the transition quite smooth in this case, but such adjustments are by no means necessary or even advocated.
+ The example below shows an example using <emphasis>pvbufread</emphasis> with <emphasis>pvinterp</emphasis> to interpolate between the sound of an oboe and the sound of a clarinet. The value of <emphasis>kinterp</emphasis> returned by a <emphasis>linseg</emphasis> is used to determine the timing of the transitions between the two sounds. The interpolation of frequencies and amplitudes are controlled by the same factor in this example, but for other effects it might be interesting to not have them synchronized in this way. In this example the sound will begin as a clarinet, transform into the oboe and then return again to the clarinet sound. The value of <emphasis>kfreqscale2</emphasis> is 1.065 because the oboe in this case is a semitone higher in pitch than the clarinet and this brings them approximately to the same pitch. The value of <emphasis>kampscale2</emphasis> is 0.75 because the analyzed clarinet was somewhat louder than the analyzed oboe. The setting of these two parameters make the transition quite smooth in this case, but such adjustments are by no means necessary or even advocated.
</para>
<para>
<informalexample>
<programlisting>
-ktime1 <emphasis>line</emphasis> 0, p3, 3.5 ; used as index in the &quot;oboe.pvoc&quot; file
-ktime2 <emphasis>line</emphasis> 0, p3, 4.5 ; used as index in the &quot;clar.pvoc&quot; file
-kinterp <emphasis>linseg</emphasis> 1, p3*.15, 1, p3*.35, 0, p3*.25, 0, p3*.15, 1, p3*.1, 1
- <emphasis>pvbufread</emphasis> ktime1, &quot;oboe.pvoc&quot;
-apv <emphasis>pvinterp</emphasis> ktime2,1,&quot;clar.pvoc&quot;,1,1.065,1,.75,1-kinterp,1-kinterp
- </programlisting>
+ktime1 <emphasis role="opc">line</emphasis> 0, p3, 3.5 <emphasis role="comment">; used as index in the &quot;oboe.pvoc&quot; file</emphasis>
+ktime2 <emphasis role="opc">line</emphasis> 0, p3, 4.5 <emphasis role="comment">; used as index in the &quot;clar.pvoc&quot; file</emphasis>
+kinterp <emphasis role="opc">linseg</emphasis> 1, p3<emphasis role="op">*</emphasis>0.15, 1, p3<emphasis role="op">*</emphasis>0.35, 0, p3<emphasis role="op">*</emphasis>0.25, 0, p3<emphasis role="op">*</emphasis>0.15, 1, p3<emphasis role="op">*</emphasis>0.1, 1
+ <emphasis role="opc">pvbufread</emphasis> ktime1, &quot;oboe.pvoc&quot;
+apv <emphasis role="opc">pvinterp</emphasis> ktime2,1,&quot;clar.pvoc&quot;, 1, 1.065, 1, 0.75, 1<emphasis role="op">-</emphasis>kinterp, 1<emphasis role="op">-</emphasis>kinterp</programlisting>
</informalexample>
</para>
+ <para>
+ Here is a complete example of the pvinterp opcode. It uses the file <ulink url="examples/pvinterp.csd"><citetitle>pvinterp.csd</citetitle></ulink>
+ <example>
+ <title>Example of the pvinterp opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvinterp.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/pvoc.xml b/opcodes/pvoc.xml
index 3f880f4..58decea 100644
--- a/opcodes/pvoc.xml
+++ b/opcodes/pvoc.xml
@@ -64,7 +64,19 @@
This implementation of <emphasis>pvoc</emphasis> was orignally written by Dan Ellis. It is based in part on the system of Mark Dolson, but the pre-analysis concept is new. The spectral extraction and amplitude gating (new in Csound version 3.56) were added by Richard Karpen based on functions in SoundHack by Tom Erbe.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the pvoc opcode. It uses the file <ulink url="examples/pvoc.csd"><citetitle>pvoc.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pvoc opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvoc.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/pvread.xml b/opcodes/pvread.xml
index c8f7847..80dbef2 100644
--- a/opcodes/pvread.xml
+++ b/opcodes/pvread.xml
@@ -6,19 +6,17 @@
<refentrytitle>pvread</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvread</refname>
<refpurpose>
Reads from a phase vocoder analysis file and returns the frequency and amplitude from a single analysis channel or bin.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- <emphasis>pvread</emphasis> reads from a <link linkend="pvoc"><citetitle>pvoc</citetitle></link> file and returns the frequency and amplitude from a single analysis channel or bin. The returned values can be used anywhere else in the Csound instrument. For example, one can use them as arguments to an oscillator to synthesize a single component from an analyzed signal or a bank of pvreads can be used to resynthesize the analyzed sound using additive synthesis by passing the frequency and magnitude values to a bank of oscillators.
+ <emphasis>pvread</emphasis> reads from a <link linkend="pvoc"><citetitle>pvoc</citetitle></link> file and returns the frequency and amplitude from a single analysis channel or bin. The returned values can be used anywhere else in the Csound instrument. For example, one can use them as arguments to an oscillator to synthesize a single component from an analyzed signal or a bank of <emphasis>pvreads</emphasis> can be used to resynthesize the analyzed sound using additive synthesis by passing the frequency and magnitude values to a bank of oscillators.
</para>
</refsect1>
@@ -30,7 +28,7 @@
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifile</emphasis> -- the <emphasis>pvoc</emphasis> number (n in pvoc.n) or the name in quotes of the analysis file made using pvanal. (See <link linkend="pvoc"><citetitle>pvoc</citetitle></link>.)
+ <emphasis>ifile</emphasis> -- the <emphasis>pvoc</emphasis> number (n in pvoc.n) or the name in quotes of the analysis file made using <emphasis>pvanal</emphasis>. (See <link linkend="pvoc"><citetitle>pvoc</citetitle></link>.)
</para>
<para>
@@ -41,7 +39,7 @@
<refsect1>
<title>Performance</title>
<para>
- <emphasis>kfreq, kamp</emphasis> -- outputs of the <emphasis>pvread</emphasis> unit. These values, retrieved from a phase vocoder analysis file, represent the values of frequency and amplitude from a single analysis channel specified in the ibin argument. Interpolation between analysis frames is performed at k-rate resolution and dependent of course upon the rate and direction of ktimpnt.
+ <emphasis>kfreq, kamp</emphasis> -- outputs of the <emphasis>pvread</emphasis> unit. These values, retrieved from a phase vocoder analysis file, represent the values of frequency and amplitude from a single analysis channel specified in the <emphasis>ibin</emphasis> argument. Interpolation between analysis frames is performed at k-rate resolution and dependent of course upon the rate and direction of <emphasis>ktimpnt</emphasis>.
</para>
<para>
@@ -52,20 +50,13 @@
<refsect1>
<title>Examples</title>
<para>
- The example below shows the use <emphasis>pvread</emphasis> to synthesize a single component from a phase vocoder analysis file. It should be noted that the <emphasis>kfreq</emphasis> and <emphasis>kamp</emphasis> outputs can be used for any kind of synthesis, filtering, processing, and so on.
- </para>
-
- <para>
- <informalexample>
- <programlisting>
-ktime <emphasis>line</emphasis> 0, p3, 3
-kfreq, kamp <emphasis>pvread</emphasis> ktime, &quot;pvoc.file&quot;, 7 ; read
- ;data from 7th analysis bin.
-asig <emphasis>oscili</emphasis> kamp, kfreq, 1 ; function 1
- ;is a stored sine
- </programlisting>
- </informalexample>
- </para>
+ The example below shows the use <emphasis>pvread</emphasis> to synthesize a single component at a time from a phase vocoder analysis file. It should be noted that the <emphasis>kfreq</emphasis> and <emphasis>kamp</emphasis> outputs can be used for any kind of synthesis, filtering, processing, and so on.
+ <example>
+ <title>Example of the pvread opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvread.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/pvs2tab.xml b/opcodes/pvs2tab.xml
new file mode 100644
index 0000000..6a5ba6a
--- /dev/null
+++ b/opcodes/pvs2tab.xml
@@ -0,0 +1,73 @@
+
+<refentry id="pvs2tab">
+<indexterm id="IndexPvs2tab"><primary>pvs2tab</primary></indexterm>
+
+ <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>pvs2tab</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>pvs2tab</refname>
+ <refpurpose>
+ Copies spectral data to t-variables.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Copies a pvs frame to a t-variable. Currently only AMP+FREQ and AMP+PHASE formats allowed. This opcode requires the t-type to be defined, which means it only works in the new bison/flex-based parser.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>kframe <command>pvs2tab</command> tvar, fsig</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kframe</emphasis> -- current copied frame number. It can be used to detect when a new frame has been copied.
+ </para>
+
+ <para>
+ <emphasis>tvar</emphasis> -- t-variable containing the output. It is produced at every k-period, but may not contain a new frame, pvs frames are produced at their own frame rate that is independent of kr. Generally, this vector needs to be big enough to contain the frame samples, i.e. N+2 (N is the dft size). If smaller, only a portion of the frame will be copied; if bigger, unused points will exist at higher indexes.
+ </para>
+
+ <para>
+ <emphasis>fsig</emphasis> -- input fsig to be copied.
+ </para>
+ <para>
+ <emphasis>iwinsize</emphasis> -- size of the analysis window, defaults to <emphasis>isize</emphasis>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ <example>
+ <title>Example</title>
+ <programlisting>
+t1 init 1026
+a1 inch 1
+fsig1 pvsanal a1, 1024,256,1024, 1
+kframe <emphasis role="opc">pvs2tab</emphasis>t1, fsig1</programlisting>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>October 2011 </member>
+ </simplelist>
+ </para>
+
+ <para>New plugin in version 5</para>
+ <para>October 2011.</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/pvsanal.xml b/opcodes/pvsanal.xml
index 2d7d4dc..ea0695c 100644
--- a/opcodes/pvsanal.xml
+++ b/opcodes/pvsanal.xml
@@ -6,13 +6,11 @@
<refentrytitle>pvsanal</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvsanal</refname>
<refpurpose>
Generate an fsig from a mono audio source ain, using phase vocoder overlap-add analysis.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -30,23 +28,23 @@
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifftsize</emphasis> -- The FFT size in samples. Need not be a power of two (though these are especially efficient), but must be even. Odd numbers are rounded up internally. ifftsize determines the number of analysis bins in fsig, as ifftsize/2 + 1. For example, where ifftsize = 1024, fsig will contain 513 analysis bins, ordered linearly from the fundamental to Nyquist. The fundamental of analysis (which in principle gives the lowest resolvable frequency) is determined as sr/ifftsize. Thus, for the example just given and assuming sr = 44100, the fundamental of analysis is 43.07Hz. In practice, due to the phase-preserving nature of the phase vocoder, the frequency of any bin can deviate bilaterally, so that DC components are recorded. Given a strongly pitched signal, frequencies in adjacent bins can bunch very closely together, around partials in the source, and the lowest bins may even have negative frequencies.
+ <emphasis>ifftsize</emphasis> -- The FFT size in samples. Need not be a power of two (though these are especially efficient), but must be even. Odd numbers are rounded up internally. <emphasis>ifftsize</emphasis> determines the number of analysis bins in <emphasis>fsig</emphasis>, as <emphasis>ifftsize/2 + 1</emphasis>. For example, where <emphasis>ifftsize</emphasis> = 1024, <emphasis>fsig</emphasis> will contain 513 analysis bins, ordered linearly from the fundamental to Nyquist. The fundamental of analysis (which in principle gives the lowest resolvable frequency) is determined as <emphasis>sr/ifftsize</emphasis>. Thus, for the example just given and assuming <emphasis>sr</emphasis> = 44100, the fundamental of analysis is 43.07Hz. In practice, due to the phase-preserving nature of the phase vocoder, the frequency of any bin can deviate bilaterally, so that DC components are recorded. Given a strongly pitched signal, frequencies in adjacent bins can bunch very closely together, around partials in the source, and the lowest bins may even have negative frequencies.
</para>
<para>
- As a rule, the only reason to use a non power-of-two value for ifftsize would be to match the known fundamental frequency of a strongly pitched source. Values with many small factors can be almost as efficient as power-of-two sizes; for example: 384, for a source pitched at around low A=110Hz.
+ As a rule, the only reason to use a non power-of-two value for <emphasis>ifftsize</emphasis> would be to match the known fundamental frequency of a strongly pitched source. Values with many small factors can be almost as efficient as power-of-two sizes; for example: 384, for a source pitched at around low A=110Hz.
</para>
<para>
- <emphasis>ioverlap</emphasis> -- The distance in samples (<quote>hop size</quote>) between overlapping analysis frames. As a rule, this needs to be at least ifftsize/4, e.g. 256 for the example above. ioverlap determines the underlying analysis rate, as sr/ioverlap. ioverlap does not require to be a simple factor of ifftsize; for example a value of 160 would be legal. The choice of ioverlap may be dictated by the degree of pitch modification applied to the fsig, if any. As a rule of thumb, the more extreme the pitch shift, the higher the analysis rate needs to be, and hence the smaller the value for ioverlap. A higher analysis rate can also be advantageous with broadband transient sounds, such as drums (where a small analysis window gives less smearing, but more frequency-related errors).
+ <emphasis>ioverlap</emphasis> -- The distance in samples (<quote>hop size</quote>) between overlapping analysis frames. As a rule, this needs to be at least <emphasis>ifftsize/4</emphasis>, e.g. 256 for the example above. <emphasis>ioverlap</emphasis> determines the underlying analysis rate, as <emphasis>sr/ioverlap</emphasis>. <emphasis>ioverlap</emphasis> does not require to be a simple factor of <emphasis>ifftsize</emphasis>; for example a value of 160 would be legal. The choice of <emphasis>ioverlap</emphasis> may be dictated by the degree of pitch modification applied to the <emphasis>fsig</emphasis>, if any. As a rule of thumb, the more extreme the pitch shift, the higher the analysis rate needs to be, and hence the smaller the value for <emphasis>ioverlap</emphasis>. A higher analysis rate can also be advantageous with broadband transient sounds, such as drums (where a small analysis window gives less smearing, but more frequency-related errors).
</para>
<para>
- Note that it is possible, and reasonable, to have distinct fsigs in an orchestra (even in the same instrument), running at different analysis rates. Interactions between such fsigs is currently unsupported, and the fsig assignment opcode does not allow copying between fsigs with different properties, even if the only difference is in ioverlap. However, this is not a closed issue, as it is possible in theory to achieve crude rate conversion (especially with regard to in-memory analysis files) in ways analogous to time-domain techniques.
+ Note that it is possible, and reasonable, to have distinct fsigs in an orchestra (even in the same instrument), running at different analysis rates. Interactions between such fsigs is currently unsupported, and the fsig assignment opcode does not allow copying between fsigs with different properties, even if the only difference is in <emphasis>ioverlap</emphasis>. However, this is not a closed issue, as it is possible in theory to achieve crude rate conversion (especially with regard to in-memory analysis files) in ways analogous to time-domain techniques.
</para>
<para>
- <emphasis>iwinsize</emphasis> -- The size in samples of the analysis window filter (as set by iwintype). This must be at least ifftsize, and can usefully be larger. Though other proportions are permitted, it is recommended that iwinsize always be an integral multiple of ifftsize, e.g. 2048 for the example above. Internally, the analysis window (Hamming, von Hann) is multiplied by a sinc function, so that amplitudes are zero at the boundaries between frames. The larger analysis window size has been found to be especially important for oscillator bank resynthesis (e.g. using pvsadsyn), as it has the effect of increasing the frequency resolution of the analysis, and hence the accuracy of the resynthesis. As noted above, iwinsize determines the overall latency of the analysis/resynthesis system. In many cases, and especially in the absence of pitch modifications, it will be found that setting iwinsize=ifftsize works very well, and offers the lowest latency.
+ <emphasis>iwinsize</emphasis> -- The size in samples of the analysis window filter (as set by <emphasis>iwintype</emphasis>). This must be at least <emphasis>ifftsize</emphasis>, and can usefully be larger. Though other proportions are permitted, it is recommended that <emphasis>iwinsize</emphasis> always be an integral multiple of <emphasis>ifftsize</emphasis>, e.g. 2048 for the example above. Internally, the analysis window (Hamming, von Hann) is multiplied by a sinc function, so that amplitudes are zero at the boundaries between frames. The larger analysis window size has been found to be especially important for oscillator bank resynthesis (e.g. using <emphasis>pvsadsyn</emphasis>), as it has the effect of increasing the frequency resolution of the analysis, and hence the accuracy of the resynthesis. As noted above, <emphasis>iwinsize</emphasis> determines the overall latency of the analysis/resynthesis system. In many cases, and especially in the absence of pitch modifications, it will be found that setting <emphasis>iwinsize=ifftsize</emphasis> works very well, and offers the lowest latency.
</para>
<para>
@@ -98,14 +96,12 @@
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-ain in ; live source
-ffin pvsanal ain,1024,256,2048,0 ; analyze, using Hamming
-ffout pvsmaska ffin,1,0.75 ; apply eq from f-table
-aout pvsynth ffout ; and resynthesize
- </programlisting>
- </informalexample>
+ Here is an example of the pvsanal opcode. It uses the file <ulink url="examples/pvsanal.csd"><citetitle>pvsanal.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pvsanal opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsanal.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
diff --git a/opcodes/pvsbandp.xml b/opcodes/pvsbandp.xml
index 91828f6..d5382ec 100644
--- a/opcodes/pvsbandp.xml
+++ b/opcodes/pvsbandp.xml
@@ -23,8 +23,8 @@
<refsect1>
<title>Syntax</title>
- <synopsis>fsig <command>pvsbandp</command> fsigin, xlowcut,
- xlowfull, xhighfull, xhighcut[, ktype]</synopsis>
+ <synopsis>fsig <command>pvsbandp</command> fsigin, xlowcut, xlowfull, \
+ xhighfull, xhighcut[, ktype]</synopsis>
</refsect1>
<refsect1>
@@ -48,7 +48,8 @@
<literallayout>
(1 - exp( r*type )) / (1 - exp(type))
</literallayout>
- This includes a linear dB shape when ktype is log(10) or about 2.30.
+ This includes a linear dB shape when <emphasis>ktype</emphasis> is
+ <emphasis>log</emphasis>(10) or about 2.30.
</para>
<para>
@@ -88,7 +89,7 @@ ________/ \______________
<link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
<link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>,
<link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>,
- <link linkend="pvsbandr"><citetitle>pvsadsyn</citetitle></link>
+ <link linkend="pvsbandr"><citetitle>pvsbandr</citetitle></link>
</para>
</refsect1>
diff --git a/opcodes/pvsbandr.xml b/opcodes/pvsbandr.xml
index 445e20b..edb4b26 100644
--- a/opcodes/pvsbandr.xml
+++ b/opcodes/pvsbandr.xml
@@ -17,14 +17,14 @@
<title>Description</title>
<para>
Filter the pvoc frames, rejecting bins whose frequency is within a
- band, and with linear interpolation for transitional bands.
+ band, and with linear interpolation for transitional bands.
</para>
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis>fsig <command>pvsbandr</command> fsigin, xlowcut,
- xlowfull, xhighfull, xhighcut[, ktype]</synopsis>
+ <synopsis>fsig <command>pvsbandr</command> fsigin, xlowcut, xlowfull, \
+ xhighfull, xhighcut[, ktype]</synopsis>
</refsect1>
<refsect1>
@@ -51,7 +51,8 @@
<literallayout>
(1 - exp( r*type )) / (1 - exp(type))
</literallayout>
- This includes a linear dB shape when ktype is log(10) or about 2.30.
+ This includes a linear dB shape when <emphasis>ktype</emphasis> is
+ <emphasis>log</emphasis>(10) or about 2.30.
</para>
<para>
@@ -89,7 +90,7 @@ ________ ______________
<link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
<link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>,
<link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>,
- <link linkend="pvsbandp"><citetitle>pvsadsyn</citetitle></link>
+ <link linkend="pvsbandp"><citetitle>pvsbandp</citetitle></link>
</para>
</refsect1>
diff --git a/opcodes/pvsbuffer.xml b/opcodes/pvsbuffer.xml
index 3c6c635..3c6c635 100755..100644
--- a/opcodes/pvsbuffer.xml
+++ b/opcodes/pvsbuffer.xml
diff --git a/opcodes/pvsbufread.xml b/opcodes/pvsbufread.xml
index 5e5b0db..9cb6e11 100755..100644
--- a/opcodes/pvsbufread.xml
+++ b/opcodes/pvsbufread.xml
@@ -1,134 +1,133 @@
-
-<refentry id="pvsbufread">
-<indexterm id="Indexpvsbufread"><primary>pvsbufread</primary></indexterm>
-
- <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
- <refmeta>
- <refentrytitle>pvsbufread</refentrytitle>
- </refmeta>
- <refnamediv>
- <refname>pvsbufread</refname>
- <refpurpose>
- This opcode reads a circular buffer of f-signals (streaming PV signals).
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- This opcode sets up and writes to a circular buffer of length ilen (secs),
- giving a handle for the buffer and a time pointer, which holds the
- current write position (also in seconds). It can be used with one or
- more pvsbufread opcodes. Writing is circular, wrapping around at the
- end of the buffer.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>fsig <command>pvsbufread</command> ktime, khandle[, ilo, ihi] </synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialisation</title>
- <para>
- <emphasis>ilo, ihi</emphasis> -- set the lowest and highest freqs to be read from the buffer (defaults to 0, Nyquist).
- </para>
-
- <title>Performance</title>
- <para>
- <emphasis>fsig</emphasis> -- output pv stream
- </para>
- <para>
- <emphasis>ktime</emphasis> -- time position of reading pointer (in secs).
- </para>
- <para>
- <emphasis>khandle</emphasis> -- handle identifying the buffer to be read. When using k-rate
-handles, it is important to initialise the k-rate variable to a given existing handle. When changing
-buffers, fsig buffers need to be compatible (same fsig format).
- </para>
- <para>
- <emphasis>pvsbufread</emphasis> reads f-signals from a buffer created by
- </para>
- <para>
- With this opcode and <link linkend="pvsbuffer"><citetitle>pvsbuffer</citetitle></link>, it is possible to, among other things:
- <simplelist>
- <listitem><simpara>time-stretch/compress a fsig stream, by reading it at
-different rates</simpara></listitem>
- <listitem><simpara>delay a fsig or portions of it.</simpara></listitem>
- <listitem><simpara>'brassage' two or more fsigs by switching buffers, since
-the reading handles are k-rate. Note that, when using k-rate
-handles, it is important to initialise the k-rate variable to a
-given handle (so that the fsig initialisation can take place)
-and it is only possible to switch handles between compatible
-fsig buffers (with the same fftsize and overlap).</simpara></listitem>
- </simplelist>
- </para>
- <note>
- <para>It is important that the handle value passed to <emphasis>pvsbufread</emphasis> is valid and was created by <link linkend="pvsbuffer"><citetitle>pvsbuffer</citetitle></link>. Csound will crash with invalid handles.
- </para>
- </note>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the pvsbufread opcode. It does 'brassage' by switching between two buffers.
- <example>
- <title>Example of the pvsbufread opcode</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
-
- <programlisting>
-fsig1 pvsanal asig1,1024,256,1024,1
-fsig2 pvsanal asig2,1024,256,1024,1
-
-
-ibuf1,kt1 pvsbuffer fsig1, 10 ; 10-sec buf with fsig1
-ibuf2,kt2 pvsbuffer fsig2, 7 ; 7-sec buf with fsig2
-
-
-khan init ibuf1 ; initialise handle to buf1
-
-
-if ktrig > 0 then ; switch buffers according to trigger
-khan = ibuf2
-else
-khan = ibuf1
-endif
-
-
-fsb pvsbufread kt1, khan ; read buffer
- </programlisting>
-
- </example>
- </para>
- <para>
- Here is an example of the pvsbufread opcode. It uses the file <ulink url="examples/pvsbufread.csd"><citetitle>pvsbufread.csd</citetitle></ulink>.
- <example>
- <title>Example of the pvsbufread opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/pvsbufread.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
- <link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>,
- <link linkend="pvsbuffer"><citetitle>pvsbuffer</citetitle></link>,
- <link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: &namevictor;</member>
- <member>July 2007</member>
- </simplelist>
- </para>
- </refsect1>
-</refentry>
+
+<refentry id="pvsbufread">
+<indexterm id="Indexpvsbufread"><primary>pvsbufread</primary></indexterm>
+
+ <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>pvsbufread</refentrytitle>
+ </refmeta>
+ <refnamediv>
+ <refname>pvsbufread</refname>
+ <refpurpose>
+ This opcode reads a circular buffer of f-signals (streaming PV signals).
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ This opcode reads from a circular buffer of length ilen (secs),
+ taking a handle for the buffer and a time pointer, which holds the
+ current read position (also in seconds). It is used in conjunction with a
+ <emphasis>pvsbuffer</emphasis> opocde.
+ Reading is circular, wrapping around at the end of the buffer.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>fsig <command>pvsbufread</command> ktime, khandle[, ilo, ihi, iclear] </synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialisation</title>
+ <para>
+ <emphasis>ilo, ihi</emphasis> -- set the lowest and highest freqs to be read from the buffer (defaults to 0, Nyquist).
+ </para>
+ <para>
+ <emphasis>iclear</emphasis> -- set to 1 to clear output fsig before every write (default 1), 0 tells the opcode not to clear
+ the output fsig. This is relevant when writing to subsets of an fsig frame using <emphasis>ilo</emphasis>, <emphasis>ihi</emphasis>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>fsig</emphasis> -- output pv stream
+ </para>
+ <para>
+ <emphasis>ktime</emphasis> -- time position of reading pointer (in secs).
+ </para>
+ <para>
+ <emphasis>khandle</emphasis> -- handle identifying the buffer to be read. When using k-rate
+ handles, it is important to initialise the k-rate variable to a given existing handle. When changing
+ buffers, fsig buffers need to be compatible (same fsig format).
+ </para>
+ <para>
+ With this opcode and <link linkend="pvsbuffer"><citetitle>pvsbuffer</citetitle></link>, it is possible to, among other things:
+ <itemizedlist>
+ <listitem><simpara>time-stretch/compress a fsig stream, by reading it at
+ different rates</simpara></listitem>
+ <listitem><simpara>delay a fsig or portions of it.</simpara></listitem>
+ <listitem><simpara>'brassage' two or more fsigs by switching buffers, since
+ the reading handles are k-rate. Note that, when using k-rate
+ handles, it is important to initialise the k-rate variable to a
+ given handle (so that the fsig initialisation can take place)
+ and it is only possible to switch handles between compatible
+ fsig buffers (with the same fftsize and overlap).</simpara></listitem>
+ </itemizedlist>
+ </para>
+ <note>
+ <para>It is important that the handle value passed to <emphasis>pvsbufread</emphasis> is valid and was created by <link linkend="pvsbuffer"><citetitle>pvsbuffer</citetitle></link>. Csound will crash with invalid handles.
+ </para>
+ </note>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the pvsbufread opcode. It does 'brassage' by switching between two buffers.
+ <example>
+ <title>Example of the pvsbufread opcode</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+
+ <programlisting>
+fsig1 <emphasis role="opc">pvsanal</emphasis> asig1, 1024, 256, 1024, 1
+fsig2 <emphasis role="opc">pvsanal</emphasis> asig2, 1024, 256, 1024, 1
+
+
+ibuf1, kt1 <emphasis role="opc">pvsbuffer</emphasis> fsig1, 10 <emphasis role="comment">; 10-sec buf with fsig1</emphasis>
+ibuf2, kt2 <emphasis role="opc">pvsbuffer</emphasis> fsig2, 7 <emphasis role="comment">; 7-sec buf with fsig2</emphasis>
+
+khan <emphasis role="opc">init</emphasis> ibuf1 <emphasis role="comment">; initialise handle to buf1</emphasis>
+
+<emphasis role="opc">if</emphasis> ktrig <emphasis role="op">&gt;</emphasis> 0 <emphasis role="opc">then</emphasis> <emphasis role="comment">; switch buffers according to trigger</emphasis>
+khan <emphasis role="op">=</emphasis> ibuf2
+<emphasis role="opc">else</emphasis>
+khan <emphasis role="op">=</emphasis> ibuf1
+<emphasis role="opc">endif</emphasis>
+
+fsb <emphasis role="opc">pvsbufread</emphasis> kt1, khan <emphasis role="comment">; read buffer</emphasis></programlisting>
+ </example>
+ </para>
+ <para>
+ Here is an example of the pvsbufread opcode. It uses the file <ulink url="examples/pvsbufread.csd"><citetitle>pvsbufread.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pvsbufread opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsbufread.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
+ <link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>,
+ <link linkend="pvsbuffer"><citetitle>pvsbuffer</citetitle></link>,
+ <link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>July 2007</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
+
diff --git a/opcodes/pvsbufread2.xml b/opcodes/pvsbufread2.xml
new file mode 100644
index 0000000..766bb7c
--- /dev/null
+++ b/opcodes/pvsbufread2.xml
@@ -0,0 +1,109 @@
+
+<refentry id="pvsbufread2">
+<indexterm id="Indexpvsbufread2"><primary>pvsbufread2</primary></indexterm>
+
+ <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>pvsbufread2</refentrytitle>
+ </refmeta>
+ <refnamediv>
+ <refname>pvsbufread2</refname>
+ <refpurpose>
+ This opcode reads a circular buffer of f-signals (streaming PV signals), with binwise additional delays.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ This opcode reads from a circular buffer of length ilen (secs),
+ taking a handle for the buffer and a time pointer, which holds the
+ current read position (also in seconds). It is used in conjunction with a <emphasis>pvsbuffer</emphasis> opocde.
+ Reading is circular, wrapping around at the end of the buffer. Extra delay times are taken from
+ a function table, with each point on it defining a delay time in seconds affecting the corresponding bin.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>fsig <command>pvsbufread2</command> ktime, khandle, ift1, ift2 </synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ift1</emphasis> -- function table with at least fftisze/2+1 points where delays (in secs) for bin amplitudes are
+ set (function table positions are equivalent to bin numbers)
+ </para>
+ <para>
+ <emphasis>ift2</emphasis> -- function table with at least fftisze/2+1 points where delays (in secs) for bin frequencies are
+ set (function table positions are equivalent to bin numbers)
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>fsig</emphasis> -- output pv stream
+ </para>
+ <para>
+ <emphasis>ktime</emphasis> -- time position of reading pointer (in secs).
+ </para>
+ <para>
+ <emphasis>khandle</emphasis> -- handle identifying the buffer to be read. When using k-rate
+ handles, it is important to initialise the k-rate variable to a given existing handle. When changing
+ buffers, fsig buffers need to be compatible (same fsig format).
+ </para>
+ <para>
+ With this opcode and <link linkend="pvsbuffer"><citetitle>pvsbuffer</citetitle></link>, it is possible to, among other things:
+ <itemizedlist>
+ <listitem><simpara>time-stretch/compress a fsig stream, by reading it at
+ different rates</simpara></listitem>
+ <listitem><simpara>delay a fsig or portions of it.</simpara></listitem>
+ <listitem><simpara>'brassage' two or more fsigs by switching buffers, since
+ the reading handles are k-rate. Note that, when using k-rate
+ handles, it is important to initialise the k-rate variable to a
+ given handle (so that the fsig initialisation can take place)
+ and it is only possible to switch handles between compatible
+ fsig buffers (with the same fftsize and overlap).</simpara></listitem>
+ </itemizedlist>
+ </para>
+ <note>
+ <para>
+ It is important that the handle value passed to <emphasis>pvsbufread2</emphasis> is valid and was created by <link linkend="pvsbuffer"><citetitle>pvsbuffer</citetitle></link>. Csound will crash with invalid handles.
+ </para>
+ </note>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the pvsbufread2 opcode. It uses the file <ulink url="examples/pvsbufread2.csd"><citetitle>pvsbufread2.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pvsbufread2 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsbufread2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
+ <link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>,
+ <link linkend="pvsbuffer"><citetitle>pvsbuffer</citetitle></link>,
+ <link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>July 2011</member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/pvscale.xml b/opcodes/pvscale.xml
index 8e0caf1..7ebd97e 100644
--- a/opcodes/pvscale.xml
+++ b/opcodes/pvscale.xml
@@ -17,8 +17,8 @@
<title>Description</title>
<para>
Scale the frequency components of a pv stream, resulting
-in pitch shift. Output amplitudes can be optionally modified in order
-to attempt formant preservation.
+ in pitch shift. Output amplitudes can be optionally modified in order
+ to attempt formant preservation.
</para>
</refsect1>
@@ -43,10 +43,10 @@ to attempt formant preservation.
<para>
<emphasis>kkeepform</emphasis> -- attempt to keep input signal
- formants; 0: do not keep formants;
- 1: keep formants using a liftered cepstrum method; 2: keep formants by
- using a true envelope method
- (defaults to 0).
+ formants; 0: do not keep formants;
+ 1: keep formants using a liftered cepstrum method; 2: keep formants by
+ using a true envelope method
+ (defaults to 0).
</para>
<para>
@@ -76,17 +76,16 @@ to attempt formant preservation.
<example>
<title>Example</title>
<programlisting>
-asig in ; get the signal in
+asig <emphasis role="opc">in</emphasis> <emphasis role="comment">; get the signal in</emphasis>
-fsig pvsanal asig, 1024, 256, 1024, 1 ; analyse it
-ftps pvscale fsig, 1.5, 1, 1 ; transpose it keeping formants
-atps pvsynth ftps ; synthesise it
+fsig <emphasis role="opc">pvsanal</emphasis> asig, 1024, 256, 1024, 1 <emphasis role="comment">; analyse it</emphasis>
+ftps <emphasis role="opc">pvscale</emphasis> fsig, 1.5, 1, 1 <emphasis role="comment">; transpose it keeping formants</emphasis>
+atps <emphasis role="opc">pvsynth</emphasis> ftps <emphasis role="comment">; synthesise it</emphasis>
-adp delayr .1 ; delay original signal
-adel deltapn 1024 ; by 1024 samples
- delayw asig
- out atps+adel ; add tranposed and original
-</programlisting>
+adp <emphasis role="opc">delayr</emphasis> 0.1 <emphasis role="comment">; delay original signal</emphasis>
+adel <emphasis role="opc">deltapn</emphasis> 1024 <emphasis role="comment">; by 1024 samples</emphasis>
+ <emphasis role="opc">delayw</emphasis> asig
+ <emphasis role="opc">out</emphasis> atps <emphasis role="op">+</emphasis> adel <emphasis role="comment">; add tranposed and original</emphasis></programlisting>
</example>
</para>
<para>
diff --git a/opcodes/pvsdemix.xml b/opcodes/pvsdemix.xml
index 773c750..ef8ec28 100644
--- a/opcodes/pvsdemix.xml
+++ b/opcodes/pvsdemix.xml
@@ -6,13 +6,11 @@
<refentrytitle>pvsdemix</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvsdemix</refname>
<refpurpose>
-Spectral azimuth-based de-mixing of stereo sources.
- </refpurpose>
+ Spectral azimuth-based de-mixing of stereo sources.
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -22,9 +20,9 @@ Spectral azimuth-based de-mixing of stereo sources.
opcode implements the Azimuth Discrimination and Resynthesis (ADRess) algorithm, developed by
Dan Barry (Barry et Al. "Sound Source Separation Azimuth Discrimination and Resynthesis". DAFx'04,
Univ. of Napoli). The source separation, or de-mixing, is controlled by two parameters: an azimuth
- position (kpos) and a subspace width (kwidth). The first one is used to locate the spectral peaks of
+ position (<emphasis>kpos</emphasis>) and a subspace width (<emphasis>kwidth</emphasis>). The first one is used to locate the spectral peaks of
individual sources on a stereo mix, whereas the second widens the 'search space', including/exclufing
- the peaks around kpos. These two parameters can be used interactively to extract source sounds from
+ the peaks around <emphasis>kpos</emphasis>. These two parameters can be used interactively to extract source sounds from
a stereo mix. The algorithm is particularly successful with studio recordings where individual instruments
occupy individual panning positions; it is, in fact, a reverse-panning algorithm.
</para>
@@ -57,58 +55,48 @@ Spectral azimuth-based de-mixing of stereo sources.
<para>
<emphasis>kpos</emphasis> -- the azimuth target centre position, which will be de-mixed, from
-left to right (-1 &lt;= kpos &lt;= 1). This is the reverse pan-pot control.
+ left to right (-1 &lt;= <emphasis>kpos</emphasis> &lt;= 1). This is the reverse pan-pot control.
</para>
<para>
<emphasis>kwidth</emphasis> -- the azimuth subspace width, which will determine the number
-of points around kpos which will be used in the de-mixing process.
-(1 &lt;= kwidth &lt;= ipoints)
+ of points around <emphasis>kpos</emphasis> which will be used in the de-mixing process.
+ (1 &lt;= <emphasis>kwidth</emphasis> &lt;= <emphasis>ipoints</emphasis>)
</para>
<para>
<emphasis>ipoints</emphasis> -- total number of discrete points, which will divide
-each pan side of the stereo image. This ultimately affects
-the resolution of the process.
+ each pan side of the stereo image. This ultimately affects
+ the resolution of the process.
</para>
-
</refsect1>
-
-
<refsect1>
<title>Examples</title>
<para>
- The example below takes a stereo input and passes through a de-mixing
- process revealing a source located at ipos +/- iwidth points. These parameters
- can be controlled in realtime (e.g. using FLTK widgets or MIDI) for an interactive
- search of sound sources.
+ The example below takes a stereo input and passes through a de-mixing
+ process revealing a source located at ipos +/- iwidth points. These parameters
+ can be controlled in realtime (e.g. using FLTK widgets or MIDI) for an interactive
+ search of sound sources.
<example>
<title>Example</title>
<programlisting>
-
-ifftsize = 1024
-iwtype = 1 /* cleaner with hanning window */
-ipos = -0.8 /* to the left of the stereo image */
-iwidth = 20 /* use peaks of 20 points around it */
+ifftsize <emphasis role="op">=</emphasis> 1024
+iwtype <emphasis role="op">=</emphasis> 1 <emphasis role="comment">/* cleaner with hanning window */</emphasis>
+ipos <emphasis role="op">=</emphasis> -0.8 <emphasis role="comment">/* to the left of the stereo image */</emphasis>
+iwidth <emphasis role="op">=</emphasis> 20 <emphasis role="comment">/* use peaks of 20 points around it */</emphasis>
-al,ar soundin "sinput.wav"
+al,ar <emphasis role="opc">soundin</emphasis> "sinput.wav"
-flc pvsanal al, ifftsize, ifftsize/4, ifftsize, iwtype
-frc pvsanal ar, ifftsize, ifftsize/4, ifftsize, iwtype
-fdm pvsdemix flc, frc, kpos, kwidth, 100
-adm pvsynth fdm
+flc <emphasis role="opc">pvsanal</emphasis> al, ifftsize, ifftsize/4, ifftsize, iwtype
+frc <emphasis role="opc">pvsanal</emphasis> ar, ifftsize, ifftsize/4, ifftsize, iwtype
+fdm <emphasis role="opc">pvsdemix</emphasis> flc, frc, kpos, kwidth, 100
+adm <emphasis role="opc">pvsynth</emphasis> fdm
- outs adm,adm
- </programlisting>
+ <emphasis role="opc">outs</emphasis> adm, adm</programlisting>
</example>
-
</para>
-
-
</refsect1>
-
-
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/pvsdiskin.xml b/opcodes/pvsdiskin.xml
index 0701ab6..ee1b480 100644
--- a/opcodes/pvsdiskin.xml
+++ b/opcodes/pvsdiskin.xml
@@ -22,7 +22,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>fsig <command>pvsdiskin</command>SFname,ktscal,kgain[,ioffset, ichan]</synopsis>
+ <synopsis>fsig <command>pvsdiskin</command> SFname,ktscal,kgain[,ioffset, ichan]</synopsis>
</refsect1>
<refsect1>
@@ -51,19 +51,17 @@
backwards, 0 &lt; ktscal &lt; 1 is slower and ktscal &gt; 1 is faster) </para>
<para>
<emphasis>kgain</emphasis> -- gain scaling. </para>
-
</refsect1>
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
- fsigr <emphasis role="opc">pvsdiskin</emphasis> &quot;test.pvx&quot;,1,1 <emphasis role="comment">; read PVOCEX file with tscale and gain = 1</emphasis>
- aout <emphasis role="opc">pvsynth</emphasis> fsigr <emphasis role="comment">; resynthesise it</emphasis>
- </programlisting>
- </informalexample>
-
+ Here is an example of the pvsdiskin opcode. It uses the file <ulink url="examples/pvsdiskin.csd"><citetitle>pvsdiskin.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pvsdiskin opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsdiskin.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
diff --git a/opcodes/pvsfread.xml b/opcodes/pvsfread.xml
index 4792b4e..cbf85aa 100644
--- a/opcodes/pvsfread.xml
+++ b/opcodes/pvsfread.xml
@@ -56,18 +56,15 @@
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-idur filelen &quot;test.pvx&quot; ; find dur of (stereo) analysis file
-kpos line 0,p3,idur ; to ensure we process whole file
-fsigr pvsfread kpos,&quot;test.pvx&quot;,1 ; create fsig from R channel
- </programlisting>
- </informalexample>
-
- (NB: as this example shows, the filelen opcode has been extended to accept both old and new analysis file formats).
+ Here is an example of the pvsfread opcode. It uses the file <ulink url="examples/pvsfread.csd"><citetitle>pvsfread.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pvsfread opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsfread.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
-
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/pvsfreeze.xml b/opcodes/pvsfreeze.xml
index 30966e5..daf10eb 100755..100644
--- a/opcodes/pvsfreeze.xml
+++ b/opcodes/pvsfreeze.xml
@@ -1,113 +1,104 @@
-
-<refentry id="pvsfreeze">
-<indexterm id="Indexpvsfreeze"><primary>pvsfreeze</primary></indexterm>
-
- <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
- <refmeta>
- <refentrytitle>pvsfreeze</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>pvsfreeze</refname>
- <refpurpose>
- Freeze the amplitude and frequency time functions of a pv stream according to a control-rate
- trigger.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- This opcodes 'freezes' the evolution of pvs stream by locking into steady amplitude and/or
- frequency values for each bin. The freezing is controlled, independently for amplitudes and
- frequencies, by a control-rate trigger, which switches the freezing 'on' if equal to or above
- 1 and 'off' if below 1.
-
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>fsig <command>pvsfreeze</command> fsigin, kfreeza, kfreezf</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>fsig</emphasis> -- output pv stream
- </para>
-
- <para>
- <emphasis>fsigin</emphasis> -- input pv stream.
- </para>
-
- <para>
- <emphasis>kfreeza</emphasis> -- freezing switch for amplitudes. Freezing is on if above or equal to 1 and off if below 1.
- </para>
-
- <para>
- <emphasis>kfcf</emphasis> -- freezing switch for frequencies. Freezing is on if above or equal to 1 and off if below 1.
- </para>
-
- <warning>
- <para>
- It is unsafe to use the same f-variable for both input and output of pvs opcodes. Using the same one might lead to undefined behavior on some opcodes. Use a different one on the left and right sides of the opcode.
- </para>
- </warning>
-
-
- </refsect1>
-
-
- <refsect1>
- <title>Examples</title>
- <para>
- <example>
- <title>Example</title>
- <programlisting>
-
-asig in ; input
-ktrig oscil 1.5, 0.25, 1 ; trigger
-fim pvsanal asig1,1024,256,1024,0 ; pvoc analysis
-fou pvsfreeze fim, abs(ktrig), abs(ktrig) ; regular 'freeze' of spectra
-aout pvsynth fou ; pvoc synthesis
- </programlisting>
- </example>
-
- </para>
-
- <para>
- In the example above the input signal will be regularly 'frozen' for a short while,
- as the trigger rises above 1 about every two seconds.</para>
- <para>
- Here is an example of the use of the <emphasis>pvsfreeze</emphasis> opcode. It uses the file <ulink url="examples/pvsfreeze.csd"><citetitle>pvsfreeze.csd</citetitle></ulink>.
- <example>
- <title>Example of the <emphasis>pvsfreeze</emphasis> opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/pvsfreeze.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
- <link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>,
- <link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: &namevictor;</member>
- <member>May 2006 </member>
- </simplelist>
- </para>
-
- <para>New plugin in version 5</para>
- <para>May 2006.</para>
- </refsect1>
-</refentry>
+
+<refentry id="pvsfreeze">
+<indexterm id="Indexpvsfreeze"><primary>pvsfreeze</primary></indexterm>
+
+ <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>pvsfreeze</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>pvsfreeze</refname>
+ <refpurpose>
+ Freeze the amplitude and frequency time functions of a pv stream according to a control-rate
+ trigger.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ This opcodes 'freezes' the evolution of pvs stream by locking into steady amplitude and/or
+ frequency values for each bin. The freezing is controlled, independently for amplitudes and
+ frequencies, by a control-rate trigger, which switches the freezing 'on' if equal to or above
+ 1 and 'off' if below 1.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>fsig <command>pvsfreeze</command> fsigin, kfreeza, kfreezf</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>fsig</emphasis> -- output pv stream
+ </para>
+
+ <para>
+ <emphasis>fsigin</emphasis> -- input pv stream.
+ </para>
+
+ <para>
+ <emphasis>kfreeza</emphasis> -- freezing switch for amplitudes. Freezing is on if above or equal to 1 and off if below 1.
+ </para>
+
+ <para>
+ <emphasis>kfcf</emphasis> -- freezing switch for frequencies. Freezing is on if above or equal to 1 and off if below 1.
+ </para>
+
+ <warning>
+ <para>
+ It is unsafe to use the same f-variable for both input and output of pvs opcodes. Using the same one might lead to undefined behavior on some opcodes. Use a different one on the left and right sides of the opcode.
+ </para>
+ </warning>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ <example>
+ <title>Example</title>
+ <programlisting>
+asig <emphasis role="opc">in</emphasis> <emphasis role="comment">; input</emphasis>
+ktrig <emphasis role="opc">oscil</emphasis> 1.5, 0.25, 1 <emphasis role="comment">; trigger</emphasis>
+fim <emphasis role="opc">pvsanal</emphasis> asig1, 1024, 256, 1024, 0 <emphasis role="comment">; pvoc analysis </emphasis>
+fou <emphasis role="opc">pvsfreeze</emphasis> fim, <emphasis role="opc">abs</emphasis>(ktrig), <emphasis role="opc">abs</emphasis>(ktrig) <emphasis role="comment">; regular 'freeze' of spectra</emphasis>
+aout <emphasis role="opc">pvsynth</emphasis> fou <emphasis role="comment">; pvoc synthesis</emphasis></programlisting>
+ </example>
+ </para>
+ <para>
+ In the example above the input signal will be regularly 'frozen' for a short while,
+ as the trigger rises above 1 about every two seconds.</para>
+ <para>
+ Here is an example of the use of the <emphasis>pvsfreeze</emphasis> opcode. It uses the file <ulink url="examples/pvsfreeze.csd"><citetitle>pvsfreeze.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the <emphasis>pvsfreeze</emphasis> opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsfreeze.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
+ <link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>,
+ <link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>May 2006 </member>
+ </simplelist>
+ </para>
+ <para>New plugin in version 5</para>
+ <para>May 2006.</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/pvsftr.xml b/opcodes/pvsftr.xml
index 9783e68..ff5912f 100644
--- a/opcodes/pvsftr.xml
+++ b/opcodes/pvsftr.xml
@@ -70,31 +70,19 @@ fsig1 = fsig2
It is not necessary to use function tables in this case.
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-ifn ftgen 0,0,inbins,10,1 ; make ftable
-kflag pvsftw fsrc,ifn ; export amps to table,
-kamp init 0
-if kflag==0 kgoto contin ; only proc when frame is ready
-; kill lowest bins, for obvious effect
- tablew kamp,1,ifn
- tablew kamp,2,ifn
- tablew kamp,3,ifn
- tablew kamp,4,ifn
-; read modified data back to fsrc
- pvsftr fsrc,ifn
-contin:
-; and resynth
-aout pvsynth fsrc
- </programlisting>
- </informalexample>
+ Here is an example of the pvsftr opcode. It uses the file <ulink url="examples/pvsftr.csd"><citetitle>pvsftr.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pvsftr opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsftr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
-
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/pvsftw.xml b/opcodes/pvsftw.xml
index 369fc7a..1df3d2a 100644
--- a/opcodes/pvsftw.xml
+++ b/opcodes/pvsftw.xml
@@ -74,28 +74,16 @@ fsig1 = fsig2
It is not necessary to use function tables in this case.
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-ifn ftgen 0,0,inbins,10,1 ; make ftable
-kflag pvsftw fsrc,ifn ; export amps to table,
-kamp init 0
-if kflag==0 kgoto contin ; only proc when frame is ready
-; kill lowest bins, for obvious effect
- tablew kamp,1,ifn
- tablew kamp,2,ifn
- tablew kamp,3,ifn
- tablew kamp,4,ifn
-; read modified data back to fsrc
- pvsftr fsrc,ifn
-contin:
-; and resynth
-aout pvsynth fsrc
- </programlisting>
- </informalexample>
+ Here is an example of the pvsftw opcode. It uses the file <ulink url="examples/pvsftw.csd"><citetitle>pvsftw.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pvsftw opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsftw.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
diff --git a/opcodes/pvsgain.xml b/opcodes/pvsgain.xml
new file mode 100644
index 0000000..e04ad7d
--- /dev/null
+++ b/opcodes/pvsgain.xml
@@ -0,0 +1,81 @@
+
+<refentry id="pvsgain">
+<indexterm id="IndexPvsgain"><primary>pvsgain</primary></indexterm>
+ <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>pvsgain</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>pvsgain</refname>
+ <refpurpose>
+ Scale the amplitude of a pv stream.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Scale the amplitude of a pv stream.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>fsig <command>pvsgain</command> fsigin, kgain </synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>fsig</emphasis> -- output pv stream
+ </para>
+
+ <para>
+ <emphasis>fsigin</emphasis> -- input pv stream
+ </para>
+
+ <para>
+ <emphasis>kgain</emphasis> -- amplitude scaling (defaults to 1).
+ </para>
+ <warning>
+ <para>
+ It is unsafe to use the same f-variable for both input and output of pvs opcodes. Using the same one might lead to undefined behavior on some opcodes. Use a different one on the left and right sides of the opcode.
+ </para>
+ </warning>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the use of the <emphasis>pvsgain</emphasis> opcode. It uses the file <ulink url="examples/pvsgain.csd"><citetitle>pvsgain.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the <emphasis>pvsgain</emphasis> opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsgain.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
+ <link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>,
+ <link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>2011 </member>
+ </simplelist>
+ </para>
+
+ <para>New plugin in version 5</para>
+ <para>2011</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/pvshift.xml b/opcodes/pvshift.xml
index 55e5fc8..539e488 100644
--- a/opcodes/pvshift.xml
+++ b/opcodes/pvshift.xml
@@ -10,7 +10,7 @@
<refname>pvshift</refname>
<refpurpose>
Shift the frequency components of a pv stream, stretching/compressing
-its spectrum.
+ its spectrum.
</refpurpose>
</refnamediv>
@@ -18,7 +18,7 @@ its spectrum.
<title>Description</title>
<para>
Shift the frequency components of a pv stream, stretching/compressing
-its spectrum.
+ its spectrum.
</para>
</refsect1>
@@ -47,10 +47,10 @@ its spectrum.
<para>
<emphasis>kkeepform</emphasis> -- attempt to keep input signal
- formants; 0: do not keep formants;
- 1: keep formants using a liftered cepstrum method; 2: keep formants by
- using a true envelope method
- (defaults to 0).
+ formants; 0: do not keep formants;
+ 1: keep formants using a liftered cepstrum method; 2: keep formants by
+ using a true envelope method
+ (defaults to 0).
</para>
<para>
@@ -62,7 +62,7 @@ its spectrum.
<para>
This opcode will shift the components of a pv stream, from a certain
frequency upwards, up or down a fixed amount (in Hz). It can be used to
- transform a harmonic spectrum into an inharmonic one. The ikeepform flag
+ transform a harmonic spectrum into an inharmonic one. The <emphasis>kkeepform</emphasis> flag
can be used to try and preserve formants for possibly interesting and unusual
spectral modifications.
</para>
@@ -81,18 +81,18 @@ its spectrum.
<example>
<title>Example</title>
<programlisting>
-asig in ; get the signal in
+asig <emphasis role="opc">in</emphasis> <emphasis role="comment">; get the signal in</emphasis>
-fsig pvsanal asig, 1024, 256, 1024, 1 ; analyse it
-ftps pvshift fsig, 100, 0 ; add 100 Hz to each component
-atps pvsynth ftps ; synthesise it
- </programlisting>
+fsig <emphasis role="opc">pvsanal</emphasis> asig, 1024, 256, 1024, 1 <emphasis role="comment">; analyse it</emphasis>
+ftps <emphasis role="opc">pvshift</emphasis> fsig, 100, 0 <emphasis role="comment">; add 100 Hz to each component</emphasis>
+atps <emphasis role="opc">pvsynth</emphasis> ftps <emphasis role="comment">; synthesise it</emphasis></programlisting>
</example>
</para>
<para>
- Depending on the input, this will transform a pitched sound into an inharmonic,
-bell-like sound.</para>
+ Depending on the input, this will transform a pitched sound into an inharmonic,
+ bell-like sound.
+ </para>
<para>
Here is an example of the use of the <emphasis>pvshift</emphasis> opcode. It uses the file <ulink url="examples/pvshift.csd"><citetitle>pvshift.csd</citetitle></ulink>.
<example>
@@ -122,6 +122,6 @@ bell-like sound.</para>
</para>
<para>New plugin in version 5</para>
- <para>Nivember 2004.</para>
+ <para>November 2004.</para>
</refsect1>
</refentry>
diff --git a/opcodes/pvsifd.xml b/opcodes/pvsifd.xml
index 35c5132..4d3e9e2 100644
--- a/opcodes/pvsifd.xml
+++ b/opcodes/pvsifd.xml
@@ -68,26 +68,14 @@
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the pvsifd opcode. It uses the file <ulink url="examples/pvsifd.csd"><citetitle>pvsifd.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; pvsifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
- aout resyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th)
-out aout
- </programlisting>
+ <title>Example of the pvsifd opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsifd.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
- </para>
-
- <para>
-The example above shows the pvsifd analysis feeding into partial tracking and
-cubic-phase additive resynthesis with pitch shifting.
-
</para>
-
+ <para>The example above shows the pvsifd analysis feeding into partial tracking andcubic-phase additive resynthesis with pitch shifting.</para>
</refsect1>
<refsect1>
diff --git a/opcodes/pvsin.xml b/opcodes/pvsin.xml
index c718ae5..9739e58 100644
--- a/opcodes/pvsin.xml
+++ b/opcodes/pvsin.xml
@@ -6,12 +6,10 @@
<refentrytitle>pvsin</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvsin</refname>
<refpurpose>
- Retrieve an fsig from the input software bus; a pvs equivalent to chani.
+ Retrieve an fsig from the input software bus; a pvs equivalent to chani.
</refpurpose>
</refnamediv>
@@ -19,35 +17,35 @@
<title>Description</title>
<para>
This opcode retrieves an f-sig from the pvs in software bus, which can be
- used to get data from an external source, using the Csound 5 API. A channel
- is created if not already existing. The fsig channel is in that case initialised with
- the given parameters. It is important to note that the pvs input
- and output (pvsout opcode) busses are independent and data is not shared between them.
+ used to get data from an external source, using the Csound 5 API. A channel
+ is created if not already existing. The fsig channel is in that case initialised with
+ the given parameters. It is important to note that the pvs input
+ and output (pvsout opcode) busses are independent and data is not shared between them.
</para>
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis>fsig <command>pvsin</command> kchan[,isize,iolap,iwinsize,iwintype,iformat]</synopsis>
+ <synopsis>fsig <command>pvsin</command> kchan[, isize, iolap, iwinsize, iwintype, iformat]</synopsis>
</refsect1>
<refsect1>
- <title>Initialisation</title>
+ <title>Initialization</title>
<para>
<emphasis>isize</emphasis> -- initial DFT size,defaults to 1024.
</para>
<para>
- <emphasis>iolap</emphasis> -- size of overlap, defaults to isize/4.
+ <emphasis>iolap</emphasis> -- size of overlap, defaults to <emphasis>isize</emphasis>/4.
</para>
- <para>
- <emphasis>isize</emphasis> -- size of analysis window, defaults to isize.
+ <para>
+ <emphasis>iwinsize</emphasis> -- size of analysis window, defaults to <emphasis>isize</emphasis>.
</para>
- <para>
- <emphasis>isize</emphasis> -- type of window, defaults to Hanning (1) (see pvsanal)
+ <para>
+ <emphasis>iwintype</emphasis> -- type of window, defaults to Hanning (1) (see <emphasis>pvsanal</emphasis>)
</para>
- <para>
- <emphasis>isize</emphasis> -- data format, defaults 0 (PVS_AMP_FREQ). Other possible
- values are 1 (PVS_AMP_PHASE), 2 (PVS_COMPLEX) or 3 (PVS_TRACKS).
+ <para>
+ <emphasis>iformat</emphasis> -- data format, defaults 0 (PVS_AMP_FREQ). Other possible
+ values are 1 (PVS_AMP_PHASE), 2 (PVS_COMPLEX) or 3 (PVS_TRACKS).
</para>
</refsect1>
<refsect1>
@@ -66,11 +64,8 @@
<example>
<title>Example</title>
<programlisting>
- fsig pvsin 0 ; get data from pvs in bus channel 0
- </programlisting>
+ fsig <emphasis role="opc">pvsin</emphasis> 0 <emphasis role="comment">; get data from pvs in bus channel 0</emphasis></programlisting>
</example>
-
-
</para>
</refsect1>
@@ -79,9 +74,8 @@
<para>
<simplelist>
<member>Author: &namevictor;</member>
- <member>Auust 2006 </member>
+ <member>August 2006 </member>
</simplelist>
</para>
-
</refsect1>
</refentry>
diff --git a/opcodes/pvsinfo.xml b/opcodes/pvsinfo.xml
index 5b4feed..07654c3 100644
--- a/opcodes/pvsinfo.xml
+++ b/opcodes/pvsinfo.xml
@@ -49,15 +49,21 @@
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-fim pvsfread &quot;test.pvx&quot; ; import pvocex file
-iovl,inb,iws,ifmt pvsinfo fim ; get inumbins info
-ifn ftgen 0,0,inb,10,1 ; and create f-table
- </programlisting>
- </informalexample>
+ Here is an example of the pvsinfo opcode. It uses the file <ulink url="examples/pvsinfo.csd"><citetitle>pvsinfo.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the pvsinfo opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsinfo.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ <para>
+ The example will produce the following output:
+ <screen>
+instr 1: iovl = 256.000 inb = 513.000 iws = 2048.000 ifmt = 0.000
+ </screen>
</para>
</refsect1>
+
<refsect1>
<title>Credits</title>
diff --git a/opcodes/pvsinit.xml b/opcodes/pvsinit.xml
index 24c73d5..4198de7 100644
--- a/opcodes/pvsinit.xml
+++ b/opcodes/pvsinit.xml
@@ -1,81 +1,76 @@
-
-<refentry id="pvsinit">
-<indexterm id="IndexPvsinit"><primary>pvsinit</primary></indexterm>
-
- <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
- <refmeta>
- <refentrytitle>pvsinit</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>pvsinit</refname>
- <refpurpose>
- Initialise a spectral (f) variable to zero.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Fermorms the equavent to an init operation on an f-variable.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>fsig <command>pvsinit</command> isize[,iolap,iwinsize,iwintype, iformat]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>fsig</emphasis> -- output pv stream set to zero.
- </para>
-
- <para>
- <emphasis>isize</emphasis> -- size of the DFT frame.
- </para>
-
- <para>
- <emphasis>iolap</emphasis> -- size of the analysis overlap, defaults to isize/4.
- </para>
- <para>
- <emphasis>iwinsize</emphasis> -- size of the analysis window, defaults to isize.
- </para>
- <para>
- <emphasis>iwintype</emphasis> -- type of analysis window, defaults to 1, Hanning.
- </para>
- <para>
- <emphasis>iformat</emphasis> -- pvsdata format, defaults to 0:PVS_AMP_FREQ.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- <example>
- <title>Example</title>
- <programlisting>
-fsig pvsinit 1024
- </programlisting>
- </example>
-
- </para>
-
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: &namevictor;</member>
- <member>November 2004 </member>
- </simplelist>
- </para>
-
- <para>New plugin in version 5</para>
- <para>November 2004.</para>
- </refsect1>
-</refentry>
+
+<refentry id="pvsinit">
+<indexterm id="IndexPvsinit"><primary>pvsinit</primary></indexterm>
+
+ <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>pvsinit</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>pvsinit</refname>
+ <refpurpose>
+ Initialise a spectral (f) variable to zero.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Performs the equivalent to an init operation on an f-variable.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>fsig <command>pvsinit</command> isize[, iolap, iwinsize, iwintype, iformat]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>fsig</emphasis> -- output pv stream set to zero.
+ </para>
+
+ <para>
+ <emphasis>isize</emphasis> -- size of the DFT frame.
+ </para>
+
+ <para>
+ <emphasis>iolap</emphasis> -- size of the analysis overlap, defaults to <emphasis>isize</emphasis>/4.
+ </para>
+ <para>
+ <emphasis>iwinsize</emphasis> -- size of the analysis window, defaults to <emphasis>isize</emphasis>.
+ </para>
+ <para>
+ <emphasis>iwintype</emphasis> -- type of analysis window, defaults to 1, Hanning.
+ </para>
+ <para>
+ <emphasis>iformat</emphasis> -- pvsdata format, defaults to 0:PVS_AMP_FREQ.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ <example>
+ <title>Example</title>
+ <programlisting>
+fsig <emphasis role="opc">pvsinit</emphasis> 1024</programlisting>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>November 2004 </member>
+ </simplelist>
+ </para>
+
+ <para>New plugin in version 5</para>
+ <para>November 2004.</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/pvslock.xml b/opcodes/pvslock.xml
index e12d496..2c9a31a 100644
--- a/opcodes/pvslock.xml
+++ b/opcodes/pvslock.xml
@@ -6,21 +6,19 @@
<refentrytitle>pvslock</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvslock</refname>
<refpurpose>
Frequency lock an input fsig
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
This opcode searches for spectral peaks and then locks the frequencies around those peaks. This is similar to
-phase-locking in non-streaming PV processing. It can be used to improve timestretching and pitch-shifting quality in
-PV processing.
+ phase-locking in non-streaming PV processing. It can be used to improve timestretching and pitch-shifting quality in
+ PV processing.
</para>
</refsect1>
@@ -49,27 +47,19 @@ PV processing.
</warning>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the pvslock opcode. It uses the file <ulink url="examples/pvslock.csd"><citetitle>pvslock.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-fsig1 pvstanal kspeed,1,1,1 ; pvoc analysis from table 1 (kspeed is timescale factor)
-fsigout pvslock fsig1, 1 ; frequency lock
-aout pvsynth fsigout ; pvoc synthesis
- </programlisting>
+ <title>Example of the pvslock opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvslock.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
</para>
-
- <para>Depending on the input, this will transform a pitched sound into an inharmonic,
-bell-like sound.</para>
-
</refsect1>
-
+
<refsect1>
<title>Credits</title>
<para>
@@ -80,6 +70,6 @@ bell-like sound.</para>
</para>
<para>New plugin in version 5</para>
- <para>Nivember 2004.</para>
+ <para>November 2004.</para>
</refsect1>
</refentry>
diff --git a/opcodes/pvsmix.xml b/opcodes/pvsmix.xml
index 4b9c704..25b565b 100644
--- a/opcodes/pvsmix.xml
+++ b/opcodes/pvsmix.xml
@@ -6,21 +6,19 @@
<refentrytitle>pvsmix</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvsmix</refname>
<refpurpose>
Mix 'seamlessly' two pv signals.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Mix 'seamlessly' two pv signals. This opcode combines the
-most prominent components of two pvoc streams into a single
-mixed stream.
+ most prominent components of two pvoc streams into a single
+ mixed stream.
</para>
</refsect1>
@@ -41,7 +39,7 @@ mixed stream.
<para>
<emphasis>fsigin2</emphasis> -- input pv stream, which must have
- same format as fsigin1.
+ same format as <emphasis>fsigin1</emphasis>.
</para>
<warning>
@@ -55,22 +53,13 @@ mixed stream.
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the pvsmix opcode. It uses the file <ulink url="examples/pvsmix.csd"><citetitle>pvsmix.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-fsig1 pvsanal asig1,1024,256,1024,0 ; pvoc analysis
-fsig2 pvsanal asig2,1024,256,1024,0
-fsigout pvsmix fsig1, fsig2 ; mix signals
-aout pvsynth fsigout ; pvoc synthesis
- </programlisting>
+ <title>Example of the pvsmix opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsmix.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
</para>
-
- <para>Depending on the input, this will transform a pitched sound into an inharmonic,
-bell-like sound.</para>
-
</refsect1>
<refsect1>
@@ -83,6 +72,6 @@ bell-like sound.</para>
</para>
<para>New plugin in version 5</para>
- <para>Nivember 2004.</para>
+ <para>November 2004.</para>
</refsect1>
</refentry>
diff --git a/opcodes/pvsmooth.xml b/opcodes/pvsmooth.xml
index 08d920e..1778582 100755..100644
--- a/opcodes/pvsmooth.xml
+++ b/opcodes/pvsmooth.xml
@@ -7,32 +7,30 @@
<refentrytitle>pvsmooth</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvsmooth</refname>
<refpurpose>
- Smooth the amplitude and frequency time functions of a pv stream using parallel 1st order
- lowpass IIR filters with time-varying cutoff frequency.
-
+ Smooth the amplitude and frequency time functions of a pv stream using parallel 1st order
+ lowpass IIR filters with time-varying cutoff frequency.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- Smooth the amplitude and frequency time functions of a pv stream using a 1st order
- lowpass IIR with time-varying cutoff frequency. This opcode uses the same filter
- as the 'tone' opcode, but this time acting separately on the amplitude and frequency
- time functions that make up a pv stream. The cutoff frequency parameter runs at the
- control-rate, but unlike tone and tonek, it is not specified in Hz, but as fractions
- of 1/2 frame-rate (actually the pv stream sampling rate), which is easier to
- understand. This means that the highest cutoff frequency is 1 and the lowest 0; the lower
- the frequency the smoother the functions and more pronounced the effect will be. This
- opcode produces effects that are more or less similar to pvsblur, but with two important
- differences: 1.smoothing of amplitudes and frequencies use separate sets of filters; and 2. there is
- no increase in computational cost when higher amounts of 'blurring' (smoothing) are desired.
-
+ Smooth the amplitude and frequency time functions of a pv stream using a 1st order
+ lowpass IIR with time-varying cutoff frequency. This opcode uses the same filter
+ as the <emphasis>tone</emphasis> opcode, but this time acting separately on the amplitude and frequency
+ time functions that make up a pv stream. The cutoff frequency parameter runs at the
+ control-rate, but unlike <emphasis>tone</emphasis> and <emphasis>tonek</emphasis>, it is not specified in Hz, but as fractions
+ of 1/2 frame-rate (actually the pv stream sampling rate), which is easier to
+ understand. This means that the highest cutoff frequency is 1 and the lowest 0; the lower
+ the frequency the smoother the functions and more pronounced the effect will be.
+ </para>
+ <para>
+ These are filters applied to control signals so the effect is basically blurring the spectral evolution. The effects produced are more or less similar to <emphasis>pvsblur</emphasis>, but with two important
+ differences: 1.smoothing of amplitudes and frequencies use separate sets of filters; and 2. there is
+ no increase in computational cost when higher amounts of 'blurring' (smoothing) are desired.
</para>
</refsect1>
@@ -53,46 +51,38 @@
<para>
<emphasis>kacf</emphasis> -- amount of cutoff frequency for amplitude function filtering, between 0 and 1,
- in fractions of 1/2 frame-rate.
+ in fractions of 1/2 frame-rate.
</para>
<para>
<emphasis>kfcf</emphasis> -- amount of cutoff frequency for frequency function filtering, between 0 and 1,
- in fractions of 1/2 frame-rate.
+ in fractions of 1/2 frame-rate.
</para>
+
<warning>
<para>
It is unsafe to use the same f-variable for both input and output of pvs opcodes. Using the same one might lead to undefined behavior on some opcodes. Use a different one on the left and right sides of the opcode.
</para>
</warning>
-
</refsect1>
-
-
-
+
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the pvsmooth opcode. It uses the file <ulink url="examples/pvsmooth.csd"><citetitle>pvsmooth.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-
-asig1 in ; input
-fim pvsanal asig1,1024,256,1024,0 ; pvoc analysis
-fou pvsmooth fim, 0.01, 0.01 ; smooth with cf at 1% of 1/2 frame-rate (ca 8.6 Hz)
-aout pvsynth fou ; pvoc synthesis
- </programlisting>
+ <title>Example of the pvsmooth opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsmooth.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- </para>
-
+ </para>
<para>
- In the example above the input signal will be smoothed/blurred by pvsmooth with
- a cutoff frequency of 1% of 1/2 frame-rate (which is about 172Hz, so the cf is about 8.6Hz) .</para>
+ The formula for calculating the cutoff frequency of the filter: frame rate / hopsize = new frame starts per second (in Hz), then the percentage of half the framerate.
+ For example, looking at the first note in the example, the frame rate is 44100 / 256 = 172,265625 Hz (= 172 new frame starts per
+second). half of the frame rate is about 86 Hz, and one percent of this is 0.86 Hz.
+ </para>
</refsect1>
-
-
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/pvsmorph.xml b/opcodes/pvsmorph.xml
index 3472bc8..0ca2cac 100644
--- a/opcodes/pvsmorph.xml
+++ b/opcodes/pvsmorph.xml
@@ -1,92 +1,91 @@
-
-<refentry id="pvsmorph">
- <indexterm id="Indexpvsmorph"><primary>pvsmorph</primary></indexterm>
- <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
- <refmeta>
- <refentrytitle>pvsmorph</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>pvsmorph</refname>
- <refpurpose>
- Performs morphing (or interpolation) between two source fsigs.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Performs morphing (or interpolation) between two source fsigs.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>fsig <command>pvsmorph</command> fsig1, fsig2, kampint, kfrqint</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- The operation of this opcode is similar to that of <link linkend="pvcross"><citetitle>pvinterp</citetitle></link> (q.v.),
- except in using <emphasis>fsig</emphasis>s rather than analysis files, and the absence of spectral envelope preservation.
- The amplitudes and frequencies of <emphasis>fsig1</emphasis> are interpolated witht those of <emphasis>fsig2</emphasis>,
- depeding on the values of <emphasis>kampint</emphasis> and <emphasis>kfrqint</emphasis>, respectively. These range
- between 0 and 1, where 0 means <emphasis>fsig1</emphasis> and 1, <emphasis>fsig2</emphasis>. Anything in between will
- interpolate amps and/or freqs of the two fsigs.
- </para>
- <para>
- With this opcode, morphing can be performed on real-time audio input, by using
- <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link> to generate <emphasis>fsig1</emphasis> and <emphasis>fsig2</emphasis>.
- These must have the same format.
- </para>
- <warning>
- <para>
- It is unsafe to use the same f-variable for both input and output of pvs opcodes. Using the same one might lead to undefined behavior on some opcodes. Use a different one on the left and right sides of the opcode.
- </para>
- </warning>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the pvsmorph opcode. It uses the file <ulink url="examples/pvsmorph.csd"><citetitle>pvsmorph.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the pvsmorph opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/pvsmorph.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- <para>
- Here is another example of the pvsmorph opcode. It uses the file <ulink url="examples/pvsmorph2.csd"><citetitle>pvsmorph2.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the pvsmorph opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/pvsmorph2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
- <link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>,
- <link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: &namevictor;</member>
- <member>April 2007 </member>
- </simplelist>
- New in Csound 5.06
- </para>
-
- </refsect1>
-</refentry>
+<refentry id="pvsmorph">
+ <indexterm id="Indexpvsmorph"><primary>pvsmorph</primary></indexterm>
+ <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>pvsmorph</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>pvsmorph</refname>
+ <refpurpose>
+ Performs morphing (or interpolation) between two source fsigs.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Performs morphing (or interpolation) between two source fsigs.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>fsig <command>pvsmorph</command> fsig1, fsig2, kampint, kfrqint</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ The operation of this opcode is similar to that of <link linkend="pvcross"><citetitle>pvinterp</citetitle></link> (q.v.),
+ except in using <emphasis>fsig</emphasis>s rather than analysis files, and the absence of spectral envelope preservation.
+ The amplitudes and frequencies of <emphasis>fsig1</emphasis> are interpolated with those of <emphasis>fsig2</emphasis>,
+ depending on the values of <emphasis>kampint</emphasis> and <emphasis>kfrqint</emphasis>, respectively. These range
+ between 0 and 1, where 0 means <emphasis>fsig1</emphasis> and 1, <emphasis>fsig2</emphasis>. Anything in between will
+ interpolate amps and/or freqs of the two fsigs.
+ </para>
+ <para>
+ With this opcode, morphing can be performed on real-time audio input, by using
+ <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link> to generate <emphasis>fsig1</emphasis> and <emphasis>fsig2</emphasis>.
+ These must have the same format.
+ </para>
+ <warning>
+ <para>
+ It is unsafe to use the same f-variable for both input and output of pvs opcodes. Using the same one might lead to undefined behavior on some opcodes. Use a different one on the left and right sides of the opcode.
+ </para>
+ </warning>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the pvsmorph opcode. It uses the file <ulink url="examples/pvsmorph.csd"><citetitle>pvsmorph.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the pvsmorph opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsmorph.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ <para>
+ Here is another example of the pvsmorph opcode. It uses the file <ulink url="examples/pvsmorph2.csd"><citetitle>pvsmorph2.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the pvsmorph opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsmorph2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
+ <link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>,
+ <link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>April 2007 </member>
+ </simplelist>
+ New in Csound 5.06
+ </para>
+
+ </refsect1>
+</refentry>
diff --git a/opcodes/pvsout.xml b/opcodes/pvsout.xml
index 0005207..e301a53 100644
--- a/opcodes/pvsout.xml
+++ b/opcodes/pvsout.xml
@@ -6,20 +6,18 @@
<refentrytitle>pvsout</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvsout</refname>
<refpurpose>
- Write a fsig to the pvs output bus.
- </refpurpose>
+ Write a fsig to the pvs output bus.
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
This opcode writes a fsig to a channel of the pvs output bus. Note that the pvs out bus and
- the pvs in bus are separate and independent. A new channel is created if non-existent.
+ the pvs in bus are separate and independent. A new channel is created if non-existent.
</para>
</refsect1>
@@ -45,15 +43,11 @@
<example>
<title>Example</title>
<programlisting>
-asig in ; input
-fsig pvsanal asig, 1024, 256, 1024, 1 ; analysis
-pvsout fsig,0 ; write signal to pvs out bus channel 0
- </programlisting>
+asig <emphasis role="opc">in</emphasis> <emphasis role="comment">; input</emphasis>
+fsig <emphasis role="opc">pvsanal</emphasis> asig, 1024, 256, 1024, 1 <emphasis role="comment">; analysis</emphasis>
+ <emphasis role="opc">pvsout</emphasis> fsig, 0 <emphasis role="comment">; write signal to pvs out bus channel 0</emphasis></programlisting>
</example>
-
-
</para>
-
</refsect1>
<refsect1>
@@ -64,6 +58,5 @@ pvsout fsig,0 ; write signal to pvs out bus channel 0
<member>August 2006 </member>
</simplelist>
</para>
-
</refsect1>
</refentry>
diff --git a/opcodes/pvstanal.xml b/opcodes/pvstanal.xml
index 8da2030..c7700a2 100644
--- a/opcodes/pvstanal.xml
+++ b/opcodes/pvstanal.xml
@@ -1,6 +1,6 @@
-<refentry id="pvstanal">
+<refentry id="pvstanal">
<indexterm id="IndexPvstanal"><primary>pvstanal</primary></indexterm>
- <refentryinfo><title>Spectral processing: pvstanal</title></refentryinfo>
+ <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
<refmeta>
<refentrytitle>pvstanal</refentrytitle>
</refmeta>
@@ -31,7 +31,7 @@ This opcode allows for time and frequency-independent scaling. Time is advanced
<refsect1>
<title>Syntax</title>
- <synopsis>asig <command>pvstanal</command> ktimescal,kamp,kpitch,ktab,[kdetect, kwrap, ioffset,ifftsize, ihop, ithresh]
+ <synopsis>fsig <command>pvstanal</command> ktimescal, kamp, kpitch, ktab, [kdetect, kwrap, ioffset,ifftsize, ihop, idbthresh]
</synopsis>
</refsect1>
@@ -48,7 +48,8 @@ This opcode allows for time and frequency-independent scaling. Time is advanced
</para>
<para>
- <emphasis>idbthresh</emphasis> -- threshold based on dB power spectrum ratio between two successive windows. A detected ratio above it will cancel timescaling momentarily, to avoid smearing (defaults to 1)
+ <emphasis>idbthresh</emphasis> -- threshold for onset detection, based on dB power spectrum ratio between two successive windows. A detected ratio above it will cancel timescaling momentarily, to avoid smearing (defaults to 1).
+ By default anything more than a 1 dB inter-frame power difference will be detected as an onset.
</para>
</refsect1>
@@ -66,7 +67,8 @@ This opcode allows for time and frequency-independent scaling. Time is advanced
</para>
<para>
- <emphasis>kdetect</emphasis> -- 0 or 1, to switch onset detection/processing
+ <emphasis>kdetect</emphasis> -- 0 or 1, to switch onset detection/processing. The onset detector checks for power difference between analysis windows. If more than what has been specified in the dbthresh parameter, an onset is declared.
+It suspends timescaling momentarily so the onsets are not modified.
</para>
<para>
<emphasis>ktab</emphasis> -- source signal function table. Deferred-allocation tables (see
@@ -76,37 +78,20 @@ This opcode allows for time and frequency-independent scaling. Time is advanced
<para>
<emphasis>kwrap</emphasis> -- 0 or 1, to switch on/off table wrap-around read (default to 1)
</para>
-
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the pvstanal opcode. It uses the file <ulink url="examples/pvstanal.csd"><citetitle>pvstanal.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-
-idur = p3
-ilock = p4
-itab = 1
-ipitch = 1
-iamp = 0.8
-ktime linseg 0.3, p3/2, 0.8, p3/2, 0.3
-
-fs1 pvstanal ktime,iamp,ipitch,itab
-a1 pvsynth fs1
- out a1
-
-
- </programlisting>
+ <title>Example of the pvstanal opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvstanal.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
</para>
-
-
</refsect1>
-
-
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/pvstencil.xml b/opcodes/pvstencil.xml
index 4077f21..723f983 100644
--- a/opcodes/pvstencil.xml
+++ b/opcodes/pvstencil.xml
@@ -6,27 +6,25 @@
<refentrytitle>pvstencil</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>pvstencil</refname>
<refpurpose>
Transforms a pvoc stream according to a masking function table.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Transforms a pvoc stream according to a masking function table;
- if the pvoc stream amplitude falls below the value of the function
- for a specific pvoc channel, it applies a gain to that channel.
+ if the pvoc stream amplitude falls below the value of the function
+ for a specific pvoc channel, it applies a gain to that channel.
</para>
<para>
The pvoc stream amplitudes are compared to a masking table, if
- the fall below the table values, they are scaled by kgain. Prior
- to the operation, table values are scaled by klevel, which can be
- used as masking depth control.
+ the fall below the table values, they are scaled by <emphasis>kgain</emphasis>. Prior
+ to the operation, table values are scaled by <emphasis>klevel</emphasis>, which can be
+ used as masking depth control.
</para>
<para>
Tables have to be at least fftsize/2 in size; for most GENS it is
@@ -34,13 +32,13 @@
one), however this is not necessary with GEN43.
</para>
<para>
- One of the typical uses of pvstencil would be in noise
- reduction. A noise print can be analysed with pvanal into a PVOCEX
- file and loaded in a table with GEN43. This then can be used as
- the masking table for pvstencil and the amount of reduction would
- be controlled by kgain. Skipping post-normalisation will keep the
+ One of the typical uses of <emphasis>pvstencil</emphasis> would be in noise
+ reduction. A noise print can be analysed with <emphasis>pvanal</emphasis> into a PVOC-EX
+ file and loaded in a table with <emphasis>GEN43</emphasis>. This then can be used as
+ the masking table for <emphasis>pvstencil</emphasis> and the amount of reduction would
+ be controlled by <emphasis>kgain</emphasis>. Skipping post-normalisation will keep the
original noise print average amplitudes. This would provide a good
- starting point for a successful noise reduction (so that klevel
+ starting point for a successful noise reduction (so that <emphasis>klevel</emphasis>
can be generally set to close to 1).
</para>
<para>
@@ -70,7 +68,7 @@
<para>
<emphasis>klevel</emphasis> -- masking function level (scales
- the ftable prior to `stenciling') .
+ the ftable prior to `stenciling') .
</para>
<para>
@@ -91,12 +89,10 @@
<example>
<title>Example</title>
<programlisting>
-fsig pvsanal asig, 1024, 256, 1024, 1
-fclean pvstencil fsig, 0, 1, 1
-aclean pvsynth fclean
- </programlisting>
+fsig <emphasis role="opc">pvsanal</emphasis> asig, 1024, 256, 1024, 1
+fclean <emphasis role="opc">pvstencil</emphasis> fsig, 0, 1, 1
+aclean <emphasis role="opc">pvsynth</emphasis> fclean</programlisting>
</example>
-
</para>
</refsect1>
@@ -110,6 +106,6 @@ aclean pvsynth fclean
</para>
<para>New plugin in version 5</para>
- <para>Nivember 2004.</para>
+ <para>November 2004.</para>
</refsect1>
</refentry>
diff --git a/opcodes/pvsvoc.xml b/opcodes/pvsvoc.xml
index 9384365..70d5f9c 100644
--- a/opcodes/pvsvoc.xml
+++ b/opcodes/pvsvoc.xml
@@ -67,32 +67,16 @@
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the pvsvoc opcode. It uses the file <ulink url="examples/pvsvoc.csd"><citetitle>pvsvoc.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-asig in ; get the signal in
-asyn oscili 16000, 150, 1 ; excitation signal
-
-famp pvsanal asig, 1024, 256, 1024, 1 ; analyse in signal
-fexc pvsanal asyn, 1024, 256, 1024, 1 ; analyse excitation signal
-ftps pvsvoc famp, fexc, 1, 1 ; cross it
-atps pvsynth ftps ; synthesise it
-
- out atps
- </programlisting>
+ <title>Example of the pvsvoc opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pvsvoc.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
</para>
-
<para>
-The example above shows a typical cross-synthesis operation. The input
-signal (say a vocal sound) is used for its amplitude spectrum. An oscillator
-with an arbitrary complex waveform produces the excitation signal, giving the
-vocal sound its pitch.
-
- </para>
-
+The example above shows a typical cross-synthesis operation. The input signal (say a vocal sound) is used for its amplitude spectrum. An oscillator with an arbitrary complex waveform produces the excitation signal, giving the vocal sound its pitch.
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/pvswarp.xml b/opcodes/pvswarp.xml
index fd9ddc0..4aef1bd 100644
--- a/opcodes/pvswarp.xml
+++ b/opcodes/pvswarp.xml
@@ -66,36 +66,19 @@
It is unsafe to use the same f-variable for both input and output of pvs opcodes. Using the same one might lead to undefined behavior on some opcodes. Use a different one on the left and right sides of the opcode.
</para>
</warning>
-
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the pvswarp opcode. It uses the file <ulink url="examples/pvswarp.csd"><citetitle>pvswarp.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-asig in ; get the signal in
-
-fsig pvsanal asig, 1024, 256, 1024, 1 ; analyse it
-ftps pvswarp fsig, 1.5, 0 ; warp it
-atps pvsynth ftps ; synthesise it
-
- out atps
-</programlisting>
- </example>
- </para>
- <para>
- The example above shows a spectral envelope warper, scaling the freq envelope by 1.5. Used with vocal sounds, it will shift the formants and result in a changed vowel timbre, similar to the effect of a singer inhaling helium (the 'donald duck' effect).
- </para>
- <para>
- Here is an example of the use of the <emphasis>pvswarp</emphasis> opcode. It uses the file <ulink url="examples/pvswarp.csd"><citetitle>pvswarp.csd</citetitle></ulink>.
-<!-- <example>
- <title>Example of the <emphasis>pvswarp</emphasis> opcode.</title>
+ <title>Example of the pvswarp opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/pvswarp.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
--->
</para>
+ <para>Used with vocal sounds, it will shift the formants and result in a changed vowel timbre, similar to the effect of a singer inhaling helium (the 'donald duck' effect).</para>
</refsect1>
<refsect1>
diff --git a/opcodes/pvsynth.xml b/opcodes/pvsynth.xml
index 37d8b37..6d7eb9a 100644
--- a/opcodes/pvsynth.xml
+++ b/opcodes/pvsynth.xml
@@ -44,19 +44,18 @@
<title>Examples</title>
<para>
<example>
- <title>Example (using score-supplied f-table, assuming fsig fftsize = 1024)</title>
+ <title>Example (using score-supplied f-table, assuming fsig <emphasis>fftsize = 1024</emphasis>)</title>
<programlisting>
-; score f-table using cubic spline to define shaped peaks
-f1 0 513 8 0 2 1 3 0 4 1 6 0 10 1 12 0 16 1 32 0 1 0 436 0
+<emphasis role="comment">; score f-table using cubic spline to define shaped peaks</emphasis>
+<emphasis role="stamnt">f</emphasis>1 0 513 8 0 2 1 3 0 4 1 6 0 10 1 12 0 16 1 32 0 1 0 436 0
-asig buzz 20000,199,50,1 ; pulsewave source
-fsig pvsanal asig,1024,256,1024,0 ; create fsig
-kmod linseg 0,p3/2,1,p3/2,0 ; simple control sig
+asig <emphasis role="opc">buzz</emphasis> 20000, 199, 50, 1 <emphasis role="comment">; pulsewave source</emphasis>
+fsig <emphasis role="opc">pvsanal</emphasis> asig, 1024, 256, 1024, 0 <emphasis role="comment">; create fsig</emphasis>
+kmod <emphasis role="opc">linseg</emphasis> 0, p3/2, 1, p3/2, 0 <emphasis role="comment">; simple control sig</emphasis>
-fsigout pvsmaska fsig,2,kmod ; apply weird eq to fsig
-aout pvsynth fsigout ; resynthesize,
- dispfft aout,0.1,1024 ; and view the effect
- </programlisting>
+fsigout <emphasis role="opc">pvsmaska</emphasis> fsig, 2, kmod <emphasis role="comment">; apply weird eq to fsig</emphasis>
+aout <emphasis role="opc">pvsynth</emphasis> fsigout <emphasis role="comment">; resynthesize,</emphasis>
+ <emphasis role="opc">dispfft</emphasis> aout, 0.1, 1024 <emphasis role="comment">; and view the effect</emphasis></programlisting>
</example>
</para>
diff --git a/opcodes/pwd.xml b/opcodes/pwd.xml
new file mode 100644
index 0000000..a7a5280
--- /dev/null
+++ b/opcodes/pwd.xml
@@ -0,0 +1,65 @@
+
+<refentry id="pwd">
+
+<indexterm id="Indexpwd"><primary>pwd</primary></indexterm>
+ <refentryinfo><title>Miscellaneous</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>pwd</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>pwd</refname>
+ <refpurpose>
+ Asks the underlying operating system for the current directory
+ name as a string.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ <command>pwd</command> call the operating system to determine
+ the current directory (folder). <command>pwd</command> runs
+ at i-time only.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>Sres <command>pwd</command></synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>Sres</emphasis> -- the returned string.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Example</title>
+ <para>
+ Here is an example of the pwd opcode. It uses the file <ulink url="examples/pwd.csd"><citetitle>pwd.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the pwd opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/pwd.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>July 2012</member>
+ </simplelist>
+ <para>New in version 5.18</para>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/qinf.xml b/opcodes/qinf.xml
new file mode 100644
index 0000000..ed998d3
--- /dev/null
+++ b/opcodes/qinf.xml
@@ -0,0 +1,54 @@
+
+<refentry id="qinf">
+<indexterm id="IndexQinf"><primary>qinf</primary></indexterm>
+ <refentryinfo><title>Mathematical Operations:Mathematical Functions</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>qinf</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>qinf</refname>
+
+ <refpurpose>
+ Questions whether the argument is a infinite number
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Returns the number of times the argument is not a number, with
+ the sign of the first infinity.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>qinf</command>(x) (no rate restriction)</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the qinf opcode. It uses the file <ulink url="examples/qinf.csd"><citetitle>qinf.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the qinf opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/qinf.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by &namejohn;.</para>
+ <para>New in Csound 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/qnan.xml b/opcodes/qnan.xml
new file mode 100644
index 0000000..8d55c6a
--- /dev/null
+++ b/opcodes/qnan.xml
@@ -0,0 +1,53 @@
+
+<refentry id="qnan">
+<indexterm id="IndexQnan"><primary>qnan</primary></indexterm>
+ <refentryinfo><title>Mathematical Operations:Mathematical Functions</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>qnan</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>qnan</refname>
+
+ <refpurpose>
+ Questions whether the argument is a infinite number
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Returns the number of times the argument is not a number.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>qnan</command>(x) (no rate restriction)</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the qnan opcode. It uses the file <ulink url="examples/qnan.csd"><citetitle>qnan.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the qnan opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/qnan.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by &namejohn;.</para>
+ <para>New in Csound 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/raises.xml b/opcodes/raises.xml
index 6f829d9..0e202cf 100644
--- a/opcodes/raises.xml
+++ b/opcodes/raises.xml
@@ -1,117 +1,114 @@
-
-<refentry id="raises">
-<indexterm id="IndexCirc"><primary>&circ;</primary></indexterm>
- <refentryinfo><title>Mathematical Operations:Arithmetic and Logic Operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>&circ;</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>&circ;</refname>
-
- <refpurpose>
- <quote>Power of</quote> operator.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Arithmetic operators perform operations of change-sign (negate), don't-change-sign, logical AND logical OR, add, subtract, multiply and divide. Note that a value or an expression may fall between two of these operators, either of which could take it as its left or right argument, as in
- <literallayout>
-a + b * c.
- </literallayout>
- </para>
-
- <para>
- In such cases three rules apply:
- </para>
-
- <para>
- 1. &ast; and <emphasis>&sol;</emphasis> bind to their neighbors more strongly than &plus; and &minus;. Thus the above expression is taken as
- <literallayout>
-a + (b * c)
- </literallayout>
- with &ast; taking b and c and then &plus; taking a and b &ast; c.
- </para>
-
- <para>
- 2. <emphasis>&plus;</emphasis> and <emphasis>&minus;</emphasis> bind more strongly than &amp;&amp;, which in turn is stronger than &verbar;&verbar;:
- <literallayout>
-a &amp;&amp; b - c &verbar;&verbar; d
- </literallayout>
- is taken as
- <literallayout>
-(a &amp;&amp; (b - c)) &verbar;&verbar; d
- </literallayout>
- </para>
-
- <para>
- 3. When both operators bind equally strongly, the operations are done left to right:
- <literallayout>
-a - b - c
- </literallayout>
- is taken as
- <literallayout>
-(a - b) - c
- </literallayout>
- </para>
-
- <para>
- Parentheses may be used as above to force particular groupings.
- </para>
-
- <para>
- The operator <emphasis>&circ;</emphasis> raises <emphasis>a</emphasis> to the <emphasis>b</emphasis> power. <emphasis>b</emphasis> may not be audio-rate. Use with caution as precedence may not work correctly. See <link linkend="pow"><citetitle>pow</citetitle></link>. (New in Csound version 3.493.)
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>a <command>&circ;</command> b (b not audio-rate)</synopsis>
-
- <para>
- where the arguments <emphasis>a</emphasis> and <emphasis>b</emphasis> may be further expressions.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the &circ; operator. It uses the file <ulink url="examples/raises.csd"><citetitle>raises.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the &circ; operator.</title>
-
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/raises.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
-
- Its output should include a line like this:
- <screen>
-instr 1: i1 = 4096.000</screen>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="subtracts"><citetitle>-</citetitle></link>,
- <link linkend="adds"><citetitle>&plus;</citetitle></link>,
- <link linkend="opand"><citetitle>&amp;&amp;</citetitle></link>,
- <link linkend="opor"><citetitle>&verbar;&verbar;</citetitle></link>,
- <link linkend="multiplies"><citetitle>&ast;</citetitle></link>,
- <link linkend="divides"><citetitle>&sol;</citetitle></link>,
- <link linkend="modulus"><citetitle>&percnt;</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
-</refentry>
+
+<refentry id="raises">
+<indexterm id="IndexCirc"><primary>&circ;</primary></indexterm>
+ <refentryinfo><title>Mathematical Operations:Arithmetic and Logic Operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>&circ;</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>&circ;</refname>
+ <refpurpose>
+ <quote>Power of</quote> operator.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Arithmetic operators perform operations of change-sign (negate), don't-change-sign, logical AND logical OR, add, subtract, multiply and divide. Note that a value or an expression may fall between two of these operators, either of which could take it as its left or right argument, as in
+ <literallayout>
+a + b * c.
+ </literallayout>
+ </para>
+
+ <para>
+ In such cases three rules apply:
+ </para>
+
+ <para>
+ 1. &ast; and <emphasis>&sol;</emphasis> bind to their neighbors more strongly than &plus; and &minus;. Thus the above expression is taken as
+ <literallayout>
+a + (b * c)
+ </literallayout>
+ with &ast; taking b and c and then &plus; taking a and b &ast; c.
+ </para>
+
+ <para>
+ 2. <emphasis>&plus;</emphasis> and <emphasis>&minus;</emphasis> bind more strongly than &amp;&amp;, which in turn is stronger than &verbar;&verbar;:
+ <literallayout>
+a &amp;&amp; b - c &verbar;&verbar; d
+ </literallayout>
+ is taken as
+ <literallayout>
+(a &amp;&amp; (b - c)) &verbar;&verbar; d
+ </literallayout>
+ </para>
+
+ <para>
+ 3. When both operators bind equally strongly, the operations are done left to right:
+ <literallayout>
+a - b - c
+ </literallayout>
+ is taken as
+ <literallayout>
+(a - b) - c
+ </literallayout>
+ </para>
+
+ <para>
+ Parentheses may be used as above to force particular groupings.
+ </para>
+
+ <para>
+ The operator <emphasis>&circ;</emphasis> raises <emphasis>a</emphasis> to the <emphasis>b</emphasis> power. <emphasis>b</emphasis> may not be audio-rate. Use with caution as precedence may not work correctly. See <link linkend="pow"><citetitle>pow</citetitle></link>. (New in Csound version 3.493.)
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>a <command>&circ;</command> b (b not audio-rate)</synopsis>
+
+ <para>
+ where the arguments <emphasis>a</emphasis> and <emphasis>b</emphasis> may be further expressions.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the &circ; operator. It uses the file <ulink url="examples/raises.csd"><citetitle>raises.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the &circ; operator.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/raises.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ Its output should include lines like these:
+ <screen>
+ i1 0.50000
+ i1 0.50021
+ i1 0.50042
+......
+ i1 1327.49320
+ i1 1327.74465</screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="subtracts"><citetitle>-</citetitle></link>,
+ <link linkend="adds"><citetitle>&plus;</citetitle></link>,
+ <link linkend="opand"><citetitle>&amp;&amp;</citetitle></link>,
+ <link linkend="opor"><citetitle>&verbar;&verbar;</citetitle></link>,
+ <link linkend="multiplies"><citetitle>&ast;</citetitle></link>,
+ <link linkend="divides"><citetitle>&sol;</citetitle></link>,
+ <link linkend="modulus"><citetitle>&percnt;</citetitle></link>
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/rand.xml b/opcodes/rand.xml
index 550a129..aed84b9 100644
--- a/opcodes/rand.xml
+++ b/opcodes/rand.xml
@@ -63,15 +63,25 @@
<title>Examples</title>
<para>
Here is an example of the rand opcode. It uses the file <ulink url="examples/rand.csd"><citetitle>rand.csd</citetitle></ulink>.
-
<example>
<title>Example of the rand opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/rand.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
+ </para>
+ <para>
+ The example will produce the following output:
+ <screen>
+ i 1 time 0.00067: 50.00305
+ i 1 time 0.50000: 62.71362
+ i 1 time 1.00000: -89.31885
+
+WARNING: Seeding from current time 472230558
+
+ i 2 time 2.00067: -70.65735
+ i 2 time 2.50000: 69.15283
+ i 2 time 3.00000: -48.79761
+ </screen>
</para>
</refsect1>
@@ -85,7 +95,6 @@
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
<para>Thanks to a note from &namejohn;, I changed the names of the parameters.</para>
</refsect1>
</refentry>
diff --git a/opcodes/randh.xml b/opcodes/randh.xml
index 79841be..cd8a542 100644
--- a/opcodes/randh.xml
+++ b/opcodes/randh.xml
@@ -67,15 +67,39 @@
<title>Examples</title>
<para>
Here is an example of the randh opcode. It uses the file <ulink url="examples/randh.csd"><citetitle>randh.csd</citetitle></ulink>.
-
<example>
<title>Example of the randh opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/randh.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
+ </para>
+ <para>
+ The example will produce the following output:
+ <screen>
+ i1 50.00000
+ i1 50.00305
+ i1 97.68677
+ i1 -44.25354
+ i1 -61.56006
+ i1 -75.91248
+ i1 67.57202
+ i1 12.83875
+ i1 5.39551
+ i1 -95.18738
+
+WARNING: Seeding from current time 684387922
+
+ i2 -13.81226
+ i2 -16.49475
+ i2 69.51904
+ i2 35.04944
+ i2 47.47925
+ i2 63.25378
+ i2 -59.61914
+ i2 50.93079
+ i2 -6.46362
+ i2 5.89294
+ </screen>
</para>
</refsect1>
@@ -87,8 +111,4 @@
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
</refentry>
diff --git a/opcodes/randi.xml b/opcodes/randi.xml
index 69a3c29..4c20272 100644
--- a/opcodes/randi.xml
+++ b/opcodes/randi.xml
@@ -67,15 +67,25 @@
<title>Examples</title>
<para>
Here is an example of the randi opcode. It uses the file <ulink url="examples/randi.csd"><citetitle>randi.csd</citetitle></ulink>.
-
<example>
<title>Example of the randi opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/randi.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
+ </para>
+ <para>
+ The example will produce the following output:
+ <screen>
+ i 1 time 0.00067: 50.00000
+ i 1 time 0.50000: -75.81672
+ i 1 time 1.00000: 95.93833
+
+WARNING: Seeding from current time 1482746120
+
+ i 2 time 2.00067: -17.94434
+ i 2 time 2.50000: -14.11875
+ i 2 time 3.00000: -72.41545
+ </screen>
</para>
</refsect1>
@@ -87,8 +97,4 @@
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
</refentry>
diff --git a/opcodes/random.xml b/opcodes/random.xml
index 752e3cc..175fff6 100644
--- a/opcodes/random.xml
+++ b/opcodes/random.xml
@@ -73,9 +73,15 @@
Its output should include lines like:
<screen>
-k1 = 414.232056
-k1 = 419.393402
-k1 = 275.376373
+ i 1 time 0.00067: 894.58566
+ i 1 time 0.50000: 748.44281
+ i 1 time 1.00000: 328.29916
+
+WARNING: Seeding from current time 1656666052
+
+ i 2 time 2.00067: 690.71466
+ i 2 time 2.50000: 459.42445
+ i 2 time 3.00000: 100.85594
</screen>
</para>
</refsect1>
@@ -93,6 +99,5 @@ k1 = 275.376373
<refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/randomh.xml b/opcodes/randomh.xml
index 268203b..48331ba 100644
--- a/opcodes/randomh.xml
+++ b/opcodes/randomh.xml
@@ -1,88 +1,136 @@
-
-<refentry id="randomh">
-<indexterm id="IndexRandomh"><primary>randomh</primary></indexterm>
- <refentryinfo><title>Signal Generators:Random (Noise) Generators</title></refentryinfo>
- <refmeta>
- <refentrytitle>randomh</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>randomh</refname>
- <refpurpose>
- Generates random numbers with a user-defined limit and holds them for a period of time.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Generates random numbers with a user-defined limit and holds them for a period of time.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>ares <command>randomh</command> kmin, kmax, acps</synopsis>
-
- <synopsis>kres <command>randomh</command> kmin, kmax, kcps</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kmin</emphasis> -- minimum range limit
- </para>
-
- <para>
- <emphasis>kmax</emphasis> -- maximum range limit
- </para>
-
- <para>
- <emphasis>kcps, acps</emphasis> -- rate of random break-point generation
- </para>
-
- <para>
- The <emphasis>randomh</emphasis> opcode is similar to <link linkend="randh"><citetitle>randh</citetitle></link> but allows the user to set arbitrary minimum and maximum values.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the randomh opcode. It uses the file <ulink url="examples/randomh.csd"><citetitle>randomh.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the randomh opcode.</title>
-
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/randomh.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
-
- Its output should include lines like:
- <screen>
-k1 = 220.000000
-k1 = 414.232056
-k1 = 284.095184
- </screen>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="randh"><citetitle>randh</citetitle></link>,
- <link linkend="random"><citetitle>random</citetitle></link>,
- <link linkend="randomi"><citetitle>randomi</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Author: &namegabriel;</para>
- <para>Example written by &namekevin;.</para>
- </refsect1>
-</refentry>
+
+<refentry id="randomh">
+<indexterm id="IndexRandomh"><primary>randomh</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Random (Noise) Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>randomh</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>randomh</refname>
+ <refpurpose>
+ Generates random numbers with a user-defined limit and holds them for a period of time.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generates random numbers with a user-defined limit and holds them for a period of time.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>randomh</command> kmin, kmax, xcps [,imode] [,ifirstval]</synopsis>
+
+ <synopsis>kres <command>randomh</command> kmin, kmax, kcps [,imode] [,ifirstval]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>imode</emphasis> (optional, default=0) -- generation mode of the
+ first output value (see below)
+ </para>
+
+ <para>
+ <emphasis>ifirstval</emphasis> (optional, default=0) -- first output value
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kmin</emphasis> -- minimum range limit
+ </para>
+
+ <para>
+ <emphasis>kmax</emphasis> -- maximum range limit
+ </para>
+
+ <para>
+ <emphasis>kcps, xcps</emphasis> -- rate of random break-point generation
+ </para>
+
+ <para>
+ The <emphasis>randomh</emphasis> opcode is similar to <link linkend="randh"><citetitle>randh</citetitle></link> but allows the user to set arbitrary minimum and maximum values.
+ </para>
+
+ <para>
+ When <emphasis>imode</emphasis> = 0 (the default), the <emphasis>kmin</emphasis>
+ argument value is outputted during <emphasis>1/kcps</emphasis> (resp.
+ <emphasis>1/xcps</emphasis>) seconds at the beginning of the note. Then,
+ the normal process takes place with a new random number generated and held
+ every <emphasis>1/kcps</emphasis> (resp. <emphasis>1/xcps</emphasis>) seconds.
+ </para>
+
+ <para>
+ When <emphasis>imode</emphasis> = 2, the <emphasis>ifirstval</emphasis>
+ argument value is outputted during <emphasis>1/kcps</emphasis> (resp.
+ <emphasis>1/xcps</emphasis>) seconds at the beginning of the note. Then,
+ the normal process takes place with a new random number generated and held
+ every <emphasis>1/kcps</emphasis> (resp. <emphasis>1/xcps</emphasis>) seconds.
+ </para>
+
+ <para>
+ When <emphasis>imode</emphasis> = 3, the generation process begins with a
+ random value from the initialization time.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the randomh opcode. It uses the file <ulink url="examples/randomh.csd"><citetitle>randomh.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the randomh opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/randomh.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ Its output should include lines like this:
+ <screen>
+Mode: 0
+ i1 220.00000
+ i1 396.26079
+ i1 240.75446
+ i1 364.24577
+ ...
+
+Mode: 2
+ i1 330.00000
+ i1 416.50935
+ i1 356.11619
+ i1 433.59324
+ ...
+
+Mode: 3
+ i1 261.17741
+ i1 402.00891
+ i1 393.86592
+ i1 307.19839
+ ...</screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="randh"><citetitle>randh</citetitle></link>,
+ <link linkend="random"><citetitle>random</citetitle></link>,
+ <link linkend="randomi"><citetitle>randomi</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namegabriel;</para>
+ <para>Arguments <emphasis>imode</emphasis> and <emphasis>ifirstval</emphasis>
+ added by &namepinot;, Jan. 2011, after a discussion with Peiman Khosravi on
+ the csnd list.</para>
+ <para>Example written by &namekevin;, adapted for new args by &namepinot;.</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/randomi.xml b/opcodes/randomi.xml
index c2674ec..8abcf40 100644
--- a/opcodes/randomi.xml
+++ b/opcodes/randomi.xml
@@ -1,88 +1,153 @@
-
-<refentry id="randomi">
-<indexterm id="IndexRandomi"><primary>randomi</primary></indexterm>
- <refentryinfo><title>Signal Generators:Random (Noise) Generators</title></refentryinfo>
- <refmeta>
- <refentrytitle>randomi</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>randomi</refname>
- <refpurpose>
- Generates a user-controlled random number series with interpolation between each new number.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Generates a user-controlled random number series with interpolation between each new number.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>ares <command>randomi</command> kmin, kmax, acps</synopsis>
-
- <synopsis>kres <command>randomi</command> kmin, kmax, kcps</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kmin</emphasis> -- minimum range limit
- </para>
-
- <para>
- <emphasis>kmax</emphasis> -- maximum range limit
- </para>
-
- <para>
- <emphasis>kcps, acps</emphasis> -- rate of random break-point generation
- </para>
-
- <para>
- The <emphasis>randomi</emphasis> opcode is similar to <link linkend="randi"><citetitle>randi</citetitle></link> but allows the user to set arbitrary minimum and maximum values.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the randomi opcode. It uses the file <ulink url="examples/randomi.csd"><citetitle>randomi.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the randomi opcode.</title>
-
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/randomi.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
-
- Its output should include lines like:
- <screen>
-k1 = 220.000000
-k1 = 414.226196
-k1 = 284.101074
- </screen>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="randi"><citetitle>randi</citetitle></link>,
- <link linkend="random"><citetitle>random</citetitle></link>,
- <link linkend="randomh"><citetitle>randomh</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Author: &namegabriel;</para>
- <para>Example written by &namekevin;.</para>
- </refsect1>
-</refentry>
+
+<refentry id="randomi">
+<indexterm id="IndexRandomi"><primary>randomi</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Random (Noise) Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>randomi</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>randomi</refname>
+ <refpurpose>
+ Generates a user-controlled random number series with interpolation between each new number.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generates a user-controlled random number series with interpolation between each new number.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>randomi</command> kmin, kmax, xcps [,imode] [,ifirstval]</synopsis>
+
+ <synopsis>kres <command>randomi</command> kmin, kmax, kcps [,imode] [,ifirstval]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>imode</emphasis> (optional, default=0) -- first interpolation cycle mode (see below)
+ </para>
+
+ <para>
+ <emphasis>ifirstval</emphasis> (optional, default=0) -- first output value
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kmin</emphasis> -- minimum range limit
+ </para>
+
+ <para>
+ <emphasis>kmax</emphasis> -- maximum range limit
+ </para>
+
+ <para>
+ <emphasis>kcps, xcps</emphasis> -- rate of random break-point generation
+ </para>
+
+ <para>
+ The <emphasis>randomi</emphasis> opcode is similar to <link linkend="randi"><citetitle>randi</citetitle></link> but allows the user to set arbitrary minimum and maximum values.
+ </para>
+
+ <para>
+ When <emphasis>imode</emphasis> = 0 (the default), the <emphasis>kmin</emphasis>
+ argument value is outputted during <emphasis>1/kcps</emphasis> (resp.
+ <emphasis>1/xcps</emphasis>) seconds at the beginning of the note, before
+ the first random number is generated. Then the normal interpolation process
+ takes place, first between <emphasis>kmin</emphasis> and the first random
+ number generated, and then between successive generated random numbers,
+ each interpolation cycle having a duration of <emphasis>1/kcps</emphasis>
+ (resp. <emphasis>1/xcps</emphasis>) seconds.
+ </para>
+
+ <para>
+ When <emphasis>imode</emphasis> = 1, a random number is generated at
+ initialization and interpolation begins immediately between the
+ <emphasis>kmin</emphasis> argument value and that random number.
+ </para>
+
+ <para>
+ When <emphasis>imode</emphasis> = 2, a random number is generated at
+ initialization and interpolation begins immediately between the
+ <emphasis>ifirstval</emphasis> argument value and that random number.
+ </para>
+
+ <para>
+ When <emphasis>imode</emphasis> = 3, two random numbers are generated
+ at initialization as breakpoints for the first interpolation cycle.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the randomi opcode. It uses the file <ulink url="examples/randomi.csd"><citetitle>randomi.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the randomi opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/randomi.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ Its output should include lines like this:
+ <screen>
+Mode: 0
+k1 = 220.000000
+k1 = 220.000000
+k1 = 220.146093
+k1 = 246.827703
+k1 = 395.595775
+ ...
+
+Mode: 1
+k1 = 220.000000
+k1 = 224.325329
+k1 = 274.370074
+k1 = 343.216049
+k1 = 414.324347
+ ...
+
+Mode: 2
+k1 = 330.000000
+k1 = 292.628171
+k1 = 334.519777
+k1 = 290.610602
+k1 = 394.905366
+ ...
+
+Mode: 3
+k1 = 360.727674
+k1 = 431.680412
+k1 = 380.625254
+k1 = 289.267139
+k1 = 303.038109
+ ...</screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="randi"><citetitle>randi</citetitle></link>,
+ <link linkend="random"><citetitle>random</citetitle></link>,
+ <link linkend="randomh"><citetitle>randomh</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namegabriel;</para>
+ <para>Arguments <emphasis>imode</emphasis> and <emphasis>ifirstval</emphasis>
+ added by &namepinot;, Jan. 2011, after a discussion with Peiman Khosravi on
+ the csnd list.</para>
+ <para>Example written by &namekevin;, adapted for new args by &namepinot;.</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/readf.xml b/opcodes/readf.xml
new file mode 100644
index 0000000..7e71281
--- /dev/null
+++ b/opcodes/readf.xml
@@ -0,0 +1,80 @@
+
+<refentry id="readf">
+<indexterm id="IndexReadf"><primary>readf</primary></indexterm>
+ <refentryinfo><title>Signal I/O:File I/O</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>readf</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>readf</refname>
+ <refpurpose>
+ Read a line of text from an external file.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Read a line of text from an external file once each k-cycle.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>Sres, kline <command>readf</command> ifilname</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifilname</emphasis> -- an integer N denoting a file
+ named "input.N" or a character string (in double quotes, spaces
+ permitted) denoting the external file name. For a string, it may
+ either be a full path name with directory specified or a simple
+ filename. In the later case, the file is sought first in the
+ current directory, then in SSDIR, and finally in SFDIR.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>Sres</emphasis> -- output of the line read from
+ <emphasis>ifilname</emphasis>.
+ </para>
+ <para>
+ <emphasis>kline</emphasis> -- line number, or -1 when end of file has been reached.
+ </para>
+
+ <para>
+ This opcode allows a line of text to be read from a named
+ external file. There may be any number of
+ <emphasis>readf</emphasis> opcodes in an instrument or orchestra
+ but they read separately from the same or different files.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the readf opcode. It uses the file <ulink url="examples/readf.csd"><citetitle>readf.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the readf opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/readf.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="readfi"><citetitle>readfi</citetitle></link>.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Credits</title>
+ <para>John ffitch and Joachim Heintz</para>
+ <para>2012; new in 5.17.12</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/readfi.xml b/opcodes/readfi.xml
new file mode 100644
index 0000000..97b38d9
--- /dev/null
+++ b/opcodes/readfi.xml
@@ -0,0 +1,69 @@
+
+<refentry id="readfi">
+<indexterm id="IndexReadfi"><primary>readfi</primary></indexterm>
+ <refentryinfo><title>Signal I/O:File I/O</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>readfi</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>readfi</refname>
+ <refpurpose>
+ Read a line of text from an external file.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Read a line of text from an external file once on initialisation.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>Sres, iline <command>readfi</command> ifilname</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifilname</emphasis> -- an integer N denoting a file named "input.N" or a character string (in double quotes, spaces permitted) denoting the external file name. For a string, it may either be a full path name with directory specified or a simple filename. In the later case, the file is sought first in the current directory, then in SSDIR, and finally in SFDIR.
+ </para>
+ <para>
+ <emphasis>iline</emphasis> -- line number, or -1 when end of file has been reached.
+ </para>
+ <para>
+ <emphasis>Sres</emphasis> -- output of the line read from <emphasis>ifilname</emphasis>.
+ </para>
+
+ <para>
+ This opcode allows a line of text to be read from a named
+ external file. There may be any number of
+ <emphasis>readfi</emphasis> opcodes in an instrument or orchestra
+ but they read separately from the same or different files.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the readfi opcode. It uses the file <ulink url="examples/readfi.csd"><citetitle>readfi.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the readfi opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/readfi.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="readf"><citetitle>readf</citetitle></link>.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Credits</title>
+ <para>John ffitch and Joachim Heintz</para>
+ <para>2012; new in 5.17.12</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/readk.xml b/opcodes/readk.xml
index b84e3f1..ff7278c 100644
--- a/opcodes/readk.xml
+++ b/opcodes/readk.xml
@@ -91,13 +91,37 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the readk opcode. It uses the file <ulink url="examples/readk.csd"><citetitle>dumpk.csd</citetitle></ulink>.
+ Here is an example of the readk opcode. It uses the file <ulink url="examples/readk.csd"><citetitle>readk.csd</citetitle></ulink>.
<example>
<title>Example of the readk opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/readk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
+ <para>
+ Here is another example of the readk opcode. It uses the file <ulink url="examples/readk-2.csd"><citetitle>readk-2.csd</citetitle></ulink>.
+ <example>
+ <title>Example 2 of the readk opcode.</title>
+ <xi:include href="examples-xml/readk-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like this:
+ <screen>
+WARNING: Seeding from current time 683384022
+
+ i 1 time 1.00033: 463.64510
+ i 1 time 2.00000: 463.64510
+ i 1 time 3.00000: 483.14200
+ i 1 time 4.00000: 567.55973
+ i 1 time 5.00000: 576.37060
+ i 1 time 6.00000: 460.66550
+
+ i 2 time 6.00033: 463.64510
+ i 2 time 7.00000: 463.64510
+ i 2 time 8.00000: 483.14200
+ i 2 time 9.00000: 567.55970
+ i 2 time 10.00000: 576.37060
+ i 2 time 11.00000: 460.66550</screen>
+ </para>
</refsect1>
<!-- <refsect1>
<title>Examples</title>
diff --git a/opcodes/readk2.xml b/opcodes/readk2.xml
index 5138b9f..4917766 100644
--- a/opcodes/readk2.xml
+++ b/opcodes/readk2.xml
@@ -90,18 +90,36 @@
</para>
</refsect1>
- <refsect1>
+<refsect1>
<title>Examples</title>
<para>
- See the example for <link linkend="readk"><citetitle>readk</citetitle></link>. The only difference between <link linkend="readk"><citetitle>readk</citetitle></link> and <emphasis>readk2</emphasis> is that <emphasis>readk2</emphasis> can read two values at a time from the file.
-<!-- <informalexample>
- <programlisting>
-knum <emphasis>=</emphasis> knum+1 ; at each k-period
-ktemp <emphasis>tempest</emphasis> krms, .02, .1, 3, 2, 800, .005, 0, 60, 4, .1, .995 ;estimate the tempo
-koct <emphasis>specptrk</emphasis> wsig, 6, .9, 0 ;and the pitch
- <emphasis>dumpk3</emphasis> knum, ktemp, cpsoct(koct), &quot;what happened when&quot;, 8 0 ;&amp; save them
- </programlisting>
- </informalexample>-->
+ Here is an example of the readk2 opcode. It uses the file <ulink url="examples/readk2.csd"><citetitle>readk2.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the readk2 opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/readk2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ The output should include lines like these:
+ <screen>
+kfreq = 429.202551, kdb = -20.495694
+kfreq = 429.202551, kdb = -20.495694
+kfreq = 407.275258, kdb = -23.123776
+kfreq = 475.264472, kdb = -9.300846
+kfreq = 569.979181, kdb = -7.315527
+kfreq = 440.103457, kdb = -0.058331
+
+kfreq = 429.202600, kdb = -20.495700
+kfreq = 429.202600, kdb = -20.495700
+kfreq = 407.275300, kdb = -23.123800
+kfreq = 475.264500, kdb = -9.300800
+kfreq = 569.979200, kdb = -7.315500
+kfreq = 440.103500, kdb = -0.058300
+ </screen>
</para>
</refsect1>
diff --git a/opcodes/readk3.xml b/opcodes/readk3.xml
index 0d3abf7..71600ce 100644
--- a/opcodes/readk3.xml
+++ b/opcodes/readk3.xml
@@ -89,18 +89,38 @@
</para>
</refsect1>
- <refsect1>
+<refsect1>
<title>Examples</title>
<para>
- See the example for <link linkend="readk"><citetitle>readk</citetitle></link>. The only difference between <link linkend="readk"><citetitle>readk</citetitle></link> and <emphasis>readk3</emphasis> is that <emphasis>readk3</emphasis> can read three values at a time from the file.
-<!-- <informalexample>
- <programlisting>
-knum <emphasis>=</emphasis> knum+1 ; at each k-period
-ktemp <emphasis>tempest</emphasis> krms, .02, .1, 3, 2, 800, .005, 0, 60, 4, .1, .995 ;estimate the tempo
-koct <emphasis>specptrk</emphasis> wsig, 6, .9, 0 ;and the pitch
- <emphasis>dumpk3</emphasis> knum, ktemp, cpsoct(koct), &quot;what happened when&quot;, 8 0 ;&amp; save them
- </programlisting>
- </informalexample>-->
+ Here is an example of the readk3 opcode. It uses the file <ulink url="examples/readk3.csd"><citetitle>readk3.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the readk3 opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/readk3.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ The output should include lines like these:
+ <screen>
+WRITING:
+kfreq = 473.352855, kdb = -15.197657, kpan = 0.366764
+kfreq = 473.352855, kdb = -15.197657, kpan = 0.366764
+kfreq = 441.426368, kdb = -19.026206, kpan = 0.207327
+kfreq = 452.965140, kdb = -21.447486, kpan = 0.553270
+kfreq = 585.106328, kdb = -11.903852, kpan = 0.815665
+kfreq = 482.056760, kdb = -4.046744, kpan = 0.876537
+
+READING:
+kfreq = 473.352900, kdb = -15.197700, kpan = 0.366800
+kfreq = 473.352900, kdb = -15.197700, kpan = 0.366800
+kfreq = 441.426400, kdb = -19.026200, kpan = 0.207300
+kfreq = 452.965100, kdb = -21.447500, kpan = 0.553300
+kfreq = 585.106300, kdb = -11.903900, kpan = 0.815700
+kfreq = 482.056800, kdb = -4.046700, kpan = 0.876500
+ </screen>
</para>
</refsect1>
diff --git a/opcodes/readk4.xml b/opcodes/readk4.xml
index eaa17a6..8a590b7 100644
--- a/opcodes/readk4.xml
+++ b/opcodes/readk4.xml
@@ -90,18 +90,40 @@
</para>
</refsect1>
- <refsect1>
+<refsect1>
<title>Examples</title>
<para>
- See the example for <link linkend="readk"><citetitle>readk</citetitle></link>. The only difference between <link linkend="readk"><citetitle>readk</citetitle></link> and <emphasis>readk4</emphasis> is that <emphasis>readk4</emphasis> can read four values at a time from the file.
-<!-- <informalexample>
- <programlisting>
-knum <emphasis>=</emphasis> knum+1 ; at each k-period
-ktemp <emphasis>tempest</emphasis> krms, .02, .1, 3, 2, 800, .005, 0, 60, 4, .1, .995 ;estimate the tempo
-koct <emphasis>specptrk</emphasis> wsig, 6, .9, 0 ;and the pitch
- <emphasis>dumpk3</emphasis> knum, ktemp, cpsoct(koct), &quot;what happened when&quot;, 8 0 ;&amp; save them
- </programlisting>
- </informalexample>-->
+ Here is an example of the readk4 opcode. It uses the file <ulink url="examples/readk4.csd"><citetitle>readk4.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the readk4 opcode.</title>
+
+
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/readk4.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ The output should include lines like these:
+ <screen>
+WRITING:
+kcf = 1122.469723, kq = 11.762839, kdb = -14.313445, kpan = 0.538142
+kcf = 1122.469723, kq = 11.762839, kdb = -14.313445, kpan = 0.538142
+kcf = 1148.638412, kq = 12.040490, kdb = -14.061868, kpan = 0.552205
+kcf = 165.796855, kq = 18.523179, kdb = -15.816977, kpan = 0.901528
+kcf = 147.729960, kq = 13.071911, kdb = -11.924531, kpan = 0.982518
+kcf = 497.430113, kq = 13.605512, kdb = -21.586611, kpan = 0.179229
+
+READING:
+WARNING: Seeding from current time 3308160476
+
+kcf = 1122.469700, kq = 11.762800, kdb = -14.313400, kpan = 0.538100
+kcf = 1122.469700, kq = 11.762800, kdb = -14.313400, kpan = 0.538100
+kcf = 1148.638400, kq = 12.040500, kdb = -14.061900, kpan = 0.552200
+kcf = 165.796900, kq = 18.523200, kdb = -15.817000, kpan = 0.901500
+kcf = 147.730000, kq = 13.071900, kdb = -11.924500, kpan = 0.982500
+kcf = 497.430100, kq = 13.605500, kdb = -21.586600, kpan = 0.179200
+ </screen>
</para>
</refsect1>
diff --git a/opcodes/readscore.xml b/opcodes/readscore.xml
new file mode 100644
index 0000000..a4978a0
--- /dev/null
+++ b/opcodes/readscore.xml
@@ -0,0 +1,76 @@
+
+<refentry id="readscore">
+<indexterm id="Indexreadscore"><primary>readscore</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Invocation</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>readscore</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>readscore</refname>
+ <refpurpose>
+ Read, preprocess and schedule a score from an input string.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Readscore will issue one or more score events.
+ It can handle strings in the same conditions as
+ the standard score, including preprocessing (carry, sort, ramp, etc).
+Multi-line strings are accepted, using {{ }} to enclose the string.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>readscore</command> Sin </synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis><quote>Sin</quote></emphasis> -- a string (in double-quotes or enclosed by {{ }}) containing one or more score events.
+</para>
+ </refsect1>
+
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the readscore opcode. It uses the file <ulink url="examples/readscore.csd"><citetitle>readscore.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the readscore opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/readscore.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <para>
+ You can use string opcodes like <link linkend="sprintfk"><citetitle>sprintfk</citetitle></link> to produce strings to be passed to <emphasis>readscore</emphasis> like this:
+<programlisting>
+Sfil <emphasis role="op">=</emphasis> "/Volumes/Bla/file.aif"
+String <emphasis role="opc">sprintfk</emphasis> {{i 2 0 %f "%s" %f %f %f %f}}, idur, Sfil, p5, p6, knorm, iskip
+<emphasis role="opc">readscore</emphasis> String
+ </programlisting>
+ </para>
+ </example>
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>See also</title>
+ <para>
+ <link linkend="event"><citetitle>event</citetitle></link>,
+ <link linkend="event_i"><citetitle>event_i</citetitle></link>,
+ <link linkend="schedule"><citetitle>schedule</citetitle></link>,
+ <link linkend="schedwhen"><citetitle>schedwhen</citetitle></link>,
+ <link linkend="schedkwhen"><citetitle>schedkwhen</citetitle></link>,
+ <link linkend="schedkwhennamed"><citetitle>schedkwhennamed</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namevictor;, 2013 </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/readscratch.xml b/opcodes/readscratch.xml
new file mode 100644
index 0000000..60b8dda
--- /dev/null
+++ b/opcodes/readscratch.xml
@@ -0,0 +1,74 @@
+
+<refentry id="readscratch">
+<indexterm id="IndexReadscratch"><primary>readscratch</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Sensing and Control</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>readscratch</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>readscratch</refname>
+
+ <refpurpose>
+ returns a value stored in the instance of an instrument.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ The <emphasis>readscratch</emphasis> opcode returns one of four
+ scalar values stored in the instance of an instrument.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ival <command>readscratch</command>[index]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialisation</title>
+ <para>
+ <emphasis>ival</emphasis> -- variable for result.
+ </para>
+ <para>
+ <emphasis>index</emphasis> -- which value to read, defaulting
+ to zero.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the readscratch opcode. It uses the file <ulink url="examples/readscratch.csd"><citetitle>readscratch.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the readscratch opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/readscratch.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="writescratch"><citetitle>writescratch</citetitle></link>,
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>March 2013</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/reson.xml b/opcodes/reson.xml
index 9b89975..e5e2519 100644
--- a/opcodes/reson.xml
+++ b/opcodes/reson.xml
@@ -24,7 +24,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>reson</command> asig, kcf, kbw [, iscl] [, iskip]</synopsis>
+ <synopsis>ares <command>reson</command> asig, xcf, xbw [, iscl] [, iskip]</synopsis>
</refsect1>
<refsect1>
@@ -49,11 +49,11 @@
</para>
<para>
- <emphasis>kcf</emphasis> -- the center frequency of the filter, or frequency position of the peak response.
+ <emphasis>xcf</emphasis> -- the center frequency of the filter, or frequency position of the peak response.
</para>
<para>
- <emphasis>kbw</emphasis> -- bandwidth of the filter (the Hz difference between the upper and lower half-power points).
+ <emphasis>xbw</emphasis> -- bandwidth of the filter (the Hz difference between the upper and lower half-power points).
</para>
<para>
@@ -94,6 +94,8 @@
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>November 2013.</para>
</refsect1>
+
</refentry>
diff --git a/opcodes/resonk.xml b/opcodes/resonk.xml
index 9645046..a0785bb 100644
--- a/opcodes/resonk.xml
+++ b/opcodes/resonk.xml
@@ -62,6 +62,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the resonk opcode. It uses the file <ulink url="examples/resonk.csd"><citetitle>resonk.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the resonk opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/resonk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="areson"><citetitle>areson</citetitle></link>,
diff --git a/opcodes/resonr.xml b/opcodes/resonr.xml
index 36ff5db..860dc34 100644
--- a/opcodes/resonr.xml
+++ b/opcodes/resonr.xml
@@ -24,7 +24,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>resonr</command> asig, kcf, kbw [, iscl] [, iskip]</synopsis>
+ <synopsis>ares <command>resonr</command> asig, xcf, xbw [, iscl] [, iskip]</synopsis>
</refsect1>
<refsect1>
@@ -49,11 +49,11 @@
</para>
<para>
- <emphasis>kcf</emphasis> -- cutoff or resonant frequency of the filter, measured in Hz
+ <emphasis>xcf</emphasis> -- cutoff or resonant frequency of the filter, measured in Hz
</para>
<para>
- <emphasis>kbw</emphasis> -- bandwidth of the filter (the Hz difference between the upper and lower half-power points)
+ <emphasis>xbw</emphasis> -- bandwidth of the filter (the Hz difference between the upper and lower half-power points)
</para>
<para>
@@ -145,5 +145,7 @@
</para>
<para>New in Csound version 3.55</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>November 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/resonx.xml b/opcodes/resonx.xml
index 1e4f5c5..9f75aae 100644
--- a/opcodes/resonx.xml
+++ b/opcodes/resonx.xml
@@ -6,13 +6,11 @@
<refentrytitle>resonx</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>resonx</refname>
<refpurpose>
Emulates a stack of filters using the reson opcode.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -24,7 +22,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>resonx</command> asig, kcf, kbw [, inumlayer] [, iscl] [, iskip]</synopsis>
+ <synopsis>ares <command>resonx</command> asig, xcf, xbw [, inumlayer] [, iscl] [, iskip]</synopsis>
</refsect1>
<refsect1>
@@ -49,14 +47,26 @@
</para>
<para>
- <emphasis>kcf</emphasis> -- the center frequency of the filter, or frequency position of the peak response.
+ <emphasis>xcf</emphasis> -- the center frequency of the filter, or frequency position of the peak response.
</para>
<para>
- <emphasis>kbw</emphasis> -- bandwidth of the filter (the Hz difference between the upper and lower half-power points)
+ <emphasis>xbw</emphasis> -- bandwidth of the filter (the Hz difference between the upper and lower half-power points)
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the resonx opcodes. It uses the file <ulink url="examples/resonx.csd"><citetitle>resonx.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the resonx opcodes.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/resonx.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
@@ -75,5 +85,7 @@
</para>
<para>New in Csound version 3.49</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>November 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/resonxk.xml b/opcodes/resonxk.xml
index e7c71f1..0762d4e 100644
--- a/opcodes/resonxk.xml
+++ b/opcodes/resonxk.xml
@@ -57,9 +57,20 @@
<para><emphasis>resonxk</emphasis> is a lot faster than using individual instances in Csound orchestra of the old opcodes, because only one initialization and 'k' cycle are needed at a time, and the audio loop falls enterely inside the cache memory of processor.
</para>
+ </refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the resonxk opcode. It uses the file <ulink url="examples/resonxk.csd"><citetitle>resonxk.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the resonxk opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/resonxk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
-
+
<refsect1>
<title>Credits</title>
<para>Written by &namegabriel;.</para>
diff --git a/opcodes/resony.xml b/opcodes/resony.xml
index acb4600..98e506f 100644
--- a/opcodes/resony.xml
+++ b/opcodes/resony.xml
@@ -72,7 +72,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the resony opcode. It uses the file <ulink url="examples/resony.csd"><citetitle>resony.csd</citetitle></ulink>, and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
+ Here is an example of the resony opcode. It uses the file <ulink url="examples/resony.csd"><citetitle>resony.csd</citetitle></ulink>.
<example>
<title>Example of the resony opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
@@ -90,8 +90,6 @@
<member>1999</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.56</para>
</refsect1>
</refentry>
diff --git a/opcodes/resonz.xml b/opcodes/resonz.xml
index 979a3b3..2329053 100644
--- a/opcodes/resonz.xml
+++ b/opcodes/resonz.xml
@@ -24,7 +24,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ares <command>resonz</command> asig, kcf, kbw [, iscl] [, iskip]</synopsis>
+ <synopsis>ares <command>resonz</command> asig, xcf, xbw [, iscl] [, iskip]</synopsis>
</refsect1>
<refsect1>
@@ -61,11 +61,11 @@
</para>
<para>
- <emphasis>kcf</emphasis> -- cutoff or resonant frequency of the filter, measured in Hz
+ <emphasis>xcf</emphasis> -- cutoff or resonant frequency of the filter, measured in Hz
</para>
<para>
- <emphasis>kbw</emphasis> -- bandwidth of the filter (the Hz difference between the upper and lower half-power points)
+ <emphasis>xbw</emphasis> -- bandwidth of the filter (the Hz difference between the upper and lower half-power points)
</para>
</refsect1>
@@ -79,6 +79,18 @@
Ken Steiglitz, in a later article <superscript>2</superscript>, demonstrated that <emphasis>resonz</emphasis> had constant gain at the true peak of the filter, as opposed to <emphasis>resonr</emphasis>, which displayed constant gain at the pole angle. Steiglitz also recommended <emphasis>resonz</emphasis> for its sharper notches in the gain curve at zero and Nyquist frequency. Steiglitz's recent book <superscript>3</superscript> features a thorough technical discussion of <emphasis>reson</emphasis> and <emphasis>resonz</emphasis>, while Dodge and Jerse's textbook <superscript>4</superscript> illustrates the differences in the response curves of <emphasis>reson</emphasis> and <emphasis>resonz</emphasis>.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the resonr and resonz opcodes. It uses the file <ulink url="examples/resonr.csd"><citetitle>resonr.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the resonr and resonz opcodes.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/resonr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>References</title>
@@ -129,5 +141,7 @@
</para>
<para>New in Csound version 3.55</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>November 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/resyn.xml b/opcodes/resyn.xml
index 6b81ec0..cd6ad49 100644
--- a/opcodes/resyn.xml
+++ b/opcodes/resyn.xml
@@ -56,37 +56,20 @@ pitch control and support for timescale-modified input
</para>
<para>
- <emphasis>ifn</emphasis> -- function table containing one cycle of a sinusoid (sine or cosine) </para>
-
- <para>
-
- </para>
-
+ <emphasis>ifn</emphasis> -- function table containing one cycle of a sinusoid (sine or cosine) </para>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the resyn opcode. It uses the file <ulink url="examples/resyn.csd"><citetitle>resyn.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
- aout resyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th)
-out aout
- </programlisting>
+ <title>Example of the resyn opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/resyn.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
- </para>
-
- <para>
-The example above shows partial tracking of an ifd-analysis signal and
-cubic-phase additive resynthesis with pitch shifting.
-
</para>
-
+ <para>The example above shows partial tracking of an ifd-analysis signal and cubic-phase additive resynthesis with pitch shifting. </para>
</refsect1>
<refsect1>
diff --git a/opcodes/return.xml b/opcodes/return.xml
new file mode 100644
index 0000000..82f4e52
--- /dev/null
+++ b/opcodes/return.xml
@@ -0,0 +1,57 @@
+
+<refentry id="return">
+<indexterm id="Indexreturn"><primary>return</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Compilation</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>return</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>return</refname>
+ <refpurpose>
+ Returns a value from an instrument.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Return will return a value from an instrument at i-time. The value of a global instrument (instrument 0) can be retrieved
+after compilation by the evalstr opcode. The retrieval of values returned by other instruments is not yet implemented.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>return</command> ival </synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis><quote>ival</quote></emphasis> -- a value to be returned by instrument.
+</para>
+
+ </refsect1>
+
+
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the return opcode in conjunction with evalcode:
+ <example>
+ <para>
+<programlisting>
+ival <emphasis role="op">evalstr</emphasis> "return 2 + 2"
+<emphasis role="op">print</emphasis> ival
+ </programlisting>
+ </para>
+ </example>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namevictor;, 2013 </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/rewindscore.xml b/opcodes/rewindscore.xml
index f5be2ec..51796f8 100755..100644
--- a/opcodes/rewindscore.xml
+++ b/opcodes/rewindscore.xml
@@ -28,14 +28,13 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the rewindscore opcode.</para>
+ Here is an example of the <emphasis>rewindscore</emphasis> opcode. It uses the file <ulink url="examples/rewindscore.csd"><citetitle>rewindscore.csd</citetitle></ulink>.
<example>
- <title>Example of the rewindscore opcode.</title>
-<programlisting>
-<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="opc">rewindscore</emphasis>
-<emphasis role="oblock">endin</emphasis></programlisting>
+ <title>An example of the rewindscore opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/rewindscore.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/rezzy.xml b/opcodes/rezzy.xml
index 354249b..7be7f04 100644
--- a/opcodes/rezzy.xml
+++ b/opcodes/rezzy.xml
@@ -88,8 +88,6 @@
<member>October 1998</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.49</para>
</refsect1>
</refentry>
diff --git a/opcodes/round.xml b/opcodes/round.xml
index ada7be6..47c80be 100644
--- a/opcodes/round.xml
+++ b/opcodes/round.xml
@@ -40,6 +40,30 @@
</para>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the round opcode. It uses the file <ulink url="examples/round.csd"><citetitle>round.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the round opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/round.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include a line like these:
+ <screen>
+instr 1: inumber = 9.000 idiv = 1.000 ifl = 9.000
+instr 1: inumber = 9.000 idiv = 2.000 ifl = 5.000
+instr 1: inumber = 9.000 idiv = 3.000 ifl = 3.000
+instr 1: inumber = 9.000 idiv = 4.000 ifl = 2.000
+instr 1: inumber = 9.000 idiv = 5.000 ifl = 2.000
+instr 1: inumber = 9.000 idiv = 6.000 ifl = 2.000
+instr 1: inumber = 9.000 idiv = 7.000 ifl = 1.000
+instr 1: inumber = 9.000 idiv = 8.000 ifl = 1.000
+instr 1: inumber = 9.000 idiv = 9.000 ifl = 1.000
+instr 1: inumber = 9.000 idiv = 10.000 ifl = 1.000
+ </screen>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/rspline.xml b/opcodes/rspline.xml
index 269ca9d..683afe8 100644
--- a/opcodes/rspline.xml
+++ b/opcodes/rspline.xml
@@ -63,6 +63,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the rspline opcode. It uses the file <ulink url="examples/rspline.csd"><citetitle>rspline.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the rspline opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/rspline.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
<para>New in version 4.15</para>
diff --git a/opcodes/rtclock.xml b/opcodes/rtclock.xml
index e1e07a3..e3bc36c 100644
--- a/opcodes/rtclock.xml
+++ b/opcodes/rtclock.xml
@@ -40,28 +40,17 @@
<title>Examples</title>
<para>
Here is an example of the rtclock opcode. It uses the file <ulink url="examples/rtclock.csd"><citetitle>rtclock.csd</citetitle></ulink>.
-
<example>
<title>Example of the rtclock opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/rtclock.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include lines like this:
- <screen>
- i 1 time 0.00002: 1018236096.00000
- i 1 time 1.00002: 1018236224.00000
- </screen>
</para>
</refsect1>
<refsect1>
<title>Credits</title>
<para>Author: &namejohn;</para>
- <para>Example written by &namekevin;.</para>
<para>New in version 4.10</para>
</refsect1>
</refentry>
diff --git a/opcodes/samphold.xml b/opcodes/samphold.xml
index 92abeb7..e00ae12 100644
--- a/opcodes/samphold.xml
+++ b/opcodes/samphold.xml
@@ -58,6 +58,14 @@ asamp <emphasis role="opc">samphold</emphasis> anew, agate <emphasis
aout <emphasis role="opc">tone</emphasis> asamp, 100 <emphasis role="comment">; smooth out the rough edges</emphasis></programlisting>
</informalexample>
</para>
+ <para>
+ Here is another example of the samphold opcode. It uses the file <ulink url="examples/samphold.csd"><citetitle>samphold.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the samphold opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/samphold.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/scalearray.xml b/opcodes/scalearray.xml
new file mode 100644
index 0000000..45c4c06
--- /dev/null
+++ b/opcodes/scalearray.xml
@@ -0,0 +1,80 @@
+
+<refentry id="scalearray">
+<indexterm id="IndexScalearray"><primary>scalearray</primary></indexterm>
+ <refentryinfo><title>Array Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>scalearray</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>scalearray</refname>
+
+ <refpurpose>
+ Scales the values in a range of a vector (one dimensional array).
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ The <emphasis>scalearray</emphasis> opcode scales a subregion of a
+ vector to a given minimum/maximum.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>scalearray</command> tarray, kmin, kmax[, kleft, kright]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>karray</emphasis> -- array for operation.
+ </para>
+ <para>
+ <emphasis>kmin, kmax</emphasis> -- target minimum and maximum values.
+ </para>
+ <para>
+ <emphasis>kleft, kright</emphasis> -- range of table to use,
+ defaulting to 0 and size of the vector.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the scalearray opcode. It uses the file <ulink url="examples/scalearray.csd"><citetitle>scalearray.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the scalearray opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/scalearray.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="maxarray"><citetitle>maxarray</citetitle></link>,
+ <link linkend="minarray"><citetitle>minarray</citetitle></link>,
+ <link linkend="sumarray"><citetitle>sumarray</citetitle></link>,
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>October 2011</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.14</para>
+ <para>Renamed in Csound version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/scans.xml b/opcodes/scans.xml
index 495d961..253517d 100644
--- a/opcodes/scans.xml
+++ b/opcodes/scans.xml
@@ -57,23 +57,30 @@
<title>Examples</title>
<para>
Here is an example of the scanned synthesis. It uses the file <ulink url="examples/scans.csd"><citetitle>scans.csd</citetitle></ulink>, and <ulink url="examples/string-128.matrix"><citetitle>string-128.matrix</citetitle></ulink>.
-
<example>
<title>Example of the scans opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/scans.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
-
- <para>
- The matrix file <quote>string-128.matrix</quote>, as well as several other matrices, is also available in a <ulink url="http://www.csounds.com/scanned/zip/scanmatrices.zip"><citetitle>zipped file</citetitle></ulink> from the <ulink url="http://www.csounds.com/scanned/"><citetitle>Scanned Synthesis page</citetitle></ulink> at cSounds.com.
+ <para>
+ Here is another example of the scanned synthesis, using samples as excitation signal. It uses the file <ulink url="examples/scans-2.csd"><citetitle>scans-2.csd</citetitle></ulink>.
+ <example>
+ <title>Second example of the scans opcode.</title>
+ <xi:include href="examples-xml/scans-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
<refsect1>
+ <title>See Also</title>
+ <para>
+ The matrix file <quote>string-128.matrix</quote>, as well as several other matrices, is also available in a <ulink url="http://www.csounds.com/scanned/zip/scanmatrices.zip"><citetitle>zipped file</citetitle></ulink> from the <ulink url="http://www.csounds.com/scanned/"><citetitle>Scanned Synthesis page</citetitle></ulink> at cSounds.com.
+ </para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html"><citetitle>http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html</citetitle></ulink> , written by Steven Yi </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
@@ -82,7 +89,6 @@
<member>Boston, Massachussetts USA</member>
</simplelist>
</para>
-
<para>New in Csound version 4.05</para>
</refsect1>
</refentry>
diff --git a/opcodes/scantable.xml b/opcodes/scantable.xml
index b16b75a..eb4e0be 100644
--- a/opcodes/scantable.xml
+++ b/opcodes/scantable.xml
@@ -65,12 +65,8 @@
<title>Examples</title>
<para>
Here is an example of the scantable opcode. It uses the file <ulink url="examples/scantable.csd"><citetitle>scantable.csd</citetitle></ulink>.
-
<example>
<title>Example of the scantable opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/scantable.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
@@ -82,6 +78,7 @@
<para>
<link linkend="scanhammer"><citetitle>scanhammer</citetitle></link>
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html"><citetitle>http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html</citetitle></ulink> , written by Steven Yi </para>
</refsect1>
<refsect1>
@@ -92,8 +89,6 @@
<member>April 2002</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in version 4.20</para>
</refsect1>
</refentry>
diff --git a/opcodes/scanu.xml b/opcodes/scanu.xml
index bea7c4f..f71e0ee 100644
--- a/opcodes/scanu.xml
+++ b/opcodes/scanu.xml
@@ -108,7 +108,12 @@
For an example, see the documentation on <link linkend="scans"><citetitle>scans</citetitle></link>.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>See Also</title>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html"><citetitle>http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html</citetitle></ulink> , written by Steven Yi </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/schedule.xml b/opcodes/schedule.xml
index f0a288f..d60a2f7 100644
--- a/opcodes/schedule.xml
+++ b/opcodes/schedule.xml
@@ -52,10 +52,6 @@
<refsect1>
<title>Performance</title>
<para>
- <emphasis>ktrigger</emphasis> -- trigger value for new event
- </para>
-
- <para>
<emphasis>schedule</emphasis> adds a new score event. The arguments, including options, are the same as in a score. The <emphasis>iwhen</emphasis> time (p2) is measured from the time of this event.
</para>
@@ -67,12 +63,10 @@
</note>
</refsect1>
-
<refsect1>
<title>Examples</title>
<para>
Here is an example of the schedule opcode. It uses the file <ulink url="examples/schedule.csd"><citetitle>schedule.csd</citetitle></ulink>.
-
<example>
<title>Example of the schedule opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
@@ -97,6 +91,7 @@
<link linkend="schedkwhennamed"><citetitle>schedkwhennamed</citetitle></link>,
<link linkend="scoreline"><citetitle>scoreline</citetitle></link>,
<link linkend="scoreline_i"><citetitle>scoreline_i</citetitle></link></para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue15/phrase_loops.html"><citetitle>http://www.csounds.com/journal/issue15/phrase_loops.html</citetitle></ulink> , written by Jim Aikin </para>
</refsect1>
<refsect1>
diff --git a/opcodes/schedwhen.xml b/opcodes/schedwhen.xml
index 7ff9db1..ae94595 100644
--- a/opcodes/schedwhen.xml
+++ b/opcodes/schedwhen.xml
@@ -76,7 +76,6 @@
<title>Examples</title>
<para>
Here is an example of the schedwhen opcode. It uses the file <ulink url="examples/schedwhen.csd"><citetitle>schedwhen.csd</citetitle></ulink>.
-
<example>
<title>Example of the schedwhen opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
@@ -106,8 +105,6 @@
<member>November 1998</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.491</para>
<para>Based on work by &namegabriel;</para>
</refsect1>
diff --git a/opcodes/scoreline.xml b/opcodes/scoreline.xml
index 04a6ebe..93194c3 100644
--- a/opcodes/scoreline.xml
+++ b/opcodes/scoreline.xml
@@ -44,27 +44,11 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the scoreline opcode.
+ Here is an example of the scoreline opcode. It uses the file <ulink url="examples/scoreline.csd"><citetitle>scoreline.csd</citetitle></ulink>.
<example>
- <title>Example</title>
-<programlisting>
-
- <emphasis role="oblock">instr</emphasis> 1
- ktrig <emphasis role="opc">init</emphasis> 1
- <emphasis role="opc">scoreline</emphasis> {{
- i 2 0 3 "flutec3.wav"
- i 2 1 3 "clarc3.wav"
- }}, ktrig
- ktrig <emphasis role="op">=</emphasis> 0
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> 2
- aout <emphasis role="opc">soundin</emphasis> p4
- <emphasis role="opc">out</emphasis> aout
- <emphasis role="oblock">endin</emphasis>
-
-
-</programlisting>
+ <title>Example of the scoreline opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/scoreline.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<para>
You can use string opcodes like <link linkend="sprintfk"><citetitle>sprintfk</citetitle></link> to produce strings to be passed to <emphasis>scoreline</emphasis> like this:
<programlisting>
@@ -87,7 +71,9 @@ String <emphasis role="opc">sprintfk</emphasis> {{i 2 0 %f "%s" %f %f %f %f}},
<link linkend="schedkwhen"><citetitle>schedkwhen</citetitle></link>,
<link linkend="schedkwhennamed"><citetitle>schedkwhennamed</citetitle></link>,
<link linkend="scoreline_i"><citetitle>scoreline_i</citetitle></link>
- </para>
+<para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue15/phrase_loops.html"><citetitle>http://www.csounds.com/journal/issue15/phrase_loops.html</citetitle></ulink> , written by Jim Aikin </para>
+<para>And in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch020_e-triggering-instrument-events/"><citetitle>http://en.flossmanuals.net/csound/ch020_e-triggering-instrument-events/</citetitle></ulink>.</para>
+</para>
</refsect1>
<refsect1>
diff --git a/opcodes/scoreline_i.xml b/opcodes/scoreline_i.xml
index d35266b..3651279 100644
--- a/opcodes/scoreline_i.xml
+++ b/opcodes/scoreline_i.xml
@@ -35,28 +35,11 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the scoreline_i opcode.
+ Here is an example of the scoreline_i opcode. It uses the file <ulink url="examples/scoreline_i.csd"><citetitle>scoreline_i.csd</citetitle></ulink>.
<example>
- <title>Example</title>
-<programlisting>
-
- <emphasis role="oblock">instr</emphasis> 1
-
- <emphasis role="opc">scoreline_i</emphasis> {{
- i 2 0 3 "flutec3.wav"
- i 2 1 3 "clarc3.wav"
- }}
-
- <emphasis role="oblock">endin</emphasis>
-
- <emphasis role="oblock">instr</emphasis> 2
- aout <emphasis role="opc">soundin</emphasis> p4
- <emphasis role="opc">out</emphasis> aout
- <emphasis role="oblock">endin</emphasis>
-
-
-</programlisting>
+ <title>Example of the scoreline_i opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/scoreline_i.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
@@ -70,6 +53,8 @@
<link linkend="schedkwhen"><citetitle>schedkwhen</citetitle></link>,
<link linkend="schedkwhennamed"><citetitle>schedkwhennamed</citetitle></link>,
<link linkend="scoreline"><citetitle>scoreline</citetitle></link>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue15/phrase_loops.html"><citetitle>http://www.csounds.com/journal/issue15/phrase_loops.html</citetitle></ulink> , written by Jim Aikin </para>
+<para>And in the Floss Manuals: <ulink url="http://en.flossmanuals.net/csound/ch020_e-triggering-instrument-events/"><citetitle>http://en.flossmanuals.net/csound/ch020_e-triggering-instrument-events/</citetitle></ulink>.</para>
</para>
</refsect1>
diff --git a/opcodes/seed.xml b/opcodes/seed.xml
index e91ea5d..c333c4f 100644
--- a/opcodes/seed.xml
+++ b/opcodes/seed.xml
@@ -42,4 +42,30 @@
When specifying a seed value, <emphasis>ival</emphasis> should be an integer between 0 and 2<superscript>32</superscript>. If <emphasis>ival</emphasis> = 0, the value of <emphasis>ival</emphasis> will be derived from the system clock.
</para>
</refsect1>
+
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the seed opcode. It uses the file <ulink url="examples/seed.csd"><citetitle>seed.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the seed opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/seed.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like:
+ <screen>
+i 1 time 0.00067: 100.00000
+i 1 time 0.50000: 175.78677
+i 1 time 1.00000: 170.89579
+
+WARNING: Seeding from current time 834128659
+
+ i 2 time 2.00067: 100.00000
+ i 2 time 2.50000: 197.58517
+ i 2 time 3.00000: 188.69525
+ </screen>
+ </para>
+ </refsect1>
+
</refentry>
diff --git a/opcodes/semitone.xml b/opcodes/semitone.xml
index 84a24a4..74de286 100644
--- a/opcodes/semitone.xml
+++ b/opcodes/semitone.xml
@@ -49,21 +49,41 @@
<title>Examples</title>
<para>
Here is an example of the semitone opcode. It uses the file <ulink url="examples/semitone.csd"><citetitle>semitone.csd</citetitle></ulink>.
-
<example>
<title>Example of the semitone opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/semitone.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
Its output should include lines like:
<screen>
-instr 1: iroot = 440.000
-instr 1: ifactor = 1.189
-instr 1: inew = 523.229</screen>
+ i1 880.00000
+ i1 2.00000
+ i1 830.65625
+ i1 1.88786
+ i1 783.94665
+ i1 1.78170
+ i1 739.98885
+ i1 1.68179
+ i1 698.49586
+ i1 1.58749
+ i1 659.21793
+ i1 1.49822
+ i1 622.25397
+ i1 1.41421
+ i1 587.36267
+ i1 1.33492
+ i1 554.33399
+ i1 1.25985
+ i1 523.25113
+ i1 1.18921
+ i1 493.91116
+ i1 1.12253
+ i1 466.13747
+ i1 1.05940
+ i1 440.00000
+ i1 1.00000
+.......
+ </screen>
</para>
</refsect1>
@@ -78,7 +98,6 @@ instr 1: inew = 523.229</screen>
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
<para>New in version 4.16</para>
</refsect1>
</refentry>
diff --git a/opcodes/seqtime2.xml b/opcodes/seqtime2.xml
index 0025cd3..dde6329 100644
--- a/opcodes/seqtime2.xml
+++ b/opcodes/seqtime2.xml
@@ -117,6 +117,18 @@
</para>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the seqtime2 opcode. It uses the file <ulink url="examples/seqtime2.csd"><citetitle>seqtime2.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the seqtime2 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/seqtime2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<!-- <refsect1> -->
<!-- <title>Examples</title> -->
<!-- <para> -->
diff --git a/opcodes/serialBegin.xml b/opcodes/serialBegin.xml
new file mode 100644
index 0000000..d9c6154
--- /dev/null
+++ b/opcodes/serialBegin.xml
@@ -0,0 +1,97 @@
+<refentry id="serialBegin">
+<indexterm
+ id="IndexSerialBegin"><primary>serialBegin</primary></indexterm>
+
+ <refentryinfo><title>Serial I/O</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>serialBegin</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>serialBegin</refname>
+ <refpurpose>
+ Open a serial port.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Open a serial port for arduino.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>iPort <command>serialBegin</command> SPortName [, ibaudRate]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>SPortName</emphasis> -- port name number
+ </para>
+ <para>
+ <emphasis>ibaudrate</emphasis> -- serial speed, defaulting to
+ 9600 bps.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the serialBegin opcode. It uses the file <ulink url="examples/serialBegin.csd"><citetitle>serialBegin.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the serialBegin opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/serialBegin.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ This is the matching Arduino code :
+ <screen>
+void setup() {
+ // enable serial communication
+ Serial.begin(9600);
+
+ // declare pin 9 to be an output:
+ pinMode(9, OUTPUT);
+}
+
+void loop() {
+ // only do something if we received something (this should be at csound's k-rate)
+ if (Serial.available()) {
+ // set the brightness of LED (connected to pin 9) to our input value
+ int brightness = Serial.read();
+ analogWrite(9, brightness);
+
+ // while we are here, get our knob value and send it to csound
+ int sensorValue = analogRead(A0);
+ Serial.write(sensorValue/4); // scale to 1-byte range (0-255)
+ }
+}
+.....</screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="serialEnd"><citetitle></citetitle>serialEnd</link>,
+ <link linkend="serialWrite_i"><citetitle></citetitle>serialWrite_i</link>,
+ <link linkend="serialWrite"><citetitle></citetitle>serialWrite</link>,
+ <link linkend="serialRead"><citetitle></citetitle>serialRead</link>,
+ <link linkend="serialPrint"><citetitle></citetitle>serialPrint</link>,
+ <link linkend="serialFlush"><citetitle></citetitle>serialFlush</link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namematt;</member>
+ <member>2011</member>
+ </simplelist>
+ </para>
+ <para>New in version 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/serialEnd.xml b/opcodes/serialEnd.xml
new file mode 100644
index 0000000..abc98bb
--- /dev/null
+++ b/opcodes/serialEnd.xml
@@ -0,0 +1,59 @@
+<refentry id="serialEnd">
+<indexterm
+ id="IndexSerialEnd"><primary>serialEnd</primary></indexterm>
+
+ <refentryinfo><title>Serial I/O</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>serialEnd</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>serialEnd</refname>
+ <refpurpose>
+ Close a serial port.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Close a serial port for arduino.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis> <command>serialEnd</command> iPort</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>iPort</emphasis> -- port number optained from a
+ <emphasis>serialBegin</emphasis>opcode.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="serialBegin"><citetitle></citetitle>serialBegin</link>,
+ <link linkend="serialWrite_i"><citetitle></citetitle>serialWrite_i</link>,
+ <link linkend="serialWrite"><citetitle></citetitle>serialWrite</link>,
+ <link linkend="serialRead"><citetitle></citetitle>serialRead</link>,
+ <link linkend="serialPrint"><citetitle></citetitle>serialPrint</link>,
+ <link linkend="serialFlush"><citetitle></citetitle>serialFlush</link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namematt;</member>
+ <member>2011</member>
+ </simplelist>
+ </para>
+ <para>New in version 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/serialFlush.xml b/opcodes/serialFlush.xml
new file mode 100644
index 0000000..952ceb9
--- /dev/null
+++ b/opcodes/serialFlush.xml
@@ -0,0 +1,64 @@
+<refentry id="serialFlush">
+<indexterm
+ id="IndexSerialFlush"><primary>serialFlush</primary></indexterm>
+
+ <refentryinfo><title>Serial I/O</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>serialFlush</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>serialFlush</refname>
+ <refpurpose>
+ Flush data from a serial port.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+Flush to the screen any bytes (up to 32k) in the input buffer.
+Note that these bytes will be cleared from the buffer.
+use this opcode mainly for debugging messages.
+If you want to mix debugging and other communication
+messages over the same port, you will need to manually
+parse the data with the <emphasis>serialRead</emphasis> opcode.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis> <command>serialFlush</command> iPort</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>iPort</emphasis> -- port number optained from a
+ <emphasis>serialBegin</emphasis> opcode.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="serialBegin"><citetitle></citetitle>serialBegin</link>,
+ <link linkend="serialEnd"><citetitle></citetitle>serialEnd</link>,
+ <link linkend="serialWrite_i"><citetitle></citetitle>serialWrite_i</link>,
+ <link linkend="serialWrite"><citetitle></citetitle>serialWrite</link>,
+ <link linkend="serialRead"><citetitle></citetitle>serialRead</link>,
+ <link linkend="serialPrint"><citetitle></citetitle>serialPrint</link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namematt;</member>
+ <member>2011</member>
+ </simplelist>
+ </para>
+ <para>New in version 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/serialPrint.xml b/opcodes/serialPrint.xml
new file mode 100644
index 0000000..bdbb3e9
--- /dev/null
+++ b/opcodes/serialPrint.xml
@@ -0,0 +1,64 @@
+<refentry id="serialPrint">
+<indexterm
+ id="IndexSerialPrint"><primary>serialPrint</primary></indexterm>
+
+ <refentryinfo><title>Serial I/O</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>serialPrint</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>serialPrint</refname>
+ <refpurpose>
+ Print data from a serial port.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+Print to the screen any bytes (up to 32k) in the input buffer.
+Note that these bytes will be cleared from the buffer.
+use this opcode mainly for debugging messages.
+If you want to mix debugging and other communication
+messages over the same port, you will need to manually
+parse the data with the <emphasis>serialRead</emphasis> opcode.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis> <command>serialPrint</command> iPort</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>iPort</emphasis> -- port number optained from a
+ <emphasis>serialBegin</emphasis> opcode.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="serialBegin"><citetitle></citetitle>serialBegin</link>,
+ <link linkend="serialEnd"><citetitle></citetitle>serialEnd</link>,
+ <link linkend="serialWrite_i"><citetitle></citetitle>serialWrite_i</link>,
+ <link linkend="serialWrite"><citetitle></citetitle>serialWrite</link>,
+ <link linkend="serialRead"><citetitle></citetitle>serialRead</link>,
+ <link linkend="serialFlush"><citetitle></citetitle>serialFlush</link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namematt;</member>
+ <member>2011</member>
+ </simplelist>
+ </para>
+ <para>New in version 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/serialRead.xml b/opcodes/serialRead.xml
new file mode 100644
index 0000000..7e963ef
--- /dev/null
+++ b/opcodes/serialRead.xml
@@ -0,0 +1,97 @@
+<refentry id="serialRead">
+<indexterm
+ id="IndexSerialRead"><primary>serialRead</primary></indexterm>
+
+ <refentryinfo><title>Serial I/O</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>serialRead</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>serialRead</refname>
+ <refpurpose>
+ Read data from a serial port.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Read data from a serial port for arduino.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>kByte <command>serialRead</command> iPort</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>iPort</emphasis> -- port number optained from a
+ <emphasis>serialBegin</emphasis> opcode.
+ </para>
+ <para>
+ <emphasis>kByte</emphasis> -- a byte of data to read.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the serialRead opcode. It uses the file <ulink url="examples/serialRead.csd"><citetitle>serialRead.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the serialRead opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/serialRead.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ This is the matching Arduino code :
+ <screen>
+void setup() {
+ // enable serial communication
+ Serial.begin(9600);
+
+ // declare pin 9 to be an output:
+ pinMode(9, OUTPUT);
+}
+
+void loop() {
+ // only do something if we received something (this should be at csound's k-rate)
+ if (Serial.available()) {
+ // set the brightness of LED (connected to pin 9) to our input value
+ int brightness = Serial.read();
+ analogWrite(9, brightness);
+
+ // while we are here, get our knob value and send it to csound
+ int sensorValue = analogRead(A0);
+ Serial.write(sensorValue/4); // scale to 1-byte range (0-255)
+ }
+}
+.....</screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="serialBegin"><citetitle></citetitle>serialBegin</link>,
+ <link linkend="serialEnd"><citetitle></citetitle>serialEnd</link>,
+ <link linkend="serialWrite_i"><citetitle></citetitle>serialWrite_i</link>,
+ <link linkend="serialWrite"><citetitle></citetitle>serialWrite</link>,
+ <link linkend="serialPrint"><citetitle></citetitle>serialPrint</link>,
+ <link linkend="serialFlush"><citetitle></citetitle>serialFlush</link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namematt;</member>
+ <member>2011</member>
+ </simplelist>
+ </para>
+ <para>New in version 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/serialWrite.xml b/opcodes/serialWrite.xml
new file mode 100644
index 0000000..ff7ea1d
--- /dev/null
+++ b/opcodes/serialWrite.xml
@@ -0,0 +1,99 @@
+<refentry id="serialWrite">
+<indexterm
+ id="IndexSerialWrite"><primary>serialrite</primary></indexterm>
+
+ <refentryinfo><title>Serial I/O</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>serialWrite</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>serialWrite</refname>
+ <refpurpose>
+ Write data to a serial port.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Write data to a serial port for arduino.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis> <command>serialWrite</command> iPort, iByte</synopsis>
+ <synopsis> <command>serialWrite</command> iPort, kByte</synopsis>
+ <synopsis> <command>serialWrite</command> iPort, SBytes</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>iPort</emphasis> -- port number optained from a
+ <emphasis>serialBegin</emphasis> opcode.
+ </para>
+ <para>
+ <emphasis>iByte</emphasis> -- a byte of data to write.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the serialWrite opcode. It uses the file <ulink url="examples/serialWrite.csd"><citetitle>serialWrite.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the serialWrite opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/serialWrite.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ This is the matching Arduino code :
+ <screen>
+void setup() {
+ // enable serial communication
+ Serial.begin(9600);
+
+ // declare pin 9 to be an output:
+ pinMode(9, OUTPUT);
+}
+
+void loop() {
+ // only do something if we received something (this should be at csound's k-rate)
+ if (Serial.available()) {
+ // set the brightness of LED (connected to pin 9) to our input value
+ int brightness = Serial.read();
+ analogWrite(9, brightness);
+
+ // while we are here, get our knob value and send it to csound
+ int sensorValue = analogRead(A0);
+ Serial.write(sensorValue/4); // scale to 1-byte range (0-255)
+ }
+}
+.....</screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="serialBegin"><citetitle></citetitle>serialBegin</link>,
+ <link linkend="serialEnd"><citetitle></citetitle>serialEnd</link>,
+ <link linkend="serialWrite_i"><citetitle></citetitle>serialWrite_i</link>,
+ <link linkend="serialRead"><citetitle></citetitle>serialRead</link>,
+ <link linkend="serialPrint"><citetitle></citetitle>serialPrint</link>,
+ <link linkend="serialFlush"><citetitle></citetitle>serialFlush</link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namematt;</member>
+ <member>2011</member>
+ </simplelist>
+ </para>
+ <para>New in version 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/serialWrite_i.xml b/opcodes/serialWrite_i.xml
new file mode 100644
index 0000000..2ce6d32
--- /dev/null
+++ b/opcodes/serialWrite_i.xml
@@ -0,0 +1,63 @@
+<refentry id="serialWrite_i">
+<indexterm
+ id="IndexSerialWrite_i"><primary>serialrite_i</primary></indexterm>
+
+ <refentryinfo><title>Serial I/O</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>serialWrite_i</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>serialWrite_i</refname>
+ <refpurpose>
+ Write data to a serial port.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Write data to a serial port for arduino.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis> <command>serialWrite_i</command> iPort, iByte</synopsis>
+ <synopsis> <command>serialWrite_i</command> iPort, SBytes</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>iPort</emphasis> -- port number optained from a
+ <emphasis>serialBegin</emphasis> opcode.
+ </para>
+ <para>
+ <emphasis>iByte</emphasis> -- a byte of data to write.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="serialBegin"><citetitle></citetitle>serialBegin</link>,
+ <link linkend="serialEnd"><citetitle></citetitle>serialEnd</link>,
+ <link linkend="serialWrite"><citetitle></citetitle>serialWrite</link>,
+ <link linkend="serialRead"><citetitle></citetitle>serialRead</link>,
+ <link linkend="serialPrint"><citetitle></citetitle>serialPrint</link>,
+ <link linkend="serialFlush"><citetitle></citetitle>serialFlush</link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namematt;</member>
+ <member>2011</member>
+ </simplelist>
+ </para>
+ <para>New in version 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/setksmps.xml b/opcodes/setksmps.xml
index 3d6eea5..c82ad90 100644
--- a/opcodes/setksmps.xml
+++ b/opcodes/setksmps.xml
@@ -9,14 +9,14 @@
<refnamediv>
<refname>setksmps</refname>
<refpurpose>
- Sets the local ksmps value in a user-defined opcode block.
+ Sets the local ksmps value in an instrument or user-defined opcode block
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- Sets the local ksmps value in a user-defined opcode block.
+ Sets the local ksmps value in an instrument or user-defined opcode block.
</para>
</refsect1>
@@ -38,24 +38,24 @@
<note>
<title>Note</title>
<para>
- The local <emphasis>ksmps</emphasis> is implemented by splitting up a control period into smaller sub-kperiods and temporarily modifying internal Csound global variables. This also requires converting the rate of k-rate input and output arguments (input variables receive the same value in all sub-kperiods, while outputs are written only in the last one). It also means that you cannot use a local <link linkend="ksmps"><citetitle>ksmps</citetitle></link> that is higher than the global <link linkend="ksmps"><citetitle>ksmps</citetitle></link>.
+ The local <emphasis>ksmps</emphasis> is implemented by splitting up a control period into smaller sub-kperiods and setting up the instrument local ksmps to the new value. This also requires converting the rate of k-rate input and output arguments (input variables receive the same value in all sub-kperiods, while outputs are written only in the last one). It also means that you cannot use a local <link linkend="ksmps"><citetitle>ksmps</citetitle></link> that is higher than the global <link linkend="ksmps"><citetitle>ksmps</citetitle></link>.
</para>
</note>
<warning>
<title>Warning about local ksmps</title>
<para>
- When the local <emphasis>ksmps</emphasis> is not the same as the orchestra level <emphasis>ksmps</emphasis> value (as specified in the orchestra header), global a-rate operations must not be used in the user-defined opcode block.
+ When the local <emphasis>ksmps</emphasis> is not the same as the orchestra level <emphasis>ksmps</emphasis> value (as specified in the orchestra header), global a-rate operations must be carefully coded to access the data in a vector according to the local ksmps. The audio rate bus channel opcodes (chnget/chnset) can be used freely, however, as they will do the necessary conversion between ksmp sizes.
</para>
<para>
- These include:
+ Other opcodes that require some care include:
<itemizedlist>
<listitem><para>any access to <quote>ga</quote> variables</para></listitem>
<listitem><para>a-rate zak opcodes (<link linkend="zar"><citetitle>zar</citetitle></link>, <link linkend="zaw"><citetitle>zaw</citetitle></link>, etc.)</para></listitem>
<listitem><para><link linkend="tablera"><citetitle>tablera</citetitle></link> and <link linkend="tablewa"><citetitle>tablewa</citetitle></link> (these two opcodes may in fact work, but caution is needed)</para></listitem>
- <listitem><para>The <emphasis>in</emphasis> and <emphasis>out</emphasis> opcode family (these read from, and write to global a-rate buffers)</para></listitem>
+ <listitem><para> The <emphasis>in</emphasis> and <emphasis>out</emphasis> opcode family cannot be used in local-ksmps UDOs (these read from, and write to global a-rate buffers), but are safe in local-ksmps instruments</para></listitem>
</itemizedlist>
</para>
@@ -65,7 +65,7 @@
</warning>
<para>
- The <emphasis>setksmps</emphasis> statement can be used to set the local <link linkend="ksmps"><citetitle>ksmps</citetitle></link> value of the user-defined opcode block. It has one i-time parameter specifying the new <emphasis>ksmps</emphasis> value (which is left unchanged if zero is used). <emphasis>setksmps</emphasis> should be used before any other opcodes (but allowed after <link linkend="xin"><citetitle>xin</citetitle></link>), otherwise unpredictable results may occur.
+ The <emphasis>setksmps</emphasis> statement can be used to set the local <link linkend="ksmps"><citetitle>ksmps</citetitle></link> value of the instrument or user-defined opcode block. It has one i-time parameter specifying the new <emphasis>ksmps</emphasis> value (which is left unchanged if zero is used). <emphasis>setksmps</emphasis> should be used before any other opcodes (but allowed after <link linkend="xin"><citetitle>xin</citetitle></link> in UDOs), otherwise unpredictable results may occur.
</para>
</refsect1>
@@ -112,7 +112,7 @@ xinarg1 [, xinarg2] [, xinarg3] ... [xinargN] <emphasis role="opc">xin</emphasi
<refsect1>
<title>Credits</title>
- <para>Author: Istvan Varga, 2002; based on code by Matt J. Ingalls</para>
+ <para>Author: Istvan Varga, 2002; based on code by Matt J. Ingalls; Modified by V Lazzarini for Csound 6</para>
<para>New in version 4.22</para>
</refsect1>
</refentry>
diff --git a/opcodes/setscorepos.xml b/opcodes/setscorepos.xml
index a521528..8a80c41 100755..100644
--- a/opcodes/setscorepos.xml
+++ b/opcodes/setscorepos.xml
@@ -22,7 +22,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis> <command>setscorepos ipos</command></synopsis>
+ <synopsis> <command>setscorepos ipos</command></synopsis>
</refsect1>
<refsect1>
@@ -32,23 +32,22 @@
</para>
</refsect1>
- <refsect1>
+ <refsect1>
<title>Examples</title>
<para>
- Here is an example of the setscorepos opcode.</para>
+ Here is an example of the setscorepos opcode. It uses the file <ulink url="examples/setscorepos.csd"><citetitle>setscorepos.csd</citetitle></ulink>.
<example>
<title>Example of the setscorepos opcode.</title>
-<programlisting>
-<emphasis role="oblock">instr</emphasis> 1
-<emphasis role="opc">setscorepos</emphasis> 10
-<emphasis role="oblock">endin</emphasis></programlisting>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/setscorepos.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
+ </para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
- <link linkend="rewindscore"><citetitle>rewindscore</citetitle></link>,
+ <link linkend="rewindscore"><citetitle>rewindscore</citetitle></link>
</para>
</refsect1>
diff --git a/opcodes/sfilist.xml b/opcodes/sfilist.xml
index 92037ae..5be5b20 100644
--- a/opcodes/sfilist.xml
+++ b/opcodes/sfilist.xml
@@ -44,6 +44,32 @@
These opcodes only support the sample structure of SF2 files. The modulator structure of the SoundFont2 format is not supported in Csound. Any modulation or processing to the sample data is left to the Csound user, bypassing all restrictions forced by the SF2 standard.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sfilist opcode. It uses the file <ulink url="examples/sfilist.csd"><citetitle>sfilist.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sfilist opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sfilist.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like this:
+ <screen>
+Instrument list of "sf_GMbank.sf2"
+ 0) Piano 1
+ 1) Piano 2
+ 2) CP 70
+ 3) EP 1 layer 1
+ 4) EP 1 layer 2
+ 5) E.Piano 2
+ 6) Harpsichord
+ .......
+ 100) Halo Pad
+ .......
+ </screen>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/sfinstr.xml b/opcodes/sfinstr.xml
index 683e292..ee98813 100644
--- a/opcodes/sfinstr.xml
+++ b/opcodes/sfinstr.xml
@@ -87,7 +87,19 @@ a multiplier.
These opcodes only support the sample structure of SF2 files. The modulator structure of the SoundFont2 format is not supported in Csound. Any modulation or processing to the sample data is left to the Csound user, bypassing all restrictions forced by the SF2 standard.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sfinstr opcode. It uses the file <ulink url="examples/sfinstr.csd"><citetitle>sfinstr.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sfinstr opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sfinstr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/sfinstr3.xml b/opcodes/sfinstr3.xml
index 814f09a..2940b0d 100644
--- a/opcodes/sfinstr3.xml
+++ b/opcodes/sfinstr3.xml
@@ -87,7 +87,19 @@ a multiplier.
These opcodes only support the sample structure of SF2 files. The modulator structure of the SoundFont2 format is not supported in Csound. Any modulation or processing to the sample data is left to the Csound user, bypassing all restrictions forced by the SF2 standard.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sfinstr3 opcode. It uses the file <ulink url="examples/sfinstr3.csd"><citetitle>sfinstr3.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sfinstr3 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sfinstr3.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/sfinstr3m.xml b/opcodes/sfinstr3m.xml
index ac8de84..e525230 100644
--- a/opcodes/sfinstr3m.xml
+++ b/opcodes/sfinstr3m.xml
@@ -86,7 +86,19 @@ a multiplier.
These opcodes only support the sample structure of SF2 files. The modulator structure of the SoundFont2 format is not supported in Csound. Any modulation or processing to the sample data is left to the Csound user, bypassing all restrictions forced by the SF2 standard.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sfinstr3m opcode. It uses the file <ulink url="examples/sfinstr3m.csd"><citetitle>sfinstr3m.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sfinstr3m opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sfinstr3m.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/sfload.xml b/opcodes/sfload.xml
index f3a98ad..931aaaf 100644
--- a/opcodes/sfload.xml
+++ b/opcodes/sfload.xml
@@ -63,6 +63,18 @@
sound fonts could be loaded, a restriction since relaxed.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sfload opcode. It uses the file <ulink url="examples/sfload.csd"><citetitle>sfload.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sfload opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sfload.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/sflooper.xml b/opcodes/sflooper.xml
index 02a1196..3dc663b 100755..100644
--- a/opcodes/sflooper.xml
+++ b/opcodes/sflooper.xml
@@ -26,7 +26,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>ar1, ar2 <command>sflooper</command> ivel, inotenum, kamp, kpitch, ipreindex, kloopstart, kloopend, kcrossfade, ifn \
+ <synopsis>ar1, ar2 <command>sflooper</command> ivel, inotenum, kamp, kpitch, ipreindex, kloopstart, kloopend, kcrossfade \
[, istart, imode, ifenv, iskip] </synopsis>
</refsect1>
@@ -91,6 +91,23 @@ loop length.</para>
<para>
These opcodes only support the sample structure of SF2 files. The modulator structure of the SoundFont2 format is not supported in Csound. Any modulation or processing to the sample data is left to the Csound user, bypassing all restrictions forced by the SF2 standard.
</para>
+ <para>
+ Note: The looping points are set on the root key of every sample that is part of the preset of the soundfont.
+For instance, a soundfont can have a single sample for the whole keyboard. In that case, sflooper will work like flooper and flooper2, because as the sample is transposed, played back at different rates, the loop will get short or longer.
+If however the soundfont has a sample for each key, than there will be no transposition and the loop will stay the same length (unless you change kpitch).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sflooper opcode. It uses the file <ulink url="examples/sflooper.csd"><citetitle>sflooper.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sflooper opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sflooper.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/sfpassign.xml b/opcodes/sfpassign.xml
index 417cbf5..14a6cfe 100644
--- a/opcodes/sfpassign.xml
+++ b/opcodes/sfpassign.xml
@@ -63,6 +63,18 @@
These opcodes only support the sample structure of SF2 files. The modulator structure of the SoundFont2 format is not supported in Csound. Any modulation or processing to the sample data is left to the Csound user, bypassing all restrictions forced by the SF2 standard.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sfpassign opcode. It uses the file <ulink url="examples/sfpassign.csd"><citetitle>sfpassign.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sfpassign opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sfpassign.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/sfplay3.xml b/opcodes/sfplay3.xml
index ab4d992..30bcb41 100644
--- a/opcodes/sfplay3.xml
+++ b/opcodes/sfplay3.xml
@@ -94,7 +94,19 @@
These opcodes only support the sample structure of SF2 files. The modulator structure of the SoundFont2 format is not supported in Csound. Any modulation or processing to the sample data is left to the Csound user, bypassing all restrictions forced by the SF2 standard.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sfplay3 opcode. It uses the file <ulink url="examples/sfplay3.csd"><citetitle>sfplay3.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sfplay3 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sfplay3.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/sfplay3m.xml b/opcodes/sfplay3m.xml
index 10a4122..9af1cd1 100644
--- a/opcodes/sfplay3m.xml
+++ b/opcodes/sfplay3m.xml
@@ -94,7 +94,19 @@
These opcodes only support the sample structure of SF2 files. The modulator structure of the SoundFont2 format is not supported in Csound. Any modulation or processing to the sample data is left to the Csound user, bypassing all restrictions forced by the SF2 standard.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sfplay3m opcode. It uses the file <ulink url="examples/sfplay3m.csd"><citetitle>sfplay3m.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sfplay3m opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sfplay3m.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/sfplaym.xml b/opcodes/sfplaym.xml
index 4034847..73a5365 100644
--- a/opcodes/sfplaym.xml
+++ b/opcodes/sfplaym.xml
@@ -90,7 +90,19 @@
These opcodes only support the sample structure of SF2 files. The modulator structure of the SoundFont2 format is not supported in Csound. Any modulation or processing to the sample data is left to the Csound user, bypassing all restrictions forced by the SF2 standard.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sfplaym opcode. It uses the file <ulink url="examples/sfplaym.csd"><citetitle>sfplaym.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sfplaym opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sfplaym.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/sfplist.xml b/opcodes/sfplist.xml
index bf7ff14..a16acf7 100644
--- a/opcodes/sfplist.xml
+++ b/opcodes/sfplist.xml
@@ -44,6 +44,32 @@
These opcodes only support the sample structure of SF2 files. The modulator structure of the SoundFont2 format is not supported in Csound. Any modulation or processing to the sample data is left to the Csound user, bypassing all restrictions forced by the SF2 standard.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sfplist opcode. It uses the file <ulink url="examples/sfplist.csd"><citetitle>sfplist.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sfplist opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sfplist.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like this:
+ <screen>
+Preset list of "sf_GMbank.sf2"
+ 0) Piano 1 prog:0 bank:0
+ 1) Piano 2 prog:1 bank:0
+ 2) Piano 3 prog:2 bank:0
+ 3) Honky Tonk prog:3 bank:0
+ 4) E.Piano 1 prog:4 bank:0
+ 5) E.Piano 2 prog:5 bank:0
+ 6) Harpsichord prog:6 bank:0
+ ........
+ 146) Car-Pass prog:125 bank:3
+ ........
+ </screen>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/sfpreset.xml b/opcodes/sfpreset.xml
index b93c383..259672a 100644
--- a/opcodes/sfpreset.xml
+++ b/opcodes/sfpreset.xml
@@ -64,7 +64,19 @@
These opcodes only support the sample structure of SF2 files. The modulator structure of the SoundFont2 format is not supported in Csound. Any modulation or processing to the sample data is left to the Csound user, bypassing all restrictions forced by the SF2 standard.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sfpreset opcode. It uses the file <ulink url="examples/sfpreset.csd"><citetitle>sfpreset.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sfpreset opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sfpreset.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/signum.xml b/opcodes/signum.xml
new file mode 100644
index 0000000..afc359c
--- /dev/null
+++ b/opcodes/signum.xml
@@ -0,0 +1,58 @@
+
+<refentry id="signum">
+<indexterm id="IndexSignum"><primary>signum</primary></indexterm>
+ <refentryinfo><title>Mathematical Operations:Trigonometric Functions</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>signum</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>signum</refname>
+
+ <refpurpose>
+ Performs a signum function.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Returns the signum of <emphasis>x</emphasis> returning -1, 0 or 1.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>signum</command>(x) (no rate restriction)</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the signum opcode. It uses the file <ulink url="examples/signum.csd"><citetitle>signum.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the signum opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on usingg command line flags.</para>
+ <xi:include href="examples-xml/signum.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>University of Bath, Codemist Ltd.</member>
+ <member>Bath, UK</member>
+ <member>July 2013</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 6.01</para>
+ </refsect1>
+
+
+</refentry>
diff --git a/opcodes/sin.xml b/opcodes/sin.xml
index 9226ff5..b8c9eba 100644
--- a/opcodes/sin.xml
+++ b/opcodes/sin.xml
@@ -32,18 +32,14 @@
<title>Examples</title>
<para>
Here is an example of the sin opcode. It uses the file <ulink url="examples/sin.csd"><citetitle>sin.csd</citetitle></ulink>.
-
<example>
<title>Example of the sin opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/sin.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
Its output should include a line like this:
- <screen>instr 1: i1 = -0.132</screen>
+ <screen>instr 1: isin1 = 0.000 isin2 = 1.000 isin3 = 0.000 isin4 = -1.000 isin5 = -0.000 isin6 = 0.000</screen>
</para>
</refsect1>
@@ -61,8 +57,4 @@
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
</refentry>
diff --git a/opcodes/sinsyn.xml b/opcodes/sinsyn.xml
index 633b03d..6194795 100644
--- a/opcodes/sinsyn.xml
+++ b/opcodes/sinsyn.xml
@@ -6,29 +6,27 @@
<refentrytitle>sinsyn</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>sinsyn</refname>
<refpurpose>
- Streaming partial track additive synthesis with cubic phase interpolation
- </refpurpose>
+ Streaming partial track additive synthesis with cubic phase interpolation
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- The sinsyn opcode takes an input containg a TRACKS pv streaming signal (as generated,
- for instance by the partials opcode). It sinsynthesises the signal using linear amplitude and cubic phase
- interpolation to drive a bank of interpolating oscillators with amplitude and pitch scaling controls. Sinsyn
+ The <emphasis>sinsyn</emphasis> opcode takes an input containg a TRACKS pv streaming signal (as generated,
+ for instance by the <emphasis>partials</emphasis> opcode). It resynthesises the signal using linear amplitude and cubic phase
+ interpolation to drive a bank of interpolating oscillators with amplitude scaling control. <emphasis>sinsyn</emphasis>
attempts to preserve the phase of the partials in the original signal and in so doing it does not allow for
pitch or timescale modifications of the signal.
- </para>
+ </para>
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis>asig <command>sinsyn</command> fin, kscal, kmaxtracks, ifn</synopsis>
+ <synopsis>asig <command>sinsyn</command> fin, kscal, kmaxtracks, ifn</synopsis>
</refsect1>
<refsect1>
@@ -47,44 +45,28 @@
<para>
<emphasis>kmaxtracks</emphasis> -- max number of tracks in sinsynthesis. Limiting this will cause
- a non-linear filtering effect, by discarding newer and higher-frequency tracks (tracks are ordered
- by start time and ascending frequency, respectively)
+ a non-linear filtering effect, by discarding newer and higher-frequency tracks (tracks are ordered
+ by start time and ascending frequency, respectively)
</para>
<para>
- <emphasis>ifn</emphasis> -- function table containing one cycle of a sinusoid (sine or cosine) </para>
-
- <para>
-
- </para>
-
+ <emphasis>ifn</emphasis> -- function table containing one cycle of a sinusoid (sine or cosine).
+ </para>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the sinsyn opcode. It uses the file <ulink url="examples/sinsyn.csd"><citetitle>sinsyn.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-aout sinsyn fst, 1.5, 500, 1 ; resynthesis (up a 5th)
-out aout
- </programlisting>
+ <title>Example of the sinsyn opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sinsyn.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
- </para>
-
- <para>
-The example above shows partial tracking of an ifd-analysis signal and
-cubic-phase additive resynthesis.
-
</para>
-
+ <para>The example above shows partial tracking of an ifd-analysis signal and cubic-phase additive resynthesis.</para>
</refsect1>
-
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/slicearray.xml b/opcodes/slicearray.xml
new file mode 100644
index 0000000..9a56b82
--- /dev/null
+++ b/opcodes/slicearray.xml
@@ -0,0 +1,69 @@
+
+<refentry id="slicearray">
+<indexterm id="IndexSlicearray"><primary>slicearray</primary></indexterm>
+
+ <refentryinfo><title>Table Control:Table Queries</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>slicearray</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>slicearray</refname>
+ <refpurpose>
+ Take a slice of a vector.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Take a slice of a vector (one-dimensional k-rate array).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>karray <command>slicearray</command> kinarray, istart, iend</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>istart</emphasis> -- index of the first part of the answer.
+ </para>
+ <para>
+ <emphasis>iend</emphasis> -- index of the first element of the answer.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the slicearray opcode. It uses the file <ulink url="examples/slicearray.csd"><citetitle>slicearray.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the slicearray opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/slicearray.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vectorial"><citetitle></citetitle>Vectorial opcodes</link>
+</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>Codemist Ltd</member>
+ <member>2013</member>
+ </simplelist>
+ </para>
+ <para>New in version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/sndloop.xml b/opcodes/sndloop.xml
index bc6242a..12ae713 100644
--- a/opcodes/sndloop.xml
+++ b/opcodes/sndloop.xml
@@ -62,18 +62,14 @@
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the sndloop opcode. It uses the file <ulink url="examples/sndloop.csd"><citetitle>sndloop.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-asig <emphasis role="opc">in</emphasis> <emphasis role="comment">; get the signal in</emphasis>
-ktrig <emphasis role="opc">line</emphasis> 0, 1, 1 <emphasis role="comment">; trigger signal</emphasis>
-aout,krec <emphasis role="opc">sndloop</emphasis> asig, 1, ktrig, 4, 0.05 <emphasis role="comment">; rec starts at 1 sec, for 4 secs 0.05 crossfade</emphasis>
- <emphasis role="opc">printk</emphasis> 1, krec <emphasis role="comment">; prints the recording signal</emphasis>
- <emphasis role="opc">out</emphasis> aout</programlisting>
+ <title>Example of the sndloop opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sndloop.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
-
- <para>
+ <para>
The example above shows the basic operation of sndloop. Pitch can
be controlled at the k-rate, recording is started as soon as the
trigger value is >= 1. Recording can be restarted by making the trigger 0 and
diff --git a/opcodes/sndwarp.xml b/opcodes/sndwarp.xml
index 9ad5391..70e05a0 100644
--- a/opcodes/sndwarp.xml
+++ b/opcodes/sndwarp.xml
@@ -85,18 +85,15 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the sndwarp opcode. It uses the file <ulink url="examples/sndwarp.csd"><citetitle>sndwarp.csd</citetitle></ulink>, and <ulink url="examples/mary.wav"><citetitle>mary.wav</citetitle></ulink>.
-
+ Here is an example of the sndwarp opcode. It uses the file <ulink url="examples/sndwarp.csd"><citetitle>sndwarp.csd</citetitle></ulink>.
<example>
<title>Example of the sndwarp opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/sndwarp.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
+ <title>Other examples</title>
<para>
The below example shows a slowing down or stretching of the sound stored in the stored table (<emphasis>ifn1</emphasis>). Over the duration of the note, the stretching will grow from no change from the original to a sound which is ten times <quote>slower</quote> than the original. At the same time the overall pitch will move upward over the duration by an octave.
<informalexample>
@@ -171,6 +168,5 @@ abal2 <emphasis role="opc">balance</emphasis> asig2, acmp2</programlisting
<member>1997</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/sndwarpst.xml b/opcodes/sndwarpst.xml
index c01bb00..9ef1d25 100644
--- a/opcodes/sndwarpst.xml
+++ b/opcodes/sndwarpst.xml
@@ -81,9 +81,21 @@
<emphasis>xresample</emphasis> -- the factor by which to change the pitch of the sound. For example, a value of 2 will produce a sound one octave higher than the original. The timing of the sound, however, will <emphasis>not</emphasis> be altered.
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Example</title>
+ <para>
+ Here is an example of the sndwarpst opcode. It uses the file <ulink url="examples/sndwarpst.csd"><citetitle>sndwarpst.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sndwarpst opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sndwarpst.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
- <title>Examples</title>
+ <title>Other examples</title>
<para>
The below example shows a slowing down or stretching of the sound stored in the stored table (<emphasis>ifn1</emphasis>). Over the duration of the note, the stretching will grow from no change from the original to a sound which is ten times <quote>slower</quote> than the original. At the same time the overall pitch will move upward over the duration by an octave.
<informalexample>
diff --git a/opcodes/soundin.xml b/opcodes/soundin.xml
index dd35883..04546a9 100644
--- a/opcodes/soundin.xml
+++ b/opcodes/soundin.xml
@@ -18,7 +18,8 @@
<refsect1>
<title>Description</title>
<para>
- Reads audio data from an external device or stream. Up to 24 channels may be read.
+ Reads audio data from an external device or stream. Up to 24
+ channels may be read before v5.14, extended to 40 in later versions.
</para>
</refsect1>
@@ -125,7 +126,7 @@
<title>Examples</title>
<para>
Here is an example of the soundin opcode. It uses the file <ulink url="examples/soundin.csd"><citetitle>soundin.csd</citetitle></ulink>,
-<ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
+<ulink url="examples/fox.wav"><citetitle>fox.wav</citetitle></ulink> and <ulink url="examples/kickroll.wav"><citetitle>kickroll.wav</citetitle></ulink>.
<example>
<title>Example of the soundin opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
@@ -155,8 +156,6 @@
<member>1993-1997</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>Warning to Windows users added by &namekevin;, April 2002</para>
</refsect1>
</refentry>
diff --git a/opcodes/space.xml b/opcodes/space.xml
index f8b4c6d..89c950c 100644
--- a/opcodes/space.xml
+++ b/opcodes/space.xml
@@ -144,96 +144,30 @@
</para>
</refsect1>
- <refsect1>
+ <refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-<emphasis role="oblock">instr</emphasis> 1
- asig <emphasis role="comment">;some audio signal</emphasis>
- ktime <emphasis role="opc">line</emphasis> 0, p3, p10
- a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig,1, ktime, .1
- ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis>
-
- ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
- ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
- ga3 <emphasis role="op">=</emphasis> ga3<emphasis role="op">+</emphasis>ar3
- ga4 <emphasis role="op">=</emphasis> ga4<emphasis role="op">+</emphasis>ar4
-
- <emphasis role="op">outq</emphasis> a1, a2, a3, a4
-<emphasis role="oblock">endin</emphasis>
-
-<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb instrument</emphasis>
-
- a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
- a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
- a3 <emphasis role="opc">reverb2</emphasis> ga3, 2.5, .5
- a4 <emphasis role="opc">reverb2</emphasis> ga4, 2.5, .5
-
- <emphasis>outq</emphasis> a1, a2, a3, a4
- ga1 <emphasis role="op">=</emphasis>0
- ga2 <emphasis role="op">=</emphasis>0
- ga3 <emphasis role="op">=</emphasis>0
- ga4 <emphasis role="op">=</emphasis>0
-<emphasis role="oblock">endin</emphasis></programlisting>
- </informalexample>
- </para>
+ Here is an example of the space opcode. It uses the file <ulink url="examples/space_quad.csd"><citetitle>space_quad.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the space opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/space_quad.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- <para>
In the above example, the signal, <emphasis>asig</emphasis>, is moved according to the data in Function #1 indexed by <emphasis>ktime</emphasis>. <emphasis>space</emphasis> sends the appropriate amount of the signal internally to <emphasis>spsend</emphasis>. The outputs of the <emphasis>spsend</emphasis> are added to global accumulators in a common Csound style and the global signals are used as inputs to the reverb units in a separate instrument.
- </para>
-
- <para>
- <emphasis>space</emphasis> can be useful for quad and stereo panning as well as fixed placed of sounds anywhere between two loudspeakers. Below is an example of the fixed placement of sounds in a stereo field using xy values from the score instead of a function table.
- <informalexample>
- <programlisting>
-<emphasis role="oblock">instr</emphasis> 1
- ...
- a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 0, 0, .1, p4, p5
- ar1, ar2, ar3, ar4 <emphasis role="opc">spsend
- </emphasis>
- ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
- ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
- <emphasis role="opc">outs</emphasis> a1, a2
-<emphasis role="oblock">endin</emphasis>
-<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb....</emphasis>
- ....
-<emphasis role="oblock">endin</emphasis></programlisting>
- </informalexample>
+ </example>
</para>
-
<para>
- A few notes: p4 and p5 are the x and y values
- <informalexample>
- <programlisting>
- <emphasis role="comment">;place the sound in the left speaker and near</emphasis>
- <emphasis role="stamnt">i</emphasis>1 0 1 -1 1
- <emphasis role="comment">;place the sound in the right speaker and far</emphasis>
- <emphasis role="stamnt">i</emphasis>1 1 1 45 45
- <emphasis role="comment">;place the sound equally between left and right and in the middle ground distance</emphasis>
- <emphasis role="stamnt">i</emphasis>1 2 1 0 12
-<emphasis role="stamnt">e</emphasis></programlisting>
- </informalexample>
- </para>
+ <emphasis>space</emphasis> can be useful for quad and stereo panning as well as fixed placed of sounds anywhere between two loudspeakers. Below is an example of the fixed placement of sounds in a stereo field using xy values from the score instead of a function table. It uses the file <ulink url="examples/space_stereo.csd"><citetitle>space_stereo.csd</citetitle></ulink>.
+ <example>
- <para>
- The next example shows a simple intuitive use of the distance values returned by <emphasis>spdist</emphasis> to simulate Doppler shift.
- <informalexample>
- <programlisting>
- ktime <emphasis role="opc">line</emphasis> 0, p3, 10
- kdist <emphasis role="opc">spdist</emphasis> 1, ktime
- kfreq <emphasis role="op">=</emphasis> (ifreq <emphasis role="op">*</emphasis> 340) <emphasis role="op">/</emphasis> (340 <emphasis role="op">+</emphasis> kdist)
- asig <emphasis role="opc">oscili</emphasis> iamp, kfreq, 1
-
- a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 1, ktime, .1
- ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis></programlisting>
- </informalexample>
+ <title>Second example of the space opcode.</title>
+ <xi:include href="examples-xml/space_stereo.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
-
<para>
- The same function and time values are used for both <emphasis>spdist</emphasis> and <emphasis>space</emphasis>. This insures that the distance values used internally in the <emphasis>space</emphasis> unit will be the same as those returned by <emphasis>spdist</emphasis> to give the impression of a Doppler shift!
- </para>
+ <link linkend="spdist"><citetitle>spdist</citetitle></link> demonstrates an example of a simple intuitive use of the distance values to simulate Doppler shift.
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/spat3dt.xml b/opcodes/spat3dt.xml
index ccd37bb..9ae86e8 100644
--- a/opcodes/spat3dt.xml
+++ b/opcodes/spat3dt.xml
@@ -240,13 +240,20 @@ aright = aY + aZ
<emphasis>iftnocl</emphasis> (optional, default=0) -- Do not clear output ftable (mix to existing data) if set to 1, clear table before writing if set to 0 (default: 0).
</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
- See the examples for <link linkend="spat3d"><citetitle>spat3d</citetitle></link>.
+ Here is an example of the spat3dt opcode. It uses the file <ulink url="examples/spat3dt.csd"><citetitle>spat3dt.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the spat3dt opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/spat3dt.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/spdist.xml b/opcodes/spdist.xml
index 84b2665..4226de0 100644
--- a/opcodes/spdist.xml
+++ b/opcodes/spdist.xml
@@ -122,95 +122,18 @@
<emphasis>kx, ky</emphasis> -- when <emphasis>ifn</emphasis> is 0, <emphasis>space</emphasis> and <emphasis>spdist</emphasis> will use these values as the XY coordinates to localize the signal.
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-<emphasis role="oblock">instr</emphasis> 1
- asig <emphasis role="comment">;some audio signal</emphasis>
- ktime <emphasis role="opc">line</emphasis> 0, p3, p10
- a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig,1, ktime, .1
- ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis>
-
- ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
- ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
- ga3 <emphasis role="op">=</emphasis> ga3<emphasis role="op">+</emphasis>ar3
- ga4 <emphasis role="op">=</emphasis> ga4<emphasis role="op">+</emphasis>ar4
-
- <emphasis role="op">outq</emphasis> a1, a2, a3, a4
-<emphasis role="oblock">endin</emphasis>
-
-<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb instrument</emphasis>
-
- a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
- a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
- a3 <emphasis role="opc">reverb2</emphasis> ga3, 2.5, .5
- a4 <emphasis role="opc">reverb2</emphasis> ga4, 2.5, .5
-
- <emphasis>outq</emphasis> a1, a2, a3, a4
- ga1 <emphasis role="op">=</emphasis>0
- ga2 <emphasis role="op">=</emphasis>0
- ga3 <emphasis role="op">=</emphasis>0
- ga4 <emphasis role="op">=</emphasis>0
-<emphasis role="oblock">endin</emphasis></programlisting>
- </informalexample>
- </para>
-
- <para>
- In the above example, the signal, <emphasis>asig</emphasis>, is moved according to the data in Function #1 indexed by <emphasis>ktime</emphasis>. <emphasis>space</emphasis> sends the appropriate amount of the signal internally to <emphasis>spsend</emphasis>. The outputs of the <emphasis>spsend</emphasis> are added to global accumulators in a common Csound style and the global signals are used as inputs to the reverb units in a separate instrument.
- </para>
-
- <para>
- <emphasis>space</emphasis> can be useful for quad and stereo panning as well as fixed placed of sounds anywhere between two loudspeakers. Below is an example of the fixed placement of sounds in a stereo field using xy values from the score instead of a function table.
- <informalexample>
- <programlisting>
-<emphasis role="oblock">instr</emphasis> 1
- ...
- a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 0, 0, .1, p4, p5
- ar1, ar2, ar3, ar4 <emphasis role="opc">spsend
- </emphasis>
- ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
- ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
- <emphasis role="opc">outs</emphasis> a1, a2
-<emphasis role="oblock">endin</emphasis>
-
-<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb....</emphasis>
- ....
-<emphasis role="oblock">endin</emphasis></programlisting>
- </informalexample>
- </para>
-
- <para>
- A few notes: p4 and p5 are the x and y values
- <informalexample>
- <programlisting>
- <emphasis role="comment">;place the sound in the left speaker and near</emphasis>
- <emphasis role="stamnt">i</emphasis>1 0 1 -1 1
- <emphasis role="comment">;place the sound in the right speaker and far</emphasis>
- <emphasis role="stamnt">i</emphasis>1 1 1 45 45
- <emphasis role="comment">;place the sound equally between left and right and in the middle ground distance</emphasis>
- <emphasis role="stamnt">i</emphasis>1 2 1 0 12
-<emphasis role="stamnt">e</emphasis></programlisting>
- </informalexample>
- </para>
-
- <para>
- The next example shows a simple intuitive use of the distance values returned by <emphasis>spdist</emphasis> to simulate Doppler shift.
- <informalexample>
- <programlisting>
- ktime <emphasis role="opc">line</emphasis> 0, p3, 10
- kdist <emphasis role="opc">spdist</emphasis> 1, ktime
- kfreq <emphasis role="op">=</emphasis> (ifreq <emphasis role="op">*</emphasis> 340) <emphasis role="op">/</emphasis> (340 <emphasis role="op">+</emphasis> kdist)
- asig <emphasis role="opc">oscili</emphasis> iamp, kfreq, 1
-
- a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 1, ktime, .1
- ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis></programlisting>
- </informalexample>
+ Here is an example of the spdist opcode. It uses the file <ulink url="examples/spdist.csd"><citetitle>spdist.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the spdist opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/spdist.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
-
- <para>
+ <para>
The same function and time values are used for both <emphasis>spdist</emphasis> and <emphasis>space</emphasis>. This insures that the distance values used internally in the <emphasis>space</emphasis> unit will be the same as those returned by <emphasis>spdist</emphasis> to give the impression of a Doppler shift!
</para>
</refsect1>
diff --git a/opcodes/specaddm.xml b/opcodes/specaddm.xml
index bc60a4a..7d6fc0b 100644
--- a/opcodes/specaddm.xml
+++ b/opcodes/specaddm.xml
@@ -6,8 +6,6 @@
<refentrytitle>specaddm</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>specaddm</refname>
<refpurpose>
@@ -47,8 +45,7 @@
<para>
Do a weighted add of two input spectra. For each channel of the two input spectra, the two magnitudes are combined and written to the output according to:
<literallayout>
-magout = mag1in + mag2in * imul2
- </literallayout>
+magout = mag1in + mag2in * imul2</literallayout>
</para>
<para>
@@ -57,20 +54,6 @@ magout = mag1in + mag2in * imul2
</refsect1>
<refsect1>
- <title>Examples</title>
- <para>
- <informalexample>
- <programlisting>
- wsig2 <emphasis>specdiff</emphasis> wsig1 ; sense onsets
- wsig3 <emphasis>specfilt</emphasis> wsig2, 2 ; absorb slowly
- <emphasis>specdisp</emphasis> wsig2, .1 ; &amp; display both spectra
- <emphasis>specdisp</emphasis> wsig3, .1
- </programlisting>
- </informalexample>
- </para>
- </refsect1>
-
- <refsect1>
<title>See Also</title>
<para>
<link linkend="specdiff"><citetitle>specdiff</citetitle></link>,
diff --git a/opcodes/specdiff.xml b/opcodes/specdiff.xml
index f04902f..8528a9d 100644
--- a/opcodes/specdiff.xml
+++ b/opcodes/specdiff.xml
@@ -6,13 +6,11 @@
<refentrytitle>specdiff</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>specdiff</refname>
<refpurpose>
Finds the positive difference values between consecutive spectral frames.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -47,11 +45,10 @@
<para>
<informalexample>
<programlisting>
- wsig2 <emphasis>specdiff</emphasis> wsig1 ; sense onsets
- wsig3 <emphasis>specfilt</emphasis> wsig2, 2 ; absorb slowly
- <emphasis>specdisp</emphasis> wsig2, .1 ; &amp; display both spectra
- <emphasis>specdisp</emphasis> wsig3, .1
- </programlisting>
+ wsig2 <emphasis role="opc">specdiff</emphasis> wsig1 <emphasis role="comment">; sense onsets</emphasis>
+ wsig3 <emphasis role="opc">specfilt</emphasis> wsig2, 2 <emphasis role="comment">; absorb slowly</emphasis>
+ <emphasis role="opc">specdisp</emphasis> wsig2, 0.1 <emphasis role="comment">; &amp; display both spectra</emphasis>
+ <emphasis role="opc">specdisp</emphasis> wsig3, 0.1</programlisting>
</informalexample>
</para>
</refsect1>
diff --git a/opcodes/specdisp.xml b/opcodes/specdisp.xml
index 6a6d7bb..1582910 100644
--- a/opcodes/specdisp.xml
+++ b/opcodes/specdisp.xml
@@ -6,13 +6,11 @@
<refentrytitle>specdisp</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>specdisp</refname>
<refpurpose>
Displays the magnitude values of the spectrum.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -54,14 +52,13 @@
<para>
<informalexample>
<programlisting>
- ksum <emphasis>specsum</emphasis> wsig, 1 ; sum the spec bins, and ksmooth
- <emphasis>if</emphasis> ksum &lt; 2000 <emphasis>kgoto</emphasis> zero ; if sufficient amplitude
- koct <emphasis>specptrk</emphasis> wsig ; pitch-track the signal
- <emphasis>kgoto</emphasis> contin
-zero:
- koct = 0 ; else output zero
-contin:
- </programlisting>
+ ksum <emphasis role="opc">specsum</emphasis> wsig, 1 <emphasis role="comment">; sum the spec bins, and ksmooth</emphasis>
+ <emphasis role="octrl">if</emphasis> ksum <emphasis role="op">&lt;</emphasis> 2000 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">zero</emphasis> <emphasis role="comment">; if sufficient amplitude</emphasis>
+ koct <emphasis role="opc">specptrk</emphasis> wsig <emphasis role="comment">; pitch-track the signal</emphasis>
+ <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">contin</emphasis>
+<emphasis role="olabel">zero:</emphasis>
+ koct <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; else output zero</emphasis>
+<emphasis role="olabel">contin:</emphasis></programlisting>
</informalexample>
</para>
</refsect1>
diff --git a/opcodes/specfilt.xml b/opcodes/specfilt.xml
index fd62b3e..05d0ae0 100644
--- a/opcodes/specfilt.xml
+++ b/opcodes/specfilt.xml
@@ -7,12 +7,11 @@
</refmeta>
-
<refnamediv>
<refname>specfilt</refname>
<refpurpose>
Filters each channel of an input spectrum.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -50,11 +49,10 @@
<para>
<informalexample>
<programlisting>
- wsig2 <emphasis>specdiff</emphasis> wsig1 ; sense onsets
- wsig3 <emphasis>specfilt</emphasis> wsig2, 2 ; absorb slowly
- <emphasis>specdisp</emphasis> wsig2, .1 ; &amp; display both spectra
- <emphasis>specdisp</emphasis> wsig3, .1
- </programlisting>
+ wsig2 <emphasis role="opc">specdiff</emphasis> wsig1 <emphasis role="comment">; sense onsets</emphasis>
+ wsig3 <emphasis role="opc">specfilt</emphasis> wsig2, 2 <emphasis role="comment">; absorb slowly</emphasis>
+ <emphasis role="opc">specdisp</emphasis> wsig2, 0.1 <emphasis role="comment">; &amp; display both spectra</emphasis>
+ <emphasis role="opc">specdisp</emphasis> wsig3, 0.1</programlisting>
</informalexample>
</para>
</refsect1>
diff --git a/opcodes/spechist.xml b/opcodes/spechist.xml
index 9dbc167..ef8d94a 100644
--- a/opcodes/spechist.xml
+++ b/opcodes/spechist.xml
@@ -6,13 +6,11 @@
<refentrytitle>spechist</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>spechist</refname>
<refpurpose>
Accumulates the values of successive spectral frames.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -43,11 +41,10 @@
<para>
<informalexample>
<programlisting>
- wsig2 <emphasis>specdiff</emphasis> wsig1 ; sense onsets
- wsig3 <emphasis>specfilt</emphasis> wsig2, 2 ; absorb slowly
- <emphasis>specdisp</emphasis> wsig2, .1 ; &amp; display both spectra
- <emphasis>specdisp</emphasis> wsig3, .1
- </programlisting>
+ wsig2 <emphasis role="opc">specdiff</emphasis> wsig1 <emphasis role="comment">; sense onsets</emphasis>
+ wsig3 <emphasis role="opc">specfilt</emphasis> wsig2, 2 <emphasis role="comment">; absorb slowly</emphasis>
+ <emphasis role="opc">specdisp</emphasis> wsig2, 0.1 <emphasis role="comment">; &amp; display both spectra</emphasis>
+ <emphasis role="opc">specdisp</emphasis> wsig3, 0.1</programlisting>
</informalexample>
</para>
</refsect1>
diff --git a/opcodes/specptrk.xml b/opcodes/specptrk.xml
index 9d1f29f..e10717b 100644
--- a/opcodes/specptrk.xml
+++ b/opcodes/specptrk.xml
@@ -6,13 +6,11 @@
<refentrytitle>specptrk</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>spectrk</refname>
<refpurpose>
Estimates the pitch of the most prominent complex tone in the spectrum.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -75,18 +73,17 @@
<para>
<informalexample>
<programlisting>
- a1,a2 <emphasis>ins</emphasis> ; read a stereo clarinet input
- krms <emphasis>rms</emphasis> a1, 20 ; find a monaural rms value
- kvar = 0.6 + krms/8000 ; &amp; use to gate the pitch variance
- wsig <emphasis>spectrum</emphasis> a1, .01, 7, 24, 15, 0, 3 ; get a 7-oct spectrum, 24 bibs/oct
- <emphasis>specdisp</emphasis> wsig, .2 ; display this and now estimate
- koct,ka <emphasis>spectrk</emphasis> wsig, kvar, 7.0, 10, 9, 20, 4, .7, 1, 5, 1, .2 ; the pch and amp
- aosc <emphasis>oscil</emphasis> ka*ka*10, cpsoct(koct),2 ; &amp; generate \ new tone with these
- koct = (koct&lt;7.0?7.0:koct) ; replace non pitch with low C
- <emphasis>display</emphasis> koct-7.0, .25, 20 ; &amp; display the pitch track
- <emphasis>display</emphasis> ka, .25, 20 ; plus the summed root mag
- <emphasis>outs</emphasis> a1, aosc ; output 1 original and 1 new track
- </programlisting>
+ a1, a2 <emphasis role="opc">ins</emphasis> <emphasis role="comment">; read a stereo clarinet input</emphasis>
+ krms <emphasis role="opc">rms</emphasis> a1, 20 <emphasis role="comment">; find a monaural rms value</emphasis>
+ kvar <emphasis role="op">=</emphasis> 0.6 <emphasis role="op">+</emphasis> krms<emphasis role="op">/</emphasis>8000 <emphasis role="comment">; &amp; use to gate the pitch variance</emphasis>
+ wsig <emphasis role="opc">spectrum</emphasis> a1, 0.01, 7, 24, 15, 0, 3 <emphasis role="comment">; get a 7-oct spectrum, 24 bibs/oct</emphasis>
+ <emphasis role="opc">specdisp</emphasis> wsig, 0.2 <emphasis role="comment">; display this and now estimate</emphasis>
+ koct, ka <emphasis role="opc">spectrk</emphasis> wsig, kvar, 7.0, 10, 9, 20, 4, 0.7, 1, 5, 1, 0.2 <emphasis role="comment">; the pch and amp</emphasis>
+ aosc <emphasis role="opc">oscil</emphasis> ka <emphasis role="op">*</emphasis> ka <emphasis role="op">*</emphasis> 10, cpsoct(koct), 2 <emphasis role="comment">; &amp; generate \ new tone with these</emphasis>
+ koct <emphasis role="op">=</emphasis> (koct <emphasis role="op">&lt;</emphasis> 7.0 <emphasis role="op">?</emphasis> 7.0 <emphasis role="op">:</emphasis> koct) <emphasis role="comment">; replace non pitch with low C</emphasis>
+ <emphasis role="opc">display</emphasis> koct <emphasis role="op">-</emphasis> 7.0, 0.25, 20 <emphasis role="comment">; &amp; display the pitch track</emphasis>
+ <emphasis role="opc">display</emphasis> ka, 0.25, 20 <emphasis role="comment">; plus the summed root mag</emphasis>
+ <emphasis role="opc">outs</emphasis> a1, aosc <emphasis role="comment">; output 1 original and 1 new track</emphasis></programlisting>
</informalexample>
</para>
</refsect1>
diff --git a/opcodes/specscal.xml b/opcodes/specscal.xml
index b8216e5..c99f67d 100644
--- a/opcodes/specscal.xml
+++ b/opcodes/specscal.xml
@@ -6,13 +6,11 @@
<refentrytitle>specscal</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>specscal</refname>
<refpurpose>
Scales an input spectral datablock with spectral envelopes.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -58,11 +56,10 @@
<para>
<informalexample>
<programlisting>
- wsig2 <emphasis>specdiff</emphasis> wsig1 ; sense onsets
- wsig3 <emphasis>specfilt</emphasis> wsig2, 2 ; absorb slowly
- <emphasis>specdisp</emphasis> wsig2, .1 ; &amp; display both spectra
- <emphasis>specdisp</emphasis> wsig3, .1
- </programlisting>
+ wsig2 <emphasis role="opc">specdiff</emphasis> wsig1 <emphasis role="comment">; sense onsets</emphasis>
+ wsig3 <emphasis role="opc">specfilt</emphasis> wsig2, 2 <emphasis role="comment">; absorb slowly</emphasis>
+ <emphasis role="opc">specdisp</emphasis> wsig2, 0.1 <emphasis role="comment">; &amp; display both spectra</emphasis>
+ <emphasis role="opc">specdisp</emphasis> wsig3, 0.1</programlisting>
</informalexample>
</para>
</refsect1>
diff --git a/opcodes/specsum.xml b/opcodes/specsum.xml
index a7ac9a9..3fd6ef5 100644
--- a/opcodes/specsum.xml
+++ b/opcodes/specsum.xml
@@ -6,13 +6,11 @@
<refentrytitle>specsum</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>specsum</refname>
<refpurpose>
Sums the magnitudes across all channels of the spectrum.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -54,14 +52,13 @@
<para>
<informalexample>
<programlisting>
- ksum <emphasis>specsum</emphasis> wsig, 1 ; sum the spec bins, and ksmooth
- <emphasis>if</emphasis> ksum &lt; 2000 <emphasis>kgoto</emphasis> zero ; if sufficient amplitude
- koct <emphasis>specptrk</emphasis> wsig ; pitch-track the signal
- <emphasis>kgoto</emphasis> contin
-zero:
- koct = 0 ; else output zero
-contin:
- </programlisting>
+ ksum <emphasis role="opc">specsum</emphasis> wsig, 1 <emphasis role="comment">; sum the spec bins, and ksmooth</emphasis>
+ <emphasis role="octrl">if</emphasis> ksum <emphasis role="op">&lt;</emphasis> 2000 <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">zero</emphasis> <emphasis role="comment">; if sufficient amplitude</emphasis>
+ koct <emphasis role="opc">specptrk</emphasis> wsig <emphasis role="comment">; pitch-track the signal</emphasis>
+ <emphasis role="octrl">kgoto</emphasis> <emphasis role="olabel">contin</emphasis>
+<emphasis role="olabel">zero:</emphasis>
+ koct <emphasis role="op">=</emphasis> 0 <emphasis role="comment">; else output zero</emphasis>
+<emphasis role="olabel">contin:</emphasis></programlisting>
</informalexample>
</para>
</refsect1>
diff --git a/opcodes/spectrum.xml b/opcodes/spectrum.xml
index 3323df3..135880b 100644
--- a/opcodes/spectrum.xml
+++ b/opcodes/spectrum.xml
@@ -6,13 +6,11 @@
<refentrytitle>spectrum</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>spectrum</refname>
<refpurpose>
Generate a constant-Q, exponentially-spaced DFT.
- </refpurpose>
+ </refpurpose>
</refnamediv>
<refsect1>
@@ -77,7 +75,7 @@
</para>
<para>
- This unit produces a self-defining spectral datablock <emphasis>wsig</emphasis>, whose characteristics used (<emphasis>iprd</emphasis>, <emphasis>iocts</emphasis>, <emphasis>ifrqs</emphasis>, <emphasis>idbout</emphasis>) are passed via the data block itself to all derivative <emphasis>wsigs</emphasis>. There can be any number of spectrum units in an instrument or orchestra, but all <emphasis>wsig</emphasis> names must be unique.
+ This unit produces a self-defining spectral datablock <emphasis>wsig</emphasis>, whose characteristics used (<emphasis>iprd</emphasis>, <emphasis>iocts</emphasis>, <emphasis>ifrqs</emphasis>, <emphasis>idbout</emphasis>) are passed via the data block itself to all derivative <emphasis>wsigs</emphasis>. There can be any number of <emphasis>spectrum</emphasis> units in an instrument or orchestra, but all <emphasis>wsig</emphasis> names must be unique.
</para>
</refsect1>
@@ -86,9 +84,9 @@
<para>
<informalexample>
<programlisting>
-asig <emphasis>in</emphasis> ; get external audio
-wsig <emphasis>spectrum</emphasis> asig,.02,6,12,33,0,1,1 ; downsample in 6 octs &amp; calc a 72 pt dft (Q 33, dB out) every 20 msecs
- </programlisting>
+asig <emphasis role="opc">in</emphasis> <emphasis role="comment">; get external audio</emphasis>
+wsig <emphasis role="opc">spectrum</emphasis> asig, 0.02, 6, 12, 33, 0, 1, 1 <emphasis role="comment">; downsample in 6 octs &amp; calc a 72 pt dft</emphasis>
+ <emphasis role="comment">; (Q 33, dB out) every 20 msecs</emphasis></programlisting>
</informalexample>
</para>
</refsect1>
diff --git a/opcodes/sprintf.xml b/opcodes/sprintf.xml
index 331c502..325cf1c 100644
--- a/opcodes/sprintf.xml
+++ b/opcodes/sprintf.xml
@@ -49,12 +49,20 @@
</refsect1>
<refsect1>
- <title>Example</title>
- <programlisting>
-Sname <emphasis role="opc">sprintf</emphasis> "soundin-%04d.wav", ifileno
-Smsg <emphasis role="opc">sprintf</emphasis> "The file name is: '%s'", Sname
- <emphasis role="opc">puts</emphasis> Smsg, 1
-asig <emphasis role="opc">soundin</emphasis> Sname</programlisting>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sprintf opcode. It uses the file <ulink url="examples/sprintf.csd"><citetitle>sprintf.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sprintf opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sprintf.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like this:
+ <screen>
+The file name is: 'impuls20.aiff'
+soundin: opened 'impuls20.aiff'
+ </screen>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/sprintfk.xml b/opcodes/sprintfk.xml
index d90dd5b..c32df76 100644
--- a/opcodes/sprintfk.xml
+++ b/opcodes/sprintfk.xml
@@ -52,12 +52,24 @@
<title>Examples</title>
<para>
Here is an example of the sprintfk opcode. It uses the file <ulink url="examples/sprintfk.csd"><citetitle>sprintfk.csd</citetitle></ulink>.
-
<example>
<title>Example of the sprintfk opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/sprintfk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
+ Its output should include lines like this:
+ <screen>
+1 + 1 = 2
+1 + 1 + 1 = 3
+1 + 1 + 1 + 1 = 4
+1 + 1 + 1 + 1 + 1 = 5
+1 + 1 + 1 + 1 + 1 + 1 = 6
+1 + 1 + 1 + 1 + 1 + 1 + 1 = 7
+1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 8
+1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 9
+1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 10
+1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 11
+1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 12</screen>
</para>
</refsect1>
diff --git a/opcodes/spsend.xml b/opcodes/spsend.xml
index 2f4257b..9f6b7cf 100644
--- a/opcodes/spsend.xml
+++ b/opcodes/spsend.xml
@@ -52,96 +52,16 @@
This assumes a loudspeaker set up as a1 is left front, a2 is right front, a3 is left back, a4 is right back. Values greater than 1 will result in sounds being attenuated, as if in the distance. <emphasis>space</emphasis> considers the speakers to be at a distance of 1; smaller values of xy can be used, but <emphasis>space</emphasis> will not amplify the signal in this case. It will, however balance the signal so that it can sound as if it were within the 4 speaker <emphasis>space</emphasis>. x=0, y=1, will place the signal equally balanced between left and right front channels, x=y=0 will place the signal equally in all 4 channels, and so on. Although there must be 4 output signals from <emphasis>space</emphasis>, it can be used in a 2 channel orchestra. If the xy's are kept so that Y&gt;=1, it should work well to do panning and fixed localization in a stereo field.
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-<emphasis role="oblock">instr</emphasis> 1
- asig <emphasis role="comment">;some audio signal</emphasis>
- ktime <emphasis role="opc">line</emphasis> 0, p3, p10
- a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig,1, ktime, .1
- ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis>
-
- ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
- ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
- ga3 <emphasis role="op">=</emphasis> ga3<emphasis role="op">+</emphasis>ar3
- ga4 <emphasis role="op">=</emphasis> ga4<emphasis role="op">+</emphasis>ar4
-
- <emphasis role="op">outq</emphasis> a1, a2, a3, a4
-<emphasis role="oblock">endin</emphasis>
-
-<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb instrument</emphasis>
-
- a1 <emphasis role="opc">reverb2</emphasis> ga1, 2.5, .5
- a2 <emphasis role="opc">reverb2</emphasis> ga2, 2.5, .5
- a3 <emphasis role="opc">reverb2</emphasis> ga3, 2.5, .5
- a4 <emphasis role="opc">reverb2</emphasis> ga4, 2.5, .5
-
- <emphasis>outq</emphasis> a1, a2, a3, a4
- ga1 <emphasis role="op">=</emphasis>0
- ga2 <emphasis role="op">=</emphasis>0
- ga3 <emphasis role="op">=</emphasis>0
- ga4 <emphasis role="op">=</emphasis>0
-<emphasis role="oblock">endin</emphasis></programlisting>
- </informalexample>
- </para>
-
- <para>
- In the above example, the signal, <emphasis>asig</emphasis>, is moved according to the data in Function #1 indexed by <emphasis>ktime</emphasis>. <emphasis>space</emphasis> sends the appropriate amount of the signal internally to <emphasis>spsend</emphasis>. The outputs of the <emphasis>spsend</emphasis> are added to global accumulators in a common Csound style and the global signals are used as inputs to the reverb units in a separate instrument.
- </para>
-
- <para>
- <emphasis>space</emphasis> can be useful for quad and stereo panning as well as fixed placed of sounds anywhere between two loudspeakers. Below is an example of the fixed placement of sounds in a stereo field using xy values from the score instead of a function table.
- <informalexample>
- <programlisting>
-<emphasis role="oblock">instr</emphasis> 1
- ...
- a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 0, 0, .1, p4, p5
- ar1, ar2, ar3, ar4 <emphasis role="opc">spsend
- </emphasis>
- ga1 <emphasis role="op">=</emphasis> ga1<emphasis role="op">+</emphasis>ar1
- ga2 <emphasis role="op">=</emphasis> ga2<emphasis role="op">+</emphasis>ar2
- <emphasis role="opc">outs</emphasis> a1, a2
-<emphasis role="oblock">endin</emphasis>
-
-<emphasis role="oblock">instr</emphasis> 99 <emphasis role="comment">; reverb....</emphasis>
- ....
-<emphasis role="oblock">endin</emphasis></programlisting>
- </informalexample>
- </para>
-
- <para>
- A few notes: p4 and p5 are the x and y values
- <informalexample>
- <programlisting>
- <emphasis role="comment">;place the sound in the left speaker and near</emphasis>
- <emphasis role="stamnt">i</emphasis>1 0 1 -1 1
- <emphasis role="comment">;place the sound in the right speaker and far</emphasis>
- <emphasis role="stamnt">i</emphasis>1 1 1 45 45
- <emphasis role="comment">;place the sound equally between left and right and in the middle ground distance</emphasis>
- <emphasis role="stamnt">i</emphasis>1 2 1 0 12
-<emphasis role="stamnt">e</emphasis></programlisting>
- </informalexample>
- </para>
-
- <para>
- The next example shows a simple intuitive use of the distance values returned by <emphasis>spdist</emphasis> to simulate Doppler shift.
- <informalexample>
- <programlisting>
- ktime <emphasis role="opc">line</emphasis> 0, p3, 10
- kdist <emphasis role="opc">spdist</emphasis> 1, ktime
- kfreq <emphasis role="op">=</emphasis> (ifreq <emphasis role="op">*</emphasis> 340) <emphasis role="op">/</emphasis> (340 <emphasis role="op">+</emphasis> kdist)
- asig <emphasis role="opc">oscili</emphasis> iamp, kfreq, 1
-
- a1, a2, a3, a4 <emphasis role="opc">space</emphasis> asig, 1, ktime, .1
- ar1, ar2, ar3, ar4 <emphasis role="opc">spsend</emphasis></programlisting>
- </informalexample>
- </para>
-
- <para>
- The same function and time values are used for both <emphasis>spdist</emphasis> and <emphasis>space</emphasis>. This insures that the distance values used internally in the <emphasis>space</emphasis> unit will be the same as those returned by <emphasis>spdist</emphasis> to give the impression of a Doppler shift!
+ Here is a stereo example of the spsend opcode. It uses the file <ulink url="examples/spsend.csd"><citetitle>spsend.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the spsend opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/spsend.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
diff --git a/opcodes/sqrt.xml b/opcodes/sqrt.xml
index 6246f50..c88aaff 100644
--- a/opcodes/sqrt.xml
+++ b/opcodes/sqrt.xml
@@ -41,18 +41,24 @@
<title>Examples</title>
<para>
Here is an example of the sqrt opcode. It uses the file <ulink url="examples/sqrt.csd"><citetitle>sqrt.csd</citetitle></ulink>.
-
<example>
<title>Example of the sqrt opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/sqrt.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include lines like this:
- <screen>instr 1: i1 = 8.000</screen>
+ Its output should include lines like these:
+ <screen>
+square root of left channel = 1.000000
+square root of left channel = 0.948688
+square root of left channel = 0.894437
+square root of left channel = 0.836676
+square root of left channel = 0.774620
+square root of left channel = 0.707139
+square root of left channel = 0.632499
+square root of left channel = 0.547781
+square root of left channel = 0.447295
+square root of left channel = 0.316242
+ </screen>
</para>
</refsect1>
@@ -69,8 +75,4 @@
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;.</para>
- </refsect1>
</refentry>
diff --git a/opcodes/sr.xml b/opcodes/sr.xml
index 2da6072..1562dd2 100644
--- a/opcodes/sr.xml
+++ b/opcodes/sr.xml
@@ -56,6 +56,20 @@ ga <emphasis role="opc">init</emphasis> 0
itranspose <emphasis role="op">=</emphasis> <emphasis role="opc">octpch</emphasis>(.0l)</programlisting>
</informalexample>
</para>
+ <para>
+ Here is another example of the sr opcode. It uses the file <ulink url="examples/sr.csd"><citetitle>sr.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sr opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like this:
+ <screen>
+maximum number of harmonics = 240
+maximum number of harmonics = 24
+maximum number of harmonics = 2
+ </screen>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/stack.xml b/opcodes/stack.xml
index 41097f7..97a48c6 100644
--- a/opcodes/stack.xml
+++ b/opcodes/stack.xml
@@ -39,7 +39,7 @@
The global stack works in LIFO order: after multiple <link linkend="push"><citetitle>push</citetitle></link> calls, <link linkend="pop"><citetitle>pop</citetitle></link> should be used in reverse order.
</para>
<para>
- Each <link linkend="push"><citetitle>push</citetitle></link> or <link linkend="pop"><citetitle>pop</citetitle></link> operation can work on a "bundle" of multiple variables. When using <link linkend="pop"><citetitle>pop</citetitle></link>, the number, type, and order of items must match those used by the corresponding <link linkend="push"><citetitle>push</citetitle></link>. That is, after a 'push Sfoo, ibar', you must call something like 'pop Sbar, ifoo', and not e.g. two separate 'pop' statements.
+ Each <link linkend="push"><citetitle>push</citetitle></link> or <link linkend="pop"><citetitle>pop</citetitle></link> operation can work on a "bundle" of multiple variables. When using <link linkend="pop"><citetitle>pop</citetitle></link>, the number, type, and order of items must match those used by the corresponding <link linkend="push"><citetitle>push</citetitle></link>. That is, after a 'push Sfoo, ibar', you must call something like 'Sbar, ifoo pop', and not e.g. two separate 'pop' statements.
</para>
<para>
<link linkend="push"><citetitle>push</citetitle></link> and <link linkend="pop"><citetitle>pop</citetitle></link> opcodes can take variables of any type (i-, k-, a- and strings). Variables of type 'a' and 'k' are passed at performance time only, while 'i' and 'S' are passed at init time only.
@@ -51,6 +51,19 @@
Any stack errors (trying to push when there is no more space, or pop from an empty stack, inconsistent number or type of arguments, etc.) are fatal and terminate performance.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the stack opcode. It uses the file <ulink url="examples/stack.csd"><citetitle>stack.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the stack opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/stack.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See also</title>
<para>
@@ -59,7 +72,9 @@
<link linkend="pop_f"><citetitle>pop_f</citetitle></link> and
<link linkend="push_f"><citetitle>push_f</citetitle></link>.
</para>
+ <para>Using this opcode is somewhat hackish, as you can read here: <ulink url="http://csound.1045644.n5.nabble.com/passing-a-string-to-a-UDO-td1099284.html"></ulink></para>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>By: &nameistvan;.</para>
diff --git a/opcodes/statevar.xml b/opcodes/statevar.xml
index 94b47ec..e42e607 100644
--- a/opcodes/statevar.xml
+++ b/opcodes/statevar.xml
@@ -27,7 +27,7 @@ resonance limiter that prevents the filter from getting unstable.
<refsect1>
<title>Syntax</title>
- <synopsis>ahp,alp,abp,abr <command>statevar</command> ain, kcf, kq [, iosamps, istor]</synopsis>
+ <synopsis>ahp,alp,abp,abr <command>statevar</command> ain, xcf, xq [, iosamps, istor]</synopsis>
</refsect1>
<refsect1>
@@ -49,6 +49,7 @@ previous information to remain. The default value is 0.
</para>
</refsect1>
+
<refsect1>
<title>Performance</title>
<para>
@@ -67,27 +68,26 @@ previous information to remain. The default value is 0.
<emphasis>asig</emphasis> -- input signal.
</para>
<para>
- <emphasis>kcf</emphasis> -- filter cutoff frequency
+ <emphasis>xcf</emphasis> -- filter cutoff frequency (k-rate or a-rate).
</para>
<para>
- <emphasis>kq</emphasis> -- filter Q. This value is limited internally depending on
-the frequency and the number of times of oversampling used in
-the process (3-times oversampling by default).
+ <emphasis>xq</emphasis> -- filter Q (k-rate or a-rate). This
+ value is limited internally depending on the frequency and the
+ number of times of oversampling used in the process (3-times
+ oversampling by default).
</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the statevar opcode. It uses the file <ulink url="examples/statevar.csd"><citetitle>statevar.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-kenv <emphasis role="opc">linseg</emphasis> 0, 0.1, 1, p3<emphasis role="op">-</emphasis>0.2, 1, 0.1, 0
-asig <emphasis role="opc">buzz</emphasis> 16000<emphasis role="op">*</emphasis>kenv, 100, 100, 1;
-kf <emphasis role="opc">expseg</emphasis> 100, p3<emphasis role="op">/</emphasis>2, 5000, p3<emphasis role="op">/</emphasis>2, 1000
-ahp, alp, abp, abr <emphasis role="opc">statevar</emphasis> asig, kf, 200
- <emphasis role="opc">outs</emphasis> alp, ahp</programlisting>
+ <title>Example of the statevar opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/statevar.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
@@ -100,8 +100,9 @@ ahp, alp, abp, abr <emphasis role="opc">statevar</emphasis> asig, kf, 200
<member>January 2005</member>
</simplelist>
</para>
-
<para>New plugin in version 5</para>
<para>January 2005.</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>October 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/strcat.xml b/opcodes/strcat.xml
index df535a8..ba144ca 100644
--- a/opcodes/strcat.xml
+++ b/opcodes/strcat.xml
@@ -26,13 +26,17 @@
</refsect1>
<refsect1>
- <title>Example</title>
- <programlisting>
-Sname <emphasis role="op">=</emphasis> "beats"
-Sname <emphasis role="opc">strcat</emphasis> Sname, ".wav"
-asig <emphasis role="opc">soundin</emphasis> Sname</programlisting>
+ <title>Examples</title>
+ <para>
+ Here is an example of the strcat opcode. It uses the file <ulink url="examples/strcat.csd"><citetitle>strcat.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the strcat opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/strcat.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
-
+
<refsect1>
<title>See also</title>
<para><link linkend="strcatk"><citetitle>strcatk</citetitle></link></para>
diff --git a/opcodes/strcatk.xml b/opcodes/strcatk.xml
index b096fff..be7e485 100644
--- a/opcodes/strcatk.xml
+++ b/opcodes/strcatk.xml
@@ -26,7 +26,32 @@
<title>Syntax</title>
<synopsis>Sdst <command>strcatk</command> Ssrc1, Ssrc2</synopsis>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the strcatk opcode. It uses the file <ulink url="examples/strcatk.csd"><citetitle>strcatk.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the strcatk opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/strcatk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like this:
+ <screen>
+1 + 1 = 2
+1 + 1 + 1 = 3
+1 + 1 + 1 + 1 = 4
+1 + 1 + 1 + 1 + 1 = 5
+1 + 1 + 1 + 1 + 1 + 1 = 6
+1 + 1 + 1 + 1 + 1 + 1 + 1 = 7
+1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 8
+1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 9
+1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 10
+1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 11
+1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 12</screen>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See also</title>
<para><link linkend="strcat"><citetitle>strcat</citetitle></link></para>
diff --git a/opcodes/strchar.xml b/opcodes/strchar.xml
index 26d9438..2395464 100644
--- a/opcodes/strchar.xml
+++ b/opcodes/strchar.xml
@@ -6,8 +6,6 @@
<refentrytitle>strchar</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>strchar</refname>
<refpurpose>
@@ -30,6 +28,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the strchar opcode. It uses the file <ulink url="examples/strchar.csd"><citetitle>strchar.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the strchar opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/strchar.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See also</title>
<para><link linkend="strchark"><citetitle>strchark</citetitle></link></para>
</refsect1>
diff --git a/opcodes/strcmp.xml b/opcodes/strcmp.xml
index c76c9e7..9d77fad 100644
--- a/opcodes/strcmp.xml
+++ b/opcodes/strcmp.xml
@@ -26,7 +26,18 @@
<title>Syntax</title>
<synopsis>ires <command>strcmp</command> S1, S2</synopsis>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the strcmp opcode. It uses the file <ulink url="examples/strcmp.csd"><citetitle>strcmp.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the strcmp opcode.</title>
+ <xi:include href="examples-xml/strcmp.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See also</title>
<para><link linkend="strcmpk"><citetitle>strcmpk</citetitle></link></para>
diff --git a/opcodes/strcpyk.xml b/opcodes/strcpyk.xml
index 733b9c3..6ccd063 100644
--- a/opcodes/strcpyk.xml
+++ b/opcodes/strcpyk.xml
@@ -26,6 +26,18 @@
<title>Syntax</title>
<synopsis>Sdst <command>strcpyk</command> Ssrc</synopsis>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the strcpyk opcode. It uses the file <ulink url="examples/strcpyk.csd"><citetitle>strcpyk.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the strcpyk opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/strcpyk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See also</title>
diff --git a/opcodes/streson.xml b/opcodes/streson.xml
index b2262c4..2627291 100644
--- a/opcodes/streson.xml
+++ b/opcodes/streson.xml
@@ -60,12 +60,8 @@
<title>Examples</title>
<para>
Here is an example of the streson opcode. It uses the file <ulink url="examples/streson.csd"><citetitle>streson.csd</citetitle></ulink>.
-
<example>
<title>Example of the streson opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/streson.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
@@ -83,8 +79,6 @@
<member>1998</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.494</para>
</refsect1>
</refentry>
diff --git a/opcodes/strfromurl.xml b/opcodes/strfromurl.xml
new file mode 100644
index 0000000..9064254
--- /dev/null
+++ b/opcodes/strfromurl.xml
@@ -0,0 +1,65 @@
+
+<refentry id="strfromurl">
+<indexterm id="Indexstrfromurl"><primary>strfromurl</primary></indexterm>
+ <refentryinfo><title>Strings:Definition</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>strfromurl</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>strfromurl</refname>
+ <refpurpose>
+ Set string variable to value read from an URL
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ <emphasis>strfromurl</emphasis> sets a string variable at
+ initialization time to the value found from reading an URL.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>Sdst <command>strfromurl</command> StringURL</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>StringURL</emphasis> -- string naming an URL.
+ </para>
+
+ <para>
+ <emphasis>Sdst</emphasis> -- destination string variable
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the strfromurl opcode. It uses the file <ulink url="examples/strfromurl.csd"><citetitle>strfromurl.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the strfromurl opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/strfromurl.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See also</title>
+ <para><link linkend="strset"><citetitle>strset</citetitle></link>
+ </para>
+ </refsect1>
+
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namejohn;</para>
+ <para>2013</para>
+ <para>URLs available from Csound 6.02 if built with support</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/strget.xml b/opcodes/strget.xml
index 59a064c..15f188d 100644
--- a/opcodes/strget.xml
+++ b/opcodes/strget.xml
@@ -37,6 +37,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the strget opcode. It uses the file <ulink url="examples/strget.csd"><citetitle>strget.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the strget opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/strget.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See also</title>
<para><link linkend="strset"><citetitle>strset</citetitle></link>
</para>
diff --git a/opcodes/strindexk.xml b/opcodes/strindexk.xml
index 28b14da..d232c45 100644
--- a/opcodes/strindexk.xml
+++ b/opcodes/strindexk.xml
@@ -28,6 +28,18 @@
<title>Syntax</title>
<synopsis>kpos <command>strindexk</command> S1, S2</synopsis>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the strindexk opcode. It uses the file <ulink url="examples/strindexk.csd"><citetitle>strindexk.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the strindexk opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/strindexk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See also</title>
diff --git a/opcodes/strlower.xml b/opcodes/strlower.xml
index 20e14db..c29191c 100644
--- a/opcodes/strlower.xml
+++ b/opcodes/strlower.xml
@@ -29,6 +29,19 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the strlower opcode. It uses the file <ulink url="examples/strlower.csd"><citetitle>strlower.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the strlower opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/strlower.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See also</title>
<para><link linkend="strlowerk"><citetitle>strlowerk</citetitle></link></para>
</refsect1>
diff --git a/opcodes/strrindex.xml b/opcodes/strrindex.xml
index 36e04b3..05be5ff 100644
--- a/opcodes/strrindex.xml
+++ b/opcodes/strrindex.xml
@@ -30,6 +30,19 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the strrindex opcode. It uses the file <ulink url="examples/strrindex.csd"><citetitle>strrindex.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the strrindex opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/strrindex.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See also</title>
<para><link linkend="strrindexk"><citetitle>strrindexk</citetitle></link></para>
</refsect1>
diff --git a/opcodes/subtracts.xml b/opcodes/subtracts.xml
index 337d5c8..b092127 100644
--- a/opcodes/subtracts.xml
+++ b/opcodes/subtracts.xml
@@ -75,22 +75,29 @@ a - b - c
</refsect1>
<refsect1>
+ <title>Arguments</title>
+ <para>
+ The arguments of &minus; can be scalar values or k-rate one
+ dimensional arrays (vectors), or any combination. If one of the
+ arguments is an array, so is the value.
+ </para>
+ </refsect1>
+
+
+ <refsect1>
<title>Examples</title>
<para>
Here is an example of the - operator. It uses the file <ulink url="examples/subtracts.csd"><citetitle>subtracts.csd</citetitle></ulink>.
-
<example>
<title>Example of the - operator.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/subtracts.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include lines like this:
+ Its output should include lines like these:
<screen>
-instr 1: i1 = 16.000</screen>
+sutain time= note duration - attack - decay --> 3.0-0.1-0.2 = 2.7
+sutain time= note duration - attack - decay --> 3.0-0.5-1.5 = 1.0
+sutain time= note duration - attack - decay --> 5.0-4.0-0.5 = 0.5</screen>
</para>
</refsect1>
@@ -109,6 +116,7 @@ instr 1: i1 = 16.000</screen>
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;.</para>
+ <para>Arithmetic on vectors is new in version 6.00</para>
</refsect1>
+
</refentry>
diff --git a/opcodes/sum.xml b/opcodes/sum.xml
index 5ddf820..7ff3e7a 100644
--- a/opcodes/sum.xml
+++ b/opcodes/sum.xml
@@ -34,7 +34,19 @@
<emphasis>asig1, asig2, ...</emphasis> -- a-rate signals to be summed (mixed or added).
</para>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sum opcode. It uses the file <ulink url="examples/sum.csd"><citetitle>sum.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sum opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sum.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/sumarray.xml b/opcodes/sumarray.xml
new file mode 100644
index 0000000..55f1f1a
--- /dev/null
+++ b/opcodes/sumarray.xml
@@ -0,0 +1,76 @@
+
+<refentry id="sumarray">
+<indexterm id="IndexSumarray"><primary>sumarray</primary></indexterm>
+ <refentryinfo><title>Array Opcodes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>sumarray</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>sumarray</refname>
+
+ <refpurpose>
+ returns the sum of the elements in an array.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ The <emphasis>sumarray</emphasis> opcode returns the sum of all
+ elements in a k-rate array array.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ksum <command>sumarray</command> karray</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>ksum</emphasis> -- variable for result.
+ </para>
+ <para>
+ <emphasis>karray</emphasis> -- array for reading.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the sumarray opcode. It uses the file <ulink url="examples/sumarray.csd"><citetitle>sumarray.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the sumarray opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/sumarray.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="maxarray"><citetitle>minarray</citetitle></link>,
+ <link linkend="minarray"><citetitle>sumarray</citetitle></link>,
+ <link linkend="scalearray"><citetitle>scalearray</citetitle></link>,
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>October 2011</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.14</para>
+ <para>Revised in Csound version 6.00 to work on multidimensional arrays</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/syncgrain.xml b/opcodes/syncgrain.xml
index 2d2593c..a71cd52 100644
--- a/opcodes/syncgrain.xml
+++ b/opcodes/syncgrain.xml
@@ -103,34 +103,20 @@ will time-compress and smaller values will time-expand the source signal.
Negative values will cause the pointer to run backwards and zero will
freeze it.
</para>
-
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the syncgrain opcode. It uses the file <ulink url="examples/syncgrain.csd"><citetitle>syncgrain.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-
-iolaps <emphasis role="op">=</emphasis> 2
-igrsize <emphasis role="op">=</emphasis> 0.04
-ifreq <emphasis role="op">=</emphasis> iolaps<emphasis role="op">/</emphasis>igrsize
-ips <emphasis role="op">=</emphasis> 1<emphasis role="op">/</emphasis>iolaps
-
-istr <emphasis role="op">=</emphasis> .5 <emphasis role="comment">/* timescale */</emphasis>
-ipitch <emphasis role="op">=</emphasis> 1 <emphasis role="comment">/* pitchscale */</emphasis>
-
-a1 <emphasis role="opc">syncgrain</emphasis> 16000, ifreq, ipitch, igrsize, ips*istr, 1, 2, iolaps
- <emphasis role="opc">out</emphasis> a1</programlisting>
+ <title>Example of the syncgrain opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/syncgrain.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
</para>
-
-
</refsect1>
-
-
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/syncloop.xml b/opcodes/syncloop.xml
index ed572f7..c4f5e03 100644
--- a/opcodes/syncloop.xml
+++ b/opcodes/syncloop.xml
@@ -91,32 +91,19 @@ freeze it.
<emphasis>klend</emphasis> -- loop end in secs.
</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the syncloop opcode. It uses the file <ulink url="examples/syncloop.csd"><citetitle>syncloop.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-
-iolaps <emphasis role="op">=</emphasis> 2
-igrsize <emphasis role="op">=</emphasis> 0.04
-ifreq <emphasis role="op">=</emphasis> iolaps<emphasis role="op">/</emphasis>igrsize
-ips <emphasis role="op">=</emphasis> 1<emphasis role="op">/</emphasis>iolaps
-
-istr <emphasis role="op">=</emphasis> .5 <emphasis role="comment">/* timescale */</emphasis>
-ipitch <emphasis role="op">=</emphasis> 1 <emphasis role="comment">/* pitchscale */</emphasis>
-
-a1 <emphasis role="opc">syncloop</emphasis> 16000, ifreq, ipitch, igrsize, ips*istr, 1, 2, 1, 2, iolaps
- <emphasis role="opc">out</emphasis> a1</programlisting>
+ <title>Example of the syncloop opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/syncloop.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
</para>
-
-
</refsect1>
-
-
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/tab.xml b/opcodes/tab.xml
index d3d75c6..ed2422b 100644
--- a/opcodes/tab.xml
+++ b/opcodes/tab.xml
@@ -82,6 +82,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tab opcode. It uses the file <ulink url="examples/tab.csd"><citetitle>tab.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tab opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tab.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>Written by &namegabriel;.</para>
</refsect1>
diff --git a/opcodes/tab2pvs.xml b/opcodes/tab2pvs.xml
new file mode 100644
index 0000000..3a1a95b
--- /dev/null
+++ b/opcodes/tab2pvs.xml
@@ -0,0 +1,79 @@
+
+<refentry id="tab2pvs">
+<indexterm id="IndexTab2pvs"><primary>tab2pvs</primary></indexterm>
+
+ <refentryinfo><title>Spectral Processing:Streaming</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>tab2pvs</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>tab2pvs</refname>
+ <refpurpose>
+ Copies spectral data from t-variables.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Copies a pvs frame from a t-variable. Currently only AMP+FREQ is produced. This opcode requires the t-type to be defined, which means it only works in the new bison/flex-based parser.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>fsig <command>tab2pvs</command> tvar[,ihopsize, iwinsize, iwintype]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+
+
+ <para>
+ <emphasis>tvar</emphasis> -- t-variable containing the input. It is produced at every k-period, but may not contain a new frame, pvs frames are produced at their own frame rate that is independent of kr. The size of this vector will determine the fftsize, N = size - 2.
+ </para>
+
+ <para>
+ <emphasis>fsig</emphasis> -- output fsig to be copied.
+ </para>
+
+<para>
+ <emphasis>iolap</emphasis> -- size of the analysis overlap, defaults to <emphasis>isize</emphasis>/4.
+ </para>
+ <para>
+ <emphasis>iwinsize</emphasis> -- size of the analysis window, defaults to <emphasis>isize</emphasis>.
+ </para>
+ <para>
+ <emphasis>iwintype</emphasis> -- type of analysis window, defaults to 1, Hanning.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ <example>
+ <title>Example</title>
+ <programlisting>
+t1 init 1026
+...
+fsig1 <emphasis role="opc">tab2pvs</emphasis>t1</programlisting>
+aout pvsynth fsig1
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>October 2011 </member>
+ </simplelist>
+ </para>
+
+ <para>New plugin in version 5</para>
+ <para>October 2011.</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/tablecopy.xml b/opcodes/tablecopy.xml
index ffc5dc5..cb9d73b 100644
--- a/opcodes/tablecopy.xml
+++ b/opcodes/tablecopy.xml
@@ -53,6 +53,27 @@
This is primarily to change function tables quickly in a real-time situation.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tablecopy opcode. It uses the file <ulink url="examples/tablecopy.csd"><citetitle>tablecopy.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tablecopy opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tablecopy.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include a lines like these:
+<screen>
+i1 5.00000
+i1 3.00000
+i1 2.00000
+i1 4.00000
+i1 7.00000
+i1 6.00000
+i1 7.00000</screen>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/tablefilter.xml b/opcodes/tablefilter.xml
index 9cd9b96..5ae083d 100644
--- a/opcodes/tablefilter.xml
+++ b/opcodes/tablefilter.xml
@@ -1,105 +1,98 @@
-
-<refentry id="tablefilter">
-<indexterm id="IndexTablefilter"><primary>tablefilter</primary></indexterm>
- <refentryinfo><title>Table Control:Models and Emulations</title></refentryinfo>
- <refmeta>
- <refentrytitle>tablefilter</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>tablefilter</refname>
- <refpurpose>
- Filters a source table and writes result into a destination table.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- This opcode can be used in order to filter values from function
- tables following certain algorithms. The filtered output is
- written into a destination table and the number of elements that
- have passed the filter is returned.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>knumpassed <command>tablefilter</command> kouttable, kintatble, kmode, kparam</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
-
- <para>
- <emphasis>knumpassed</emphasis> -- the number of elements that
- have passed the filter.
- </para>
-
- <para>
- <emphasis>kouttable</emphasis> -- the number of the table containing the values that have passed.
- </para>
-
- <para>
- <emphasis>kintatble</emphasis> -- the number of the table used as filter input.
- </para>
-
- <para>
- <emphasis>kmode</emphasis> -- mode of the filter:
- <itemizedlist>
- <listitem>
- 1 -- tests the weight of the denominators of the fractions
- in the source table. Letting pass only vaules from the
- source that are less heavy than the weight of the threshold.
- </listitem>
- <listitem>
- 2 -- tests the weight of the denominators of the fractions
- in the source table. Letting pass only vaules from the
- source that are heavier than or equal to the weight of the
- threshold.
- </listitem>
- </itemizedlist>
- </para>
-
- <para>
- <emphasis>kparam</emphasis> -- integer threshold parameter for
- the filter. It means that denominators whose weights are heavier
- than the weight of this threshold are not passed through the
- filter. The weight of an integer is calculated using Clarence
- Barlow's function of indigestibility of a number. According to
- this function, higher prime numbers contribute to an increased
- weight of any natural integer they divide. The order of the
- first 16 integers according to their indigestibility is: 1, 2,
- 4, 3, 8, 6, 16, 12, 9, 5, 10, 15, 7, 14
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the tablefilter opcode. It uses the file <ulink url="examples/tablefilter.csd"><citetitle>tablefilter.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the tablefilter opcode.</title>
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/tablefilter.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: Georg Boenn </member>
- <member>University of Glamorgan, UK</member>
- </simplelist>
- </para>
-
- <para>New in Csound version 5.13</para>
- </refsect1>
-</refentry>
+
+<refentry id="tablefilter">
+<indexterm id="IndexTablefilter"><primary>tablefilter</primary></indexterm>
+ <refentryinfo><title>Table Control:Read/Write Opreations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>tablefilter</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>tablefilter</refname>
+ <refpurpose>
+ Filters a source table and writes result into a destination table.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ This opcode can be used in order to filter values from function
+ tables following certain algorithms. The filtered output is
+ written into a destination table and the number of elements that
+ have passed the filter is returned.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>knumpassed <command>tablefilter</command> kouttable, kintatble, kmode, kparam</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>knumpassed</emphasis> -- the number of elements that
+ have passed the filter.
+ </para>
+
+ <para>
+ <emphasis>kouttable</emphasis> -- the number of the table containing the values that have passed.
+ </para>
+
+ <para>
+ <emphasis>kintatble</emphasis> -- the number of the table used as filter input.
+ </para>
+
+ <para>
+ <emphasis>kmode</emphasis> -- mode of the filter:
+ <itemizedlist>
+ <listitem>
+ 1 -- tests the weight of the denominators of the fractions
+ in the source table. Letting pass only values from the
+ source that are less heavy than the weight of the threshold.
+ </listitem>
+ <listitem>
+ 2 -- tests the weight of the denominators of the fractions
+ in the source table. Letting pass only values from the
+ source that are heavier than or equal to the weight of the
+ threshold.
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ <emphasis>kparam</emphasis> -- integer threshold parameter for
+ the filter. It means that denominators whose weights are heavier
+ than the weight of this threshold are not passed through the
+ filter. The weight of an integer is calculated using Clarence
+ Barlow's function of indigestibility of a number. According to
+ this function, higher prime numbers contribute to an increased
+ weight of any natural integer they divide. The order of the
+ first 16 integers according to their indigestibility is: 1, 2,
+ 4, 3, 8, 6, 16, 12, 9, 5, 10, 15, 7, 14.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tablefilter opcode. It uses the file <ulink url="examples/tablefilter.csd"><citetitle>tablefilter.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tablefilter opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tablefilter.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Georg Boenn </member>
+ <member>University of Glamorgan, UK</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 5.13</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/tablefilteri.xml b/opcodes/tablefilteri.xml
index 8906c55..e363d11 100644
--- a/opcodes/tablefilteri.xml
+++ b/opcodes/tablefilteri.xml
@@ -1,105 +1,98 @@
-
-<refentry id="tablefilteri">
-<indexterm id="IndexTablefilteri"><primary>tablefilteri</primary></indexterm>
- <refentryinfo><title>Table Control:Models and Emulations</title></refentryinfo>
- <refmeta>
- <refentrytitle>tablefilteri</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>tablefilteri</refname>
- <refpurpose>
- Filters a source table and writes result into a destination table.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- This opcode can be used in order to filter values from function
- tables following certain algorithms. The filtered output is
- written into a destination table and the number of elements that
- have passed the filter is returned.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>inumpassed <command>tablefilteri</command> iouttable, iintatble, imode, iparam</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
-
- <para>
- <emphasis>inumpassed</emphasis> -- the number of elements that
- have passed the filter.
- </para>
-
- <para>
- <emphasis>iouttable</emphasis> -- the number of the table containing the values that have passed.
- </para>
-
- <para>
- <emphasis>iintatble</emphasis> -- the number of the table used as filter input.
- </para>
-
- <para>
- <emphasis>imode</emphasis> -- mode of the filter:
- <itemizedlist>
- <listitem>
- 1 -- tests the weight of the denominators of the fractions
- in the source table. Letting pass only vaules from the
- source that are less heavy than the weight of the threshold.
- </listitem>
- <listitem>
- 2 -- tests the weight of the denominators of the fractions
- in the source table. Letting pass only vaules from the
- source that are heavier than or equal to the weight of the
- threshold.
- </listitem>
- </itemizedlist>
- </para>
-
- <para>
- <emphasis>iparam</emphasis> -- integer threshold parameter for
- the filter. It means that denominators whose weights are heavier
- than the weight of this threshold are not passed through the
- filter. The weight of an integer is calculated using Clarence
- Barlow's function of indigestibility of a number. According to
- this function, higher prime numbers contribute to an increased
- weight of any natural integer they divide. The order of the
- first 16 integers according to their indigestibility is: 1, 2,
- 4, 3, 8, 6, 16, 12, 9, 5, 10, 15, 7, 14
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the tablefilteri opcode. It uses the file <ulink url="examples/tablefilter.csd"><citetitle>tablefilter.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the tablefilter opcode.</title>
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/tablefilter.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: Georg Boenn </member>
- <member>University of Glamorgan, UK</member>
- </simplelist>
- </para>
-
- <para>New in Csound version 5.13</para>
- </refsect1>
-</refentry>
+
+<refentry id="tablefilteri">
+<indexterm id="IndexTablefilteri"><primary>tablefilteri</primary></indexterm>
+ <refentryinfo><title>Table Control:Read/Write Opreations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>tablefilteri</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>tablefilteri</refname>
+ <refpurpose>
+ Filters a source table and writes result into a destination table.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ This opcode can be used in order to filter values from function
+ tables following certain algorithms. The filtered output is
+ written into a destination table and the number of elements that
+ have passed the filter is returned.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>inumpassed <command>tablefilteri</command> iouttable, iintatble, imode, iparam</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>inumpassed</emphasis> -- the number of elements that
+ have passed the filter.
+ </para>
+
+ <para>
+ <emphasis>iouttable</emphasis> -- the number of the table containing the values that have passed.
+ </para>
+
+ <para>
+ <emphasis>iintatble</emphasis> -- the number of the table used as filter input.
+ </para>
+
+ <para>
+ <emphasis>imode</emphasis> -- mode of the filter:
+ <itemizedlist>
+ <listitem>
+ 1 -- tests the weight of the denominators of the fractions
+ in the source table. Letting pass only values from the
+ source that are less heavy than the weight of the threshold.
+ </listitem>
+ <listitem>
+ 2 -- tests the weight of the denominators of the fractions
+ in the source table. Letting pass only values from the
+ source that are heavier than or equal to the weight of the
+ threshold.
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ <emphasis>iparam</emphasis> -- integer threshold parameter for
+ the filter. It means that denominators whose weights are heavier
+ than the weight of this threshold are not passed through the
+ filter. The weight of an integer is calculated using Clarence
+ Barlow's function of indigestibility of a number. According to
+ this function, higher prime numbers contribute to an increased
+ weight of any natural integer they divide. The order of the
+ first 16 integers according to their indigestibility is: 1, 2,
+ 4, 3, 8, 6, 16, 12, 9, 5, 10, 15, 7, 14.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tablefilteri opcode. It uses the file <ulink url="examples/tablefilter.csd"><citetitle>tablefilter.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tablefilteri opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tablefilter.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Georg Boenn </member>
+ <member>University of Glamorgan, UK</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 5.13</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/tablei.xml b/opcodes/tablei.xml
index e2914d5..7f766a6 100644
--- a/opcodes/tablei.xml
+++ b/opcodes/tablei.xml
@@ -67,6 +67,18 @@
<emphasis>tablei</emphasis> is a interpolating unit in which the fractional part of index is used to interpolate between adjacent table entries. The smoothness gained by interpolation is at some small cost in execution time (see also <link linkend="oscili"><citetitle>oscili</citetitle></link>, etc.), but the interpolating and non-interpolating units are otherwise interchangeable. Note that when <emphasis>tablei</emphasis> uses a periodic index whose modulo <emphasis>n</emphasis> is less than the power of 2 table length, the interpolation process requires that there be an (<emphasis>n</emphasis> + 1)th table value that is a repeat of the 1st (see <link linkend="f"><citetitle>f Statement</citetitle></link> in score).
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tablei opcode. It uses the file <ulink url="examples/tablei.csd"><citetitle>tablei.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tablei opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tablei.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
@@ -77,5 +89,6 @@
<link linkend="oscil1i"><citetitle>oscil1i</citetitle></link>,
<link linkend="osciln"><citetitle>osciln</citetitle></link>
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue12/genInstruments.html"><citetitle>http://www.csounds.com/journal/issue12/genInstruments.html</citetitle></ulink> , written by Jacob Joaquin </para>
</refsect1>
</refentry>
diff --git a/opcodes/tableikt.xml b/opcodes/tableikt.xml
index 26bfbcb..f45801c 100644
--- a/opcodes/tableikt.xml
+++ b/opcodes/tableikt.xml
@@ -69,6 +69,27 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tableikt opcode. It uses the file <ulink url="examples/tableikt.csd"><citetitle>tableikt.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the tableikt opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tableikt.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+play table no: 8
+play table no: 7
+play table no: 6
+.....
+play table no: 2
+play table no: 1</screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="tablekt"><citetitle>tablekt</citetitle></link>
diff --git a/opcodes/tableimix.xml b/opcodes/tableimix.xml
index 59c4a06..fbc04bc 100644
--- a/opcodes/tableimix.xml
+++ b/opcodes/tableimix.xml
@@ -78,6 +78,18 @@
The tables do not need to be the same length - wrapping occurs individually for each table.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tableimix opcode. It uses the file <ulink url="examples/tableimix.csd"><citetitle>tableimix.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tableimix opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tableimix.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/tableiw.xml b/opcodes/tableiw.xml
index 669a31b..9667ca7 100644
--- a/opcodes/tableiw.xml
+++ b/opcodes/tableiw.xml
@@ -145,13 +145,26 @@
</para>
</refsect2>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tableiw opcode. It uses the file <ulink url="examples/tableiw.csd"><citetitle>tableiw.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tableiw opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tableiw.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
<link linkend="tablew"><citetitle>tablew</citetitle></link>,
<link linkend="tablewkt"><citetitle>tablewkt</citetitle></link>
</para>
+ <para> More information on this opcode: <ulink url="http://www.csounds.com/journal/issue12/genInstruments.html"><citetitle>http://www.csounds.com/journal/issue12/genInstruments.html</citetitle></ulink> , written by Jacob Joaquin </para>
</refsect1>
<refsect1>
diff --git a/opcodes/tablekt.xml b/opcodes/tablekt.xml
index 07300d8..9d453e1 100644
--- a/opcodes/tablekt.xml
+++ b/opcodes/tablekt.xml
@@ -69,12 +69,33 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tablekt opcode. It uses the file <ulink url="examples/tablekt.csd"><citetitle>tablekt.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the tablekt opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tablekt.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+ i1 2.00000
+ i1 1.00000
+ i1 2.00000
+ i1 1.00000
+....
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="tableikt"><citetitle>tableikt</citetitle></link>
</para>
</refsect1>
-
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/opcodes/tablemix.xml b/opcodes/tablemix.xml
index e931c16..411e4d9 100644
--- a/opcodes/tablemix.xml
+++ b/opcodes/tablemix.xml
@@ -77,6 +77,18 @@
The tables do not need to be the same length - wrapping occurs individually for each table.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tablemix opcode. It uses the file <ulink url="examples/tablemix.csd"><citetitle>tablemix.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tablemix opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tablemix.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/tableng.xml b/opcodes/tableng.xml
index 127d140..e3af21e 100644
--- a/opcodes/tableng.xml
+++ b/opcodes/tableng.xml
@@ -55,19 +55,15 @@
<title>Examples</title>
<para>
Here is an example of the tableng opcode. It uses the file <ulink url="examples/tableng.csd"><citetitle>tableng.csd</citetitle></ulink>.
-
<example>
<title>Example of the tableng opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/tableng.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- The table is 16,384 samples long. So its output should include a line like this:
+ Its output should include a line like this:
<screen>
-instr 1: ilen = 16384.000
+instr 1: isize = 115506.000
</screen>
</para>
</refsect1>
@@ -81,6 +77,5 @@ instr 1: ilen = 16384.000
<member>May 1997</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/tableseg.xml b/opcodes/tableseg.xml
index f9cff3c..24b0c2f 100644
--- a/opcodes/tableseg.xml
+++ b/opcodes/tableseg.xml
@@ -41,6 +41,18 @@
<emphasis>idur1</emphasis>, <emphasis>idur2</emphasis>, etc. -- durations during which interpolation from one table to the next will take place.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tableseg opcode. It uses the file <ulink url="examples/tableseg.csd"><citetitle>tableseg.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tableseg opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tableseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/tablexseg.xml b/opcodes/tablexseg.xml
index f2ffad1..0a6e9b5 100644
--- a/opcodes/tablexseg.xml
+++ b/opcodes/tablexseg.xml
@@ -37,6 +37,18 @@
<emphasis>idur1</emphasis>, <emphasis>idur2</emphasis>, etc. -- durations during which interpolation from one table to the next will take place.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tablexseg opcode. It uses the file <ulink url="examples/tablexseg.csd"><citetitle>tablexseg.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tablexseg opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tablexseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/tabmorph.xml b/opcodes/tabmorph.xml
index 2b23af2..8ea1e38 100644
--- a/opcodes/tabmorph.xml
+++ b/opcodes/tabmorph.xml
@@ -56,18 +56,19 @@
<para>
<emphasis>tabmorph</emphasis> acts similarly to the <link linkend="table"><citetitle>table</citetitle></link> opcode, that is, without using interpolation. This means that it truncates the fractional part of the <emphasis>kindex</emphasis> argument. Anyway, fractional parts of <emphasis>ktabnum1</emphasis> and <emphasis>ktabnum2</emphasis> are significant, resulting in linear interpolation between the same element of two adjacent subsequent tables.</para>
</refsect1>
-<!-- <refsect1>
+
+ <refsect1>
<title>Examples</title>
<para>
Here is an example of the tabmorph opcode. It uses the file <ulink url="examples/tabmorph.csd"><citetitle>tabmorph.csd</citetitle></ulink>.
-
<example>
<title>Example of the tabmorph opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/tabmorph.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
- </refsect1>-->
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/tabmorpha.xml b/opcodes/tabmorpha.xml
index dc4dc1d..5472b45 100644
--- a/opcodes/tabmorpha.xml
+++ b/opcodes/tabmorpha.xml
@@ -57,18 +57,19 @@
<emphasis>tabmorpha</emphasis> is the audio-rate version of <link linkend="tabmorphi"><citetitle>tabmorphi</citetitle></link> (it uses interpolation). All input arguments work at a-rate.
</para>
</refsect1>
-<!-- <refsect1>
+
+ <refsect1>
<title>Examples</title>
<para>
Here is an example of the tabmorpha opcode. It uses the file <ulink url="examples/tabmorpha.csd"><citetitle>tabmorpha.csd</citetitle></ulink>.
-
<example>
<title>Example of the tabmorpha opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/tabmorpha.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
- </refsect1>-->
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/tabmorphak.xml b/opcodes/tabmorphak.xml
index b6d1e4b..24a6217 100644
--- a/opcodes/tabmorphak.xml
+++ b/opcodes/tabmorphak.xml
@@ -57,18 +57,19 @@
<emphasis>tabmorphak</emphasis> works at a-rate, but kweightpoint, ktabnum1 and ktabnum2 are working at k-rate, making it more efficient than <link linkend="tabmorpha"><citetitle>tabmorpha</citetitle></link>, since there are less calculations. Except the rate of these three arguments, it is identical to <link linkend="tabmorpha"><citetitle>tabmorpha</citetitle></link>.
</para>
</refsect1>
-<!-- <refsect1>
+
+ <refsect1>
<title>Examples</title>
<para>
Here is an example of the tabmorphak opcode. It uses the file <ulink url="examples/tabmorphak.csd"><citetitle>tabmorphak.csd</citetitle></ulink>.
-
<example>
<title>Example of the tabmorphak opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/tabmorphak.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
- </refsect1>-->
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/tabmorphi.xml b/opcodes/tabmorphi.xml
index c88c309..55223a7 100644
--- a/opcodes/tabmorphi.xml
+++ b/opcodes/tabmorphi.xml
@@ -57,18 +57,19 @@
<emphasis>tabmorphi</emphasis> is identical to <link linkend="tabmorph"><citetitle>tabmorph</citetitle></link>, but it performs linear interpolation for non-integer values of <emphasis>kindex</emphasis>, much like <link linkend="tablei"><citetitle>tablei</citetitle></link>.
</para>
</refsect1>
-<!-- <refsect1>
+
+ <refsect1>
<title>Examples</title>
<para>
Here is an example of the tabmorphi opcode. It uses the file <ulink url="examples/tabmorphi.csd"><citetitle>tabmorphi.csd</citetitle></ulink>.
-
<example>
<title>Example of the tabmorphi opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/tabmorphi.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
- </refsect1>-->
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/tabsum.xml b/opcodes/tabsum.xml
index 251d82e..19c673e 100644
--- a/opcodes/tabsum.xml
+++ b/opcodes/tabsum.xml
@@ -45,6 +45,18 @@
</para>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tabsum opcode. It uses the file <ulink url="examples/tabsum.csd"><citetitle>tabsum.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tabsum opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tabsum.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/tanh.xml b/opcodes/tanh.xml
index 1a6d651..c38e452 100644
--- a/opcodes/tanh.xml
+++ b/opcodes/tanh.xml
@@ -1,7 +1,7 @@
-
+
<refentry id="tanh">
<indexterm id="IndexTanh"><primary>tanh</primary></indexterm>
- <refentryinfo><title>Mathematical Operations:Trigonometric Functions</title></refentryinfo>
+ <refentryinfo><title>Mathematical Operations:Trigonometric Functions</title></refentryinfo>
<refmeta>
<refentrytitle>tanh</refentrytitle>
</refmeta>
@@ -19,7 +19,7 @@
<refsect1>
<title>Description</title>
<para>
- Returns the hyperbolic tangent of <emphasis>x</emphasis> (<emphasis>x</emphasis> in radians).
+ Returns the hyperbolic tangent of <emphasis>x</emphasis>.
</para>
</refsect1>
@@ -31,19 +31,23 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the tanh opcode. It uses the file <ulink url="examples/tanh.csd"><citetitle>tanh.csd</citetitle></ulink>.
+ Here is an example of the tanh opcode. It uses the file <ulink
+ url="examples/tanh.csd"><citetitle>tanh.csd</citetitle></ulink>.
<example>
<title>Example of the tanh opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/tanh.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <para>See the sections <link
+ linkend="UsingRealTime"><citetitle>Real-time
+ Audio</citetitle></link> and <link
+ linkend="CommandFlags"><citetitle>Command Line
+ Flags</citetitle></link> for more information on using command
+ line flags.</para>
+ <xi:include href="examples-xml/tanh.csd.xml"
+ xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include a line like this:
- <screen>instr 1: i1 = 0.762</screen>
</para>
</refsect1>
@@ -65,6 +69,5 @@
<title>Credits</title>
<para>Author: &namejohn;</para>
<para>New in version 3.47</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/taninv2.xml b/opcodes/taninv2.xml
index 46640bc..14d706c 100644
--- a/opcodes/taninv2.xml
+++ b/opcodes/taninv2.xml
@@ -30,6 +30,7 @@
<synopsis>ires <command>taninv2</command> iy, ix</synopsis>
<synopsis>kres <command>taninv2</command> ky, kx</synopsis>
+ <synopsis>...<command>taninv2</command>(ky, kx)... (no rate restriction)</synopsis>
<para>
Returns the arctangent of <emphasis>iy/ix</emphasis>, <emphasis>ky/kx</emphasis>, or <emphasis>ay/ax</emphasis>. If <emphasis>y</emphasis> is zero, <emphasis>taninv2</emphasis> returns zero regardless of the value of <emphasis>x</emphasis>. If <emphasis>x</emphasis> is zero, the return value is:
@@ -99,5 +100,6 @@
<para>New in Csound version 3.48</para>
<para>Corrected on May 2002, thanks to &nameistvan;.</para>
+ <para>Available as a function in version 6.00</para>
</refsect1>
</refentry>
diff --git a/opcodes/temposcal.xml b/opcodes/temposcal.xml
index f313b82..9a228ef 100644
--- a/opcodes/temposcal.xml
+++ b/opcodes/temposcal.xml
@@ -1,115 +1,95 @@
-<refentry id="temposcal">
-<indexterm id="IndexTemposcal"><primary>temposcal</primary></indexterm>
- <refentryinfo><title>Spectral processing: temposcal</title></refentryinfo>
- <refmeta>
- <refentrytitle>temposcal</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>temposcal</refname>
- <refpurpose>
-Phase-locked vocoder processing with onset detection/processing, 'tempo-scaling'.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
-<emphasis>temposcal</emphasis> implements phase-locked vocoder processing using function tables
-containing sampled-sound sources, with <link linkend="GEN01"><citetitle>GEN01</citetitle></link>, and
-<emphasis>temposcal</emphasis> will accept deferred allocation tables.
- </para>
- <para>
-This opcode allows for time and frequency-independent scaling. Time is advanced internally, but controlled by a tempo scaling parameter; when an onset is detected, timescaling is momentarily stopped to avoid smearing of attacks. The quality of the effect is generally improved with phase locking switched on.
- </para>
- <para>
-<emphasis>temposcal</emphasis> will also scale pitch, independently of frequency, using a transposition factor (k-rate).
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>asig <command>temposcal</command> ktimescal,kamp,kpitch,ktab,klock[,ifftsize, idecim, ithresh]
- </synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifftsize</emphasis> -- FFT size (power-of-two), defaults to 2048.
- </para>
- <para>
- <emphasis>idecim</emphasis> -- decimation, defaults to 4 (meaning hopsize = fftsize/4)
- </para>
- <para>
- <emphasis>idbthresh</emphasis> -- threshold based on dB power spectrum ratio between two successive windows. A detected ratio above it will cancel timescaling momentarily, to avoid smearing (defaults to 1)
- </para>
-
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>ktimescal</emphasis> -- timescaling ratio, &lt; 1 stretch, > 1 contract.
- </para>
- <para>
- <emphasis>kamp</emphasis> -- amplitude scaling
- </para>
- <para>
- <emphasis>kpitch</emphasis> -- grain pitch scaling (1=normal pitch, &lt; 1 lower, > 1 higher; negative, backwards)
- </para>
-
- <para>
- <emphasis>klock</emphasis> -- 0 or 1, to switch phase-locking on/off
- </para>
- <para>
- <emphasis>ktab</emphasis> -- source signal function table. Deferred-allocation tables (see
- <link linkend="GEN01"><citetitle>GEN01</citetitle></link>) are accepted, but the opcode
- expects a mono source. Tables can be switched at k-rate.
- </para>
-
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <para>
- <example>
- <title>Example</title>
- <programlisting>
-
-idur = p3
-ilock = p4
-itab = 1
-ipitch = 1
-iamp = 0.8
-ktime linseg 0.3, p3/2, 0.8, p3/2, 0.3
-
-a1 temposcal ktime,iamp,ipitch,itab,ilock
-
- out a1
-
-
- </programlisting>
- </example>
-
- </para>
-
-
- </refsect1>
-
-
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: &namevictor;</member>
- <member>February 2010</member>
- </simplelist>
- </para>
-
- <para>New plugin in version 5.13</para>
- <para>February 2005.</para>
- </refsect1>
-</refentry>
+<refentry id="temposcal">
+<indexterm id="IndexTemposcal"><primary>temposcal</primary></indexterm>
+ <refentryinfo><title>Spectral Processing:Other</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>temposcal</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>temposcal</refname>
+ <refpurpose>
+ Phase-locked vocoder processing with onset detection/processing, 'tempo-scaling'.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ <emphasis>temposcal</emphasis> implements phase-locked vocoder processing using function tables
+ containing sampled-sound sources, with <link linkend="GEN01"><citetitle>GEN01</citetitle></link>, and
+ <emphasis>temposcal</emphasis> will accept deferred allocation tables.
+ </para>
+ <para>
+ This opcode allows for time and frequency-independent scaling. Time is advanced internally, but controlled by a tempo scaling parameter; when an onset is detected, timescaling is momentarily stopped to avoid smearing of attacks. The quality of the effect is generally improved with phase locking switched on.
+ </para>
+ <para>
+ <emphasis>temposcal</emphasis> will also scale pitch, independently of frequency, using a transposition factor (k-rate).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>asig <command>temposcal</command> ktimescal, kamp, kpitch, ktab, klock [,ifftsize, idecim, ithresh]
+ </synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifftsize</emphasis> -- FFT size (power-of-two), defaults to 2048.
+ </para>
+ <para>
+ <emphasis>idecim</emphasis> -- decimation, defaults to 4 (meaning hopsize = fftsize/4)
+ </para>
+ <para>
+ <emphasis>idbthresh</emphasis> -- threshold based on dB power spectrum ratio between two successive windows. A detected ratio above it will cancel timescaling momentarily, to avoid smearing (defaults to 1)
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>ktimescal</emphasis> -- timescaling ratio, &lt; 1 stretch, > 1 contract.
+ </para>
+ <para>
+ <emphasis>kamp</emphasis> -- amplitude scaling
+ </para>
+ <para>
+ <emphasis>kpitch</emphasis> -- grain pitch scaling (1=normal pitch, &lt; 1 lower, > 1 higher; negative, backwards)
+ </para>
+ <para>
+ <emphasis>klock</emphasis> -- 0 or 1, to switch phase-locking on/off
+ </para>
+ <para>
+ <emphasis>ktab</emphasis> -- source signal function table. Deferred-allocation tables (see
+ <link linkend="GEN01"><citetitle>GEN01</citetitle></link>) are accepted, but the opcode
+ expects a mono source. Tables can be switched at k-rate.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the temposcal opcode. It uses the file <ulink url="examples/temposcal.csd"><citetitle>temposcal.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the temposcal opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/temposcal.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namevictor;</member>
+ <member>February 2010</member>
+ </simplelist>
+ </para>
+
+ <para>New plugin in version 5.13</para>
+ <para>February 2005.</para>
+ </refsect1>
+</refentry>
+
diff --git a/opcodes/tigoto.xml b/opcodes/tigoto.xml
index b5ff366..c4a5e3a 100644
--- a/opcodes/tigoto.xml
+++ b/opcodes/tigoto.xml
@@ -31,6 +31,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tigoto opcode. It uses the file <ulink url="examples/tigoto.csd"><citetitle>tigoto.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tigoto opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tigoto.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="cigoto"><citetitle>cigoto</citetitle></link>,
@@ -39,6 +51,7 @@
<link linkend="igoto"><citetitle>igoto</citetitle></link>,
<link linkend="kgoto"><citetitle>kgoto</citetitle></link>,
<link linkend="timout"><citetitle>timout</citetitle></link>
+ <para> More on this opcode: <ulink url="http://www.csounds.com/journal/2005fall/tiedNotes.html"><citetitle>http://www.csounds.com/journal/2005fall/tiedNotes.html</citetitle></ulink> , written by Steven Yi </para>
</para>
</refsect1>
diff --git a/opcodes/timedseq.xml b/opcodes/timedseq.xml
index 037e300..cd6ca5a 100644
--- a/opcodes/timedseq.xml
+++ b/opcodes/timedseq.xml
@@ -102,10 +102,10 @@
the same way of pvoc or lpread. When ktimpnt crosses the action time
of a note, a trigger signal is sent to ktrig output argument, and kp1,
kp2,...kpN arguments are updated with the values of that note. This
- information can then be used with schedk or schedkwhen to actually
+ information can then be used with schedkwhen to actually
activate note events. Notice that kp1,...kpn data can be further
processed (for example delayed with delayk, transposed, etc.) before
- feeding schedk or schedkwhen.
+ feeding schedkwhen.
</para>
<para>
<emphasis>ktimpnt</emphasis> can be controlled by a linear signal, for example:
@@ -113,7 +113,7 @@
<programlisting>
ktimpnt <emphasis role="opc">line</emphasis> 0, p3, 3 <emphasis role="comment">; original sequence duration was 3 secs</emphasis>
ktrig <emphasis role="opc">timedseq</emphasis> ktimpnt, 1, kp1, kp2, kp3, kp4, kp5
- <emphasis role="opc">schedk</emphasis> ktrig, 105, 2, 0, kp3, kp4, kp5</programlisting>
+ <emphasis role="opc">schedkwhen</emphasis> ktrig, 105, 2, 0, kp3, kp4, kp5</programlisting>
<para>
in this case the complete sequence (with original duration of 3
seconds) will be played in <emphasis>p3</emphasis> seconds.
@@ -124,7 +124,7 @@ ktrig <emphasis role="opc">timedseq</emphasis> ktimpnt, 1, kp1, kp2, kp3, kp4,
kphs <emphasis role="opc">phasor</emphasis> 1<emphasis role="op">/</emphasis>3
ktimpnt <emphasis role="op">=</emphasis> kphs <emphasis role="op">*</emphasis> 3
ktrig <emphasis role="opc">timedseq</emphasis> ktimpnt ,1 ,kp1, kp2, kp3, kp4, kp5
- <emphasis role="opc">schedk</emphasis> ktrig, 105, 2, 0, kp3, kp4, kp5</programlisting>
+ <emphasis role="opc">schedkwhen</emphasis> ktrig, 105, 2, 0, kp3, kp4, kp5</programlisting>
</para>
<para>
Obviously you can play only a fragment of the sequence, read it
@@ -138,7 +138,7 @@ ktrig <emphasis role="opc">timedseq</emphasis> ktimpnt ,1 ,kp1, kp2, kp3, kp4,
<listitem>
<para>You can't have two notes exactly starting with the same action
time; actually at least a k-cycle should separate timing of two
- notes (otherwise the schedk mechanism eats one of them).</para>
+ notes (otherwise the schedkwhen mechanism eats one of them).</para>
</listitem>
<listitem>
<para>All notes of the sequence must have the same number of p-fields
@@ -151,6 +151,18 @@ ktrig <emphasis role="opc">timedseq</emphasis> ktimpnt ,1 ,kp1, kp2, kp3, kp4,
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is a complete example of the timedseq opcode. It uses the file <ulink url="examples/timedseq.csd"><citetitle>timedseq.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the timedseq opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/timedseq.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="GEN02"><citetitle>GEN02</citetitle></link>,
diff --git a/opcodes/timeinsts.xml b/opcodes/timeinsts.xml
index fdbb9d1..05d668f 100644
--- a/opcodes/timeinsts.xml
+++ b/opcodes/timeinsts.xml
@@ -47,24 +47,11 @@
<title>Examples</title>
<para>
Here is an example of the timeinsts opcode. It uses the file <ulink url="examples/timeinsts.csd"><citetitle>timeinsts.csd</citetitle></ulink>.
-
<example>
<title>Example of the timeinsts opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/timeinsts.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include lines like this:
- <screen>
-k1 = 0.000227 seconds
-k1 = 0.500000 seconds
-k1 = 1.000000 seconds
-k1 = 1.500000 seconds
-k1 = 2.000000 seconds
- </screen>
</para>
</refsect1>
@@ -84,6 +71,5 @@ k1 = 2.000000 seconds
<member>May 1997</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/times.xml b/opcodes/times.xml
index d24b3d6..c700e2a 100644
--- a/opcodes/times.xml
+++ b/opcodes/times.xml
@@ -48,7 +48,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the times opcode. It uses the file <ulink url="examples/times.csd"><citetitle>times.csd</citetitle></ulink>.
+ Here is an example of the times opcode. It uses the file <ulink url="examples/times_complex.csd"><citetitle>times_complex.csd</citetitle></ulink>.
<example>
<title>Example of the times opcode.</title>
@@ -56,16 +56,21 @@
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/times.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <xi:include href="examples-xml/times_complex.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- Its output should include lines like this:
+ Its output should include lines like these:
<screen>
-k1 = 0.000227 seconds
-k1 = 0.500000 seconds
-k1 = 1.000000 seconds
-k1 = 1.500000 seconds
-k1 = 2.000000 seconds
+new alloc for instr again:
+instance = 1, start = 0.000000, duration = 0.650439
+new alloc for instr fx_processor:
+instance = 2, start = 0.650884, duration = 0.411043
+new alloc for instr fx_processor:
+instance = 3, start = 1.061587, duration = 0.231085
+new alloc for instr fx_processor:
+instance = 4, start = 1.292336, duration = 0.543473
+new alloc for instr fx_processor:
+instance = 5, start = 1.835828, duration = 1.777097
</screen>
</para>
</refsect1>
@@ -86,6 +91,5 @@ k1 = 2.000000 seconds
<member>May 1997</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/timout.xml b/opcodes/timout.xml
index 6107d54..e7fde0b 100644
--- a/opcodes/timout.xml
+++ b/opcodes/timout.xml
@@ -31,6 +31,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the timout opcode. It uses the file <ulink url="examples/timout.csd"><citetitle>timout.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the timout opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/timout.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="goto"><citetitle>goto</citetitle></link>,
diff --git a/opcodes/tival.xml b/opcodes/tival.xml
index 3fa7293..5265e80 100644
--- a/opcodes/tival.xml
+++ b/opcodes/tival.xml
@@ -36,11 +36,24 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tival opcode. It uses the file <ulink url="examples/tival.csd"><citetitle>tival.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tival opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tival.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="assign"><citetitle>=</citetitle></link>,
<link linkend="divz"><citetitle>divz</citetitle></link>,
<link linkend="init"><citetitle>init</citetitle></link>
+ <para> More on this opcode: <ulink url="http://www.csounds.com/journal/2005fall/tiedNotes.html"><citetitle>http://www.csounds.com/journal/2005fall/tiedNotes.html</citetitle></ulink> , written by Steven Yi </para>
</para>
</refsect1>
</refentry>
diff --git a/opcodes/tlineto.xml b/opcodes/tlineto.xml
index 2a9337d..d8fa186 100644
--- a/opcodes/tlineto.xml
+++ b/opcodes/tlineto.xml
@@ -53,6 +53,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tlineto opcode. It uses the file <ulink url="examples/tlineto.csd"><citetitle>tlineto.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tlineto opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tlineto.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="lineto"><citetitle>lineto</citetitle></link>
diff --git a/opcodes/tone.xml b/opcodes/tone.xml
index 3d07c5e..4b7b523 100644
--- a/opcodes/tone.xml
+++ b/opcodes/tone.xml
@@ -81,6 +81,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tone opcode. It uses the file <ulink url="examples/tone.csd"><citetitle>tone.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tone opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tone.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="areson"><citetitle>areson</citetitle></link>,
diff --git a/opcodes/tonek.xml b/opcodes/tonek.xml
index 475beee..a8ea4aa 100644
--- a/opcodes/tonek.xml
+++ b/opcodes/tonek.xml
@@ -55,6 +55,18 @@ output is at control-rate rather than audio rate.
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tonek opcode. It uses the file <ulink url="examples/tonek.csd"><citetitle>tonek.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tonek opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tonek.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="areson"><citetitle>areson</citetitle></link>,
diff --git a/opcodes/tonex.xml b/opcodes/tonex.xml
index 390405d..86781ad 100644
--- a/opcodes/tonex.xml
+++ b/opcodes/tonex.xml
@@ -25,6 +25,7 @@
<refsect1>
<title>Syntax</title>
<synopsis>ares <command>tonex</command> asig, khp [, inumlayer] [, iskip]</synopsis>
+ <synopsis>ares <command>tonex</command> asig, ahp [, inumlayer] [, iskip]</synopsis>
</refsect1>
<refsect1>
@@ -45,7 +46,21 @@
</para>
<para>
- <emphasis>khp</emphasis> -- the response curve's half-power point. Half power is defined as peak power / root 2.
+ <emphasis>khp</emphasis>/<emphasis>ahp</emphasis> -- the
+ response curve's half-power point. Half power is defined as peak
+ power / root 2.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the tonex opcode. It uses the file <ulink url="examples/tonex.csd"><citetitle>tonex.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the tonex opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tonex.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
@@ -65,7 +80,8 @@
<member>Italy</member>
</simplelist>
</para>
-
<para>New in Csound version 3.49</para>
+ <para>Audio rate parameters introduced in version 6.02</para>
+ <para>October 2013.</para>
</refsect1>
</refentry>
diff --git a/opcodes/top.xml b/opcodes/top.xml
index f776572..b9f7166 100644
--- a/opcodes/top.xml
+++ b/opcodes/top.xml
@@ -1,3 +1,4 @@
+
<chapter id="OpcodesTop">
<title>Orchestra Opcodes and Operators</title>
@@ -19,6 +20,7 @@
&opcodessubtracts;
&opcodesdivides;
&opcodesassign;
+ &opcodesplusbecomes;
&opcodesequals;
&opcodesraises;
&opcodesopor;
@@ -30,35 +32,24 @@
&opcodesopbitnot;
&opcodesopnonequiv;
&opcodesopa;
- &opcodesabetarand;
- &opcodesabexprnd;
&opcodesabs;
- &opcodesacauchy;
&opcodesactive;
&opcodesadsr;
&opcodesadsyn;
&opcodesadsynt;
&opcodesadsynt2;
- &opcodesaexprand;
&opcodesaftouch;
- &opcodesagauss;
- &opcodesagogobel;
- &opcodesalinrand;
&opcodesalpass;
&opcodesalwayson;
&opcodesampdb;
&opcodesampdbfs;
&opcodesampmidi;
&opcodesampmidid;
- &opcodesapcauchy;
- &opcodesapoisson;
- &opcodesapow;
&opcodesareson;
&opcodesaresonk;
&opcodesatone;
&opcodesatonek;
&opcodesatonex;
- &opcodesatrirand;
&opcodesATSadd;
&opcodesATSaddnz;
&opcodesATSbufread;
@@ -69,8 +60,6 @@
&opcodesATSreadnz;
&opcodesATSpartialtap;
&opcodesATSsinnoi;
- &opcodesaunirand;
- &opcodesaweibull;
&opcodesbabo;
&opcodesbalance;
&opcodesbamboo;
@@ -79,9 +68,7 @@
&opcodesbbcuts;
&opcodesbetarand;
&opcodesbexprnd;
- &opcodesbformenc;
&opcodesbformenc1;
- &opcodesbformdec;
&opcodesbformdec1;
&opcodesbinit;
&opcodesbiquad;
@@ -100,8 +87,11 @@
&opcodesbuzz;
&opcodescabasa;
&opcodescauchy;
+ &opcodescauchyi;
&opcodesceil;
+ &opcodescell;
&opcodescent;
+ &opcodescentroid;
&opcodescggoto;
&opcodeschanctrl;
&opcodeschanged;
@@ -124,17 +114,24 @@
&opcodesclear;
&opcodesclfilt;
&opcodesclip;
- &opcodesclock;
&opcodesclockoff;
&opcodesclockon;
&opcodescngoto;
&opcodescomb;
+ &opcodescombinv;
&opcodescompress;
+ &opcodescompileorc;
+ &opcodescompilestr;
&opcodesconnect;
&opcodescontrol;
&opcodesconvle;
&opcodesconvolve;
+ &opcodescopya2ftab;
+ &opcodescopyf2array;
&opcodescos;
+ &opcodescosseg;
+ &opcodescossegb;
+ &opcodescossegr;
&opcodescosh;
&opcodescosinv;
&opcodescps2pch;
@@ -147,6 +144,7 @@
&opcodescpstun;
&opcodescpstuni;
&opcodescpsxpch;
+ &opcodescpumeter;
&opcodescpuprc;
&opcodescross2;
&opcodescrossfm;
@@ -179,7 +177,6 @@
&opcodesdenorm;
&opcodesdiff;
&opcodesdiskgrain;
- &opcodesdiskin;
&opcodesdiskin2;
&opcodesdispfft;
&opcodesdisplay;
@@ -201,6 +198,8 @@
&opcodesdumpk3;
&opcodesdumpk4;
&opcodesduserrnd;
+ &opcodesdust;
+ &opcodesdust2;
&opcodeselse;
&opcodeselseif;
&opcodesendif;
@@ -210,6 +209,7 @@
&opcodesenvlpxr;
&opcodesephasor;
&opcodeseqfil;
+ &opcodesevalstr;
&opcodesevent;
&opcodesevent_i;
&opcodesexitnow;
@@ -217,9 +217,16 @@
&opcodesexpcurve;
&opcodesexpon;
&opcodesexprand;
+ &opcodesexprandi;
&opcodesexpseg;
&opcodesexpsega;
+ &opcodesexpsegb;
+ &opcodesexpsegba;
&opcodesexpsegr;
+ &opcodesfaustaudio;
+ &opcodesfaustcompile;
+ &opcodesfaustctl;
+ &opcodesfaustgen;
&opcodesfareylen;
&opcodesfareyleni;
&opcodesficlose;
@@ -229,6 +236,8 @@
&opcodesfilepeak;
&opcodesfilesr;
&opcodesfilevalid;
+ &opcodesfillarray;
+ &opcodesarray;
&opcodesfilter2;
&opcodesfin;
&opcodesfini;
@@ -343,6 +352,7 @@
&opcodesfprintks;
&opcodesfprints;
&opcodesfrac;
+ &opcodesfractalnoise;
&opcodesfreeverb;
&opcodesftchnls;
&opcodesftconv;
@@ -362,7 +372,14 @@
&opcodesgain;
&opcodesgainslider;
&opcodesgauss;
+ &opcodesgaussi;
+ &opcodesgausstrig;
&opcodesgbuzz;
+ &opcodesgenarray;
+ &opcodesgenarray_i;
+ &opcodesgendy;
+ &opcodesgendyc;
+ &opcodesgendyx;
&opcodesgetcfg;
&opcodesgogobel;
&opcodesgoto;
@@ -375,26 +392,19 @@
&opcodesharmon2;
&opcodeshilbert;
&opcodeshrtfer;
+ &opcodeshrtfearly;
&opcodeshrtfmove;
&opcodeshrtfmove2;
+ &opcodeshrtfreverb;
&opcodeshrtfstat;
&opcodeshsboscil;
&opcodeshvs1;
&opcodeshvs2;
&opcodeshvs3;
&opcodesopi;
- &opcodesibetarand;
- &opcodesibexprnd;
- &opcodesicauchy;
- &opcodesictrl14;
- &opcodesictrl21;
- &opcodesictrl7;
- &opcodesiexprand;
&opcodesif;
- &opcodesigauss;
&opcodesigoto;
&opcodesihold;
- &opcodesilinrand;
&opcodesimagecreate;
&opcodesimagefree;
&opcodesimagegetpixel;
@@ -402,9 +412,6 @@
&opcodesimagesave;
&opcodesimagesetpixel;
&opcodesimagesize;
- &opcodesimidic14;
- &opcodesimidic21;
- &opcodesimidic7;
&opcodesin;
&opcodesin32;
&opcodesinch;
@@ -415,6 +422,7 @@
&opcodesinitc7;
&opcodesinleta;
&opcodesinletk;
+ &opcodesinletkid;
&opcodesinletf;
&opcodesino;
&opcodesinq;
@@ -422,41 +430,14 @@
&opcodesins;
&opcodesinsremot;
&opcodesinsglobal;
- &opcodesinstimek;
- &opcodesinstimes;
&opcodesinstr;
+ &opcodesinstance;
&opcodesint;
&opcodesinteg;
&opcodesinterp;
&opcodesinvalue;
&opcodesinx;
&opcodesinz;
- &opcodesioff;
- &opcodesion;
- &opcodesiondur;
- &opcodesiondur2;
- &opcodesioutat;
- &opcodesioutc;
- &opcodesioutc14;
- &opcodesioutpat;
- &opcodesioutpb;
- &opcodesioutpc;
- &opcodesipcauchy;
- &opcodesipoisson;
- &opcodesipow;
- &opcodesis16b14;
- &opcodesis32b14;
- &opcodesislider16;
- &opcodesislider32;
- &opcodesislider64;
- &opcodesislider8;
- &opcodesitablecopy;
- &opcodesitablegpw;
- &opcodesitablemix;
- &opcodesitablew;
- &opcodesitrirand;
- &opcodesiunirand;
- &opcodesiweibull;
&opcodesjackoaudioin;
&opcodesjackoaudioinconnect;
@@ -474,41 +455,15 @@
&opcodesjacktransport;
&opcodesjitter;
&opcodesjitter2;
+ &opcodesjoystick;
&opcodesjspline;
&opcodesopk;
- &opcodeskbetarand;
- &opcodeskbexprnd;
- &opcodeskcauchy;
- &opcodeskdump;
- &opcodeskdump2;
- &opcodeskdump3;
- &opcodeskdump4;
- &opcodeskexprand;
- &opcodeskfilter2;
- &opcodeskgauss;
&opcodeskgoto;
- &opcodesklinrand;
- &opcodeskon;
- &opcodeskoutat;
- &opcodeskoutc;
- &opcodeskoutc14;
- &opcodeskoutpat;
- &opcodeskoutpb;
- &opcodeskoutpc;
- &opcodeskpcauchy;
- &opcodeskpoisson;
- &opcodeskpow;
+ &opcodeskill;
&opcodeskr;
- &opcodeskread;
- &opcodeskread2;
- &opcodeskread3;
- &opcodeskread4;
&opcodesksmps;
- &opcodesktableseg;
- &opcodesktrirand;
- &opcodeskunirand;
- &opcodeskweibull;
+ &opcodeslenarray;
&opcodeslfo;
&opcodeslimit;
<!-- &opcodeslinearalgebra; -->
@@ -518,11 +473,13 @@
&opcodeslineto;
&opcodeslinrand;
&opcodeslinseg;
+ &opcodeslinsegb;
&opcodeslinsegr;
&opcodeslocsend;
&opcodeslocsig;
&opcodeslog;
&opcodeslog10;
+ &opcodeslog2;
&opcodeslogbtwo;
&opcodeslogcurve;
&opcodesloop_ge;
@@ -557,11 +514,15 @@
&opcodeslpshold;
&opcodeslpsholdp;
&opcodeslpslot;
+ &opcodeslua_exec;
+ &opcodeslua_opdef;
+ &opcodeslua_opcall;
&opcodesmac;
&opcodesmaca;
&opcodesmadsr;
&opcodesmandel;
&opcodesmandol;
+ &opcodesmaparray;
&opcodesmarimba;
&opcodesmassign;
&opcodesmax;
@@ -570,11 +531,13 @@
&opcodesmaxaccum;
&opcodesmaxalloc;
&opcodesmax_k;
+ &opcodesmaxarray;
&opcodesmclock;
&opcodesmdelay;
&opcodesmedian;
&opcodesmediank;
&opcodesmetro;
+ &opcodesmidglobal;
&opcodesmidic14;
&opcodesmidic21;
&opcodesmidic7;
@@ -584,25 +547,26 @@
&opcodesmidictrl;
&opcodesmididefault;
&opcodesmidiin;
+ &opcodesmidifilestatus;
&opcodesmidinoteoff;
&opcodesmidinoteoncps;
&opcodesmidinoteonkey;
&opcodesmidinoteonoct;
&opcodesmidinoteonpch;
- &opcodesmidion;
&opcodesmidion2;
+ &opcodesmidion;
&opcodesmidiout;
&opcodesmidipitchbend;
&opcodesmidipolyaftertouch;
&opcodesmidiprogramchange;
&opcodesmiditempo;
&opcodesmidremot;
- &opcodesmidglobal;
&opcodesmin;
&opcodesminabs;
&opcodesminabsaccum;
&opcodesminaccum;
&opcodesmincer;
+ &opcodesminarray;
&opcodesmirror;
&opcodesmixersetlevel;
@@ -621,6 +585,7 @@
&opcodesmoogvcf2;
&opcodesmoscil;
&opcodesmp3in;
+ &opcodesmp3len;
&opcodesmpulse;
&opcodesmrtmsg;
&opcodesmultitap;
@@ -630,11 +595,12 @@
&opcodesnchnlsi;
&opcodesnestedap;
&opcodesnlfilt;
+ &opcodesnlfilt2;
&opcodesnoise;
&opcodesnoteoff;
&opcodesnoteon;
- &opcodesnoteondur;
&opcodesnoteondur2;
+ &opcodesnoteondur;
&opcodesnotnum;
&opcodesnreverb;
&opcodesnrpn;
@@ -648,14 +614,11 @@
&opcodesoctmidinn;
&opcodesoctpch;
&opcodesopcode;
- &opcodesOSCsend;
- &opcodesOSCinit;
- &opcodesOSClisten;
&opcodesoscbnk;
- &opcodesoscil;
&opcodesoscil1;
&opcodesoscil1i;
&opcodesoscil3;
+ &opcodesoscil;
&opcodesoscili;
&opcodesoscilikt;
&opcodesosciliktp;
@@ -663,44 +626,48 @@
&opcodesosciln;
&opcodesoscils;
&opcodesoscilx;
- &opcodesout;
+ &opcodesOSCinit;
+ &opcodesOSClisten;
+ &opcodesOSCsend;
&opcodesout32;
+ &opcodesout;
&opcodesoutc;
&opcodesoutch;
&opcodesouth;
&opcodesoutiat;
- &opcodesoutic;
&opcodesoutic14;
+ &opcodesoutic;
&opcodesoutipat;
&opcodesoutipb;
&opcodesoutipc;
&opcodesoutkat;
- &opcodesoutkc;
&opcodesoutkc14;
+ &opcodesoutkc;
&opcodesoutkpat;
&opcodesoutkpb;
&opcodesoutkpc;
&opcodesoutleta;
- &opcodesoutletk;
&opcodesoutletf;
+ &opcodesoutletk;
+ &opcodesoutletkid;
&opcodesouto;
- &opcodesoutq;
&opcodesoutq1;
&opcodesoutq2;
&opcodesoutq3;
&opcodesoutq4;
+ &opcodesoutq;
&opcodesoutrg;
- &opcodesouts;
&opcodesouts1;
&opcodesouts2;
+ &opcodesouts;
&opcodesoutvalue;
&opcodesoutx;
&opcodesoutz;
- &opcodesp;
&opcodesp5gconnect;
&opcodesp5gdata;
- &opcodespan;
+ &opcodesp;
&opcodespan2;
+ &opcodespan;
&opcodespareq;
&opcodespartials;
&opcodespartikkel;
@@ -718,7 +685,6 @@
&opcodespdhalf;
&opcodespdhalfy;
&opcodespeak;
- &opcodespeakk;
&opcodespgmassign;
&opcodesphaser1;
&opcodesphaser2;
@@ -729,6 +695,8 @@
&opcodespitch;
&opcodespitchamdf;
&opcodesplanet;
+ &opcodesplaterev;
+ &opcodesplltrack;
&opcodespluck;
&opcodespoisson;
&opcodespolyaft;
@@ -737,8 +705,8 @@
&opcodespop_f;
&opcodesport;
&opcodesportk;
- &opcodesposcil;
&opcodesposcil3;
+ &opcodesposcil;
&opcodespow;
&opcodespowershape;
&opcodespowoftwo;
@@ -746,16 +714,20 @@
&opcodesprepiano;
&opcodesprint;
&opcodesprintf;
- &opcodesprintk;
&opcodesprintk2;
+ &opcodesprintk;
&opcodesprintks;
&opcodesprints;
&opcodesproduct;
&opcodespset;
+ &opcodesptable;
+ &opcodesptablei;
+ &opcodesptable3;
+ &opcodesptablew;
&opcodesptrack;
- &opcodesputs;
&opcodespush;
&opcodespush_f;
+ &opcodesputs;
&opcodespvadd;
&opcodespvbufread;
&opcodespvcross;
@@ -771,6 +743,7 @@
&opcodespvsblur;
&opcodespvsbuffer;
&opcodespvsbufread;
+ &opcodespvsbufread2;
&opcodespvscale;
&opcodespvscent;
&opcodespvscross;
@@ -779,10 +752,12 @@
&opcodespvsdisp;
&opcodespvsfilter;
&opcodespvsfread;
+
&opcodespvsfreeze;
&opcodespvsftr;
&opcodespvsftw;
&opcodespvsfwrite;
+ &opcodespvsgain;
&opcodespvshift;
&opcodespvsifd;
&opcodespvsinfo;
@@ -801,14 +776,16 @@
&opcodespvsvoc;
&opcodespvsynth;
&opcodespvswarp;
-
+ &opcodespvs2tab;
&opcodespyassign;
&opcodespycall;
&opcodespyeval;
&opcodespyexec;
&opcodespyinit;
&opcodespyrun;
-
+ &opcodespwd;
+ &opcodesqinf;
+ &opcodesqnan;
&opcodesrand;
&opcodesrandh;
&opcodesrandi;
@@ -817,10 +794,14 @@
&opcodesrandomi;
&opcodesrbjeq;
&opcodesreadclock;
+ &opcodesreadf;
+ &opcodesreadfi;
&opcodesreadk;
&opcodesreadk2;
&opcodesreadk3;
&opcodesreadk4;
+ &opcodesreadscore;
+ &opcodesreadscratch;
&opcodesreinit;
&opcodesrelease;
&opcodesremoteport;
@@ -834,6 +815,7 @@
&opcodesresony;
&opcodesresonz;
&opcodesresyn;
+ &opcodesreturn;
&opcodesreverb;
&opcodesreverb2;
&opcodesreverbsc;
@@ -849,44 +831,53 @@
&opcodesrtclock;
&opcodess16b14;
&opcodess32b14;
- &opcodesscale;
&opcodessamphold;
&opcodessandpaper;
+ &opcodesscale;
+ &opcodesscalearray;
&opcodesscanhammer;
&opcodesscans;
&opcodesscantable;
&opcodesscanu;
- &opcodesscoreline;
- &opcodesscoreline_i;
&opcodesschedkwhen;
&opcodesschedkwhennamed;
&opcodesschedule;
&opcodesschedwhen;
+ &opcodesscoreline;
+ &opcodesscoreline_i;
&opcodesseed;
&opcodessekere;
&opcodessemitone;
&opcodessense;
&opcodessensekey;
- &opcodesseqtime;
+ &opcodesserialBegin;
+ &opcodesserialEnd;
+ &opcodesserialFlush;
+ &opcodesserialPrint;
+ &opcodesserialRead;
+ &opcodesserialWrite_i;
+ &opcodesserialWrite;
&opcodesseqtime2;
+ &opcodesseqtime;
&opcodessetctrl;
&opcodessetksmps;
&opcodessetscorepos;
&opcodessfilist;
- &opcodessfinstr;
&opcodessfinstr3;
&opcodessfinstr3m;
+ &opcodessfinstr;
&opcodessfinstrm;
&opcodessfload;
&opcodessflooper;
&opcodessfpassign;
- &opcodessfplay;
&opcodessfplay3;
&opcodessfplay3m;
+ &opcodessfplay;
&opcodessfplaym;
&opcodessfplist;
&opcodessfpreset;
&opcodesshaker;
+ &opcodessignum;
&opcodessin;
&opcodessinh;
&opcodessininv;
@@ -894,18 +885,18 @@
&opcodessleighbells;
&opcodesslider16;
&opcodesslider16f;
- &opcodesslider32;
- &opcodesslider32f;
- &opcodesslider64;
- &opcodesslider64f;
- &opcodesslider8;
- &opcodesslider8f;
&opcodesslider16table;
&opcodesslider16tablef;
+ &opcodesslider32;
+ &opcodesslider32f;
&opcodesslider32table;
&opcodesslider32tablef;
+ &opcodesslider64;
+ &opcodesslider64f;
&opcodesslider64table;
&opcodesslider64tablef;
+ &opcodesslider8;
+ &opcodesslider8f;
&opcodesslider8table;
&opcodesslider8tablef;
&opcodessliderkawai;
@@ -913,11 +904,9 @@
&opcodessndloop;
&opcodessndwarp;
&opcodessndwarpst;
- &opcodessocksend;
&opcodessockrecv;
+ &opcodessocksend;
&opcodessoundin;
- &opcodessoundout;
- &opcodessoundouts;
&opcodesspace;
&opcodesspat3d;
&opcodesspat3di;
@@ -933,9 +922,9 @@
&opcodesspecsum;
&opcodesspectrum;
&opcodessplitrig;
- &opcodesspsend;
&opcodessprintf;
&opcodessprintfk;
+ &opcodesspsend;
&opcodessqrt;
&opcodessr;
&opcodesstack;
@@ -977,6 +966,7 @@
&opcodesstrcmp;
&opcodesstrcmpk;
&opcodesstreson;
+ &opcodesstrfromurl;
&opcodesstrget;
&opcodesstrindex;
&opcodesstrindexk;
@@ -998,6 +988,7 @@
&opcodessubinstr;
&opcodessubinstrinit;
&opcodessum;
+ &opcodessumarray;
&opcodessvfilter;
&opcodessyncgrain;
&opcodessyncloop;
@@ -1034,7 +1025,9 @@
&opcodestabmorphak;
&opcodestabmorphi;
&opcodestabplay;
+ &opcodesslicearray;
&opcodestabsum;
+ &opcodestab2pvs;
&opcodestambourine;
&opcodestan;
&opcodestanh;
@@ -1060,6 +1053,7 @@
&opcodestrandom;
&opcodestradsyn;
&opcodestranseg;
+ &opcodestransegb;
&opcodestransegr;
&opcodestrcross;
&opcodestrfilter;
@@ -1076,6 +1070,7 @@
&opcodesturnoff2;
&opcodesturnon;
&opcodesunirand;
+ &opcodesuntil;
&opcodesupsamp;
&opcodesurandom;
&opcodesurd;
@@ -1086,6 +1081,10 @@
&opcodesvaget;
&opcodesvalpass;
&opcodesvaset;
+ &opcodesvbap;
+ &opcodesvbapmove;
+ &opcodesvbapg;
+ &opcodesvbapgmove;
&opcodesvbap16;
&opcodesvbap16move;
&opcodesvbap4;
@@ -1190,6 +1189,7 @@
&opcodeswiirange;
&opcodeswiisend;
&opcodeswrap;
+ &opcodeswritescratch;
&opcodeswterrain;
&opcodesxadsr;
&opcodesxin;
diff --git a/opcodes/topXO.xml b/opcodes/topXO.xml
index 8241bc4..097d49f 100644
--- a/opcodes/topXO.xml
+++ b/opcodes/topXO.xml
@@ -194,6 +194,8 @@
&opcodesdumpk3;
&opcodesdumpk4;
&opcodesduserrnd;
+ &opcodesdust;
+ &opcodesdust2;
&opcodeselse;
&opcodeselseif;
&opcodesendif;
@@ -332,6 +334,7 @@
&opcodesfprintks;
&opcodesfprints;
&opcodesfrac;
+ &opcodesfractalnoise;
&opcodesfreeverb;
&opcodesftchnls;
&opcodesftconv;
@@ -349,7 +352,11 @@
&opcodesgain;
&opcodesgainslider;
&opcodesgauss;
+ &opcodesgausstrig;
&opcodesgbuzz;
+ &opcodesgendy
+ &opcodesgendyc;
+ &opcodesgendyx;
&opcodesgetcfg;
&opcodesgogobel;
&opcodesgoto;
diff --git a/opcodes/tradsyn.xml b/opcodes/tradsyn.xml
index d9f1177..ff915ac 100644
--- a/opcodes/tradsyn.xml
+++ b/opcodes/tradsyn.xml
@@ -6,23 +6,21 @@
<refentrytitle>tradsyn</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>tradsyn</refname>
<refpurpose>
- Streaming partial track additive synthesis
- </refpurpose>
+ Streaming partial track additive synthesis
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- The tradsyn opcode takes an input containg a TRACKS pv streaming signal (as generated,
- for instance by partials),as described in Lazzarini et al, "Time-stretching using the Instantaneous Frequency Distribution and Partial
- Tracking", Proc.of ICMC05, Barcelona. It resynthesises the signal using linear amplitude and frequency
- interpolation to drive a bank of interpolating oscillators with amplitude and pitch scaling controls.
- </para>
+ The <emphasis>tradsyn</emphasis> opcode takes an input containg a TRACKS pv streaming signal (as generated,
+ for instance by <emphasis>partials</emphasis>),as described in Lazzarini et al, "Time-stretching using the Instantaneous Frequency Distribution and Partial
+ Tracking", Proc.of ICMC05, Barcelona. It resynthesises the signal using linear amplitude and frequency
+ interpolation to drive a bank of interpolating oscillators with amplitude and pitch scaling controls.
+ </para>
</refsect1>
<refsect1>
@@ -32,10 +30,10 @@
<refsect1>
<title>Performance</title>
- <para>
+ <para>
<emphasis>asig</emphasis> -- output audio rate signal
</para>
-
+
<para>
<emphasis>fin</emphasis> -- input pv stream in TRACKS format
</para>
@@ -50,42 +48,29 @@
<para>
<emphasis>kmaxtracks</emphasis> -- max number of tracks in resynthesis. Limiting this will cause
- a non-linear filtering effect, by discarding newer and higher-frequency tracks (tracks are ordered
- by start time and ascending frequency, respectively)
+ a non-linear filtering effect, by discarding newer and higher-frequency tracks (tracks are ordered
+ by start time and ascending frequency, respectively)
</para>
<para>
- <emphasis>ifn</emphasis> -- function table containing one cycle of a sinusoid (sine or cosine) </para>
-
- <para>
-
- </para>
-
+ <emphasis>ifn</emphasis> -- function table containing one cycle of a sinusoid (sine or cosine).
+ </para>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the tradsyn opcode. It uses the file <ulink url="examples/tradsyn.csd"><citetitle>tradsyn.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
- aout tradsyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th)
-out aout
- </programlisting>
+ <title>Example of the tradsyn opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/tradsyn.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
</para>
-
<para>
-The example above shows partial tracking of an ifd-analysis signal and
-linear additive resynthesis with pitch shifting.
-
+ The example above shows partial tracking of an ifd-analysis signal and
+ linear additive resynthesis with pitch shifting.
</para>
-
</refsect1>
<refsect1>
@@ -96,7 +81,6 @@ linear additive resynthesis with pitch shifting.
<member>June 2005 </member>
</simplelist>
</para>
-
<para>New plugin in version 5</para>
<para>November 2004.</para>
</refsect1>
diff --git a/opcodes/trandom.xml b/opcodes/trandom.xml
index a7186d2..2c58822 100644
--- a/opcodes/trandom.xml
+++ b/opcodes/trandom.xml
@@ -51,21 +51,20 @@
<para>
<emphasis>trandom</emphasis> is almost identical to <link linkend="random"><citetitle>random</citetitle></link> opcode, except <emphasis>trandom</emphasis> updates its output with a new random value only when the <emphasis>ktrig</emphasis> argument is triggered (i.e. whenever it is not zero).
</para>
-
</refsect1>
-<!-- <refsect1>
+ <refsect1>
<title>Examples</title>
<para>
- Here is an example of the trandom opcode. It uses the files <ulink url="examples/trandom.csd"><citetitle>trandom.csd</citetitle></ulink>.
-
+ Here is an example of the trandom opcode. It uses the file <ulink url="examples/trandom.csd"><citetitle>trandom.csd</citetitle></ulink>.
<example>
<title>Example of the trandom opcode.</title>
- <xi:include href="examples-xml/trandom.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/trandom.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
- </refsect1>-->
+ </refsect1>
+
<refsect1>
<title>See also</title>
<para>
diff --git a/opcodes/transegb.xml b/opcodes/transegb.xml
new file mode 100644
index 0000000..bb43084
--- /dev/null
+++ b/opcodes/transegb.xml
@@ -0,0 +1,117 @@
+
+<refentry id="transegb">
+<indexterm id="IndexTransegb"><primary>transegb</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Linear and Exponential Generators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>transegb</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>transegb</refname>
+ <refpurpose>
+ Constructs a user-definable envelope in absolute time.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Constructs a user-definable envelope in absolute time.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>transegb</command> ia, itim, itype, ib [, itim2] [, itype] [, ic] ...</synopsis>
+ <synopsis>kres <command>transegb</command> ia, itim, itype, ib [, itim2] [, itype] [, ic] ...</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ia</emphasis> -- starting value.
+ </para>
+
+ <para>
+ <emphasis>ib, ic,</emphasis> etc. -- value after <emphasis>itim</emphasis> seconds.
+ </para>
+
+ <para>
+ <emphasis>itim</emphasis> -- time in seconds of end of first segment.
+ </para>
+
+ <para>
+ <emphasis>itim2,... itimx</emphasis> etc. -- time in seconds at
+ the end of the segment.
+ </para>
+
+ <para>
+ <emphasis>itype, itype2,</emphasis> etc. -- if 0, a straight line is produced. If non-zero, then <emphasis>transegb</emphasis> creates the following curve, for <emphasis>n</emphasis> steps:
+
+ <literallayout>
+ibeg + (ivalue - ibeg) * (1 - exp( i*itype/(n-1) )) / (1 - exp(itype))
+ </literallayout>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ If <emphasis>itype</emphasis> &gt; 0, there is a slowly rising (concave) or slowly decaying
+ (convex) curve, while if <emphasis>itype</emphasis> &lt; 0, the curve is fast rising (convex) or
+ fast decaying (concave). See also <link linkend="GEN16"><citetitle>GEN16</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the transegb opcode. It uses the file <ulink url="examples/transegb.csd"><citetitle>transegb.csd</citetitle></ulink>. The example produces the following output:
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/transegb.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase>Output of the transegb example.</phrase>
+ </textobject>
+ <caption>
+ <para>Output of the transegb example.</para>
+ </caption>
+ </mediaobject>
+ <example>
+ <title>Example of the transegb opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/transegb.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="expseg"><citetitle>expseg</citetitle></link>,
+ <link linkend="expsega"><citetitle>expsega</citetitle></link>,
+ <link linkend="expsegb"><citetitle>expsega</citetitle></link>,
+ <link linkend="expsegr"><citetitle>expsegr</citetitle></link>,
+ <link linkend="linseg"><citetitle>linseg</citetitle></link>,
+ <link linkend="linsegb"><citetitle>linsegb</citetitle></link>,
+ <link linkend="linsegr"><citetitle>linsegr</citetitle></link>,
+ <link linkend="transeg"><citetitle>transeg</citetitle></link>
+ <link linkend="transegr"><citetitle>transegr</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>University of Bath, Codemist. Ltd.</member>
+ <member>Bath, UK</member>
+ <member>June 2011</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 5.14</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/transegr.xml b/opcodes/transegr.xml
index 053baf2..4702819 100644
--- a/opcodes/transegr.xml
+++ b/opcodes/transegr.xml
@@ -72,29 +72,18 @@ ibeg + (ivalue - ibeg) * (1 - exp( i*itype/(n-1) )) / (1 - exp(itype))
</para>
</refsect1>
- <!-- <refsect1> -->
-<!-- <title>Examples</title> -->
-<!-- <para> -->
-<!-- Here is an example of the transegr opcode. It uses the file <ulink url="examples/transegr.csd"><citetitle>transegr.csd</citetitle></ulink>. The example produces the following output: -->
-<!-- <mediaobject> -->
-<!-- <imageobject> -->
-<!-- <imagedata fileref="images/transegr.png" format="PNG"/> -->
-<!-- </imageobject> -->
-<!-- <textobject> -->
-<!-- <phrase>Output of the transegr example.</phrase> -->
-<!-- </textobject> -->
-<!-- <caption> -->
-<!-- <para>Output of the transegr example.</para> -->
-<!-- </caption> -->
-<!-- </mediaobject> -->
-<!-- <example> -->
-<!-- <title>Example of the transegr opcode.</title> -->
-<!-- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para> -->
-<!-- <xi:include href="examples-xml/transegr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> -->
-<!-- </example> -->
-<!-- </para> -->
-<!-- </refsect1> -->
-
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the transegr opcode. It uses the file <ulink url="examples/transegr.csd"><citetitle>transegr.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the transegr opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/transegr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/trcross.xml b/opcodes/trcross.xml
index e0014ef..13a46e4 100644
--- a/opcodes/trcross.xml
+++ b/opcodes/trcross.xml
@@ -7,93 +7,77 @@
<refentrytitle>trcross</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>trcross</refname>
<refpurpose>
- Streaming partial track cross-synthesis.
-
+ Streaming partial track cross-synthesis.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- The trcross opcode takes two inputs containg TRACKS pv streaming signals (as generated,
- for instance by partials) and cross-synthesises them into a single TRACKS stream. Two
- different modes of operation are used: mode 0, cross-synthesis by multiplication of
- the amplitudes of the two inputs and mode 1, cross-synthesis by the substititution of
- the amplitudes of input 1 by the input 2. Frequencies and phases of input 1 are preserved
- in the output. The cross-synthesis is done by matching tracks between the two inputs using
- a 'search interval'. The matching algorithm will look for tracks in the second input that
- are within the search interval around each track in the first input. This interval can be changed
- at the control rate. Wider search intervals will find more matches.
- </para>
+ The <emphasis>trcross</emphasis> opcode takes two inputs containg TRACKS pv streaming signals (as generated,
+ for instance by <emphasis>partials</emphasis>) and cross-synthesises them into a single TRACKS stream. Two
+ different modes of operation are used: mode 0, cross-synthesis by multiplication of
+ the amplitudes of the two inputs and mode 1, cross-synthesis by the substititution of
+ the amplitudes of input 1 by the input 2. Frequencies and phases of input 1 are preserved
+ in the output. The cross-synthesis is done by matching tracks between the two inputs using
+ a 'search interval'. The matching algorithm will look for tracks in the second input that
+ are within the search interval around each track in the first input. This interval can be changed
+ at the control rate. Wider search intervals will find more matches.
+ </para>
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis>fsig <command>trcross</command> fin1, fin2, ksearch,kdepth[,kmode] </synopsis>
+ <synopsis>fsig <command>trcross</command> fin1, fin2, ksearch, kdepth [, kmode] </synopsis>
</refsect1>
<refsect1>
<title>Performance</title>
- <para>
+ <para>
<emphasis>fsig</emphasis> -- output pv stream in TRACKS format
</para>
-<para>
- <emphasis>fin1</emphasis> -- first input pv stream in TRACKS format.
+
+ <para>
+ <emphasis>fin1</emphasis> -- first input pv stream in TRACKS format.
</para>
-
+
<para>
<emphasis>fin2</emphasis> -- second input pv stream in TRACKS format
</para>
- <para>
+ <para>
<emphasis>ksearch</emphasis> -- search interval ratio, defining a 'search area'
- around each track of 1st input for matching purposes.
- </para>
+ around each track of 1st input for matching purposes.
+ </para>
- <para>
+ <para>
<emphasis>kdepth</emphasis> -- depth of effect (0-1).
- </para>
-
- <para>
+ </para>
+
+ <para>
<emphasis>kmode</emphasis> -- mode of cross-synthesis. 0, multiplication
- of amplitudes (filtering), 1, subsitution of amplitudes of input 1 by
- input 2 (akin to vocoding). Defaults to 0.
- </para>
-
+ of amplitudes (filtering), 1, subsitution of amplitudes of input 1 by
+ input 2 (akin to vocoding). Defaults to 0.
+ </para>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the trcross opcode. It uses the file <ulink url="examples/trcross.csd"><citetitle>trcross.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signals
-ain inch 2
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fs11,fsi12 pvsifd ain,2048,512,1 ; ifd analysis (second input)
-fst1 partials fs11,fsi12,.003,1,3,500 ; partial tracking \(second input
-fcr trcross fst,fst1, 1.05, 1 ; cross-synthesis (mode 0)
- aout tradsyn fcr, 1, 1, 500, 1 ; resynthesis of tracks
-out aout
- </programlisting>
+ <title>Example of the trcross opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/trcross.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
</para>
-
<para>
-The example above shows partial tracking of two ifd-analysis signals, cross-synthesis,
-followed by the remix of the two parts of the spectrum and resynthesis.
-
+ The example above shows partial tracking of two ifd-analysis signals, cross-synthesis,
+ followed by the remix of the two parts of the spectrum and resynthesis.
</para>
-
</refsect1>
<refsect1>
@@ -104,6 +88,6 @@ followed by the remix of the two parts of the spectrum and resynthesis.
<member>February 2006 </member>
</simplelist>
</para>
- <para>New in Csound5.01</para>
+ <para>New in Csound 5.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/trfilter.xml b/opcodes/trfilter.xml
index 4b7f125..fe7a374 100644
--- a/opcodes/trfilter.xml
+++ b/opcodes/trfilter.xml
@@ -7,25 +7,22 @@
<refentrytitle>trfilter</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>trfilter</refname>
<refpurpose>
- Streaming partial track filtering.
-
+ Streaming partial track filtering.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- The trfilter opcode takes an input containg a TRACKS pv streaming signal (as generated,
- for instance by partials) and filters it using an amplitude response curve stored in
- a function table. The function table can have any size (no restriction to powers-of-two).
- The table lookup is done by linear-interpolation. It is possible to create time-varying
- filter curves by updating the amlitude response table with a table-writing opcode.
- </para>
+ The <emphasis>trfilter</emphasis> opcode takes an input containg a TRACKS pv streaming signal (as generated,
+ for instance by <emphasis>partials</emphasis>) and filters it using an amplitude response curve stored in
+ a function table. The function table can have any size (no restriction to powers-of-two).
+ The table lookup is done by linear-interpolation. It is possible to create time-varying
+ filter curves by updating the amlitude response table with a table-writing opcode.
+ </para>
</refsect1>
<refsect1>
@@ -35,55 +32,39 @@
<refsect1>
<title>Performance</title>
- <para>
+ <para>
<emphasis>fsig</emphasis> -- output pv stream in TRACKS format
</para>
-
+
<para>
<emphasis>fin</emphasis> -- input pv stream in TRACKS format
</para>
<para>
<emphasis>kamnt</emphasis> -- amount of filtering (0-1)
</para>
+
<para>
<emphasis>ifn</emphasis> -- function table number. This will contain an
- amplitude response curve, from 0 Hz to the Nyquist (table indexes 0 to N). Any size is
- allowed. Larger tables will provide a smoother amplitude response curve. Table reading uses
- linear interpolation.
+ amplitude response curve, from 0 Hz to the Nyquist (table indexes 0 to N). Any size is
+ allowed. Larger tables will provide a smoother amplitude response curve. Table reading uses
+ linear interpolation.
</para>
- <para>
-
- </para>
-
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the trfilter opcode. It uses the file <ulink url="examples/trfilter.csd"><citetitle>trfilter.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-gifn ftgen 2, 0, -22050, 5 1 1000 1 4000 0.000001 17050 0.000001 ; low-pass filter curve of 22050 points
-instr 1
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fscl trfilter fst, 1, gifn ; filtering using function table 2
- aout tradsyn fscl, 1, 1, 500, 1 ; resynthesis
-out aout
-endin
- </programlisting>
+ <title>Example of the trfilter opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/trfilter.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
</para>
-
<para>
-The example above shows partial tracking of an ifd-analysis signal and
-linear additive resynthesis with low-pass filtering.
-
+ The example above shows partial tracking of an ifd-analysis signal and
+ linear additive resynthesis with low-pass filtering.
</para>
-
</refsect1>
<refsect1>
@@ -94,7 +75,6 @@ linear additive resynthesis with low-pass filtering.
<member>February 2006 </member>
</simplelist>
</para>
- <para>New in Csound5.01</para>
-
+ <para>New in Csound 5.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/trhighest.xml b/opcodes/trhighest.xml
index e19006c..fed2e7f 100644
--- a/opcodes/trhighest.xml
+++ b/opcodes/trhighest.xml
@@ -7,79 +7,65 @@
<refentrytitle>trhighest</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>trhighest</refname>
<refpurpose>
- Extracts the highest-frequency track from a streaming track input signal.
-
+ Extracts the highest-frequency track from a streaming track input signal.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- The trhighest opcode takes an input containg TRACKS pv streaming signals (as generated,
- for instance by partials) and outputs only the highest track. In addition it outputs
- two k-rate signals, corresponding to the frequency and amplitude of the highest track
- signal.
- </para>
+ The <emphasis>trhighest</emphasis> opcode takes an input containg TRACKS pv streaming signals (as generated,
+ for instance by <emphasis>partials</emphasis>) and outputs only the highest track. In addition it outputs
+ two k-rate signals, corresponding to the frequency and amplitude of the highest track
+ signal.
+ </para>
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis>fsig, kfr,kamp <command>trhighest</command> fin1, kscal</synopsis>
+ <synopsis>fsig, kfr, kamp <command>trhighest</command> fin1, kscal</synopsis>
</refsect1>
<refsect1>
<title>Performance</title>
- <para>
+ <para>
<emphasis>fsig</emphasis> -- output pv stream in TRACKS format
</para>
-
- <para>
+
+ <para>
<emphasis>kfr</emphasis> -- frequency (in Hz) of the highest-frequency track
</para>
-
- <para>
+
+ <para>
<emphasis>kamp</emphasis> -- amplitude of the highest-frequency track
</para>
+
<para>
-
- <emphasis>fin</emphasis> -- input pv stream in TRACKS format.
+ <emphasis>fin</emphasis> -- input pv stream in TRACKS format.
</para>
-
+
<para>
<emphasis>kscal</emphasis> -- amplitude scaling of output.
</para>
-
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the trhighest opcode. It uses the file <ulink url="examples/trhighest.csd"><citetitle>trhighest.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fhi,kfr,kamp trhighest fst,1 ; highest freq-track
- aout tradsyn fhi, 1, 1, 1, 1 ; resynthesis of highest frequency
-out aout
- </programlisting>
+ <title>Example of the trhighest opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/trhighest.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
</para>
-
<para>
-The example above shows partial tracking of an ifd-analysis signal, extraction of
-the highest frequency and resynthesis.
-
+ The example above shows partial tracking of an ifd-analysis signal, extraction of
+ the highest frequency and resynthesis.
</para>
-
</refsect1>
<refsect1>
@@ -90,7 +76,6 @@ the highest frequency and resynthesis.
<member>February 2006 </member>
</simplelist>
</para>
- <para>New in Csound5.01</para>
-
+ <para>New in Csound 5.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/trigger.xml b/opcodes/trigger.xml
index 4c46772..f795c02 100644
--- a/opcodes/trigger.xml
+++ b/opcodes/trigger.xml
@@ -56,29 +56,11 @@
<title>Examples</title>
<para>
Here is an example of the trigger opcode. It uses the file <ulink url="examples/trigger.csd"><citetitle>trigger.csd</citetitle></ulink>.
-
<example>
<title>Example of the trigger opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/trigger.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
- Its output should include lines like this:
- <screen>
-time = 0.050340 seconds, trigger = 1.000000
-time = 0.150340 seconds, trigger = 1.000000
-time = 0.250340 seconds, trigger = 1.000000
-time = 0.350340 seconds, trigger = 1.000000
-time = 0.450340 seconds, trigger = 1.000000
-time = 0.550340 seconds, trigger = 1.000000
-time = 0.650340 seconds, trigger = 1.000000
-time = 0.750340 seconds, trigger = 1.000000
-time = 0.850340 seconds, trigger = 1.000000
-time = 0.950340 seconds, trigger = 1.000000
- </screen>
</para>
</refsect1>
@@ -90,8 +72,6 @@ time = 0.950340 seconds, trigger = 1.000000
<member>Italy</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.49</para>
</refsect1>
</refentry>
diff --git a/opcodes/trigseq.xml b/opcodes/trigseq.xml
index dce4660..bd41400 100644
--- a/opcodes/trigseq.xml
+++ b/opcodes/trigseq.xml
@@ -84,6 +84,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the trigseq opcode. It uses the file <ulink url="examples/trigseq.csd"><citetitle>trigseq.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the trigseq opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/trigseq.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="seqtime"><citetitle>seqtime</citetitle></link>,
diff --git a/opcodes/trirand.xml b/opcodes/trirand.xml
index 8bce292..cbade3a 100644
--- a/opcodes/trirand.xml
+++ b/opcodes/trirand.xml
@@ -55,16 +55,36 @@
<title>Examples</title>
<para>
Here is an example of the trirand opcode. It uses the file <ulink url="examples/trirand.csd"><citetitle>trirand.csd</citetitle></ulink>.
-
<example>
<title>Example of the trirand opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/trirand.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
Its output should include a line like this:
<screen>
-instr 1: i1 = 7506.261
+ i 1 time 0.00067: -4.97993
+ i 1 time 0.20067: 1.20909
+ i 1 time 0.40067: 17.45873
+ i 1 time 0.60067: 52.55409
+ i 1 time 0.80067: -1.92888
+ i 1 time 1.00000: -11.01149
+ i 1 time 1.20067: 9.79521
+ i 1 time 1.40067: 26.98504
+ i 1 time 1.60067: 24.67405
+ i 1 time 1.80000: -67.59846
+ i 1 time 2.00000: 64.24861
+WARNING: Seeding from current time 521999639
+ i 2 time 3.00067: 3.28969
+ i 2 time 3.20067: 54.98986
+ i 2 time 3.40067: -33.84788
+ i 2 time 3.60000: -41.93523
+ i 2 time 3.80067: -6.61742
+ i 2 time 4.00000: 39.67097
+ i 2 time 4.20000: 2.95123
+ i 2 time 4.40067: 45.59255
+ i 2 time 4.60067: 16.57259
+ i 2 time 4.80067: -18.80273
+ i 2 time 5.00000: -2.01697
</screen>
</para>
</refsect1>
@@ -94,6 +114,5 @@ instr 1: i1 = 7506.261
<member>1995</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/trlowest.xml b/opcodes/trlowest.xml
index 17af346..ee3ef29 100644
--- a/opcodes/trlowest.xml
+++ b/opcodes/trlowest.xml
@@ -7,79 +7,65 @@
<refentrytitle>trlowest</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>trlowest</refname>
<refpurpose>
- Extracts the lowest-frequency track from a streaming track input signal.
-
+ Extracts the lowest-frequency track from a streaming track input signal.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- The trlowest opcode takes an input containg TRACKS pv streaming signals (as generated,
- for instance by partials) and outputs only the lowest track. In addition it outputs
- two k-rate signals, corresponding to the frequency and amplitude of the lowest track
- signal.
- </para>
+ The <emphasis>trlowest</emphasis> opcode takes an input containg TRACKS pv streaming signals (as generated,
+ for instance by <emphasis>partials</emphasis>) and outputs only the lowest track. In addition it outputs
+ two k-rate signals, corresponding to the frequency and amplitude of the lowest track
+ signal.
+ </para>
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis>fsig, kfr,kamp <command>trlowest</command> fin1, kscal</synopsis>
+ <synopsis>fsig, kfr, kamp <command>trlowest</command> fin1, kscal</synopsis>
</refsect1>
<refsect1>
<title>Performance</title>
- <para>
+ <para>
<emphasis>fsig</emphasis> -- output pv stream in TRACKS format
</para>
-
- <para>
+
+ <para>
<emphasis>kfr</emphasis> -- frequency (in Hz) of the lowest-frequency track
</para>
-
- <para>
+
+ <para>
<emphasis>kamp</emphasis> -- amplitude of the lowest-frequency track
</para>
<para>
-
- <emphasis>fin</emphasis> -- input pv stream in TRACKS format.
+
+ <emphasis>fin</emphasis> -- input pv stream in TRACKS format.
</para>
-
+
<para>
<emphasis>kscal</emphasis> -- amplitude scaling of output.
- </para>
-
+ </para>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the trlowest opcode. It uses the file <ulink url="examples/trlowest.csd"><citetitle>trlowest.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-flow,kfr,kamp trlowest fst,1 ; lowest freq-track
- aout tradsyn flow, 1, 1, 1, 1 ; resynthesis of lowest frequency
-out aout
- </programlisting>
+ <title>Example of the trlowest opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/trlowest.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
</para>
-
<para>
-The example above shows partial tracking of an ifd-analysis signal, extraction of
-the lowest frequency and resynthesis.
-
+ The example above shows partial tracking of an ifd-analysis signal, extraction of
+ the lowest frequency and resynthesis.
</para>
-
</refsect1>
<refsect1>
@@ -90,7 +76,6 @@ the lowest frequency and resynthesis.
<member>February 2006 </member>
</simplelist>
</para>
- <para>New in Csound5.01</para>
-
+ <para>New in Csound 5.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/trmix.xml b/opcodes/trmix.xml
index 389814f..5a21848 100644
--- a/opcodes/trmix.xml
+++ b/opcodes/trmix.xml
@@ -7,25 +7,22 @@
<refentrytitle>trmix</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>trmix</refname>
<refpurpose>
- Streaming partial track mixing.
-
+ Streaming partial track mixing.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- The trmix opcode takes two inputs containg TRACKS pv streaming signals (as generated,
- for instance by partials) and mixes them into a single TRACKS stream. Tracks will be
- mixed up to the available space (defined by the original number of FFT bins in
- the analysed signals). If the sum of the input tracks exceeds this space, the higher-ordered
- tracks in the second input will be pruned.
- </para>
+ The <emphasis>trmix</emphasis> opcode takes two inputs containg TRACKS pv streaming signals (as generated,
+ for instance by <emphasis>partials</emphasis>) and mixes them into a single TRACKS stream. Tracks will be
+ mixed up to the available space (defined by the original number of FFT bins in
+ the analysed signals). If the sum of the input tracks exceeds this space, the higher-ordered
+ tracks in the second input will be pruned.
+ </para>
</refsect1>
<refsect1>
@@ -35,46 +32,34 @@
<refsect1>
<title>Performance</title>
- <para>
+ <para>
<emphasis>fsig</emphasis> -- output pv stream in TRACKS format
</para>
+
<para>
- <emphasis>fin1</emphasis> -- first input pv stream in TRACKS format.
+ <emphasis>fin1</emphasis> -- first input pv stream in TRACKS format.
</para>
-
+
<para>
<emphasis>fin2</emphasis> -- second input pv stream in TRACKS format
</para>
-
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the trmix opcode. It uses the file <ulink url="examples/trmix.csd"><citetitle>trmix.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fslo,fshi trsplit fst, 1500 ; split partial tracks at 1500 Hz
-fscl trscale fshi, 1.15 ; shift the upper tracks
-fmix trmix fslo,fscl ; mix the shifted and unshifted tracks
- aout tradsyn fmix, 1, 1, 500, 1 ; resynthesis of tracks
-out aout
- </programlisting>
+ <title>Example of the trmix opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/trmix.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
</para>
-
<para>
-The example above shows partial tracking of an ifd-analysis signal, frequency
-splitting and pitch shifting of the upper part of the spectrum, followed by
-the remix of the two parts of the spectrum and resynthesis.
-
+ The example above shows partial tracking of an ifd-analysis signal, frequency
+ splitting and pitch shifting of the upper part of the spectrum, followed by
+ the remix of the two parts of the spectrum and resynthesis.
</para>
-
</refsect1>
<refsect1>
@@ -85,7 +70,6 @@ the remix of the two parts of the spectrum and resynthesis.
<member>February 2006 </member>
</simplelist>
</para>
- <para>New in Csound5.01</para>
-
+ <para>New in Csound 5.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/trscale.xml b/opcodes/trscale.xml
index 969b505..4f832fe 100644
--- a/opcodes/trscale.xml
+++ b/opcodes/trscale.xml
@@ -7,24 +7,21 @@
<refentrytitle>trscale</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>trscale</refname>
<refpurpose>
- Streaming partial track frequency scaling.
-
+ Streaming partial track frequency scaling.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- The trscale opcode takes an input containg a TRACKS pv streaming signal (as generated,
- for instance by partials) and scales all frequencies by a k-rate amount. It can also, optionally,
- scale the gain of the signal by a k-rate amount (default 1). The result is pitch shifting of
- the input tracks.
- </para>
+ The <emphasis>trscale</emphasis> opcode takes an input containg a TRACKS pv streaming signal (as generated,
+ for instance by <emphasis>partials</emphasis>) and scales all frequencies by a k-rate amount. It can also, optionally,
+ scale the gain of the signal by a k-rate amount (default 1). The result is pitch shifting of
+ the input tracks.
+ </para>
</refsect1>
<refsect1>
@@ -34,49 +31,37 @@
<refsect1>
<title>Performance</title>
- <para>
+ <para>
<emphasis>fsig</emphasis> -- output pv stream in TRACKS format
</para>
-
+
<para>
<emphasis>fin</emphasis> -- input pv stream in TRACKS format
</para>
+
<para>
<emphasis>kpitch</emphasis> -- frequency scaling
</para>
+
<para>
<emphasis>kgain</emphasis> -- amplitude scaling (default 1)
</para>
- <para>
-
- </para>
-
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the trscale opcode. It uses the file <ulink url="examples/trscale.csd"><citetitle>trscale.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fscl trscale fst, 1.5 ; frequency scale (up a 5th)
- aout tradsyn fscl, 1, 1, 500, 1 ; resynthesis
-out aout
- </programlisting>
+ <title>Example of the trscale opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/trscale.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
</para>
-
<para>
-The example above shows partial tracking of an ifd-analysis signal and
-linear additive resynthesis with pitch shifting.
-
+ The example above shows partial tracking of an ifd-analysis signal and
+ linear additive resynthesis with pitch shifting.
</para>
-
</refsect1>
<refsect1>
@@ -87,7 +72,6 @@ linear additive resynthesis with pitch shifting.
<member>February 2006 </member>
</simplelist>
</para>
- <para>New in Csound5.01</para>
-
+ <para>New in Csound 5.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/trshift.xml b/opcodes/trshift.xml
index a09c663..6c54d4b 100644
--- a/opcodes/trshift.xml
+++ b/opcodes/trshift.xml
@@ -7,24 +7,21 @@
<refentrytitle>trshift</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>trshift</refname>
<refpurpose>
- Streaming partial track frequency scaling.
-
+ Streaming partial track frequency scaling.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- The trshift opcode takes an input containg a TRACKS pv streaming signal (as generated,
- for instance by partials) and shifts all frequencies by a k-rate frequency. It can also, optionally,
- scale the gain of the signal by a k-rate amount (default 1). The result is frequency shifting of
- the input tracks.
- </para>
+ The <emphasis>trshift</emphasis> opcode takes an input containg a TRACKS pv streaming signal (as generated,
+ for instance by <emphasis>partials</emphasis>) and shifts all frequencies by a k-rate frequency. It can also, optionally,
+ scale the gain of the signal by a k-rate amount (default 1). The result is frequency shifting of
+ the input tracks.
+ </para>
</refsect1>
<refsect1>
@@ -34,49 +31,37 @@
<refsect1>
<title>Performance</title>
- <para>
+ <para>
<emphasis>fsig</emphasis> -- output pv stream in TRACKS format
</para>
-
+
<para>
<emphasis>fin</emphasis> -- input pv stream in TRACKS format
</para>
+
<para>
<emphasis>kshift</emphasis> -- frequency shift in Hz
</para>
+
<para>
<emphasis>kgain</emphasis> -- amplitude scaling (default 1)
</para>
- <para>
-
- </para>
-
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the trshift opcode. It uses the file <ulink url="examples/trshift.csd"><citetitle>trshift.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fscl trshift fst, 150 ; frequency shift (adds 150Hz to all tracks)
- aout tradsyn fscl, 1, 1, 500, 1 ; resynthesis
-out aout
- </programlisting>
+ <title>Example of the trshift opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/trshift.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
- </para>
-
+ </para>
<para>
-The example above shows partial tracking of an ifd-analysis signal and
-linear additive resynthesis with frequency shifting.
-
+ The example above shows partial tracking of an ifd-analysis signal and
+ linear additive resynthesis with frequency shifting.
</para>
-
</refsect1>
<refsect1>
@@ -87,7 +72,6 @@ linear additive resynthesis with frequency shifting.
<member>February 2006 </member>
</simplelist>
</para>
- <para>New in Csound5.01</para>
-
+ <para>New in Csound 5.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/trsplit.xml b/opcodes/trsplit.xml
index a7d0dd8..679deb9 100644
--- a/opcodes/trsplit.xml
+++ b/opcodes/trsplit.xml
@@ -7,26 +7,23 @@
<refentrytitle>trsplit</refentrytitle>
</refmeta>
-
-
<refnamediv>
<refname>trsplit</refname>
<refpurpose>
- Streaming partial track frequency splitting.
-
+ Streaming partial track frequency splitting.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- The trsplit opcode takes an input containg a TRACKS pv streaming signal (as generated,
- for instance by partials) and splits it into two signals according to a k-rate frequency 'split point'.
- The first output will contain all tracks up from 0Hz to the split frequency and the second will
- contain the tracks from the split frequency up to the Nyquist.
- It can also, optionally, scale the gain of the output signals by a k-rate amount (default 1).
- The result is two output signals containing only part of the original spectrum.
- </para>
+ The <emphasis>trsplit</emphasis> opcode takes an input containg a TRACKS pv streaming signal (as generated,
+ for instance by <emphasis>partials</emphasis>) and splits it into two signals according to a k-rate frequency 'split point'.
+ The first output will contain all tracks up from 0Hz to the split frequency and the second will
+ contain the tracks from the split frequency up to the Nyquist.
+ It can also, optionally, scale the gain of the output signals by a k-rate amount (default 1).
+ The result is two output signals containing only part of the original spectrum.
+ </para>
</refsect1>
<refsect1>
@@ -36,55 +33,44 @@
<refsect1>
<title>Performance</title>
- <para>
+ <para>
<emphasis>fsiglow</emphasis> -- output pv stream in TRACKS format containing the tracks below
- the split point.
+ the split point.
</para>
+
<para>
- <emphasis>fsighi</emphasis> -- output pv stream in TRACKS format containing the tracks above and
- including the split point.
+ <emphasis>fsighi</emphasis> -- output pv stream in TRACKS format containing the tracks above and
+ including the split point.
</para>
-
+
<para>
<emphasis>fin</emphasis> -- input pv stream in TRACKS format
</para>
+
<para>
<emphasis>ksplit</emphasis> -- frequency split point in Hz
</para>
+
<para>
<emphasis>kgainlow, kgainhig</emphasis> -- amplitude scaling of each one of the
- outputs (default 1).
+ outputs (default 1).
</para>
- <para>
-
- </para>
-
</refsect1>
<refsect1>
<title>Examples</title>
<para>
+ Here is an example of the trsplit opcode. It uses the file <ulink url="examples/trsplit.csd"><citetitle>trsplit.csd</citetitle></ulink>.
<example>
- <title>Example</title>
- <programlisting>
-ain inch 1 ; input signal
-fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
-fst partials fs1,fsi2,.003,1,3,500 ; partial tracking
-fslo,fshi trsplit fst, 1500 ; split partial tracks at 1500 Hz
- aout tradsyn fshi, 1, 1, 500, 1 ; resynthesis of tracks above 1500Hz
-out aout
- </programlisting>
+ <title>Example of the trsplit opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/trsplit.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
-
-
- </para>
-
+ </para>
<para>
-The example above shows partial tracking of an ifd-analysis signal and
-linear additive resynthesis of the upper part of the spectrum (from 1500Hz).
-
+ The example above shows partial tracking of an ifd-analysis signal and
+ linear additive resynthesis of the upper part of the spectrum (from 1500Hz).
</para>
-
</refsect1>
<refsect1>
@@ -95,7 +81,6 @@ linear additive resynthesis of the upper part of the spectrum (from 1500Hz).
<member>February 2006 </member>
</simplelist>
</para>
- <para>New in Csound5.01</para>
-
+ <para>New in Csound 5.01</para>
</refsect1>
</refentry>
diff --git a/opcodes/unirand.xml b/opcodes/unirand.xml
index 8aed4f7..b13e382 100644
--- a/opcodes/unirand.xml
+++ b/opcodes/unirand.xml
@@ -51,20 +51,44 @@
</para>
</refsect1>
- <refsect1>
+ <refsect1>
<title>Examples</title>
<para>
Here is an example of the unirand opcode. It uses the file <ulink url="examples/unirand.csd"><citetitle>unirand.csd</citetitle></ulink>.
-
- <example>
+ <example>
<title>Example of the unirand opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/unirand.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
-
- Its output should include a line like this:
+ </example>
+ Its output should include lines like these:
<screen>
-instr 1: i1 = 0.840
+ i 1 time 0.00067: 81.47237
+ i 1 time 0.20067: 41.72671
+ i 1 time 0.40067: 5.96189
+ i 1 time 0.60067: 91.59912
+ i 1 time 0.80067: 85.07127
+ i 1 time 1.00000: 92.50948
+ i 1 time 1.20067: 98.79347
+ i 1 time 1.40067: 98.91449
+ i 1 time 1.60067: 50.37808
+ i 1 time 1.80000: 72.02497
+ i 1 time 2.00000: 52.94362
+
+WARNING: Seeding from current time 4007444022
+
+ i 2 time 3.00067: 91.86294
+ i 2 time 3.20067: 94.68759
+ i 2 time 3.40067: 1.05825
+ i 2 time 3.60000: 78.57628
+ i 2 time 3.80067: 27.67408
+ i 2 time 4.00000: 76.46347
+ i 2 time 4.20000: 77.10071
+ i 2 time 4.40067: 34.28921
+ i 2 time 4.60067: 37.72286
+ i 2 time 4.80067: 54.96646
+ i 2 time 5.00000: 11.67566
+B 3.000 .. 5.000 T 5.000 TT 5.000 M: 0.80000 0.80000
+Score finished in csoundPerform().
</screen>
</para>
</refsect1>
@@ -95,6 +119,5 @@ instr 1: i1 = 0.840
<member>1995</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/until.xml b/opcodes/until.xml
new file mode 100644
index 0000000..ac508dc
--- /dev/null
+++ b/opcodes/until.xml
@@ -0,0 +1,84 @@
+
+<refentry id="until">
+<indexterm id="IndexUntil"><primary>until</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Program Flow Control</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>until</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>until</refname>
+ <refpurpose>
+ A syntactic looping construction.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ A syntactic looping construction.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>until</command> condition <command>do</command>
+ ... <command>od</command></synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ The statements between the <emphasis>do</emphasis> and
+ <emphasis>od</emphasis> form the body of a loop which is obeyed
+ until the conditional becomes true.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the until construction. It uses the file <ulink url="examples/until.csd"><citetitle>until.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the until opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/until.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like this:
+ <screen>
+B 0.000 .. 1.000 T 1.000 TT 1.000 M: 0.0
+new alloc for instr 1:
+instr 1: p4 = 3.000
+instr 1: p4 = 2.000
+instr 1: p4 = 1.000
+instr 1: p4 = 0.000
+instr 1: p4 = -1.000
+B 1.000 .. 2.000 T 2.000 TT 2.000 M: 0.0
+new alloc for instr 2:
+instr 2: p4 = 3.000
+instr 2: p4 = 2.000
+instr 2: p4 = 1.000
+instr 2: p4 = 0.000
+instr 2: p4 = -1.000
+B 2.000 .. 3.000 T 3.000 TT 3.000 M: 0.0
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="loop_ge"><citetitle>loop_ge</citetitle></link>,
+ <link linkend="loop_gt"><citetitle>loop_gt</citetitle></link> and
+ <link linkend="loop_le"><citetitle>loop_le</citetitle></link>.
+ <link linkend="loop_lt"><citetitle>loop_lt</citetitle></link>.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>&namejohn;.</para>
+ <para>New in Csound version 5.14 with new parser</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/upsamp.xml b/opcodes/upsamp.xml
index 2925cbc..e3ed380 100644
--- a/opcodes/upsamp.xml
+++ b/opcodes/upsamp.xml
@@ -31,22 +31,18 @@
<emphasis>upsamp</emphasis> converts a control signal to an audio signal. It does it by simple repetition of the kval. <emphasis>upsamp</emphasis> is a slightly more efficient form of the assignment, <emphasis>asig</emphasis> = <emphasis>ksig</emphasis>.
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-asrc <emphasis role="opc">buzz</emphasis> 10000, 440, 20, 1 <emphasis role="comment">; band-limited pulse train</emphasis>
-adif <emphasis role="opc">diff</emphasis> asrc <emphasis role="comment">; emphasize the highs</emphasis>
-anew <emphasis role="opc">balance</emphasis> adif, asrc <emphasis role="comment">; but retain the power</emphasis>
-agate <emphasis role="opc">reson</emphasis> asrc, 0, 440 <emphasis role="comment">; use a lowpass of the original</emphasis>
-asamp <emphasis role="opc">samphold</emphasis> anew, agate <emphasis role="comment">; to gate the new audiosig</emphasis>
-aout <emphasis role="opc">tone</emphasis> asamp, 100 <emphasis role="comment">; smooth out the rough edges</emphasis></programlisting>
- </informalexample>
+ Here is an example of the upsamp opcode. It uses the file <ulink url="examples/upsamp.csd"><citetitle>upsamp.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the upsamp opcode.</title>
+ <xi:include href="examples-xml/upsamp.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
-
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/urd.xml b/opcodes/urd.xml
index 780c4b6..016b28b 100644
--- a/opcodes/urd.xml
+++ b/opcodes/urd.xml
@@ -61,6 +61,36 @@
</para>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the urd opcode. It uses the file <ulink url="examples/urd.csd"><citetitle>urd.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the urd opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/urd.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+ i1 184.61538
+ i1 130.76923
+ i1 169.23077
+ i1 12.00000
+.......
+
+WARNING: Seeding from current time 3751086165
+
+ i2 138.46154
+ i2 12.00000
+ i2 123.07692
+ i2 161.53846
+ i2 123.07692
+ i2 153.84615
+......
+ </screen>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/vadd.xml b/opcodes/vadd.xml
index 11ddb5f..9f4cee7 100644
--- a/opcodes/vadd.xml
+++ b/opcodes/vadd.xml
@@ -1,104 +1,107 @@
-
-<refentry id="vadd">
-<indexterm id="IndexVadd"><primary>vadd</primary></indexterm>
- <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vadd</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vadd</refname>
- <refpurpose>
- Adds a scalar value to a vector in a table.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Adds a scalar value to a vector in a table.
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vadd</command> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kval</emphasis> - scalar value to be added
- </para>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the vector
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination table (Optional, default = 0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vadd</emphasis> adds the value of <emphasis>kval</emphasis> to each element of the vector contained in the table <emphasis>ifn</emphasis>, starting from table index <emphasis>idstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
- </para>
- <para>
- Note that this opcode runs at k-rate so the value of <emphasis>kval</emphasis> is added every control period. Use with care or you will end up with very large numbers (or use <link linkend="vadd_i"><citetitle>vadd_i</citetitle></link>).
- </para>
- <para>
- These opcodes (<link linkend="vadd"><citetitle>vadd</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>) perform numeric operations between a vectorial control signal (hosted by the table <emphasis>ifn</emphasis>), and a scalar signal (<emphasis>kval</emphasis>). Result is a new vector that overrides old values of <emphasis>ifn</emphasis>. All these opcodes work at k-rate.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
- </para>
- <para>
- If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
- </para>
- <para>
- In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vadd opcode. It uses the file <ulink url="examples/vadd.csd"><citetitle>vadd.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vadd opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
-<xi:include href="examples-xml/vadd.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>See also</title>
- <para>
- <link linkend="vadd_i"><citetitle>vadd_i</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vadd">
+<indexterm id="IndexVadd"><primary>vadd</primary></indexterm>
+ <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vadd</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vadd</refname>
+ <refpurpose>
+ Adds a scalar value to a vector in a table.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Adds a scalar value to a vector in a table.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vadd</command> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kval</emphasis> - scalar value to be added
+ </para>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the vector
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination table (Optional, default=0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Optional, default=0)
+ </para>
+ <para>
+ <emphasis>vadd</emphasis> adds the value of <emphasis>kval</emphasis> to each element of the vector contained in the table <emphasis>ifn</emphasis>, starting from table index <emphasis>kdstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
+ </para>
+ <para>
+ Note that this opcode runs at k-rate so the value of <emphasis>kval</emphasis> is added every control period. Use with care or you will end up with very large numbers (or use <link linkend="vadd_i"><citetitle>vadd_i</citetitle></link>).
+ </para>
+ <para>
+ These opcodes (<link linkend="vadd"><citetitle>vadd</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>) perform numeric operations between a vectorial control signal (hosted by the table <emphasis>ifn</emphasis>), and a scalar signal (<emphasis>kval</emphasis>). Result is a new vector that overrides old values of <emphasis>ifn</emphasis>. All these opcodes work at k-rate.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
+ </para>
+ <para>
+ If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
+ </para>
+ <para>
+ In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vadd opcode. It uses the file <ulink url="examples/vadd.csd"><citetitle>vadd.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the vadd opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vadd.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See also</title>
+ <para>
+ <link linkend="vadd_i"><citetitle>vadd_i</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vaddv.xml b/opcodes/vaddv.xml
index 7c0318a..871ffee 100644
--- a/opcodes/vaddv.xml
+++ b/opcodes/vaddv.xml
@@ -1,106 +1,105 @@
-
-<refentry id="vaddv">
-<indexterm id="IndexVaddv"><primary>vaddv</primary></indexterm>
- <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vaddv</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vaddv</refname>
- <refpurpose>
- Performs addition between two vectorial control signals
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Performs addition between two vectorial control signals
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vaddv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
- </para>
- <para>
- <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the two vectors
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination (ifn1) table (Default=0)
- </para>
- <para>
- <emphasis>ksrcoffset</emphasis> - index offset for the source (ifn2) table (Default=0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vaddv</emphasis> adds two vectorial control signals, that is, each element of the first vector is processed (only) with the corresponding element of the other vector. Each vectorial signal is hosted by a table (ifn1 and ifn2). The number of elements contained in both vectors must be the same.
- </para>
- <para>
- The result is a new vectorial control signal that overrides old values of ifn1. If you want to keep the old ifn1 vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link>opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 0 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 0 (i.e. the destination vector will not be changed for these elements).
- </para>
- <warning>
- <para>
- Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
- </para>
- </warning>
- <para>
- Please note that using the same table as source and destination table, might produce unexpected behavior so use with care.
- </para>
- <para>
- This opcode works at k-rate (this means that every k-pass the vectors are added). There's an i-rate version of this opcode called <link linkend="vaddv_i"><citetitle>vaddv_i</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- <para>
- All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>,<link linkend="vmultv"><citetitle>vmultv</citetitle></link>,<link linkend="vdivv"><citetitle>vdivv</citetitle></link>,<link linkend="vpowv"><citetitle>vpowv</citetitle></link>,<link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
- </para>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vaddv opcode. It uses the file <ulink url="examples/vaddv.csd"><citetitle>vaddv.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vaddv opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
-<xi:include href="examples-xml/vaddv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vaddv">
+<indexterm id="IndexVaddv"><primary>vaddv</primary></indexterm>
+ <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vaddv</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vaddv</refname>
+ <refpurpose>
+ Performs addition between two vectorial control signals.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Performs addition between two vectorial control signals.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vaddv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
+ </para>
+ <para>
+ <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the two vectors
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination (<emphasis>ifn1</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>ksrcoffset</emphasis> - index offset for the source (<emphasis>ifn2</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
+ </para>
+ <para>
+ <emphasis>vaddv</emphasis> adds two vectorial control signals, that is, each element of the first vector is processed (only) with the corresponding element of the other vector. Each vectorial signal is hosted by a table (<emphasis>ifn1</emphasis> and <emphasis>ifn2</emphasis>). The number of elements contained in both vectors must be the same.
+ </para>
+ <para>
+ The result is a new vectorial control signal that overrides old values of ifn1. If you want to keep the old ifn1 vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link>opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 0 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 0 (i.e. the destination vector will not be changed for these elements).
+ </para>
+ <warning>
+ <para>
+ Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
+ </para>
+ </warning>
+ <para>
+ This opcode works at k-rate (this means that every k-pass the vectors are added). There's an i-rate version of this opcode called <link linkend="vaddv_i"><citetitle>vaddv_i</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ <para>
+ All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>,<link linkend="vmultv"><citetitle>vmultv</citetitle></link>,<link linkend="vdivv"><citetitle>vdivv</citetitle></link>,<link linkend="vpowv"><citetitle>vpowv</citetitle></link>,<link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vaddv opcode. It uses the file <ulink url="examples/vaddv.csd"><citetitle>vaddv.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the vaddv opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vaddv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vaget.xml b/opcodes/vaget.xml
index 7cc95b0..cf1b70c 100644
--- a/opcodes/vaget.xml
+++ b/opcodes/vaget.xml
@@ -1,86 +1,90 @@
-<refentry id="vaget">
-<indexterm id="IndexAvarGet"><primary>vaget</primary></indexterm>
- <refentryinfo><title>Signal Modifiers:Sample Level Operators</title></refentryinfo>
- <refmeta>
- <refentrytitle>vaget</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>vaget</refname>
- <refpurpose>
- Access values of the current buffer of an a-rate variable by indexing.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Access values of the current buffer of an a-rate variable by indexing.
- Useful for doing sample-by-sample manipulation at k-rate without using
- setksmps 1.
-
- <note>
- <title>Note</title>
- <para>Because this opcode does not do any bounds checking, the user
- must be careful not to try to read values past ksmps (the
- size of a buffer for an a-rate variable) by using index values greater
- than ksmps.</para>
- </note>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>kval <command>vaget</command> kndx, avar</synopsis>
- </refsect1>
-
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kval</emphasis> - value read from avar
- </para>
- <para>
- <emphasis>kndx</emphasis> - index of the sample to read from the current
- buffer of the given avar variable
- </para>
- <para>
- <emphasis>avar</emphasis> - a-rate variable to read from
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vaget opcode. It uses the file <ulink url="examples/vaget.csd"><citetitle>vaget.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vaget opcode.</title>
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/vaget.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="vaset"><citetitle>vaset</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: Steven Yi</member>
- </simplelist>
- </para>
-
- <para>New in version 5.04</para>
- <para>September 2006.</para>
- </refsect1>
-</refentry>
+<refentry id="vaget">
+<indexterm id="IndexAvarGet"><primary>vaget</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Sample Level Operators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vaget</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>vaget</refname>
+ <refpurpose>
+ Access values of the current buffer of an a-rate variable by indexing.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Access values of the current buffer of an a-rate variable by indexing.
+ Useful for doing sample-by-sample manipulation at k-rate without using
+ setksmps 1.
+
+ <note>
+ <title>Note</title>
+ <para>Because this opcode does not do any bounds checking, the user
+ must be careful not to try to read values past ksmps (the
+ size of a buffer for an a-rate variable) by using index values greater
+ than ksmps.</para>
+ </note>
+ <note>
+ <title>Note</title>
+ <para>In Csound6 this opcode does do bounds checking.</para>
+ </note>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>kval <command>vaget</command> kndx, avar</synopsis>
+ </refsect1>
+
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kval</emphasis> - value read from avar
+ </para>
+ <para>
+ <emphasis>kndx</emphasis> - index of the sample to read from the current
+ buffer of the given avar variable
+ </para>
+ <para>
+ <emphasis>avar</emphasis> - a-rate variable to read from
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vaget opcode. It uses the file <ulink url="examples/vaget.csd"><citetitle>vaget.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the vaget opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vaget.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vaset"><citetitle>vaset</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Steven Yi</member>
+ </simplelist>
+ </para>
+
+ <para>New in version 5.04</para>
+ <para>September 2006.</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/valpass.xml b/opcodes/valpass.xml
index a7e1379..927d7c0 100644
--- a/opcodes/valpass.xml
+++ b/opcodes/valpass.xml
@@ -54,6 +54,25 @@
This filter reiterates input with an echo density determined by loop time <emphasis>xlpt</emphasis>. The attenuation rate is independent and is determined by <emphasis>krvt</emphasis>, the reverberation time (defined as the time in seconds for a signal to decay to 1/1000, or 60dB down from its original amplitude). Its output will begin to appear immediately.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the valpass opcode. It uses the file <ulink url="examples/valpass.csd"><citetitle>valpass.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the valpass opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/valpass.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ <para>
+ Here is another example of the valpass opcode. It uses the file <ulink url="examples/valpass-2.csd"><citetitle>valpass-2.csd</citetitle></ulink>.
+ <example>
+ <title>Second example of the valpass opcode.</title>
+ <xi:include href="examples-xml/valpass-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/vaset.xml b/opcodes/vaset.xml
index 3f95f42..e29b535 100644
--- a/opcodes/vaset.xml
+++ b/opcodes/vaset.xml
@@ -1,86 +1,90 @@
-<refentry id="vaset">
-<indexterm id="IndexAvarSet"><primary>vaset</primary></indexterm>
- <refentryinfo><title>Signal Modifiers:Sample Level Operators</title></refentryinfo>
- <refmeta>
- <refentrytitle>vaset</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>vaset</refname>
- <refpurpose>
- Write value of into the current buffer of an a-rate variable by index.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Write values into the current buffer of an a-rate variable at the given
- index. Useful for doing sample-by-sample manipulation at k-rate without
- using setksmps 1.
-
- <note>
- <title>Note</title>
- <para>Because this opcode does not do any bounds checking, the user
- must be careful not to try to write values past ksmps (the
- size of a buffer for an a-rate variable) by using index values greater
- than ksmps.</para>
- </note>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vaset</command> kval, kndx, avar</synopsis>
- </refsect1>
-
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kval</emphasis> - value to write into avar
- </para>
- <para>
- <emphasis>kndx</emphasis> - index of the sample to write to the current
- buffer of the given avar variable
- </para>
- <para>
- <emphasis>avar</emphasis> - a-rate variable to write to
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vaset opcode. It uses the file <ulink url="examples/vaset.csd"><citetitle>vaset.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vaset opcode.</title>
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/vaset.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <link linkend="vaget"><citetitle>vaget</citetitle></link>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: Steven Yi</member>
- </simplelist>
- </para>
-
- <para>New in version 5.04</para>
- <para>September 2006.</para>
- </refsect1>
-</refentry>
+<refentry id="vaset">
+<indexterm id="IndexAvarSet"><primary>vaset</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Sample Level Operators</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vaset</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>vaset</refname>
+ <refpurpose>
+ Write value of into the current buffer of an a-rate variable by index.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Write values into the current buffer of an a-rate variable at the given
+ index. Useful for doing sample-by-sample manipulation at k-rate without
+ using setksmps 1.
+
+ <note>
+ <title>Note</title>
+ <para>Because this opcode does not do any bounds checking, the user
+ must be careful not to try to write values past ksmps (the
+ size of a buffer for an a-rate variable) by using index values greater
+ than ksmps.</para>
+ </note>
+ <note>
+ <title>Note</title>
+ <para>In Csound6 this opcode does do bounds checking.</para>
+ </note>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vaset</command> kval, kndx, avar</synopsis>
+ </refsect1>
+
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kval</emphasis> - value to write into avar
+ </para>
+ <para>
+ <emphasis>kndx</emphasis> - index of the sample to write to the current
+ buffer of the given avar variable
+ </para>
+ <para>
+ <emphasis>avar</emphasis> - a-rate variable to write to
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vaset opcode. It uses the file <ulink url="examples/vaset.csd"><citetitle>vaset.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the vaset opcode.</title>
+
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vaset.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vaget"><citetitle>vaget</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Steven Yi</member>
+ </simplelist>
+ </para>
+
+ <para>New in version 5.04</para>
+ <para>September 2006.</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/vbap.xml b/opcodes/vbap.xml
new file mode 100644
index 0000000..9851c0f
--- /dev/null
+++ b/opcodes/vbap.xml
@@ -0,0 +1,160 @@
+
+<refentry id="vbap">
+<indexterm id="IndexVbap"><primary>vbap</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Panning and Spatialization</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vbap</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vbap</refname>
+ <refpurpose>
+ Distributes an audio signal among many channels.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Distributes an audio signal amongmany channels, up to 64 in the
+ first form, arbitrary in the second.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ar1[, ar2...] <command>vbap</command> asig, kazim [,
+ kelev] [, kspread] [, ilayout]</synopsis>
+ <synopsis>array[] <command>vbap</command> asig, kazim [,
+ kelev] [, kspread] [, ilayout]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ilayout</emphasis> -- index of the speaker layout in
+ the range 0-99, corresponding to a call to
+ <emphasis>vbaplsinit</emphasis>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>asig</emphasis> -- audio signal to be panned
+ </para>
+ <para>
+ <emphasis>kazim</emphasis> -- azimuth angle of the virtual source
+ </para>
+
+ <para>
+ <emphasis>kelev</emphasis> (optional) -- elevation angle of the virtual source
+ </para>
+
+ <para>
+ <emphasis>kspread</emphasis> (optional) -- spreading of the
+ virtual source (range 0 - 100). If value is zero, conventional
+ amplitude panning is used. When <emphasis>kspread</emphasis> is
+ increased, the number of loudspeakers used in panning
+ increases. If value is 100, the sound is applied to all
+ loudspeakers.
+ </para>
+
+ <para>
+ <emphasis>vbap</emphasis> takes an input signal,
+ <emphasis>asig</emphasis> and distributes it among the outputs,
+ according to the controls <emphasis>kazim</emphasis> and
+ <emphasis>kelev</emphasis>, and the configured loudspeaker
+ placement. If <emphasis>idim</emphasis> = 2,
+ <emphasis>kelev</emphasis> is set to zero. The distribution is
+ performed using Vector Base Amplitude Panning (VBAP - See
+ reference). VBAP distributes the signal using loudspeaker data
+ configured with <emphasis>vbaplsinit</emphasis>. The signal is
+ applied to, at most, two loudspeakers in 2-D loudspeaker
+ configurations, and three loudspeakers in 3-D loudspeaker
+ configurations. If the virtual source is panned outside the
+ region spanned by loudspeakers, the nearest loudspeakers are
+ used in panning.
+ </para>
+ <warning>
+ <para>Please note that all <emphasis>vbap</emphasis> panning opcodes require the <emphasis>vbap</emphasis> system to be initialized using <link linkend="vbaplsinit"><citetitle>vbaplsinit</citetitle></link>.</para>
+ </warning>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ See the entry for <link linkend="vbap8"><citetitle>vbap8</citetitle></link> for an example of usage of the <emphasis>vbap</emphasis> opcodes.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Reference</title>
+ <para>
+ Ville Pulkki: <quote>Virtual Sound Source Positioning Using Vector Base Amplitude Panning</quote> <emphasis>Journal of the Audio Engineering Society</emphasis>, 1997 June, Vol. 45/6, p. 456.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vbap opcode. It uses the file <ulink url="examples/vbap.csd"><citetitle>vbap.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vbap opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vbap.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+spread of source = 0
+spread of source = 8
+spread of source = 17
+spread of source = 25
+spread of source = 33
+spread of source = 42
+spread of source = 50
+spread of source = 58
+spread of source = 67
+spread of source = 75
+spread of source = 83
+spread of source = 92
+spread of source = 100
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vbapmove"><citetitle>vbapmove</citetitle></link>,
+ <link linkend="vbap16"><citetitle>vbap16</citetitle></link>,
+ <link linkend="vbap16move"><citetitle>vbap16move</citetitle></link>,
+ <link linkend="vbap4"><citetitle>vbap4</citetitle></link>,
+ <link linkend="vbap4move"><citetitle>vbap4move</citetitle></link>,
+ <link linkend="vbap8"><citetitle>vbap8</citetitle></link>,
+ <link linkend="vbap8move"><citetitle>vbap8move</citetitle></link>,
+ <link linkend="vbaplsinit"><citetitle>vbaplsinit</citetitle></link>,
+ <link linkend="vbapz"><citetitle>vbapz</citetitle></link>,
+ <link linkend="vbapzmove"><citetitle>vbapzmove</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Ville Pulkki</member>
+ <member>Sibelius Academy Computer Music Studio</member>
+ <member>Laboratory of Acoustics and Audio Signal Processing</member>
+ <member>Helsinki University of Technology</member>
+ <member>Helsinki, Finland</member>
+ <member>May 2000</member>
+ <member>Author: &namejohn;</member>
+ <member>July 2012, Sept 2013</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound Version 5.17.13. </para>
+ <para>Array version new in Csound Version 6.01. </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/vbap4.xml b/opcodes/vbap4.xml
index 2a59102..7652c76 100644
--- a/opcodes/vbap4.xml
+++ b/opcodes/vbap4.xml
@@ -67,6 +67,34 @@
Ville Pulkki: <quote>Virtual Sound Source Positioning Using Vector Base Amplitude Panning</quote> <emphasis>Journal of the Audio Engineering Society</emphasis>, 1997 June, Vol. 45/6, p. 456.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vbap4 opcode. It uses the file <ulink url="examples/vbap4.csd"><citetitle>vbap4.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vbap4 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vbap4.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+spread of source = 0
+spread of source = 8
+spread of source = 17
+spread of source = 25
+spread of source = 33
+spread of source = 42
+spread of source = 50
+spread of source = 58
+spread of source = 67
+spread of source = 75
+spread of source = 83
+spread of source = 92
+spread of source = 100
+ </screen>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/vbap4move.xml b/opcodes/vbap4move.xml
index a97cb58..4bd8380 100644
--- a/opcodes/vbap4move.xml
+++ b/opcodes/vbap4move.xml
@@ -79,6 +79,18 @@
Ville Pulkki: <quote>Virtual Sound Source Positioning Using Vector Base Amplitude Panning</quote> <emphasis>Journal of the Audio Engineering Society</emphasis>, 1997 June, Vol. 45/6, p. 456.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vbap4move opcode. It uses the file <ulink url="examples/vbap4move.csd"><citetitle>vbap4move.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vbap4move opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vbap4move.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>See Also</title>
diff --git a/opcodes/vbapg.xml b/opcodes/vbapg.xml
new file mode 100644
index 0000000..29a7f7c
--- /dev/null
+++ b/opcodes/vbapg.xml
@@ -0,0 +1,154 @@
+
+<refentry id="vbapg">
+<indexterm id="IndexVbapg"><primary>vbapg</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Panning and Spatialization</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vbapg</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vbapg</refname>
+ <refpurpose>
+ Calculates the gains for a sound location between multiple channels.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Calculates the gains for a sound location for up to 64.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>k1[, k2...] <command>vbapg</command> kazim [,kelev] [, kspread] [, ilayout]</synopsis>
+ <synopsis>karray[] <command>vbapg</command> kazim [,kelev] [, kspread] [, ilayout]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ilayout</emphasis> -- index of the speaker layout in
+ the range 0-99, corresponding to a call to
+ <emphasis>vbaplsinit</emphasis>. The default value is 0.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kazim</emphasis> -- azimuth angle of the virtual source
+ </para>
+
+ <para>
+ <emphasis>kelev</emphasis> (optional) -- elevation angle of the virtual source
+ </para>
+
+ <para>
+ <emphasis>kspread</emphasis> (optional) -- spreading of the
+ virtual source (range 0 - 100). If value is zero, conventional
+ amplitude panning is used. When <emphasis>kspread</emphasis> is
+ increased, the number of loudspeakers used in panning
+ increases. If value is 100, the sound is applied to all
+ loudspeakers.
+ </para>
+
+ <para>
+ <emphasis>vbapg</emphasis> calculates the gains that an input
+ signal would have between multiple speakers
+ according to the controls <emphasis>kazim</emphasis> and
+ <emphasis>kelev</emphasis>, and the configured loudspeaker
+ placement <emphasis>ilayout</emphasis>. If <emphasis>idim</emphasis> = 2,
+ <emphasis>kelev</emphasis> is set to zero. The distribution is
+ performed using Vector Base Amplitude Panning (VBAP - See
+ reference). VBAP distributes the signal using loudspeaker data
+ configured with <emphasis>vbaplsinit</emphasis>. The signal is
+ applied to, at most, two loudspeakers in 2-D loudspeaker
+ configurations, and three loudspeakers in 3-D loudspeaker
+ configurations. If the virtual source is panned outside the
+ region spanned by loudspeakers, the nearest loudspeakers are
+ used in panning.
+ </para>
+ <warning>
+ <para>Please note that all <emphasis>vbap</emphasis> panning opcodes require the <emphasis>vbap</emphasis> system to be initialized using <link linkend="vbaplsinit"><citetitle>vbaplsinit</citetitle></link>.</para>
+ </warning>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Reference</title>
+ <para>
+ Ville Pulkki: <quote>Virtual Sound Source Positioning Using Vector Base Amplitude Panning</quote> <emphasis>Journal of the Audio Engineering Society</emphasis>, 1997 June, Vol. 45/6, p. 456.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vbapg opcode. It uses the file <ulink url="examples/vbapg.csd"><citetitle>vbapg.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vbapg opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vbapg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+spread of source = 0
+spread of source = 8
+spread of source = 17
+spread of source = 25
+spread of source = 33
+spread of source = 42
+spread of source = 50
+spread of source = 58
+spread of source = 67
+spread of source = 75
+spread of source = 83
+spread of source = 92
+spread of source = 100
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vbap"><citetitle>vbap</citetitle></link>,
+ <link linkend="vbapmove"><citetitle>vbapmove</citetitle></link>,
+ <link linkend="vbap4"><citetitle>vbap4</citetitle></link>,
+ <link linkend="vbap4move"><citetitle>vbap4move</citetitle></link>,
+ <link linkend="vbap8"><citetitle>vbap8</citetitle></link>,
+ <link linkend="vbap8move"><citetitle>vbap8move</citetitle></link>,
+ <link linkend="vbap16"><citetitle>vbap16</citetitle></link>,
+ <link linkend="vbap16move"><citetitle>vbap16move</citetitle></link>,
+ <link linkend="vbaplsinit"><citetitle>vbaplsinit</citetitle></link>,
+ <link linkend="vbapz"><citetitle>vbapz</citetitle></link>,
+ <link linkend="vbapzmove"><citetitle>vbapzmove</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Ville Pulkki</member>
+ <member>Sibelius Academy Computer Music Studio</member>
+ <member>Laboratory of Acoustics and Audio Signal Processing</member>
+ <member>Helsinki University of Technology</member>
+ <member>Helsinki, Finland</member>
+ <member>May 2000</member>
+ <member>Author: &namejohn;</member>
+ <member>July 2012, Sept 2013</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound Version 5.17.13. </para>
+ <para>Array version new in Csound Version 6.01. </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/vbapgmove.xml b/opcodes/vbapgmove.xml
new file mode 100644
index 0000000..e7ba7d0
--- /dev/null
+++ b/opcodes/vbapgmove.xml
@@ -0,0 +1,131 @@
+
+<refentry id="vbapgmove">
+<indexterm id="IndexVbapgmove"><primary>vbapgmove</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Panning and Spatialization</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vbapgmove</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vbapgmove</refname>
+ <refpurpose>
+ Calculates the gains for a sound location between multiple
+ channels with moving virtual sources.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Calculates the gains for a sound location between multiple
+ channels with moving virtual sources.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>kr1[, kr2...] <command>vbapgmove</command> idur, ispread, ifldnum, ifld1 \
+ [, ifld2] [...]</synopsis>
+ <synopsis>karray[] <command>vbapgmove</command> idur, ispread, ifldnum, ifld1 \
+ [, ifld2] [...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>idur</emphasis> -- the duration over which the
+ movement takes place.
+ </para>
+ <para>
+ <emphasis>ispread</emphasis> -- spreading of the virtual source
+ (range 0 - 100). If value is zero, conventional amplitude panning
+ is used. When <emphasis>ispread</emphasis> is increased, the
+ number of loudspeakers used in panning increases. If value is 100,
+ the sound is applied to all loudspeakers.
+ </para>
+
+ <para>
+ <emphasis>ifldnum</emphasis> -- number of fields (absolute value must be 2 or larger). If <emphasis>ifldnum</emphasis> is positive, the virtual source movement is a polyline specified by given directions. Each transition is performed in an equal time interval. If <emphasis>ifldnum</emphasis> is negative, specified angular velocities are applied to the virtual source during specified relative time intervals (see below).
+ </para>
+
+ <para>
+ <emphasis>ifld1, ifld2, ...</emphasis> -- azimuth angles or angular velocities, and relative durations of movement phases (see below).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+
+ <para>
+ <emphasis>vbapgmove</emphasis> allows the use of moving virtual sources. If <emphasis>ifldnum</emphasis> is positive, the fields represent directions of virtual sources and equal times, <emphasis>iazi1</emphasis>, [<emphasis>iele1</emphasis>,] <emphasis>iazi2</emphasis>, [<emphasis>iele2</emphasis>,], etc. The position of the virtual source is interpolated between directions starting from the first direction and ending at the last. Each interval is interpolated in time that is fraction total_time / number_of_intervals of the duration of the sound event.
+ </para>
+
+ <para>
+ If <emphasis>ifldnum</emphasis> is negative, the fields represent angular velocities and equal times. The first field is, however, the starting direction, <emphasis>iazi1</emphasis>, [<emphasis>iele1</emphasis>,] <emphasis>iazi_vel1</emphasis>, [<emphasis>iele_vel1</emphasis>,] <emphasis>iazi_vel2</emphasis>, [<emphasis>iele_vel2</emphasis>,] .... Each velocity is applied to the note that is fraction total_time / number_of_velocities of the duration of the sound event. If the elevation of the virtual source becomes greater than 90 degrees or less than 0 degrees, the polarity of angular velocity is changed. Thus the elevational angular velocity produces a virtual source that moves up and down between 0 and 90 degrees.
+ </para>
+ <warning>
+ <para>Please note that all <emphasis>vbap</emphasis> panning opcodes require the <emphasis>vbap</emphasis> system to be initialized using <link linkend="vbaplsinit"><citetitle>vbaplsinit</citetitle></link>.</para>
+ </warning>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vbapgmove opcode. It uses the file
+ <ulink
+ url="examples/vbapgmove.csd"><citetitle>vbapgmove.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vbapg opcode.</title>
+ <para>See the sections <link
+ linkend="UsingRealTime"><citetitle>Real-time
+ Audio</citetitle></link> and <link
+ linkend="CommandFlags"><citetitle>Command Line
+ Flags</citetitle></link> for more information on using command
+ line flags.
+ </para>
+ <xi:include href="examples-xml/vbapgmove.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Reference</title>
+ <para>
+ Ville Pulkki: <quote>Virtual Sound Source Positioning Using Vector Base Amplitude Panning</quote> <emphasis>Journal of the Audio Engineering Society</emphasis>, 1997 June, Vol. 45/6, p. 456.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vbap"><citetitle>vbap</citetitle></link>,
+ <link linkend="vbap16"><citetitle>vbap16</citetitle></link>,
+ <link linkend="vbap16move"><citetitle>vbap16move</citetitle></link>,
+ <link linkend="vbap4"><citetitle>vbap4</citetitle></link>,
+ <link linkend="vbap4move"><citetitle>vbap4move</citetitle></link>,
+ <link linkend="vbap8"><citetitle>vbap8</citetitle></link>,
+ <link linkend="vbap8move"><citetitle>vbap8move</citetitle></link>,
+ <link linkend="vbaplsinit"><citetitle>vbaplsinit</citetitle></link>,
+ <link linkend="vbapz"><citetitle>vbapz</citetitle></link>,
+ <link linkend="vbapzmove"><citetitle>vbapzmove</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Ville Pulkki</member>
+ <member>Sibelius Academy Computer Music Studio</member>
+ <member>Laboratory of Acoustics and Audio Signal Processing</member>
+ <member>Helsinki University of Technology</member>
+ <member>Helsinki, Finland</member>
+ <member>May 2000</member>
+ <member>Author: &namejohn;</member>
+ <member>July 2012, Sept 2013</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound Version 5.17.13</para>
+ <para>Array outputs new in Csound Version 6.01</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/vbaplsinit.xml b/opcodes/vbaplsinit.xml
index bcd942b..194e70c 100644
--- a/opcodes/vbaplsinit.xml
+++ b/opcodes/vbaplsinit.xml
@@ -28,15 +28,35 @@
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>idim</emphasis> -- dimensionality of loudspeaker array. Either 2 or 3.
+ <emphasis>idim</emphasis> -- dimensionality of loudspeaker
+ array. Either 2 or 3. If the dimension has a fractional part
+ then that is used as the index of the layout created (used in
+ <emphasis>vbap</emphasis>, <emphasis>vbapz</emphasis> and
+ <emphasis>vbapg</emphasis> only). The factional part should be
+ between .00 and .99.
</para>
<para>
- <emphasis>ilsnum</emphasis> -- number of loudspeakers. In two dimensions, the number can vary from 2 to 16. In three dimensions, the number can vary from 3 and 16.
+ <emphasis>ilsnum</emphasis> -- number of loudspeakers. In two
+ dimensions, the number can vary from 2 to 64. In three
+ dimensions, the number can vary from 3 and 64.
</para>
<para>
- <emphasis>idir1, idir2, ..., idir32</emphasis> -- directions of loudspeakers. Number of directions must be less than or equal to 16. In two-dimensional loudspeaker positioning, <emphasis>idir</emphasis>n is the azimuth angle respective to <emphasis>n</emphasis>th channel. In three-dimensional loudspeaker positioning, fields are the azimuth and elevation angles of each loudspeaker consequently (<emphasis>azi1</emphasis>, <emphasis>ele1</emphasis>, <emphasis>azi2</emphasis>, <emphasis>ele2</emphasis>, etc.).
+ <emphasis>idir1, idir2, ..., idir32</emphasis> -- directions of
+ loudspeakers. Number of directions must be less than or equal to
+ 16. In two-dimensional loudspeaker positioning,
+ <emphasis>idir</emphasis>n is the azimuth angle respective to
+ <emphasis>n</emphasis>th channel. In three-dimensional
+ loudspeaker positioning, fields are the azimuth and elevation
+ angles of each loudspeaker consequently
+ (<emphasis>azi1</emphasis>, <emphasis>ele1</emphasis>,
+ <emphasis>azi2</emphasis>, <emphasis>ele2</emphasis>, etc.).
+ </para>
+ <para>
+ <note> In 2 dimensions the angle between two adjacent speakers
+ must be less than 179 degrees (170 degrees in earlier versions).
+ This is a restriction of the algorithm.</note>
</para>
</refsect1>
@@ -50,28 +70,13 @@
<refsect1>
<title>Examples</title>
<para>
- See the entry for <link linkend="vbap8move"><citetitle>vbap8move</citetitle></link> and <link linkend="vbap8"><citetitle>vbap8</citetitle></link> for examples of usage of the <emphasis>vbap</emphasis> opcodes.
-<!-- <example>
- <title>2-D panning example with stationary virtual sources</title>
- <programlisting>
- <emphasis>sr</emphasis> = 4100
- <emphasis>kr</emphasis> = 441
- <emphasis>ksmps</emphasis> = 100
- <emphasis>nchnls</emphasis> = 4
- <emphasis>vbaplsinit</emphasis> 2, 6, 0, 45, 90, 135, 200, 245, 290, 315
-
- <emphasis>instr</emphasis> 1
- asig <emphasis>oscil</emphasis> 20000, 440, 1
- a1,a2,a3,a4,a5,a6,a7,a8 <emphasis>vbap8</emphasis> asig, p4, 0, 20 ;p4 = azimuth
-
- ;render twice with alternate <emphasis>outq</emphasis> statements
- ; to obtain two 4 channel .wav files:
-
- <emphasis>outq</emphasis> a1,a2,a3,a4
- ; <emphasis>outq</emphasis> a5,a6,a7,a8
- <emphasis>endin</emphasis>
- </programlisting>
- </example>-->
+ Here is an example of the vbaplsinit opcode. It uses the file <ulink url="examples/vbaplsinit.csd"><citetitle>vbaplsinit.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vbaplsinit opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vbaplsinit.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ See the other entries of the vbap opcodes for different examples.
</para>
</refsect1>
@@ -85,12 +90,14 @@
<refsect1>
<title>See Also</title>
<para>
- <link linkend="vbap16"><citetitle>vbap16</citetitle></link>,
- <link linkend="vbap16move"><citetitle>vbap16move</citetitle></link>,
+ <link linkend="vbap"><citetitle>vbap</citetitle></link>,
+ <link linkend="vbapg"><citetitle>vbapg</citetitle></link>,
<link linkend="vbap4"><citetitle>vbap4</citetitle></link>,
<link linkend="vbap4move"><citetitle>vbap4move</citetitle></link>,
<link linkend="vbap8"><citetitle>vbap8</citetitle></link>,
<link linkend="vbap8move"><citetitle>vbap8move</citetitle></link>,
+ <link linkend="vbap16"><citetitle>vbap16</citetitle></link>,
+ <link linkend="vbap16move"><citetitle>vbap16move</citetitle></link>,
<link linkend="vbapz"><citetitle>vbapz</citetitle></link>,
<link linkend="vbapzmove"><citetitle>vbapzmove</citetitle></link>
</para>
@@ -110,5 +117,6 @@
</para>
<para>New in Csound Version 4.07</para>
+ <para>Multiple layouts new ib version 5.17.14</para>
</refsect1>
</refentry>
diff --git a/opcodes/vbapmove.xml b/opcodes/vbapmove.xml
new file mode 100644
index 0000000..fad675c
--- /dev/null
+++ b/opcodes/vbapmove.xml
@@ -0,0 +1,132 @@
+
+<refentry id="vbapmove">
+<indexterm id="IndexVbapmove"><primary>vbapmove</primary></indexterm>
+ <refentryinfo><title>Signal Modifiers:Panning and Spatialization</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vbapmove</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vbapmove</refname>
+ <refpurpose>
+ Distributes an audio signal among many channels with moving virtual sources.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Distributes an audio signal among upto 64 channels with moving
+ virtual sources.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ar1[, ar2...] <command>vbapmove</command> asig, idur, ispread, ifldnum, ifld1 \
+ [, ifld2] [...]</synopsis>
+ <synopsis>aarray[] <command>vbapmove</command> asig, idur, ispread, ifldnum, ifld1 \
+ [, ifld2] [...]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>idur</emphasis> -- the duration over which the
+ movement takes place.
+ </para>
+ <para>
+ <emphasis>ispread</emphasis> -- spreading of the virtual source
+ (range 0 - 100). If value is zero, conventional amplitude panning
+ is used. When <emphasis>ispread</emphasis> is increased, the
+ number of loudspeakers used in panning increases. If value is 100,
+ the sound is applied to all loudspeakers.
+ </para>
+
+ <para>
+ <emphasis>ifldnum</emphasis> -- number of fields (absolute value must be 2 or larger). If <emphasis>ifldnum</emphasis> is positive, the virtual source movement is a polyline specified by given directions. Each transition is performed in an equal time interval. If <emphasis>ifldnum</emphasis> is negative, specified angular velocities are applied to the virtual source during specified relative time intervals (see below).
+ </para>
+
+ <para>
+ <emphasis>ifld1, ifld2, ...</emphasis> -- azimuth angles or angular velocities, and relative durations of movement phases (see below).
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>asig</emphasis> -- audio signal to be panned
+ </para>
+
+ <para>
+ <emphasis>vbapmove</emphasis> allows the use of moving virtual sources. If <emphasis>ifldnum</emphasis> is positive, the fields represent directions of virtual sources and equal times, <emphasis>iazi1</emphasis>, [<emphasis>iele1</emphasis>,] <emphasis>iazi2</emphasis>, [<emphasis>iele2</emphasis>,], etc. The position of the virtual source is interpolated between directions starting from the first direction and ending at the last. Each interval is interpolated in time that is fraction total_time / number_of_intervals of the duration of the sound event.
+ </para>
+
+ <para>
+ If <emphasis>ifldnum</emphasis> is negative, the fields represent angular velocities and equal times. The first field is, however, the starting direction, <emphasis>iazi1</emphasis>, [<emphasis>iele1</emphasis>,] <emphasis>iazi_vel1</emphasis>, [<emphasis>iele_vel1</emphasis>,] <emphasis>iazi_vel2</emphasis>, [<emphasis>iele_vel2</emphasis>,] .... Each velocity is applied to the note that is fraction total_time / number_of_velocities of the duration of the sound event. If the elevation of the virtual source becomes greater than 90 degrees or less than 0 degrees, the polarity of angular velocity is changed. Thus the elevational angular velocity produces a virtual source that moves up and down between 0 and 90 degrees.
+ </para>
+ <warning>
+ <para>Please note that all <emphasis>vbap</emphasis> panning opcodes require the <emphasis>vbap</emphasis> system to be initialized using <link linkend="vbaplsinit"><citetitle>vbaplsinit</citetitle></link>.</para>
+ </warning>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ See the entry for <link linkend="vbap8move"><citetitle>vbap8move</citetitle></link> for an example of usage of the <emphasis>vbapXmove</emphasis> opcodes.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Reference</title>
+ <para>
+ Ville Pulkki: <quote>Virtual Sound Source Positioning Using Vector Base Amplitude Panning</quote> <emphasis>Journal of the Audio Engineering Society</emphasis>, 1997 June, Vol. 45/6, p. 456.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vbapmove opcode. It uses the file <ulink url="examples/vbapmove.csd"><citetitle>vbapmove.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vbapmove opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vbapmove.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="vbap"><citetitle>vbap</citetitle></link>,
+ <link linkend="vbap16"><citetitle>vbap16</citetitle></link>,
+ <link linkend="vbap16move"><citetitle>vbap16move</citetitle></link>,
+ <link linkend="vbap4"><citetitle>vbap4</citetitle></link>,
+ <link linkend="vbap4move"><citetitle>vbap4move</citetitle></link>,
+ <link linkend="vbap8"><citetitle>vbap8</citetitle></link>,
+ <link linkend="vbap8move"><citetitle>vbap8move</citetitle></link>,
+ <link linkend="vbaplsinit"><citetitle>vbaplsinit</citetitle></link>,
+ <link linkend="vbapz"><citetitle>vbapz</citetitle></link>,
+ <link linkend="vbapzmove"><citetitle>vbapzmove</citetitle></link>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: Ville Pulkki</member>
+ <member>Sibelius Academy Computer Music Studio</member>
+ <member>Laboratory of Acoustics and Audio Signal Processing</member>
+ <member>Helsinki University of Technology</member>
+ <member>Helsinki, Finland</member>
+ <member>May 2000</member>
+ <member>Author: &namejohn;</member>
+ <member>July 2012, Sept 2013</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound Version 5.17.13</para>
+ <para>Array outputs new in Csound Version 6.01</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/vco2ift.xml b/opcodes/vco2ift.xml
index dd48ad1..6542f6a 100644
--- a/opcodes/vco2ift.xml
+++ b/opcodes/vco2ift.xml
@@ -62,6 +62,27 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vco2ift opcode. It uses the file <ulink url="examples/vco2ift.csd"><citetitle>vco2ift.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vco2ift opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vco2ift.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include a line like these:
+ <screen>
+instr 1: ifn = 22.000
+instr 1: ifn = 8.000
+instr 1: ifn = 3.000
+ </screen>
+ </para>
+ <para>
+ See the example for the <link linkend="vco2"><citetitle>vco2</citetitle></link> opcode too.
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="vco2ft"><citetitle>vco2ft</citetitle></link>,
diff --git a/opcodes/vco2init.xml b/opcodes/vco2init.xml
index cbb41cc..3655047 100644
--- a/opcodes/vco2init.xml
+++ b/opcodes/vco2init.xml
@@ -115,7 +115,29 @@
<refsect1>
<title>Examples</title>
<para>
- See the example for the <link linkend="vco2"><citetitle>vco2</citetitle></link> opcode.
+ Here is an example of the vco2init opcode. It uses the file <ulink url="examples/vco2init.csd"><citetitle>vco2init.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vco2init opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vco2init.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include a line like these:
+ <screen>
+ i 1 time 0.00002: 103.00000
+ i 1 time 0.10000: 103.00000
+ i 1 time 0.20000: 103.00000
+ i 1 time 0.30002: 103.00000
+ i 1 time 0.40000: 104.00000
+ i 1 time 0.50000: 104.00000
+.......
+......
+ i 1 time 4.80002: 135.00000
+ i 1 time 4.90000: 136.00000
+ i 1 time 5.00000: 138.00000
+ </screen>
+ </para>
+ <para>
+ See the example for the <link linkend="vco2"><citetitle>vco2</citetitle></link> opcode too.
</para>
</refsect1>
diff --git a/opcodes/vcopy.xml b/opcodes/vcopy.xml
index 097216b..0ddedcd 100644
--- a/opcodes/vcopy.xml
+++ b/opcodes/vcopy.xml
@@ -1,105 +1,104 @@
-
-<refentry id="vcopy">
-<indexterm id="IndexVcopy"><primary>vcopy</primary></indexterm>
- <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vcopy</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vcopy</refname>
- <refpurpose>
- Copies between two vectorial control signals
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Copies between two vectorial control signals
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vcopy</command> ifn, ifn2, kelements [, kdstoffset] [, ksrcoffset] [, kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn1</emphasis> - number of the table where the vectorial signal will be copied (destination)
- </para>
- <para>
- <emphasis>ifn2</emphasis> - number of the table hosting the vectorial signal to be copied (source)
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the vector
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination (ifn1) table (Default=0)
- </para>
- <para>
- <emphasis>ksrcoffset</emphasis> - index offset for the source (ifn2) table (Default=0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vcopy</emphasis> copies <emphasis>kelements</emphasis> elements from <emphasis>ifn2</emphasis> (starting from position <emphasis>isrcoffset</emphasis>) to <emphasis>ifn1</emphasis> (starting from position <emphasis>idstoffset</emphasis>). Useful to keep old vector values, by storing them in another table.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>kdstoffset</emphasis> is negative, the out of range elements will be assumed to be 1 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 1 (i.e. the destination vector will not be changed for these elements).
- </para>
- <para>
- If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
- </para>
- <warning>
- <para>
- Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
- </para>
- </warning>
- <para>
- This opcode works at k-rate (this means that every k-pass the vectors are copied). There's an i-rate version of this opcode called <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- <para>
- All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>,<link linkend="vmultv"><citetitle>vmultv</citetitle></link>,<link linkend="vdivv"><citetitle>vdivv</citetitle></link>,<link linkend="vpowv"><citetitle>vpowv</citetitle></link>,<link linkend="vexp"><citetitle>vexp</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
- </para>
- <para><emphasis>Note:</emphasis> bmscan not yet available on Canonical Csound</para>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vcopy opcode. It uses the file <ulink url="examples/vcopy.csd"><citetitle>vcopy.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vcopy opcode.</title>
-
- <xi:include href="examples-xml/vcopy.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
- </example>
-
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vcopy">
+<indexterm id="IndexVcopy"><primary>vcopy</primary></indexterm>
+ <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vcopy</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vcopy</refname>
+ <refpurpose>
+ Copies between two vectorial control signals
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Copies between two vectorial control signals
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vcopy</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [, kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn1</emphasis> - number of the table where the vectorial signal will be copied (destination)
+ </para>
+ <para>
+ <emphasis>ifn2</emphasis> - number of the table hosting the vectorial signal to be copied (source)
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the vector
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination (<emphasis>ifn1</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>ksrcoffset</emphasis> - index offset for the source (<emphasis>ifn2</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
+ </para>
+ <para>
+ <emphasis>vcopy</emphasis> copies <emphasis>kelements</emphasis> elements from <emphasis>ifn2</emphasis> (starting from position <emphasis>ksrcoffset</emphasis>) to <emphasis>ifn1</emphasis> (starting from position <emphasis>kdstoffset</emphasis>). Useful to keep old vector values, by storing them in another table.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>kdstoffset</emphasis> is negative, the out of range elements will be assumed to be 1 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 1 (i.e. the destination vector will not be changed for these elements).
+ </para>
+ <para>
+ If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
+ </para>
+ <warning>
+ <para>
+ Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
+ </para>
+ </warning>
+ <para>
+ This opcode works at k-rate (this means that every k-pass the vectors are copied). There's an i-rate version of this opcode called <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ <para>
+ All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>, <link linkend="vsubv"><citetitle>vsubv</citetitle></link>, <link linkend="vmultv"><citetitle>vmultv</citetitle></link>, <link linkend="vdivv"><citetitle>vdivv</citetitle></link>, <link linkend="vpowv"><citetitle>vpowv</citetitle></link>, <link linkend="vexp"><citetitle>vexp</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
+ </para>
+ <para><emphasis>Note</emphasis>: <emphasis>bmscan</emphasis> not yet available on Canonical Csound</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vcopy opcode. It uses the file <ulink url="examples/vcopy.csd"><citetitle>vcopy.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vcopy opcode.</title>
+ <xi:include href="examples-xml/vcopy.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vcopy_i.xml b/opcodes/vcopy_i.xml
index 8b7156f..e6fe4c0 100644
--- a/opcodes/vcopy_i.xml
+++ b/opcodes/vcopy_i.xml
@@ -10,28 +10,27 @@
<refname>vcopy_i</refname>
<refpurpose>
Copies a vector from one table to another.
-
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- Copies a vector from one table to another.
+ Copies a vector from one table to another.
</para>
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis><command>vcopy_i</command> ifn, ifn2, ielements [,idstoffset, isrcoffset]</synopsis>
+ <synopsis><command>vcopy_i</command> ifn1, ifn2, ielements [,idstoffset, isrcoffset]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifn</emphasis> - number of the table where the vectorial signal will be copied
+ <emphasis>ifn1</emphasis> - number of the table where the vectorial signal will be copied
</para>
<para>
- <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be copied
+ <emphasis>ifn2</emphasis> - number of the table hosting the vectorial signal to be copied
</para>
<para>
<emphasis>ielements</emphasis> - number of elements of the vector
@@ -47,7 +46,7 @@
<refsect1>
<title>Performance</title>
<para>
- <emphasis>vcopy</emphasis> copies <emphasis>ielements</emphasis> elements from <emphasis>ifn2</emphasis> (starting from position <emphasis>isrcoffset</emphasis>) to <emphasis>ifn1</emphasis> (starting from position <emphasis>idstoffset</emphasis>). Useful to keep old vector values, by storing them in another table. This opcode is exactly the same as <link linkend="vcopy"><citetitle>vcopy</citetitle></link> but performs all the copying on the intialization pass only.
+ <emphasis>vcopy_i</emphasis> copies <emphasis>ielements</emphasis> elements from <emphasis>ifn2</emphasis> (starting from position <emphasis>isrcoffset</emphasis>) to <emphasis>ifn1</emphasis> (starting from position <emphasis>idstoffset</emphasis>). Useful to keep old vector values, by storing them in another table. This opcode is exactly the same as <link linkend="vcopy"><citetitle>vcopy</citetitle></link> but performs all the copying on the intialization pass only.
</para>
<para>
Negative values for <emphasis>idstoffset</emphasis> and <emphasis>isrcoffset</emphasis> are acceptable. If <emphasis>idstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>isrcoffset</emphasis> is negative, the out of range elements will be assumed to be 0 (i.e. the destination elements will be set to 0). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 0 (i.e. the destination vector elements will be 0).
@@ -60,14 +59,16 @@
<para>
All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>,<link linkend="vmultv"><citetitle>vmultv</citetitle></link>,<link linkend="vdivv"><citetitle>vdivv</citetitle></link>,<link linkend="vpowv"><citetitle>vpowv</citetitle></link>,<link linkend="vexp"><citetitle>vexp</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
</para>
- <para><emphasis>Note:</emphasis> bmscan not yet available on Canonical Csound</para>
+ <para><emphasis>Note</emphasis>: <emphasis>bmscan</emphasis> not yet available on Canonical Csound</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
See <link linkend="vcopy"><citetitle>vcopy</citetitle></link> for an example.
</para>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
diff --git a/opcodes/vdelay.xml b/opcodes/vdelay.xml
index 56ba724..206f97c 100644
--- a/opcodes/vdelay.xml
+++ b/opcodes/vdelay.xml
@@ -54,23 +54,16 @@
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
- <emphasis role="stamnt">f</emphasis>1 0 8192 10 1
- ims <emphasis role="op">=</emphasis> 100 <emphasis role="comment">; Maximum delay time in msec</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> 10000, 1737, 1 <emphasis role="comment">; Make a signal</emphasis>
- a2 <emphasis role="opc">oscil</emphasis> ims<emphasis role="op">/</emphasis>2, 1<emphasis role="op">/</emphasis>p3, 1 <emphasis role="comment">; Make an LFO</emphasis>
- a2 <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">; Offset the LFO so that it is positive</emphasis>
- a3 <emphasis role="opc">vdelay</emphasis> a1, a2, ims <emphasis role="comment">; Use the LFO to control delay time</emphasis>
- <emphasis role="opc">out</emphasis> a3</programlisting>
- </informalexample>
- </para>
-
- <para>
+ Here is an example of the vdelay opcode. It uses the file <ulink url="examples/vdelay.csd"><citetitle>vdelay.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vdelay opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vdelay.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
Two important points here. First, the delay time must be always positive. And second, even though the delay time can be controlled in k-rate, it is not advised to do so, since sudden time changes will create clicks.
</para>
</refsect1>
-
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/vdelay3.xml b/opcodes/vdelay3.xml
index 9b8df74..c8b1201 100644
--- a/opcodes/vdelay3.xml
+++ b/opcodes/vdelay3.xml
@@ -50,27 +50,20 @@
<emphasis>adel</emphasis> -- Current value of delay in milliseconds. Note that linear functions have no pitch change effects. Fast changing values of <emphasis>adel</emphasis> will cause discontinuities in the waveform resulting noise.
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
- <emphasis role="stamnt">f</emphasis>1 0 8192 10 1
- ims <emphasis role="op">=</emphasis> 100 <emphasis role="comment">; Maximum delay time in msec</emphasis>
- a1 <emphasis role="opc">oscil</emphasis> 10000, 1737, 1 <emphasis role="comment">; Make a signal</emphasis>
- a2 <emphasis role="opc">oscil</emphasis> ims<emphasis role="op">/</emphasis>2, 1<emphasis role="op">/</emphasis>p3, 1 <emphasis role="comment">; Make an LFO</emphasis>
- a2 <emphasis role="op">=</emphasis> a2 <emphasis role="op">+</emphasis> ims<emphasis role="op">/</emphasis>2 <emphasis role="comment">; Offset the LFO so that it is positive</emphasis>
- a3 <emphasis role="opc">vdelay</emphasis> a1, a2, ims <emphasis role="comment">; Use the LFO to control delay time</emphasis>
- <emphasis role="opc">out</emphasis> a3</programlisting>
- </informalexample>
- </para>
-
- <para>
- Two important points here. First, the delay time must be always positive. And second, even though the delay time can be controlled in k-rate, it is not advised to do so, since sudden time changes will create clicks.
+ Here is an example of the vdelay3 opcode. It uses the file <ulink url="examples/vdelay3.csd"><citetitle>vdelay3.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vdelay3 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vdelay3.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Two important points here. First, the delay time must be always positive. And second, even though the delay time can be controlled in k-rate, it is not advised to do so, since sudden time changes will create clicks.
</para>
</refsect1>
-
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/vdelayk.xml b/opcodes/vdelayk.xml
index be3aa78..11d6502 100644
--- a/opcodes/vdelayk.xml
+++ b/opcodes/vdelayk.xml
@@ -22,7 +22,7 @@
</refsect1>
<refsect1>
<title>Syntax</title>
- <synopsis>kout <command>vdelayk</command> iksig, kdel, imaxdel [, iskip, imode]</synopsis>
+ <synopsis>kout <command>vdelayk</command> ksig, kdel, imaxdel [, iskip, imode]</synopsis>
</refsect1>
<refsect1>
@@ -60,4 +60,4 @@
<para>Written by Gabriel Maldonado.</para>
<para>New in Csound 5 (Previously available only on CsoundAV)</para>
</refsect1>
-</refentry> \ No newline at end of file
+</refentry>
diff --git a/opcodes/vdelayx.xml b/opcodes/vdelayx.xml
index 68cd588..f980c61 100644
--- a/opcodes/vdelayx.xml
+++ b/opcodes/vdelayx.xml
@@ -73,6 +73,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the use of the <emphasis>vdelayx</emphasis> opcode. It uses the file <ulink url="examples/vdelayx.csd"><citetitle>vdelayx.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the <emphasis>vdelayx</emphasis> opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vdelayx.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="vdelayxq"><citetitle>vdelayxq</citetitle></link>,
diff --git a/opcodes/vdelayxq.xml b/opcodes/vdelayxq.xml
index 190332c..f96d519 100644
--- a/opcodes/vdelayxq.xml
+++ b/opcodes/vdelayxq.xml
@@ -75,7 +75,20 @@
</para>
</note>
</refsect1>
-
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vdelayxq opcode. It uses the file <ulink url="examples/vdelayxq.csd"><citetitle>vdelayxq.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vdelayxq opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vdelayxq.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Two important points here. First, the delay time must be always positive. And second, even though the delay time can be controlled in k-rate, it is not advised to do so, since sudden time changes will create clicks.
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/opcodes/vdelayxs.xml b/opcodes/vdelayxs.xml
index fa87063..bae12e2 100644
--- a/opcodes/vdelayxs.xml
+++ b/opcodes/vdelayxs.xml
@@ -77,6 +77,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the use of the <emphasis>vdelayxs</emphasis> opcode. It uses the file <ulink url="examples/vdelayxs.csd"><citetitle>vdelayxs.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the <emphasis>vdelayxs</emphasis> opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vdelayxs.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="vdelayx"><citetitle>vdelayx</citetitle></link>,
diff --git a/opcodes/vdelayxw.xml b/opcodes/vdelayxw.xml
index 3e70072..9d0ed9a 100644
--- a/opcodes/vdelayxw.xml
+++ b/opcodes/vdelayxw.xml
@@ -77,6 +77,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the use of the <emphasis>vdelayxw</emphasis> opcode. It uses the file <ulink url="examples/vdelayxw.csd"><citetitle>vdelayxw.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the <emphasis>vdelayxw</emphasis> opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vdelayxw.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="vdelayx"><citetitle>vdelayx</citetitle></link>,
diff --git a/opcodes/vdelayxwq.xml b/opcodes/vdelayxwq.xml
index 2e2051c..6e816c3 100644
--- a/opcodes/vdelayxwq.xml
+++ b/opcodes/vdelayxwq.xml
@@ -82,6 +82,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the use of the <emphasis>vdelayxwq</emphasis> opcode. It uses the file <ulink url="examples/vdelayxwq.csd"><citetitle>vdelayxwq.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the <emphasis>vdelayxwq</emphasis> opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vdelayxwq.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="vdelayx"><citetitle>vdelayx</citetitle></link>,
diff --git a/opcodes/vdelayxws.xml b/opcodes/vdelayxws.xml
index 84dad07..ca351f2 100644
--- a/opcodes/vdelayxws.xml
+++ b/opcodes/vdelayxws.xml
@@ -81,6 +81,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the use of the <emphasis>vdelayxws</emphasis> opcode. It uses the file <ulink url="examples/vdelayxws.csd"><citetitle>vdelayxws.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the <emphasis>vdelayxws</emphasis> opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vdelayxws.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="vdelayx"><citetitle>vdelayx</citetitle></link>,
diff --git a/opcodes/vdivv.xml b/opcodes/vdivv.xml
index f214bef..862b582 100644
--- a/opcodes/vdivv.xml
+++ b/opcodes/vdivv.xml
@@ -1,107 +1,108 @@
-
-<refentry id="vdivv">
-<indexterm id="IndexVdivv"><primary>vdivv</primary></indexterm>
- <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vdivv</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vdivv</refname>
- <refpurpose>
- Performs division between two vectorial control signals
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Performs division between two vectorial control signals
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vdivv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
- </para>
- <para>
- <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the two vectors
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination (ifn1) table (Default=0)
- </para>
- <para>
- <emphasis>ksrcoffset</emphasis> - index offset for the source (ifn2) table (Default=0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vdivv</emphasis> divides two vectorial control signals, that is, each element of ifn1 is divided by the corresponding element of ifn2. Each vectorial signal is hosted by a table (ifn1 and ifn2). The number of elements contained in both vectors must be the same.
- </para>
- <para>
- The result is a new vectorial control signal that overrides old values of ifn1. If you want to keep the old ifn1 vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 0 (i.e. the destination elements will be set to 0). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 0 (i.e. the destination elements will be set to 0).
- </para>
- <para>
- If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
- </para>
- <warning>
- <para>
- Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
- </para>
- </warning>
- <para>
- This opcode works at k-rate (this means that every k-pass the vectors are divided). There's an i-rate version of this opcode called <link linkend="vdivv_i"><citetitle>vdivv_i</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- <para>
- All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>,<link linkend="vmultv"><citetitle>vmultv</citetitle></link>,<link linkend="vdivv"><citetitle>vdivv</citetitle></link>,<link linkend="vpowv"><citetitle>vpowv</citetitle></link>,<link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vdivv opcode. It uses the file <ulink url="examples/vdivv.csd"><citetitle>vdivv.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vdivv opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/vdivv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vdivv">
+<indexterm id="IndexVdivv"><primary>vdivv</primary></indexterm>
+ <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vdivv</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vdivv</refname>
+ <refpurpose>
+ Performs division between two vectorial control signals
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Performs division between two vectorial control signals
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vdivv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
+ </para>
+ <para>
+ <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the two vectors
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination (<emphasis>ifn1</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>ksrcoffset</emphasis> - index offset for the source (<emphasis>ifn2</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
+ </para>
+ <para>
+ <emphasis>vdivv</emphasis> divides two vectorial control signals, that is, each element of <emphasis>ifn1</emphasis> is divided by the corresponding element of <emphasis>ifn2</emphasis>. Each vectorial signal is hosted by a table (<emphasis>ifn1</emphasis> and <emphasis>ifn2</emphasis>). The number of elements contained in both vectors must be the same.
+ </para>
+ <para>
+ The result is a new vectorial control signal that overrides old values of <emphasis>ifn1</emphasis>. If you want to keep the old ifn1 vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 0 (i.e. the destination elements will be set to 0). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 0 (i.e. the destination elements will be set to 0).
+ </para>
+ <para>
+ If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
+ </para>
+ <warning>
+ <para>
+ Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
+ </para>
+ </warning>
+ <para>
+ This opcode works at k-rate (this means that every k-pass the vectors are divided). There's an i-rate version of this opcode called <link linkend="vdivv_i"><citetitle>vdivv_i</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ <para>
+ All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>, <link linkend="vmultv"><citetitle>vmultv</citetitle></link>, <link linkend="vdivv"><citetitle>vdivv</citetitle></link>, <link linkend="vpowv"><citetitle>vpowv</citetitle></link>, <link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vdivv opcode. It uses the file <ulink url="examples/vdivv.csd"><citetitle>vdivv.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the vdivv opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vdivv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/veloc.xml b/opcodes/veloc.xml
index c805d27..7e93003 100644
--- a/opcodes/veloc.xml
+++ b/opcodes/veloc.xml
@@ -45,12 +45,8 @@
<title>Examples</title>
<para>
Here is an example of the veloc opcode. It uses the file <ulink url="examples/veloc.csd"><citetitle>veloc.csd</citetitle></ulink>.
-
<example>
<title>Example of the veloc opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/veloc.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
@@ -83,6 +79,5 @@
<member>May 1997</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/vexp.xml b/opcodes/vexp.xml
index ce1f6eb..91f6729 100644
--- a/opcodes/vexp.xml
+++ b/opcodes/vexp.xml
@@ -1,98 +1,99 @@
-
-<refentry id="vexp">
-<indexterm id="IndexVexp"><primary>vexp</primary></indexterm>
- <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vexp</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vexp</refname>
- <refpurpose>
- Performs power-of operations between a vector and a scalar
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Performs power-of operations between a vector and a scalar
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vexp</command> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kval</emphasis> - scalar operand to be processed
- </para>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the vector
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination table (Optional, default = 0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vexp</emphasis> rises <emphasis>kval</emphasis> to each element contained in a vector from table <emphasis>ifn</emphasis>,starting from table index <emphasis>idstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
- </para><para>
- Note that this opcode runs at k-rate so the value of <emphasis>kval</emphasis> is processed every control period. Use with care or you will end up with very large (or small) numbers (or use <link linkend="vexp_i"><citetitle>vexp_i</citetitle></link>).
- </para>
- <para>
- These opcodes (<link linkend="vadd"><citetitle>vadd</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>) perform numeric operations between a vectorial control signal (hosted by the table <emphasis>ifn</emphasis>), and a scalar signal (<emphasis>kval</emphasis>). Result is a new vector that overrides old values of <emphasis>ifn</emphasis>. All these opcodes work at k-rate.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
- </para>
- <para>
- If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
- </para>
- <para>
- In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vexp opcode. It uses the file <ulink url="examples/vexp.csd"><citetitle>vexp.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vexp opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
-<xi:include href="examples-xml/vexp.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vexp">
+<indexterm id="IndexVexp"><primary>vexp</primary></indexterm>
+ <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vexp</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vexp</refname>
+ <refpurpose>
+ Performs power-of operations between a vector and a scalar
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Performs power-of operations between a vector and a scalar
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vexp</command> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kval</emphasis> - scalar operand to be processed
+ </para>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the vector
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination table (Optional, default = 0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
+ </para>
+ <para>
+ <emphasis>vexp</emphasis> rises <emphasis>kval</emphasis> to each element contained in a vector from table <emphasis>ifn</emphasis>,starting from table index <emphasis>kdstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
+ </para><para>
+ Note that this opcode runs at k-rate so the value of <emphasis>kval</emphasis> is processed every control period. Use with care or you will end up with very large (or small) numbers (or use <link linkend="vexp_i"><citetitle>vexp_i</citetitle></link>).
+ </para>
+ <para>
+ These opcodes (<link linkend="vadd"><citetitle>vadd</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>) perform numeric operations between a vectorial control signal (hosted by the table <emphasis>ifn</emphasis>), and a scalar signal (<emphasis>kval</emphasis>). Result is a new vector that overrides old values of <emphasis>ifn</emphasis>. All these opcodes work at k-rate.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
+ </para>
+ <para>
+ If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
+ </para>
+ <para>
+ In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vexp opcode. It uses the file <ulink url="examples/vexp.csd"><citetitle>vexp.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the vexp opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vexp.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vexp_i.xml b/opcodes/vexp_i.xml
index f27daa6..a399825 100644
--- a/opcodes/vexp_i.xml
+++ b/opcodes/vexp_i.xml
@@ -1,83 +1,87 @@
-
-<refentry id="vexp_i">
-<indexterm id="IndexVexp_i"><primary>vexp_i</primary></indexterm>
- <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vexp_i</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vexp_i</refname>
- <refpurpose>
- Performs power-of operations between a vector and a scalar
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Performs power-of operations between a vector and a scalar
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vexp_i</command> ifn, ival, ielements[, idstoffset]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
- </para>
- <para>
- <emphasis>ielements</emphasis> - number of elements of the vector
- </para>
- <para>
- <emphasis>ival</emphasis> - scalar value to be added
- </para>
- <para>
- <emphasis>idstoffset</emphasis> - index offset for the destination table
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>vexp_i</emphasis> rises <emphasis>kval</emphasis> to each element contained in a vector from table <emphasis>ifn</emphasis>, starting from table index <emphasis>idstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
- </para>
- <para>
- Negative values for <emphasis>idstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
- </para>
- <para>
- This opcode runs only on initialization, there is a k-rate version of this opcode called <link linkend="vexp"><citetitle>vexp</citetitle></link>.
- </para>
- <para>
- In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
- </para>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vexp_i opcode. It uses the file <ulink url="examples/vexp_i.csd"><citetitle>vexp_i.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vexp_i opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/vexp_i.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>See also</title>
- <para>
- <link linkend="vadd_i"><citetitle>vadd</citetitle></link>, <link linkend="vmult_i"><citetitle>vmult_i</citetitle></link>, <link linkend="vpow_i"><citetitle>vpow_i</citetitle></link> and <link linkend="vexp"><citetitle>vexp_i</citetitle></link>.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vexp_i">
+<indexterm id="IndexVexp_i"><primary>vexp_i</primary></indexterm>
+ <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vexp_i</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vexp_i</refname>
+ <refpurpose>
+ Performs power-of operations between a vector and a scalar
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Performs power-of operations between a vector and a scalar
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vexp_i</command> ifn, ival, ielements[, idstoffset]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
+ </para>
+ <para>
+ <emphasis>ival</emphasis> - scalar operand to be processed
+ </para>
+ <para>
+ <emphasis>ielements</emphasis> - number of elements of the vector
+ </para>
+ <para>
+ <emphasis>ival</emphasis> - scalar value to be added
+ </para>
+ <para>
+ <emphasis>idstoffset</emphasis> - index offset for the destination table
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>vexp_i</emphasis> rises <emphasis>ival</emphasis> to each element contained in a vector from table <emphasis>ifn</emphasis>, starting from table index <emphasis>idstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
+ </para>
+ <para>
+ Negative values for <emphasis>idstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
+ </para>
+ <para>
+ This opcode runs only on initialization, there is a k-rate version of this opcode called <link linkend="vexp"><citetitle>vexp</citetitle></link>.
+ </para>
+ <para>
+ In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the initial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vexp_i opcode. It uses the file <ulink url="examples/vexp_i.csd"><citetitle>vexp_i.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the vexp_i opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vexp_i.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See also</title>
+ <para>
+ <link linkend="vadd_i"><citetitle>vadd</citetitle></link>, <link linkend="vmult_i"><citetitle>vmult_i</citetitle></link>, <link linkend="vpow_i"><citetitle>vpow_i</citetitle></link> and <link linkend="vexp"><citetitle>vexp_i</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vexpseg.xml b/opcodes/vexpseg.xml
index 29a9858..4ab739d 100644
--- a/opcodes/vexpseg.xml
+++ b/opcodes/vexpseg.xml
@@ -1,84 +1,80 @@
-
-<refentry id="vexpseg">
-<indexterm id="IndexVexpseg"><primary>vexpseg</primary></indexterm>
- <refentryinfo><title>Vectorial:Envelopes</title></refentryinfo>
- <refmeta>
- <refentrytitle>vexpseg</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vexpseg</refname>
- <refpurpose>
- Vectorial envelope generator
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Generate exponential vectorial segments
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vexpseg</command> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifnout</emphasis> - number of table hosting output vectorial signal
- </para>
- <para>
- <emphasis>ifn1</emphasis> - starting vector
- </para>
- <para>
- <emphasis>ifn2,ifn3,etc.</emphasis> - vector after idurx seconds
- </para>
- <para>
- <emphasis>idur1</emphasis> - duration in seconds of first segment.
- </para>
- <para>
- <emphasis>dur2, idur3, etc. </emphasis> - duration in seconds of subsequent segments.
- </para>
- <para>
- <emphasis>ielements</emphasis> - number of elements of vectors.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
-
- <para>
- These opcodes are similar to linseg and expseg, but operate with vectorial signals instead of with scalar signals.
- </para>
- <para>
- Output is a vectorial control signal hosted by ifnout (that must be previously allocated), while each break-point of the envelope is actually a vector of values. All break-points must contain the same number of elements (ielements).
- </para>
- <para>
- All these operators are designed to be used together with other opcodes that operate with vectorial signals such as bmscan, vcella, adsynt, adsynt2 etc.
-
- </para>
-
- </refsect1>
- <refsect1>
- <title>Example</title>
- <para>
- Here is an example of the vexpseg opcode. It uses the files <ulink url="examples/vexpseg.csd"><citetitle>vexpseg.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vexpseg opcode.</title>
-
- <xi:include href="examples-xml/vexpseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado.</para>
- <para>Example by Andres Cabrera.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vexpseg">
+<indexterm id="IndexVexpseg"><primary>vexpseg</primary></indexterm>
+ <refentryinfo><title>Vectorial:Envelopes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vexpseg</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vexpseg</refname>
+ <refpurpose>
+ Vectorial envelope generator
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generate exponential vectorial segments
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vexpseg</command> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifnout</emphasis> - number of table hosting output vectorial signal
+ </para>
+ <para>
+ <emphasis>ifn1</emphasis> - starting vector
+ </para>
+ <para>
+ <emphasis>ifn2, ifn3,etc.</emphasis> - vector after <emphasis>idurx</emphasis> seconds
+ </para>
+ <para>
+ <emphasis>idur1</emphasis> - duration in seconds of first segment.
+ </para>
+ <para>
+ <emphasis>idur2, idur3, etc. </emphasis> - duration in seconds of subsequent segments.
+ </para>
+ <para>
+ <emphasis>ielements</emphasis> - number of elements of vectors.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ These opcodes are similar to <emphasis>linseg</emphasis> and <emphasis>expseg</emphasis>, but operate with vectorial signals instead of with scalar signals.
+ </para>
+ <para>
+ Output is a vectorial control signal hosted by <emphasis>ifnout</emphasis> (that must be previously allocated), while each break-point of the envelope is actually a vector of values. All break-points must contain the same number of elements (<emphasis>ielements</emphasis>).
+ </para>
+ <para>
+ All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <emphasis>vcella</emphasis>, <emphasis>adsynt</emphasis>, <emphasis>adsynt2</emphasis>, etc.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Example</title>
+ <para>
+ Here is an example of the vexpseg opcode. It uses the files <ulink url="examples/vexpseg.csd"><citetitle>vexpseg.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vexpseg opcode.</title>
+ <xi:include href="examples-xml/vexpseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado.</para>
+ <para>Example by Andres Cabrera.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vexpv.xml b/opcodes/vexpv.xml
index 26cd743..ce11800 100644
--- a/opcodes/vexpv.xml
+++ b/opcodes/vexpv.xml
@@ -1,107 +1,107 @@
-
-<refentry id="vexpv">
-<indexterm id="IndexVexpv"><primary>vexpv</primary></indexterm>
- <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vexpv</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vexpv</refname>
- <refpurpose>
- Performs exponential operations between two vectorial control signals
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Performs exponential operations between two vectorial control signals
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vexpv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
- </para>
- <para>
- <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the two vectors
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination (ifn1) table (Default=0)
- </para>
- <para>
- <emphasis>ksrcoffset</emphasis> - index offset for the source (ifn2) table (Default=0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vexpv</emphasis> elevates each element of ifn2 to the corresponding element of ifn1. Each vectorial signal is hosted by a table (ifn1 and ifn2). The number of elements contained in both vectors must be the same.
- </para>
- <para>
- The result is a new vectorial control signal that overrides old values of ifn1. If you want to keep the old ifn1 vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 0 (i.e. the destination elements will be set to 1). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 0 (i.e. the destination elements will be set to 1).
- </para>
- <para>
- If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
- </para>
- <warning>
- <para>
- Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
- </para>
- </warning>
- <para>
- This opcode works at k-rate (this means that every k-pass the vectors are processed). There's an i-rate version of this opcode called <link linkend="vexpv_i"><citetitle>vexpv_i</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- <para>
- All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>,<link linkend="vmultv"><citetitle>vmultv</citetitle></link>,<link linkend="vdivv"><citetitle>vdivv</citetitle></link>,<link linkend="vpowv"><citetitle>vpowv</citetitle></link>,<link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vexpv opcode. It uses the file <ulink url="examples/vexpv.csd"><citetitle>vexpv.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vexpv opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/vexpv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vexpv">
+<indexterm id="IndexVexpv"><primary>vexpv</primary></indexterm>
+ <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vexpv</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vexpv</refname>
+ <refpurpose>
+ Performs exponential operations between two vectorial control signals
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Performs exponential operations between two vectorial control signals
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vexpv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
+ </para>
+ <para>
+ <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the two vectors
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination (<emphasis>ifn1</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>ksrcoffset</emphasis> - index offset for the source (<emphasis>ifn2</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
+ </para>
+ <para>
+ <emphasis>vexpv</emphasis> elevates each element of <emphasis>ifn2</emphasis> to the corresponding element of <emphasis>ifn1</emphasis>. Each vectorial signal is hosted by a table (<emphasis>ifn1</emphasis> and <emphasis>ifn2</emphasis>). The number of elements contained in both vectors must be the same.
+ </para>
+ <para>
+ The result is a new vectorial control signal that overrides old values of <emphasis>ifn1</emphasis>. If you want to keep the old <emphasis>ifn1</emphasis> vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 0 (i.e. the destination elements will be set to 1). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 0 (i.e. the destination elements will be set to 1).
+ </para>
+ <para>
+ If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
+ </para>
+ <warning>
+ <para>
+ Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
+ </para>
+ </warning>
+ <para>
+ This opcode works at k-rate (this means that every k-pass the vectors are processed). There's an i-rate version of this opcode called <link linkend="vexpv_i"><citetitle>vexpv_i</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ <para>
+ All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>, <link linkend="vsubv"><citetitle>vsubv</citetitle></link>, <link linkend="vmultv"><citetitle>vmultv</citetitle></link>, <link linkend="vdivv"><citetitle>vdivv</citetitle></link>, <link linkend="vpowv"><citetitle>vpowv</citetitle></link>, <link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vexpv opcode. It uses the file <ulink url="examples/vexpv.csd"><citetitle>vexpv.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vexpv opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vexpv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vibes.xml b/opcodes/vibes.xml
index 603d4b7..515e415 100644
--- a/opcodes/vibes.xml
+++ b/opcodes/vibes.xml
@@ -43,20 +43,21 @@ url="ftp://ftp.cs.bath.ac.uk/pub/dream/documentation/sounds/modelling/"><citetit
</para>
<para>
- <emphasis>ivfn</emphasis> -- shape of vibrato, usually a sine table, created by a function
+ <emphasis>ivfn</emphasis> -- shape of tremolo, usually a sine table, created by a function
</para>
<para>
<emphasis>idec</emphasis> -- time before end of note when damping is introduced
</para>
- <para>
- <emphasis>idoubles</emphasis> (optional) -- percentage of double strikes. Default is 40%.
- </para>
+ <!-- These are simply not the case -->
+ <!-- <para> -->
+ <!-- <emphasis>idoubles</emphasis> (optional) - - percentage of double strikes. Default is 40%. -->
+ <!-- </para> -->
- <para>
- <emphasis>itriples</emphasis> (optional) -- percentage of triple strikes. Default is 20%.
- </para>
+ <!-- <para> -->
+ <!-- <emphasis>itriples</emphasis> (optional) - - percentage of triple strikes. Default is 20%. -->
+ <!-- </para> -->
</refsect1>
<refsect1>
@@ -70,11 +71,11 @@ url="ftp://ftp.cs.bath.ac.uk/pub/dream/documentation/sounds/modelling/"><citetit
</para>
<para>
- <emphasis>kvibf</emphasis> -- frequency of vibrato in Hertz. Suggested range is 0 to 12
+ <emphasis>kvibf</emphasis> -- frequency of tremolo in Hertz. Suggested range is 0 to 12
</para>
<para>
- <emphasis>kvamp</emphasis> -- amplitude of the vibrato
+ <emphasis>kvamp</emphasis> -- amplitude of the tremolo
</para>
</refsect1>
diff --git a/opcodes/vibr.xml b/opcodes/vibr.xml
index 4eb0f4b..d95c862 100644
--- a/opcodes/vibr.xml
+++ b/opcodes/vibr.xml
@@ -77,7 +77,6 @@
<refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
- <para>Example written by &namekevin;.</para>
<para>New in Version 4.15</para>
</refsect1>
</refentry>
diff --git a/opcodes/vibrato.xml b/opcodes/vibrato.xml
index 0101031..4b763f8 100644
--- a/opcodes/vibrato.xml
+++ b/opcodes/vibrato.xml
@@ -24,9 +24,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>kout <command>vibrato</command> kAverageAmp, kAverageFreq, kRandAmountAmp, \
- kRandAmountFreq, kAmpMinRate, kAmpMaxRate, kcpsMinRate, \
- kcpsMaxRate, ifn [, iphs]</synopsis>
+ <synopsis>kout <command>vibrato</command> kAverageAmp, kAverageFreq, kRandAmountAmp, kRandAmountFreq, kAmpMinRate, kAmpMaxRate, kcpsMinRate, kcpsMaxRate, ifn [, iphs</synopsis>
</refsect1>
<refsect1>
@@ -87,12 +85,8 @@
<title>Examples</title>
<para>
Here is an example of the vibrato opcode. It uses the file <ulink url="examples/vibrato.csd"><citetitle>vibrato.csd</citetitle></ulink>.
-
<example>
<title>Example of the vibrato opcode.</title>
-
-
-
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/vibrato.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
@@ -111,7 +105,6 @@
<refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
- <para>Example written by &namekevin;.</para>
<para>New in Version 4.15</para>
</refsect1>
</refentry>
diff --git a/opcodes/vincr.xml b/opcodes/vincr.xml
index c1f4250..47ef56b 100644
--- a/opcodes/vincr.xml
+++ b/opcodes/vincr.xml
@@ -39,11 +39,20 @@
<emphasis>vincr</emphasis> (variable increment) and <link linkend="clear"><citetitle>clear</citetitle></link> are intended to be used together. <emphasis>vincr</emphasis> stores the result of the sum of two audio variables into the first variable itself (which is intended to be used as an accumulator in polyphony). The accumulator is typically a global variable that is used to combine signals from several sources (different instruments or instrument instances) for further processing (for example, via a global effect that reads the accumulator) or for outputting the combined signal by some means other than one of the <emphasis>out</emphasis> opcodes (eg. via the <link linkend="fout"><citetitle>fout</citetitle></link> opcode). After the accumulator is used, the accumulator variable should be set to zero by means of the <emphasis>clear</emphasis> opcode (or it will explode).
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- See the <link linkend="fout"><citetitle>fout</citetitle></link> opcode for an example.
+ The following example uses the vincr opcode. It uses the file <ulink url="examples/vincr.csd"><citetitle>vincr.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vincr opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vincr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ This is another example uses the vincr opcode. It uses the file <ulink url="examples/vincr-complex.csd"><citetitle>vincr-complex.csd</citetitle></ulink>.
+ <example>
+ <xi:include href="examples-xml/vincr-complex.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
diff --git a/opcodes/vlinseg.xml b/opcodes/vlinseg.xml
index 12b47b2..66984b5 100644
--- a/opcodes/vlinseg.xml
+++ b/opcodes/vlinseg.xml
@@ -1,84 +1,80 @@
-
-<refentry id="vlinseg">
-<indexterm id="IndexVlinseg"><primary>vlinseg</primary></indexterm>
- <refentryinfo><title>Vectorial:Envelopes</title></refentryinfo>
- <refmeta>
- <refentrytitle>vlinseg</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vlinseg</refname>
- <refpurpose>
- Vectorial envelope generator
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Generate linear vectorial segments
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vlinseg</command> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifnout</emphasis> - number of table hosting output vectorial signal
- </para>
- <para>
- <emphasis>ifn1</emphasis> - starting vector
- </para>
- <para>
- <emphasis>ifn2,ifn3,etc.</emphasis> - vector after idurx seconds
- </para>
- <para>
- <emphasis>idur1</emphasis> - duration in seconds of first segment.
- </para>
- <para>
- <emphasis>dur2, idur3, etc. </emphasis> - duration in seconds of subsequent segments.
- </para>
- <para>
- <emphasis>ielements</emphasis> - number of elements of vectors.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
-
- <para>
- These opcodes are similar to linseg and expseg, but operate with vectorial signals instead of with scalar signals.
- </para>
- <para>
- Output is a vectorial control signal hosted by ifnout (that must be previously allocated), while each break-point of the envelope is actually a vector of values. All break-points must contain the same number of elements (ielements).
- </para>
- <para>
- All these operators are designed to be used together with other opcodes that operate with vectorial signals such as bmscan, vcella, adsynt, adsynt2 etc.
-
- </para>
-
- </refsect1>
- <refsect1>
- <title>Example</title>
- <para>
- Here is an example of the vlinseg opcode. It uses the files <ulink url="examples/vlinseg.csd"><citetitle>vlinseg.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vlinseg opcode.</title>
-
- <xi:include href="examples-xml/vlinseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado.</para>
- <para>Example by Andres Cabrera.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vlinseg">
+<indexterm id="IndexVlinseg"><primary>vlinseg</primary></indexterm>
+ <refentryinfo><title>Vectorial:Envelopes</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vlinseg</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vlinseg</refname>
+ <refpurpose>
+ Vectorial envelope generator
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Generate linear vectorial segments
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vlinseg</command> ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifnout</emphasis> - number of table hosting output vectorial signal
+ </para>
+ <para>
+ <emphasis>ifn1</emphasis> - starting vector
+ </para>
+ <para>
+ <emphasis>ifn2,ifn3,etc.</emphasis> - vector after <emphasis>idurx</emphasis> seconds
+ </para>
+ <para>
+ <emphasis>idur1</emphasis> - duration in seconds of first segment.
+ </para>
+ <para>
+ <emphasis>idur2, idur3, etc. </emphasis> - duration in seconds of subsequent segments.
+ </para>
+ <para>
+ <emphasis>ielements</emphasis> - number of elements of vectors.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ These opcodes are similar to <emphasis>linseg</emphasis> and <emphasis>expseg</emphasis>, but operate with vectorial signals instead of with scalar signals.
+ </para>
+ <para>
+ Output is a vectorial control signal hosted by <emphasis>ifnout</emphasis> (that must be previously allocated), while each break-point of the envelope is actually a vector of values. All break-points must contain the same number of elements (<emphasis>ielements</emphasis>).
+ </para>
+ <para>
+ All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <emphasis>vcella</emphasis>, <emphasis>adsynt</emphasis>, <emphasis>adsynt2</emphasis>, etc.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Example</title>
+ <para>
+ Here is an example of the vlinseg opcode. It uses the files <ulink url="examples/vlinseg.csd"><citetitle>vlinseg.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vlinseg opcode.</title>
+ <xi:include href="examples-xml/vlinseg.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado.</para>
+ <para>Example by Andres Cabrera.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vlowres.xml b/opcodes/vlowres.xml
index 77ef7c3..233f953 100644
--- a/opcodes/vlowres.xml
+++ b/opcodes/vlowres.xml
@@ -45,7 +45,11 @@
</para>
<para>
- <emphasis>ksep</emphasis> -- frequency cutoff separation for each filter
+ <emphasis>kres</emphasis> -- resonance amount
+ </para>
+
+ <para>
+ <emphasis>ksep</emphasis> -- frequency cutoff separation for each filter: the first filter has a kfreq cutoff, the second has a kfreq + ksep and the third kfreq + 2*ksep and so on, depending on the number of filters.
</para>
<para>
@@ -73,8 +77,6 @@
<member>Italy</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in Csound version 3.49</para>
</refsect1>
</refentry>
diff --git a/opcodes/vmap.xml b/opcodes/vmap.xml
index dc818c2..67eaa18 100644
--- a/opcodes/vmap.xml
+++ b/opcodes/vmap.xml
@@ -1,77 +1,77 @@
-
-<refentry id="vmap">
-<indexterm id="IndexVmap"><primary>vmap</primary></indexterm>
- <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vmap</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vmap</refname>
- <refpurpose>
- Maps elements from a vector according to indeces contained in another vector
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Maps elements from a vector onto another according to the indeces of a this vector
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vmap</command> ifn1, ifn2, ielements [,idstoffset, isrcoffset]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn1</emphasis> - number of the table where the vectorial signal will be copied, and which contains the mapping vector
- </para>
- <para>
- <emphasis>ifn2</emphasis> - number of the table hosting the vectorial signal to be copied
- </para>
- <para>
- <emphasis>ielements</emphasis> - number of elements to process
- </para>
- <para>
- <emphasis>idstoffset</emphasis> - index offset for destination table (ifn1)
- </para>
- <para>
- <emphasis>isrcoffset</emphasis> - index offset for source table (ifn2)
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>vmap</emphasis> maps elements of <emphasis>ifn2</emphasis> according to the values of table <emphasis>ifn1</emphasis>. Elements of <emphasis>ifn1</emphasis> are treated as indexes of table <emphasis>ifn2</emphasis>, so element values of <emphasis>ifn1</emphasis> must not exceed the length of <emphasis>ifn2</emphasis> table otherwise a Csound will report an error. Elements of <emphasis>ifn1</emphasis> are treated as integers, so any fractional part will be truncated. There is no interpolation performed on this operation.
- </para>
- <para>In practice, what happens is that the elements of <emphasis>ifn1</emphasis> are used as indeces to <emphasis>ifn2</emphasis>, and then are replaced by the corresponding elements from <emphasis>ifn2</emphasis>. <emphasis>ifn1</emphasis> must be different from <emphasis>ifn2</emphasis>, otherwise the results are unpredictable. Csound will produce an init error if they are not.
- </para>
- <para>
-All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>,<link linkend="vmultv"><citetitle>vmultv</citetitle></link>,<link linkend="vdivv"><citetitle>vdivv</citetitle></link>,<link linkend="vpowv"><citetitle>vpowv</citetitle></link>,<link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
- </para>
- <para><emphasis>Note:</emphasis> bmscan not yet available on Canonical Csound</para>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vmap opcode. It uses the file <ulink url="examples/vmap.csd"><citetitle>vmap.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vmap opcode.</title>
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/vmap.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vmap">
+<indexterm id="IndexVmap"><primary>vmap</primary></indexterm>
+ <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vmap</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vmap</refname>
+ <refpurpose>
+ Maps elements from a vector according to indexes contained in another vector.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Maps elements from a vector onto another according to the indexes of a this vector.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vmap</command> ifn1, ifn2, ielements [,idstoffset, isrcoffset]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn1</emphasis> - number of the table where the vectorial signal will be copied, and which contains the mapping vector
+ </para>
+ <para>
+ <emphasis>ifn2</emphasis> - number of the table hosting the vectorial signal to be copied
+ </para>
+ <para>
+ <emphasis>ielements</emphasis> - number of elements to process
+ </para>
+ <para>
+ <emphasis>idstoffset</emphasis> - index offset for destination table (<emphasis>ifn1</emphasis>)
+ </para>
+ <para>
+ <emphasis>isrcoffset</emphasis> - index offset for source table (<emphasis>ifn2</emphasis>)
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>vmap</emphasis> maps elements of <emphasis>ifn2</emphasis> according to the values of table <emphasis>ifn1</emphasis>. Elements of <emphasis>ifn1</emphasis> are treated as indexes of table <emphasis>ifn2</emphasis>, so element values of <emphasis>ifn1</emphasis> must not exceed the length of <emphasis>ifn2</emphasis> table otherwise a Csound will report an error. Elements of <emphasis>ifn1</emphasis> are treated as integers, so any fractional part will be truncated. There is no interpolation performed on this operation.
+ </para>
+ <para>In practice, what happens is that the elements of <emphasis>ifn1</emphasis> are used as indexes to <emphasis>ifn2</emphasis>, and then are replaced by the corresponding elements from <emphasis>ifn2</emphasis>. <emphasis>ifn1</emphasis> must be different from <emphasis>ifn2</emphasis>, otherwise the results are unpredictable. Csound will produce an init error if they are not.
+ </para>
+ <para>
+ All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>, <link linkend="vsubv"><citetitle>vsubv</citetitle></link>, <link linkend="vmultv"><citetitle>vmultv</citetitle></link>, <link linkend="vdivv"><citetitle>vdivv</citetitle></link>, <link linkend="vpowv"><citetitle>vpowv</citetitle></link>, <link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc.
+ </para>
+ <para><emphasis>Note:</emphasis> bmscan not yet available on Canonical Csound</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vmap opcode. It uses the file <ulink url="examples/vmap.csd"><citetitle>vmap.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vmap opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vmap.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vmult.xml b/opcodes/vmult.xml
index 72e48d2..b1a68c7 100644
--- a/opcodes/vmult.xml
+++ b/opcodes/vmult.xml
@@ -1,122 +1,113 @@
-
-<refentry id="vmult">
-<indexterm id="IndexVmult"><primary>vmult</primary></indexterm>
- <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vmult</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vmult</refname>
- <refpurpose>
- Multiplies a vector in a table by a scalar value.
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Multiplies a vector in a table by a scalar value.
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vmult</command> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kval</emphasis> - scalar value to be multiplied
- </para>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the vector
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination table (Optional, default = 0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vmult</emphasis> multiplies each element of the vector contained in the table <emphasis>ifn</emphasis> by <emphasis>kval</emphasis>, starting from table index <emphasis>idstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
- </para>
- <para>
- Note that this opcode runs at k-rate so the value of <emphasis>kval</emphasis> is multiplied every control period. Use with care or you will end up with very large numbers (or use <link linkend="vmult_i"><citetitle>vmult_i</citetitle></link>).
- </para>
- <para>
- These opcodes (<link linkend="vadd"><citetitle>vadd</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>) perform numeric operations between a vectorial control signal (hosted by the table <emphasis>ifn</emphasis>), and a scalar signal (<emphasis>kval</emphasis>). Result is a new vector that overrides old values of <emphasis>ifn</emphasis>. All these opcodes work at k-rate.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
- </para>
- <para>
- If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
- </para>
- <para>
- In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- </refsect1>
- <refsect1>
- <title>See also</title>
- <para>
- <link linkend="vadd_i"><citetitle>vadd_i</citetitle></link>, <link linkend="vadd"><citetitle>vadd</citetitle></link>, <link linkend="vmult_i"><citetitle>vmult_i</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>.
- </para>
- </refsect1>
- <refsect1>
- <title>Example</title>
- <para>
- Here is an example of the vmult opcode. It uses the file <ulink url="examples/vmult-2.csd"><citetitle>vmult-2.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vmult opcode.</title>
-
- <xi:include href="examples-xml/vmult-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
- </example>
- </para>
- <para>
- Here is another example of the vmult opcode. It uses the file <ulink url="examples/vmult.csd"><citetitle>vmult.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vmult opcode.</title>
-
- <xi:include href="examples-xml/vmult.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>See also</title>
- <para>
- <link linkend="vadd"><citetitle>vadd_i</citetitle></link>, <link linkend="vmult_i"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>.
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>Example by Andres Cabrera.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vmult">
+<indexterm id="IndexVmult"><primary>vmult</primary></indexterm>
+ <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vmult</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vmult</refname>
+ <refpurpose>
+ Multiplies a vector in a table by a scalar value.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Multiplies a vector in a table by a scalar value.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vmult</command> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kval</emphasis> - scalar value to be multiplied
+ </para>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the vector
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination table (Optional, default = 0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
+ </para>
+ <para>
+ <emphasis>vmult</emphasis> multiplies each element of the vector contained in the table <emphasis>ifn</emphasis> by <emphasis>kval</emphasis>, starting from table index <emphasis>kdstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
+ </para>
+ <para>
+ Note that this opcode runs at k-rate so the value of <emphasis>kval</emphasis> is multiplied every control period. Use with care or you will end up with very large numbers (or use <link linkend="vmult_i"><citetitle>vmult_i</citetitle></link>).
+ </para>
+ <para>
+ These opcodes (<link linkend="vadd"><citetitle>vadd</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>) perform numeric operations between a vectorial control signal (hosted by the table <emphasis>ifn</emphasis>), and a scalar signal (<emphasis>kval</emphasis>). Result is a new vector that overrides old values of <emphasis>ifn</emphasis>. All these opcodes work at k-rate.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
+ </para>
+ <para>
+ If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
+ </para>
+ <para>
+ In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the initial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ </refsect1>
+
+ <refsect1>
+ <title>Example</title>
+ <para>
+ Here is an example of the vmult opcode. It uses the file <ulink url="examples/vmult-2.csd"><citetitle>vmult-2.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vmult opcode.</title>
+ <xi:include href="examples-xml/vmult-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ <para>
+ Here is another example of the vmult opcode. It uses the file <ulink url="examples/vmult.csd"><citetitle>vmult.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vmult opcode.</title>
+ <xi:include href="examples-xml/vmult.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See also</title>
+ <para>
+ <link linkend="vadd_i"><citetitle>vadd_i</citetitle></link>, <link linkend="vadd"><citetitle>vadd_i</citetitle></link>, <link linkend="vmult_i"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>Example by Andres Cabrera.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vmult_i.xml b/opcodes/vmult_i.xml
index 15560c4..2bd92f7 100644
--- a/opcodes/vmult_i.xml
+++ b/opcodes/vmult_i.xml
@@ -1,90 +1,84 @@
-
-<refentry id="vmult_i">
-<indexterm id="IndexVmult_i"><primary>vmult_i</primary></indexterm>
- <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vmult_i</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vmult_i</refname>
- <refpurpose>
- Multiplies a vector in a table by a scalar value.
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Multiplies a vector in a table by a scalar value.
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vmult_i</command> ifn, ival, ielements [, idstoffset]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
- </para>
- <para>
- <emphasis>ival</emphasis> - scalar value to be multiplied
- </para>
- <para>
- <emphasis>ielements</emphasis> - number of elements of the vector
- </para>
- <para>
- <emphasis>idstoffset</emphasis> - index offset for the destination table
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>vmult_i</emphasis> multiplies each element of the vector contained in the table <emphasis>ifn</emphasis> by <emphasis>ival</emphasis>, starting from table index <emphasis>idstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
- </para>
- <para>
- This opcode runs only on initialization, there is a k-rate version of this opcode called <link linkend="vmult"><citetitle>vmult</citetitle></link>.
- </para>
- <para>
- Negative values for <emphasis>idstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
- </para>
- <para>
- In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
- </para>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vmult_i opcode. It uses the file <ulink url="examples/vmult_i.csd"><citetitle>vmult_i.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vmult_i opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/vmult_i.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>See also</title>
- <para>
- <link linkend="vadd_i"><citetitle>vadd</citetitle></link>, <link linkend="vadd"><citetitle>vadd</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>.
- </para>
- </refsect1>
-
- <refsect1>
- <title>See also</title>
- <para>
- <link linkend="vadd_i"><citetitle>vadd_i</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow_i"><citetitle>vpow_i</citetitle></link> and <link linkend="vexp_i"><citetitle>vexp_i</citetitle></link>.
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>Example by Andres Cabrera.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vmult_i">
+<indexterm id="IndexVmult_i"><primary>vmult_i</primary></indexterm>
+ <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vmult_i</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vmult_i</refname>
+ <refpurpose>
+ Multiplies a vector in a table by a scalar value.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Multiplies a vector in a table by a scalar value.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vmult_i</command> ifn, ival, ielements [, idstoffset]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
+ </para>
+ <para>
+ <emphasis>ival</emphasis> - scalar value to be multiplied
+ </para>
+ <para>
+ <emphasis>ielements</emphasis> - number of elements of the vector
+ </para>
+ <para>
+ <emphasis>idstoffset</emphasis> - index offset for the destination table
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>vmult_i</emphasis> multiplies each element of the vector contained in the table <emphasis>ifn</emphasis> by <emphasis>ival</emphasis>, starting from table index <emphasis>idstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
+ </para>
+ <para>
+ This opcode runs only on initialization, there is a k-rate version of this opcode called <link linkend="vmult"><citetitle>vmult</citetitle></link>.
+ </para>
+ <para>
+ Negative values for <emphasis>idstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
+ </para>
+ <para>
+ In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vmult_i opcode. It uses the file <ulink url="examples/vmult_i.csd"><citetitle>vmult_i.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vmult_i opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vmult_i.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See also</title>
+ <para>
+ <link linkend="vadd_i"><citetitle>vadd</citetitle></link>, <link linkend="vadd"><citetitle>vadd</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow_i"><citetitle>vpow_i</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link>, <link linkend="vexp_i"><citetitle>vexp_i</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>Example by Andres Cabrera.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vmultv.xml b/opcodes/vmultv.xml
index 33f53a1..76177a7 100644
--- a/opcodes/vmultv.xml
+++ b/opcodes/vmultv.xml
@@ -1,107 +1,107 @@
-
-<refentry id="vmultv">
-<indexterm id="IndexVmultv"><primary>vmultv</primary></indexterm>
- <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vmultv</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vmultv</refname>
- <refpurpose>
- Performs mutiplication between two vectorial control signals
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Performs mutiplication between two vectorial control signals
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vmultv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
- </para>
- <para>
- <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the two vectors
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination (ifn1) table (Default=0)
- </para>
- <para>
- <emphasis>ksrcoffset</emphasis> - index offset for the source (ifn2) table (Default=0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vmultv</emphasis> multiplies two vectorial control signals, that is, each element of the first vector is processed (only) with the corresponding element of the other vector. Each vectorial signal is hosted by a table (ifn1 and ifn2). The number of elements contained in both vectors must be the same.
- </para>
- <para>
- The Result is a new vectorial control signal that overrides old values of ifn1. If you want to keep the old ifn1 vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 1 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 1 (i.e. the destination vector will not be changed for these elements).
- </para>
- <para>
- If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
- </para>
- <warning>
- <para>
- Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
- </para>
- </warning>
- <para>
- This opcode works at k-rate (this means that every k-pass the vectors are multiplied). There's an i-rate version of this opcode called <link linkend="vmultv_i"><citetitle>vmultv_i</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- <para>
- All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>,<link linkend="vmultv"><citetitle>vmultv</citetitle></link>,<link linkend="vdivv"><citetitle>vdivv</citetitle></link>,<link linkend="vpowv"><citetitle>vpowv</citetitle></link>,<link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vmultv opcode. It uses the file <ulink url="examples/vmultv.csd"><citetitle>vmultv.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vmultv opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/vmultv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vmultv">
+<indexterm id="IndexVmultv"><primary>vmultv</primary></indexterm>
+ <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vmultv</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vmultv</refname>
+ <refpurpose>
+ Performs mutiplication between two vectorial control signals
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Performs mutiplication between two vectorial control signals
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vmultv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
+ </para>
+ <para>
+ <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the two vectors
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination (<emphasis>ifn1</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>ksrcoffset</emphasis> - index offset for the source (<emphasis>ifn2</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
+ </para>
+ <para>
+ <emphasis>vmultv</emphasis> multiplies two vectorial control signals, that is, each element of the first vector is processed (only) with the corresponding element of the other vector. Each vectorial signal is hosted by a table (<emphasis>ifn1</emphasis> and <emphasis>ifn2</emphasis>). The number of elements contained in both vectors must be the same.
+ </para>
+ <para>
+ The Result is a new vectorial control signal that overrides old values of <emphasis>ifn1</emphasis>. If you want to keep the old <emphasis>ifn1</emphasis> vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 1 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 1 (i.e. the destination vector will not be changed for these elements).
+ </para>
+ <para>
+ If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
+ </para>
+ <warning>
+ <para>
+ Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
+ </para>
+ </warning>
+ <para>
+ This opcode works at k-rate (this means that every k-pass the vectors are multiplied). There's an i-rate version of this opcode called <link linkend="vmultv_i"><citetitle>vmultv_i</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ <para>
+ All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>, <link linkend="vsubv"><citetitle>vsubv</citetitle></link>, <link linkend="vmultv"><citetitle>vmultv</citetitle></link>, <link linkend="vdivv"><citetitle>vdivv</citetitle></link>, <link linkend="vpowv"><citetitle>vpowv</citetitle></link>, <link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vmultv opcode. It uses the file <ulink url="examples/vmultv.csd"><citetitle>vmultv.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vmultv opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vmultv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/voice.xml b/opcodes/voice.xml
index a35c53c..a0b7cde 100644
--- a/opcodes/voice.xml
+++ b/opcodes/voice.xml
@@ -1,151 +1,143 @@
-
-<refentry id="voice">
-<indexterm id="IndexVoice"><primary>voice</primary></indexterm>
- <refentryinfo><title>Signal Generators:Models and Emulations</title></refentryinfo>
- <refmeta>
- <refentrytitle>voice</refentrytitle>
- </refmeta>
-
-
-
- <refnamediv>
- <refname>voice</refname>
- <refpurpose>
- An emulation of a human voice.
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- An emulation of a human voice.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Syntax</title>
- <synopsis>ares <command>voice</command> kamp, kfreq, kphoneme, kform, kvibf, kvamp, ifn, ivfn</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn</emphasis>, <emphasis>ivfn</emphasis> -- two table numbers containing the carrier waveform and the vibrato waveform. The files <ulink url="examples/impuls20.aiff"><citetitle>impuls20.aiff</citetitle></ulink>, <ulink url="examples/ahh.aiff"><citetitle>ahh.aiff</citetitle></ulink>, <ulink url="examples/eee.aiff"><citetitle>eee.aiff</citetitle></ulink>, or <ulink url="examples/ooo.aiff"><citetitle>ooo.aiff</citetitle></ulink> are suitable for the first of these, and a sine wave for the second. These files are available from <ulink url="ftp://ftp.cs.bath.ac.uk/pub/dream/documentation/sounds/modelling/"><citetitle>ftp://ftp.cs.bath.ac.uk/pub/dream/documentation/sounds/modelling/</citetitle></ulink>.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kamp</emphasis> -- Amplitude of note.
- </para>
-
- <para>
- <emphasis>kfreq</emphasis> -- Frequency of note played. It can be varied in performance.
- </para>
-
- <para>
- <emphasis>kphoneme</emphasis> -- an integer in the range 0 to 16, which select the formants for the sounds:
-
- <itemizedlist>
- <listitem>
- <para>
- <quote>eee</quote>, <quote>ihh</quote>, <quote>ehh</quote>, <quote>aaa</quote>,
- </para>
- </listitem>
-
- <listitem>
- <para>
- <quote>ahh</quote>, <quote>aww</quote>, <quote>ohh</quote>, <quote>uhh</quote>,
- </para>
- </listitem>
-
- <listitem>
- <para>
- <quote>uuu</quote>, <quote>ooo</quote>, <quote>rrr</quote>, <quote>lll</quote>,
- </para>
- </listitem>
-
- <listitem>
- <para>
- <quote>mmm</quote>, <quote>nnn</quote>, <quote>nng</quote>, <quote>ngg</quote>.
- </para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>
- At present the phonemes
-
- <itemizedlist>
- <listitem>
- <para>
- <quote>fff</quote>, <quote>sss</quote>, <quote>thh</quote>, <quote>shh</quote>,
- </para>
- </listitem>
-
- <listitem>
- <para>
- <quote>xxx</quote>, <quote>hee</quote>, <quote>hoo</quote>, <quote>hah</quote>,
- </para>
- </listitem>
-
- <listitem>
- <para>
- <quote>bbb</quote>, <quote>ddd</quote>, <quote>jjj</quote>, <quote>ggg</quote>,
- </para>
- </listitem>
-
- <listitem>
- <para>
- <quote>vvv</quote>, <quote>zzz</quote>, <quote>thz</quote>, <quote>zhh</quote>
- </para>
- </listitem>
- </itemizedlist>
-
- are not available (!)
- </para>
-
- <para>
- <emphasis>kform</emphasis> -- Gain on the phoneme. values 0.0 to 1.2 recommended.
- </para>
-
- <para>
- <emphasis>kvibf</emphasis> -- frequency of vibrato in Hertz. Suggested range is 0 to 12
- </para>
-
- <para>
- <emphasis>kvamp</emphasis> -- amplitude of the vibrato
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the voice opcode. It uses the file <ulink url="examples/voice.csd"><citetitle>voice.csd</citetitle></ulink>, and <ulink url="examples/impuls20.aiff"><citetitle>impuls20.aiff</citetitle></ulink>.
-
- <example>
- <title>Example of the voice opcode.</title>
-
-
-
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/voice.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>
- <simplelist>
- <member>Author: &namejohn; (after &nameperry;)</member>
- <member>University of Bath, Codemist Ltd.</member>
- <member>Bath, UK</member>
- </simplelist>
- </para>
- <para>Example written by &namekevin;.</para>
-
- <para>New in Csound version 3.47</para>
- </refsect1>
-</refentry>
+
+<refentry id="voice">
+<indexterm id="IndexVoice"><primary>voice</primary></indexterm>
+ <refentryinfo><title>Signal Generators:Models and Emulations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>voice</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>voice</refname>
+ <refpurpose>
+ An emulation of a human voice.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ An emulation of a human voice.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis>ares <command>voice</command> kamp, kfreq, kphoneme, kform, kvibf, kvamp, ifn, ivfn</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn</emphasis>, <emphasis>ivfn</emphasis> -- two table numbers containing the carrier waveform and the vibrato waveform. The files <ulink url="examples/impuls20.aiff"><citetitle>impuls20.aiff</citetitle></ulink>, <ulink url="examples/ahh.aiff"><citetitle>ahh.aiff</citetitle></ulink>, <ulink url="examples/eee.aiff"><citetitle>eee.aiff</citetitle></ulink>, or <ulink url="examples/ooo.aiff"><citetitle>ooo.aiff</citetitle></ulink> are suitable for the first of these, and a sine wave for the second. These files are available from <ulink url="ftp://ftp.cs.bath.ac.uk/pub/dream/documentation/sounds/modelling/"><citetitle>ftp://ftp.cs.bath.ac.uk/pub/dream/documentation/sounds/modelling/</citetitle></ulink>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kamp</emphasis> -- Amplitude of note.
+ </para>
+
+ <para>
+ <emphasis>kfreq</emphasis> -- Frequency of note played. It can be varied in performance.
+ </para>
+
+ <para>
+ <emphasis>kphoneme</emphasis> -- an integer in the range 0 to 16, which select the formants for the sounds:
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <quote>eee</quote>, <quote>ihh</quote>, <quote>ehh</quote>, <quote>aaa</quote>,
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <quote>ahh</quote>, <quote>aww</quote>, <quote>ohh</quote>, <quote>uhh</quote>,
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <quote>uuu</quote>, <quote>ooo</quote>, <quote>rrr</quote>, <quote>lll</quote>,
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <quote>mmm</quote>, <quote>nnn</quote>, <quote>nng</quote>, <quote>ngg</quote>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ At present the phonemes
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <quote>fff</quote>, <quote>sss</quote>, <quote>thh</quote>, <quote>shh</quote>,
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <quote>xxx</quote>, <quote>hee</quote>, <quote>hoo</quote>, <quote>hah</quote>,
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <quote>bbb</quote>, <quote>ddd</quote>, <quote>jjj</quote>, <quote>ggg</quote>,
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <quote>vvv</quote>, <quote>zzz</quote>, <quote>thz</quote>, <quote>zhh</quote>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ are not available (!)
+ </para>
+
+ <para>
+ <emphasis>kform</emphasis> -- Gain on the phoneme. values 0.0 to 1.2 recommended.
+ </para>
+
+ <para>
+ <emphasis>kvibf</emphasis> -- frequency of vibrato in Hertz. Suggested range is 0 to 12
+ </para>
+
+ <para>
+ <emphasis>kvamp</emphasis> -- amplitude of the vibrato
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the voice opcode. It uses the file <ulink url="examples/voice.csd"><citetitle>voice.csd</citetitle></ulink>, and <ulink url="examples/impuls20.aiff"><citetitle>impuls20.aiff</citetitle></ulink>.
+ <example>
+ <title>Example of the voice opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/voice.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn; (after &nameperry;)</member>
+ <member>University of Bath, Codemist Ltd.</member>
+ <member>Bath, UK</member>
+ </simplelist>
+ </para>
+ <para>New in Csound version 3.47</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/vport.xml b/opcodes/vport.xml
index 9e1e3ca..c876bf4 100644
--- a/opcodes/vport.xml
+++ b/opcodes/vport.xml
@@ -9,43 +9,40 @@
<refnamediv>
<refname>vport</refname>
<refpurpose>
- Vectorial Control-rate Delay Paths
-
+ Vectorial Control-rate Delay Paths
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- Generate a sort of 'vectorial' portamento
+ Generate a sort of 'vectorial' portamento
</para>
</refsect1>
+
<refsect1>
<title>Syntax</title>
- <synopsis><command>vport</command> ifn, khtime, ielements [, ifnInit]
-</synopsis>
+ <synopsis><command>vport</command> ifn, khtime, ielements [, ifnInit]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifn</emphasis> - number of the table containing the output vector
+ <emphasis>ifn</emphasis> - number of the table containing the output vector
</para>
- <para>
+ <para>
<emphasis>ielements</emphasis> - number of elements of the two vectors
</para>
- <para>
- <emphasis>ifnInit</emphasis> (optional) - number of the table containing a vector whose elements contain intial portamento values.
+ <para>
+ <emphasis>ifnInit</emphasis> (optional) - number of the table containing a vector whose elements contain initial portamento values.
</para>
-
</refsect1>
<refsect1>
<title>Performance</title>
<para>
- <emphasis>vport</emphasis> is similar to <link linkend="port"><citetitle>port</citetitle></link>, but operates with vectorial signals, istead of with scalar signals. Each vector element is treated as an indipendent control signal. Input vector input and output vectors are placed in the same table and output vector overrides input vector. If you want to keep input vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> opcode to copy it in another table.
- </para>
-
+ <emphasis>vport</emphasis> is similar to <link linkend="port"><citetitle>port</citetitle></link>, but operates with vectorial signals, instead of with scalar signals. Each vector element is treated as an independent control signal. Input and output vectors are placed in the same table and output vector overrides input vector. If you want to keep input vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> opcode to copy it in another table.
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/vpow.xml b/opcodes/vpow.xml
index cd92a5a..9a182da 100644
--- a/opcodes/vpow.xml
+++ b/opcodes/vpow.xml
@@ -1,104 +1,111 @@
-
-<refentry id="vpow">
-<indexterm id="IndexVpow"><primary>vpow</primary></indexterm>
- <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vpow</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vpow</refname>
- <refpurpose>
- Raises each element of a vector to a scalar power
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Raises each element of a vector to a scalar power
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vpow</command> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kval</emphasis> - scalar value to which the elements of ifn will be raised
- </para>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the vector
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination table (Optional, default = 0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vpow</emphasis> raises each element of the vector contained in the table <emphasis>ifn</emphasis> to the power of <emphasis>kval</emphasis>, starting from table index <emphasis>idstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
- </para>
- <para>
- Note that this opcode runs at k-rate so the value of <emphasis>kval</emphasis> is processed every control period. Use with care or you will end up with very large (or small) numbers (or use <link linkend="vpow_i"><citetitle>vpow_i</citetitle></link>).
- </para>
- <para>
- These opcodes (<link linkend="vadd"><citetitle>vadd</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>) perform numeric operations between a vectorial control signal (hosted by the table <emphasis>ifn</emphasis>), and a scalar signal (<emphasis>kval</emphasis>). Result is a new vector that overrides old values of <emphasis>ifn</emphasis>. All these opcodes work at k-rate.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
- </para>
- <para>
- If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
- </para>
- <para>
- In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vpow opcode. It uses the file <ulink url="examples/vpow.csd"><citetitle>vpow.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vpow opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
-<xi:include href="examples-xml/vpow.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>See also</title>
- <para>
- <link linkend="vadd"><citetitle>vadd_i</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow_i"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>.
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
-</refentry> \ No newline at end of file
+
+<refentry id="vpow">
+<indexterm id="IndexVpow"><primary>vpow</primary></indexterm>
+ <refentryinfo><title>Vectorial:Scalar operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vpow</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vpow</refname>
+ <refpurpose>
+ Raises each element of a vector to a scalar power.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Raises each element of a vector to a scalar power.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vpow</command> ifn, kval, kelements [, kdstoffset] [, kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn</emphasis> - number of the table hosting the vectorial signal to be processed
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kval</emphasis> - scalar value to which the elements of <emphasis>ifn</emphasis> will be raised
+ </para>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the vector
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination table (Optional, default = 0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
+ </para>
+ <para>
+ <emphasis>vpow</emphasis> raises each element of the vector contained in the table <emphasis>ifn</emphasis> to the power of <emphasis>kval</emphasis>, starting from table index <emphasis>kdstoffset</emphasis>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
+ </para>
+ <para>
+ Note that this opcode runs at k-rate so the value of <emphasis>kval</emphasis> is processed every control period. Use with care or you will end up with very large (or small) numbers (or use <link linkend="vpow_i"><citetitle>vpow_i</citetitle></link>).
+ </para>
+ <para>
+ These opcodes (<link linkend="vadd"><citetitle>vadd</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>) perform numeric operations between a vectorial control signal (hosted by the table <emphasis>ifn</emphasis>), and a scalar signal (<emphasis>kval</emphasis>). Result is a new vector that overrides old values of <emphasis>ifn</emphasis>. All these opcodes work at k-rate.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
+ </para>
+ <para>
+ If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
+ </para>
+ <para>
+ In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vpow opcode. It uses the file <ulink url="examples/vpow.csd"><citetitle>vpow.csd</citetitle></ulink>.
+ <example>
+ <title>Examples of the vpow opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vpow.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ <para>
+ Here is another example of the vpow opcode. It uses the file <ulink url="examples/vpow-2.csd"><citetitle>vpow-2.csd</citetitle></ulink>.
+ <example>
+ <xi:include href="examples-xml/vpow-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See also</title>
+ <para>
+ <link linkend="vadd"><citetitle>vadd_i</citetitle></link>, <link linkend="vmult"><citetitle>vmult</citetitle></link>, <link linkend="vpow_i"><citetitle>vpow</citetitle></link> and <link linkend="vexp"><citetitle>vexp</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/vpow_i.xml b/opcodes/vpow_i.xml
index 59dd459..a24c697 100644
--- a/opcodes/vpow_i.xml
+++ b/opcodes/vpow_i.xml
@@ -52,21 +52,28 @@
Negative values for <emphasis>idstoffset</emphasis> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
</para>
<para>
- In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
+ In all these opcodes, the resulting vectors are stored in <emphasis>ifn</emphasis>, overriding the intial vectors. If you want to keep initial vector, use <link linkend="vcopy"><citetitle>vcopy</citetitle></link> or <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc. They can also be useful in conjunction with the spectral opcodes <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link> and <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>.
</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
Here is an example of the vpow_i opcode. It uses the file <ulink url="examples/vpow_i.csd"><citetitle>vpow_i.csd</citetitle></ulink>.
-
<example>
- <title>Example of the vpow_i opcode.</title>
+ <title>Examples of the vpow_i opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/vpow_i.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
+ <para>
+ Here is another example of the vpow_i opcode. It uses the file <ulink url="examples/vpow_i-2.csd"><citetitle>vpow_i-2.csd</citetitle></ulink>.
+ <example>
+ <xi:include href="examples-xml/vpow_i-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
+
<refsect1>
<title>See also</title>
<para>
@@ -78,4 +85,4 @@
<para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
<para>New in Csound 5 (Previously available only on CsoundAV)</para>
</refsect1>
-</refentry> \ No newline at end of file
+</refentry>
diff --git a/opcodes/vpowv.xml b/opcodes/vpowv.xml
index c7d1919..668a8bb 100644
--- a/opcodes/vpowv.xml
+++ b/opcodes/vpowv.xml
@@ -1,107 +1,106 @@
-
-<refentry id="vpowv">
-<indexterm id="IndexVpowv"><primary>vpowv</primary></indexterm>
- <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vpowv</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vpowv</refname>
- <refpurpose>
- Performs power-of operations between two vectorial control signals
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Performs power-of operations between two vectorial control signals
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vpowv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
- </para>
- <para>
- <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the two vectors
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination (ifn1) table (Default=0)
- </para>
- <para>
- <emphasis>ksrcoffset</emphasis> - index offset for the source (ifn2) table (Default=0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vpowv</emphasis> raises each element of ifn1 to the corresponding element of ifn2. Each vectorial signal is hosted by a table (ifn1 and ifn2). The number of elements contained in both vectors must be the same.
- </para>
- <para>
- The result is a new vectorial control signal that overrides old values of ifn1. If you want to keep the old ifn1 vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 1 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 1 (i.e. the destination vector will not be changed for these elements).
- </para>
- <para>
- If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
- </para>
- <warning>
- <para>
- Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
- </para>
- </warning>
- <para>
- This opcode works at k-rate (this means that every k-pass the vectors are processed). There's an i-rate version of this opcode called <link linkend="vpowv_i"><citetitle>vpowv_i</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- <para>
- All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>,<link linkend="vmultv"><citetitle>vmultv</citetitle></link>,<link linkend="vdivv"><citetitle>vdivv</citetitle></link>,<link linkend="vpowv"><citetitle>vpowv</citetitle></link>,<link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vpowv opcode. It uses the file <ulink url="examples/vpowv.csd"><citetitle>vpowv.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vpowv opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/vpowv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vpowv">
+<indexterm id="IndexVpowv"><primary>vpowv</primary></indexterm>
+ <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vpowv</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vpowv</refname>
+ <refpurpose>
+ Performs power-of operations between two vectorial control signals
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Performs power-of operations between two vectorial control signals
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vpowv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
+ </para>
+ <para>
+ <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the two vectors
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination (<emphasis>ifn1</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>ksrcoffset</emphasis> - index offset for the source (<emphasis>ifn2</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
+ </para>
+ <para>
+ <emphasis>vpowv</emphasis> raises each element of <emphasis>ifn1</emphasis> to the corresponding element of <emphasis>ifn2</emphasis>. Each vectorial signal is hosted by a table (<emphasis>ifn1</emphasis> and <emphasis>ifn2</emphasis>). The number of elements contained in both vectors must be the same.
+ </para>
+ <para>
+ The result is a new vectorial control signal that overrides old values of ifn1. If you want to keep the old <emphasis>ifn1</emphasis> vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 1 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 1 (i.e. the destination vector will not be changed for these elements).
+ </para>
+ <para>
+ If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
+ </para>
+ <warning>
+ <para>
+ Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
+ </para>
+ </warning>
+ <para>
+ This opcode works at k-rate (this means that every k-pass the vectors are processed). There's an i-rate version of this opcode called <link linkend="vpowv_i"><citetitle>vpowv_i</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ <para>
+ All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>, <link linkend="vsubv"><citetitle>vsubv</citetitle></link>, <link linkend="vmultv"><citetitle>vmultv</citetitle></link>, <link linkend="vdivv"><citetitle>vdivv</citetitle></link>, <link linkend="vpowv"><citetitle>vpowv</citetitle></link>, <link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vpowv opcode. It uses the file <ulink url="examples/vpowv.csd"><citetitle>vpowv.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vpowv opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vpowv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vpvoc.xml b/opcodes/vpvoc.xml
index eed4d8f..39766ea 100644
--- a/opcodes/vpvoc.xml
+++ b/opcodes/vpvoc.xml
@@ -86,10 +86,16 @@ ktime <emphasis role="opc">line</emphasis> 0, p3, 3 <emphasis role="co
apv <emphasis role="opc">vpvoc</emphasis> ktime, 1, &quot;pvoc.file&quot;</programlisting>
</informalexample>
</para>
-
<para>
The result would be a time-varying <quote>spectral envelope</quote> applied to the phase vocoder analysis data. Since this amplifies or attenuates the amount of signal at the frequencies that are paired with the amplitudes which are scaled by these functions, it has the effect of applying very accurate filters to the signal. In this example the first table would have the effect of a band-pass filter, gradually be band-rejected over half the note's duration, and then go towards no modification of the magnitudes over the second half.
</para>
+ <para>
+ Here is a complete example of the vpvoc opcode. It uses the file <ulink url="examples/vpvoc.csd"><citetitle>vpvoc.csd</citetitle></ulink>.
+ <example>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vpvoc.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
<refsect1>
diff --git a/opcodes/vrandh.xml b/opcodes/vrandh.xml
index 493269e..7d1da28 100644
--- a/opcodes/vrandh.xml
+++ b/opcodes/vrandh.xml
@@ -9,7 +9,7 @@
<refnamediv>
<refname>vrandh</refname>
<refpurpose>
- Generates a vector of random numbers stored into a table, holding the values for a period of time.
+ Generates a vector of random numbers stored into a table, holding the values for a period of time.
</refpurpose>
</refnamediv>
@@ -19,16 +19,17 @@
Generates a vector of random numbers stored into a table, holding the values for a period of time. Generates a sort of 'vectorial band-limited noise'.
</para>
</refsect1>
+
<refsect1>
<title>Syntax</title>
- <synopsis><command>vrandh</command> ifn, krange, kcps, ielements [, idstoffset] [, iseed]
+ <synopsis><command>vrandh</command> ifn, krange, kcps, ielements [, idstoffset] [, iseed] \
[, isize] [, ioffset]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifn</emphasis> - number of the table where the vectorial signal will be generated
+ <emphasis>ifn</emphasis> - number of the table where the vectorial signal will be generated
</para>
<para>
<emphasis>ielements</emphasis> - number of elements of the vector
@@ -37,7 +38,7 @@
<emphasis>idstoffset</emphasis> - (optional, default=0) -- index offset for the destination table
</para>
<para>
- <emphasis>iseed</emphasis> (optional, default=0.5) -- seed value for the recursive pseudo-random formula. A value between 0 and +1 will produce an initial output of <emphasis>kamp * iseed.</emphasis> A negative value will cause seed re-initialization to be skipped. A value greater than 1 will seed from system time, this is the best option to generate a different random sequence for each run.
+ <emphasis>iseed</emphasis> (optional, default=0.5) -- seed value for the recursive pseudo-random formula. A value between 0 and +1 will produce an initial output of <emphasis>kamp</emphasis> * <emphasis>iseed</emphasis>. A negative value will cause seed re-initialization to be skipped. A value greater than 1 will seed from system time, this is the best option to generate a different random sequence for each run.
</para>
<para>
<emphasis>isize</emphasis> (optional, default=0) -- if zero, a 16 bit number is generated. If non-zero, a 31-bit random number is generated. Default is 0.
@@ -50,10 +51,10 @@
<refsect1>
<title>Performance</title>
<para>
- <emphasis>krange</emphasis> - range of random elements (from -krange to krange)
+ <emphasis>krange</emphasis> - range of random elements (from -<emphasis>krange</emphasis> to <emphasis>krange</emphasis>).
</para>
<para>
- <emphasis>kcps</emphasis> - rate of generated elements in cycles per seconds
+ <emphasis>kcps</emphasis> - rate of generated elements in cycles per seconds.
</para>
<para>
This opcode is similar to <link linkend="randh"><citetitle>randh</citetitle></link>, but operates on vectors instead of with scalar values.
@@ -65,10 +66,11 @@
The output is a vector contained in <emphasis>ifn</emphasis> (that must be previously allocated).
</para>
<para>
- All these operators are designed to be used together with other opocdes that operate with vector such as bmscan, <link linkend="adsynt"><citetitle>adsynt</citetitle></link> etc.
+ All these operators are designed to be used together with other opcodes that operate with vector such as bmscan, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, etc.
</para>
<para><emphasis>Note:</emphasis> bmscan not yet available on Canonical Csound</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
@@ -81,6 +83,7 @@
</example>
</para>
</refsect1>
+
<refsect1>
<title>See also</title>
<para>
diff --git a/opcodes/vrandi.xml b/opcodes/vrandi.xml
index 6bc0656..be0bee0 100644
--- a/opcodes/vrandi.xml
+++ b/opcodes/vrandi.xml
@@ -9,7 +9,7 @@
<refnamediv>
<refname>vrandi</refname>
<refpurpose>
- Generate a sort of 'vectorial band-limited noise'
+ Generate a sort of 'vectorial band-limited noise'
</refpurpose>
</refnamediv>
@@ -19,16 +19,17 @@
Generate a sort of 'vectorial band-limited noise'
</para>
</refsect1>
+
<refsect1>
<title>Syntax</title>
- <synopsis><command>vrandi</command> ifn, krange, kcps, ielements [, idstoffset] [, iseed]
+ <synopsis><command>vrandi</command> ifn, krange, kcps, ielements [, idstoffset] [, iseed] \
[, isize] [, ioffset]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>ifn</emphasis> - number of the table where the vectorial signal will be generated
+ <emphasis>ifn</emphasis> - number of the table where the vectorial signal will be generated
</para>
<para>
<emphasis>ielements</emphasis> - number of elements to process
@@ -37,7 +38,7 @@
<emphasis>idstoffset</emphasis> - (optional, default=0) -- index offset for the destination table
</para>
<para>
- <emphasis>iseed</emphasis> (optional, default=0.5) -- seed value for the recursive pseudo-random formula. A value between 0 and +1 will produce an initial output of <emphasis>kamp * iseed.</emphasis> A negative value will cause seed re-initialization to be skipped. A value greater than 1 will seed from system time, this is the best option to generate a different random sequence for each run.
+ <emphasis>iseed</emphasis> (optional, default=0.5) -- seed value for the recursive pseudo-random formula. A value between 0 and +1 will produce an initial output of <emphasis>kamp</emphasis> * <emphasis>iseed</emphasis>. A negative value will cause seed re-initialization to be skipped. A value greater than 1 will seed from system time, this is the best option to generate a different random sequence for each run.
</para>
<para>
<emphasis>isize</emphasis> (optional, default=0) -- if zero, a 16 bit number is generated. If non-zero, a 31-bit random number is generated. Default is 0.
@@ -50,7 +51,7 @@
<refsect1>
<title>Performance</title>
<para>
- <emphasis>krange</emphasis> - range of random elements (from -krange to krange)
+ <emphasis>krange</emphasis> - range of random elements (from -<emphasis>krange</emphasis> to <emphasis>krange</emphasis>)
</para>
<para>
<emphasis>kcps</emphasis> - rate of generated elements in cycles per seconds
@@ -65,16 +66,16 @@
The output is a vector contained in <emphasis>ifn</emphasis> (that must be previously allocated).
</para>
<para>
- All these operators are designed to be used together with other opocdes that operate with vector such as bmscan, <link linkend="adsynt"><citetitle>adsynt</citetitle></link> etc.
+ All these operators are designed to be used together with other opcodes that operate with vector such as bmscan, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, etc.
</para>
<para><emphasis>Note:</emphasis> bmscan not yet available on Canonical Csound
</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
Here is an example of the vrandi opcode. It uses the file <ulink url="examples/vrandi.csd"><citetitle>vrandi.csd</citetitle></ulink>.
-
<example>
<title>Example of the vrandi opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
@@ -82,6 +83,7 @@
</example>
</para>
</refsect1>
+
<refsect1>
<title>See also</title>
<para>
diff --git a/opcodes/vstbankload.xml b/opcodes/vstbankload.xml
index 1ee1932..2e3ec26 100644
--- a/opcodes/vstbankload.xml
+++ b/opcodes/vstbankload.xml
@@ -7,55 +7,70 @@
<refnamediv>
<refname>vstbankload</refname>
- <refpurpose>Loads parameter banks to a VST plugin.
+ <refpurpose>
+ Loads parameter banks to a VST plugin.
</refpurpose>
</refnamediv>
+
<refsect1>
<title>Syntax</title>
<synopsis><command>vstbankload</command> instance, ipath</synopsis>
</refsect1>
+
<refsect1>
<title>Description</title>
- <para><emphasis>vstbankload</emphasis> is used for loading parameter
- banks to a VST plugin.</para>
+ <para>
+ <emphasis>vstbankload</emphasis> is used for loading parameter
+ banks to a VST plugin.
+ </para>
</refsect1>
+
<refsect1>
<title>Initialization</title>
- <para><emphasis>instance</emphasis> - the number which identifies the
- plugin, to be passed to other vst4cs opcodes.</para>
- <para><emphasis>ipath</emphasis> - the full pathname of the parameter
- bank (<filename>.fxb</filename> file).</para>
+ <para>
+ <emphasis>instance</emphasis> - the number which identifies the
+ plugin, to be passed to other vst4cs opcodes.
+ </para>
+ <para>
+ <emphasis>ipath</emphasis> - the full pathname of the parameter
+ bank (<filename>.fxb</filename> file).
+ </para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<example>
<title>Example for vstbankload</title>
<programlisting>
-/* orc */
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 2
-gihandle1 vstinit "c:/vstplugins/cheeze/cheeze machine.dll",1
-instr 4
-vstbankload gihandle1,"c:/vstplugins/cheeze/chengo'scheese.fxb"
-vstinfo gihandle1
-endin
+<emphasis role="comment">/* orc */</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+gihandle1 <emphasis role="opc">vstinit</emphasis> "c:/vstplugins/cheeze/cheeze machine.dll", 1
-/* sco */
-i 3 0 21
-i4 1 1 57 32
- </programlisting>
+<emphasis role="oblock">instr</emphasis> 4
+ <emphasis role="opc">vstbankload</emphasis> gihandle1,"c:/vstplugins/cheeze/chengo'scheese.fxb"
+ <emphasis role="opc">vstinfo</emphasis> gihandle1
+<emphasis role="oblock">endin</emphasis>
+
+<emphasis role="comment">/* sco */</emphasis>
+<emphasis role="stamnt">i</emphasis> 3 0 21
+<emphasis role="stamnt">i</emphasis> 4 1 1 57 32</programlisting>
</example>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>By: &nameandres; and &namemichael;</para>
- <para>Uses code from Hermann Seib's VSTHost and Thomas Grill's vst~
- object.</para>
- <para>VST is a trademark of Steinberg Media Technologies GmbH.
- VST Plug-In Technology by Steinberg.</para>
+ <para>
+ Uses code from Hermann Seib's VSTHost and Thomas Grill's vst~
+ object.
+ </para>
+ <para>
+ VST is a trademark of Steinberg Media Technologies GmbH.
+ VST Plug-In Technology by Steinberg.
+ </para>
</refsect1>
-
</refentry>
diff --git a/opcodes/vstedit.xml b/opcodes/vstedit.xml
index adeee1c..ad8112b 100644
--- a/opcodes/vstedit.xml
+++ b/opcodes/vstedit.xml
@@ -1,45 +1,61 @@
-<refentry id="vstedit">
-<indexterm id="IndexVstEdit"><primary>vstedit</primary></indexterm>
- <refentryinfo><title>Plugin Hosting:VST</title></refentryinfo>
- <refmeta>
- <refentrytitle>vstedit</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vstedit</refname>
- <refpurpose>Opens the GUI editor widow for a VST plugin.
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vstedit</command> instance</synopsis>
- </refsect1>
- <refsect1>
- <title>Description</title>
- <para><emphasis>vstedit</emphasis> opens the custom GUI editor widow for a VST
- plugin. Note that not all VST plugins have custom GUI editors. It may be necessary to use the --displays command-line option to ensure that Csound handles events from the editor window and displays it properly.</para>
- </refsect1>
- <refsect1>
- <title>Initialization</title>
- <para><emphasis>instance</emphasis> - the number which identifies the
- plugin, to be passed to other vst4cs opcodes.</para>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the use of the <emphasis>vstedit</emphasis> opcode. It uses the file <ulink url="examples/vst4cs.csd"><citetitle>vst4cs.csd</citetitle></ulink>.
- <example>
- <title>Example of the <emphasis>vstedit</emphasis> opcode</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/vst4cs.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para> </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>By: &nameandres; and &namemichael;</para>
- <para>Uses code from Hermann Seib's VSTHost and Thomas Grill's vst~
- object.</para>
- <para>VST is a trademark of Steinberg Media Technologies GmbH.
- VST Plug-In Technology by Steinberg.</para>
- </refsect1>
-</refentry>
+<refentry id="vstedit">
+<indexterm id="IndexVstEdit"><primary>vstedit</primary></indexterm>
+ <refentryinfo><title>Plugin Hosting:VST</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vstedit</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vstedit</refname>
+ <refpurpose>Opens the GUI editor window for a VST plugin.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vstedit</command> instance</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ <emphasis>vstedit</emphasis> opens the custom GUI editor window for a VST
+ plugin. Note that not all VST plugins have custom GUI editors. It may
+ be necessary to use the --displays command-line option to ensure that
+ Csound handles events from the editor window and displays it properly.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>instance</emphasis> - the number which identifies the
+ plugin, to be passed to other vst4cs opcodes.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the use of the <emphasis>vstedit</emphasis> opcode. It uses the file <ulink url="examples/vst4cs.csd"><citetitle>vst4cs.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the <emphasis>vstedit</emphasis> opcode</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vst4cs.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>By: &nameandres; and &namemichael;</para>
+ <para>
+ Uses code from Hermann Seib's VSTHost and Thomas Grill's vst~
+ object.
+ </para>
+ <para>
+ VST is a trademark of Steinberg Media Technologies GmbH.
+ VST Plug-In Technology by Steinberg.
+ </para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/vstmidiout.xml b/opcodes/vstmidiout.xml
index 7a8100b..10d9fcb 100644
--- a/opcodes/vstmidiout.xml
+++ b/opcodes/vstmidiout.xml
@@ -7,77 +7,98 @@
<refnamediv>
<refname>vstmidiout</refname>
- <refpurpose>Sends MIDI information to a VST plugin.
+ <refpurpose>
+ Sends MIDI information to a VST plugin.
</refpurpose>
</refnamediv>
+
<refsect1>
<title>Syntax</title>
<synopsis><command>vstmidiout</command> instance, kstatus, kchan, kdata1, kdata2</synopsis>
</refsect1>
+
<refsect1>
<title>Description</title>
<para><emphasis>vstmidiout</emphasis> is used for sending MIDI information to a VST plugin.</para>
</refsect1>
+
<refsect1>
<title>Initialization</title>
- <para><emphasis>instance</emphasis> - the number which identifies the
- plugin, to be passed to other vst4cs opcodes.</para>
+ <para>
+ <emphasis>instance</emphasis> - the number which identifies the
+ plugin, to be passed to other vst4cs opcodes.
+ </para>
</refsect1>
+
<refsect1>
<title>Performance</title>
- <para><emphasis>kstatus</emphasis> - the type of midi message to be
+ <para>
+ <emphasis>kstatus</emphasis> - the type of midi message to be
sent. Currently noteon (144), note off (128), Control Change (176),
Program change (192), Aftertouch (208) and Pitch Bend (224) are
- supported.</para>
- <para><emphasis>kchan</emphasis> - the MIDI channel transmitted
- on.</para>
- <para><emphasis>kdata1, kdata2</emphasis> - the MIDI data pair, which
- varies depending on kstatus. e.g. note/velocity for note on and note
- off, Controller number/value for control change.</para>
+ supported.
+ </para>
+ <para>
+ <emphasis>kchan</emphasis> - the MIDI channel transmitted
+ on.
+ </para>
+ <para>
+ <emphasis>kdata1, kdata2</emphasis> - the MIDI data pair, which
+ varies depending on <emphasis>kstatus</emphasis>. e.g. note/velocity for note on and note
+ off, Controller number/value for control change.
+ </para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<example>
<title>Example for vstmidiout</title>
<programlisting>
-/* orc */
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 2
-gihandle1 vstinit "c:/vstplugins/cheeze/cheeze machine.dll",1
-instr 3
-ain1 = 0
-ab1, ab2 vstaudio gihandle1, ain1, ain1
-outs ab1, ab2
-endin
-instr 4
-vstmidiout gihandle1,144,1,p4,p5
-endin
+<emphasis role="comment">/* orc */</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+gihandle1 <emphasis role="opc">vstinit</emphasis> "c:/vstplugins/cheeze/cheeze machine.dll", 1
+<emphasis role="oblock">instr</emphasis> 3
+ain1 <emphasis role="op">=</emphasis> 0
+ab1, ab2 <emphasis role="opc">vstaudio</emphasis> gihandle1, ain1, ain1
+ <emphasis role="opc">outs</emphasis> ab1, ab2
+<emphasis role="oblock">endin</emphasis>
-/* sco */
-i 3 0 21
-i4 1 1 57 32
-i4 3 1 60 100
-i4 5 1 62 100
-i4 7 1 64 100
-i4 9 1 65 100
-i4 11 1 67 100
-i4 13 1 69 100
-i4 15 3 71 100
-i4 18 3 72 100
-e
- </programlisting>
+<emphasis role="oblock">instr</emphasis> 4
+ <emphasis role="opc">vstmidiout</emphasis> gihandle1, 144, 1, p4, p5
+<emphasis role="oblock">endin</emphasis>
+
+
+<emphasis role="comment">/* sco */</emphasis>
+<emphasis role="stamnt">i</emphasis> 3 0 21
+
+<emphasis role="stamnt">i</emphasis> 4 1 1 57 32
+<emphasis role="stamnt">i</emphasis> 4 3 1 60 100
+<emphasis role="stamnt">i</emphasis> 4 5 1 62 100
+<emphasis role="stamnt">i</emphasis> 4 7 1 64 100
+<emphasis role="stamnt">i</emphasis> 4 9 1 65 100
+<emphasis role="stamnt">i</emphasis> 4 11 1 67 100
+<emphasis role="stamnt">i</emphasis> 4 13 1 69 100
+<emphasis role="stamnt">i</emphasis> 4 15 3 71 100
+<emphasis role="stamnt">i</emphasis> 4 18 3 72 100
+<emphasis role="stamnt">e</emphasis></programlisting>
</example>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>By: &nameandres; and &namemichael;</para>
- <para>Uses code from Hermann Seib's VSTHost and Thomas Grill's vst~
- object.</para>
- <para>VST is a trademark of Steinberg Media Technologies GmbH.
- VST Plug-In Technology by Steinberg.</para>
+ <para>
+ Uses code from Hermann Seib's VSTHost and Thomas Grill's vst~
+ object.
+ </para>
+ <para>
+ VST is a trademark of Steinberg Media Technologies GmbH.
+ VST Plug-In Technology by Steinberg.
+ </para>
</refsect1>
</refentry>
diff --git a/opcodes/vstprogset.xml b/opcodes/vstprogset.xml
index 203c9c2..99dd8db 100644
--- a/opcodes/vstprogset.xml
+++ b/opcodes/vstprogset.xml
@@ -7,58 +7,71 @@
<refnamediv>
<refname>vstprogset</refname>
- <refpurpose>Loads parameter banks to a VST plugin.
+ <refpurpose>
+ Loads parameter banks to a VST plugin.
</refpurpose>
</refnamediv>
+
<refsect1>
<title>Syntax</title>
<synopsis><command>vstprogset</command> instance, kprogram</synopsis>
</refsect1>
+
<refsect1>
<title>Description</title>
- <para><emphasis>vstprogset</emphasis> sets one of the programs in an <filename>.fxb</filename> bank.</para>
+ <para>
+ <emphasis>vstprogset</emphasis> sets one of the programs in an
+ <filename>.fxb</filename> bank.
+ </para>
</refsect1>
+
<refsect1>
<title>Initialization</title>
- <para><emphasis>instance</emphasis> - the number which identifies the
- plugin, to be passed to other vst4cs opcodes.</para>
+ <para>
+ <emphasis>instance</emphasis> - the number which identifies the
+ plugin, to be passed to other vst4cs opcodes.
+ </para>
<para><emphasis>kprogram</emphasis> - the number of the program to set.</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<example>
<title>Usage of vstprogset</title>
<para>
<programlisting>
-/* orc */
-sr = 44100
-kr = 4410
-ksmps = 10
-nchnls = 2
-giHandle1 vstinit "c:/vstplugins/cheeze/cheeze machine.dll",1
-instr 4
-vstbankload gihandle1,"c:/vstplugins/cheeze/chengo'scheese.fxb"
-vstprogset gihandle1, 4
-vstinfo gihandle1
-endin
+<emphasis role="comment">/* orc */</emphasis>
+<emphasis role="ohdr">sr</emphasis> <emphasis role="op">=</emphasis> 44100
+<emphasis role="ohdr">kr</emphasis> <emphasis role="op">=</emphasis> 4410
+<emphasis role="ohdr">ksmps</emphasis> <emphasis role="op">=</emphasis> 10
+<emphasis role="ohdr">nchnls</emphasis> <emphasis role="op">=</emphasis> 2
+gihandle1 <emphasis role="opc">vstinit</emphasis> "c:/vstplugins/cheeze/cheeze machine.dll", 1
+<emphasis role="oblock">instr</emphasis> 4
+ <emphasis role="opc">vstbankload</emphasis> gihandle1,"c:/vstplugins/cheeze/chengo'scheese.fxb"
+ <emphasis role="opc">vstprogset</emphasis> gihandle1, 4
+ <emphasis role="opc">vstinfo</emphasis> gihandle1
+<emphasis role="oblock">endin</emphasis>
-/* sco */
-i 3 0 21
-i4 1 1 57 32
-e
- </programlisting>
+<emphasis role="comment">/* sco */</emphasis>
+<emphasis role="stamnt">i</emphasis> 3 0 21
+<emphasis role="stamnt">i</emphasis> 4 1 1 57 32
+<emphasis role="stamnt">e</emphasis></programlisting>
</para>
</example>
</refsect1>
+
<refsect1>
<title>Credits</title>
<para>By: &nameandres; and &namemichael;</para>
- <para>Uses code from Hermann Seib's VSTHost and Thomas Grill's vst~
- object.</para>
- <para>VST is a trademark of Steinberg Media Technologies GmbH.
- VST Plug-In Technology by Steinberg.</para>
+ <para>
+ Uses code from Hermann Seib's VSTHost and Thomas Grill's vst~
+ object.
+ </para>
+ <para>
+ VST is a trademark of Steinberg Media Technologies GmbH.
+ VST Plug-In Technology by Steinberg.
+ </para>
</refsect1>
-
</refentry>
diff --git a/opcodes/vsubv.xml b/opcodes/vsubv.xml
index 5848d8a..7db392d 100644
--- a/opcodes/vsubv.xml
+++ b/opcodes/vsubv.xml
@@ -1,106 +1,108 @@
-
-<refentry id="vsubv">
-<indexterm id="IndexVsubv"><primary>vsubv</primary></indexterm>
- <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vsubv</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vsubv</refname>
- <refpurpose>
- Performs subtraction between two vectorial control signals
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Performs subtraction between two vectorial control signals
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vsubv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
- </para>
- <para>
- <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the two vectors
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination (ifn1) table (Default=0)
- </para>
- <para>
- <emphasis>ksrcoffset</emphasis> - index offset for the source (ifn2) table (Default=0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vsubv</emphasis> subtracts two vectorial control signals, that is, each element of ifn2 is subrtacted from the corresponding element of ifn1. Each vectorial signal is hosted by a table (ifn1 and ifn2). The number of elements contained in both vectors must be the same.
- </para>
- <para>
- The result is a new vectorial control signal that overrides old values of ifn1. If you want to keep the old ifn1 vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 0 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 0 (i.e. the destination vector will not be changed for these elements).
- </para>
- <para>
- If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
- </para>
- <warning>
- <para>
- Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
- </para>
- </warning>
- <para>
- This opcode works at k-rate (this means that every k-pass the vectors are subtracted). There's an i-rate version of this opcode called <link linkend="vsubv_i"><citetitle>vsubv_i</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- <para>
- All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>,<link linkend="vmultv"><citetitle>vmultv</citetitle></link>,<link linkend="vdivv"><citetitle>vdivv</citetitle></link>,<link linkend="vpowv"><citetitle>vpowv</citetitle></link>,<link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vsubv opcode. It uses the file <ulink url="examples/vsubv.csd"><citetitle>vsubv.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vsubv opcode.</title>
- <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/vsubv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vsubv">
+<indexterm id="IndexVsubv"><primary>vsubv</primary></indexterm>
+ <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vsubv</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vsubv</refname>
+ <refpurpose>
+ Performs subtraction between two vectorial control signals
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Performs subtraction between two vectorial control signals
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vsubv</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn1</emphasis> - number of the table hosting the first vector to be processed
+ </para>
+ <para>
+ <emphasis>ifn2</emphasis> - number of the table hosting the second vector to be processed
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the two vectors
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination (<emphasis>ifn1</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>ksrcoffset</emphasis> - index offset for the source (<emphasis>ifn2</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
+ </para>
+ <para>
+ <emphasis>vsubv</emphasis> subtracts two vectorial control signals, that is, each element of <emphasis>ifn2</emphasis> is substracted from the corresponding element of <emphasis>ifn1</emphasis>. Each vectorial signal is hosted by a table (<emphasis>ifn1</emphasis> and <emphasis>ifn2</emphasis>). The number of elements contained in both vectors must be the same.
+ </para>
+ <para>
+ The result is a new vectorial control signal that overrides old values of <emphasis>ifn1</emphasis>. If you want to keep the old <emphasis>ifn1</emphasis> vector, use <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link> opcode to copy it in another table. You can use <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> to specify vectors in any location of the tables.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>ksrcoffset</emphasis> is negative, the out of range elements will be assumed to be 0 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 0 (i.e. the destination vector will not be changed for these elements).
+ </para>
+ <para>
+ If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
+ </para>
+ <warning>
+ <para>
+ Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
+ </para>
+ </warning>
+ <para>
+ This opcode works at k-rate (this means that every k-pass the vectors are subtracted). There's an i-rate version of this opcode called <link linkend="vsubv_i"><citetitle>vsubv_i</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ <para>
+ All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>, <link linkend="vsubv"><citetitle>vsubv</citetitle></link>, <link linkend="vmultv"><citetitle>vmultv</citetitle></link>, <link linkend="vdivv"><citetitle>vdivv</citetitle></link>, <link linkend="vpowv"><citetitle>vpowv</citetitle></link>, <link linkend="vexpv"><citetitle>vexpv</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link>, etc.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vsubv opcode. It uses the file <ulink url="examples/vsubv.csd"><citetitle>vsubv.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the vsubv opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/vsubv.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vtaba.xml b/opcodes/vtaba.xml
index dfc14c9..eacee7e 100644
--- a/opcodes/vtaba.xml
+++ b/opcodes/vtaba.xml
@@ -9,17 +9,17 @@
<refnamediv>
<refname>vtaba</refname>
<refpurpose>
- Read vectors (from tables -or arrays of vectors).
-
+ Read vectors (from tables -or arrays of vectors).
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- This opcode reads vectors from tables at a-rate.
+ This opcode reads vectors from tables at a-rate.
</para>
</refsect1>
+
<refsect1>
<title>Syntax</title>
<synopsis><command>vtaba</command> andx, ifn, aout1 [, aout2, aout3, .... , aoutN ]</synopsis>
@@ -36,21 +36,18 @@
<title>Performance</title>
<para>
<emphasis>andx</emphasis> - Index into f-table, either a positive number range matching the table length
- </para>
- <para>
+ </para>
+ <para>
<emphasis>aout1...aoutN</emphasis> - output vector elements
- </para>
- <para>
- This opcode is useful in all cases in which one needs to access sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (aout1 , aout2, aout3, .... aoutN).
</para>
<para>
- Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using vtaba, in order to correct eventual out-of-range values.
+ This opcode is useful in all cases in which one needs to access sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (<emphasis>aout1</emphasis>, <emphasis>aout2</emphasis>, <emphasis>aout3</emphasis>, .... <emphasis>aoutN</emphasis>).
</para>
<para>
- Notice that <command>vtaba</command> output arguments are placed at the left of the opcode name, differently from usual (this style is already used in other opcodes using undefined lists of output arguments such as fin or trigseq).
+ Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using <emphasis>vtaba</emphasis>, in order to correct eventual out-of-range values.
</para>
<para>
- The <command>vtab</command> family is similar to the <command>vtable</command> family, but is much faster because interpolation is not available, table number cannot be changed after initialization, and only raw indexing is supported.
+ The <command>vtab</command> family is similar to the <command>vtable</command> family, but is much faster because interpolation is not available, table number cannot be changed after initialization, and only raw indexing is supported.
</para>
<note>
<para>
diff --git a/opcodes/vtabi.xml b/opcodes/vtabi.xml
index 699bc65..0aef587 100644
--- a/opcodes/vtabi.xml
+++ b/opcodes/vtabi.xml
@@ -9,17 +9,17 @@
<refnamediv>
<refname>vtabi</refname>
<refpurpose>
- Read vectors (from tables -or arrays of vectors).
-
+ Read vectors (from tables -or arrays of vectors).
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- This opcode reads vectors from tables.
+ This opcode reads vectors from tables.
</para>
</refsect1>
+
<refsect1>
<title>Syntax</title>
<synopsis><command>vtabi</command> indx, ifn, iout1 [, iout2, iout3, .... , ioutN ]</synopsis>
@@ -40,16 +40,13 @@
<refsect1>
<title>Performance</title>
<para>
- This opcode is useful in all cases in which one needs to access sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (iout1 , iout2, iout3, .... ioutN).
- </para>
- <para>
- Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using vtable, in order to correct eventual out-of-range values.
+ This opcode is useful in all cases in which one needs to access sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (<emphasis>iout1</emphasis>, <emphasis>iout2</emphasis>, <emphasis>iout3</emphasis>, .... <emphasis>ioutN</emphasis>).
</para>
<para>
- Notice that vtabi output arguments are placed at the left of the opcode name, differently from usual (this style is already used in other opcodes using undefined lists of output arguments such as fin or trigseq).
+ Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using <emphasis>vtabi</emphasis>, in order to correct eventual out-of-range values.
</para>
<para>
- The <command>vtab</command> family is similar to <command>vtable</command>, but is much faster because interpolation is not available, table number cannot be changed after initialization, and only raw indexing is supported.
+ The <command>vtab</command> family is similar to <command>vtable</command>, but is much faster because interpolation is not available, table number cannot be changed after initialization, and only raw indexing is supported.
</para>
<note>
<para>
diff --git a/opcodes/vtabk.xml b/opcodes/vtabk.xml
index 75b0768..6985a4b 100644
--- a/opcodes/vtabk.xml
+++ b/opcodes/vtabk.xml
@@ -9,17 +9,17 @@
<refnamediv>
<refname>vtabk</refname>
<refpurpose>
- Read vectors (from tables -or arrays of vectors).
-
+ Read vectors (from tables -or arrays of vectors).
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- This opcode reads vectors from tables at k-rate.
+ This opcode reads vectors from tables at k-rate.
</para>
</refsect1>
+
<refsect1>
<title>Syntax</title>
<synopsis><command>vtabk</command> kndx, ifn, kout1 [, kout2, kout3, .... , koutN ]</synopsis>
@@ -41,16 +41,13 @@
<emphasis>kout1...koutN</emphasis> - output vector elements
</para>
<para>
- This opcode is useful in all cases in which one needs to access sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.) . The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (kout1 , kout2, kout3, .... koutN).
- </para>
- <para>
- Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using vtable, in order to correct eventual out-of-range values.
+ This opcode is useful in all cases in which one needs to access sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.) . The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (<emphasis>kout1</emphasis>, <emphasis>kout2</emphasis>, <emphasis>kout3</emphasis>, .... <emphasis>koutN</emphasis>).
</para>
<para>
- Notice that <emphasis>vtabk</emphasis> output arguments are placed at the left of the opcode name, differently from usual (this style is already used in other opcodes using undefined lists of output arguments such as fin or trigseq).
+ Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using <emphasis>vtabk</emphasis>, in order to correct eventual out-of-range values.
</para>
<para>
- The <command>vtab</command> family is similar to <command>vtable</command>, but is much faster because interpolation is not available, table number cannot be changed after initialization, and only raw indexing is supported.
+ The <command>vtab</command> family is similar to <command>vtable</command>, but is much faster because interpolation is not available, table number cannot be changed after initialization, and only raw indexing is supported.
</para>
<note>
<para>
diff --git a/opcodes/vtablewi.xml b/opcodes/vtablewi.xml
index 2bbffcc..454d772 100644
--- a/opcodes/vtablewi.xml
+++ b/opcodes/vtablewi.xml
@@ -9,17 +9,17 @@
<refnamediv>
<refname>vtablewi</refname>
<refpurpose>
- Write vectors (to tables -or arrays of vectors).
-
+ Write vectors (to tables -or arrays of vectors).
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- This opcode writes vectors to tables at init time.
+ This opcode writes vectors to tables at init time.
</para>
</refsect1>
+
<refsect1>
<title>Syntax</title>
<synopsis><command>vtablewi</command> indx, ifn, ixmode, inarg1 [, inarg2, inarg3 , .... , inargN ]</synopsis>
@@ -27,40 +27,33 @@
<refsect1>
<title>Initialization</title>
- <para>
- <emphasis>indx</emphasis> - Index into f-table, either a positive number range matching the table length (ixmode = 0) or a 0 to 1 range (ixmode != 0).
- </para>
- <para>
+ <para>
+ <emphasis>indx</emphasis> - Index into f-table, either a positive number range matching the table length (<emphasis>ixmode</emphasis> = 0) or a 0 to 1 range (<emphasis>ixmode</emphasis> != 0).
+ </para>
+ <para>
<emphasis>ifn</emphasis> - table number
- </para>
- <para>
- <emphasis>ixmode</emphasis> - index data mode. The default value is 0.
- </para>
+ </para>
+ <para><emphasis>ixmode</emphasis> - index data mode. The default value is 0.</para>
<para> == 0 index is treated as a raw table location,</para>
<para> == 1 index is normalized (0 to 1).</para>
- <para>
- <emphasis>inarg1...inargN</emphasis> - output vector elements
+ <para>
+ <emphasis>inarg1...inargN</emphasis> - input vector elements
</para>
-
</refsect1>
<refsect1>
<title>Performance</title>
-
<para>
- This opcode is useful in all cases in which one needs to write sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (inarg1 , inarg2, inarg3, .... inargN).
+ This opcode is useful in all cases in which one needs to write sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (<emphasis>inarg1</emphasis>, <emphasis>inarg2</emphasis>, <emphasis>inarg3</emphasis>, .... <emphasis>inargN</emphasis>).
</para>
<para>
Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using <emphasis>vtablewi</emphasis>, in order to correct eventual out-of-range values.
</para>
-
</refsect1>
-
<refsect1>
<title>Credits</title>
<para>Written by Gabriel Maldonado.</para>
-
<para>New in Csound 5 (Previously available only on CsoundAV)</para>
</refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vtablewk.xml b/opcodes/vtablewk.xml
index 8fb9dd5..b7e008b 100644
--- a/opcodes/vtablewk.xml
+++ b/opcodes/vtablewk.xml
@@ -1,79 +1,74 @@
-
-<refentry id="vtablewk">
-<indexterm id="IndexVtablewk"><primary>vtablewk</primary></indexterm>
- <refentryinfo><title>Vectorial:Tables</title></refentryinfo>
- <refmeta>
- <refentrytitle>vtablewk</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vtablewk</refname>
- <refpurpose>
- Write vectors (to tables -or arrays of vectors).
-
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- This opcode writes vectors to tables at k-rate.
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vtablewk</command> kndx, kfn, ixmode, kinarg1 [, kinarg2, kinarg3 , .... , kinargN ]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ixmode</emphasis> - index data mode. The default value is 0.
- == 0 index is treated as a raw table location,
- == 1 index is normalized (0 to 1).
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kndx</emphasis> - Index into f-table, either a positive number range matching the table length (ixmode = 0) or a 0 to 1 range (ixmode != 0).
- </para>
- <para>
- <emphasis>kfn</emphasis> - table number
- </para>
- <para>
- <emphasis>kinarg1...kinargN</emphasis> - output vector elements
- </para>
- <para>
- This opcode is useful in all cases in which one needs to write sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (kinarg1 , kinarg2, kinarg3, .... kinargN).
- </para>
- <para>
- <command>vtablewk</command> allows also to switch the table number at k-rate (but this is possible only when vector frames of each used table have the same number of elements, otherwise unpredictable results could occurr), as well as to choose indexing style (raw or normalized, see also ixmode argument of table opcode ).
- </para>
- <para>
- Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using <emphasis>vtablewk</emphasis>, in order to correct eventual out-of-range values.
- </para>
-
- </refsect1>
-
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vtablewk opcode. It uses the files <ulink url="examples/vtablewk.csd"><citetitle>vtablewk.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vtablewk opcode.</title>
- <xi:include href="examples-xml/vtablewk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
- </example>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado.</para>
- <para>Example written by Andres Cabrera.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vtablewk">
+<indexterm id="IndexVtablewk"><primary>vtablewk</primary></indexterm>
+ <refentryinfo><title>Vectorial:Tables</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vtablewk</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vtablewk</refname>
+ <refpurpose>
+ Write vectors (to tables -or arrays of vectors).
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ This opcode writes vectors to tables at k-rate.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vtablewk</command> kndx, kfn, ixmode, kinarg1 [, kinarg2, kinarg3 , .... , kinargN ]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para><emphasis>ixmode</emphasis> - index data mode. The default value is 0.</para>
+ <para> == 0 index is treated as a raw table location,</para>
+ <para> == 1 index is normalized (0 to 1).</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kndx</emphasis> - Index into f-table, either a positive number range matching the table length (<emphasis>ixmode</emphasis> = 0) or a 0 to 1 range (<emphasis>ixmode</emphasis> != 0).
+ </para>
+ <para>
+ <emphasis>kfn</emphasis> - table number
+ </para>
+ <para>
+ <emphasis>kinarg1...kinargN</emphasis> - input vector elements
+ </para>
+ <para>
+ This opcode is useful in all cases in which one needs to write sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (<emphasis>kinarg1</emphasis>, <emphasis>kinarg2</emphasis>, <emphasis>kinarg3</emphasis>, .... <emphasis>kinargN</emphasis>).
+ </para>
+ <para>
+ <command>vtablewk</command> allows also to switch the table number at k-rate (but this is possible only when vector frames of each used table have the same number of elements, otherwise unpredictable results could occurr), as well as to choose indexing style (raw or normalized, see also <emphasis>ixmode</emphasis> argument of <emphasis>table</emphasis> opcode ).
+ </para>
+ <para>
+ Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using <emphasis>vtablewk</emphasis>, in order to correct eventual out-of-range values.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vtablewk opcode. It uses the files <ulink url="examples/vtablewk.csd"><citetitle>vtablewk.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vtablewk opcode.</title>
+ <xi:include href="examples-xml/vtablewk.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado.</para>
+ <para>Example written by Andres Cabrera.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file
diff --git a/opcodes/vtabwa.xml b/opcodes/vtabwa.xml
index 45a1d2c..01b2222 100644
--- a/opcodes/vtabwa.xml
+++ b/opcodes/vtabwa.xml
@@ -9,17 +9,17 @@
<refnamediv>
<refname>vtabwa</refname>
<refpurpose>
- Write vectors (to tables -or arrays of vectors).
-
+ Write vectors (to tables -or arrays of vectors).
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- This opcode writes vectors to tables at a-rate.
+ This opcode writes vectors to tables at a-rate.
</para>
</refsect1>
+
<refsect1>
<title>Syntax</title>
<synopsis><command>vtabwa</command> andx, ifn, ainarg1 [, ainarg2, ainarg3 , .... , ainargN ]</synopsis>
@@ -33,24 +33,19 @@
<refsect1>
<title>Performance</title>
<para>
- <emphasis>andx</emphasis> - Index into f-table, either a positive number range matching the table length (ixmode = 0) or a 0 to 1 range (ixmode != 0).
+ <emphasis>andx</emphasis> - Index into f-table, a positive number range matching the table length
</para>
<para>
<emphasis>ainarg1...ainargN</emphasis> - input vector elements
</para>
<para>
- This opcode is useful in all cases in which one needs to write sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (ainarg1 , ainarg2, ainarg3, .... ainargN).
- </para>
- <para>
- <emphasis>vtabwa</emphasis> allows also to switch the table number at k-rate (but this is possible only when vector frames of each used table have the same number of elements, otherwise unpredictable results could occurr), as well as to choose indexing style (raw or normalized, see also ixmode argument of table opcode ).
+ This opcode is useful in all cases in which one needs to write sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (<emphasis>ainarg1</emphasis>, <emphasis>ainarg2</emphasis>, <emphasis>ainarg3</emphasis>, .... <emphasis>ainargN</emphasis>).
</para>
<para>
Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using <emphasis>vtabwa</emphasis>, in order to correct eventual out-of-range values.
</para>
-
</refsect1>
-
<refsect1>
<title>Credits</title>
<para>Written by Gabriel Maldonado.</para>
diff --git a/opcodes/vtabwi.xml b/opcodes/vtabwi.xml
index 6bd91a0..9668313 100644
--- a/opcodes/vtabwi.xml
+++ b/opcodes/vtabwi.xml
@@ -9,17 +9,17 @@
<refnamediv>
<refname>vtabwi</refname>
<refpurpose>
- Write vectors (to tables -or arrays of vectors).
-
+ Write vectors (to tables -or arrays of vectors).
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- This opcode writes vectors to tables at init time.
+ This opcode writes vectors to tables at init time.
</para>
</refsect1>
+
<refsect1>
<title>Syntax</title>
<synopsis><command>vtabwi</command> indx, ifn, inarg1 [, inarg2, inarg3 , .... , inargN ]</synopsis>
@@ -28,26 +28,24 @@
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>indx</emphasis> - Index into f-table, either a positive number range matching the table length (ixmode = 0) or a 0 to 1 range (ixmode != 0).
+ <emphasis>indx</emphasis> - Index into f-table, a positive number range matching the table length
</para>
<para>
<emphasis>ifn</emphasis> - table number
</para>
<para>
- <emphasis>inarg1...inargN</emphasis> - output vector elements
+ <emphasis>inarg1...inargN</emphasis> - input vector elements
</para>
</refsect1>
<refsect1>
<title>Performance</title>
-
<para>
- This opcode is useful in all cases in which one needs to write sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (inarg1 , inarg2, inarg3, .... inargN).
+ This opcode is useful in all cases in which one needs to write sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.). The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (<emphasis>inarg1</emphasis>, <emphasis>inarg2</emphasis>, <emphasis>inarg3</emphasis>, .... <emphasis>inargN</emphasis>).
</para>
<para>
Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using <emphasis>vtabwi</emphasis>, in order to correct eventual out-of-range values.
</para>
-
</refsect1>
<refsect1>
diff --git a/opcodes/vtabwk.xml b/opcodes/vtabwk.xml
index 6ce15fc..ce0de62 100644
--- a/opcodes/vtabwk.xml
+++ b/opcodes/vtabwk.xml
@@ -9,17 +9,17 @@
<refnamediv>
<refname>vtabwk</refname>
<refpurpose>
- Write vectors (to tables -or arrays of vectors).
-
+ Write vectors (to tables -or arrays of vectors).
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
- This opcode writes vectors to tables at a-rate.
+ This opcode writes vectors to tables at k-rate.
</para>
</refsect1>
+
<refsect1>
<title>Syntax</title>
<synopsis><command>vtabwk</command> kndx, ifn, kinarg1 [, kinarg2, kinarg3 , .... , kinargN ]</synopsis>
@@ -27,26 +27,23 @@
<refsect1>
<title>Initialization</title>
- <para><emphasis>ifn</emphasis> - table number</para>
+ <para><emphasis>ifn</emphasis> - table number</para>
</refsect1>
<refsect1>
<title>Performance</title>
<para>
- <emphasis>kndx</emphasis> - Index into f-table, either a positive number range matching the table length (ixmode = 0) or a 0 to 1 range (ixmode != 0).
-
- <emphasis>kinarg1...kinargN</emphasis> - input vector elements
+ <emphasis>kndx</emphasis> - Index into f-table, a positive number range matching the table length
</para>
<para>
- This opcode is useful in all cases in which one needs to write sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.) . The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (kinarg1 , kinarg2, kinarg3, .... kinargN).
+ <emphasis>kinarg1...kinargN</emphasis> - input vector elements
</para>
<para>
- <emphasis>vtabwk</emphasis> allows also to switch the table number at k-rate (but this is possible only when vector frames of each used table have the same number of elements, otherwise unpredictable results could occurr), as well as to choose indexing style (raw or normalized, see also ixmode argument of table opcode ).
+ This opcode is useful in all cases in which one needs to write sets of values associated to unique indexes (for example, multi-channel samples, STFT bin frames, spectral formants, p-field based scores etc.) . The number of elements of each vector (length of the vector) is determined by the number of optional arguments on the right (<emphasis>kinarg1</emphasis>, <emphasis>kinarg2</emphasis>, <emphasis>kinarg3</emphasis>, .... <emphasis>kinargN</emphasis>).
</para>
<para>
Notice that no wrap nor limit mode is implemented. So, if an index attempt to access to a zone not allocated by the table, Csound will probably crash. However this drawback can be easily avoided by using wrap or limit opcodes applied to indexes before using <emphasis>vtabwk</emphasis>, in order to correct eventual out-of-range values.
</para>
-
</refsect1>
<refsect1>
diff --git a/opcodes/waveset.xml b/opcodes/waveset.xml
index 233f8b5..83d8ab4 100644
--- a/opcodes/waveset.xml
+++ b/opcodes/waveset.xml
@@ -55,7 +55,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the waveset opcode. It uses the file <ulink url="examples/waveset.csd"><citetitle>waveset.csd</citetitle></ulink>, and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
+ Here is an example of the waveset opcode. It uses the file <ulink url="examples/waveset.csd"><citetitle>waveset.csd</citetitle></ulink>.
<example>
<title>Example of the waveset opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
@@ -72,8 +72,6 @@
<member>February 2001</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
-
<para>New in version 4.11</para>
</refsect1>
</refentry>
diff --git a/opcodes/weibull.xml b/opcodes/weibull.xml
index 29c50e3..bf685ed 100644
--- a/opcodes/weibull.xml
+++ b/opcodes/weibull.xml
@@ -66,9 +66,45 @@
<xi:include href="examples-xml/weibull.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
- Its output should include a line like this:
+ Its output should include a line like these:
<screen>
-instr 1: i1 = 1.834
+i 1 time 0.00073: 168.59070
+ i 1 time 0.20027: 98.72078
+ i 1 time 0.40054: 48.57351
+ i 1 time 0.60009: 171.46941
+ i 1 time 0.80036: 50.20434
+ i 1 time 1.00063: 50.84775
+ i 1 time 1.20018: 18.16301
+ i 1 time 1.40045: 44.41001
+ i 1 time 1.60000: 0.98506
+ i 1 time 1.80027: 36.19192
+
+WARNING: Seeding from current time 2444541554
+
+ i 2 time 3.00045: 20.81653
+ i 2 time 3.20000: 116.17060
+ i 2 time 3.40027: 9.23891
+ i 2 time 3.59982: 95.67111
+ i 2 time 3.80009: 296.52851
+ i 2 time 4.00036: 39.28636
+ i 2 time 4.19991: 13.54326
+ i 2 time 4.40018: 54.92388
+ i 2 time 4.59973: 268.05584
+ i 2 time 4.80000: 95.27069
+ i 2 time 5.00027: 91.62076
+
+WARNING: Seeding from current time 2447542341
+
+ i 3 time 6.00091: 94.40902
+ i 3 time 6.20045: 111.10193
+ i 3 time 6.40073: 99.38797
+ i 3 time 6.60027: 98.54267
+ i 3 time 6.80054: 106.53899
+ i 3 time 7.00082: 106.30752
+ i 3 time 7.20036: 88.75486
+ i 3 time 7.40063: 106.45703
+ i 3 time 7.60091: 84.59854
+ i 3 time 7.80045: 106.76515
</screen>
</para>
</refsect1>
@@ -99,6 +135,5 @@ instr 1: i1 = 1.834
<member>1995</member>
</simplelist>
</para>
- <para>Example written by &namekevin;.</para>
</refsect1>
</refentry>
diff --git a/opcodes/wguide2.xml b/opcodes/wguide2.xml
index 2a68db3..00a4b66 100644
--- a/opcodes/wguide2.xml
+++ b/opcodes/wguide2.xml
@@ -73,13 +73,13 @@
</para>
</note>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
Here is an example of the wguide2 opcode. It uses the file <ulink url="examples/wguide2.csd"><citetitle>wguide2.csd</citetitle></ulink>.
<example>
- <title>Example of the wguide1 opcode.</title>
-
+ <title>Example of the wguide2 opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/wguide2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
@@ -104,6 +104,5 @@
</para>
<para>New in Csound version 3.49</para>
- <para>Example written by John ffitch</para>
</refsect1>
-</refentry> \ No newline at end of file
+</refentry>
diff --git a/opcodes/wiiconnect.xml b/opcodes/wiiconnect.xml
index b38b514..dabe6b9 100644
--- a/opcodes/wiiconnect.xml
+++ b/opcodes/wiiconnect.xml
@@ -22,7 +22,7 @@
<refsect1>
<title>Syntax</title>
- <synopsis>kres <command>wiiconnect</command> [itimeout, imaxnum]</synopsis>
+ <synopsis>ires <command>wiiconnect</command> [itimeout, imaxnum]</synopsis>
</refsect1>
<refsect1>
@@ -40,6 +40,11 @@
Initially each Wiimote has its numeric allocation indicated by
lighting one of the four LEDs.
</para>
+ <para>
+ <emphasis>ires</emphasis> -- return value is 1 if sucess or zero
+ on failure.
+ </para>
+
</refsect1>
@@ -52,7 +57,7 @@
</para>
</note>
<para>
- Every control cycle each Wiimote is poled for its status and
+ Every control cycle each Wiimote is polled for its status and
position. These values are read by
the <emphasis>wiidata</emphasis> opcode. The result returned is
1 in most cases, but will be zero if a Wiimote disconnects,
diff --git a/opcodes/wrap.xml b/opcodes/wrap.xml
index 9b1b5f2..3f6c854 100644
--- a/opcodes/wrap.xml
+++ b/opcodes/wrap.xml
@@ -70,6 +70,18 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the wrap opcode. It uses the file <ulink url="examples/wrap.csd"><citetitle>wrap.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the wrap opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/wrap.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
<link linkend="limit"><citetitle>limit</citetitle></link>,
diff --git a/opcodes/writescratch.xml b/opcodes/writescratch.xml
new file mode 100644
index 0000000..e22dda4
--- /dev/null
+++ b/opcodes/writescratch.xml
@@ -0,0 +1,74 @@
+
+<refentry id="writescratch">
+<indexterm id="IndexWritescratch"><primary>writescratch</primary></indexterm>
+ <refentryinfo><title>Instrument Control:Sensing and Control</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>writescratch</refentrytitle>
+ </refmeta>
+
+
+
+ <refnamediv>
+ <refname>writescratch</refname>
+
+ <refpurpose>
+ writes a value into the scratchpad of the instance of an instrument.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ The <emphasis>writescratch</emphasis> opcode writes one of four
+ scalar values to be stored in the instance of an instrument.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>writescratch</command>ival[, index]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialisation</title>
+ <para>
+ <emphasis>ival</emphasis> -- variable to write.
+ </para>
+ <para>
+ <emphasis>index</emphasis> -- which value to write, defaulting
+ to zero.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the writescratch opcode. It uses the file <ulink url="examples/readscratch.csd"><citetitle>readscratch.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the writescratch opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/readscratch.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <link linkend="readscratch"><citetitle>readscratch</citetitle></link>,
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>
+ <simplelist>
+ <member>Author: &namejohn;</member>
+ <member>March 2013</member>
+ </simplelist>
+ </para>
+
+ <para>New in Csound version 6.00</para>
+ </refsect1>
+</refentry>
diff --git a/opcodes/xadsr.xml b/opcodes/xadsr.xml
index b003865..f2c5e6b 100644
--- a/opcodes/xadsr.xml
+++ b/opcodes/xadsr.xml
@@ -66,7 +66,6 @@
<imageobject>
<imagedata fileref="images/adsr.png" format="PNG"/>
</imageobject>
-
<textobject>
<phrase>Picture of an ADSR envelope.</phrase>
</textobject>
@@ -75,13 +74,20 @@
</caption>
</mediaobject>
</para>
-
<para>
The length of the sustain is calculated from the length of the note. This means <emphasis>xadsr</emphasis> is not suitable for use with MIDI events, use <link linkend="mxadsr"><citetitle>mxadsr</citetitle></link> instead. The opcode <emphasis>xadsr</emphasis> is identical to <link linkend="adsr"><citetitle>adsr</citetitle></link> except it uses exponential, rather than linear, line segments.
</para>
+ </refsect1>
+ <refsect1>
+ <title>Examples</title>
<para>
- <emphasis>xadsr</emphasis> is new in Csound version 3.51.
+ Here is an example of the xadsr opcode. It uses the file <ulink url="examples/xadsr.csd"><citetitle>xadsr.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the xadsr opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/xadsr.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
@@ -96,6 +102,8 @@
<refsect1>
<title>Credits</title>
- <para>Author: &namejohn;</para>
+ <para>Author: &namejohn;
+ <emphasis>xadsr</emphasis> is new in Csound version 3.51.
+ </para>
</refsect1>
</refentry>
diff --git a/opcodes/xscanmap.xml b/opcodes/xscanmap.xml
index 9d9498f..33d5731 100644
--- a/opcodes/xscanmap.xml
+++ b/opcodes/xscanmap.xml
@@ -54,6 +54,26 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the xscanmap opcode. It uses the file <ulink url="examples/xscanmap.csd"><citetitle>xscanmap.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the xscanmap opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/xscanmap.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+More information on Scanned Synthesis (as well as several other matrices) is available on the <ulink url="http://www.csounds.com/scanned/"><citetitle>Scanned Synthesis page</citetitle></ulink> at cSounds.com.
+ </para>
+ <para> Also an article on these opcodes: <ulink url="http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html"><citetitle>http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html</citetitle></ulink> , written by Steven Yi </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>Author: &namejohn;</para>
<para>New in version 4.20</para>
diff --git a/opcodes/xscans.xml b/opcodes/xscans.xml
index a1c6545..6545c39 100644
--- a/opcodes/xscans.xml
+++ b/opcodes/xscans.xml
@@ -86,22 +86,35 @@
</refsect1>
<refsect1>
- <title>Credits</title>
- <para>Written by &namejohn;.</para>
- <para>New in version 4.20</para>
- </refsect1>
- <refsect1>
<title>Examples</title>
<para>
- For an example, see the documentation on <link linkend="scans"><citetitle>scans</citetitle></link>.
+ Here is an example of the xscans opcode. It uses the file <ulink url="examples/xscans.csd"><citetitle>xscans.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the xscans opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/xscans.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <para>
+ For similar examples, see the documentation on <link linkend="scans"><citetitle>scans</citetitle></link>.
+ </para>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
+ <para>
+More information on Scanned Synthesis (as well as several other matrices) is available on the <ulink url="http://www.csounds.com/scanned/"><citetitle>Scanned Synthesis page</citetitle></ulink> at cSounds.com.
+ </para>
+ <para> Also an article on these opcodes: <ulink url="http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html"><citetitle>http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html</citetitle></ulink> , written by Steven Yi </para>
<para>
<link linkend="scans"><citetitle>scans</citetitle></link>,
<link linkend="xscanu"><citetitle>xscanu</citetitle></link>
</para>
</refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by &namejohn;.</para>
+ <para>New in version 4.20</para>
+ </refsect1>
</refentry>
diff --git a/opcodes/xscansmap.xml b/opcodes/xscansmap.xml
index 9a276bf..b391e03 100644
--- a/opcodes/xscansmap.xml
+++ b/opcodes/xscansmap.xml
@@ -60,6 +60,14 @@
</refsect1>
<refsect1>
+ <title>See Also</title>
+ <para>
+More information on Scanned Synthesis (as well as several other matrices) is available on the <ulink url="http://www.csounds.com/scanned/"><citetitle>Scanned Synthesis page</citetitle></ulink> at cSounds.com.
+ </para>
+ <para> Also an article on these opcodes: <ulink url="http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html"><citetitle>http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html</citetitle></ulink> , written by Steven Yi </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>New in version 4.21</para>
<para>November 2002. Thanks to &namerasmus; for pointing this opcode out.</para>
diff --git a/opcodes/xscanu.xml b/opcodes/xscanu.xml
index cd5cf55..45040e3 100644
--- a/opcodes/xscanu.xml
+++ b/opcodes/xscanu.xml
@@ -146,22 +146,35 @@
</refsect1>
<refsect1>
- <title>Credits</title>
- <para>Written by &namejohn;.</para>
- <para>New in version 4.20</para>
- </refsect1>
- <refsect1>
<title>Examples</title>
<para>
- For an example, see the documentation on <link linkend="scans"><citetitle>scans</citetitle></link>.
+ Here is an example of the xscanu opcode. It uses the file <ulink url="examples/xscanu.csd"><citetitle>xscanu.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the xscanu opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/xscanu.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <para>
+ For similar examples, see the documentation on <link linkend="scans"><citetitle>scans</citetitle></link>.
+ </para>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
+ <para>
+More information on Scanned Synthesis (as well as several other matrices) is available on the <ulink url="http://www.csounds.com/scanned/"><citetitle>Scanned Synthesis page</citetitle></ulink> at cSounds.com.
+ </para>
+ <para> Also an article on these opcodes: <ulink url="http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html"><citetitle>http://www.csounds.com/stevenyi/scanned/yi_scannedSynthesis.html</citetitle></ulink> , written by Steven Yi </para>
<para>
<link linkend="scanu"><citetitle>scanu</citetitle></link>,
<link linkend="xscans"><citetitle>xscans</citetitle></link>
</para>
</refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by &namejohn;.</para>
+ <para>New in version 4.20</para>
+ </refsect1>
</refentry>
diff --git a/orch/kvar.xml b/orch/kvar.xml
index 0345f11..5f7a31a 100644
--- a/orch/kvar.xml
+++ b/orch/kvar.xml
@@ -41,7 +41,7 @@
</para>
<para>
- Given these distinctions, there are eight forms of local and global variables:
+ Given these distinctions, there are nine forms of local and global variables:
</para>
<para>
@@ -113,6 +113,12 @@
<entry>S name</entry>
<entry>gS name</entry>
</row>
+
+ <row>
+ <entry>vector variables</entry>
+ <entry>k-rate</entry>
+ <entry>t name</entry>
+ </row>
</tbody>
</tgroup>
</table>
diff --git a/orch/top.xml b/orch/top.xml
index 8ac266a..c6a6317 100644
--- a/orch/top.xml
+++ b/orch/top.xml
@@ -78,5 +78,6 @@ a2 <emphasis role="opc">oscbnk</emphasis> kcps, 1.0, kfmd1, 0.0, 40, 203, 0.1,
&orchvarinit;-->
&orchnamedinstruments;
&orchUDO;
-
+ &orchtab;
+ &oviewfunctional;
</chapter>
diff --git a/orch/tvars.xml b/orch/tvars.xml
new file mode 100644
index 0000000..898f245
--- /dev/null
+++ b/orch/tvars.xml
@@ -0,0 +1,15 @@
+
+<section id="Orchtab">
+ <title>K-Rate Vectors</title>
+ <para>
+ Csound allows the declaration and deployment of one-dimensional
+ vectors or tables. They are local to an instrument, and need to
+ be declared for size (with the <link
+ linkend="init"><citetitle>init</citetitle></link> opcode.
+ Individual elements are read as part of any expression with square
+ brackets to give an index at k-rate. Individual elements can be
+ assigned, and there are a number of opcodes to query and modify tables.
+
+ </para>
+
+</section>
diff --git a/overview/building.xml b/overview/building.xml
index 896303d..c002152 100644
--- a/overview/building.xml
+++ b/overview/building.xml
@@ -2,38 +2,33 @@
<title>Building Csound</title>
<para>
- Csound has become a complex project and can involve many dependencies. Unless you are a Csound developer or need to develop Csound plugins,
+ Csound has become a complex project and can involve many dependencies. Unless you are a Csound developer or need to develop Csound plugins,
you should try to use one of the precompiled distributions from <ulink
- url="http://www.sourceforge.net/projects/csound">http://www.sourceforge.net/projects/csound</ulink>. However,
+ url="http://www.sourceforge.net/projects/csound">http://www.sourceforge.net/projects/csound</ulink>. However,
building from source is probably the best option on GNU/Linux.
</para>
<para>
- This section focuses on the main Csound 5 build system, which uses <ulink url="http://www.scons.org">SCons</ulink>, a Python program that replaces <emphasis>make</emphasis> for cross-platform configuration and building.
+ This section focuses on the main Csound 6 build system, which uses
+ <ulink url="http://www.cmake.org">cmake</ulink>, a cross-platform,
+ open-source build system designed to build, test and package software.
</para>
<para>
When building Csound from source instead of using a precompiled package, you first need to obtain the sources for a release of Csound at <ulink url="http://www.sourceforge.net/projects/csound">http://www.sourceforge.net/projects/csound</ulink>. The source packages have either a zip or tar.gz extension.
</para>
<para>
- The latest (possibly unstable) Csound source code is also available through the Concurrent Versions System (CVS). It's likely (if you're running Mac OS X or Linux) that you already have CVS installed on your machine. If not, it can be downloaded from (<ulink url="http://www.cvshome.org">http://www.cvshome.org</ulink>). There are many graphical front ends for cvs, but you can easily get the sources using the command line version.
+ The latest (possibly unstable) Csound source code is also available through GIT. The Csound GIT front page is located at: <ulink url="http://csound.git.sourceforge.net/git/gitweb-index.cgi">http://csound.git.sourceforge.net/git/gitweb-index.cgi</ulink>.
+ Using git for just checking out and compiling is pretty easy. Install GIT for your platform and use this command to clone the Csound6 git repository:
</para>
+ <programlisting>git clone git://git.code.sf.net/p/csound/csound6-git csound-csound6-git</programlisting>
<para>
- The Csound CVS front page is located at: <ulink url="http://sourceforge.net/cvs/?group_id=81968">http://sourceforge.net/cvs/?group_id=81968</ulink>. Information about accessing the CVS repository may be found in the SourceForge document <ulink url="http://sourceforge.net/docs/E04/">http://sourceforge.net/docs/E04/</ulink>. To download Csound sources using CVS, run the following commands (from a terminal or DOS shell):
+This will checkout a read-only (meaning, you can not commit back to the central git repository) version of the Csound6 repo. To update with the latest from the master repo, use:
</para>
- <programlisting>
- cvs -d:pserver:anonymous@csound.cvs.sourceforge.net:/cvsroot/csound login
-
- cvs -z3 -d:pserver:anonymous@csound.cvs.sourceforge.net:/cvsroot/csound co -P csound5</programlisting>
- <para>
- To update the Csound5 sources you already have in your csound5 directory, change to that directory, and then type:
- </para>
- <programlisting>
- cvs -z3 update -d</programlisting>
+ <programlisting>git pull</programlisting>
<para>
- To update only a single file, change to the sources directory, and then type:
+ The same process is used for the Csound manual. Use this command to clone:
</para>
- <programlisting>
- cvs -z3 update filename</programlisting>
- <bridgehead>Basic requirements to build Csound 5 on any platform</bridgehead>
+ <programlisting>git clone git://git.code.sf.net/p/csound/manual6-git csound-manual6-git</programlisting>
+ <bridgehead>Basic requirements to build Csound 6 on any platform</bridgehead>
<itemizedlist>
<listitem>
<simpara>
@@ -42,17 +37,16 @@ building from source is probably the best option on GNU/Linux.
</listitem>
<listitem>
<simpara>
- Install Python from <ulink url="http://www.python.org">www.python.org</ulink>. In most cases it is best to install the most recent stable version. Python is needed for SCons to run.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- Install the SCons build system from <ulink url="http://www.scons.org">www.scons.org</ulink>.
+ Install the Cmake build system from <ulink
+ url="http://www.cmake.org">www.scons.org</ulink> or from your
+ system packages.
</simpara>
</listitem>
</itemizedlist>
<para>
- These are the minimum requirements for a build, but csound has many optional components which enhance functionality and add opcodes which may require additional libraries.
+ These are the minimum requirements for a build, but csound has
+ many optional components which enhance functionality and add
+ opcodes which may require additional libraries.
</para>
<bridgehead>Optional configurations (ALL platforms)</bridgehead>
@@ -61,7 +55,16 @@ building from source is probably the best option on GNU/Linux.
<itemizedlist>
<listitem>
<simpara>
- Real-time audio can use the cross-platform PortAudio library (trunk version or devel-19 branch) from <ulink url="http://www.portaudio.com/usingcvs.html">www.portaudio.com/usingcvs.html</ulink>. Please note that stable version 18 will not work. Csound can also use several platform specific audio APIs like ALSA, JACK, CoreAudio and the Windows multimedia library, see each platform notes for details.
+ Real-time audio can use the cross-platform PortAudio library
+ (trunk version or devel-19 branch) from <ulink
+ url="http://www.portaudio.com/usingcvs.html">www.portaudio.com/usingcvs.html</ulink>. Please
+ note that stable version 18 will not work. Csound can also use
+ several platform specific audio APIs like ALSA, JACK,
+ CoreAudio and the Windows multimedia library, see each
+ platform notes for details. On Windows, you can use the pre-built PortAudio
+ from <ulink
+ url="https://github.com/adfernandes/precompiled-portaudio-windows">
+ https://github.com/adfernandes/precompiled-portaudio-windows</ulink>
</simpara>
</listitem>
<listitem>
@@ -82,52 +85,103 @@ building from source is probably the best option on GNU/Linux.
</listitem>
<listitem>
<simpara>
- <emphasis>CsoundAC</emphasis> requires FLTK and the boost C++ template libraries for random numbers and linear algebra, from <ulink url="http://www.boost.org">http://www.boost.org</ulink>. <emphasis>CsoundAC</emphasis> requires at least version 1.32.1.
+ Install Python from <ulink
+ url="http://www.python.org">www.python.org</ulink>. In most
+ cases it is best to install the most recent 2.7 version.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <emphasis>CsoundAC</emphasis> requires FLTK and the boost C++
+ template libraries for random numbers and linear algebra, from
+ <ulink
+ url="http://www.boost.org">http://www.boost.org</ulink>. <emphasis>CsoundAC</emphasis>
+ requires at least version 1.32.1.
</simpara>
</listitem>
<listitem>
- <simpara>The fluid opcodes require the Fluidsynth library from <ulink url="http://savannah.nongnu.org/download/fluid">http://savannah.nongnu.org/download/fluid</ulink>.
+ <simpara>The fluid opcodes require the Fluidsynth library from
+ <ulink
+ url="http://savannah.nongnu.org/download/fluid">http://savannah.nongnu.org/download/fluid</ulink>.
</simpara>
</listitem>
<listitem>
<simpara>
- The OSC opcodes require the latest version of the liblo library from
- <ulink url="http://plugin.org.uk/liblo">http://plugin.org.uk/liblo</ulink>.
- On Windows, liblo requires a Windows version of the POSIX thread library (pthreads) which is available from
- <ulink url="http://sourceware.org/pthreads-win32">http://sourceware.org/pthreads-win32</ulink>;
- copy libpthreadGC2.a to libpthread.a.
+ The OSC opcodes require the latest version of the liblo library from
+ <ulink
+ url="http://plugin.org.uk/liblo">http://plugin.org.uk/liblo</ulink>.
+ On Windows, liblo requires a Windows version of the POSIX
+ thread library (pthreads) which is available from
+ <ulink
+ url="http://sourceware.org/pthreads-win32">
+ http://sourceware.org/pthreads-win32</ulink>;
+ copy libpthreadGC2.a to libpthread.a.
You may also need the latest version of autoconf from MinGW.
</simpara>
</listitem>
<listitem>
<simpara>
- The STK opcodes require STK source code from <ulink url="http://ccrma.stanford.edu/software/stk">http://ccrma.stanford.edu/software/stk</ulink>, copied into <filename>csound5/Opcodes/stk</filename>.
+ The STK opcodes require STK source code from <ulink
+ url="http://ccrma.stanford.edu/software/stk">
+ http://ccrma.stanford.edu/software/stk</ulink>,
+ copied into <filename>csound6/Opcodes/stk</filename>.
</simpara>
</listitem>
<listitem>
<simpara>
- The Loris opcodes require Loris source code from <ulink url="http://sourceforge.net/projects/loris">http://sourceforge.net/projects/loris</ulink>, copied into <filename>csound5/Opcodes/Loris</filename>.
+ The Loris opcodes requires Loris 1.8 to be installed: <ulink url="http://sourceforge.net/projects/loris/files">http://sourceforge.net/projects/loris/files</ulink>. It will create the Csound Loris opcodes (along with Loris itself). When you run Csound use an additional command line flag: --opcode-lib. For example in Linux: --opcode-lib=/usr/local/lib/libloris.so
</simpara>
</listitem>
</itemizedlist>
<bridgehead>Windows</bridgehead>
- <para>The following is needed to build on Windows (more complete build instructions for Windows may be found in the csound-build.tex document (csound-build.pdf)):</para>
+ <para>The following is needed to build on Windows (more complete
+ build instructions for Windows may be found in <filename>How_to_Build_Csound_on_Windows.doc</filename>):</para>
<itemizedlist>
<listitem>
<simpara>
- Install a compiler like gcc or Microsoft Visual Studio (there is also support for the Intel C++ compiler). If using MinGW (gcc), install all of the current release of MinGW using the Automated MinGW Installer from <ulink url="http://www.mingw.org">www.mingw.org</ulink>, for example into <literal>c:/mingw</literal>. This should install gcc, g++, GNU binutils, the MinGW runtime, and the win32 API. Then install the current release of MSys.
+ Install a compiler like gcc or Microsoft Visual Studio. If using MinGW
+ (gcc), download the MinGW-build installer for 32-bit architecture, Posix threads, dwarf2 exception handling from <ulink
+ url="http://sourceforge.net/projects/mingwbuilds/files/latest/download?source=files">http://sourceforge.net/projects/mingwbuilds/files/latest/download?source=files</ulink>
+ and run it. Install to a directory such as <filename>D:/mingw32-4.8.1</filename>.
+ </simpara>
+ <simpara>
+ In addition to the compiler, building Csound and its dependencies
+ requires some other tools. Install MSys from <ulink
+ url="http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/msys%2B7za%2Bwget%2Bsvn%2Bgit%2Bmercurial%2Bcvs-rev13.7z/download">
+ http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/msys%2B7za%2Bwget%2Bsvn%2Bgit%2Bmercurial%2Bcvs-rev13.7z/download</ulink>.
+ This includes bison, flex, autotools and some other goodies. Edit the MSys <filename>etc/fstab</filename> file to map the MinGW directory to <filename>/mingw</filename>.
+ </simpara>
+ <simpara>
+ Options for the MinGW C compiler should be <literal>-g -O2 -fopenmp -march=nocona -mstackrealign -DNDEBUG -I/usr/local/include</literal>.
</simpara>
<simpara>
- On Windows you can use Microsoft Visual C++ (except for CsoundAC). The free Express Edition, from <ulink url="http://www.microsoft.com/express/vc/">http://www.microsoft.com/express/vc/</ulink> works fine. You will need to obtain a copy of the <filename>dirent.h</filename> header file for Windows, e.g. from <ulink url="http://www.softagalleria.net/dirent.php">http://www.softagalleria.net/dirent.php</ulink>. You may also need to obtain the <literal>bufferoverflowu.lib</literal> library from Microsoft and put it into the Visual C++ <filename>lib</filename> directory. Then open a shell in which to compile Csound, (usually called Visual Studio Command Prompt command, within the Visual C++ program menu).
+ Options for the MinGW C++ compiler should be <literal>-g -O2 -std=gnu++11 -fopenmp -march=nocona -mstackrealign -DNDEBUG -I/usr/local/include</literal>.
</simpara>
+ <!-- <simpara> -->
+ <!-- On Windows you can use Microsoft Visual C++ (except for -->
+ <!-- CsoundAC). The free Express Edition, from <ulink -->
+ <!-- url="http://www.microsoft.com/express/vc/">http://www.microsoft.com/express/vc/</ulink> -->
+ <!-- works fine. You will need to obtain a copy of the -->
+ <!-- <filename>dirent.h</filename> header file for Windows, -->
+ <!-- e.g. from <ulink -->
+ <!-- url="http://www.softagalleria.net/dirent.php">http://www.softagalleria.net/dirent.php</ulink>. You -->
+ <!-- may also need to obtain the -->
+ <!-- <literal>bufferoverflowu.lib</literal> library from Microsoft -->
+ <!-- and put it into the Visual C++ <filename>lib</filename> -->
+ <!-- directory. Then open a shell in which to compile Csound, -->
+ <!-- (usually called Visual Studio Command Prompt command, within -->
+ <!-- the Visual C++ program menu). -->
+ <!-- </simpara> -->
</listitem>
</itemizedlist>
<para>Optional configurations for Windows include the following:</para>
<itemizedlist>
<listitem>
<simpara>
- Real-time audio and MIDI can use the Windows multimedia library. This module will be built automatically if the headers are found.
+ Real-time audio and MIDI can use the Windows multimedia
+ library. This module will be built automatically if the
+ headers are found.
</simpara>
</listitem>
<listitem>
@@ -141,7 +195,13 @@ building from source is probably the best option on GNU/Linux.
<itemizedlist>
<listitem>
<simpara>
- Real-time audio on Linux can use ALSA (<ulink url="http://www.alsa-project.org">www.alsa-project.org</ulink>) and JACK (<ulink url="http://www.jackaudio.org/">www.jackaudio.org/</ulink>) in addition to PortAudio. Distributions usually provide the appropriate dev packages for these systems through their repositories.
+ Real-time audio on Linux can use ALSA (<ulink
+ url="http://www.alsa-project.org">www.alsa-project.org</ulink>)
+ and JACK (<ulink
+ url="http://www.jackaudio.org/">www.jackaudio.org/</ulink>) in
+ addition to PortAudio. Distributions usually provide the
+ appropriate dev packages for these systems through their
+ repositories.
</simpara>
</listitem>
<listitem>
@@ -155,7 +215,8 @@ building from source is probably the best option on GNU/Linux.
<itemizedlist>
<listitem>
<simpara>
- Real-time audio can use CoreAudio (OSX builtin native audio system) and Jack, appart from PortAudio.
+ Real-time audio can use CoreAudio (OSX builtin native audio
+ system) and Jack, apart from PortAudio.
</simpara>
</listitem>
<listitem>
@@ -165,239 +226,295 @@ building from source is probably the best option on GNU/Linux.
</listitem>
</itemizedlist>
- <bridgehead>Building Csound 5 with SCons</bridgehead>
+ <bridgehead>Building Csound 6 with CMake</bridgehead>
<para>
- When you have all the necessary packages and their sources (or -dev packages) to support your particular requirements on your hardware platform, execute "scons -h" to discover the current configuration options.
+ When you have all the necessary packages and their sources (or
+ -dev packages) to support your particular requirements on your
+ hardware platform it is best to review the file
+ <programlisting>Custom.cmake.ex</programlisting> to discover the
+ current configuration options. make any changes and place your
+ customisations in <programlisting>Custom.cmake</programlisting>
</para>
<para>
- Building is made considerably easier if, when installing, the downloaded headers and libraries are installed in their default locations. To modify the default build, in particular to handle non-standard options for third-party dependencies, such as where headers and libraries are to be found:
+ Building is made considerably easier if, when installing, the
+ downloaded headers and libraries are installed in their default
+ locations. To modify the default build, in particular to handle
+ non-standard options for third-party dependencies, such as where
+ headers and libraries are to be found:
</para>
- <itemizedlist>
- <listitem>
- <simpara>
- On Windows, when building with Microsoft Visual C++, modify custom-msvc.py.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- On Windows, when building with MinGW/MSys, modify custom-mingw.py
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- On Linux and Mac OSX edit custom.py
- </simpara>
- </listitem>
- </itemizedlist>
<para>
- If you do modify this file, you should make it read-only (or otherwise protect it) so that CVS will not overwrite it when you next update the sourcefiles. Avoid modifying the SConstruct file.
+ Avoid modifying the CMakeList.txt files.
+ </para>
+ <para>
+ With CMake it is usual to build in a difference directory to the
+ sources. Create a directory for your build, change to that
+ directory and run <programlisting>cmake
+ path-to-source-directory</programlisting>. All being well this
+ will create Makefiles as necessary. You can then run "make" and
+ "make install". If things go wrong it is sometime necessary to
+ delete the file <programlisting>CMakeCache.txt</programlisting>.
</para>
- <para>Execute scons with the optional custom variables you desire. For example:</para>
- <programlisting>scons buildOSC=1 buildCsound5GUI=1 buildPythonOpcodes=1 useOSC=1 buildLoris=0</programlisting>
-
<note>
<para>
- It is important that you set the environment variable <literal>OPCODEDIR</literal> to the directory where plugin libraries are installed; in the case of a double precision build, <literal>OPCODEDIR64</literal> should be set instead. Installers usually take care of this, but it is necessary when building from source so Csound can find its plugin libraries.
+ It is important that you set the environment variable
+ <literal>OPCODE6DIR</literal> to the directory where plugin
+ libraries are installed; in the case of a double precision
+ build, <literal>OPCODE6DIR64</literal> should be set
+ instead. Installers usually take care of this, but it is
+ necessary when building from source so Csound can find its
+ plugin libraries.
</para>
</note>
- <bridgehead>Current build options</bridgehead>
- <table frame="all" colsep="1">
- <title>Current SCons Build Options</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Custom Variable</entry>
- <entry>Effect if set to 1</entry>
- </row>
- </thead>
+ <!-- <bridgehead>Current build options</bridgehead> -->
+ <!-- <table frame="all" colsep="1"> -->
+ <!-- <title>Current SCons Build Options</title> -->
+ <!-- <tgroup cols="2"> -->
+ <!-- <thead> -->
+ <!-- <row> -->
+ <!-- <entry>Custom Variable</entry> -->
+ <!-- <entry>Effect if set to 1</entry> -->
+ <!-- </row> -->
+ <!-- </thead> -->
- <tbody>
- <row>
- <entry>buildCsoundVST</entry>
- <entry>Build CsoundVST. Needs CsoundAC, FLTK, boost, Python, SWIG.</entry>
- </row>
- <row>
- <entry>buildCsoundAC</entry>
- <entry>Build CsoundAC. Needs FLTK, boost, Python, SWIG.</entry>
- </row>
- <row>
- <entry>buildCsound5GUI</entry>
- <entry>Build FLTK GUI frontend. Requires FLTK 1.1.7 or later.</entry>
- </row>
- <row>
- <entry>buildCSEditor</entry>
- <entry>Build the Csound syntax highlighting text editor. Requires FLTK headers and libs.</entry>
- </row>
- <row>
- <entry>buildDSSI</entry>
- <entry>Build DSSI/LADSPA host opcodes.</entry>
- </row>
- <row>
- <entry>buildImageOpcodes</entry>
- <entry>Build image opcodes. 1 by default. Set to 0 to avoid.</entry>
- </row>
- <row>
- <entry>buildInterfaces</entry>
- <entry>Build interface library for Python, JAVA, Lua, C++, and other languages.</entry>
- </row>
- <row>
- <entry>buildJavaWrapper</entry>
- <entry>Build Java wrapper for the interface library.</entry>
- </row>
- <row>
- <entry>buildLoris</entry>
- <entry>Build the Loris Python extension and opcodes.</entry>
- </row>
- <row>
- <entry>buildNewParser</entry>
- <entry>Enable building new parser. Requires Flex/Bison.</entry>
- </row>
- <row>
- <entry>buildOSXGUI</entry>
- <entry>Build the basic GUI frontend. OSX only.</entry>
- </row>
- <row>
- <entry>buildPDClass</entry>
- <entry>Build csoundapi~ PD class. Needs m_pd.h in the standard places.</entry>
- </row>
- <row>
- <entry>buildPythonOpcodes</entry>
- <entry>Build Python opcodes</entry>
- </row>
- <row>
- <entry>buildRelease</entry>
- <entry>Build for release. Implies noDebug.</entry>
- </row>
- <row>
- <entry>buildSDFT</entry>
- <entry>Build SDFT code. 1 by default. Set to 0 to avoid.</entry>
- </row>
- <row>
- <entry>buildTclcsound</entry>
- <entry>Build Tclcsound frontend (cstclsh, cswish and tclcsound dynamic module). Requires Tcl/Tk headers and libs.</entry>
- </row>
- <row>
- <entry>buildUtilities</entry>
- <entry>Build stand-alone executables for utilities that can also be used with -U.</entry>
- </row>
- <row>
- <entry>buildVirtual</entry>
- <entry>Build Virtual MIDI keyboard. Requires FLTK 1.1.7 or later headers and libs.</entry>
- </row>
- <row>
- <entry>buildvst4cs</entry>
- <entry>Build vst4cs plugins. Requires Steinberg VST headers.</entry>
- </row>
- <row>
- <entry>buildWinsound</entry>
- <entry>Build Winsound frontend. Requires FLTK headers and libs.</entry>
- </row>
- <row>
- <entry>dynamicCsoundLibrary</entry>
- <entry>Build dynamic Csound library instead of libcsound.a.</entry>
- </row>
- <row>
- <entry>gcc3opt</entry>
- <entry>Enable gcc 3.3.x or later optimizations for the specified CPU architecture (e.g. pentium3); implies noDebug.</entry>
- </row>
- <row>
- <entry>gcc4opt</entry>
- <entry>Enable gcc 4.0 or later optimizations for the specified CPU architecture (e.g. pentium3); implies noDebug.</entry>
- </row>
- <row>
- <entry>generateTags</entry>
- <entry>Generate TAGS.</entry>
- </row>
- <row>
- <entry>generatePdf</entry>
- <entry>Generate PDF documentation.</entry>
- </row>
- <row>
- <entry>install</entry>
- <entry>Enables the Install targets.</entry>
- </row>
- <row>
- <entry>Lib64</entry>
- <entry>Build for lib64 rather than lib.</entry>
- </row>
- <row>
- <entry>noDebug</entry>
- <entry>Build without debugging information.</entry>
- </row>
- <row>
- <entry>noFLTKThreads</entry>
- <entry>Disable use of a separate thread for FLTK widgets.</entry>
- </row>
- <row>
- <entry>useAltivec</entry>
- <entry>On OSX use the gcc AltiVec optmisation flags.</entry>
- </row>
- <row>
- <entry>useALSA</entry>
- <entry>ALSA for real-time audio and MIDI input and output.</entry>
- </row>
- <row>
- <entry>useCoreAudio</entry>
- <entry>use CoreAudio for real-time audio input and output.</entry>
- </row>
- <row>
- <entry>useDouble</entry>
- <entry>Use double-precision floating point for audio samples.</entry>
- </row>
- <row>
- <entry>useFLTK</entry>
- <entry>Use FLTK for graphs and widget opcodes.</entry>
- </row>
- <row>
- <entry>useGettext</entry>
- <entry>Use the GNU internationalisation/localisation scheme</entry>
- </row>
- <row>
- <entry>useGprof</entry>
- <entry>Build with profiling information (-pg).</entry>
- </row>
- <row>
- <entry>usePortAudio</entry>
- <entry>Use PortAudio for real-time audio input and output.</entry>
- </row>
- <row>
- <entry>usePortMIDI</entry>
- <entry>Build PortMidi plugin for real time MIDI input and output.</entry>
- </row>
- <row>
- <entry>useJack</entry>
- <entry>Used if you compiled PortAudio to use Jack; also builds Jack plugin.</entry>
- </row>
- <row>
- <entry>useLrint</entry>
- <entry>Use lrint() and lrintf() for converting floating point values to integers.</entry>
- </row>
- <row>
- <entry>useOSC</entry>
- <entry>For OSC support.</entry>
- </row>
- <row>
- <entry>useUDP</entry>
- <entry>For UDP support. 1 by default. Set to 0 to avoid.</entry>
- </row>
- <row>
- <entry>withICL</entry>
- <entry>Build with the Intel C++ Compiler (also requires Microsoft Visual C++), Set to 0 to build with MinGW. Windows only.</entry>
- </row>
- <row>
- <entry>withMSVC</entry>
- <entry>Build with Microsoft Visual C++, or set to 0 to build with MinGW. Windows only.</entry>
- </row>
- <row>
- <entry>Word64</entry>
- <entry>Build for 64bit computer.</entry>
- </row>
- <row>
- <entry>pythonVersion</entry>
- <entry>Set to the Python version to be used.</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
+ <!-- <tbody> -->
+ <!-- <row> -->
+ <!-- <entry>includeP5Glove</entry> -->
+ <!-- <entry>Build for use with P5 Glove.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildCsoundVST</entry> -->
+ <!-- <entry>Build CsoundVST. Needs CsoundAC, FLTK, boost, Python, SWIG.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildCsoundAC</entry> -->
+ <!-- <entry>Build CsoundAC. Needs FLTK, boost, Python, SWIG.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildCsound5GUI</entry> -->
+ <!-- <entry>Build FLTK GUI frontend. Requires FLTK 1.1.7 or later.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildCSEditor</entry> -->
+ <!-- <entry>Build the Csound syntax highlighting text editor. Requires FLTK headers and libs.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildDSSI</entry> -->
+ <!-- <entry>Build DSSI/LADSPA host opcodes.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildImageOpcodes</entry> -->
+ <!-- <entry>Build image opcodes. 1 by default. Set to 0 to avoid.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildInterfaces</entry> -->
+ <!-- <entry>Build interface library for Python, JAVA, Lua, C++, and other languages.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildJavaWrapper</entry> -->
+ <!-- <entry>Build Java wrapper for the interface library.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildLuaOpcodes</entry> -->
+ <!-- <entry>Build Lua opcodes. Set to 1 to build.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildLuaWrapper</entry> -->
+ <!-- <entry>Build Lua wrapper for the C++ interface library (needs buildInterfaces).</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildNewParser</entry> -->
+ <!-- <entry>Enable building new parser. Requires Flex/Bison.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildOSXGUI</entry> -->
+ <!-- <entry>Build the basic GUI frontend. OSX only.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildPDClass</entry> -->
+ <!-- <entry>Build csoundapi~ PD class. Needs m_pd.h in the standard places.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildPythonOpcodes</entry> -->
+ <!-- <entry>Build Python opcodes</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildPythonWrapper</entry> -->
+ <!-- <entry>Build Python wrapper for the C++ interface library (needs buildInterfaces).</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildRelease</entry> -->
+ <!-- <entry>Build for release. Implies noDebug.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildSDFT</entry> -->
+ <!-- <entry>Build SDFT code. 1 by default. Set to 0 to avoid.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildStkOpcodes</entry> -->
+ <!-- <entry>build Stk Opcodes. Requires STK source code.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildUtilities</entry> -->
+ <!-- <entry>Build stand-alone executables for utilities that can also be used with -U.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildVirtual</entry> -->
+ <!-- <entry>Build Virtual MIDI keyboard. Requires FLTK 1.1.7 or later headers and libs.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildvst4cs</entry> -->
+ <!-- <entry>Build vst4cs plugins. Requires Steinberg VST headers.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildWinsound</entry> -->
+ <!-- <entry>Build Winsound frontend. Requires FLTK headers and libs.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildBeats</entry> -->
+ <!-- <entry>Build csbeats score processor.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>bufferoverflowu</entry> -->
+ <!-- <entry>Set to 1 to use the Windows buffer overflow library, required if you use MinGW to link with MSVC-built libraries.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>dynamicCsoundLibrary</entry> -->
+ <!-- <entry>Build dynamic Csound library instead of libcsound.a.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>gcc3opt</entry> -->
+ <!-- <entry>Enable gcc 3.3.x or later optimizations for the specified CPU architecture (e.g. pentium3); implies noDebug.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>gcc4opt</entry> -->
+ <!-- <entry>Enable gcc 4.0 or later optimizations for the specified CPU architecture (e.g. pentium3); implies noDebug.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>generateTags</entry> -->
+ <!-- <entry>Generate TAGS.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>generatePdf</entry> -->
+ <!-- <entry>Generate PDF documentation.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>install</entry> -->
+ <!-- <entry>Enables the Install targets.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>Lib64</entry> -->
+ <!-- <entry>Build for lib64 rather than lib.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>noDebug</entry> -->
+ <!-- <entry>Build without debugging information.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>noFLTKThreads</entry> -->
+ <!-- <entry>Disable use of a separate thread for FLTK widgets.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useAltivec</entry> -->
+ <!-- <entry>On OSX use the gcc AltiVec optmisation flags.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useALSA</entry> -->
+ <!-- <entry>ALSA for real-time audio and MIDI input and output.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useCoreAudio</entry> -->
+ <!-- <entry>use CoreAudio for real-time audio input and output.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useDouble</entry> -->
+ <!-- <entry>Use double-precision floating point for audio samples.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useFLTK</entry> -->
+ <!-- <entry>Use FLTK for graphs and widget opcodes.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useGettext</entry> -->
+ <!-- <entry>Use the GNU internationalisation/localisation scheme</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useIpMIDI</entry> -->
+ <!-- <entry>Build for use as a network synth.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useGprof</entry> -->
+ <!-- <entry>Build with profiling information (-pg).</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>usePortAudio</entry> -->
+ <!-- <entry>Use PortAudio for real-time audio input and output.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>usePortMIDI</entry> -->
+ <!-- <entry>Build PortMidi plugin for real time MIDI input and output.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useJack</entry> -->
+ <!-- <entry>Used if you compiled PortAudio to use Jack; also builds Jack plugin.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useLrint</entry> -->
+ <!-- <entry>Use lrint() and lrintf() for converting floating point values to integers.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useOSC</entry> -->
+ <!-- <entry>For OSC support.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useUDP</entry> -->
+ <!-- <entry>For UDP support. 1 by default. Set to 0 to avoid.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>withICL</entry> -->
+ <!-- <entry>Build with the Intel C++ Compiler (also requires Microsoft Visual C++), Set to 0 to build with MinGW. Windows only.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>withMSVC</entry> -->
+ <!-- <entry>Build with Microsoft Visual C++, or set to 0 to build with MinGW. Windows only.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>withSunStudio</entry> -->
+ <!-- <entry>On Solaris, set to 1 to build with Sun Studio, or set to 0 to build with gcc.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>NewParserDebug</entry> -->
+ <!-- <entry>Enable tracing of new parser</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>Word64</entry> -->
+ <!-- <entry>Build for 64bit computer.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>pythonVersion</entry> -->
+ <!-- <entry>Set to the Python version to be used.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>includeSerial</entry> -->
+ <!-- <entry>Set to 1 if compiling serial code.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildcatalog</entry> -->
+ <!-- <entry>Set to 1 if building opcode/library catalogue.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>includeWii</entry> -->
+ <!-- <entry>Set to 12 or 13 if using libwiiuse v0.12 or v0.13.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>useOpenMP</entry> -->
+ <!-- <entry>Set to 1 to use OpenMP for parallel performance.</entry> -->
+ <!-- </row> -->
+ <!-- <row> -->
+ <!-- <entry>buildMultiCore</entry> -->
+ <!-- <entry>building for multicore sytem (requires new parser).</entry> -->
+ <!-- </row> -->
+ <!-- </tbody> -->
+ <!-- </tgroup> -->
+ <!-- </table> -->
</chapter>
diff --git a/overview/design.xml b/overview/design.xml
index 93cc13d..3569782 100644
--- a/overview/design.xml
+++ b/overview/design.xml
@@ -33,7 +33,7 @@
<section id="AmplitudeCsound">
<title>Amplitude values in Csound</title>
<para>
- Amplitude values in Csound are always relative to a "<link linkend="Zerodbfs"><citetitle>0dbfs</citetitle></link>" value representing the peak available amplitude before clipping, in either an AD/DA codec, or in a soundfile with a defined range (which both WAVE and AIFF are). In the original Csound, this value was always 32767, corresponding to the bipolar range of a 16bit soundfile or 16bit AD/DA codec, Csound's only possible output back then. This remains the <emphasis>default</emphasis> peak amplitude for Csound, for backward compatibility and you will find most of this manual's examples still use this value (hence you find large amplitude values like 10000).
+ Amplitude values in Csound are always relative to a "<link linkend="Zerodbfs"><citetitle>0dbfs</citetitle></link>" value representing the peak available amplitude before clipping, in either an AD/DA codec, or in a soundfile with a defined range (which both WAVE and AIFF are). In the original Csound, this value was always 32767, corresponding to the bipolar range of a 16bit soundfile or 16bit AD/DA codec, Csound's only possible output back then. This remains the <emphasis>default</emphasis> peak amplitude for Csound, for backward compatibility and you will find some of this manual's examples still use this value (hence you find large amplitude values like 10000).
</para>
<para>
The <link linkend="Zerodbfs"><citetitle>0dbfs</citetitle></link> value enables Csound to produce appropriately scaled values to whatever output format is being used, whether 24bit integer, 32bit floats, or even 32bit integers. Put another way, the literal amplitude values you write in a Csound instrument only match those written <emphasis>literally</emphasis> to the file if the <link linkend="Zerodbfs"><citetitle>0dbfs</citetitle></link> value in Csound corresponds exactly to that of the output sample format. The consequence of this approach is that you can write a piece with a certain amplitude and have it render correctly and identically (setting aside of course the better dynamic range of the high-res formats) whether written to an integer or floats file, or rendered in real-time.
diff --git a/overview/frontends.xml b/overview/frontends.xml
index 27213af..f722399 100644
--- a/overview/frontends.xml
+++ b/overview/frontends.xml
@@ -6,61 +6,22 @@
<para>
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.
</para>
- <bridgehead>QuteCsound</bridgehead>
+ <bridgehead>CsoundQt</bridgehead>
<para>
- QuteCsound 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 (2011) QuteCsound 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 <ulink url="http://qutecsound.sourceforge.net/">http://qutecsound.sourceforge.net/</ulink>.
+ 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 <ulink url="http://qutecsound.sourceforge.net/">http://qutecsound.sourceforge.net/</ulink>.
</para>
<bridgehead>Blue</bridgehead>
<para>
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 <ulink url="http://csounds.com/stevenyi/blue/">Blue Home Page</ulink>.
</para>
- <bridgehead>Cecilia</bridgehead>
- <para>
- Uses Csound, and also incorporates its own score generation language. Not updated since 2004, but should run in Mac OSX and Linux. Available from <ulink url="http://www.jeanpiche.com/software.htm">http://www.jeanpiche.com/software.htm</ulink>.
- </para>
-<bridgehead>MacCsound</bridgehead>
- <para>
- A front end for the Macintosh, MacCsound provides a text editor, graphic editing of control signals, and other features. Available at the <ulink url="http://www.csounds.com/matt/MacCsound/">MacCsound Page</ulink>. MacCsound requires the Universal version of Csound, not the Intel version, and with OS 10.6 also requires Rosetta, which is located in the OSX installer DVD for 10.6 but is not installed by default.
- </para>
<bridgehead>WinXound</bridgehead>
<para>
A convenient front-end for Windows with syntax highlighting. You can get it at the <ulink url="http://winxound.codeplex.com/">WinXsound Front Page</ulink>.
</para>
- <bridgehead>Cabel</bridgehead>
- <para>
- Cabel is a graphical user interface for building Csound instruments by patching modules, similar to the approach used in modular synthesizers and graphical programming environments such as Pd. Cross-platform, written in Python. While Cabel seems (as of 2011) not to have been updated in four years, it still works with current versions of Csound. Available from <ulink url="http://cabel.sourceforge.net/">http://cabel.sourceforge.net/</ulink>.
- </para>
- <bridgehead>Csound5GUI</bridgehead>
- <para>
- Csound5GUI is a cross-platform GUI. Formerly part of the standard Csound distribution, it is now available as source code and possibly as a downloadable .exe for Windows. It implements most configuration features of Csound.
- </para>
- <bridgehead>CSDplayer</bridgehead>
- <para>
- This is a simple Java program to play csd files. It is included in the standard distribution, and will be of interest mainly to Java programmers.
- </para>
+
<bridgehead>Winsound</bridgehead>
<para>
- Like Csound5GUI, Winsound was formerly part of the main Csound tree. It is now available only as source code. Winsound is a cross-platform FLTK port of Barry Vercoe's original front-end for csound. Some partially sighted or unsighted users report success using Winsound with text-to-speech software.
- </para>
- <bridgehead>Csound Editor</bridgehead>
- <para>
- Csound Editor is no longer being maintained, but it's still available from <ulink url="http://flavio.tordini.org/csound-editor/">Flavio Tordini's Home Page</ulink>. For Windows systems, includes syntax highlighting.
- </para>
- <para>
- In addition to the main front ends listed above, here are some other programs that may qualify as front ends, depending on your definition:
- <informaltable frame='none'>
- <tgroup cols='2'>
- <tbody>
- <row><entry>GeoMaestro:</entry><entry><ulink url="http://www.zogotounga.net/GM/eGM0.html">http://www.zogotounga.net/GM/eGM0.html</ulink></entry></row>
- <row><entry>Csound-x:</entry><entry><ulink url="http://www.zogotounga.net/comp/csoundx.html">http://www.zogotounga.net/comp/csoundx.html</ulink></entry></row>
- <row><entry>AthenaCL:</entry><entry><ulink url="http://www.flexatone.net/athena.html">http://www.flexatone.net/athena.html</ulink></entry></row>
- <row><entry>GRACE/Common Music:</entry><entry><ulink url="http://commonmusic.sourceforge.net/">http://commonmusic.sourceforge.net/</ulink></entry></row>
- <row><entry>AlgoScore:</entry><entry><ulink url="http://kymatica.com/Software/AlgoScore">http://kymatica.com/Software/AlgoScore</ulink></entry></row>
- <row><entry>nGen:</entry><entry><ulink url="http://mustec.bgsu.edu/~mkuehn/ngen/">http://mustec.bgsu.edu/~mkuehn/ngen/</ulink></entry></row>
- <row><entry>ImproSculpt:</entry><entry><ulink url="http://improsculpt.sourceforge.net/pmwiki/pmwiki.php">http://improsculpt.sourceforge.net/pmwiki/pmwiki.php</ulink></entry></row>
- </tbody>
- </tgroup>
- </informaltable>
+ Winsound was formerly part of the main Csound tree. It is now available only as source code. Winsound is a cross-platform FLTK port of Barry Vercoe's original front-end for csound. Some partially sighted or unsighted users report success using Winsound with text-to-speech software.
</para>
<section id="CommandCsoundAC">
diff --git a/overview/functional.xml b/overview/functional.xml
new file mode 100644
index 0000000..eab68f2
--- /dev/null
+++ b/overview/functional.xml
@@ -0,0 +1,53 @@
+<section id="functional">
+ <title>Function Syntax in Csound6</title>
+ <para>
+ Csound 6 has introduced a new alternative syntax for orchestra code. This is initially an experimental feature, which has some limitations,
+as explained below. It will also allow the introduction of some non-backwards-compatible language features.
+ </para>
+ <bridgehead>Overview</bridgehead>
+ <para>
+ The main aspect of the new syntax is that some opcodes can be called as functions, and inlined in orchestra code. The
+general form of this is the expression:
+ </para>
+ <literallayout>
+ var* = op(exprlist*)
+ </literallayout>
+ <para>
+ where * indicates optional, var is a single variable in one of Csound6 types, and exprlist is a comma separated list
+ of expressions (or a single expression or variable). These expressions can be placed anywhere inside instrument or
+ opcode blocks. I-time operations can also be placed outside instrument blocks. The functional syntax can be intermixed with
+ standard Csound code.
+ </para>
+ <para>
+ Here are some examples of these expressions:
+ </para>
+ <literallayout>
+
+ a1 = oscil(p4,p5)
+ out(vco2(p4*linen(1,0.1,p3,0.1),p5)
+ outs(oscili(in(),p5), in())
+
+ </literallayout>
+ <bridgehead>Limitations</bridgehead>
+ <para>
+ The main limitation is that only opcodes with single outputs (or no outputs) are allowed. In addition, opcodes with
+multiple optional outputs will not be parsed successfully in this form. An alternative to allow for these
+is to wrap them in user-defined opcodes, or just to intermix standard Csound syntax with this new style.
+ </para>
+ <para>
+To resolve opcode ambiguities, we have introduced type annotations, in the form of op:type(exprlist). For instance
+the code:
+ </para>
+ <para>
+ <literallayout>
+
+ a1 = oscili(oscili:k(p4,p5), 440)
+
+ </literallayout>
+ </para>
+ <para>
+will choose a control-rate opcode to modulate the amplitude of the audio carrier, rather than an audio rate one. There will
+be cases where the type annotation will be required, when the input arguments cannot be used to determine the correct type
+of opcode to be applied.
+ </para>
+</section>
diff --git a/preface/history.xml b/preface/history.xml
index 66d8ecb..619e96f 100644
--- a/preface/history.xml
+++ b/preface/history.xml
@@ -70,9 +70,10 @@
<row><entry>&namepinot;</entry></row>
<row><entry>&nameandres;</entry></row>
<row><entry>Gareth Edwards</entry></row>
- <row><entry>Joachim Heinz</entry></row>
+ <row><entry>Joachim Heintz</entry></row>
<row><entry>&namejohn;</entry></row>
- <row><entry>Oeyvind Brandstegg</entry></row>
+ <row><entry>Oeyvind Brandtsegg</entry></row>
+ <row><entry>Menno Knevel</entry></row>
<row><entry>Felipe Sateler</entry></row>
<row><entry>And many others.</entry></row>
</tbody>
diff --git a/preface/whatsnew.xml b/preface/whatsnew.xml
index 6e0e543..5a75f4e 100644
--- a/preface/whatsnew.xml
+++ b/preface/whatsnew.xml
@@ -1,5 +1,5 @@
<section id="PrefaceWhatsNew"><title>What's new in Csound &csoundversion;</title>
-<!-- <bridgehead>New in Version 5.XX ()</bridgehead> --><!-- <para>
+<!-- <bridgehead>NRelease Notes for Csound 6.XX ()</bridgehead> --><!-- <para>
<itemizedlist>
<listitem>
<para>New opcodes:
@@ -64,6 +64,2098 @@
</listitem>
</itemizedlist>
</para>-->
+<bridgehead>Release Notes for Csound 6.02</bridgehead>
+ <para>
+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.
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>New opcodes:
+ <itemizedlist>
+ <listitem>
+ <simpara><link linkend="instance"><citetitle>instance</citetitle></link>
+ opcode schedules a new instrument instance, storing the instance handle.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="kill"><citetitle>kill</citetitle></link>
+ opcode stops a given instrument instance.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="strfromurl"><citetitle>strfromurl</citetitle></link>
+ to set a string from a URL.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Orchestra:
+ <itemizedlist>
+ <listitem>
+ <simpara>If building supports it, a #include string can be a URL or a
+ file.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>A space is again permitted between a function name and the
+ opening bracket for all functions allowed in Csound5 (but not in
+ general).</simpara>
+ </listitem>
+ <listitem>
+ <simpara>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).</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Score:
+ <itemizedlist>
+ <listitem>
+ <simpara>If building supports it, a #include string can be a URL or a
+ file.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Modified Opcodes and Gens:
+ <itemizedlist>
+ <listitem>
+ <simpara>Many filters generalised to allow k- or a-rate parameters. In
+ particular it includes these:
+ <informaltable frame="none">
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>areson</entry>
+ <entry>atonex</entry>
+ </row>
+ <row>
+ <entry>butterworth filters</entry>
+ <entry>fofilter</entry>
+ </row>
+ <row>
+ <entry>lowres</entry>
+ <entry>lowresx</entry>
+ </row>
+ <row>
+ <entry>lpf18</entry>
+ <entry>mode</entry>
+ </row>
+ <row>
+ <entry>moogladder</entry>
+ <entry>moogvcf</entry>
+ </row>
+ <row>
+ <entry>reson</entry>
+ <entry>resonr</entry>
+ </row>
+ <row>
+ <entry>resonx</entry>
+ <entry>resonz</entry>
+ </row>
+ <row>
+ <entry>statevar</entry>
+ <entry>tonex</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>The maximum number of presets in sfont increased to 16384.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara><emphasis>cpsmidinn</emphasis> is now more accurate.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara><emphasis>max_k</emphasis> now behaves like the documentation.
+ There were caseswhen it gave strange results.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>The vst4cs opcodes have been re-factored. FLTK code has been encapsulated.
+ The build system has been updated for Csound 6.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>In <emphasis>alwayson</emphasis> opcode changes for better
+ handling of pfields, more reliable insert of an instrument instance
+ for repeating or re-started score sections.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>The signal flow graph opcodes have replaced OpenMP
+ multi-threading with pthreads, using one-time initialization
+ of static structures.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Frontends:
+ <itemizedlist>
+ <listitem>
+ <simpara>PNaCl is now supported as a platform, allowing Csound to run
+ under the Chrome browser in all enabled operating systems.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Bugs fixed:
+ <itemizedlist>
+ <listitem>
+ <simpara><emphasis>adsynt2</emphasis> opcode fixed.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara><emphasis>ftgentmp</emphasis> opcode fixed.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara><emphasis>dates</emphasis> opcode fixed.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>fixed a bug in <emphasis>pvsfilter</emphasis>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>fixed stereo out in <emphasis>temposcal</emphasis> and
+ <emphasis>mincer</emphasis>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara><emphasis>pan2</emphasis> opcode fixed.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>index overflow in <emphasis>randh</emphasis> and
+ <emphasis>randi</emphasis> fixed.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>A number of fixes to CsoundVST: initialization, score
+ handling, and MIDI driver initialization, so it now works for Csound 6.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>fixed <emphasis>pycalln</emphasis> for no inputs.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>fixed/revised setting and use of <emphasis>ksmps</emphasis>
+ and <emphasis>kr</emphasis> in UDOs.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>fixed problem in sending a score event from max to csound via
+ csound~ (Ticket #58).
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>If itype in <emphasis>chn_k</emphasis> was set to 3 and
+ values are set less than 1, Csound6 used to give an INIT Error.
+ (Ticket #67).
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>A number of reported seg faults have been dealt with.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara><emphasis>xtratim</emphasis> opcode was using incorrect
+ ekr value from csound instead of from instance; when used in
+ conjunction with <emphasis>setksmps</emphasis>, was causing notes
+ to have very long <emphasis>xtratim</emphasis> set and
+ thus notes were effectively not getting turned off
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>System changes:
+ <itemizedlist>
+ <listitem>
+ <simpara>A server mode is now available, accepting input via UDP (with
+ --port option).
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>A longstanding bug in extract was detected and fixed. It does
+ suggest that this facility is little used!
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>The way the external score generator was coded is
+ substantially changed. In particular this should fix a very
+ strange bug in Windows.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Fixed crashing bug with invalue channel callback due to
+ wrong data object being pulled from csound host data.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Fixed bug in UDOs with no local ksmps where kcounter was
+ being used incorrectly.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Better checking in channels.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>(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.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>(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).
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Internal changes:
+ <itemizedlist>
+ <listitem>
+ <simpara>Many attempts at faster code.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Type inference and parsing still improving.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>iOS:
+ <itemizedlist>
+ <listitem>
+ <simpara>Fixed crash where no csoundSetHostImplementedMIDIIO is
+ used on iOS and no _RTMIDI value is set.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>OSX:
+ <itemizedlist>
+ <listitem>
+ <simpara>Fixed input device name for auhal.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+<bridgehead>Release Notes for Csound6</bridgehead>
+<para>
+ 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.
+</para>
+
+<para>
+ There are new facilities, like sample accuracy and realtime mode,
+ described below.
+</para>
+
+<para>
+ IMPORTANT: The environment variable to find plugins are called
+ <emphasis role="strong">OPCODE6DIR64</emphasis> or
+ <emphasis role="strong">OPCODE6DIR</emphasis> (note the 6) so it can co-exist
+ with Csound5.
+</para>
+
+<para>
+ Similarly <emphasis role="strong">.csoundrc</emphasis> is renamed
+ <emphasis role="strong">.csound6rc</emphasis>.
+</para>
+
+<para>
+ Arrays are now mainstream, with syntax and opcode support. They also
+ exist in multidimensional format. They are created (usually)
+ with <emphasis>init</emphasis> opcode or <emphasis>fillarray</emphasis>.
+ <informalexample>
+ <programlisting>
+ k1[] <emphasis role="opc">init</emphasis> 4</programlisting>
+ </informalexample>
+ generates a k-rate 1-D array of length 4. Similarly
+ <informalexample>
+ <programlisting>
+ a2[][] <emphasis role="opc">init</emphasis> 4, 4</programlisting>
+ </informalexample>
+ creates a square 4x4 a-rate array.
+ <informalexample>
+ <programlisting>
+ k2[] <emphasis role="opc">fillarray</emphasis> 1, 2, 3, 4</programlisting>
+ </informalexample>
+ creates a 4-element vector filled with 1,..4, which also defines the
+ length.
+</para>
+
+<para>
+ 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
+ <emphasis>maxtab</emphasis>, <emphasis>mintab</emphasis> and
+ <emphasis>sumtab</emphasis> (see below). Array setting can be done in
+ left-hand side of opcodes, i.e.:
+ <informalexample>
+ <programlisting>
+ aSigs[0] <emphasis role="opc">vco2</emphasis> .1, 440
+ aSigs[1] <emphasis role="opc">vco2</emphasis> .1, 880</programlisting>
+ </informalexample>
+</para>
+
+<para>
+ 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:
+ <orderedlist>
+ <listitem>
+ <simpara>all opcode audio file reading/writing is handled asynchronously
+ by a separate thread.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>all init-pass operations are also performed asynchronously.</simpara>
+ </listitem>
+ </orderedlist>
+</para>
+
+<para>
+ Multicore support is totally rewritten using a different algorithm for
+ task-dispatch, which should use less memory and fewer locks.
+</para>
+
+<para>
+ <itemizedlist>
+ <listitem>
+ <para>New opcodes:
+ <itemizedlist>
+ <listitem>
+ <simpara><emphasis>faustgen</emphasis></simpara>
+ </listitem>
+ <listitem>
+ <simpara><emphasis>array</emphasis> -- many new or revised
+ opcodes -- see <link linkend="arrayOpcodes"><citetitle>Array
+ Opcodes</citetitle></link>.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><emphasis>compileorc</emphasis> takes a filename containing
+ a collection of instrument definitions and compiles them, replacing
+ existing versions. It returns 0 on success.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><emphasis>compilestr</emphasis> is like
+ <emphasis>compileorc</emphasis> but takes a string.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><emphasis>readscore</emphasis> runs the score preprocessor
+ on a string and then schedules new events via the RT event mechanism,
+ returning 0 if successful.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Orchestra
+ <itemizedlist>
+ <listitem>
+ <simpara>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.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Instruments can run at local <emphasis>ksmps</emphasis>
+ values using <code>setksmps iksmps</code> as in Csound 5 UDOs.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>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 <emphasis>compileorc</emphasis> and
+ <emphasis>compilestr</emphasis>.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>New syntax operators +=, -=, *= and /=. These are more
+ than syntactic sugar; please use += and -= for accumulating reverbs
+ as it gives better multicore behaviour.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>The opcodes <emphasis>add</emphasis>, <emphasis>sub</emphasis>,
+ <emphasis>mul</emphasis> and <emphasis>div</emphasis> have been
+ deleted; use the forms + - * /. Not many people were aware of these
+ opcodes.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>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
+ <link linkend="functional"><citetitle>Function syntax in
+ Csound 6</citetitle></link>.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>A statement can be broken across lines after a , = or
+ arithmetic operation.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>There are a range of new or recoded operations on k-valued
+ arrays, most restricted to 1 dimensional arrays (vectors):
+ <informalexample>
+ <programlisting>
+ kans <emphasis role="opc">minarray</emphasis> ktab <emphasis role="comment">returns the smallest value in the</emphasis>
+ <emphasis role="comment">(possibly) multidimensional array</emphasis>
+ kans <emphasis role="opc">maxarray</emphasis> ktab <emphasis role="comment">is like mintab</emphasis>
+ kabs <emphasis role="opc">sumarray</emphasis> ktab <emphasis role="comment">returns sum of all values in the array</emphasis>
+ ktab <emphasis role="opc">genarray</emphasis> imin, imax[, inc]
+ <emphasis role="comment">generates vector of values from imin</emphasis>
+ <emphasis role="comment">to imax by increments of inc (default 1)</emphasis>
+ ktab2 <emphasis role="opc">maparray</emphasis> ktab1, "sin" <emphasis role="comment">maps the k-rate 1-arg function in</emphasis>
+ <emphasis role="comment">the string to every element of the vector</emphasis>
+ ktab2 <emphasis role="opc">maparray_i</emphasis> ktab1, "sin" <emphasis role="comment">maps the i-rate 1-arg function</emphasis>
+ <emphasis role="comment">in the string to every element of the vector</emphasis>
+ ktab2 <emphasis role="opc">slicearray</emphasis> ktab1, istart, iend
+ <emphasis role="comment">returns a slice of ktab1 from ktab1[istart]</emphasis>
+ <emphasis role="comment">to ktab1[iend]</emphasis>
+ <emphasis role="opc">copyf2array</emphasis> ktab, kfn <emphasis role="comment">copies data from an ftable to a vector</emphasis>
+ <emphasis role="opc">copya2ftab</emphasis> ktab, kfn <emphasis role="comment">copies data from a vector to an ftable</emphasis></programlisting>
+ </informalexample>
+
+ 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.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>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.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>If a table number is given as -1 then an internal sine wave
+ equivalent to <code>f. 0 16382 10 1</code> 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.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>A number of oscil opcodes now have the f-table parameter as
+ optional, defaulting to the internal sine wave. (<emphasis>oscil1,
+ oscil1i, oscil, oscil3, oscili, foscil, foscil1, loscil,
+ loscil3</emphasis>).</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Score:
+ <itemizedlist>
+ <listitem>
+ <simpara>Score lines can have multiple strings.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Change to escape characters in score strings -- they do not
+ happen.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Also note the <emphasis>readscore</emphasis> opcode.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Modified Opcodes and Gens:
+ <itemizedlist>
+ <listitem>
+ <simpara>The <emphasis>k()</emphasis> function can take an a-rate
+ argument in which case it is a call to <emphasis>downsamp</emphasis>.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Utilities
+ <itemizedlist>
+ <listitem>
+ <simpara><emphasis>Hetro/adsyn</emphasis> analysis files can be
+ machine byte-order independent if created with -X. Down side is a
+ longer file and a little slower loading. The
+ <emphasis>het_export</emphasis> utility will create the independent
+ format from the old, and <emphasis>het_import</emphasis> is no
+ longer necessary.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><emphasis>cvanal</emphasis> and <emphasis>lpanal</emphasis>
+ will produce machine independent files if -X option is used. The
+ <emphasis>convolve</emphasis> and <emphasis>lpread</emphasis> 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.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Frontends</para>
+ </listitem>
+ <listitem>
+ <para>Bugs fixed:</para>
+ </listitem>
+ <listitem>
+ <para>System Changes:
+ <itemizedlist>
+ <listitem>
+ <simpara>In Linux and OSX the treatment of locales is now thread-safe
+ and local.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Platform Changes:</para>
+ </listitem>
+ <listitem>
+ <para>API:
+ <simpara>New API functions...</simpara>
+ <itemizedlist>
+ <listitem>
+ <simpara>new configuration/parameter setting functions
+ <informalexample>
+ <programlisting>
+ 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);</programlisting>
+ </informalexample></simpara>
+ </listitem>
+ <listitem>
+ <simpara>new parsing/compilation functions
+ <informalexample>
+ <programlisting>
+ 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);</programlisting>
+ </informalexample></simpara>
+ </listitem>
+ <listitem>
+ <simpara>new function for starting csound after first compilation
+ <informalexample>
+ <programlisting>
+ PUBLIC int csoundStart(CSOUND *csound);</programlisting>
+ </informalexample></simpara>
+ </listitem>
+ <listitem>
+ <simpara>new software bus threadsafe getters/setters
+ <informalexample>
+ <programlisting>
+ 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);</programlisting>
+ </informalexample></simpara>
+ </listitem>
+ <listitem>
+ <simpara>new table threadsafe copy functions
+ <informalexample>
+ <programlisting>
+ PUBLIC void csoundTableCopyOut(CSOUND *csound, int table, MYFLT *dest);
+ PUBLIC void csoundTableCopyIn(CSOUND *csound, int table, MYFLT *src);</programlisting>
+ </informalexample></simpara>
+ </listitem>
+ </itemizedlist>
+ API has been made threadsafe so that performance and control
+ can occur in separate threads (after a call to <emphasis>csoundStart()</emphasis>
+ or <emphasis>csoundCompile()</emphasis>). Threadsafety is ensure by
+ <orderedlist>
+ <listitem>
+ <simpara>use of atomic read/writing to control channels</simpara>
+ </listitem>
+ <listitem>
+ <simpara>spinlocks in audio and string channels</simpara>
+ </listitem>
+ <listitem>
+ <simpara>mutexes protecting compilation, score events and table
+ access.</simpara>
+ </listitem>
+ </orderedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Internal:
+ <itemizedlist>
+ <listitem>
+ <simpara>The build system is now cmake (and not scons as in
+ Csound5).</simpara>
+ </listitem>
+ <listitem>
+ <simpara>A number of table access opcodes have been rewritten but
+ should behave the same. Similarly <emphasis>diskin</emphasis> and
+ <emphasis>diskin2</emphasis> now use the same code and so
+ <emphasis>diskin</emphasis> should be more stable.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>The old parser is completely removed.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>New internal functions in Csound
+ <informalexample>
+ <programlisting>
+ 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);
+ <emphasis role="comment">Extract a string originating from a score-event argument.</emphasis></programlisting>
+ </informalexample>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Functions removed
+ <informalexample>
+ <programlisting>
+ void *(*FileOpen)(CSOUND *, void*, int, const char*, void*, const char*);</programlisting>
+ </informalexample>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The "private" parts of the API have been changed considerably.
+ Also structures like EVTBLK have changed.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The LINKAGE1/FLINKAGE1 macros are renamed as
+ LINKAGE_BUILTIN/FLINKAGE_BUILTIN.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Template for a-rate perf-pass opcodes is
+ <informalexample>
+ <programlisting>
+int perf_myopcode(CSOUND *csound, MYOPCODE *p)
+{
+ uint32_t offset = p-&gt;h.insdshead-&gt;ksmps_offset;
+ uint32_t early = p-&gt;h.insdshead-&gt;ksmps_no_end;
+ uint32_t nsmps = CS_KSMPS;
+ ...
+ if (UNLIKELY(offset)) memset(p-&gt;res, '\0', offset*sizeof(MYFLT));
+ if (UNLIKELY(early)) {
+ nsmps -= early;
+ memset(&amp;p-&gt;res[nsmps], '\0', early*sizeof(MYFLT));
+ }
+ for (n=offset; n&lt;nsmps; n++) {
+ .....
+ p-&gt;res[n] = ....
+ }
+ return OK;
+}</programlisting>
+ </informalexample>
+ </para>
+ </listitem>
+ <listitem>
+ <para>String variables re-implemented</para>
+ </listitem>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ All opcodes that touch audio should take note of sample-accurate code.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ A number of previous API functions are removed;
+ <emphasis>OpenFile</emphasis> and <emphasis>OpenFile2</emphasis>
+ both replaced by new <emphasis>OpenFile2</emphasis> with additional
+ argument.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Additions have been made for arg type specifications for opcodes.
+ <itemizedlist>
+ <listitem>
+ <simpara>Any-types have been added, as follows:
+ <itemizedlist>
+ <listitem><simpara>'.' signifies a required arg of any-type</simpara></listitem>
+ <listitem><simpara>'?' signifies an optional arg of any-type</simpara></listitem>
+ <listitem><simpara>'*' signifies a var-arg list of any-type</simpara></listitem>
+ </itemizedlist></simpara>
+ </listitem>
+ <listitem>
+ <simpara>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 <emphasis>Opcodes/arrays.c</emphasis>
+ for example usage.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>New Type System</para>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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.)
+ </para>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </itemizedlist>
+</para>
+
+<bridgehead>New in Version 5.19 (2013 January 7)</bridgehead>
+<para>
+ This is mainly a bug-fixing release but with a number of new opcodes and
+ enhanced features.
+</para>
+<para>
+ <itemizedlist>
+ <listitem>
+ <para>New opcodes:
+ <itemizedlist>
+ <listitem>
+ <simpara><emphasis>ipmidi</emphasis> module for MIDI over network.</simpara>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <simpara><emphasis>ppltrack</emphasis> opcode.</simpara>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <simpara><link linkend="combinv"><citetitle>combinv</citetitle></link> opcode.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>New Gen and Macros:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Better checking in <link linkend="GEN28"><citetitle>GEN28</citetitle></link>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Check range in <link linkend="outrg"><citetitle>outrg</citetitle></link>,
+ and optionally allow wrapping.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Orchestra:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Change empty statement to a warning.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Added line numbers to many input args message (new parser).
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Modified Opcodes and GENs:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Better error and warning messages.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="loopseg"><citetitle>loopseg</citetitle></link> now
+ checks argument count.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="harmon2"><citetitle>harmon2/3/4</citetitle></link> improved.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="active"><citetitle>active</citetitle></link>: added
+ the option to skip the instances in release phase.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ New and more tested implementation of ChordSpace.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Bug fixed:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Fix botched optimisation in lowpass filters.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Chn opcodes fixed in Linux.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Fix bug in <link linkend="loscil"><citetitle>loscil</citetitle></link> with silence.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Correct <link linkend="GEN23"><citetitle>GEN23</citetitle></link>
+ when comment does not end in newline.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Correcting <link linkend="loopseg"><citetitle>loopseg</citetitle></link>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Number of input and output channels fixed in new parser.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Fixed <link linkend="GEN43"><citetitle>GEN43</citetitle></link> issue.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Fixed <link linkend="fout"><citetitle>fout</citetitle></link>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="centroid"><citetitle>centroid</citetitle></link>
+ was likely to crash.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Minor bug in printing which lost %.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ An uninitialised value in <link linkend="fold"><citetitle>fold</citetitle></link> fixed.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Uninitalised values in <link linkend="dconv"><citetitle>dconv</citetitle></link> fixed.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Assignment of fsigs now works.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>System Changes:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Avoid seg fault on some user errors.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Faster modal4 opcodes.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Allow cabbage compilation.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Made pfield size dynamic in event message csoundapi~.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ The default output format with pipe and double float is AU.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Change to ircam with default format, '-o stdout' and pipe.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Added double float precision for output format.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Platform Changes:
+ <itemizedlist>
+ <listitem>
+ <para>Linux:
+ <itemizedlist>
+ <listitem>
+ <simpara>Spinlocks initialised (fixes bug in chn opcodes).</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>OSX:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Improved selection of devices in rtauhal module.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Added a circular buffer interface and lock-free operation to rtauhal.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Fixed MacOSX installer (creating symlinks to lib_csnd.dylib).
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Haiku:
+ <itemizedlist>
+ <listitem>
+ <simpara>New platform</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Android:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Using -B now in android to set circular buffer size.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Added fluid synth opcodes for android.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Added inputMessage method to CsoundObj.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Allow CSDPlayer to be installed on SD Card.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>iOS:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Improved audio routing.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Bottom speaker the default for iOS.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>API:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Added new API function <emphasis>csoundCompileFromStrings()</emphasis>.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+</para>
+<bridgehead>New in Version 5.18 (2012 August 29)</bridgehead>
+<para>
+ This is mainly a bug-fixing release but with a number of new opcodes and
+ enhanced features.
+</para>
+<para>
+ <itemizedlist>
+ <listitem>
+ <para>New opcodes:
+ <itemizedlist>
+ <listitem>
+ <simpara><link linkend="centroid"><citetitle>centroid</citetitle></link>
+ opcode like pvscent but acting on audio signals</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="cosseg"><citetitle>cosseg</citetitle></link>
+ like linseg but with cosine interpolation</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="cossegb"><citetitle>cossegb</citetitle></link>
+ like linsegb but with cosine interpolation</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="cossegr"><citetitle>cossegr</citetitle></link>
+ like linsegr but with cosine interpolation</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="joystick"><citetitle>joystick</citetitle></link>
+ to read input values from an external joystick (Linux only)</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="log2"><citetitle>log2</citetitle></link>
+ function for logarithms base 2</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="platerev"><citetitle>platerev</citetitle></link>
+ opcode to model a reverberating square plate</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="pwd"><citetitle>pwd</citetitle></link>
+ opcode to determine the current working directory</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="readf"><citetitle>readf</citetitle></link>
+ opcode to read strings from a file</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="readfi"><citetitle>readfi</citetitle></link>
+ opcode to read strings from a file on initialisation</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="vbap"><citetitle>vbap</citetitle></link>
+ opcode like other vbap family but flexible about number
+ of speakers and choice of layouts.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="vbapg"><citetitle>vbapg</citetitle></link>
+ opcode like vbap but only calculate the gains on the
+ channels.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ New functionality
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Changes to &lt;CsOptions&gt; to allow spaces between
+ words, and escaped characters.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="fout"><citetitle>fout</citetitle></link>
+ and <link
+ linkend="fin"><citetitle>fin</citetitle></link> use a
+ better buffering strategy, and so are
+ faster
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ It is possible to specify just an orchestra with the
+ --orc flag. This is useful when a score is not needed.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ A new command-line flag --ogg flag has been added for
+ easy use of ogg/vorbis output.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Added alsaseq real-time midi
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Bug fixes and improvements:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ <link
+ linkend="dates"><citetitle>dates</citetitle></link>
+ opcode could crash on 64bit architecture; this is fixed
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Some multicore interlocks were wrong. It is believed
+ that this was not actually a problem, but would be in
+ the future.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ There were cases when a file was double closed, leading
+ to a crash on exit.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Two new features added in <link linkend="partikkel"><citetitle>partikkel</citetitle></link>. 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.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="follow2"><citetitle>follow2</citetitle></link> was reworked do the i-rate and k-rate
+ calculations are the same.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="pvscent"><citetitle>pvscent</citetitle></link> is corrected as it returned half the correct
+ value.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="vbaplsinit"><citetitle>vbaplsinit</citetitle></link> can create more than one speaker layout which
+ vbap/vbapg can use. Also much better diagnostics on
+ incorrect layouts.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Internal Changes:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Code changed so bison 2.6 can be used.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ It is assumed that libsndfile version 1.0.19 or later is
+ available.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ If the score is omitted a near-infinite wait is
+ generated.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <bridgehead>New in Version 5.17 (March 2012)</bridgehead>
+ <para>
+ This is mainly a bug-fixing release with no major changes, but the
+ number of fixes warrants a release.
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>New opcodes:
+ <itemizedlist>
+ <listitem>
+ <simpara><link linkend="cell"><citetitle>cell</citetitle></link>
+ opcode, for cellular automata</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Modified Opcodes and Gens:
+ <itemizedlist>
+ <listitem>
+ <simpara>active now will report total number of active or allocated instruments if argument in zero</simpara>
+ </listitem>
+ <listitem>
+ <simpara>stsend and strecv the TCP socket opcodes reworked to a logical design </simpara>
+ </listitem>
+ <listitem>
+ <simpara>DSSI system now will take up to 9 channels </simpara>
+ </listitem>
+ <listitem>
+ <simpara>FLsavesnap works with other widgets where imin &gt; imax </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Utilities:
+ <itemizedlist>
+ <listitem>
+ <simpara>csbeats better documented and built by default; also more note lengths available </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Some security holes in utilities fixed </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Bug fixes:
+ <itemizedlist>
+ <listitem>
+ <simpara>unirand opcode at a-rate fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Locale fix for floating point literals in orchestra </simpara>
+ </listitem>
+ <listitem>
+ <simpara>transegr fixed </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ System Changes:
+ <itemizedlist>
+ <listitem>
+ <simpara>Score can now last longer (change to size of time variable) </simpara>
+ </listitem>
+ <listitem>
+ <simpara>An empty score gives a very long performance time (years and years) </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Android code released </simpara>
+ </listitem>
+ <listitem>
+ <simpara>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.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>interaction between Comments, end of line and end of file fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Hexadecimal numbers now allowed in orchestra </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Empty orchestra now not a crash </simpara>
+ </listitem>
+ <listitem>
+ <simpara>change to macro expansion inside a string </simpara>
+ </listitem>
+ <listitem>
+ <simpara>avoid infinite loop when eof in malformed score macro </simpara>
+ </listitem>
+ <listitem>
+ <simpara>fixed macroname-with-args diagnostics and memory leak </simpara>
+ </listitem>
+ <listitem>
+ <simpara>change to preprocessor: {{ }} inside "..." and better diagnostics </simpara>
+ </listitem>
+ <listitem>
+ <simpara>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.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>CsoundAC MusicModel class more usable by C++ programs </simpara>
+ </listitem>
+ <listitem>
+ <simpara>ftcps had been missed as a function </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Internal Changes:
+ <itemizedlist>
+ <listitem>
+ <simpara>Many! Some messages quietened, code improvements etc </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <bridgehead>New in Version 5.16 (February 2012)</bridgehead>
+ <para>
+ 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.
+ </para>
+ <para>
+ Some memory leaks also fixed.
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>New opcodes:
+ <itemizedlist>
+ <listitem>
+ <simpara>Opcodes adapted from SuperCollider by &nametito;:
+ <link linkend="dust"><citetitle>dust</citetitle></link>,
+ <link linkend="dust2"><citetitle>dust2</citetitle></link>,
+ <link linkend="gausstrig"><citetitle>gausstrig</citetitle></link>,
+ <link linkend="gendy"><citetitle>gendy</citetitle></link>,
+ <link linkend="gendyc"><citetitle>gendyc</citetitle></link>, and
+ <link linkend="gendyx"><citetitle>gendyx</citetitle></link>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Fractal noise generator by &nametito;:
+ <link linkend="fractalnoise"><citetitle>fractalnoise</citetitle></link>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Opcodes for accessing table values by direct indexing, by &namejohn;:
+ <link linkend="ptable"><citetitle>ptable</citetitle></link>,
+ <link linkend="ptablei"><citetitle>ptablei</citetitle></link>,
+ <link linkend="ptable3"><citetitle>ptable3</citetitle></link>, and
+ <link linkend="ptablew"><citetitle>ptablew</citetitle></link>. These opcodes
+ are respectively like
+ <link linkend="table"><citetitle>table</citetitle></link>,
+ <link linkend="tablei"><citetitle>tablei</citetitle></link>,
+ <link linkend="table3"><citetitle>table3</citetitle></link>, and
+ <link linkend="tablew"><citetitle>tablew</citetitle></link>, but they do not
+ require a power-of-2 table size.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Modified Opcodes and Gens:
+ <itemizedlist>
+ <listitem>
+ <simpara>There was a fence post problem in tab opcode that could falsely report a reference out of range.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>GEN15 mis-called gens 13 and 14 internally, using uninitialised values voice amplitude. Problem fixed.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>fmbell now takes an optional argument to control the sustain time.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Change to pvsbasic for tab to table conversions.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>poscil is now polymorphic, allowing k- or a-rate amplitude and frequency.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>p() and i() changed when argument at k-rate.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>gen49 deferred now works.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>gen23 now available deferred.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Utilities:
+ <itemizedlist>
+ <listitem>
+ <simpara>Checked for use with the new parser in memory files.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Frontends:
+ <itemizedlist>
+ <listitem>
+ <simpara>Table access added to csoundapi~ via new get/set methods.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Bug fixes and improvements:
+ <itemizedlist>
+ <listitem>
+ <simpara>Many in new parser related to precedence and multicore.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Better diagnostics when orchestra file/csd is missing.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>csd file: fix CsFileB and CsSampleB.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Fixed score statement 'n'.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Fixed bug in diskin2 leading to infinite loop.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Fixed bug causing crossfade noise in hrtfmove.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Fixed unlikely buffer overflows in some utilities.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Avoid segfault in midicN.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Bug in mp3in in skip=0 case fixed.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>'r' score statement fixed with respect to macros.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>sndwarp could segfault.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ System Changes:
+ <itemizedlist>
+ <listitem>
+ <simpara>Preprocessor #if #else #endin working.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>#includes depth now limited rather than infinite recursion.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>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.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>Memory leak in mp3in and mp3len fixed.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Internal Changes:
+ <itemizedlist>
+ <listitem>
+ <simpara>Very, very, very many! And the new parser...</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+<bridgehead>New in Version 5.15 (December 2011)</bridgehead>
+<para>
+ <itemizedlist>
+ <listitem>
+ <para>New opcodes:
+ <itemizedlist>
+ <listitem>
+ <simpara><citetitle>ftab2tab</citetitle>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="tab2pvs"><citetitle>tab2pvs</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="pvs2tab"><citetitle>pvs2tab</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="cpumeter"><citetitle>cpumeter</citetitle></link> opcode, (not really new but now available in OSX)</simpara>
+ </listitem>
+ <listitem>
+ <simpara><citetitle>minmax</citetitle>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><citetitle>(EXPERIMENTAL) ftresize</citetitle>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><citetitle>(EXPERIMENTAL) ftresizei</citetitle>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="hrtfearly"><citetitle>hrtfearly</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="hrtfreverb"><citetitle>hrtfreverb</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ New Gen and Macros
+ <itemizedlist>
+ <listitem>
+ <simpara>Code to allow GEN49 to be deferred [NB does not seem to work] </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Modified Opcodes and Gens
+ <itemizedlist>
+ <listitem>
+ <simpara>socksend and sockrecv no longer uses MTFU check and work on Windows </simpara>
+ </listitem>
+ <listitem>
+ <simpara>mpulse changed so if next event is at negative time use the absolute value </simpara>
+ </listitem>
+ <listitem>
+ <simpara>serial opcode now runs on Windows as will as Un*x </simpara>
+ </listitem>
+ <listitem>
+ <simpara>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 </simpara>
+ </listitem>
+ <listitem>
+ <simpara>turnoff2 now polymorphic wrt S and k types (ie accepts instrumnet names) </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Bugs fixed:
+ <itemizedlist>
+ <listitem>
+ <simpara> GEN42 fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>jacko: fixed a segfault removing the unused JackSessionID option </simpara>
+ </listitem>
+ <listitem>
+ <simpara>doppler memory leak fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>transegr fixed in release mode when skipping most of envelope </simpara>
+ </listitem>
+ <listitem>
+ <simpara>FLPack now agrees with manual </simpara>
+ </listitem>
+ <listitem>
+ <simpara>max_k now agrees with manual </simpara>
+ </listitem>
+ <listitem>
+ <simpara>hrtfreverb fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>atsa code now works on Windows in more cases </simpara>
+ </listitem>
+ <listitem>
+ <simpara>tabmorph bug fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>fixed problem with user-defined opcodes having no outputs </simpara>
+ </listitem>
+ <listitem>
+ <simpara> Various fixes to * ... */ comments </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>System Changes:
+ <itemizedlist>
+ <listitem>
+ <simpara> Various licence issues sorted </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Loris is no longer part of the Csound tree </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Memory leaks fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>If no score is given a dummy that runs for over 100 years is created </simpara>
+ </listitem>
+ <listitem>
+ <simpara>All score processing takes place in memory without temporary files </simpara>
+ </listitem>
+ <listitem>
+ <simpara>String memory now expandable and no size limitation </simpara>
+ </listitem>
+ <listitem>
+ <simpara>#if #else #end now in new parser </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Adjustments to MIDI file precision in output </simpara>
+ </listitem>
+ <listitem>
+ <simpara>On OSX move from Coreaudio to AuHAL </simpara>
+ </listitem>
+ <listitem>
+ <simpara>Multicore now safe for ZAK, Channels and modifying tables </simpara>
+ </listitem>
+ <listitem>
+ <simpara>New coremidi module </simpara>
+ </listitem>
+ <listitem>
+ <simpara>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. </simpara>
+ </listitem>
+ <listitem>
+ <simpara>tsig type for vectors </simpara>
+ </listitem>
+ <listitem>
+ <simpara>tsigs and fsigs allowed as arguments in UDOs </simpara>
+ </listitem>
+ <listitem>
+ <simpara>API: Minor version upped </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Internal Changes:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Very, very, very many! </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+<bridgehead>New in Version 5.14 (October 2011)</bridgehead>
+<para>
+ <itemizedlist>
+ <listitem>
+ <para>New opcodes:
+ <itemizedlist>
+ <listitem>
+ <simpara><link linkend="mp3len"><citetitle>mp3len</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="qnan"><citetitle>qnan</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="qinf"><citetitle>qinf</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend=" exprandi"><citetitle>
+ exprandi</citetitle></link> opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="cauchyi"><citetitle>cauchyi</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="gaussi"><citetitle>gaussi</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="cpumeter"><citetitle>cpumeter</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="linsegb"><citetitle>linsegb</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="expsegb"><citetitle>expsegb</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="transegb"><citetitle>transegb</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="expsegba"><citetitle>expsegba</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="pvsgain"><citetitle>pvsgain</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="pvsbufread2"><citetitle>pvsbufread2</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="serialBegin"><citetitle>serial</citetitle></link>
+ opcodes.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link linkend="lua"><citetitle>lua
+ opcodes</citetitle></link> opcodes.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>plustab opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>multtab opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="maxarray"><citetitle>maxarray</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="minarray"><citetitle>minarray</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="sumarray"><citetitle>sumarray</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ <listitem>
+ <simpara><link
+ linkend="scalearray"><citetitle>scalearray</citetitle></link>
+ opcode.</simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ New functionality
+ <itemizedlist>
+ <listitem>
+ <simpara>beats processor renamed to csbeats and distributed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>mkdb utility to provide a catalogue of plugin
+ libraries/opcodes </simpara>
+ </listitem>
+ <listitem>
+ <simpara>ladspa library build in default system </simpara>
+ </listitem>
+ <listitem>
+ <simpara>macros are now expanded inside string in the score </simpara>
+ </listitem>
+ <listitem>
+ <simpara>there in an until .. do .. od looping syntax
+ (in the new parser only) </simpara>
+ </listitem>
+ <listitem>
+ <simpara>SIGPIPE signals are ignored rather than causing Csound to exit </simpara>
+ </listitem>
+ <listitem>
+ <simpara>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.
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Bug fixes and improvements:
+ <itemizedlist>
+ <listitem>
+ <simpara> reading values to fill tables was broken with
+ respect to comments</simpara>
+ </listitem>
+ <listitem>
+ <simpara>internal error in wii_data fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>pvsshift fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>jacko fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>gen23 minor fixes </simpara>
+ </listitem>
+ <listitem>
+ <simpara>wiimote fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>atsaadd fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>compress fixed to work with 0dbfs </simpara>
+ </listitem>
+ <listitem>
+ <simpara>pvsbufread corrected with respect to position
+ counting </simpara>
+ </listitem>
+ <listitem>
+ <simpara>tempo opcode fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>CsFileB section in .csd files had a bug, now fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>deferred gen01 tables could have wrong size </simpara>
+ </listitem>
+ <listitem>
+ <simpara>vbap_zak made to work(!) </simpara>
+ </listitem>
+ <listitem>
+ <simpara>fixed memory issue in ATSsinoi </simpara>
+ </listitem>
+ <listitem>
+ <simpara>various fixes to cscore </simpara>
+ </listitem>
+ <listitem>
+ <simpara>various fixes to partials and tradsyn </simpara>
+ </listitem>
+ <listitem>
+ <simpara>transegr could crash in some cases</simpara>
+ </listitem>
+ <listitem>
+ <simpara>loris opcodes updated to latest version </simpara>
+ </listitem>
+ <listitem>
+ <simpara>date opcode has new base in some platforms to
+ avoid overflow </simpara>
+ </listitem>
+ <listitem>
+ <simpara>pvsblur now works over reinit </simpara>
+ </listitem>
+ <listitem>
+ <simpara>diskin, diskin2 and soundin now can read up to 40
+ channels </simpara>
+ </listitem>
+ <listitem>
+ <simpara>prints behaves better with rounding </simpara>
+ </listitem>
+ <listitem>
+ <simpara>fmpercfl now has working vibrato </simpara>
+ </listitem>
+ <listitem>
+ <simpara>atreson now has gain parameter at k-rate </simpara>
+ </listitem>
+ <listitem>
+ <simpara>comb opcode made safe if in and out arguments the
+ same </simpara>
+ </listitem>
+ <listitem>
+ <simpara>better accuracy in line and expon </simpara>
+ </listitem>
+ <listitem>
+ <simpara>OSCsend recovers space previously lost </simpara>
+ </listitem>
+ <listitem>
+ <simpara>OSCsend can send a table as a blob with the T tag
+ -- experimental and untested.</simpara>
+ </listitem>
+ <listitem>
+ <simpara>lpf18 now has an optional iskip argument </simpara>
+ </listitem>
+ <listitem>
+ <simpara>i() will also accept an i-rate value in which
+ case it is a no-op </simpara>
+ </listitem>
+ <listitem>
+ <simpara>makecsd revised and extended to have options for
+ MIDI and score processing and licenses </simpara>
+ </listitem>
+ <listitem>
+ <simpara>lpanal reworked to remove bugs and oddities </simpara>
+ </listitem>
+ <listitem>
+ <simpara>an issue with noise in alsa fixed
+ and a click in portaudio fixed </simpara>
+ </listitem>
+ <listitem>
+ <simpara>portaudio driver changed to be more robust on stop/exit </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Internal Changes:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Many many changesto the new parser so it is now
+ operational, but should be used with care</simpara>
+ </listitem>
+ <listitem>
+ <simpara>The multicore system is distributed in an
+ experimental mode and should be used with great care.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
<bridgehead>New in Version 5.13 (January 2011)</bridgehead>
<para>
<itemizedlist>
@@ -239,7 +2331,7 @@
<itemizedlist>
<listitem>
<simpara>
- <link linkend="transegr"><citetitle>transegr</citetitle></link>
+ <link linkend="transegr"><citetitle>transegr</citetitle></link>
is a version of
the <link linkend="transeg"><citetitle>transeg</citetitle></link>
opcode which has a release section which is triggered
@@ -247,14 +2339,14 @@
a <link linkend="turnoff2"><citetitle>turnoff2</citetitle></link>
opcode or a negative instrument
number <link linkend="i"><citetitle>i score event</citetitle></link>.
- </simpara>
+ </simpara>
</listitem>
<listitem>
<simpara>
- <link linkend="ftgenonce"><citetitle>ftgenonce</citetitle></link>
+ <link linkend="ftgenonce"><citetitle>ftgenonce</citetitle></link>
generates a function table from within an instrument
definition, without duplication of data.
- </simpara>
+ </simpara>
</listitem>
<listitem>
<simpara><link linkend="passign"><citetitle>passign</citetitle></link>
@@ -266,18 +2358,18 @@
</listitem>
<listitem>
<simpara>
- <link linkend="loopxseg"><citetitle>loopxseg</citetitle></link>
+ <link linkend="loopxseg"><citetitle>loopxseg</citetitle></link>
is
like <link linkend="loopseg"><citetitle>loopseg</citetitle></link>
but with exponential envelope.
- </simpara>
+ </simpara>
</listitem>
<listitem>
<simpara>
- <link linkend="looptseg"><citetitle>looptseg</citetitle></link>
+ <link linkend="looptseg"><citetitle>looptseg</citetitle></link>
is like <link linkend="loopseg"><citetitle>loopseg</citetitle></link>
- but with a flexible envelope like <link linkend="transeg"><citetitle>transeg</citetitle></link>
- </simpara>
+ but with a flexible envelope like <link linkend="transeg"><citetitle>transeg</citetitle></link>
+ </simpara>
</listitem>
</itemizedlist>
</para>
@@ -286,52 +2378,52 @@
<para>Bug fixes and improvements:
<itemizedlist>
<listitem>
- <simpara>
- <link linkend="pvshift"><citetitle>pvshift</citetitle></link> would overwrite in double mode.
+ <simpara>
+ <link linkend="pvshift"><citetitle>pvshift</citetitle></link> would overwrite in double mode.
</simpara>
</listitem>
<listitem>
<simpara>
- <link linkend="pan2"><citetitle>pan2</citetitle></link> case 3 fixed.
+ <link linkend="pan2"><citetitle>pan2</citetitle></link> case 3 fixed.
</simpara>
</listitem>
<!-- <listitem>-->
<!-- <simpara> -->
-<!-- <link linkend="gettempo"><citetitle>gettempo</citetitle></link> now works. -->
+<!-- <link linkend="gettempo"><citetitle>gettempo</citetitle></link> now works. -->
<!-- </simpara> -->
<!-- </listitem> -->
<listitem>
<simpara>
- <link linkend="clockon"><citetitle>clockon</citetitle></link>
- and <link linkend="clockoff"><citetitle>clockoff</citetitle></link>
- now work again.
+ <link linkend="clockon"><citetitle>clockon</citetitle></link>
+ and <link linkend="clockoff"><citetitle>clockoff</citetitle></link>
+ now work again.
</simpara>
</listitem>
<listitem>
<simpara>
- <link linkend="cross2"><citetitle>cross2</citetitle></link> and <link linkend="interp"><citetitle>interp</citetitle></link> could have divided by zero
+ <link linkend="cross2"><citetitle>cross2</citetitle></link> and <link linkend="interp"><citetitle>interp</citetitle></link> could have divided by zero
</simpara>
</listitem>
<listitem>
<simpara>
- linecount for error messages no longer includes text
- from <link linkend="CommandUnifileParFile"><citetitle>.csoundrc</citetitle></link>
+ linecount for error messages no longer includes text
+ from <link linkend="CommandUnifileParFile"><citetitle>.csoundrc</citetitle></link>
</simpara>
</listitem>
<listitem>
<simpara>
- <link linkend="p5gconnect"><citetitle>p5gconnect</citetitle></link>
- changed to use a separate thread to avoid timeout problem.
+ <link linkend="p5gconnect"><citetitle>p5gconnect</citetitle></link>
+ changed to use a separate thread to avoid timeout problem.
</simpara>
</listitem>
<listitem>
<simpara>
- <link linkend="transeg"><citetitle>transeg</citetitle></link> checks argument count.
+ <link linkend="transeg"><citetitle>transeg</citetitle></link> checks argument count.
</simpara>
</listitem>
<listitem>
<simpara>
- <link linkend="sfload"><citetitle>sfload</citetitle></link>
+ <link linkend="sfload"><citetitle>sfload</citetitle></link>
used to be limited to 10 sound fonts and was not policed.
Now open-ended.
</simpara>
@@ -345,28 +2437,28 @@
<itemizedlist>
<listitem>
<simpara>
- \&quot; allowed as an escape in orchestral strings
+ \&quot; allowed as an escape in orchestral strings
</simpara>
</listitem>
<listitem>
<simpara>
- New parser fixed on optional arguments
+ New parser fixed on optional arguments
</simpara>
</listitem>
<listitem>
<simpara>
- Better checking of <link linkend="f"><citetitle>f</citetitle></link> statement with negative number
+ Better checking of <link linkend="f"><citetitle>f</citetitle></link> statement with negative number
</simpara>
</listitem>
<listitem>
<simpara>
- Soundfonts only initialise pitches array once, in the
- soundfont opcodes.
+ Soundfonts only initialise pitches array once, in the
+ soundfont opcodes.
</simpara>
</listitem>
<listitem>
<simpara>
- Usual collection of gratuitous minor changes, layout and comments
+ Usual collection of gratuitous minor changes, layout and comments
</simpara>
</listitem>
</itemizedlist>
@@ -405,10 +2497,10 @@
</listitem>
<listitem>
<simpara>
- The new <link linkend="SignalFlowGraphOpcodes"><citetitle>Signal
- Flow opcodes </citetitle></link> enable the usage of
+ The new <link linkend="SignalFlowGraphOpcodes"><citetitle>Signal
+ Flow opcodes </citetitle></link> enable the usage of
signal flow graphs in Csound.
- </simpara>
+ </simpara>
</listitem>
</itemizedlist>
</para>
@@ -815,7 +2907,7 @@
<listitem><simpara>New HRTF opcodes by Brian Carty:<link linkend="hrtfmove"><citetitle>hrtfmove</citetitle></link>, <link linkend="hrtfmove2"><citetitle>hrtfmove2</citetitle></link> and <link linkend="hrtfstat"><citetitle>hrtfstat</citetitle></link>.</simpara>
</listitem>
<listitem><simpara>New waveshaping opcodes: <link linkend="powershape"><citetitle>powershape</citetitle></link>,
- <link linkend="polynomial"><citetitle>polynomial</citetitle></link>,
+ <link linkend="polynomial"><citetitle>polynomial</citetitle></link>,
<link linkend="chebyshevpoly"><citetitle>chebyshevpoly</citetitle></link>,
<link linkend="pdclip"><citetitle>pdclip</citetitle></link>,
<link linkend="pdhalf"><citetitle>pdhalf</citetitle></link>,
@@ -1049,7 +3141,7 @@
</listitem>
<listitem>
<para>
- Also from CsoundAV, many new FLTK widget opcodes:
+ Also from CsoundAV, many new FLTK widget opcodes:
<link linkend="FLkeyIn"><citetitle>FLkeyIn</citetitle></link>,
<link linkend="FLslidBnk2"><citetitle>FLslidBnk2</citetitle></link>,
<link linkend="FLvslidBnk"><citetitle>FLvslidBnk</citetitle></link>,
diff --git a/quickref.py b/quickref.py
index 4fb1985..bc05e91 100644
--- a/quickref.py
+++ b/quickref.py
@@ -115,14 +115,25 @@ for i,filename in enumerate(files):
entry = ''
#print file
source = open(filename, 'r')
- # Necessary to define entities
- newfile = headerText + source.read()
+ newfile = source.read()
source.close()
+
+ refStart = newfile.find("<refentry")
+
+ if(refStart < 0):
+ continue
+ elif(refStart > 0):
+# print 'Trimming file: ', filename, ' ', refStart
+ newfile = newfile[refStart:]
+
+ # Necessary to define entities
+ newfile = headerText + newfile
+
#print text
try:
xmldoc = minidom.parseString(newfile)
except:
- print '>>> Failed to parse:', newfile
+ print '>>> Failed to parse:',filename
continue
xmldocId = xmldoc.documentElement.getAttribute('id')
# Some files need special treatment (adds, dollar, divides, modulus, multiplies,
diff --git a/readme.txt b/readme.txt
index f98e5e8..b36eaa1 100644
--- a/readme.txt
+++ b/readme.txt
@@ -55,7 +55,7 @@ Use:
$ make html
Requires: Python (to generate the frames version, and to update the Quick
- Refrence)
+ Reference)
[PDF]
@@ -149,6 +149,13 @@ the Quick Reference. If no info tag is provided the opcode will appear in
5) If possible reference the opcode in the appropriate section in Section II of
the manual, and add the necessary cross references.
+6) For transforming the myOpcodeEntry.csd example file to myOpcodeEntry.csd.xml
+(in examples-xml), use the csd2docbook.py or csd2docbook2.py script. The former
+uses the Csound API for an opcode list, while the latter uses a file
+opcode_list.txt (which is similar to the result of the command 'csound -z').
+For instance: $ python csd2docbook2.py -f genarray_i.csd will create the file
+genarray_i.csd.xml from genarray_i.csd for use in the genarray_i opcode entry.
+
[FOR MAINTAINERS]---------------------------------------------------------------
There are several targets that prepare files for release. It is important to
remember to change the version number so that files and content are generated
@@ -170,4 +177,3 @@ as well as give you information on where it is in error.
Using a dedicated XML editor takes some of the pain out of editing the manual.
Something like emacs in sgml mode or Kate in XML mode are very helpful.
-
diff --git a/removed_opcodesXO.txt b/removed_opcodesXO.txt
deleted file mode 100644
index 4eebf72..0000000
--- a/removed_opcodesXO.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-ATSadd ATSaddnz ATSbufread ATScross
-ATSinfo ATSinterpread ATSpartialtap ATSread
-ATSreadnz ATSsinnoi FLbox FLbutBank
-FLbutton FLcloseButton FLcolor FLcolor2
-FLcount FLexecButton FLgetsnap FLgroup
-FLgroupEnd FLgroup_end FLhide FLhvsBox
-FLhvsBoxSetValue FLjoy FLkeyIn FLknob
-FLlabel FLloadsnap FLmouse FLpack
-FLpackEnd FLpack_end FLpanel FLpanelEnd
-FLpanel_end FLprintk FLprintk2 FLroller
-FLrun FLsavesnap FLscroll FLscrollEnd
-FLscroll_end FLsetAlign FLsetBox FLsetColor
-FLsetColor2 FLsetFont FLsetPosition FLsetSize
-FLsetSnapGroup FLsetText FLsetTextColor FLsetTextSize
-FLsetTextType FLsetVal FLsetVal_i FLsetVali
-FLsetsnap FLshow FLslidBnk FLslidBnk2
-FLslidBnk2Set FLslidBnk2Setk FLslidBnkGetHandle FLslidBnkSet
-FLslidBnkSetk FLslider FLtabs FLtabsEnd
-FLtabs_end FLtext FLupdate FLvalue
-FLvkeybd FLvslidBnk FLvslidBnk2 FLxyin
-babo bformdec bformenc button
-checkbox control flashtxt fluidAllOut
-fluidCCi fluidCCk fluidControl fluidEngine
-fluidLoad fluidNote fluidOut fluidProgramSelect
-hrtfer in32 inh ino
-inq inrg inx jack_transport
-oscilv out32 outh outo
-outq outq1 outq2 outq3
-outq4 outrg outx pyassign
-pyassigni pyassignt pycall pycall1
-pycall1i pycall1t pycall2 pycall2i
-pycall2t pycall3 pycall3i pycall3t
-pycall4 pycall4i pycall4t pycall5
-pycall5i pycall5t pycall6 pycall6i
-pycall6t pycall7 pycall7i pycall7t
-pycall8 pycall8i pycall8t pycalli
-pycalln pycallni pycallt pyeval
-pyevali pyevalt pyexec pyexeci
-pyexect pyinit pylassign pylassigni
-pylassignt pylcall pylcall1 pylcall1i
-pylcall1t pylcall2 pylcall2i pylcall2t
-pylcall3 pylcall3i pylcall3t pylcall4
-pylcall4i pylcall4t pylcall5 pylcall5i
-pylcall5t pylcall6 pylcall6i pylcall6t
-pylcall7 pylcall7i pylcall7t pylcall8
-pylcall8i pylcall8t pylcalli pylcalln
-pylcallni pylcallt pyleval pylevali
-pylevalt pylexec pylexeci pylexect
-pylrun pylruni pylrunt pyrun
-pyruni pyrunt setctrl spat3d
-spat3di spat3dt specaddm specdiff
-specdisp specfilt spechist specptrk
-specscal specsum spectrum vbap16
-vbap16move vbap4 vbap4move vbap8
-vbap8move vbaplsinit vbapz vbapzmove
-vstaudio vstaudiog vstbankload vstbanksave
-vstedit vstinfo vstinit vstmidiout
-vstnote vstnoteondur vstparamget vstparamset
-vstprogset vsttempo \ No newline at end of file
diff --git a/score/strings.xml b/score/strings.xml
index 7ca22a5..0ceeb84 100644
--- a/score/strings.xml
+++ b/score/strings.xml
@@ -7,9 +7,15 @@
<programlisting>
i 1 0 10 "A4"
</programlisting>
- The string can be received by the instrument and further processed using the <link linkend="StringsTop"><citetitle>string opcodes</citetitle></link>.
+ The string can be received by the instrument and further processed
+ using the <link linkend="StringsTop"><citetitle>string
+ opcodes</citetitle></link>.
</para>
<note>
- <para>Currently only one p-field can contain a string (i.e. no more tha one string per line is allowed). You can overcome this using <link linkend="strset"><citetitle>strset</citetitle></link> and <link linkend="strget"><citetitle>strget</citetitle></link>.</para>
+ <para>Currently only one p-field can contain a string (i.e. no
+ more than one string per line is allowed). You can overcome this
+ using <link linkend="strset"><citetitle>strset</citetitle></link>
+ and <link
+ linkend="strget"><citetitle>strget</citetitle></link>.</para>
</note>
</section>
diff --git a/scoregens/a.xml b/scoregens/a.xml
index 3dbaa1e..1e9b2c0 100644
--- a/scoregens/a.xml
+++ b/scoregens/a.xml
@@ -59,4 +59,16 @@
</para>
</refsect2>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the a statement. It uses the file <ulink url="examples/a.csd"><citetitle>a.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the a statement.</title>
+ <xi:include href="examples-xml/a.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
</refentry>
diff --git a/scoregens/b.xml b/scoregens/b.xml
index 5c6f81d..1b42741 100644
--- a/scoregens/b.xml
+++ b/scoregens/b.xml
@@ -37,26 +37,15 @@
</para>
</refsect2>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-<emphasis role="stamnt">i</emphasis>1 0 2
-<emphasis role="stamnt">i</emphasis>1 10 888
-
-<emphasis role="stamnt">b</emphasis> 5 <emphasis role="comment">; set the clock &quot;forward&quot;</emphasis>
-<emphasis role="stamnt">i</emphasis>2 1 1 440 <emphasis role="comment">; start time = 6</emphasis>
-<emphasis role="stamnt">i</emphasis>2 2 1 480 <emphasis role="comment">; start time = 7</emphasis>
-
-<emphasis role="stamnt">b</emphasis> -1 <emphasis role="comment">; set the clock back</emphasis>
-<emphasis role="stamnt">i</emphasis>3 3 2 3.1415 <emphasis role="comment">; start time = 2</emphasis>
-<emphasis role="stamnt">i</emphasis>3 5.5 1 1.1111 <emphasis role="comment">; start time = 4.5</emphasis>
-
-<emphasis role="stamnt">b</emphasis> 0 <emphasis role="comment">; reset clock to normal</emphasis>
-<emphasis role="stamnt">i</emphasis>4 10 200 7 <emphasis role="comment">; start time = 10</emphasis></programlisting>
- </informalexample>
+ Here is an example of the b statement. It uses the file <ulink url="examples/b.csd"><citetitle>b.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the b statement.</title>
+ <xi:include href="examples-xml/b.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
diff --git a/scoregens/e.xml b/scoregens/e.xml
index 3ea9745..c428af6 100644
--- a/scoregens/e.xml
+++ b/scoregens/e.xml
@@ -45,4 +45,16 @@
</para>
</refsect2>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the e statement. It uses the file <ulink url="examples/e.csd"><citetitle>e.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the e statement.</title>
+ <xi:include href="examples-xml/e.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
</refentry>
diff --git a/scoregens/gen01.xml b/scoregens/gen01.xml
index 5770a6b..7012bd1 100644
--- a/scoregens/gen01.xml
+++ b/scoregens/gen01.xml
@@ -70,6 +70,12 @@
If p4 is positive, the table will be post-normalized (rescaled to a maximum absolute value of 1 after generation). A negative p4 will cause rescaling to be skipped.
</para>
</listitem>
+
+ <listitem>
+ <para>
+ GEN01 also works with WAV and OGG and a dozen and more other sound formats; these file formats depend on libsndfile, see <ulink url="http://www.mega-nerd.com/libsndfile/"><citetitle>http://www.mega-nerd.com/libsndfile/</citetitle></ulink>
+ </para>
+ </listitem>
</itemizedlist>
</para>
</note>
@@ -78,45 +84,63 @@
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN01 routine. It uses the files <ulink url="examples/gen01.csd"><citetitle>gen01.csd</citetitle></ulink>, and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>. It uses the audio file <quote>beats.wav</quote>, here is its diagram:
+ Here is an example of the GEN01 routine. It uses the files <ulink url="examples/gen01.csd"><citetitle>gen01.csd</citetitle></ulink> and several sound files.
+ <example>
+ <title>An example of the GEN01 routine.</title>
+ <xi:include href="examples-xml/gen01.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN01 routines, as used in the example:</phrase>
+ </textobject>
+
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen01.png" format="PNG"/>
+ <imagedata fileref="images/gen01_1.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN01.</phrase>
+ <phrase>f 1 0 131072 1 "beats.wav" 0 0 0 - non-deferred sound</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN01.</para>
+ <para>f 1 0 131072 1 "beats.wav" 0 0 0 - non-deferred sound</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN01 routine.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen01_2.png" format="PNG"/>
+ </imageobject>
- <xi:include href="examples-xml/gen01.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <textobject>
+ <phrase>f 2 0 0 1 "flute.aiff" 0 0 0 - deferred sound</phrase>
+ </textobject>
- </example>
- </para>
+ <caption>
+ <para>f 2 0 0 1 "flute.aiff" 0 0 0 - deferred sound</para>
+ </caption>
+ </mediaobject>
- <para>
- Here is another example of the GEN01 routine. Csound will automatically compute the tablesize because we have set it to 0. This example uses the files <ulink url="examples/gen01computed.csd"><citetitle>gen01computed.csd</citetitle></ulink>, and <ulink url="examples/beats.wav"><citetitle>beats.wav</citetitle></ulink>.
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen01_3.png" format="PNG"/>
+ </imageobject>
- <example>
- <title>An example of the GEN01 routine with a computed tablesize.</title>
+ <textobject>
+ <phrase>f 3 0 0 1 "beats.ogg" 0 0 0 - deferred sound</phrase>
+ </textobject>
- <xi:include href="examples-xml/gen01computed.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <caption>
+ <para>f 3 0 0 1 "beats.ogg" 0 0 0 - deferred sound</para>
+ </caption>
+ </mediaobject>
- </example>
</para>
</refsect1>
<refsect1>
<title>Credits</title>
- <para>Examples written by &namekevin;</para>
- <para>December 2002. Thanks goes to Kanata Motohashi for fixing mistakes in the examples.</para>
- <para>September 2003. Thanks goes to Dr. Richard Boulanger for pointing out the references to the AIFF file format. GEN01 also works with WAV files.</para>
+ <para>September 2003. Thanks goes to Dr. Richard Boulanger for pointing out the references to the AIFF file format.</para>
</refsect1>
</refentry>
diff --git a/scoregens/gen02.xml b/scoregens/gen02.xml
index 374a882..282403f 100644
--- a/scoregens/gen02.xml
+++ b/scoregens/gen02.xml
@@ -49,27 +49,60 @@
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN02 routine. It uses the files <ulink url="examples/gen02.csd"><citetitle>gen02.csd</citetitle></ulink>. It places 12 values plus an explicit wrap-around guard value into a table of size next-highest power of 2. Rescaling is inhibited. Here is its diagram:
+ Here is an example of the GEN02 routine. It uses the files <ulink url="examples/gen02.csd"><citetitle>gen02.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the GEN02 routine.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen02.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN02 routines, as used in the example:</phrase>
+ </textobject>
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen02.png" format="PNG"/>
+ <imagedata fileref="images/gen02_1.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN02.</phrase>
+ <phrase>f 2 0 5 2 0 2 0</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN02.</para>
+ <para>f 2 0 5 2 0 2 0</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN02 routine.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen02_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 3 0 5 2 0 2 10 0</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 3 0 5 2 0 2 10 0</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen02_3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 4 0 9 2 0 2 10 100 0</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 4 0 9 2 0 2 10 100 0</para>
+ </caption>
+ </mediaobject>
- <xi:include href="examples-xml/gen02.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
</para>
</refsect1>
diff --git a/scoregens/gen03.xml b/scoregens/gen03.xml
index fbc1d17..e17fc3a 100644
--- a/scoregens/gen03.xml
+++ b/scoregens/gen03.xml
@@ -68,31 +68,89 @@
</note>
</refsect1>
- <refsect1>
+ <refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN03 routine. It uses the files <ulink url="examples/gen03.csd"><citetitle>gen03.csd</citetitle></ulink>. It fills a table with a 4th order polynomial function over the x-interval -1 to 1. The origin will be at the offset position 512. The function is post-normalized. Here is its diagram:
+ Here is an example of the GEN03 opcode. It uses the file <ulink url="examples/gen03.csd"><citetitle>gen03.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN03 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen03.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN03 routines, as used in the example:</phrase>
+ </textobject>
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen03.png" format="PNG"/>
+ <imagedata fileref="images/gen03_1.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN03.</phrase>
+ <phrase>f4 0 513 3 1 1 0 1 - first-order Chebyshev: x</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN03.</para>
+ <para>f4 0 513 3 1 1 0 1 - first-order Chebyshev: x</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN03 routine.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen03_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f6 0 513 3 -1 1 -1 0 2 - second-order Chebyshev: 2x2 - 1</phrase>
+ </textobject>
- <xi:include href="examples-xml/gen03.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <caption>
+ <para>f6 0 513 3 -1 1 -1 0 2 - second-order Chebyshev: 2x2 - 1</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen03_3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f8 0 513 3 -1 1 0 -3 0 4 - third-order Chebyshev: 4x3 - 3x</phrase>
+ </textobject>
+
+ <caption>
+ <para>f8 0 513 3 -1 1 0 -3 0 4 - third-order Chebyshev: 4x3 - 3x</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen03_4.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f10 0 513 3 -1 10 0 -7 0 56 0 -112 0 64 - seventh-order Chebyshev: 64x7 - 112x5 + 56x3 - 7x</phrase>
+ </textobject>
+
+ <caption>
+ <para>f10 0 513 3 -1 10 0 -7 0 56 0 -112 0 64 - seventh-order Chebyshev: 64x7 - 112x5 + 56x3 - 7x</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen03_5.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f12 0 513 3 -1 1 5 4 3 2 2 1 - a 4th order polynomial function over the x-interval -1 to 1</phrase>
+ </textobject>
+
+ <caption>
+ <para>f12 0 513 3 -1 1 5 4 3 2 2 1 - a 4th order polynomial function over the x-interval -1 to 1</para>
+ </caption>
+ </mediaobject>
- </example>
</para>
</refsect1>
@@ -102,6 +160,7 @@
<link linkend="GEN13"><citetitle>GEN13</citetitle></link>,
<link linkend="GEN14"><citetitle>GEN14</citetitle></link>, and
<link linkend="GEN15"><citetitle>GEN15</citetitle></link>.
+ <para> Information about the Chebyshev polynomials on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Chebyshev_polynomials"><citetitle>http://en.wikipedia.org/wiki/Chebyshev_polynomials</citetitle></ulink></para>
</para>
</refsect1>
</refentry>
diff --git a/scoregens/gen04.xml b/scoregens/gen04.xml
index 2c1c4ed..fd9a5a6 100644
--- a/scoregens/gen04.xml
+++ b/scoregens/gen04.xml
@@ -63,15 +63,76 @@
</para>
</note>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting><emphasis role="stamnt">f</emphasis> 2 0 512 4 1 1</programlisting>
- </informalexample>
+ Here is a simple example of the GEN04 routine. It uses the files <ulink url="examples/gen04.csd"><citetitle>gen04.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN04 routine.</title>
+ <xi:include href="examples-xml/gen04.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN04 routines, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen04_1.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f1 0 64 21 6 - Gaussian (random) distribution</phrase>
+ </textobject>
+
+ <caption>
+ <para>f1 0 64 21 6 - Gaussian (random) distribution</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen04_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f2 0 33 4 1 1 - AND its normalizing function with midpoint bipolar offset</phrase>
+ </textobject>
+
+ <caption>
+ <para>f2 0 33 4 1 1 - AND its normalizing function with midpoint bipolar offset</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen04_3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f3 0 1025 13 1 1 0 5 0 5 0 10 - Chebyshev algorithm</phrase>
+ </textobject>
+
+ <caption>
+ <para>f3 0 1025 13 1 1 0 5 0 5 0 10 - Chebyshev algorithm</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen04_4.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f4 0 513 4 3 1 - AND its normalizing function with midpoint bipolar offset</phrase>
+ </textobject>
+
+ <caption>
+ <para>f4 0 513 4 3 1 - AND its normalizing function with midpoint bipolar offset</para>
+ </caption>
+ </mediaobject>
- This creates a normalizing function for use in connection with the <link linkend="GEN03"><citetitle>GEN03</citetitle></link> table 1 example. Midpoint bipolar offset is specified.
</para>
</refsect1>
</refentry>
diff --git a/scoregens/gen05.xml b/scoregens/gen05.xml
index 5627c51..96fe511 100644
--- a/scoregens/gen05.xml
+++ b/scoregens/gen05.xml
@@ -35,7 +35,7 @@
</para>
<para>
- <emphasis>n1, n2</emphasis>, etc. -- length of segment (no. of storage locations), in even-numbered pfields. Cannot be negative, but a zero is meaningful for specifying discontinuous waveforms (e.g. in the example below). The sum <emphasis>n1</emphasis> + <emphasis>n2</emphasis> + .... will normally equal <emphasis>size</emphasis> for fully specified functions. If the sum is smaller, the function locations not included will be set to zero; if the sum is greater, only the first <emphasis>size</emphasis> locations will be stored.
+ <emphasis>n1, n2</emphasis>, etc. -- length of segment (no. of storage locations), in even-numbered pfields. Cannot be negative, but a zero is meaningful for specifying discontinuous waveforms. The sum <emphasis>n1</emphasis> + <emphasis>n2</emphasis> + .... will normally equal <emphasis>size</emphasis> for fully specified functions. If the sum is smaller, the function locations not included will be set to zero; if the sum is greater, only the first <emphasis>size</emphasis> locations will be stored.
</para>
<note>
@@ -61,28 +61,44 @@
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN05 routine. It uses the files <ulink url="examples/gen05.csd"><citetitle>gen05.csd</citetitle></ulink>. It will create a nice percussive amplitude envelope. Here is its diagram:
+ Here is a simple example of the GEN05 routine. It uses the files <ulink url="examples/gen05.csd"><citetitle>gen05.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN05 routine.</title>
+ <xi:include href="examples-xml/gen05.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN05 routines, as used in the example:</phrase>
+ </textobject>
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen05.png" format="PNG"/>
+ <imagedata fileref="images/gen05_1.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN05.</phrase>
+ <phrase>f 2 0 129 5 1 100 0.0001 29 - waveform that goes over 100 points from 1 to 0.0001, stay there for 29 points</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN05.</para>
+ <para>f 2 0 129 5 1 100 0.0001 29 - waveform that goes over 100 points from 1 to 0.0001, stay there for 29 points</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN05 routine.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen05_2.png" format="PNG"/>
+ </imageobject>
- <xi:include href="examples-xml/gen05.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <textobject>
+ <phrase>f 3 0 129 5 0.00001 87 1 22 .5 20 0.0001 - waveform that goes from 0.00001 to 1 in 87 points, then from 1 to .5 in 22 points and then from .5 to 0.0001 in 20 points</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 3 0 129 5 0.00001 87 1 22 .5 20 0.0001 - waveform that goes from 0.00001 to 1 in 87 points, then from 1 to .5 in 22 points and then from .5 to 0.0001 in 20 points</para>
+ </caption>
+ </mediaobject>
- </example>
</para>
</refsect1>
@@ -95,8 +111,4 @@
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;</para>
- </refsect1>
</refentry>
diff --git a/scoregens/gen06.xml b/scoregens/gen06.xml
index aef0a8c..c2e7459 100644
--- a/scoregens/gen06.xml
+++ b/scoregens/gen06.xml
@@ -49,34 +49,52 @@
</para>
</note>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN06 routine. It uses the files <ulink url="examples/gen06.csd"><citetitle>gen06.csd</citetitle></ulink>. It creates a curve running 0 to 1 to -1, with a minimum, maximum and minimum at these values respectively. Inflexions are at .5 and 0 and are relatively smooth. Here is its diagram:
+ Here is an example of the GEN06 routine. It uses the files <ulink url="examples/gen06.csd"><citetitle>gen06.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN06 routine.</title>
+ <xi:include href="examples-xml/gen06.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN06 routines, as used in the example:</phrase>
+ </textobject>
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen06.png" format="PNG"/>
+ <imagedata fileref="images/gen06_1.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN06.</phrase>
+ <phrase>f 2 0 513 6 1 128 -1 128 1 64 -.5 64 .5 16 -.5 8 1 16 -.5 8 1 16 -.5 84 1 16 -.5 8 .1 16 -.1 17 0 - a not-so-smooth curve</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN06.</para>
+ <para>f 2 0 513 6 1 128 -1 128 1 64 -.5 64 .5 16 -.5 8 1 16 -.5 8 1 16 -.5 84 1 16 -.5 8 .1 16 -.1 17 0 - a not-so-smooth curve</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN06 routine.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen06_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 3 0 513 6 0 128 0.5 128 1 128 0 129 -1 - a curve running 0 to 1 to -1, with a minimum, maximum and minimum at these values respectively. Inflexions are at .5 and 0 and are relatively smooth</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 3 0 513 6 0 128 0.5 128 1 128 0 129 -1 - a curve running 0 to 1 to -1, with a minimum, maximum and minimum at these values respectively. Inflexions are at .5 and 0 and are relatively smooth</para>
+ </caption>
+ </mediaobject>
- <xi:include href="examples-xml/gen06.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
</para>
</refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/scoregens/gen07.xml b/scoregens/gen07.xml
index a688fb5..5186305 100644
--- a/scoregens/gen07.xml
+++ b/scoregens/gen07.xml
@@ -61,28 +61,58 @@
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN07 routine. It uses the file <ulink url="examples/gen07.csd"><citetitle>gen07.csd</citetitle></ulink>. It will create a single-cycle sawtooth whose discontinuity is mid-way in the stored function. Here is its diagram:
+ Here is an example of the GEN07 routine. It uses the files <ulink url="examples/gen07.csd"><citetitle>gen07.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN07 routine.</title>
+ <xi:include href="examples-xml/gen07.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN07 routines, as used in the example:</phrase>
+ </textobject>
+
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen07.png" format="PNG"/>
+ <imagedata fileref="images/gen07_1.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN07.</phrase>
+ <phrase>f 2 0 1024 7 0 512 1 0 -1 512 0 - sawtooth up and down, starting and ending at 0</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN07.</para>
+ <para>f 2 0 1024 7 0 512 1 0 -1 512 0 - sawtooth up and down, starting and ending at 0</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen07_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 3 0 1024 7 1 512 1 0 -1 512 -1 - a square from positive to negative</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 3 0 1024 7 1 512 1 0 -1 512 -1 - a square from positive to negative</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen07_3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 4 0 1024 7 1 1024 -1 - sawtooth down, a straight line from positive to negative</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 4 0 1024 7 1 1024 -1 - sawtooth down, a straight line from positive to negative</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN07 routine.</title>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.
- </para>
- <xi:include href="examples-xml/gen07.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
</para>
</refsect1>
diff --git a/scoregens/gen08.xml b/scoregens/gen08.xml
index 5a2d600..199a8c2 100644
--- a/scoregens/gen08.xml
+++ b/scoregens/gen08.xml
@@ -61,30 +61,48 @@
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN08 routine. It uses the file <ulink url="examples/gen08.csd"><citetitle>gen08.csd</citetitle></ulink>. It will create a curve with a smooth hump in the middle, going briefly negative outside the hump then flat at its ends. Here is its diagram:
+ Here is an example of the GEN08 routine. It uses the files <ulink url="examples/gen08.csd"><citetitle>gen08.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN08 routine.</title>
+ <xi:include href="examples-xml/gen08.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN08 routines, as used in the example:</phrase>
+ </textobject>
+
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen08.png" format="PNG"/>
+ <imagedata fileref="images/gen08_1.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN08.</phrase>
+ <phrase>f 2 0 65 8 0 16 1 16 1 16 0 17 0 - a curve with a smooth hump in the middle, going briefly negative outside the hump then flat at its ends</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN08.</para>
+ <para>f 2 0 65 8 0 16 1 16 1 16 0 17 0 - a curve with a smooth hump in the middle, going briefly negative outside the hump then flat at its ends</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen08_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 3 0 65 8 -1 32 1 2 0 14 0 17 0 - from a negative value,a curve with a smooth hump, going negative creating a small hump then flat at its ends</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 3 0 65 8 -1 32 1 2 0 14 0 17 0 - from a negative value,a curve with a smooth hump, going negative creating a small hump then flat at its ends</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN08 routine.</title>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
- <xi:include href="examples-xml/gen08.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
</para>
</refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/scoregens/gen09.xml b/scoregens/gen09.xml
index c59e757..adef75f 100644
--- a/scoregens/gen09.xml
+++ b/scoregens/gen09.xml
@@ -63,51 +63,74 @@
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN09 routine. It uses the file <ulink url="examples/gen09.csd"><citetitle>gen09.csd</citetitle></ulink>. It will generate a cosine wave, a sine wave with an initial phase of 90 degrees. Here is its diagram:
+ Here is an example of the GEN09 routine. It uses the files <ulink url="examples/gen09.csd"><citetitle>gen09.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the GEN09 routine.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen09.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN09 routines, as used in the example:</phrase>
+ </textobject>
+
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen09.png" format="PNG"/>
+ <imagedata fileref="images/gen09_1.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN09.</phrase>
+ <phrase>gi1 ftgen 1,0,2^10,9, 1,3,0, 3,1,0, 9,0.333,180 - approximation of a square wave</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN09.</para>
+ <para>gi1 ftgen 1,0,2^10,9, 1,3,0, 3,1,0, 9,0.333,180 - approximation of a square wave</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN09 routine.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen09_2.png" format="PNG"/>
+ </imageobject>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.
- </para>
- <xi:include href="examples-xml/gen09.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
- </para>
+ <textobject>
+ <phrase>gi2 ftgen 2,0,2^10,9, 1,3,180, 3,1,0, 9,0.333,0 - same values as gi1, except phase value</phrase>
+ </textobject>
+
+ <caption>
+ <para>gi2 ftgen 2,0,2^10,9, 1,3,180, 3,1,0, 9,0.333,0 - same values as gi1, except phase value</para>
+ </caption>
+ </mediaobject>
- <para>
- Here is another example of the GEN09 routine. It uses the file <ulink url="examples/gen09square.csd"><citetitle>gen09square.csd</citetitle></ulink>. It combines partials l, 3 and 9 in the relative strengths in which they are found in a square wave, except that partial 9 is upside down. It will be rescaled, here is its diagram:
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen09square.png" format="PNG"/>
+ <imagedata fileref="images/gen09_3.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN09.</phrase>
+ <phrase>gi3 ftgen 3,0,2^10,9, 1,2,0, 3,2,0, 9,0.333,180 - inharmonic partials, but with distortion due to the sudden jump in ending and beginning of the wave</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN09.</para>
+ <para>gi3 ftgen 3,0,2^10,9, 1,2,0, 3,2,0, 9,0.333,180 - inharmonic partials, but with distortion due to the sudden jump in ending and beginning of the wave</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen09_4.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>gi4 ftgen 4,0,2^10,9, 1,2,180, 3,2,0, 9,0.333,0 - same ratio as gi3, except with less artefacts</phrase>
+ </textobject>
+
+ <caption>
+ <para>gi4 ftgen 4,0,2^10,9, 1,2,180, 3,2,0, 9,0.333,0 - same ratio as gi3, except with less artefacts</para>
</caption>
</mediaobject>
- <example>
- <title>A square wave generated by the GEN09 routine.</title>
- <xi:include href="examples-xml/gen09square.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
</para>
</refsect1>
@@ -119,8 +142,4 @@
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>The simple example was written by &namekevin;.</para>
- </refsect1>
</refentry>
diff --git a/scoregens/gen10.xml b/scoregens/gen10.xml
index d75188f..8fa5403 100644
--- a/scoregens/gen10.xml
+++ b/scoregens/gen10.xml
@@ -55,28 +55,71 @@
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN10 routine. It uses the file <ulink url="examples/gen10.csd"><citetitle>gen10.csd</citetitle></ulink>. It will generate a simple sine wave. Here is its diagram:
+ Here is an example of the GEN10 routine. It uses the files <ulink url="examples/gen10.csd"><citetitle>gen10.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN10 routine.</title>
+ <xi:include href="examples-xml/gen10.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN10 routines, as used in the example:</phrase>
+ </textobject>
+
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen10.png" format="PNG"/>
+ <imagedata fileref="images/gen10_1.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN10.</phrase>
+ <phrase>f 1 0 16384 10 1 - sine wave with only the fundamental frequency</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN10.</para>
+ <para>f 1 0 16384 10 1 - sine wave with only the fundamental frequency</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN10 routine.</title>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.
- </para>
- <xi:include href="examples-xml/gen10.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen10_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 2 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 - sawtooth, with a fundamental and 8 harmonics </phrase>
+ </textobject>
+
+ <caption>
+ <para>f 2 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 - sawtooth, with a fundamental and 8 harmonics </para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen10_3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 3 0 16384 10 1 0 0.3 0 0.2 0 0.14 0 .111 - square wave, with a fundamental and 8 harmonics but 4 have 0 strength</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 3 0 16384 10 1 0 0.3 0 0.2 0 0.14 0 .111 - square wave, with a fundamental and 8 harmonics but 4 have 0 strength</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen10_4.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 4 0 16384 10 1 1 1 1 0.7 0.5 0.3 0.1 - pulse wave, with a fundamental and 8 harmonics</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 4 0 16384 10 1 1 1 1 0.7 0.5 0.3 0.1 - pulse wave, with a fundamental and 8 harmonics</para>
+ </caption>
+ </mediaobject>
</para>
</refsect1>
@@ -89,8 +132,4 @@
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;</para>
- </refsect1>
</refentry>
diff --git a/scoregens/gen11.xml b/scoregens/gen11.xml
index f09e4dd..9127421 100644
--- a/scoregens/gen11.xml
+++ b/scoregens/gen11.xml
@@ -65,28 +65,58 @@
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN11 routine. It uses the file <ulink url="examples/gen11.csd"><citetitle>gen11.csd</citetitle></ulink>. It will generate a simple cosine wave. Here is its diagram:
+ Here is an example of the GEN11 routine. It uses the files <ulink url="examples/gen01.csd"><citetitle>gen11.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN11 routine.</title>
+ <xi:include href="examples-xml/gen11.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN11 routines, as used in the example:</phrase>
+ </textobject>
+
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen11.png" format="PNG"/>
+ <imagedata fileref="images/gen11_1.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN11.</phrase>
+ <phrase>f 1 0 16384 11 1 1</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN11.</para>
+ <para>f 1 0 16384 11 1 1</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen11_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 2 0 16384 11 10 1 .7</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 2 0 16384 11 10 1 .7</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen11_3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 3 0 16384 11 10 5 2</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 3 0 16384 11 10 5 2</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN11 routine.</title>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.
- </para>
- <xi:include href="examples-xml/gen11.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
</para>
</refsect1>
@@ -97,8 +127,4 @@
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;</para>
- </refsect1>
</refentry>
diff --git a/scoregens/gen12.xml b/scoregens/gen12.xml
index 688e197..34327b1 100644
--- a/scoregens/gen12.xml
+++ b/scoregens/gen12.xml
@@ -53,11 +53,19 @@
</para>
</note>
</refsect1>
-
- <refsect1>
+
+ <refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN12 routine. It uses the file <ulink url="examples/gen12.csd"><citetitle>gen12.csd</citetitle></ulink>. It generates the function <emphasis>ln</emphasis>(<emphasis>I<subscript>0</subscript></emphasis>(<emphasis>x</emphasis>)) from 0 to 20. Here is its diagram:
+ Here is an example of the GEN12 opcode. It uses the file <ulink url="examples/gen12.csd"><citetitle>gen12.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN12 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen12.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>This is the diagram of the waveform of the GEN12 routines, as used in the example:</phrase>
+ </textobject>
<mediaobject>
<imageobject>
@@ -65,26 +73,21 @@
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN12.</phrase>
+ <phrase>f 37 0 1024 -12 40 - Bessel function-defined from 0 to 40</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN12.</para>
+ <para>f 37 0 1024 -12 40 - Bessel function-defined from 0 to 40</para>
</caption>
</mediaobject>
-
- <example>
- <title>A simple example of the GEN12 routine.</title>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.
- </para>
- <xi:include href="examples-xml/gen12.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
+
</para>
</refsect1>
-
+
<refsect1>
<title>Credits</title>
- <para>Example written by &namekevin;</para>
+ <para>
+ Example is, with minor modifications, taken from The Csound Book (page 87).
+ </para>
</refsect1>
</refentry>
diff --git a/scoregens/gen13.xml b/scoregens/gen13.xml
index b888dce..e4b98d6 100644
--- a/scoregens/gen13.xml
+++ b/scoregens/gen13.xml
@@ -52,33 +52,118 @@ xamp * int(size/2)/xint
<emphasis>GEN13</emphasis> is the function generator normally employed in standard waveshaping. It stores a polynomial whose coefficients derive from the Chebyshev polynomials of the first kind, so that a driving sinusoid of strength <emphasis>xamp</emphasis> will exhibit the specified spectrum at output. Note that the evolution of this spectrum is generally not linear with varying <emphasis>xamp</emphasis>. However, it is bandlimited (the only partials to appear will be those specified at generation time); and the partials will tend to occur and to develop in ascending order (the lower partials dominating at low <emphasis>xamp</emphasis>, and the spectral richness increasing for higher values of <emphasis>xamp</emphasis>). A negative <emphasis>hn</emphasis> value implies a 180 degree phase shift of that partial; the requested full-amplitude spectrum will not be affected by this shift, although the evolution of several of its component partials may be. The pattern +,+,-,-,+,+,... for <emphasis>h0,h1,h2..</emphasis>. will minimize the normalization problem for low <emphasis>xamp</emphasis> values (see above), but does not necessarily provide the smoothest pattern of evolution.
</para>
</refsect1>
-
- <refsect1>
+
+ <refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN13 routine. It uses the file <ulink url="examples/gen13.csd"><citetitle>gen13.csd</citetitle></ulink>. It creates a function which, under waveshaping, will split a sinusoid into 3 odd-harmonic partials of relative strength 5:3:1. Here is its diagram:
+ Here is an example of the GEN13 opcode. It uses the file <ulink url="examples/gen13.csd"><citetitle>gen13.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN13 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen13.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN13 routines, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen13_1.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f1 0 513 13 1 1 0 100 -50 -33 25 20 -16.7 -14.2 12.5 11.1 -10 -9.09 8.333 7.69 -7.14 -6.67 6.25 5.88 -5.55 -5.26 5 - quasi sawtooth transfer function</phrase>
+ </textobject>
+
+ <caption>
+ <para>f1 0 513 13 1 1 0 100 -50 -33 25 20 -16.7 -14.2 12.5 11.1 -10 -9.09 8.333 7.69 -7.14 -6.67 6.25 5.88 -5.55 -5.26 5 - quasi sawtooth transfer function</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen13_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f3 0 513 13 1 1 0 100 0 -33 0 20 0 -14.2 0 11.1 0 -9.09 0 7.69 0 -6.67 0 5.88 0 -5.26 - quasi square wave transfer function</phrase>
+ </textobject>
+
+ <caption>
+ <para>f3 0 513 13 1 1 0 100 0 -33 0 20 0 -14.2 0 11.1 0 -9.09 0 7.69 0 -6.67 0 5.88 0 -5.26 - quasi square wave transfer function</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen13_3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f5 0 513 13 1 1 0 100 0 -11.11 0 4 0 -2.04 0 1.23 0 -.826 0 .59 0 -.444 0 .346 0 -.277 - quasi triangle wave transfer function</phrase>
+ </textobject>
+
+ <caption>
+ <para>f5 0 513 13 1 1 0 100 0 -11.11 0 4 0 -2.04 0 1.23 0 -.826 0 .59 0 -.444 0 .346 0 -.277 - quasi triangle wave transfer function</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen13_4.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f7 0 513 13 1 1 0 1 -.8 0 .6 0 0 0 .4 0 0 0 0 .1 -.2 -.3 .5 - transfer function 1</phrase>
+ </textobject>
+
+ <caption>
+ <para>f7 0 513 13 1 1 0 1 -.8 0 .6 0 0 0 .4 0 0 0 0 .1 -.2 -.3 .5 - transfer function 1</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen13_5.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f9 0 513 13 1 1 0 0 0 -.1 0 .3 0 -.5 0 .7 0 -.9 0 1 0 -1 0 - transfer function 2</phrase>
+ </textobject>
+
+ <caption>
+ <para>f9 0 513 13 1 1 0 0 0 -.1 0 .3 0 -.5 0 .7 0 -.9 0 1 0 -1 0 - transfer function 2</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen13_6.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f11 0 513 13 1 1 0 0 0 0 0 0 0 -1 0 1 0 0 -.1 0 .1 0 -.2 .3 0 -.7 0 .2 0 -.1 - transfer function 3</phrase>
+ </textobject>
+
+ <caption>
+ <para>f11 0 513 13 1 1 0 0 0 0 0 0 0 -1 0 1 0 0 -.1 0 .1 0 -.2 .3 0 -.7 0 .2 0 -.1 - transfer function 3</para>
+ </caption>
+ </mediaobject>
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen13.png" format="PNG"/>
+ <imagedata fileref="images/gen13_7.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN13.</phrase>
+ <phrase>f13 0 513 13 1 1 0 5 0 3 0 1 - split a sinusoid into 3 odd-harmonic partials of relative strength 5:3:1</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN13.</para>
+ <para>f13 0 513 13 1 1 0 5 0 3 0 1 - split a sinusoid into 3 odd-harmonic partials of relative strength 5:3:1</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN13 routine.</title>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.
- </para>
- <xi:include href="examples-xml/gen13.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
</para>
</refsect1>
@@ -88,6 +173,7 @@ xamp * int(size/2)/xint
<link linkend="GEN03"><citetitle>GEN03</citetitle></link>,
<link linkend="GEN14"><citetitle>GEN14</citetitle></link>, and
<link linkend="GEN15"><citetitle>GEN15</citetitle></link>.
+ <para> Information about the Chebyshev polynomials on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Chebyshev_polynomials"><citetitle>http://en.wikipedia.org/wiki/Chebyshev_polynomials</citetitle></ulink></para>
</para>
</refsect1>
</refentry>
diff --git a/scoregens/gen14.xml b/scoregens/gen14.xml
index 4856632..8b63026 100644
--- a/scoregens/gen14.xml
+++ b/scoregens/gen14.xml
@@ -67,47 +67,87 @@ xamp * int(size/2)/xint
</para>
</note>
</refsect1>
-
- <refsect1>
+
+ <refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN14 routine. It uses the file <ulink url="examples/gen14.csd"><citetitle>gen14.csd</citetitle></ulink>. It creates a function which, under waveshaping, will split a sinusoid into 3 odd-harmonic partials of relative strength 5:3:1. Here is its diagram:
+ Here is an example of the GEN14 opcode. It uses the file <ulink url="examples/gen14.csd"><citetitle>gen14.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN14 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen14.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN14 routines, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen14_1.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f28 0 4097 13 1 1 1 0 .8 0 .5 0 .2 - waveshaping function: GEN13, odd harmonics</phrase>
+ </textobject>
+
+ <caption>
+ <para>f28 0 4097 13 1 1 1 0 .8 0 .5 0 .2 - waveshaping function: GEN13, odd harmonics</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen14_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f29 0 4097 14 1 1 1 0 .8 0 .5 0 .2 - waveshaping function: GEN14, the same odd harmonics</phrase>
+ </textobject>
+
+ <caption>
+ <para>f29 0 4097 14 1 1 1 0 .8 0 .5 0 .2 - waveshaping function: GEN14, the same odd harmonics</para>
+ </caption>
+ </mediaobject>
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen14.png" format="PNG"/>
+ <imagedata fileref="images/gen14_3.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN14.</phrase>
+ <phrase>f30 0 4097 13 1 1 0 1 0 .6 0 .4 0 .1 - waveshaping function: GEN13, even harmonics</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN14.</para>
+ <para>f30 0 4097 13 1 1 0 1 0 .6 0 .4 0 .1 - waveshaping function: GEN13, even harmonics</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen14_4.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f31 0 4097 14 1 1 0 1 0 .6 0 .4 0 .1 - waveshaping function: GEN14, the same even harmonics</phrase>
+ </textobject>
+
+ <caption>
+ <para>f31 0 4097 14 1 1 0 1 0 .6 0 .4 0 .1 - waveshaping function: GEN14, the same even harmonics</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN14 routine.</title>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.
- </para>
- <xi:include href="examples-xml/gen14.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
</para>
</refsect1>
+
<refsect1>
<title>See Also</title>
<para>
<link linkend="GEN03"><citetitle>GEN03</citetitle></link>,
<link linkend="GEN13"><citetitle>GEN13</citetitle></link>, and
<link linkend="GEN15"><citetitle>GEN15</citetitle></link>.
+ <para> Information about the Chebyshev polynomials on Wikipedia: <ulink url="http://en.wikipedia.org/wiki/Chebyshev_polynomials"><citetitle>http://en.wikipedia.org/wiki/Chebyshev_polynomials</citetitle></ulink></para>
</para>
</refsect1>
-
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;</para>
- </refsect1>
</refentry>
diff --git a/scoregens/gen15.xml b/scoregens/gen15.xml
index e97d8d1..c3bd263 100644
--- a/scoregens/gen15.xml
+++ b/scoregens/gen15.xml
@@ -53,17 +53,109 @@ xamp * int(size/2)/xint
</para>
<note>
- <title>Note</title>
+ <title>Notes</title>
<para>
- <emphasis>GEN15</emphasis> creates two tables of equal size, labeled <emphasis>f </emphasis># and <emphasis>f</emphasis> # + 1. Table # will contain a Chebyshev function of the first kind, drawn using <link linkend="GEN03"><citetitle>GEN03</citetitle></link> with partial strengths <emphasis>h0cos(phs0), h1cos(phs1), ...</emphasis> Table #+1 will contain a Chebyshev function of the 2nd kind by calling <link linkend="GEN14"><citetitle>GEN14</citetitle></link> with partials <emphasis>h1sin(phs1), h2sin(phs2),...</emphasis> (note the harmonic displacement). The two tables can be used in conjunction in a waveshaping network that exploits phase quadrature.
+ <emphasis>GEN15</emphasis> creates two tables of equal size, labeled <emphasis>f </emphasis># and <emphasis>f</emphasis> # + 1. Table # will contain a Chebyshev function of the first kind, drawn using <link linkend="GEN13"><citetitle>GEN13</citetitle></link> with partial strengths <emphasis>h0cos(phs0), h1cos(phs1), ...</emphasis> Table #+1 will contain a Chebyshev function of the 2nd kind by calling <link linkend="GEN14"><citetitle>GEN14</citetitle></link> with partials <emphasis>h1sin(phs1), h2sin(phs2),...</emphasis> (note the harmonic displacement). The two tables can be used in conjunction in a waveshaping network that exploits phase quadrature.
+ </para>
+ <para>
+ Before version 5.16 there was a bug (pointed out by Menno Knevel and fixed
+ by &namepinot;) on the number of pfields transmitted to gen13 and gen14 by
+ gen15. The consequence is that all the csd, or orc and sco files that used
+ gen15 before this bug was fixed, are likely to sound different now.
</para>
</note>
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the GEN15 routine. It uses the files <ulink url="examples/gen15.csd"><citetitle>gen15.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN15 routine.</title>
+ <xi:include href="examples-xml/gen15.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN15 routine, as used in the example
+ (in each diagram, the curve in blue is for ftable 33 and the curve in green is for
+ table 34):</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen15-1.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 33 0 8193 -15 1 1 1 0 1 180 .8 45 .6 270 .5 90 .4 225 .2 135 .1 315</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 33 0 8193 -15 1 1 1 0 1 180 .8 45 .6 270 .5 90 .4 225 .2 135 .1 315</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen15-2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 33 0 8193 -15 1 1 1 0 1 0 1 180 1 180 1 0 1 0 1 180 1 180 1 0 1 0 1 180 1 180</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 33 0 8193 -15 1 1 1 0 1 0 1 180 1 180 1 0 1 0 1 180 1 180 1 0 1 0 1 180 1 180</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen15-3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 33 0 8193 -15 1 1 1 0 1 0 .9 180 .5 270 .75 90 .4 45 .2 225 .1 0</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 33 0 8193 -15 1 1 1 0 1 0 .9 180 .5 270 .75 90 .4 45 .2 225 .1 0</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen15-4.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 33 0 8193 -15 1 1 1 0 1 0 .5 0 .9 0 .3 0 .75 0 .2 180 .6 180 .15 180 .5 180 .1 180</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 33 0 8193 -15 1 1 1 0 1 0 .5 0 .9 0 .3 0 .75 0 .2 180 .6 180 .15 180 .5 180 .1 180</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen15-5.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 33 0 8193 -15 1 1 1 180 1 180 .5 180 .9 180 .3 180 .75 180 .2 0 .6 0 .15 0 .5 0 .1 0</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 33 0 8193 -15 1 1 1 180 1 180 .5 180 .9 180 .3 180 .75 180 .2 0 .6 0 .15 0 .5 0 .1 0</para>
+ </caption>
+ </mediaobject>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>See Also</title>
<para>
- <link linkend="GEN03"><citetitle>GEN03</citetitle></link>,
<link linkend="GEN13"><citetitle>GEN13</citetitle></link>, and
<link linkend="GEN14"><citetitle>GEN14</citetitle></link>.
</para>
diff --git a/scoregens/gen16.xml b/scoregens/gen16.xml
index 2ff0f84..e094f03 100644
--- a/scoregens/gen16.xml
+++ b/scoregens/gen16.xml
@@ -21,15 +21,21 @@
<refsect1>
<title>Syntax</title>
- <synopsis><command>f</command> # time size 16 beg dur type end</synopsis>
+ <synopsis><command>f</command> # time size 16 val1 dur1 type1 val2 [dur2 type2 val3 ... typeX valN]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>size</emphasis> -- number of points in the table. Must be a power of 2 or a power-of-2 plus 1 (see <link linkend="f"><citetitle>f statement</citetitle></link>). The normal value is power-of-2 plus 1.
+ <emphasis>size</emphasis> -- number of points in the table. Must
+ be a power of 2 or a power-of-2 plus 1 (see <link
+ linkend="f"><citetitle>f statement</citetitle></link>). The
+ normal value is power-of-2 plus 1.
</para>
-
+ <note>
+ The end value is only reached when the table length is power-of-2 plus 1.
+ (This length is crucial for use with the tab opcode.)
+ </note>
<para>
<emphasis>beg</emphasis> -- starting value
</para>
diff --git a/scoregens/gen17.xml b/scoregens/gen17.xml
index 66911b4..8c536fe 100644
--- a/scoregens/gen17.xml
+++ b/scoregens/gen17.xml
@@ -56,6 +56,32 @@
This describes a step function with 8 successively increasing levels, each 12 locations wide except the last which extends its value to the end of the table. Rescaling is inhibited. Indexing into this table with a MIDI note-number would retrieve a different value every octave up to the eighth, above which the value returned would remain the same.
</para>
+ <para>
+ Here is a complete example of the GEN17 routine. It uses the files <ulink url="examples/gen17.csd"><citetitle>gen17.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN17 routine.</title>
+ <xi:include href="examples-xml/gen17.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>This is the diagram of the waveform of the GEN17 routine, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen17.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 2 0 128 -17 0 10 32 20 64 30 96 40 - a step function with 4 equal levels, each 32 locations wide except the last which extends its value to the end of the table</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 2 0 128 -17 0 10 32 20 64 30 96 40 - a step function with 4 equal levels, each 32 locations wide except the last which extends its value to the end of the table</para>
+ </caption>
+ </mediaobject>
+
+ </para>
</refsect1>
<refsect1>
diff --git a/scoregens/gen18.xml b/scoregens/gen18.xml
index 61a39a2..e20fb71 100644
--- a/scoregens/gen18.xml
+++ b/scoregens/gen18.xml
@@ -27,7 +27,7 @@
<refsect1>
<title>Initialization</title>
<para>
- <emphasis>size</emphasis> -- number of points in the table. Must be a power-of-2 plus 1 (see <link linkend="f">f</link> statement).
+ <emphasis>size</emphasis> -- number of points in the table. Must be a power-of-2 (see <link linkend="f">f</link> statement).
</para>
<para>
@@ -43,7 +43,7 @@
</para>
<para>
- <emphasis>finisha, finishb, etc.</emphasis> -- where to stop writing the fn into the table.
+ <emphasis>finisha, finishb, etc.</emphasis> -- where to stop writing the fn into the table. The last available location is the power of two - 1.
</para>
</refsect1>
@@ -54,10 +54,62 @@
<informalexample>
<programlisting>
<emphasis role="stamnt">f</emphasis> 1 0 4096 10 1
-<emphasis role="stamnt">f</emphasis> 2 0 1025 18 1 1 0 512 1 1 513 1025</programlisting>
+<emphasis role="stamnt">f</emphasis> 2 0 1024 18 1 1 0 511 1 1 512 1023</programlisting>
</informalexample>
- f2 consists of two copies of f1 written in to locations 0-512 and 513-1025.
+ f2 consists of two copies of f1 written in to locations 0-511 and 512-1023.
+ </para>
+ <para>
+ Here is an example of the GEN18 routine. It uses the files <ulink url="examples/gen18.csd"><citetitle>gen18.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN18 routine.</title>
+ <xi:include href="examples-xml/gen18.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms generated by GEN18, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen18_1.png" format="PNG"/>
+ <textobject>
+ <phrase>f 11 0 8193 18 1 1 0 4096 2 1 4097 8192 - composite waveform made up of a sine wave and a sawtooth</phrase>
+ </textobject>
+ </imageobject>
+
+ <caption>
+ <para>f 11 0 8193 18 1 1 0 4096 2 1 4097 8192 - composite waveform made up of a sine wave and a sawtooth</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen18_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 12 0 8192 18 1 1 0 4096 3 1 4097 8192 - composite waveform made up of a sine wave and a wave of cosine partials</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 12 0 8192 18 1 1 0 4096 3 1 4097 8192 - composite waveform made up of a sine wave and a wave of cosine partials</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen18_3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 13 0 1024 18 1 0.7 0 767 3 0.7 512 1023 - sine+cosine partials overlapped, also shorter table than f12</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 13 0 1024 18 1 0.7 0 767 3 0.7 512 1023 - sine+cosine partials overlapped, also shorter table than f12</para>
+ </caption>
+ </mediaobject>
</para>
</refsect1>
diff --git a/scoregens/gen19.xml b/scoregens/gen19.xml
index f66888c..22b21f9 100644
--- a/scoregens/gen19.xml
+++ b/scoregens/gen19.xml
@@ -63,35 +63,38 @@
</para>
</note>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN19 routine. It uses the file <ulink url="examples/gen19.csd"><citetitle>gen19.csd</citetitle></ulink>. It will generate a nice bell curve, here is its diagram:
+ Here is an example of the GEN19 routine. It uses the files <ulink url="examples/gen19.csd"><citetitle>gen19.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN19 routine.</title>
+ <xi:include href="examples-xml/gen19.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>This is the diagram of the waveform of the GEN19 routines, as used in the example:</phrase>
+ </textobject>
+
<mediaobject>
<imageobject>
- <imagedata fileref="images/gen19.png" format="PNG"/>
+ <imagedata fileref="images/gen19_1.png" format="PNG"/>
</imageobject>
<textobject>
- <phrase>Diagram of the waveform generated by GEN19.</phrase>
+ <phrase>f 2 0 1024 19 .5 .5 270 .5 - a rising sigmoid</phrase>
</textobject>
<caption>
- <para>Diagram of the waveform generated by GEN19.</para>
+ <para>f 2 0 1024 19 .5 .5 270 .5 - a rising sigmoid</para>
</caption>
</mediaobject>
- <example>
- <title>A simple example of the GEN19 routine.</title>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.
- </para>
- <xi:include href="examples-xml/gen19.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
</para>
</refsect1>
+
<refsect1>
<title>See Also</title>
<para>
@@ -100,8 +103,4 @@
</para>
</refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Example written by &namekevin;</para>
- </refsect1>
</refentry>
diff --git a/scoregens/gen20.xml b/scoregens/gen20.xml
index 7745f73..9e13195 100644
--- a/scoregens/gen20.xml
+++ b/scoregens/gen20.xml
@@ -127,10 +127,53 @@
example the s.d. is 2. The default value is 1.
</para>
<para>
- For diagrams, see <link linkend="MiscWindows"><citetitle>Window Functions</citetitle></link>
+ For all diagrams, see <link linkend="MiscWindows"><citetitle>Window Functions</citetitle></link>
+ </para>
+
+ <para>
+ Here is an example of the GEN20 routine. It uses the file <ulink url="examples/gen20.csd"><citetitle>gen20.csd</citetitle></ulink>.
+
+ <example>
+ <title>Example of the GEN20 routine.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen20.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN20 routines, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen20_1.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase> f 1 0 512 20 2 - Hanning window</phrase>
+ </textobject>
+
+
+ <caption>
+ <para> f 1 0 512 20 2 - Hanning window</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen20_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase> f 2 0 512 20 6 1 - Gaussian window</phrase>
+ </textobject>
+
+ <caption>
+ <para> f 2 0 512 20 6 1 - Gaussian window</para>
+ </caption>
+ </mediaobject>
+
</para>
</refsect1>
-
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/scoregens/gen21.xml b/scoregens/gen21.xml
index 7a3db94..076f03a 100644
--- a/scoregens/gen21.xml
+++ b/scoregens/gen21.xml
@@ -90,8 +90,89 @@
All of the above additions were designed by the author between May and December 1994, under the supervision of Dr. Richard Boulanger.
</para>
+ <para>
+ Here is a complete example of the GEN21 routine. It uses the file <ulink url="examples/gen21.csd"><citetitle>gen21.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN21 routine.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen21.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN21 routines, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen21_1.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 1 0 32 21 1 - positive numbers only</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 1 0 32 21 1 - positive numbers only</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen21_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 2 0 32 21 6</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 2 0 32 21 6</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen21_3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 3 0 32 21 6 5.745</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 3 0 32 21 6 5.745</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen21_4.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 4 0 32 21 9 1 1 2 - positive numbers only</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 4 0 32 21 9 1 1 2 - positive numbers only</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen21_5.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 5 0 32 21 10 1 2 - positive numbers only</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 5 0 32 21 10 1 2 - positive numbers only</para>
+ </caption>
+ </mediaobject>
+ </para>
</refsect1>
-
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/scoregens/gen23.xml b/scoregens/gen23.xml
index 44dedc5..6788879 100644
--- a/scoregens/gen23.xml
+++ b/scoregens/gen23.xml
@@ -42,6 +42,35 @@
</note>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the GEN23 opcode. It uses the file <ulink url="examples/gen23.csd"><citetitle>gen23.csd</citetitle></ulink> and <ulink url="examples/spectrum.txt"> <citetitle>spectrum.txt</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN23 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen23.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>This is the diagram of the waveform of the GEN23 routine, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen23.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 2 0 128 -23 "spectrum.txt" - not normalized</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 2 0 128 -23 "spectrum.txt" - not normalized</para>
+ </caption>
+ </mediaobject>
+
+ </para>
+ </refsect1>
<refsect1>
<title>Credits</title>
<para>
diff --git a/scoregens/gen24.xml b/scoregens/gen24.xml
index 421c10d..973e89f 100644
--- a/scoregens/gen24.xml
+++ b/scoregens/gen24.xml
@@ -47,6 +47,18 @@ real starting from zero.
</note>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the GEN24 opcode. It uses the file <ulink url="examples/gen24.csd"><citetitle>gen24.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN24 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen24.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
diff --git a/scoregens/gen25.xml b/scoregens/gen25.xml
index 25784c2..e2c5aaa 100644
--- a/scoregens/gen25.xml
+++ b/scoregens/gen25.xml
@@ -46,6 +46,36 @@
</note>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the GEN25 opcode. It uses the file <ulink url="examples/gen25.csd"><citetitle>gen25.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN25 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen25.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>This is the diagram of the waveform of the GEN25 routine, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen25.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 2 0 1025 25 0 0.01 200 1 400 1 513 0.01 - a function which begins at 0.01, rises to 1 at the 200th table location, makes a straight line to the 400th location, and returns to 0.01 by the end of the table</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 2 0 1025 25 0 0.01 200 1 400 1 513 0.01 - a function which begins at 0.01, rises to 1 at the 200th table location, makes a straight line to the 400th location, and returns to 0.01 by the end of the table</para>
+ </caption>
+ </mediaobject>
+
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
diff --git a/scoregens/gen27.xml b/scoregens/gen27.xml
index 4b00dc5..13e18c2 100644
--- a/scoregens/gen27.xml
+++ b/scoregens/gen27.xml
@@ -46,14 +46,33 @@
</note>
</refsect1>
- <refsect1>
+ <refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting><emphasis role="stamnt">f</emphasis> 1 0 257 27 0 0 100 1 200 -1 256 0</programlisting>
- </informalexample>
+ Here is an example of the GEN27 opcode. It uses the file <ulink url="examples/gen27.csd"><citetitle>gen27.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN27 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen27.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>This is the diagram of the waveform of the GEN27 routine, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen27.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 2 0 1025 27 0 0 200 1 400 -1 513 0 - a function which begins at 0, rises to 1 at the 200th table location, falls to -1, by the 400th location, and returns to 0 by the end of the table. The interpolation is linear</phrase>
+ </textobject>
- This describes a function which begins at 0, rises to 1 at the 100th table location, falls to -1, by the 200th location, and returns to 0 by the end of the table. The interpolation is linear.
+ <caption>
+ <para>f 2 0 1025 27 0 0 200 1 400 -1 513 0 - a function which begins at 0, rises to 1 at the 200th table location, falls to -1, by the 400th location, and returns to 0 by the end of the table. The interpolation is linear</para>
+ </caption>
+ </mediaobject>
+
</para>
</refsect1>
diff --git a/scoregens/gen28.xml b/scoregens/gen28.xml
index c8b7eef..6d1f990 100644
--- a/scoregens/gen28.xml
+++ b/scoregens/gen28.xml
@@ -85,8 +85,16 @@ time3 X3 Y3
Since <emphasis>GEN28</emphasis> creates values to 10 milliseconds of resolution, there will be 500 values created by interpolating X1 to X2 to X3 and so on, and Y1 to Y2 to Y3 and so on, over the appropriate number of values that are stored in the function table. The sound will begin in the left front, over 1 second it will move to the right front, over another second it move further into the distance but still in the right front, then in just 1/10th of a second it moves to the left rear, a bit distant. Finally over the last .9 seconds the sound will move to the right rear, moderately distant, and it comes to rest between the two left channels (due west!), quite distant.
</para>
+ <para>
+ Here is an example of the GEN28 routine. It uses the file <ulink url="examples/gen28.csd"><citetitle>gen28.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the gen28 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen28.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
</refsect1>
-
+
<refsect1>
<title>Credits</title>
<para>
diff --git a/scoregens/gen30.xml b/scoregens/gen30.xml
index 0d86a47..e7a4ff9 100644
--- a/scoregens/gen30.xml
+++ b/scoregens/gen30.xml
@@ -54,6 +54,18 @@
The reason of this limitation is that <emphasis>GEN30</emphasis> uses FFT, which requires power of two table size. <link linkend="GEN32"><citetitle>GEN32</citetitle></link> allows using linear interpolation for resampling and phase shifting, which makes it possible to use any table size (however, for partials calculated with FFT, the power of two limitation still exists).
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the GEN30 routine. It uses the files <ulink url="examples/gen30.csd"><citetitle>gen30.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN30 routine.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen30.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
<refsect1>
<title>Credits</title>
diff --git a/scoregens/gen32.xml b/scoregens/gen32.xml
index 644d4da..2f2afaf 100644
--- a/scoregens/gen32.xml
+++ b/scoregens/gen32.xml
@@ -42,63 +42,16 @@
<emphasis>phsa, phsb, ...</emphasis> -- start phase (0 to 1)
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-itmp <emphasis role="opc">ftgen</emphasis> 1, 0, 16384, 7, 1, 16384, <emphasis role="op">-</emphasis>1 <emphasis role="comment">; sawtooth</emphasis>
-itmp <emphasis role="opc">ftgen</emphasis> 2, 0, 8192, 10, 1 <emphasis role="comment">; sine</emphasis>
-<emphasis role="comment">; mix tables</emphasis>
-itmp <emphasis role="opc">ftgen</emphasis> 5, 0, 4096, <emphasis role="op">-</emphasis>32, <emphasis role="op">-</emphasis>2, 1.5, 1.0, 0.25, 1, 2, 0.5, 0, \
- 1, 3, <emphasis role="op">-</emphasis>0.25, 0.5
-<emphasis role="comment">; window</emphasis>
-itmp <emphasis role="opc">ftgen</emphasis> 6, 0, 16384, 20, 3, 1
-<emphasis role="comment">; generate band-limited waveforms</emphasis>
-inote <emphasis role="op">=</emphasis> 0
-<emphasis role="olabel">loop0:</emphasis>
-icps <emphasis role="op">=</emphasis> 440 <emphasis role="op">*</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2) <emphasis role="op">*</emphasis> (inote <emphasis role="op">-</emphasis> 69) <emphasis role="op">/</emphasis> 12) <emphasis role="comment">; one table for</emphasis>
-inumh <emphasis role="op">=</emphasis> <emphasis role="ohdr">sr</emphasis> <emphasis role="op">/</emphasis> (2 <emphasis role="op">*</emphasis> icps) <emphasis role="comment">; each MIDI note number</emphasis>
-ift <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(inote <emphasis role="op">+</emphasis> 256.5)
-itmp <emphasis role="opc">ftgen</emphasis> ift, 0, 4096, <emphasis role="op">-</emphasis>30, 5, 1, inumh
-inote <emphasis role="op">=</emphasis> inote <emphasis role="op">+</emphasis> 1
- <emphasis role="octrl">if</emphasis> (inote <emphasis role="op">&lt;</emphasis> 127.5) <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">loop0</emphasis>
-
- <emphasis role="oblock">instr</emphasis> 1
-
-kcps <emphasis role="opc">expon</emphasis> 20, p3, 16000
-kft <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(256.5 <emphasis role="op">+</emphasis> 69 <emphasis role="op">+</emphasis> 12 <emphasis role="op">*</emphasis> <emphasis role="opc">log</emphasis>(kcps <emphasis role="op">/</emphasis> 440) <emphasis role="op">/</emphasis> <emphasis role="opc">log</emphasis>(2))
-kft <emphasis role="op">=</emphasis> (kft <emphasis role="op">&gt;</emphasis> 383 <emphasis role="op">?</emphasis> 383 <emphasis role="op">:</emphasis> kft)
-
-a1 <emphasis role="opc">phasor</emphasis> kcps
-a1 <emphasis role="opc">tableikt</emphasis> a1, kft, 1, 0, 1
-
- <emphasis role="opc">out</emphasis> a1 <emphasis role="op">*</emphasis> 10000
-
- <emphasis role="oblock">endin</emphasis>
- <emphasis role="oblock">instr</emphasis> 2
-
-kcps <emphasis role="opc">expon</emphasis> 20, p3, 16000
-kft <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(256.5 <emphasis role="op">+</emphasis> 69 <emphasis role="op">+</emphasis> 12 <emphasis role="op">*</emphasis> <emphasis role="opc">log</emphasis>(kcps <emphasis role="op">/</emphasis> 440) <emphasis role="op">/</emphasis> <emphasis role="opc">log</emphasis>(2))
-kft <emphasis role="op">=</emphasis> (kft <emphasis role="op">&gt;</emphasis> 383 <emphasis role="op">?</emphasis> 383 <emphasis role="op">:</emphasis> kft)
-
-kgdur <emphasis role="opc">limit</emphasis> 10 <emphasis role="op">/</emphasis> kcps, 0.1, 1
-a1 <emphasis role="opc">grain2</emphasis> kcps, 0.02, kgdur, 30, kft, 6, <emphasis role="op">-</emphasis>0.5
-
- <emphasis role="opc">out</emphasis> a1 <emphasis role="op">*</emphasis> 2000
-
- <emphasis role="oblock">endin</emphasis>
-
-----------
-score:
-----------
-
-<emphasis role="stamnt">t</emphasis> 0 60
-<emphasis role="stamnt">i</emphasis> 1 0 10
-<emphasis role="stamnt">i</emphasis> 2 12 10
-<emphasis role="stamnt">e</emphasis></programlisting>
- </informalexample>
+ Here is an example of the GEN32 routine. It uses the file <ulink url="examples/gen32.csd"><citetitle>gen32.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the gen32 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen32.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
diff --git a/scoregens/gen33.xml b/scoregens/gen33.xml
index 361d8ec..adfd6e8 100644
--- a/scoregens/gen33.xml
+++ b/scoregens/gen33.xml
@@ -63,37 +63,34 @@ stra, pna, phsa, strb, pnb, phsb, ...
<emphasis>fmode</emphasis> (optional, default = 0) -- a non-zero value can be used to set frequency in Hz instead of partial numbers in the source table. The sample rate is assumed to be fmode if it is positive, or -(sr * fmode) if any negative value is specified.
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-<emphasis role="comment">; partials 1, 4, 7, 10, 13, 16, etc. with base frequency of 400 Hz</emphasis>
-
-ibsfrq <emphasis role="op">=</emphasis> 400
-<emphasis role="comment">; estimate number of partials</emphasis>
-inumh <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(1.5 <emphasis role="op">+</emphasis> <emphasis role="ohdr">sr</emphasis> <emphasis role="op">*</emphasis> 0.5 <emphasis role="op">/</emphasis> (3 <emphasis role="op">*</emphasis> ibsfrq))
-<emphasis role="comment">; source table length</emphasis>
-isrcln <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(0.5 <emphasis role="op">+</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2) <emphasis role="op">*</emphasis> <emphasis role="opc">int</emphasis>(1.01 <emphasis role="op">+</emphasis> <emphasis role="opc">log</emphasis>(inumh <emphasis role="op">*</emphasis> 3) <emphasis role="op">/</emphasis> <emphasis role="opc">log</emphasis>(2))))
-<emphasis role="comment">; create empty source table</emphasis>
-itmp <emphasis role="opc">ftgen</emphasis> 1, 0, isrcln, <emphasis role="op">-</emphasis>2, 0
-ifpos = 0
-ifrq = ibsfrq
-inumh = 0
-<emphasis role="olabel">l1</emphasis>:
- <emphasis role="opc">tableiw</emphasis> ibsfrq <emphasis role="op">/</emphasis> ifrq, ifpos, 1 <emphasis role="comment">; amplitude</emphasis>
- <emphasis role="opc">tableiw</emphasis> ifrq, ifpos <emphasis role="op">+</emphasis> 1, 1 <emphasis role="comment">; frequency</emphasis>
- <emphasis role="opc">tableiw</emphasis> 0, ifpos <emphasis role="op">+</emphasis> 2, 1 <emphasis role="comment">; phase</emphasis>
-ifpos <emphasis role="op">=</emphasis> ifpos <emphasis role="op">+</emphasis> 3
-ifrq <emphasis role="op">=</emphasis> ifrq <emphasis role="op">+</emphasis> ibsfrq <emphasis role="op">*</emphasis> 3
-inumh <emphasis role="op">=</emphasis> inumh <emphasis role="op">+</emphasis> 1
- <emphasis role="octrl">if</emphasis> (ifrq <emphasis role="op">&lt;</emphasis> (<emphasis role="ohdr">sr</emphasis> <emphasis role="op">*</emphasis> 0.5)) <emphasis role="op">igoto</emphasis> <emphasis role="olabel">l1</emphasis>
-
-<emphasis role="comment">; store output in ftable 2 (size = 262144)</emphasis>
-
-itmp <emphasis role="opc">ftgen</emphasis> 2, 0, 262144, <emphasis role="op">-</emphasis>33, 1, inumh, 1, <emphasis role="op">-</emphasis>1</programlisting>
- </informalexample>
+ Here is an example of the GEN33 routine. It uses the file <ulink url="examples/gen33.csd"><citetitle>gen33.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the gen33 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen33.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>This is the diagram of the waveform generated by GEN33, as used in the example:</phrase>
+ </textobject>
+ <para>
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen33.png" format="PNG"/>
+ <textobject>
+ <phrase>f 2 0 262144 -33 1 inumh 1 -1</phrase>
+ </textobject>
+ </imageobject>
+
+ <caption>
+ <para>f 2 0 262144 -33 1 inumh 1 -1</para>
+ </caption>
+ </mediaobject>
</para>
</refsect1>
diff --git a/scoregens/gen34.xml b/scoregens/gen34.xml
index 9b70a03..0a170b6 100644
--- a/scoregens/gen34.xml
+++ b/scoregens/gen34.xml
@@ -64,36 +64,35 @@ stra, pna, phsa, strb, pnb, phsb, ...
</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
- <informalexample>
- <programlisting>
-<emphasis role="comment">; partials 1, 4, 7, 10, 13, 16, etc. with base frequency of 400 Hz</emphasis>
-
-ibsfrq <emphasis role="op">=</emphasis> 400
-<emphasis role="comment">; estimate number of partials</emphasis>
-inumh <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(1.5 <emphasis role="op">+</emphasis> <emphasis role="ohdr">sr</emphasis> <emphasis role="op">*</emphasis> 0.5 <emphasis role="op">/</emphasis> (3 <emphasis role="op">*</emphasis> ibsfrq))
-<emphasis role="comment">; source table length</emphasis>
-isrcln <emphasis role="op">=</emphasis> <emphasis role="opc">int</emphasis>(0.5 <emphasis role="op">+</emphasis> <emphasis role="opc">exp</emphasis>(<emphasis role="opc">log</emphasis>(2) <emphasis role="op">*</emphasis> <emphasis role="opc">int</emphasis>(1.01 <emphasis role="op">+</emphasis> <emphasis role="opc">log</emphasis>(inumh <emphasis role="op">*</emphasis> 3) <emphasis role="op">/</emphasis> <emphasis role="opc">log</emphasis>(2))))
-<emphasis role="comment">; create empty source table</emphasis>
-itmp <emphasis role="opc">ftgen</emphasis> 1, 0, isrcln, <emphasis role="op">-</emphasis>2, 0
-ifpos = 0
-ifrq = ibsfrq
-inumh = 0
-<emphasis role="olabel">l1</emphasis>:
- <emphasis role="opc">tableiw</emphasis> ibsfrq <emphasis role="op">/</emphasis> ifrq, ifpos, 1 <emphasis role="comment">; amplitude</emphasis>
- <emphasis role="opc">tableiw</emphasis> ifrq, ifpos <emphasis role="op">+</emphasis> 1, 1 <emphasis role="comment">; frequency</emphasis>
- <emphasis role="opc">tableiw</emphasis> 0, ifpos <emphasis role="op">+</emphasis> 2, 1 <emphasis role="comment">; phase</emphasis>
-ifpos <emphasis role="op">=</emphasis> ifpos <emphasis role="op">+</emphasis> 3
-ifrq <emphasis role="op">=</emphasis> ifrq <emphasis role="op">+</emphasis> ibsfrq <emphasis role="op">*</emphasis> 3
-inumh <emphasis role="op">=</emphasis> inumh <emphasis role="op">+</emphasis> 1
- <emphasis role="octrl">if</emphasis> (ifrq <emphasis role="op">&lt;</emphasis> (<emphasis role="ohdr">sr</emphasis> <emphasis role="op">*</emphasis> 0.5)) <emphasis role="op">igoto</emphasis> <emphasis role="olabel">l1</emphasis>
-
-<emphasis role="comment">; store output in ftable 2 (size = 262144)</emphasis>
-
-itmp <emphasis role="opc">ftgen</emphasis> 2, 0, 262144, <emphasis role="op">-</emphasis>34, 1, inumh, 1, <emphasis role="op">-</emphasis>1</programlisting>
- </informalexample>
+ Here is an example of the GEN34 routine. It uses the file <ulink url="examples/gen34.csd"><citetitle>gen34.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the gen34 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen34.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>This is the diagram of the waveform generated by GEN34, as used in the example:</phrase>
+ </textobject>
+ <para>
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen34.png" format="PNG"/>
+ <textobject>
+ <phrase>f 2 0 262144 -34 1 inumh 1 -1</phrase>
+ </textobject>
+ </imageobject>
+
+ <caption>
+ <para>f 2 0 262144 -34 1 inumh 1 -1</para>
+ </caption>
+ </mediaobject>
+
</para>
</refsect1>
diff --git a/scoregens/gen40.xml b/scoregens/gen40.xml
index 82887b5..5a380bf 100644
--- a/scoregens/gen40.xml
+++ b/scoregens/gen40.xml
@@ -39,6 +39,66 @@
</para>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the GEN40 opcode. It uses the file <ulink url="examples/gen40.csd"><citetitle>gen40.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN40 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen40.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+ i 1 time 0.00067: 53.14918
+ i 1 time 0.20067: 0.00000
+ i 1 time 0.40067: 0.00000
+ i 1 time 0.60067: 96.80406
+ i 1 time 0.80067: 94.20729
+ i 1 time 1.00000: 0.00000
+ i 1 time 1.20067: 86.13032
+ i 1 time 1.40067: 31.37096
+ i 1 time 1.60067: 70.35889
+ i 1 time 1.80000: 0.00000
+ i 1 time 2.00000: 49.18914
+
+WARNING: Seeding from current time 2006647442
+
+ i 2 time 3.00067: 21.45002
+ i 2 time 3.20067: 44.32333
+ i 2 time 3.40067: 46.05420
+ i 2 time 3.60000: 0.00000
+ i 2 time 3.80067: 41.32175
+ i 2 time 4.00000: 0.00000
+ i 2 time 4.20000: 63.72019
+ i 2 time 4.40067: 0.00000
+ i 2 time 4.60067: 0.00000
+ i 2 time 4.80067: 0.00000
+ i 2 time 5.00000: 74.49330
+ </screen>
+
+ <textobject>
+ <phrase>This is the diagram of the waveform of the GEN40 routine, as used in the example:</phrase>
+ </textobject>
+ <para>
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen40.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 2 0 16384 40 1</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 2 0 16384 40 1</para>
+ </caption>
+ </mediaobject>
+
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
diff --git a/scoregens/gen41.xml b/scoregens/gen41.xml
index 0975be3..c0f6b30 100644
--- a/scoregens/gen41.xml
+++ b/scoregens/gen41.xml
@@ -35,6 +35,50 @@
</para>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the GEN41 opcode. It uses the file <ulink url="examples/gen41.csd"><citetitle>gen41.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN41 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen41.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+i 1 time 0.00067: 8.00000
+i 1 time 0.00133: 8.00000
+i 1 time 0.00200: 8.00000
+i 1 time 0.00267: 8.00000
+i 1 time 0.00333: 2.00000
+i 1 time 0.00400: 8.00000
+i 1 time 0.00533: 8.00000
+i 1 time 0.00600: 8.00000
+..........
+ </screen>
+
+ <textobject>
+ <phrase>This is the diagram of the waveform of the GEN41 routine, as used in the example:</phrase>
+ </textobject>
+ <para>
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen41.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 1 0 -20 -41 2 .1 8 .9</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 1 0 -20 -41 2 .1 8 .9</para>
+ </caption>
+ </mediaobject>
+
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
diff --git a/scoregens/gen42.xml b/scoregens/gen42.xml
index 87d546e..bd7f99a 100644
--- a/scoregens/gen42.xml
+++ b/scoregens/gen42.xml
@@ -35,6 +35,55 @@
</para>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the GEN42 opcode. It uses the file <ulink url="examples/gen42.csd"><citetitle>gen42.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN42 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen42.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ Its output should include lines like these:
+ <screen>
+ i1 184.61538
+ i1 130.76923
+ i1 169.23077
+ i1 12.00000
+.......
+
+WARNING: Seeding from current time 3751086165
+
+ i2 138.46154
+ i2 12.00000
+ i2 123.07692
+ i2 161.53846
+ i2 123.07692
+ i2 153.84615
+......
+ </screen>
+
+ <textobject>
+ <phrase>This is the diagram of the waveform of the GEN42 routine, as used in the example:</phrase>
+ </textobject>
+ <para>
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen42.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase> f 1 0 -20 -42 10 20 .3 100 200 .7</phrase>
+ </textobject>
+
+ <caption>
+ <para> f 1 0 -20 -42 10 20 .3 100 200 .7</para>
+ </caption>
+ </mediaobject>
+ </para>
+ </refsect1>
+
<refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
diff --git a/scoregens/gen49.xml b/scoregens/gen49.xml
index 4ba6374..f1f8a43 100644
--- a/scoregens/gen49.xml
+++ b/scoregens/gen49.xml
@@ -91,16 +91,31 @@
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GEN49 routine. It uses the files <ulink url="examples/gen49.csd"><citetitle>gen49.csd</citetitle></ulink>, and <ulink url="examples/beats.mp3"><citetitle>beats.mp3</citetitle></ulink>. It uses the MP3 file <quote>beats.mp3</quote>.
-
+ Here is an example of the GEN49 routine. It uses the files <ulink url="examples/gen49.csd"><citetitle>gen49.csd</citetitle></ulink>.
<example>
- <title>A simple example of the GEN49 routine.</title>
-
+ <title>An example of the GEN49 routine.</title>
<xi:include href="examples-xml/gen49.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
</example>
- </para>
+ <textobject>
+ <phrase>This is the diagram of the waveforms of the GEN49 routine, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen49.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 1 0 131072 49 "beats.mp3" 0 1</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 1 0 131072 49 "beats.mp3" 0 1</para>
+ </caption>
+ </mediaobject>
+
+ </para>
</refsect1>
<refsect1>
diff --git a/scoregens/gen51.xml b/scoregens/gen51.xml
index 1c78420..c23a895 100644
--- a/scoregens/gen51.xml
+++ b/scoregens/gen51.xml
@@ -94,6 +94,63 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the GEN51 routine. It uses the files <ulink url="examples/gen51.csd"><citetitle>gen51.csd</citetitle></ulink>.
+ <example>
+ <title>An example of the GEN51 routine.</title>
+ <xi:include href="examples-xml/gen51.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GEN51 routines, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen51_1.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 1 0 128 -51 12 2 cpsoct(8) 60 1 2^(1/12) 2^(2/12) 2^(3/12) 2^(4/12) 2^(5/12) 2^(6/12) 2^(7/12) 2^(8/12) 2^(9/12) 2^(10/12) 2^(11/12) 2^(12/12)</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 1 0 128 -51 12 2 cpsoct(8) 60 1 2^(1/12) 2^(2/12) 2^(3/12) 2^(4/12) 2^(5/12) 2^(6/12) 2^(7/12) 2^(8/12) 2^(9/12) 2^(10/12) 2^(11/12) 2^(12/12)</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen51_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 2 0 128 -51 10 2 cpsoct(8) 60 1 2^(1/10) 2^(2/10) 2^(3/10) 2^(4/10) 2^(5/10) 2^(6/10) 2^(7/10) 2^(8/10) 2^(9/10) 2^(10/10)</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 2 0 128 -51 10 2 cpsoct(8) 60 1 2^(1/10) 2^(2/10) 2^(3/10) 2^(4/10) 2^(5/10) 2^(6/10) 2^(7/10) 2^(8/10) 2^(9/10) 2^(10/10)</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen51_3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 3 0 128 -51 24 2 cpsoct(8) 60 1 2^(1/24) 2^(2/24) 2^(3/24) 2^(4/24) 2^(5/24) 2^(6/24) 2^(7/24) 2^(8/24) 2^(9/24) 2^(10/24) 2^(11/24) 2^(12/24) 2^(13/24) 2^(14/24) 2^(15/24) 2^(16/24) 2^(17/24) 2^(18/24) 2^(19/24) 2^(20/24) 2^(21/24) 2^(22/24) 2^(23/24) 2^(24/24)</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 3 0 128 -51 24 2 cpsoct(8) 60 1 2^(1/24) 2^(2/24) 2^(3/24) 2^(4/24) 2^(5/24) 2^(6/24) 2^(7/24) 2^(8/24) 2^(9/24) 2^(10/24) 2^(11/24) 2^(12/24) 2^(13/24) 2^(14/24) 2^(15/24) 2^(16/24) 2^(17/24) 2^(18/24) 2^(19/24) 2^(20/24) 2^(21/24) 2^(22/24) 2^(23/24) 2^(24/24)</para>
+ </caption>
+ </mediaobject>
+
+ </para>
+ </refsect1>
+ <refsect1>
<title>Credits</title>
<para>Author: &namegabriel;</para>
</refsect1>
diff --git a/scoregens/gen52.xml b/scoregens/gen52.xml
index 644c4b4..584837a 100644
--- a/scoregens/gen52.xml
+++ b/scoregens/gen52.xml
@@ -40,8 +40,6 @@
<refsect1>
<title>Example</title>
-
-
<programlisting>
<emphasis role="comment">; source tables</emphasis>
<emphasis role="stamnt">f</emphasis> 1 0 16384 10 1
@@ -52,10 +50,33 @@
<emphasis role="stamnt">f</emphasis> 4 0 16384 -52 1 3 0 2
<emphasis role="comment">; extract second channel from table 3</emphasis>
<emphasis role="stamnt">f</emphasis> 5 0 16384 -52 1 3 1 2</programlisting>
+ <para>
+ Here is a complete example of the GEN52 opcode. It uses the file <ulink url="examples/gen52.csd"><citetitle>gen52.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GEN52 opcode.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gen52.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>This is the diagram of the waveform of the GEN52 routine, as used in the example:</phrase>
+ </textobject>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gen52.png" format="PNG"/>
+ </imageobject>
- </refsect1>
+ <textobject>
+ <phrase>f 3 0 262144 -52 3 2 0 4 2 1 4 2 2 4</phrase>
+ </textobject>
+ <caption>
+ <para>f 3 0 262144 -52 3 2 0 4 2 1 4 2 2 4</para>
+ </caption>
+ </mediaobject>
+
+ </para>
+ </refsect1>
<refsect1>
<title>Credits</title>
<para>Author: &nameistvan;</para>
diff --git a/scoregens/genexp.xml b/scoregens/genexp.xml
index e472e3f..23d2dea 100644
--- a/scoregens/genexp.xml
+++ b/scoregens/genexp.xml
@@ -15,7 +15,7 @@
<refsect1>
<title>Description</title>
<para>
-Creates an ftable with values of the exp function ....
+Creates an ftable with values of the exp function.
</para>
</refsect1>
<refsect1>
@@ -32,7 +32,7 @@ Creates an ftable with values of the exp function ....
</para>
<para>
- <emphasis>start, end</emphasis> -- first and last value to be stored. The points stored are uniformly spaced between these to the table size
+ <emphasis>start, end</emphasis> -- first and last value to be stored; the GEN draws a curve that goes from start to end: exp(start) .... exp(end). The points stored are uniformly spaced between these to the table size
</para>
<para>
<emphasis>rescale</emphasis> -- if not zero the table is not rescaled
@@ -43,18 +43,45 @@ Creates an ftable with values of the exp function ....
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the <emphasis>GENexp</emphasis> routine. It uses the
- file <ulink
- url="examples/genexp.csd"><citetitle>genexp.csd</citetitle></ulink>.
- It will generate a simple exp shaped output wave.
+ Here is a simple example of the GENexp routine. It uses the file <ulink url="examples/genexp.csd"><citetitle>genexp.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GENexp routine.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/genexp.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GENexp routines, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/genexp_1.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase> f 2 0 8192 "exp" 0 15 0</phrase>
+ </textobject>
+
+
+ <caption>
+ <para> f 2 0 8192 "exp" 0 15 0</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/genexp_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase> f 3 0 8192 "exp" 0 3 0</phrase>
+ </textobject>
+
+ <caption>
+ <para> f 3 0 8192 "exp" 0 3 0</para>
+ </caption>
+ </mediaobject>
- <example>
- <title>A simple example of the GENexp routine.</title>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.
- </para>
- <xi:include href="examples-xml/genexp.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
</para>
</refsect1>
@@ -64,6 +91,7 @@ Creates an ftable with values of the exp function ....
<link linkend="GENexp"><citetitle>GENexp</citetitle></link> and
<link linkend="GENsone"><citetitle>GENsone</citetitle></link>.
</para>
+ <para> More information on this routine: <ulink url="http://www.csounds.com/journal/issue11/distortionSynthesis.html"><citetitle>http://www.csounds.com/journal/issue11/distortionSynthesis</citetitle></ulink>, written by Victor Lazzarini</para>
</refsect1>
<refsect1>
diff --git a/scoregens/genfarey.xml b/scoregens/genfarey.xml
index 78166ce..644ff1a 100644
--- a/scoregens/genfarey.xml
+++ b/scoregens/genfarey.xml
@@ -182,6 +182,7 @@
</itemizedlist>
</para>
</refsect1>
+
<refsect1>
<title>Examples</title>
<para>
@@ -221,6 +222,48 @@ same as mode 0, but this time '1' is added to each table element.
<xi:include href="examples-xml/genfarey.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
+
+ <para>
+ Here is a complete example of the GENfarey routine. It uses the files <ulink url="examples/genfarey-2.csd"><citetitle>genfarey-2.csd</citetitle></ulink>.
+ <example>
+ <title>Another example of the GENfarey routine.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/genfarey-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GENfarey routines, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/genfarey-2_1.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>gidelta ftgen 100,0,-18,"farey",7,1 - delta values of Farey Sequence 7</phrase>
+ </textobject>
+
+ <caption>
+ <para>gidelta ftgen 100,0,-18,"farey",7,1 - delta values of Farey Sequence 7</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/genfarey-2_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>gimult ftgen 101,0,-18,"farey",7,2 - generate the denominators of fractions of F_7 </phrase>
+ </textobject>
+
+ <caption>
+ <para>gimult ftgen 101,0,-18,"farey",7,2 - generate the denominators of fractions of F_7 </para>
+ </caption>
+ </mediaobject>
+
+ </para>
</refsect1>
<refsect1>
diff --git a/scoregens/gensone.xml b/scoregens/gensone.xml
index 1279d9c..6be66aa 100644
--- a/scoregens/gensone.xml
+++ b/scoregens/gensone.xml
@@ -47,31 +47,40 @@
is the Sone loudness curve.
</para>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the <emphasis>GENsone</emphasis> routine. It uses the
- file <ulink
- url="examples/gensone.csd"><citetitle>gensone.csd</citetitle></ulink>.
- It will generate a simple sone shaped output wave.
-
+ Here is an example of the GENsone routine. It uses the files <ulink url="examples/gensone.csd"><citetitle>gensone.csd</citetitle></ulink>.
<example>
- <title>A simple example of the GENsone routine.</title>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.
- </para>
+ <title>An example of the GENsone routine.</title>
<xi:include href="examples-xml/gensone.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
+
+ <textobject>
+ <phrase>This is the diagram of the waveforms of the GENsone routine, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gensone.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>f 2 0 16385 "sone" 0 32000 32000 0</phrase>
+ </textobject>
+
+ <caption>
+ <para>f 2 0 16385 "sone" 0 32000 32000 0</para>
+ </caption>
+ </mediaobject>
+
</para>
</refsect1>
-
+
<refsect1>
- <title>See Also</title>
- <para>
- <link linkend="GENexp"><citetitle>GENexp</citetitle></link> and
- <link linkend="GENtanh"><citetitle>GENtanh</citetitle></link>.
- </para>
+ <title>See Also</title>
+ <para> More information on Sone: <ulink url="http://en.wikipedia.org/wiki/Sone"><citetitle>http://en.wikipedia.org/wiki/Sone</citetitle></ulink></para>
</refsect1>
<refsect1>
diff --git a/scoregens/gentanh.xml b/scoregens/gentanh.xml
index e6004a0..b91f407 100644
--- a/scoregens/gentanh.xml
+++ b/scoregens/gentanh.xml
@@ -15,7 +15,7 @@
<refsect1>
<title>Description</title>
<para>
- Creates an ftable with values of the tanh function ....
+ Creates an ftable with values of the tanh function.
</para>
</refsect1>
<refsect1>
@@ -32,7 +32,7 @@
</para>
<para>
- <emphasis>start, end</emphasis> -- first and last value to be stored. The points stored are uniformly spaced between these to the table size
+ <emphasis>start, end</emphasis> -- first and last value to be stored; the GEN draws a curve that goes from start to end: tanh(start) .... tanh(end). The points stored are uniformly spaced between these to the table size
</para>
<para>
<emphasis>rescale</emphasis> -- if not zero the table is not rescaled
@@ -43,18 +43,58 @@
<refsect1>
<title>Examples</title>
<para>
- Here is a simple example of the GENtanh routine. It uses the
- file <ulink
- url="examples/gentanh.csd"><citetitle>gentanh.csd</citetitle></ulink>.
- It will generate a simple tanh shaped output wave.
-
- <example>
- <title>A simple example of the GENtanh routine.</title>
- <para>
- See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.
- </para>
- <xi:include href="examples-xml/gentanh.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
- </example>
+ Here is a simple example of the GENtanh routine. It uses the file <ulink url="examples/gentanh.csd"><citetitle>gentanh.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GENtanh routine.</title>
+ <para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
+ <xi:include href="examples-xml/gentanh.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ <textobject>
+ <phrase>These are the diagrams of the waveforms of the GENtanh routines, as used in the example:</phrase>
+ </textobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gentanh_1.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase> f 2 0 8192 "tanh" -100 100 0 - lots of distortion</phrase>
+ </textobject>
+
+
+ <caption>
+ <para> f 2 0 8192 "tanh" -100 100 0 - lots of distortion</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gentanh_2.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase> f 3 0 8192 "tanh" -10 10 0 - less distortion than f2 </phrase>
+ </textobject>
+
+ <caption>
+ <para> f 3 0 8192 "tanh" -10 10 0 - less distortion than f2</para>
+ </caption>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gentanh_3.png" format="PNG"/>
+ </imageobject>
+
+ <textobject>
+ <phrase> f 4 0 8192 "tanh" -10 15 0</phrase>
+ </textobject>
+
+ <caption>
+ <para> f 4 0 8192 "tanh" -10 15 0</para>
+ </caption>
+ </mediaobject>
</para>
</refsect1>
@@ -63,6 +103,7 @@
<para>
<link linkend="GENexp"><citetitle>GENexp</citetitle></link> and
<link linkend="GENsone"><citetitle>GENsone</citetitle></link>.
+ <para> More information on this routine: <ulink url="http://www.csounds.com/journal/issue11/distortionSynthesis.html"><citetitle>http://www.csounds.com/journal/issue11/distortionSynthesis</citetitle></ulink>, written by Victor Lazzarini</para>
</para>
</refsect1>
diff --git a/scoregens/genwave.xml b/scoregens/genwave.xml
new file mode 100644
index 0000000..100ea27
--- /dev/null
+++ b/scoregens/genwave.xml
@@ -0,0 +1,107 @@
+<refentry id="GENwave">
+ <indexterm id="IndexGENwave"><primary>GENwave</primary></indexterm>
+ <refmeta>
+ <refentrytitle>GENwave</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>"wave"</refname>
+ <refpurpose>
+ Generates a compactly supported wavelet function.
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Creates a compactly supported wavelet, scaling function or wavelet
+ packet. The output function is obtained by deconvolution of
+ corresponding mirror filter impulse response. This procedure is
+ applied in an iterative fashion.
+ </para>
+ <para>
+ The filter bank used in classic discrete wavelet transform grows
+ only towards low frequencies. Meanwhile wavelet packet transform
+ introduces any possible direction of tree's growth. The sequence
+ of mirror filters used in deconvolution is determined by binary
+ form of seq value. "0" corresponds to low-pass filter and "1" to
+ high-pass.
+ </para>
+ <para>
+ The number of iteration steps is determined by filter's length
+ and size of function table. I.e. for filter length 8 and table
+ size 256 there are log2(256/8) = 5 iterations available.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>f</command> # time size "wave" fnsf seq rescale</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>size</emphasis> -- number of points in the table. Must
+ be a power of 2 or power-of-2 plus 1 (see <link
+ linkend="f"><citetitle>f statement</citetitle></link>).
+ </para>
+
+ <para>
+ <emphasis>fnsf</emphasis> -- pre-existing table with scaling
+ function coefficients.
+ </para>
+ <para>
+ <emphasis>seq</emphasis> -- non-negative integer number which
+ corresponds to sequence of low-pass and high-pass mirror filters
+ during deconvolution procedure.
+ </para>
+ <para>
+ <emphasis>rescale</emphasis> -- if not zero the table is not rescaled
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the GENwave routine. It uses the file
+ <ulink
+ url="examples/genwave.csd"><citetitle>genwave.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the GENwave routine.</title>
+ <para>
+ See the sections <link
+ linkend="UsingRealTime"><citetitle>Real-time
+ Audio</citetitle></link> and <link
+ linkend="CommandFlags"><citetitle>Command Line
+ Flags</citetitle></link> for more information on using
+ command line flags.
+ </para>
+ <xi:include href="examples-xml/genwave.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ Ingrid Daubechies. Ten Lectures on Wavelets, SIAM 1992.
+ </para>
+ <para>
+ Pedro A.G. Batista. An Introduction to Sound Synthesis with
+ Wavelet Packets, Csound Book CD Chapters, MIT 2000.
+ </para>
+ <para>
+ Victor M. Wickerhauser. Acoustic Signal Compression with Wavelet
+ Packets, Yale 1992.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gleb Rogozinsky</para>
+ <para>Saint-Petersburg University of Film and Television</para>
+ <para>Saint-Petersburg, Russia</para>
+ <para>April 2012</para>
+ </refsect1>
+</refentry>
diff --git a/scoregens/i.xml b/scoregens/i.xml
index e8d7a0a..52ff501 100644
--- a/scoregens/i.xml
+++ b/scoregens/i.xml
@@ -151,71 +151,15 @@
</para>
</refsect2>
</refsect1>
-
+
<refsect1>
<title>Examples</title>
<para>
- Here is an instrument which can find out whether it is tied to a previous note (<emphasis>tival</emphasis> returns 1), and whether it is held (negative p3). Attack and release are handled accordingly:
- <informalexample>
- <programlisting>
-<emphasis role="oblock">instr</emphasis> 10
-
- icps <emphasis role="opc">init</emphasis> <emphasis role="opc">cpspch</emphasis>(p4) <emphasis role="comment">; Get target pitch from score event</emphasis>
- iportime <emphasis role="opc">init</emphasis> <emphasis role="opc">abs</emphasis>(p3)<emphasis role="op">/</emphasis>7 <emphasis role="comment">; Portamento time dep on note length</emphasis>
- iamp0 <emphasis role="opc">init</emphasis> p5 <emphasis role="comment">; Set default amps</emphasis>
- iamp1 <emphasis role="opc">init</emphasis> p5
- iamp2 <emphasis role="opc">init</emphasis> p5
-
- itie <emphasis role="opc">tival</emphasis> <emphasis role="comment">; Check if this note is tied,</emphasis>
- <emphasis role="octrl">if</emphasis> itie <emphasis role="op">==</emphasis> 1 <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">nofadein</emphasis> <emphasis role="comment">; if not fade in</emphasis>
- iamp0 <emphasis role="opc">init</emphasis> 0
-
-<emphasis role="olabel">nofadein</emphasis>:
- <emphasis role="octrl">if</emphasis> p3 <emphasis role="op">&lt;</emphasis> 0 <emphasis role="octrl">igoto</emphasis> <emphasis role="olabel">nofadeout</emphasis> <emphasis role="comment">; Check if this note is held, if not fade out</emphasis>
- iamp2 <emphasis role="opc">init</emphasis> 0
-
-<emphasis role="olabel">nofadeout</emphasis>:
- <emphasis role="comment">; Now do amp from the set values:</emphasis>
- kamp <emphasis role="opc">linseg</emphasis> iamp0, .03, iamp1, <emphasis role="opc">abs</emphasis>(p3)<emphasis role="op">-</emphasis>.03, iamp2
-
- <emphasis role="comment">; Skip rest of initialization on tied note:</emphasis>
- <emphasis role="octrl">tigoto</emphasis> <emphasis role="olabel">tieskip</emphasis>
-
- kcps <emphasis role="opc">init</emphasis> icps <emphasis role="comment">; Init pitch for untied note</emphasis>
- kcps <emphasis role="opc">port</emphasis> icps, iportime, icps <emphasis role="comment">; Drift towards target pitch</emphasis>
-
- kpw <emphasis role="opc">oscil</emphasis> .4, <emphasis role="opc">rnd</emphasis>(1), 1, <emphasis role="opc">rnd</emphasis>(.7) <emphasis role="comment">; A simple triangle-saw oscil</emphasis>
- ar <emphasis role="opc">vco</emphasis> kamp, kcps, 3, kpw<emphasis role="op">+</emphasis>.5, 1, 1<emphasis role="op">/</emphasis>icps
-
- <emphasis role="comment">; (Used in testing - one may set ipch to cpspch(p4+2)
- ; and view output spectrum)
- ; ar oscil kamp, kcps, 1</emphasis>
-
- <emphasis role="opc">out</emphasis> ar
-
-<emphasis role="olabel">tieskip:</emphasis> <emphasis role="comment">; Skip some initialization on tied note</emphasis>
-
-<emphasis role="oblock">endin</emphasis></programlisting>
- </informalexample>
- </para>
-
- <para>
- A simple score using three instances of the above instrument:
- <informalexample>
- <programlisting>
- <emphasis role="stamnt">f</emphasis>1 0 8192 10 1 <emphasis role="comment">; Sine</emphasis>
-
- <emphasis role="stamnt">i</emphasis>10.1 0 -1 7.00 10000
- <emphasis role="stamnt">i</emphasis>10.2 0 -1 7.04
- <emphasis role="stamnt">i</emphasis>10.3 0 -1 7.07
- <emphasis role="stamnt">i</emphasis>10.1 1 -1 8.00
- <emphasis role="stamnt">i</emphasis>10.2 1 -1 8.04
- <emphasis role="stamnt">i</emphasis>10.3 1 -1 8.07
- <emphasis role="stamnt">i</emphasis>10.1 2 1 7.11
- <emphasis role="stamnt">i</emphasis>10.2 2 1 8.04
- <emphasis role="stamnt">i</emphasis>10.3 2 1 8.07
- <emphasis role="stamnt">e</emphasis></programlisting>
- </informalexample>
+ Here is an example of the i statement. It uses the file <ulink url="examples/i_statement.csd"><citetitle>i_statement.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the i statement.</title>
+ <xi:include href="examples-xml/i_statement.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
</para>
</refsect1>
diff --git a/scoregens/m.xml b/scoregens/m.xml
index ca86251..7b764e4 100644
--- a/scoregens/m.xml
+++ b/scoregens/m.xml
@@ -72,6 +72,17 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the m statement. It uses the file <ulink url="examples/m.csd"><citetitle>m.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the m statement.</title>
+ <xi:include href="examples-xml/m.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
diff --git a/scoregens/n.xml b/scoregens/n.xml
index 250accf..e931792 100644
--- a/scoregens/n.xml
+++ b/scoregens/n.xml
@@ -71,6 +71,13 @@
</refsect1>
<refsect1>
+ <title>Examples</title>
+ <para>
+ See the example for the <link linkend="m"><citetitle>m statement</citetitle></link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
<title>Credits</title>
<para>
<simplelist>
diff --git a/scoregens/q.xml b/scoregens/q.xml
index cbc48d7..43496b2 100644
--- a/scoregens/q.xml
+++ b/scoregens/q.xml
@@ -42,4 +42,16 @@
Note that this does not affect instruments that are already running at time <emphasis>p2</emphasis>. It blocks any attempt to start one afterwards.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the q statement. It uses the file <ulink url="examples/q.csd"><citetitle>q.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the q statement.</title>
+ <xi:include href="examples-xml/q.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
</refentry>
diff --git a/scoregens/r.xml b/scoregens/r.xml
index 8828e5e..ca3fc38 100644
--- a/scoregens/r.xml
+++ b/scoregens/r.xml
@@ -53,7 +53,7 @@
<refsect1>
<title>Examples</title>
<para>
- Here is an example of the r statement. It uses the file <ulink url="examples/r.csd"><citetitle>r.sco</citetitle></ulink>.
+ Here is an example of the r statement. It uses the file <ulink url="examples/r.csd"><citetitle>r.csd</citetitle></ulink>.
<example>
<title>Example of the r statement.</title>
diff --git a/scoregens/s.xml b/scoregens/s.xml
index 1368163..37f9b1e 100644
--- a/scoregens/s.xml
+++ b/scoregens/s.xml
@@ -72,4 +72,16 @@
</para>
</note>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the s statement. It uses the file <ulink url="examples/s.csd"><citetitle>s.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the s statement.</title>
+ <xi:include href="examples-xml/s.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
</refentry>
diff --git a/scoregens/t.xml b/scoregens/t.xml
index 5ea21db..4adab3f 100644
--- a/scoregens/t.xml
+++ b/scoregens/t.xml
@@ -70,5 +70,17 @@
N.B. If the CSound command includes a <link linkend="FlagsMinusLowerT"><citetitle>-t flag</citetitle></link>, the interpreted tempo of all score <emphasis>t statements</emphasis> will be overridden by the command-line tempo.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the t statement. It uses the file <ulink url="examples/t.csd"><citetitle>t.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the t statement.</title>
+ <xi:include href="examples-xml/t.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
</refentry>
diff --git a/scoregens/top.xml b/scoregens/top.xml
index 489e3c7..313dd3b 100644
--- a/scoregens/top.xml
+++ b/scoregens/top.xml
@@ -269,6 +269,10 @@
<listitem>
<simpara><link linkend="GENfarey"><citetitle>"farey"</citetitle></link> - fills a table from a Farey sequence.</simpara>
</listitem>
+ <listitem>
+ <simpara><link linkend="GENwave"><citetitle>"wave"</citetitle></link>
+ - fills a table from a wavelet transform.</simpara>
+ </listitem>
</itemizedlist>
</section>
&scoregensgen01;
@@ -292,7 +296,6 @@
&scoregensgen19;
&scoregensgen20;
&scoregensgen21;
- &scoregensgen22;
&scoregensgen23;
&scoregensgen24;
&scoregensgen25;
@@ -314,4 +317,5 @@
&scoregensexp;
&scoregenssone;
&scoregensfarey;
+ &scoregenswave;
</chapter>
diff --git a/scoregens/v.xml b/scoregens/v.xml
index b70c3dc..7683bee 100644
--- a/scoregens/v.xml
+++ b/scoregens/v.xml
@@ -66,24 +66,6 @@
<para>
<informalexample>
<programlisting>
-<emphasis role="stamnt">i</emphasis>1 0 1 <emphasis role="comment">; note1</emphasis>
-<emphasis role="stamnt">v</emphasis>2
-<emphasis role="stamnt">i</emphasis>1 1 . <emphasis role="comment">; note2</emphasis>
-<emphasis role="stamnt">i</emphasis>1 2 . <emphasis role="comment">; note3</emphasis>
-<emphasis role="stamnt">v</emphasis>1
-<emphasis role="stamnt">i</emphasis>1 3 . <emphasis role="comment">; note4</emphasis>
-<emphasis role="stamnt">i</emphasis>1 4 . <emphasis role="comment">; note5</emphasis>
-<emphasis role="stamnt">e</emphasis></programlisting>
- </informalexample>
- </para>
-
- <para>
- In this example, note3 and note5 occur simultaneously, while note4 actually occurs before note3, that is, at its original place. Durations are unaffected.
- </para>
-
- <para>
- <informalexample>
- <programlisting>
<emphasis role="stamnt">i</emphasis>1 0 1
<emphasis role="stamnt">v</emphasis>2
<emphasis role="stamnt">i</emphasis>. + .
@@ -93,4 +75,17 @@
In this example, the <emphasis>v statement</emphasis> has no effect.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the v statement. It uses the file <ulink url="examples/v.csd"><citetitle>v.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the v statement.</title>
+ <xi:include href="examples-xml/v.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ In this example, note3 and note5 occur simultaneously, while note4 actually occurs before note3, that is, at its original place. Durations are unaffected.
+ </para>
+ </refsect1>
+
</refentry>
diff --git a/scoregens/x.xml b/scoregens/x.xml
index 790b06c..bb88b04 100644
--- a/scoregens/x.xml
+++ b/scoregens/x.xml
@@ -30,4 +30,16 @@
All pfields are ignored.
</para>
</refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the x statement. It uses the file <ulink url="examples/x.csd"><citetitle>x.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the x statement.</title>
+ <xi:include href="examples-xml/x.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
</refentry>
diff --git a/siggen/models.xml b/siggen/models.xml
index 5ccc77b..b07a597 100644
--- a/siggen/models.xml
+++ b/siggen/models.xml
@@ -54,6 +54,12 @@
</listitem>
<listitem><para><link linkend="chuap"><citetitle>chuap</citetitle></link></para>
</listitem>
+ <listitem><para><link linkend="gendy"><citetitle>gendy</citetitle></link></para>
+ </listitem>
+ <listitem><para><link linkend="gendyc"><citetitle>gendyc</citetitle></link></para>
+ </listitem>
+ <listitem><para><link linkend="gendyx"><citetitle>gendyx</citetitle></link></para>
+ </listitem>
</itemizedlist>
</para>
diff --git a/siggen/random.xml b/siggen/random.xml
index 56c7fb5..a6d5602 100644
--- a/siggen/random.xml
+++ b/siggen/random.xml
@@ -15,10 +15,18 @@
</listitem>
<listitem><para><link linkend="duserrnd"><citetitle>duserrnd</citetitle></link></para>
</listitem>
+ <listitem><para><link linkend="dust"><citetitle>dust</citetitle></link></para>
+ </listitem>
+ <listitem><para><link linkend="dust2"><citetitle>dust2</citetitle></link></para>
+ </listitem>
<listitem><para><link linkend="exprand"><citetitle>exprand</citetitle></link></para>
</listitem>
+ <listitem><para><link linkend="fractalnoise"><citetitle>fractalnoise</citetitle></link></para>
+ </listitem>
<listitem><para><link linkend="gauss"><citetitle>gauss</citetitle></link></para>
</listitem>
+ <listitem><para><link linkend="gausstrig"><citetitle>gausstrig</citetitle></link></para>
+ </listitem>
<listitem><para><link linkend="linrand"><citetitle>linrand</citetitle></link></para>
</listitem>
<listitem><para><link linkend="noise"><citetitle>noise</citetitle></link></para>
diff --git a/sigmod/sample.xml b/sigmod/sample.xml
index 0e7229a..a482877 100644
--- a/sigmod/sample.xml
+++ b/sigmod/sample.xml
@@ -13,7 +13,7 @@
<listitem><para><link linkend="opi"><citetitle>i(k)</citetitle></link></para></listitem>
<listitem><para><link linkend="integ"><citetitle>integ</citetitle></link></para></listitem>
<listitem><para><link linkend="interp"><citetitle>interp</citetitle></link></para></listitem>
- <listitem><para><link linkend="opk"><citetitle>i(k)</citetitle></link></para></listitem>
+ <listitem><para><link linkend="opk"><citetitle>k(i)</citetitle></link></para></listitem>
<listitem><para><link linkend="ntrpol"><citetitle>ntrpol</citetitle></link></para></listitem>
<listitem><para><link linkend="samphold"><citetitle>samphold</citetitle></link></para></listitem>
<listitem><para><link linkend="upsamp"><citetitle>upsamp</citetitle></link></para></listitem>
diff --git a/spectral/realtime.xml b/spectral/realtime.xml
index 9475a90..a5b1f92 100644
--- a/spectral/realtime.xml
+++ b/spectral/realtime.xml
@@ -1,108 +1,113 @@
-
-<section id="SpectralRealTime">
- <title>Tools for Real-time Spectral Processing (pvs opcodes)</title>
-
- <para>
- With these opcodes, two new core facilities are added to Csound. They offer improved audio quality, and fast performance, enabling high-quality analysis and resynthesis (together with transformations) to be applied in real-time to live signals. The original Csound phase vocoder remains unaltered; the new opcodes use an entirely separate set of functions based on <quote>pvoc.c</quote> in the CARL distribution, written by Mark Dolson.
- </para>
-
- <para>
- The Csound <link linkend="dnoise"><citetitle>dnoise</citetitle></link> and <link linkend="srconv"><citetitle>srconv</citetitle></link> utilities (also by Dolson, from CARL) also use this pvoc engine. CARL pvoc is also the basis for the phase vocoder included in the Composer's Desktop Project. A few small but important modifications have been made to the original CARL code to support real-time streaming.
- </para>
-
- <para>
- <orderedlist>
- <listitem><para>Support for the new PVOC-EX analysis file format. This is a fully portable (cross-platform) open file format, supporting three analysis formats, and multi-channel signals. Currently only the standard amplitude+frequency format has been implemented in the opcodes, but the file format itself supports amplitude+phase and complex (real-imaginary) formats. In addition to the new opcodes, the original Csound pvoc opcodes have been extended (and thereby with enhanced audio quality in some cases) to read PVOC-EX files as well as the original (non-portable) format.</para>
-
- <para>Full details of the structure of a PVOC-EX file are available via the website: <ulink url="http://www.cs.bath.ac.uk/~jpff/NOS-DREAM/researchdev/pvocex/pvocex.html"><citetitle>http://www.cs.bath.ac.uk/~jpff/NOS-DREAM/researchdev/pvocex/pvocex.html</citetitle></ulink>. This site also gives details of the freely available console programs pvocex and pvocex2 which can be used to create PVOC-EX files in all supported formats.</para></listitem>
-
- <listitem><para>A new frequency-domain signal type, fully streamable, with <emphasis>f</emphasis> as the leading character. In this document it is conveniently referred to as an <emphasis>fsig</emphasis>. Primary support for fsigs is provided by the opcodes pvsanal and pvsynth, which perform conventional phase vocoder overlap-add analysis and resynthesis, independently of the orchestra control-rate. The only requirement is that the control-rate kr be higher than or equal to the analysis rate, whch can be expressed by the requirement that ksmps &lt;= overlap, where overlap is the distance in samples between analysis frames, as specified for pvsanal. As overlap is typically at least 128, and more usually 256, this is not an onerous restriction in practice. The opcode pvsinfo can be used at init time to acquire the properties of an fsig.</para>
-
- <para>The fsig enables the nominal separation between the analysis and resynthesis stages of the phase vocoder to be exposed to the Csound programmer, so that not only can alternatives be employed for either or both of these stages (not only oscillator-bank resynthesis, but also the generation of synthetic fsig streams), but opcodes, operating on the fsig stream, can themselves become more elemental. Thus the fsig enables the creation of a true streaming plugin framework for frequency domain signals. With the old pvoc opcodes, each opcode is required to act as a resynthesiser, so that facilities such as pitch scaling are duplicated in each opcode; and in many cases the opcodes are parameter-rich. The separation of analysis and synthesis stages by means of the fsig encourages the development of a wide range of simple building-block opcodes implementing one or two functions, with which more elaborate processes can be constructed.</para></listitem>
- </orderedlist>
- </para>
-
- <para>
- This is very much a preliminary and experimental release, and it is possible that the precise definition of the opcodes may change, in response to user feedback. Also, clearly, many new possibilities for opcodes are opened up; these factors may also have a retrospective influence on the opcodes presented here.
- </para>
-
- <para>
- Note that some opcode parameters currently have restricted or missing implementation. This is at least in part in order to keep the opcodes simple at this stage, and also because they highlight important design issues on which no decision has yet been made, and on which opinions from users are sought.
- </para>
-
- <para>
- One important point about the new signal type is that because the analysis rate is typically much lower than kr, new analysis frames are not available on each k-cycle. Internally, the opcodes track ksmps, and also maintain a frame counter, so that frames are read and written at the correct times; this process is generally transparent to the user. However, it means that k-rate signals only act on an fsig at the analysis rate, not at each k-cycle. The opocde pvsftw returns a k-rate flag that is set when new fsig data is valid.
- </para>
-
- <para>
- Because of the nature of the overlap-add system, the use of these opcodes incurs a small but significant delay, or latency, determined by the window size (max(ifftsize,iwinsize)). This is typically around 23msecs. In this first release, the delay is slightly in excess of the theoretical minimum, and it is hoped that it can be reduced, as the opcodes are further optimized for real-time streaming.
- </para>
-
- <para>
- The opcodes for real-time spectral processing are
- <link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>,
- <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
- <link linkend="pvscross"><citetitle>pvscross</citetitle></link>,
- <link linkend="pvsfread"><citetitle>pvsfread</citetitle></link>,
- <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>,
- <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link>,
- <link linkend="pvsinfo"><citetitle>pvsinfo</citetitle></link>,
- <link linkend="pvsmaska"><citetitle>pvsmaska</citetitle></link>, and
- <link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>.
- </para>
-
- <para>
- In addition there are a number of opcodes available as plugins in
- Csound5. These are
- <link linkend="pvstanal"><citetitle>pvstanal</citetitle></link>,
- <link linkend="pvsdiskin"><citetitle>pvsdiskin</citetitle></link>,
- <link linkend="pvscent"><citetitle>pvscent</citetitle></link>,
- <link linkend="pvsdemix"><citetitle>pvsdemix</citetitle></link>,
- <link linkend="pvsfreeze"><citetitle>pvsfreeze</citetitle></link>,
- <link linkend="pvsbuffer"><citetitle>pvsbuffer</citetitle></link>,
- <link linkend="pvsbufread"><citetitle>pvsbufread</citetitle></link>,
- <link linkend="pvscale"><citetitle>pvscale</citetitle></link>,
- <link linkend="pvshift"><citetitle>pvshift</citetitle></link>,
- <link linkend="pvsifd"><citetitle>pvsifd</citetitle></link>,
- <link linkend="pvsinit"><citetitle>pvsinit</citetitle></link>,
- <link linkend="pvsin"><citetitle>pvsin</citetitle></link>,
- <link linkend="pvsout"><citetitle>pvsout</citetitle></link>,
- <link linkend="pvsosc"><citetitle>pvsosc</citetitle></link>,
- <link linkend="pvsbin"><citetitle>pvsbin</citetitle></link>,
- <link linkend="pvsdisp"><citetitle>pvsdisp</citetitle></link>,
- <link linkend="pvsfwrite"><citetitle>pvsfwrite</citetitle></link>,
- <link linkend="pvslock"><citetitle>pvslock</citetitle></link>,
- <link linkend="pvsmix"><citetitle>pvsmix</citetitle></link>,
- <link linkend="pvsmooth"><citetitle>pvsmooth</citetitle></link>,
- <link linkend="pvsfilter"><citetitle>pvsfilter</citetitle></link>,
- <link linkend="pvsblur"><citetitle>pvsblur</citetitle></link>,
- <link linkend="pvstencil"><citetitle>pvstencil</citetitle></link>,
- <link linkend="pvsarp"><citetitle>pvsarp</citetitle></link>,
- <link linkend="pvsvoc"><citetitle>pvsvoc</citetitle></link>,
- <link linkend="pvsmorph"><citetitle>pvsmorph</citetitle></link>
- <link linkend="pvsbandp"><citetitle>pvsbandp</citetitle></link>
- <link linkend="pvsbandr"><citetitle>pvsbandr</citetitle></link>
- </para>
- <para>
- A number of opcodes are designed to generate and process streaming
-partials tracks data. these are
- <link linkend="partials"><citetitle>partials</citetitle></link>,
- <link linkend="trcross"><citetitle>trcross</citetitle></link>,
- <link linkend="trfilter"><citetitle>trfilter</citetitle></link>,
- <link linkend="trsplit"><citetitle>trsplit</citetitle></link>,
- <link linkend="trmix"><citetitle>trmix</citetitle></link>,
- <link linkend="trscale"><citetitle>trscale</citetitle></link>,
- <link linkend="trshift"><citetitle>trshift</citetitle></link>,
- <link linkend="trlowest"><citetitle>trlowest</citetitle></link>,
- <link linkend="trhighest"><citetitle>trhighest</citetitle></link>
- <link linkend="tradsyn"><citetitle>tradsyn</citetitle></link>,
- <link linkend="sinsyn"><citetitle>sinsyn</citetitle></link>,
- <link linkend="resyn"><citetitle>resyn</citetitle></link>,
- <link linkend="binit"><citetitle>binit</citetitle></link>
-
- </para>
- <para>
- See the <link linkend="ControlStacks"><citetitle>Stacks</citetitle> section for information on the stack opcodes which can stack f-signals.</link>
- </para>
-
-</section>
+
+<section id="SpectralRealTime">
+ <title>Tools for Real-time Spectral Processing (pvs opcodes)</title>
+
+ <para>
+ With these opcodes, two new core facilities are added to Csound. They offer improved audio quality, and fast performance, enabling high-quality analysis and resynthesis (together with transformations) to be applied in real-time to live signals. The original Csound phase vocoder remains unaltered; the new opcodes use an entirely separate set of functions based on <quote>pvoc.c</quote> in the CARL distribution, written by Mark Dolson.
+ </para>
+
+ <para>
+ The Csound <link linkend="dnoise"><citetitle>dnoise</citetitle></link> and <link linkend="srconv"><citetitle>srconv</citetitle></link> utilities (also by Dolson, from CARL) also use this pvoc engine. CARL pvoc is also the basis for the phase vocoder included in the Composer's Desktop Project. A few small but important modifications have been made to the original CARL code to support real-time streaming.
+ </para>
+
+ <para>
+ <orderedlist>
+ <listitem><para>Support for the new PVOC-EX analysis file format. This is a fully portable (cross-platform) open file format, supporting three analysis formats, and multi-channel signals. Currently only the standard amplitude+frequency format has been implemented in the opcodes, but the file format itself supports amplitude+phase and complex (real-imaginary) formats. In addition to the new opcodes, the original Csound pvoc opcodes have been extended (and thereby with enhanced audio quality in some cases) to read PVOC-EX files as well as the original (non-portable) format.</para>
+
+ <para>Full details of the structure of a PVOC-EX file are available via the website: <ulink url="http://www.cs.bath.ac.uk/~jpff/NOS-DREAM/researchdev/pvocex/pvocex.html"><citetitle>http://www.cs.bath.ac.uk/~jpff/NOS-DREAM/researchdev/pvocex/pvocex.html</citetitle></ulink>. This site also gives details of the freely available console programs pvocex and pvocex2 which can be used to create PVOC-EX files in all supported formats.</para></listitem>
+
+ <listitem><para>A new frequency-domain signal type, fully streamable, with <emphasis>f</emphasis> as the leading character. In this document it is conveniently referred to as an <emphasis>fsig</emphasis>. Primary support for fsigs is provided by the opcodes pvsanal and pvsynth, which perform conventional phase vocoder overlap-add analysis and resynthesis, independently of the orchestra control-rate. The only requirement is that the control-rate kr be higher than or equal to the analysis rate, whch can be expressed by the requirement that ksmps &lt;= overlap, where overlap is the distance in samples between analysis frames, as specified for pvsanal. As overlap is typically at least 128, and more usually 256, this is not an onerous restriction in practice. The opcode pvsinfo can be used at init time to acquire the properties of an fsig.</para>
+
+ <para>The fsig enables the nominal separation between the analysis and resynthesis stages of the phase vocoder to be exposed to the Csound programmer, so that not only can alternatives be employed for either or both of these stages (not only oscillator-bank resynthesis, but also the generation of synthetic fsig streams), but opcodes, operating on the fsig stream, can themselves become more elemental. Thus the fsig enables the creation of a true streaming plugin framework for frequency domain signals. With the old pvoc opcodes, each opcode is required to act as a resynthesiser, so that facilities such as pitch scaling are duplicated in each opcode; and in many cases the opcodes are parameter-rich. The separation of analysis and synthesis stages by means of the fsig encourages the development of a wide range of simple building-block opcodes implementing one or two functions, with which more elaborate processes can be constructed.</para></listitem>
+ </orderedlist>
+ </para>
+
+ <para>
+ This is very much a preliminary and experimental release, and it is possible that the precise definition of the opcodes may change, in response to user feedback. Also, clearly, many new possibilities for opcodes are opened up; these factors may also have a retrospective influence on the opcodes presented here.
+ </para>
+
+ <para>
+ Note that some opcode parameters currently have restricted or missing implementation. This is at least in part in order to keep the opcodes simple at this stage, and also because they highlight important design issues on which no decision has yet been made, and on which opinions from users are sought.
+ </para>
+
+ <para>
+ One important point about the new signal type is that because the analysis rate is typically much lower than kr, new analysis frames are not available on each k-cycle. Internally, the opcodes track ksmps, and also maintain a frame counter, so that frames are read and written at the correct times; this process is generally transparent to the user. However, it means that k-rate signals only act on an fsig at the analysis rate, not at each k-cycle. The opocde pvsftw returns a k-rate flag that is set when new fsig data is valid.
+ </para>
+
+ <para>
+ Because of the nature of the overlap-add system, the use of these opcodes incurs a small but significant delay, or latency, determined by the window size (max(ifftsize,iwinsize)). This is typically around 23msecs. In this first release, the delay is slightly in excess of the theoretical minimum, and it is hoped that it can be reduced, as the opcodes are further optimized for real-time streaming.
+ </para>
+
+ <para>
+ The opcodes for real-time spectral processing are
+ <link linkend="pvsadsyn"><citetitle>pvsadsyn</citetitle></link>,
+ <link linkend="pvsanal"><citetitle>pvsanal</citetitle></link>,
+ <link linkend="pvscross"><citetitle>pvscross</citetitle></link>,
+ <link linkend="pvsfread"><citetitle>pvsfread</citetitle></link>,
+ <link linkend="pvsftr"><citetitle>pvsftr</citetitle></link>,
+ <link linkend="pvsftw"><citetitle>pvsftw</citetitle></link>,
+ <link linkend="pvsinfo"><citetitle>pvsinfo</citetitle></link>,
+ <link linkend="pvsmaska"><citetitle>pvsmaska</citetitle></link>, and
+ <link linkend="pvsynth"><citetitle>pvsynth</citetitle></link>.
+ </para>
+
+ <para>
+ In addition there are a number of opcodes available as plugins in
+ Csound5. These are
+ <link linkend="pvstanal"><citetitle>pvstanal</citetitle></link>,
+ <link linkend="pvsdiskin"><citetitle>pvsdiskin</citetitle></link>,
+ <link linkend="pvscent"><citetitle>pvscent</citetitle></link>,
+ <link linkend="pvsdemix"><citetitle>pvsdemix</citetitle></link>,
+ <link linkend="pvsfreeze"><citetitle>pvsfreeze</citetitle></link>,
+ <link linkend="pvsbuffer"><citetitle>pvsbuffer</citetitle></link>,
+ <link linkend="pvsbufread"><citetitle>pvsbufread</citetitle></link>,
+ <link linkend="pvsbufread"><citetitle>pvsbufread2</citetitle></link>,
+ <link linkend="pvscale"><citetitle>pvscale</citetitle></link>,
+ <link linkend="pvshift"><citetitle>pvshift</citetitle></link>,
+ <link linkend="pvsifd"><citetitle>pvsifd</citetitle></link>,
+ <link linkend="pvsinit"><citetitle>pvsinit</citetitle></link>,
+ <link linkend="pvsin"><citetitle>pvsin</citetitle></link>,
+ <link linkend="pvsout"><citetitle>pvsout</citetitle></link>,
+ <link linkend="pvsosc"><citetitle>pvsosc</citetitle></link>,
+ <link linkend="pvsbin"><citetitle>pvsbin</citetitle></link>,
+ <link linkend="pvsdisp"><citetitle>pvsdisp</citetitle></link>,
+ <link linkend="pvsfwrite"><citetitle>pvsfwrite</citetitle></link>,
+ <link linkend="pvslock"><citetitle>pvslock</citetitle></link>,
+ <link linkend="pvsmix"><citetitle>pvsmix</citetitle></link>,
+ <link linkend="pvsmooth"><citetitle>pvsmooth</citetitle></link>,
+ <link linkend="pvsfilter"><citetitle>pvsfilter</citetitle></link>,
+ <link linkend="pvsblur"><citetitle>pvsblur</citetitle></link>,
+ <link linkend="pvstencil"><citetitle>pvstencil</citetitle></link>,
+ <link linkend="pvsarp"><citetitle>pvsarp</citetitle></link>,
+ <link linkend="pvsvoc"><citetitle>pvsvoc</citetitle></link>,
+ <link linkend="pvsmorph"><citetitle>pvsmorph</citetitle></link>,
+ <link linkend="pvsbandp"><citetitle>pvsbandp</citetitle></link>,
+ <link linkend="pvsbandr"><citetitle>pvsbandr</citetitle></link>,
+ <link linkend="pvswarp"><citetitle>pvswarp</citetitle></link>,
+ <link linkend="pvsgain"><citetitle>pvsgain</citetitle></link>,
+ <link linkend="pvs2tab"><citetitle>pvs2tab</citetitle></link>,
+ <link linkend="tab2pvs"><citetitle>tab2pvs</citetitle></link>.
+ </para>
+ <para>
+ A number of opcodes are designed to generate and process streaming
+partials tracks data. these are
+ <link linkend="partials"><citetitle>partials</citetitle></link>,
+ <link linkend="trcross"><citetitle>trcross</citetitle></link>,
+ <link linkend="trfilter"><citetitle>trfilter</citetitle></link>,
+ <link linkend="trsplit"><citetitle>trsplit</citetitle></link>,
+ <link linkend="trmix"><citetitle>trmix</citetitle></link>,
+ <link linkend="trscale"><citetitle>trscale</citetitle></link>,
+ <link linkend="trshift"><citetitle>trshift</citetitle></link>,
+ <link linkend="trlowest"><citetitle>trlowest</citetitle></link>,
+ <link linkend="trhighest"><citetitle>trhighest</citetitle></link>
+ <link linkend="tradsyn"><citetitle>tradsyn</citetitle></link>,
+ <link linkend="sinsyn"><citetitle>sinsyn</citetitle></link>,
+ <link linkend="resyn"><citetitle>resyn</citetitle></link>,
+ <link linkend="binit"><citetitle>binit</citetitle></link>
+
+ </para>
+ <para>
+ See the <link linkend="ControlStacks"><citetitle>Stacks</citetitle> section for information on the stack opcodes which can stack f-signals.</link>
+ </para>
+
+</section>
diff --git a/srcrelease.sh b/srcrelease.sh
deleted file mode 100755
index c2be261..0000000
--- a/srcrelease.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#! /bin/sh
-# Released under GFDL or the LGPL at your option
-
-# if [ `uname` = "Darwin" ]; then
-# CVS_PATH="/opt/subversion/bin/svn"
-# else
-# CVS_PATH="cvs"
-# fi
-
-CVS_PATH="cvs"
-
-echo Enter version number:
-read CSOUND_VERSION
-echo Enter tag:
-read CSOUND_TAG
-
-$CVS_PATH -d:pserver:anonymous@csound.cvs.sourceforge.net:/cvsroot/csound login
-$CVS_PATH -z3 -d:pserver:anonymous@csound.cvs.sourceforge.net:/cvsroot/csound export -r $CSOUND_TAG manual
-rm -R manual/attic/
-tar -czf Csound$CSOUND_VERSION-manual-src.tar.gz manual
-rm -R manual/
diff --git a/utility/cvanal.xml b/utility/cvanal.xml
index 2f5dde4..63bc08f 100644
--- a/utility/cvanal.xml
+++ b/utility/cvanal.xml
@@ -47,6 +47,12 @@
<para>
<emphasis>-d duration</emphasis> -- duration (in seconds) of the audio segment to be analyzed. The default of 0.0 means to the end of the file.
</para>
+
+ <para>
+ <emphasis>-X</emphasis> -- write machine independent format
+ analysis file.
+ </para>
+
</refsect1>
<refsect1>
diff --git a/utility/hetro.xml b/utility/hetro.xml
index a1b97c8..bd1bac8 100644
--- a/utility/hetro.xml
+++ b/utility/hetro.xml
@@ -85,7 +85,7 @@
<title>Performance</title>
<para>
As of Csound 4.08, <emphasis>hetro</emphasis> can write SDIF
- ouput files if the output file name ends with
+ output files if the output file name ends with
&quot;.sdif&quot; or &quot;.SDIF&quot;. See the <link
linkend="sdif2ad"><citetitle>sdif2ad utility</citetitle></link>
for more information about the Csound's SDIF support.
diff --git a/utility/lpanal.xml b/utility/lpanal.xml
index 5ca8356..7f7dcd1 100644
--- a/utility/lpanal.xml
+++ b/utility/lpanal.xml
@@ -83,6 +83,11 @@
The default is 0.
</para>
+
+ <para>
+ <emphasis>-X</emphasis> -- write machine independent format
+ analysis file.
+ </para>
</refsect1>
<refsect1>
diff --git a/utility/makecsd.xml b/utility/makecsd.xml
index 2ad99a8..43a675c 100644
--- a/utility/makecsd.xml
+++ b/utility/makecsd.xml
@@ -58,6 +58,26 @@
</para>
</listitem>
+ <listitem>
+ <para>
+ optionally, a MIDI file can be included.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ optionally, a Licence can be specified as
+ either a file or a common one.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ if required a score processor can be specified
+ for the &lt;CsScore&gt; section.
+ </para>
+ </listitem>
+
</itemizedlist>
</para>
@@ -97,6 +117,46 @@
= output file name (default: stdout)
</para>
</listitem>
+
+ <listitem>
+ <para>
+ - <emphasis>m fname</emphasis>
+ = specify a MIDI file to include (default: none)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ - <emphasis>b progname</emphasis>
+ = specify the program to process the score (default: none)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ - <emphasis>L fname</emphasis>
+ = file name containing the licence text (default: none)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ - <emphasis>l integer</emphasis>
+ = specify a standard licence (default: none).
+ The ones available are:
+ <itemizedlist>
+ <listitem> 0: All rights reserved</listitem>
+ <listitem> 1: CC BY-NC-ND</listitem>
+ <listitem> 2: CC BY-NC-SA</listitem>
+ <listitem> 3: CC BY-NC</listitem>
+ <listitem> 4: CC BY-ND</listitem>
+ <listitem> 5: CC BY-SA</listitem>
+ <listitem> 6: CC BY</listitem>
+ <listitem> 7: Licenced under BSD</listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+
</itemizedlist>
</para>
@@ -124,6 +184,9 @@
<title>Credits</title>
<para>Author: Istvan Varga</para>
<para>Jan 2003</para>
+ <para>Author: &namejohn;</para>
+ <para>Feb 2011</para>
+ <para>Options for MIDI, score processing and licence new in version 5.14</para>
</refsect1>
</refentry>
diff --git a/utility/mkdb.xml b/utility/mkdb.xml
new file mode 100644
index 0000000..5719ca3
--- /dev/null
+++ b/utility/mkdb.xml
@@ -0,0 +1,38 @@
+
+<refentry id="mkdb">
+ <refentryinfo><title>Utilities</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>mkdb</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>mkdb</refname>
+ <refpurpose>
+ Outputs a catalog of opcodes and plugin modules.
+ <indexterm id="IndexMkdb"><primary>mkdb</primary></indexterm>
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Outputs a catalog of opcodes and plugin modules, sorted by
+ opcode name or by module.
+ </para>
+
+
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>mkdb</command> [-m] [base_directory]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Author: &namejohn;</para>
+ <para>Aug 2011</para>
+ <para>New in version 5.14</para>
+ </refsect1>
+
+</refentry>
diff --git a/utility/other.xml b/utility/other.xml
index 8f66812..5c95fab 100644
--- a/utility/other.xml
+++ b/utility/other.xml
@@ -1,6 +1,7 @@
<section id="UtilityOther">
- <title>Other Csound Utilities (CS, CSB64ENC, ENVEXT, EXTRACTOR, MAKECSD, MIXER, SCALE)</title>
+ <title>Other Csound Utilities (CS, CSB64ENC, ENVEXT, EXTRACTOR,
+ MAKECSD, MIXER, SCALE, MKDB)</title>
<para>The following miscellaneous utilities are available:
<itemizedlist>
<listitem>
@@ -38,6 +39,12 @@
<link linkend="scaleutility"><citetitle>SCALE</citetitle></link>: Scale the amplitude of a sound file.
</para>
</listitem>
+ <listitem>
+ <para>
+ <link linkend="mkdb"><citetitle>MKDB</citetitle></link>:
+ Creates a plugin opcode catalog.
+ </para>
+ </listitem>
</itemizedlist>
</para>
&utilitycs;
@@ -47,5 +54,5 @@
&utilitymakecsd;
&utilitymixer;
&utilityscale;
-
+ &utilitymkdb;
</section>