[Clam-devel] Re: OSC in CLAM

Han, Yushen yushen.han at gmail.com
Thu Jul 31 13:52:03 PDT 2008


Hi, Pau

Thanks for your commit 11704 and 11709. Here I have 3 problems related
to your commit about the OSC plugin using liblo.

When I was trying to integrate OSC (using a simple Liblo) as the input
to drive my plugin in realtime:
(1) I could not open threecontrols.clamnetwork in my NetworkEditor due
to "error creating a processing object of type 'LibloSource' which is
not available.

"Not available processing" is an old problem haunted my NetworkEditor
- it had problems in finding plugin processings.
I tried to compile CLAM first, plugin second and NetworkEditor third
yesterday but it did not help.
I wonder how NetworkEditor looks for processings belong to the plugin.
Why could it find many other processing? Can you explain a bit?

(I am pretty sure that I could link the libraries by
"-lplugins_osc_source -llo" when I call g++ to compile and link.)

(2) To circumvent problem (1), I made a simple "myLibloNetwork.cxx" as attached.
However it complained "No out port named 'osc to control 1'." in runtime.
I checked your threecontrols.clamnetwork and LibloSource.hxx, "osc to
control 1" "osc to control 2" and "osc to control 3" should be the
valid port names.
Do you know what was wrong?  (I append the full error message below
for your information.)

(3) It seemed that my ControlPrinter failed to print any control
information to console.
In the attached screenshot "fundamental2control", I set "GuiOnly" to
be false but nothing is printed out.
Am I missing anything there?

------
Last week I add some post-voice processing to deal with the transition
between voices more gracefully.
Also, I merged my and Greg's plugin together -> realtimeSMSSynthesizer.
I removed all header files included only by his plugin from the system fold.
( But I felt that we were dealing with instruments of different
natures. Mine was more note-based while his is more continuous. The
user would have to give verbose parameters from the command line for
different sound.)

Best regards,
Han, Yushen


149-159-132-38:examples yushen$ ./myLibloNetworkExe
##########################################################
######################## WARNING #########################
##########################################################
At file scons/libs/core/include/CLAM/Factory.hxx line 280
WARNING. While adding a creator method in the factory, id
'AudioDatabaseReader' was already registered.
##########################################################
######################## WARNING #########################
##########################################################
At file scons/libs/core/include/CLAM/Factory.hxx line 280
WARNING. While adding a creator method in the factory, id
'SDIFDatabaseProcessing' was already registered.
##########################################################
######################## WARNING #########################
##########################################################
At file scons/libs/core/include/CLAM/Factory.hxx line 280
WARNING. While adding a creator method in the factory, id
'AudioDatabaseReader' was already registered.
##########################################################
######################## WARNING #########################
##########################################################
At file scons/libs/core/include/CLAM/Factory.hxx line 280
WARNING. While adding a creator method in the factory, id
'SDIFDatabaseProcessing' was already registered.
##########################################################
######################## WARNING #########################
##########################################################
At file scons/libs/core/include/CLAM/Factory.hxx line 280
WARNING. While adding a creator method in the factory, id 'LibloSink'
was already registered.
##########################################################
######################## WARNING #########################
##########################################################
At file scons/libs/core/include/CLAM/Factory.hxx line 280
WARNING. While adding a creator method in the factory, id
'LibloSource' was already registered.
Starting the server
LibloSource::ConcreteConfigure: STARTING the server. port 8000
##########################################################
################### ASSERTION FAILED #####################
##########################################################
At file scons/libs/core/src/OutPortRegistry.cxx line 44
No out port named 'osc to control 1'.
Try with:
 Unable to adquire symbols names for the backtrace




On Thu, Jul 24, 2008 at 7:25 PM, Pau Arumí <parumi at iua.upf.edu> wrote:
> Hi Yushen,
> I've done a little housekeeping in the plugins/osc
>
> commit 11704
>
>  * deprecated (moved to deprecated/) osc-example.clamnetwork
>  * fixed threecontrols.clamnetwork (added ServerPort attr)
>
> commit 11709
>  * added new processing LibloSink
>
>
> On dj, 2008-07-24 at 17:01 -0400, Han, Yushen wrote:
>> Hi, Pau and Greg
>>
>> I was able to compile the osc plugin after I installed the liblo-0.25.
>
>> However, I still could not open osc-example.clamnetwork in /clam/plugin/osc
>> because "OSCSourceProcessing" is missing from NE.
>
>
> osc-example.clamnetwork was using the processing OSCSourceProcessing,
> based on oscpack lib, so it's discontinued. We changed from oscpack to
> liblo because it is well distributed, while oscpack is not in Debian
> repos (because of license issues)
>
>> I have 2 questions:
>>
>> (1) Should this osc plugin work with NE after compiling? Do I miss anything?
>
> Now the existing clamnetwork (which is a LibloSource -> ControlPrinters)
> should work
>
>> (2) How can I test the osc with what I already have?
>
> LibloSource|Sink is just a starting point for a more serious OSC
> processing development. Right now it is limited to 3 float parameters
> which are sent to out ports. At least the number of ports should be
> dynamic.
>
> The more straightforward way to integrate with a synth could be using
> controls. For that you need to model a note using float controls (or
> ints and bools sent as floats).
> Of course, for that you need the synth working in streaming mode (that
> is, in NetworkEditor)
>
>
>> In testOscClient, I find out some information about testing osc with a
>> mouse under Max.
>> I am downloading Max5 now. Is that the right way to go?
>
> Not really. Max is not open-source nor cross-platform. Of course, making
> a synth OSC enabled (or MIDI enabled for the matter) allows using Max,
> and that's great. But if you have to pick a (first) tool for controlling
> the synth, choose something open-source (PureData, for example) allowing
> a broader adoption (and testing from CLAM devels).
>
> However, for normal developing with OSC I would neither use PureData
> (nor Max). I'd just send controlled OSC events using some trivial python
> script. You have an example here:
> plugins/osc/oscpython/sendControlsOSC.py
>
> To conclude, let me say once again that the top priorities of the GSoC
> project now is having code integrated. Just do simple non-breaking
> changes and send the patches. The first thing to address is having score
> files commited and clear instructions on how to play the synth (only
> using files inside the repos). Second, merging the two synths dirs
> (since most of its code is repeated). And third, addressing the
> streaming (or NE) version.
>
> Regards,
> Pau
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: myLibloNetwork.cxx
Type: application/octet-stream
Size: 4973 bytes
Desc: not available
URL: <http://lists.clam-project.org/pipermail/clam-devel-clam-project.org/attachments/20080731/4ba5eed1/attachment-0005.obj>


More information about the clam-devel mailing list