Previous: sfplugin, Up: Marsystem Interaction
mslOne of the most useful and powerful characteristics of Marsyas is the ability to create and combine MarSystems at run time. msl (marsyas scripting language) is a simple interpreter that can be used to create dataflow networks, adjust controls, and run sound through the network. It's used as a backend for user interfaces therefore it has limited (or more accurately non-existent) editing functionality. The current syntax is being revised so currently it's more a proof-of-concept. Msl has been inactive for a while as the SWIG bindings to scripting language seem to be the way to go.
Here is an example of creating a simple network in msl and playing a sound file:
msl
[ msl ] create Series playbacknet
[ msl ] create SoundFileSource src
[ msl ] create Gain g
[ msl ] create AudioSink dest
[ msl ] add src > playbacknet
[ msl ] add g > playbacknet
[ msl ] add dest > playbacknet
[ msl ] updctrl playbacknet SoundFileSource/src/string/filename technomusic.au
[ msl ] run playbacknet
The important thing to notice is that both the creation of MarSystems and their assembly into networks can be done at run-time without having to recompile any code. It also possible to use the GNU readline utility to provide more friendly user editing and command completion in Msl.