The heavy hvcc compiler for Pure Data patches. Updated to python3 and additional generators
Daisy is an embedded platform for music. It features everything you need for creating high fidelity audio hardware devices.
Currently daisy platform is supported for:
pod
petal
patch
patch_init
field
Which can be configured using the -m
metadata.json daisy.board
setting:
{
"daisy": {
"board": "pod"
}
}
However one can also create custom board layouts. See the Electro-Smith documentation for more information.
The custom layout can be passed on via the meta.json as such:
{
"daisy": {
"board_file": <path to board.json>
}
}
You can also set a custom path to your libDaisy directory. This can either be a string to the full or relative path or a number indicating the levels deep this directory is compared to the output directory. The default value for this is 2
.
{
"daisy": {
"libdaisy_path": "/somewhere/libdaisy/"
}
}
Or the level:
{
"daisy": {
"libdaisy_path": 5
}
}
Board files that have OOPSY_TARGET_HAS_MIDI_INPUT
configured will automatically set up UART MIDI on the default USART1 Rx and Tx pins of the Daisy (D13/14).
Additionally usb_midi
, running on the onboard micro-usb, can be enabled separately via the meta.json
{
"daisy": {
"usb_midi": true
}
}
At the moment all midi messages will be merged between USB and UART MIDI interfaces. In the future it will likely be possible to assign additional UART pins and group them under a specific PD midi "port".
Currently supported MIDI messages are: Note On/Off, Poly Aftertouch, Control Change, Program Change, Channel Pressure, Pitch Bend, and Midi Realtime messages.
Printing to serial console can be enabled using the debug_printing
flag in the meta.json:
{
"daisy": {
"debug_printing": true
}
}
This will increase the program size with a few kb and will disable usb_midi
as we currently do not have composite USB device yet.
This can be done by adding either to the meta.json:
{
"daisy": {
"samplerate": 96000,
"blocksize": 128
}
}
Do note that the samplerate will be automatically set to either 16k, 32k, 48k, or 96k. Blocksize will need to be 256 or less and is automatically capped.
Using the Daisy bootloader you can flash the program to other parts of the Daisy memory. Read the libDaisy documentation for more information.
The linker and APP_TYPE
can be set in the json metadata accordingly:
{
"daisy": {
"linker_script": <path_to_lds_file>,
"bootloader": <APP_TYPE>
}
}