Jared ANDERSON
20230220
grnltr - a Granulator
Initial build for the Daisy Seed platform running on the pod.
Now supports kxmx_bluemchen as a build target.
TLDR: Grab a .bin from the Releases page and either follow the dfu instructions there or use the Daisy Web Programmer to transfer the binary to your pod/bluemchen.
Clone this under the DaisyExamples/pod directory and run make to build.
N.B. The binaries in the Release are built against the fix/uart-rx-dma-mode
libDaisy branch.
You should also init the kxmx_bluemchen submodule if you wish to target the bluemchen.
Default make will build for the pod, to build for bluemchen, initialize and update the kxmx_bluemchen submodule then make with BUILD_TARGET=bluemchen
:
$ git submodule init
$ git submodule update
$ make BUILD_TARGET=bluemchen
$ make BUILD_TARGET=bluemchen program-dfu
Up to 64 Banks of 16 WAV files (total sample size per bank must be < 64MB) from an SDMMC card can be read then be granulated.
Banks should be in separate directories under the /grnltr directory of the SDMMC card.
Waves must be in mono s16 format. I use sox to do conversion - something like:
# convert to 16bit PCM 1 channel 48k wave
sox <in.wav> -r 48000 -c 1 -b 16 -e s <out.wav>
Now supports a simple grnltr.cfg text file in the bank directory, which allows passing BPM, loop and reverse information to grnltr. An example looks like this, with one entry per line:
#file,bpm,loop,rev
01.wav,97.50,True,False
02.wav,100.00,True,False
...
16.wav,113.00,True,False
The grnltr.cfg can be edited by hand or grnltr_gui can be used to help automate its creation.
There is now also a small record buffer for "live" pass through granulization.
Once engaged, the buffer will fill once before grain processing starts.
Some parameters are disabled in this mode.
Parameters are paged and the current page is indicated by the colour of LED1. Turn the encoder to change pages.
Pressing the encoder will cycle the current sample. This can also be done by sending MIDI NoteOn - From Note 60 (C3)
MIDI parameters are accepted no matter what page is currently active.
Knobs and MIDI CC messages are in "catch" mode.
For Toggle parameters, send any CC value to toggle.
LED Colour | Page | Knob1 | Knob2 | Button1 | Button2 |
---|---|---|---|---|---|
RED | Pitch/Time | Grain Pitch (-2 8va to +2 8va) CC3 and Pitch Bend |
Scan Rate* CC1 |
Cycle env type | Reset Grain Pitch and Scan Rate |
ORANGE | Grain Duration/Density | Grain Duration (10 to 200mS) CC9 |
Grain Density (2 to 200 per second) CC14 |
Grain Reverse CC25 |
Scan Reverse* CC26 |
YELLOW | Grain Scatter | Scatter Distance CC20 |
N/A | Toggle Scatter CC15 |
Toggle Freeze CC27 |
GREEN | Randomize | Pitch Distance CC22 |
Quantize Scale CC47 |
Toggle Random Pitch CC21 |
Toggle Random Density CC29 |
BLUE | WAV Select/Record | Sample Start* CC12 Coarse, CC44 Fine |
Sample End* CC13 Coarse, CC45 Fine |
Live Rec Mode CC31 |
Play Rec Buffer CC32 |
PURPLE | Decimate | Bit Crush CC23 |
Downsample CC24 |
N/A | N/A |
VIOLET | Pan | Pan CC33 |
Random Pan Distance CC34 |
Toggle Random Pan CC35 |
N/A |
ROSE | Delay 1 | Delay Mix CC38 |
Delay Time CC39 |
Toggle MIDI gate* CC37 |
Toggle MIDI note retrig* CC36 |
LGREEN | Delay 2 | Delay Feedback CC40 |
Delay Stereo Cross CC41 |
Toggle MIDI note CC42 |
Toggle Wave Loop* CC28 |
Parameters marked with a * are disabled in live record mode.
On the bluemchen the two knobs work as for the pod.
To emulate the buttons, long press the encoder to access parameter select mode.
Select a parameter with the encoder, short press to activate it.
Long press again to exit parameter select mode.
To enter the setup menu, do an extra long press on the encoder.
From the setup menu the MIDI channel can be selected, or a new bank of samples can be loaded by clicking on browse and then picking the desired bank.
On the pod, the setup menu is accessed via a long press - LED1 will turn CYAN. Button1 increments the MIDI channel, button two will cycle through the available sample banks.
A demo and feature walkthrough of the v0.7 version available, click here:
Add recording capability: this is somewhat addressed in a passthrough mode. Recording a set number of bars and then writing to SD is not yet implemented.
Add MIDI control
Add Directory Browsing - Need a screen - target kxmx_bluemchen
Provide a Demo