[ALPHA] ladspa.m.*

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hi,

after a somewhat productive weekend I'm happy to announce some alpha quality software (i.e. bug ridden, not feature complete) for your consideration and feedback :)

But: release early, release often XD

I went a little overboard with modularization and separation of concerns, so in the end it became four packages (with possibly one more in the future - a LV2 plugin to load the synths/instruments). Documentation is also very much lacking, but each package contains at lease a single example file to illustrate the usage.



* ladspa.m - https://github.com/fps/ladspa.m

ladspa.m is a header only c++ library to build and run general synthesis graphs made up out of LADSPA plugins. The interface is kept deliberately kept simple and unsafe, as it is expected that one uses higher level tools to build these synthesis graphs (e.g. using a library on top op ladspa.m.swig or ladspa.m.proto).




* ladspa.m.swig - https://github.com/fps/ladspa.m.swig

ladspa.m.swig are SWIG generated python bindings for ladspa.m. This allows building and running general synthesis graphs made up of LADSPA plugins from within python. This requires ladspa.m. NOTE: I just saw that the swig interface definition lacks the ability to connect outside buffers onto plugin ports. This will be fixed in the next few days..




* ladspa.m.proto - https://github.com/fps/ladspa.m.proto

ladspa.m.proto contains google protobuf definitions for general synthesis graphs made up of LADSPA plugins. It also contains a definition for an instrument file format. This library does not depend on either of the two above. It becomes useful with the last package (ladspa.m.jack) and possibly in the future with an LV2 plugin to load and run these (to be announced when done). The python bindings generated for ladspa.m.proto can be used to generate synth and instrument files that can be loaded by ladspa.m.jack. The instrument file definition allows for polyphony while at the same time putting no constraints on the inner structure of the instrument (each voice is made up out of plugins, they can be identical or not between all voices)..

An example is included which defines a simple sawtooth instrument with exponential envelopes and with 5 identical voices except for a different delay setting on each voice.

https://github.com/fps/ladspa.m.proto/blob/master/example_instrument.py

Pipe its output into a file called e.g. instrument.pb. This you can then load into ladspa.m.jack.instrument.

Here's a little example of the generated instrument file loaded into ladspa.m.jack.instrument and playing a little 120bpm loop (from ardour3) with it:

https://soundcloud.com/fps-2/t-m

This also highlights the need for a higher level interface on top of it to ease the process..




* ladspa.m.jack - https://github.com/fps/ladspa.m.jack

ladspa.m.jack is a library which allows loading ladspa.m.proto synth and instrument definition files into jack hosts that are provided as example clients.

ladspa.m.jack.synth allows loading a synth definition file and run it in the jack graph.

ladspa.m.jack.instrument allows loading an instrument definition file and provides a midi in port which allows playing the synth.




But like I said this is all ALPHA software and I just announce it because someone else might have fun with it. Please report all issues that you find either per email to me, on LAD or LAU or on the issue trackers of the github projects..

Have fun,
Flo

--
Florian Paul Schmidt
http://fps.io

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@xxxxxxxxxxxxxxxxxxxx
http://lists.linuxaudio.org/listinfo/linux-audio-user




[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux