Just Friends, v2.0 (including 'Just Type' for interaction with monome's Teletype)

How to update your Just Friends (and teletype) modules to new firmware. Outline of the new commands for Teletype, and how they relate to Just Friends.

Just Type allows monome's teletype to remote-control a number of features & parameters on Just Friends, both on the panel, and under the hood. An additional takeover mode turns the module into a complete polyphonic synthesizer.

Firmware Upgrade


See: monome-modular-update for details on how to update the monome teletype module. You'll need to use the new teletype.hex included alongside these docs. In future teletype v1.3+ will include Just Type support.

NB: Backup your teletype scenes first to avoid losing them!

Just Friends

Just Friends includes Olivier Gillet's stm-audio-bootloader preburnt onto each module. This allows easy firmware updates by playing an audio file into the Just Friends module.

Download the 'JustFriendsv2_x.wav' file to your computer or phone. The file is a ~3 minute, 16bit, 48kHz mono wave file.

NB: Make sure your soundsource's volume is at maximum


NB: Make sure your soundsource is set to 48kHz playback (automatic on most portable devices)

At this point you should see the right-most (6N) LED on Just Friends slowly blinking (The first LED may also be lit).

NB: IMPORTANT! Turn off your synth! Remove the cable from your soundsource, then from the RUN jack, and restart. This is to make sure JF won't damage your soundsource.


A number of error situations can arise for different (and sometimes inexplicable) reasons.

If the LEDs are not slowly flashing and instead 3N is lit solidly (and perhaps IDENTITY & 6N), a number of errors could have occured:

Audio Interrupted:

If the audio is playing back and the update looks to be going well, but then stops, some extraneous sound (message, notification) has likely corrupted the stream. No worries! Just turn the synth off then back on, and restart the audio stream. If the error occurs at the same point each time, it is possible the audio file is corrupted - redownload and try again!

Audio Too Quiet:

If the 6N LED is flashing, but doesn't shift to the 5N LED after the audio playback begins, the soundsource likely isn't loud enough. Turn the level up to maximum, or you may need to use a different device (some phones are not loud enough).

Playback Issues:

If the 6N led is flashing but as soon as you play audio 3N is lit, there might be a problem with the playback. Make sure your playback device is set to 48kHz (this is automatic on most portable devices). If you're using a DAW for playback, make sure you've changed the audio driver settings to 48kHz. -> Else, see below:

Ground Issues:

It's important that the synth & soundsource have a strong ground connection to each other. If this is not the case, a number of things may be observed. 1: The 6N LED may never flash when turning on and instead 3N will be lit straight away. 2: 6N may flash, but as soon as you start playback it goes to the 3N error state.

Some trial and error is likely required here. It seems to depend on both the power supply in your modular case, and also the nature of the playback device. If you're using a portable device, try attaching (or disconnecting) the power source. If your synth has an audio output, try connecting (or disconnecting) the audio cable to another piece of gear which is grounded (most studio gear).


Connect the II

Connection between teletype & Just Friends is acheived with a 6pin ribbon cable attached to the 2x3 pin headers on the rear of each module. They are marked with 'ii' on both modules. Make sure to orient the white stripe (ground) to the red-stripe of the cable on both sides.

Just Type: Remote Control

These commands allow remote control of standard Just Friends functionality directly from teletype's scripting engine. Functionality is analogous to control voltage patching.

NB: While Just Friends communicates with the 'ii' protocol, there is no need to use the II prefix before any of these commands.

JF.TR channel state

Simulates a TRIGGER input on JF.


Overrides the RUN state of Just Friends. Allows for RUN modes to be accessed without needing to add a patch cable to the RUN input. Inserting or removing a cable will not affect the state, until RMODE is set back to zero.

JF.RUN state

Directly sets the 'voltage' on the RUN input. Particularly for digital control over the RUN modes without needing a calibrated voltage. Expected input is in the V -5 to V 5 range from teletype. This 'voltage' is added to any voltage physically applied to the jack.

NB: JF.RUN has no effect unless JF.RMODE is set to 1.

Just Type: Extended Functions

These commands extend the standard functionality of Just Friends to allow extended techniques. These commands are applicable in all modes.

JF.SHIFT transpose

Shifts the tranposition of Just Friends, regardless of speed setting. Shifting by V 1 doubles the frequency (sound) or the rate (shape).

JF.VTR channel velocity

Acts similarly to JF.TR with additional velocity setting. This simply scales the voltage output of the whole channel, allowing programmatic attenuation of individual outputs.

Just Type: Modalities

Just Friends can take on alternate personalities when connected with Teletype. Either a rhythm machine, or polyphonic synthesizer, altering and extending the functionality available on the front panel. Set JF.MODE to 1 and the relative mode will be entered (based on the speed switch).

JF.MODE mode

Enters the synthesis/rhythms modes.

Just Type: Synthesis Mode

IN SOUND MODE: Just Friends becomes a polyphonic synthesizer. Each of the 6 channels can be controlled individually, or dynamically assigned in traditional poly-synth fashion. The pitch of each oscillator is set digitally, while the RAMP & CURVE controls act as normal, affecting the waveshape of the oscillator.

A Vactrol Low-Pass Gate model is used to implement amplitude envelopes over each channel, triggered digitally, or physically from the hardware TRIGGERS. The time-base of this envelope is controlled with the TIME control, while the attack-release ratio is controlled by the INTONE control. Due to the nature of the LPG model high-frequencies will be rolled off as volume decreases, encouraging use of varying velocities.

Each channel incorporates an internal (sinewave) FM oscillator which follows the tuning of the note it is currently playing. This modulation oscillator will apply Frequency Modulation to the channel, depending on the FM control. At 12:00 no modulation is applied, while turning CCW will apply a constant amount of FM. Turning CW applies FM following the amplitude envelope of the voice. A control-voltage in the FM input adds to any amount of modulation applied by the knob (ie. it sets the FM index).

The frequency relationship between the carrier & modulation oscillators is set by a voltage in the RUN jack (or by digital RUN control). At zero the pitches are equal. Above zero, each volt increases the pitch by 1 harmonic (eg. 1V = 1 octave up). Below zero, each volt decreases the pitch by 1 sub-harmonic (eg. -2V = -1.5 Octaves). While the pitch is continuously variable, the control is heavily shaped to have a large plateau at each harmonic for easy tuning.

JF.VOX channel note velocity

Allows note sequencing on a specific channel. Any JF.VOX command will override the selected channel. All channels can be set simultaneously with a channel value of 0.

JF.NOTE note velocity

Polyphonically allocated note sequencing. Works as JF.VOX except applies the NOTE to a free voice, or the oldest voice if all currently active.

NB: simply assigns sequentially currently. needs smarter note stealing for sustain mode.

  • note sets the pitch relative to C3 (eg: N 3 is Eb, V 1 is C4).
  • velocity sets volume output, similar to JF.VTR.

  • JF.GOD¬†mode

    Redefines C3 to align with the 'God' note. See: https://attunedvibrations.com/432hz/ or http://www.roelhollander.eu/en/tuning-frequency/goebbels-and-440/.

    When triggers are sent (either hardware or via JF.TR / JF.VTR) they apply the most recent settings for that channel, encouraging digital & control-voltage combined systems.

    Just Type: Rhythms Mode

    IN SHAPE MODE: Just Friends acts as per normal in shape mode. Atop these standard functions is a rhythmic engine for complex timebased effects, allowing for complex phase & pattern based outputs.

    The timebase can be set either from a repetitive JF.TICK message, or with a simple beats-per-minute command (also via JF.TICK). This rhythm can further be reset to align with other clocks. A quantization system is also included allowing triggers (CV or digital) to be locked to rhythmic sub-divisions.

    This timebase is then used as a meter which can be divided into sub-sections of up to 64 parts. JF.VOX and JF.NOTE are now used to create streams of rhythmic events, where the number of repetitions per trigger & the rhythmic sub-division at which to play them are controlled. Thus each channel can be set to generate it's own specific train of envelope shapes.

    JF.MODE mode

    JF.TICK clock/bpm

    JF.QT division

    JF.VOX channel division repeats

    Creates a stream of rhythmic envelopes from the selected output.

    In sustain mode, the repeats setting controls a decay-rate of the envelopes that occur while the trigger is held high. The value thus sets an approximate number of repetitions before the level reaches zero.

    JF.NOTE division repeats

    Functions similarly to JF.VOX but with dynamic note allocation.

    Just Type: Retuning

    JF.TUNE channel num denom

    Adjusts the tuning ratios between channels. The tuning tables applied by the INTONE control can be altered & saved as a custom set for Just Friends. Relationships are set with a fraction relative to IDENTITY.

    Standard ratios are: 2/1, 3/1, 4/1 etc. These can be freely assigned to any small integer ratio. The INTONE control will then smoothly transition toward that ratio at max CW, and the inverse ratio (1/2, 1/3, 1/4 etc) in the CCW direction.

    NB: JF.TUNE settings are not currently saved