Quartet Firmware [TB2]

Quartet Firmware

With the Quartet firmware, the TB2 is a 4 voice paraphonic synth with 16-step sequencer.

Here is the latest version of the TB2 Quartet firmware: Groovesizer_TB2_132

To open the firmware in the Arduino IDE, unzip the file above, and drag the Groovesizer_TB2_xxx folder to the folder where you keep your  Arduino sketches. Open the file Groovesizer_TB2_xxx.ino in the Arduino IDE. All dependent files will be opened and accessible in tabs.


In order for the firmware to compile, you will need the following libraries installed:

  1. DueTimer-master
  2. MIDI
  3. SdFat
  4. TB2_LCD

Download the above library files and keep them zipped. To install them from the Arduino IDE, use Sketch/Import Library/Add Library.   For more detailed instructions, see this guide.


For information on uploading firmware to the Arduino Due board, please consult the official page at Getting started with the Arduino Due. If your computer can’t find a COM port for the Due, see this post.

NOTE: The latest IDE (from 1.6.2 onwards) defaults to Arduino Yun as board. This needs to be changed to Arduino Due under Tools/Board to compile and upload firmware to the TB2’s Due. You’ll find no Arduino Due under the list though. You first have to download an additional package – in the Boards Manager (also under Tools/Board), download Arduino SAM Boards (32-bits ARM Cortex-M3) by Arduino. Then pick Arduino Due from the list under Tools/Board. You can choose either version, Programming Port or Native USB Port. I use the native port since uploading is a lot faster (physically the native port is the micro USB port closest to the back of the TB2). What you lose out on is serial communication back to the Arduino IDE (useful for debugging) – I simply use the TB2’s LCD for debugging. Also, don’t forget to set the appropriate port for your choice under Tools/Port – the wrong port selection has had me tearing out my hair in  the past.

NB: there seems to be an issue with the Quartet firmware’s file system with recent versions of the Arduino IDE. The Quartet firmware works as expected with Arduino IDE 1.6.5 and Due Board files 1.6.4

WAVs and Patches

Adventure Kid Single Cycle Waveforms

Here’s a sub-set of 2000 single cycle waveforms by Adventure Kid that can be used with the TB2’s oscillators and LFO. ADVENTURE_KID_A

Unzip and drag the 20 folders onto an SD card to use them with the TB2. I’ve kept the original organization of the folders, but had to shorten the file names to work with the TB2’s 8.3 naming convention. The full collection can be found here.


Here’s a small selection of patches to get you started. PRESETS

Unzip the folder, and put it on an SD card to use with the TB2. If you come up with something cool, please share it, or send it to me to include in this collection.


V132 2015-07-17 Groovesizer_TB2_132

  • mono & unison now work in the arpeggiator and the sequencer

V131 2015-07-13 Groovesizer_TB2_131

  • implemented 3 flavors of mono mode
  • implemented unison mode with selectable number of voices (1 – 4)
  • implemented spread in unison mode
  • implemented portamento (porta time up to 255ms)
  • mono mode, unison and portamento is saved on a per patch basis

V129 2015-05-18 Groovesizer_TB2_129

  • allows the TB2 to respond to pattern change requests in the sequencer
  • made a small fix in the reading of pot values in the sequencer

V128 2015-04-17 Groovesizer_TB2_128

  • LFO can now be synced to BPM (adjust LFO with Shift-R/Enter button held)

V127 2015-04-11 Groovesizer_TB2_127

  • added a General Settings page with a volume setting

V126 2015-03-26 Groovesizer_TB2_126

  • Oscillator 1’s detunes is now adjusted in semitones from -24 to +24

V125 2015-03-25 Groovesizer_TB2_125

  • fixed bugs in the file system
  • updated the manual to reflect changes in the file system

V124 2015-03-17 Groovesizer_TB2_124

  • delete notes in sequencer’s note editor by turning pot all the way counterclockwise
  • fixed bug: adjusting LFO rate with inc/dec buttons doesn’t update until keyboard keys are released
  • fixed bug: PWM range only responds from 128 to 255

V122 2015-03-17 Groovesizer_TB2_122

  • replaced the standard LiquidCrystal library with a slightly modified TB2_LCD that improves glitching
  • removed a slight hesitation when pattern changes in sequencer

V120 2015-01-13 Groovesizer_TB2_120

  • implemented a bit muncher effect (controls on Shaper & Gain page)

V119 2015-01-07 Groovesizer_TB2_119

  • commented out a section of code that handled incoming CC2 midi messages (works well for wind control, but causes problems with aftertouch)
  • removed the unused Shp label in the modulation section

V118 2015-01-05 Groovesizer_TB2_118

  • on the first settings page, you can now choose whether to send MIDI realtime sync messages (start/stop/clock), respond to it, or do neither.

V117 2015-01-04 Groovesizer_TB2_117

  • implemented waveshaper & gain to raise output level
  • implemented MIDI note output from front-panel keyboard
  • implemented send MIDI clock start / stop from sequencer
  • implemented MIDI trigger messages out from sequencer
  • expanded settings (MIDI clock out, front-panel keyboard out yes/no, front-panel keyboard velocity, settings related to MIDI trigger out)

V115 2014-12-31 Groovesizer_TB2_115

  • implemented save/load settings
  • LFO rate knob now behaves as expected (fixed an issue where LFO rate changes only updated when envelope was triggered)
  • implemented a volume ramp around loading of patches so that there are no loud pops and thunks

V114 2014-12- 25 Groovesizer_TB2_114