rampart abuse (and use)

An initial guide to Rampart, mainly bytebeats

Since rampart is more platform than any given instrument, this overview tries to cover ground that isnt’ just relevant to the bytebeats sketch.

But, we’ll start with which interface bits play a role in the default bytebeats sketch.

  • 5, pushbutton and encoder: rotate to increase, decrease frequency. push and turn to double or halve freq. short button pushes (1,2 or 3) change the bank of programs (there are three)
  • 6, volume/filter
  • 15/16 are program back and forward buttons
  • 10, controlvoltage inputs 3,6,7 which are averaged with to the controls …
  • a b & c, being the 3 parameters of every bytebeat formula.

Play around :)

At the bottom of the page are firmware update instructions and initial info on how to program.

Connections overview

parts overview

  1. audio (right channel) & clock (left) input. Pocket-operator can be directly connected .Clock comes out at 4 (tx) and can be plugged into 10 (inputs 3, 6 or 7).

  2. digital input/outputs. For bytebeats, 11 needs to be wired to 9 (second from left to 4th from left). That’s the only necessary change to get sound :)

audio out for bytebeats

  1. touch output (from 13). Can be used on the digital pins, (11!) or 3,6 or 7 (at 10). If rampart appears jumpy or noisy, try using a jumper from 13 to pin 3 (top pair over 10).

touch to cv3

You can also daisy chain that for fun 3 param hacking with the touch button.

daisy chain 3,6,7

  1. two pins rx and tx (receive and transmit) The clock signal from 1 goes to tx on the right pin at 4. Bytebeats connect to 3,6 or 7 to modulate a b & c (in addition to the pots a b & c)

  2. encoder / button: a) turning will increase or decrease the frequency, starting on boot at 8000 HZ, steps of 64 HZ. b) Push and hold down and turn left, play backwards at increasing frequency; turn right and forwards increasing frequency (doubling). c) single click: bank 1 of formulas, double click: bank 2, triple click :bank 3

  3. volume/filter it’s advisable to start bytebeats with this at 12 o’clock to avoid harsher high end. Will also mix the relative loudness of input from 1 vs. the ramparts internal audio.

  1. usb power/programming and 8 reset button, if rampart should hang which happens rarely, but can at higher frequencies

  2. Two analog inputs (4&5) and + /- power. Not directly used in the bytebeats sketch

  3. analog inputs 3, 6 and 7 (rows 2x3, 2x6, 2x7) used to modify bytebeats params a/b/c in addition to the pots labeled a b & c at the bottom.

  4. +/- power columns which aren’t used for the bytebeats sketch, but one can, for instance put a capacitor from + to inputs at 10 to create a contral voltage. Very fun with a 1uf Elko.

  1. +/ - sides of the audio output. You can plug in additional signals or tap the output

  2. Touch button with LED, see 3

15/16. Left & Right buttons select previous and next program of bank

Bottom right, barely visible is the audio out. You can plug-in headphones, but turn down 6, vol. First. If you plug in stereo audio to the input, it will feed through but moving the encoder or pushing buttons will make noises. A PO or Scarp signal will be clean (split clock).

Firmware and Arduino

Arduino Sketches

To edit the sketches you can use the arduino ide.

The currently most complete sketch is the rampart3-bytebeat sketch.

A number of Arduino sketches being updated include 2 synths (switch with button 3 on digital pin 2) which have 3 to 4 variable parts of the signal. Both sketches share the wavepacket object as 1st synth. One has PDResonant as second, one an FM synth as second synth.

So, Patch 1 is always a wavelet (based on the wavelet example with mozzi) synth and Patch 2 is an FM synth or PDResonant. Also still rough ideas.

This synth works well with Keep (moat), my analog synth and also with Bastl’s Kastle synth. I’ve also played it with Korg’s micro modular which works quiet well (in both directions).

I’ve included a granular synth without mozzi as an example and two versions of a ‘glitch synth’ from other sources modified to work with rampart.

Upgrading firmware with hex files

First ensure you have drivers installed if you’re on windows or mac. On linux you should not need to install a driver. A good reference for the usb drivers (which work form most arduino boards or the lgt in rampart): https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers/all

The most current firmware hex files will be included in this directory and can be flashed as follows

linux: the device will most probably be ttyUSB0 as below:

  • install avrdude using package manager
  • attach the rampart to usb
  • execute: avrdude -c arduino -b 57600 -F -P /dev/ttyUSB0 -p atmega328p -U flash:w:rampart3-bytebeats.ino.hex

windows:

  • having installed the driver, above
  • install avrdude from https://github.com/avrdudes/avrdude/releases (windows x64, x86 or arm64)
  • attach the rampart to usb
  • execute command: wmic path Win32_SerialPort Where “Caption LIKE ‘%%COM%%’” Get Description, DeviceID
  • note the DeviceID of the “USB Serial Device” which will be something like: “COM5”
  • using the DeviceID you’ve noted, adapt the following command (here -PCOM5).
  • in the directory where you placed the hex file execute: avrdude.exe -patmega328p -carduino -D -PCOM5 -b57600 -Uflash:w:rampart3-bytebeats.ino.hex

macintosh:

  • install the usb driver for the rampart using instructions from : https://github.com/WCHSoftGroup/ch34xser_macos has a .pkg file you can install.
  • install avrdude through MacPorts or Homebrew. (with home-brew it: brew install avrdude).
  • attach the rampart to usb
  • in a terminal execute: “ls /dev/tty*” and note names with tty.wch in them like : tty.wchusbserial1234
  • from the directory where you downloaded the hex file execute: avrdude -c arduino -b 57600 -F -P /dev/tty.wchusbserial1234 -p atmega328p -U flash:w:rampart3-bytebeats.ino.hex