bl00mbox is a modular audio engine designed for the flow3r badge. It it
suitable for live coding and is best explored in a REPL for the time being.
Upcoming features
-----------------
(in no specific order)
1) Expose hardware such as captouch and IMU as pseudo-signals that plugins can subscribe to. This frees the repl for parameter manipulation while the backend takes care of the playing surface, neat for live coding.
2) Stepped value naming
Patches
-------------
In bl00mbox all sound sources live in a channel. This allows for easy
application and patch management. Ideally the OS should provide each application
with a channel instance, but you can also spawn one directly:
.. code-block:: pycon
>>> import bl00mbox
# get a channel
>>> blm = bl00mbox.Channel()
# set channel volume
>>> blm.volume = 5000
The easiest way to get sound is to use patches. These are "macroscopic" units
and can often be used without much thinking:
.. code-block:: pycon
# no enter here, press tab instead for autocomplete to see patches
>>> bl00mbox.patches.
# create a patch instance
>>> tiny = blm.new(bl00mbox.patches.tinysynth_fm)
# connect sound output to mixer of the channel
>>> tiny.signals.output = blm.mixer
# play it!
>>> tiny.signals.trigger.start()
# try autocomplete here too!
>>> tiny.
# patches come with very individual parameters!
>>> tiny.signals.waveform = 0
>>> tiny.signals.trigger.start()
Plugins
----------
We can inspect the patch we created earlier:
.. code-block:: pycon
>>> tiny
[patch] tinysynth_fm
[plugin 32] osc_fm
output [output]: 0 => input in [plugin 34] ampliverter