csound-expression-0.0: src/CsoundExpr/Opcodes/Plugin/Vst4cs.hs
-- | VST for Csound
module CsoundExpr.Opcodes.Plugin.Vst4cs
(vstinit,
vstmidiout,
vstnote,
vstinfo,
vstbankload,
vstprogset,
vstedit)
where
import CsoundExpr.Base.Types
import CsoundExpr.Base.MultiOut
import CsoundExpr.Base.SideEffect
import CsoundExpr.Base.UserDefined
-- | * opcode : vstinit
--
--
-- * syntax :
--
-- > instance vstinit ilibrarypath [,iverbose]
--
--
-- * description :
--
-- vstinit is used to load a VST plugin into memory for use with
-- the other vst4cs opcodes. Both VST effects and instruments
-- (synthesizers) can be used.
--
--
-- * url : <http://www.csounds.com/manual/html/vstinit.html>
vstinit :: [Irate] -> Irate -> Irate
vstinit i0init i1librarypath = opcode "vstinit" args
where args = [to i1librarypath] ++ map to i0init
-- | * opcode : vstmidiout
--
--
-- * syntax :
--
-- > vstmidiout instance, kstatus, kchan, kdata1, kdata2
--
--
-- * description :
--
-- vstmidiout is used for sending MIDI information to a VST plugin.
--
--
-- * url : <http://www.csounds.com/manual/html/vstmidiout.html>
vstmidiout ::
(K k0, K k1, K k2, K k3) =>
Irate -> k0 -> k1 -> k2 -> k3 -> SignalOut
vstmidiout i0nstance k1status k2chan k3data1 k4data2
= outOpcode "vstmidiout" args
where args
= [to i0nstance, to k1status, to k2chan, to k3data1, to k4data2]
-- | * opcode : vstnote
--
--
-- * syntax :
--
-- > vstnote instance, kchan, knote, kveloc, kdur
--
--
-- * description :
--
-- vstnote sends a MIDI note with definite duration to a VST
-- plugin.
--
--
-- * url : <http://www.csounds.com/manual/html/vstnote.html>
vstnote ::
(K k0, K k1, K k2, K k3) =>
Irate -> k0 -> k1 -> k2 -> k3 -> SignalOut
vstnote i0nstance k1chan k2note k3veloc k4dur
= outOpcode "vstnote" args
where args
= [to i0nstance, to k1chan, to k2note, to k3veloc, to k4dur]
-- | * opcode : vstinfo
--
--
-- * syntax :
--
-- > vstinfo instance
--
--
-- * description :
--
-- vstinfo displays the parameters and the programs of a VST
-- plugin.
--
--
-- * url : <http://www.csounds.com/manual/html/vstinfo.html>
vstinfo :: Irate -> SignalOut
vstinfo i0nstance = outOpcode "vstinfo" args
where args = [to i0nstance]
-- | * opcode : vstbankload
--
--
-- * syntax :
--
-- > vstbankload instance, ipath
--
--
-- * description :
--
-- vstbankload is used for loading parameter banks to a VST plugin.
--
--
-- * url : <http://www.csounds.com/manual/html/vstbankload.html>
vstbankload :: Irate -> Irate -> SignalOut
vstbankload i0nstance i1path = outOpcode "vstbankload" args
where args = [to i0nstance, to i1path]
-- | * opcode : vstprogset
--
--
-- * syntax :
--
-- > vstprogset instance, kprogram
--
--
-- * description :
--
-- vstprogset sets one of the programs in an .fxb bank.
--
--
-- * url : <http://www.csounds.com/manual/html/vstprogset.html>
vstprogset :: (K k0) => Irate -> k0 -> SignalOut
vstprogset i0nstance k1program = outOpcode "vstprogset" args
where args = [to i0nstance, to k1program]
-- | * opcode : vstedit
--
--
-- * syntax :
--
-- > vstedit instance
--
--
-- * description :
--
-- vstedit 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.
--
--
-- * url : <http://www.csounds.com/manual/html/vstedit.html>
vstedit :: Irate -> SignalOut
vstedit i0nstance = outOpcode "vstedit" args
where args = [to i0nstance]