Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] CsoundVST broken as VST plugin

Date2005-03-02 00:27
From"Michael Gogins"
SubjectRe: [Cs-dev] CsoundVST broken as VST plugin
Thanks Istvan, that did the trick. I've committed my changes to Csound 5 
CVS.

To use CsoundVST as a VST plugin or effect, the following command line will 
work:

csound -f -h -+rtmidi=null -M0 -d -n temp.orc temp.sco

In VST hosts, you can only use Csound "classic mode", i.e. no Python, until 
and unless I create a setVST method in Python that will do the preCompile 
first. But this is fine for now.


----- Original Message ----- 
From: "Istvan Varga" 
To: 
Sent: Tuesday, March 01, 2005 6:08 AM
Subject: Re: [Cs-dev] CsoundVST broken as VST plugin


> Michael Gogins wrote:
>
>> Istvan, could you please review the CsoundVST code (in 
>> frontends/CsoundVST/CsoundVST.cpp) and devise a means for plugging a MIDI 
>> driver into Csound via the Csound API -- not only MIDI driver function 
>> pointers in ENVIRON->midiParams, but also setting the required flags in 
>> OPARMS?
>
> I do not really understand what flags you are referring to, but here
> is how you can set up your own MIDI driver without the (otherwise
> recommended) use of a dynamic library:
>
>   1. you need to call csoundPreCompile() and csoundCompile()
>      separately, so call csoundPreCompile() first.
>   2. use the API to set up MIDI function pointers. You can find
>      details about this in InOut/midirecv.c, but here are some
>      notes regarding the use of the interface:
>        * the device open functions should take a csound instance
>          pointer, a void** pointer to a "user data" pointer (you
>          can use this to store a handle for the stream, e.g. a
>          pointer returned by malloc()), and a string device name
>          (this will be whatever was set for -M or -Q).
>        * the read/write functions take a csound instance pointer,
>          a void* "user data" pointer (see above), a buffer that
>          stores MIDI data, and an integer value that is the size
>          of the buffer (in bytes) for the read function, and the
>          number of bytes to write for the write function.
>          The buffer should always contain complete (not truncated)
>          messages, and should not make use of the MIDI feature of
>          repeating the status byte.
>        * the close functions take a csound instance pointer, and
>          'void *userData' already explained above. The functions
>          should check for userData being NULL which means that
>          the stream is already closed.
>        * all functions have an integer return value, which is
>          expected to be zero on success in the case of the
>          open and close calls, and the number of bytes read or
>          written in the case of the read/write functions.
>          Errors should be reported by returning a negative error
>          code.
>   3. you can now call csoundCompile(); by appending "-+rtmidi=null"
>      to the command line flags (argc/argv) you can make it sure
>      that no dynamic libraries will override your functions.
>
>
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
> 




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net