dssiinit

dssiinit — Loads a DSSI or LADSPA plugin.

Syntax

ihandle dssiinit ilibraryname, iplugindex [, iverbose] 

Description

dssiinit is used to load a DSSI or LADSPA plugin into memory for use with the other dssi4cs opcodes. Both LADSPA effects and DSSI instruments can be used.

Initialization

ihandle - the number which identifies the plugin, to be passed to other dssi4cs opcodes.

ilibraryname - the name of the .so (shared object) file to load.

iplugindex - The index of the plugin to be used.

iverbose (optional) - show plugin information and parameters when loading. (default = 1)

dssiinit looks for ilibraryname on LADSPA_PATH and DSSI_PATH. One of these variables must be set, otherwise dssiinit will return an error. LADSPA and DSSI libraries may contain more than one plugin which must be referenced by its index. dssiinit then attempts to find plugin index iplugindex in the library and load the plugin into memory if it is found. To find out which plugins you have available and their index numbers you can use: dssilist.

If iverbose is not 0 (the default), information about the plugin detailing its characteristics and its ports will be shown. This information is important for opcodes like dssictls.

Plugins are set to inactive by default, so you *must* use dssiactivate to get the plugin to produce sound. This is required even if the plugin doesn't provide an activate() function.

dssiinit may cause audio stream breakups when used in realtime, so it is recommended to load all plugins to be used before playing.

Examples

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

Example 198. Example of the dssiinit opcode. (Remember to change the Library name)

<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 dssiinit.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2

gihandle dssiinit "g2reverb.so", 0, 1
gaout    init  0

instr 1	; activate DSSI

dssiactivate gihandle, 1
endin

instr 2

ain1	diskin2 "beats.wav", 1

gaout = gaout+(ain1*.3)
endin

instr 3 
	
dssictls gihandle, 4, 100, 1	; room 10 to 150 
dssictls gihandle, 5, 10, 1	; reverb time 1 to 20
dssictls gihandle, 6, .5, 1	; input bandwith 0 to 1
dssictls gihandle, 7, .25, 1	; damping 0 to 1
dssictls gihandle, 8, 0, 1	; dry -80 to 0
dssictls gihandle, 9, -10, 1	; reflections -80 to 0
dssictls gihandle, 10, -15, 1	; rev. tail -80 to 0
endin

instr 4

aout1, aout2 dssiaudio gihandle, gaout, gaout	;get beats.wav and
	     outs aout1,aout2	 		; stereo DSSI plugin

gaout = 0
endin
</CsInstruments>
<CsScore>
i 1 0 2 
i 2 1 10
i 3 1 10
i 4 0 10
e
</CsScore>
</CsoundSynthesizer>


Credits

2005

By: Andrés Cabrera

Uses code from Richard Furse's LADSPA sdk.