Skip to content

Instantly share code, notes, and snippets.

@mmalex
Created May 25, 2020 18:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mmalex/e9311ea9855d521466c75bb2ad1dabb9 to your computer and use it in GitHub Desktop.
Save mmalex/e9311ea9855d521466c75bb2ad1dabb9 to your computer and use it in GitHub Desktop.
bbo notes
--
this is literally just the first time I've got the module compiling, so it's not any way 'done' its just 'a step closer', but at least I can send you a hex file now.
theres gonna be teething trouble coz Ive not tried a lot of this before!
but heres what I think:
FLASHING
to program it, you can use stm32cubeprogrammer, (or the ide), that you can get from https://www.st.com/en/development-tools/stm32cubeprog.html
you can either use DFU mode where you disconnect it from euro power, and plug a USB A<->USB A cable in to it. as it powers up, you may need to short JP1 which forces it into ST's DFU bootrom, windows should detect the USB device and stm32cube programmer should let you flash it via DFU mode. (I havent tried this yet, but will).
alternatively you can use an STLink or nucleo. the little programming header is labelled pin 1, the pins go odd-even and follow this pinout called STDC14:
https://community.st.com/sfc/servlet.shepherd/version/renditionDownload?rendition=THUMB720BY480&versionId=0680X00000BpjnN&operationContext=CHATTER&contentId=05T0X00000gvfdz&page=0
the only pins you need to connect are SWDIO (4), SWCLK (6), NRST (12), and GND (5,7 or 11).
Pin 13 & 14 provide a serial UART but you dont need it hooked up. you can ignore the 3v3 line (3)
in theory you can then use the stlink with the stm32cube programs.
USB
stick a usb stick with some mono 16 bit wav files in the root folder. short filenames so you can read them. max 64. can be as long as you like.
CALIBRATION
on first boot from a blank flash, it should automatically go into calibration mode (and say CALIBRATION! on the screen).
if it doesnt, and says 'Sample' (and a filename) then hold down both buttons for 2+ seconds to go into calibration.
once in calibration, follow the onscreen instructions, press the top button to go thru each step.
it asks you to check the voltage on A output first, with a voltmeter, and you turn the encoder until you get exactly 0v (and then exactly 4v), and then do output B.
then it asks you to plug in the outputs into the top 2 inputs, press next, then the bottom 2 inputs, next, then done!
it shows you the voltage range in mV supported by each input, should be about -5v to 5v on all inputs, if not then something went wrong.
then it goes into a mode where it live shows you the voltage on all 4 inputs in mV.
finally it goes into normal play mode, where the screen reads 'Sample'.
USING IT
top button is always a manual gate (press and hold to trigger), bottom button is reverse toggle (screen goes reverse video when it is going backwards)
ignore the top two knobs & inputs to start with (the ones labelled shape & pitch). theyre not shape and pitch any more, ignore them for now :)
just hook up the outputs to start with, and press to button to trigger the current sample. be sure the gate knob at the bottom is all the way up.
it acts as a 2 pole low pass filter, so you can filter your sample by turning it
turn the encoder to choose a sample (alphabetical of the wavs in the USB drive)
click the encoder to go into 'parameter choose mode'.
basically there are only 2 UI states, and you toggle iwth the encoder: change value of current parameter (eg sample), or choose a parameter.
** make sure the two knobs at the top are at 12 oclock for now. **
so yeah, you click the encoder, twist to find the param you want, click again to edit its value, repeat as much as you like
the parameters for now are:
Sample - what wav file
Drive - overdrive simulation. to make it gnarlier lol. for quiet samples just acts as a volume
Compress - amount of compression, turn it up and combine with drive to make samlpes more even. very useful when granulating as volume drops then
Shimmer - what % of grains are either an octave up (+ve) or down (-ve)
Attack - attack time when the gate goes high. 0=fast, 100=looooong slow
Release - release time.
Stretch - time stretch. 100%=normal speed, 0=frozen. -100 = backwards
Coarse Pitch - pitch offset in semitones
Pitch Fine - pitch offset in 10ths-of-a-semitone
Chorus - randomizes grain positions, causing a chorusy kinda sorta vibe.
the gate input is analog ie the harder you drive it the more it opens the gate.
it goes through the gate knob which is just an attenuator pot, sadly. (I should have made it a separate anlog input pin. I fixed that on wagyu...)
the input CV next to the encoder is a dedicated 1V/Octave pitch input.
MODULATION MATRIX
the two knobs & jacks at the top form an X Y modulation matrix.
top one (labelled pitch) is now 'X', and second one (labelled shape) is Y.
start with the knobs at 12 oclock. this is the 'neutral' position.
now to create modulation, turn X down to 0.
now change any parameters you like.
when you turn X back to 12 oclock, all the params will morph back to their 'base' value
if you go to max, they will swing the other way. (you can edit them there also)
now put X back to 12 oclock, and you can do the same with Y
you can of course CV input X Y, +-4v is full scale
you can combine X and Y modulations
RANDOMISATION
when you are editing any parameter, if you hold down either button and twist the encoder, it sets a 'randomisation amount' on that parameter.
each time the note is triggered, the parameter will be randomised by that amount.
so for example you can set a random amount of coarse pitch, and then each trigger will have slightly randomised pitches
you can even set the randomisation differently at different extremes of X Y modualtion, so eg you can only have randomisation when X or Y is high or low.
randomisation isnt very tuned yet but the basics work as far as I can tell
thats it!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment