New Tool (2.8): Basement

So, here’s my controller code for the Akai MPK mini I’ve bought little over a year ago. If it ever gets out of beta status it will be called Dashboard though. Maybe when I finally learn how to work with Duplex. Was in doubt over if I’d ever post it, but I want to share it, even though it’s very specific. At this point in time the code hasn’t changed significantly for more than a month or two, so it’s pretty stable (but don’t try editing a delay effects parameters with it… yet). The other thing is it will have to become more split / oo / thought out before anything big can be added to the functions list. I wanted to take a next step and build a kind of “Custom Wave” tool style wave gen but I hit the error of “too many locals in one script”.

Anyway, stop all the tech talk, here’s the tool d/l, here’s the code, hereunder is some pics and screenies and at the end you can find a “user guide” (in quotes because it will leave things open to find out about it)
Please know that this thing should easily work on any controller with pads and knobs, although it’s really specifically made for 16 pads and 8 knobs (MPK has 8 pads, with two banks - I keep it on CC mode for use with Basement, then switch CC button off when doing drums)

Pictures.
full

pads

pots

Screenies.
1 2 3 4 5 6 7 8

Guide.
I’ve numbered pads in a bank, sadly or logically i can’t decide, going from the bottom left one to the right and then top row left to right. The pots are ‘numbered’ a through h starting at the top left, to the right and then second row again left to right. The mappings in the midi mapping window are very straightforward, but if you want the pads to light up with functions (semi-)correctly you will have to put the CC numbers from these pads in the beginning of the code, too. Since I have thrown away or lost the default CC number setup from the MPK it’s no use for me to go set up the tool in a way that it would automatically work with an MPKmini out of the box. It’s got really neat functions though, it’s very modal seeing it’s got 6 or more modes at this point. These modes are:
Default - when no Basement window is opened, the functions on the knobs are the same as what I wrote on the stickers in blue. From a to h:

  • A - Select instrument (difference with Renoise’s default implementation of this is that 0-128 is mapped to the available instrument numbers, this is also the case with track select, edit step, line select, pattern select, etc.)
  • B - Select track
  • C - Push Back (same as tool with same name)
  • D - Select sequence
  • E - Select edit step
  • F - Set current track’s volume
  • G - Select DSP in track
  • H - Select line in pattern (if follow is on, playhead is moved, otherwise edit cursor is moved)

Global - extras for default mode

  • A - Select KB Octave
  • B - Shift (shift track output delay by ‘delay column steps’ aka 1/256th of a line)
  • C - BPM (set between 32 and 128 I believe, just like I said it’s specific)
  • D - Master Volume
  • E - Quantize (off/1/2/3/4/6/8/etc)
  • F - KB Velocity (1…128/off)
  • G & H - F & Q (if you have two Hydras set up on your last track in song called F n Q you can control these, used icw djbpf.xrnt)

Insert - ins new (native) fx

  • A - Track (where to insert)
  • B - Effect (select FX to insert)
  • C - Place (position in chain, defaults to right after currently selected)
  • D - Active (option to insert as inactive machine)

Effect - tries to enumerate the first 8 parameters in currently selected device
Synth - allows to modify all sample parameters, and to apply these changes through all samples in current instrument

  • A - Select sample
  • E - Apply to all (applies after closing dialog with SYNTH pad again)
  • B through D and F through H - see screenshot

Shape - enumerates all hydras in current track with a name starting with ‘@’
short demo in my beat-making with overtune video
Sample - complicated half-finished sample editing thing, it zooms, it selects, sets loop to selection, it slices equal, there’s room (but no time!) for many more functions

  • A - Select sample
  • B - Select mode/function
  • C - Function parameter 1
  • D - Function parameter 2
  • E - Mode parameter 1
  • F - Mode parameter 2
  • G - Function parameter 3
  • H - Function parameter 4

The pads are more straightforward, page one handles most used transport fire buttons (which I do on pc keyboard still mostly, only effect en/disable is used sometime) and page two gets you to the modal dialogs and takes the center frame of renoise to PE, mixer or SE. (the abbreviations on the upper four pads are from old mappings before I made this tool)