Csound Csound-dev Csound-tekno Search About

[Cs-dev] [ANN] dssi4cs

Date2005-07-31 14:40
FromAndres Cabrera
Subject[Cs-dev] [ANN] dssi4cs
Hi,
I've made some progress on making LADSPA and DSSI host opcodes for
csound5. Since I won't have time during this month to work on them, I've
decided to commit what I've got so far.
DONE:
-LADSPA plugins work.
-DSSI plugins load, but nothing else has been implemented, though the
infrastructure to support everything should be there

TODO:
-Clean up and optimize (clean up on deinit).
-implement dssi plugins

It should be now on cvs, both the opcodes and the manual entries.
To build you can add the following to SConstruct:

# DSSI HOST OPCODES
if getPlatform() == 'linux':
    dssiEnvironment = vstEnvironment.Copy()
    print "CONFIGURATION DECISION: Building DSSI plugin support."
    pluginLibraries.append(dssiEnvironment.SharedLibrary('dssi4cs',
        Split('''
        Opcodes/dssi4cs/src/load.c
        Opcodes/dssi4cs/src/dssi4cs.c
        ''')))

Any comments or suggestions are very welcome. Do the opcode names make
sense or using dssi might confuse people and lead to think LADSPA
plugins don't work? Any suggestions there?
Enjoy,
Andrés

The new opcodes are:
---------------------------------------------
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 active() function.

dssiinit may cause audio stream breakups when used in realtime, so it is
recommended to load all plugins to be used before playing.
--------------------------------------------------------------
dssilist 
dssilist — Lists all available DSSI and LADSPA plugins. 


Syntax
                      dssilist
          
Description
dssilist checks the variables DSSI_PATH and LADSPA_PATH and lists all
plugins available in all plugin libraries there.

LADSPA and DSSI libraries may contain more than one plugin which must be
referenced by the index provided by dssilist.

This opcode produces a long printout which may interrupt realtime audio
output, so it should be run at the start of a performance.
--------------------------------------------------------------
dssiactivate 
dssiactivate — Activates or deactivates a DSSI or LADSPA plugin. 


Syntax
dssiactivate ihandle, ktoggle 
Description
dssiactivate is used to activate or deactivate a DSSI or LADSPA plugin.
It calles the plugin's activate() and deactivate() functions if they are
provided.


Initialization
ihandle - the number which identifies the plugin, generated by dssiinit.


Performance
ktoggle - Selects between activation (ktoggle=1) and deactivation
(ktoggle=0).

dssiactivate is used to turn on and off plugins if they provide this
facility. This may help conserve CPU processing in some cases. For
consistency, all plugins must be activated to produce sound. An inactive
plugin produces silence.

Depending on the plugin's implementation, this may cause interruptions
in the realtime audio process, so use with caution.

dssiactivate may cause audio stream breakups when used in realtime, so
it is recommended to load all plugins to be used before playing.
--------------------------------------------------------------------
dssiaudio 
dssiaudio — Processes audio using a LADSPA or DSSI plugin. 


Syntax
aout1 [, aout2, aout3, aout4] dssiaudio ihandle, ain1 [,ain2, ain3, ain4] 
Description
dssiaudio generates audio by processing an input signal through a LADSPA
plugin.


Initialization
ihandle - handle for the plugin returned by dssiinit


Performance
aout1, aout2, etc - Audio ouput generated by the plugin

ain1, ain2, etc - Audio provided to the plugin for processing

dssiaudio runs a plugin on the provided audio and produces audio output.
Currently upto four inputs and outputs are provided. You should provide
signal for all the plugins audio inputs, otherwise unpredictable results
may occur. If the plugin doesn't have any input (e.g Noise generator)
you must still provide at least one input variable, which will be
ignored with a message.

Only one dssiaudio should be executed once per plugin, or strange
results may occur.
---------------------------------------------------------------------
dssictls 
dssictls — Send control information to a LADSPA or DSSI plugin. 


Syntax
dssictls ihandle, iport, kvalue, ktrigger 
Description
dssictls sends control values to a plugin's control port


Initialization
ihandle - handle for the plugin returned by dssiinit

iport - control port number


Performance
kvalue - value to be assigned to the port

ktrigger - determines whether the control information will be sent
(ktrigger = 1) or not. This is useful for thinning control information,
generating ktrigger with metro

dssictls sends control information to a LADSPA or DSSI plugin's control
port. The valid control ports and ranges are given by dssiinit. Using
values outside the ranges may produce unspecified behaviour.
-------------------------------------------------------------------





-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-07-31 15:00
FromIstvan Varga
SubjectRe: [Cs-dev] [ANN] dssi4cs
Andres Cabrera wrote:

> I've made some progress on making LADSPA and DSSI host opcodes for
> csound5. Since I won't have time during this month to work on them, I've
> decided to commit what I've got so far.
> DONE:
> -LADSPA plugins work.
> -DSSI plugins load, but nothing else has been implemented, though the
> infrastructure to support everything should be there

I will have a look at it and try to fix any obvious errors.


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-07-31 15:21
FromAndres Cabrera
SubjectRe: [Cs-dev] [ANN] dssi4cs
Thanks, that would be great. Feel free to change or improve anything.

Andres

On Sun, 2005-07-31 at 09:00, Istvan Varga wrote:
> Andres Cabrera wrote:
> 
> > I've made some progress on making LADSPA and DSSI host opcodes for
> > csound5. Since I won't have time during this month to work on them, I've
> > decided to commit what I've got so far.
> > DONE:
> > -LADSPA plugins work.
> > -DSSI plugins load, but nothing else has been implemented, though the
> > infrastructure to support everything should be there
> 
> I will have a look at it and try to fix any obvious errors.
> 
> 
> -------------------------------------------------------
> SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
> from IBM. Find simple to follow Roadmaps, straightforward articles,
> informative Webcasts and more! Get everything you need to get up to
> speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
> 
> 



-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-07-31 16:04
FromSteven Yi
Subject[Cs-dev] Re: [Csnd] [ANN] dssi4cs
AttachmentsNone  

Date2005-07-31 16:25
Fromjpff@codemist.co.uk
Subject[Cs-dev] Re: [Csnd] [ANN] dssi4cs
SConstruct changed to build subject to options.
==John ffitch


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net