Berlinan FM-1

Berlinan FM-1

The generative Berlin School sequencer, as firmware for the M-VAVE FM-1. Short melodic loops repeat, slowly shift against each other and change only a little at a time, and you play the ensemble from the FM-1's keys, buttons and knobs. No laptop needed.

7 steps
5 steps
6 steps
Three loops of unequal length. The same notes, never the same combination, until they line up again. aligned again in 210 steps
A drawing of the FM-1 running Berlinan, its screen showing the Perform page of the Full ensemble template. Each control is labelled with what it does: MASTER is the density, SELECT the voice, PRESETS the template, ALGORITHM the mode; the buttons open the seven pages, SAVE saves, OCT- undoes, OCT+ is Dice; the keys are the voices, the degrees 1 to 7 with the scenes, the six snapshot slots, the arranger's next change and tension.
Every control has one job. The keys select and mute the voices, move the harmony by scale degree, morph scenes and recall snapshots; the screen shows each voice's loop and what is about to change.

It follows the rules of the genre

The engine is Berlinan's: a style manual compiled from about 225 video lessons by a Berlin School practitioner, turned into four laws that do most of the work.

Repetition earns change
A pattern plays verbatim several times before it may mutate, and every mutation has to earn its place again. The dots on the Perform page count the plays left.
One scale for everyone
All voices share one scale. The white keys move the whole ensemble by scale degree, so it changes harmony together and never leaves the key.
Phasing, not randomness
Voices run loops of different lengths and drift against each other. The screen's LCM says how many bars until they line up again.
Change on the bar
What you press lands on the next bar line; a voice's new pattern waits for the end of its own loop. Press a little early and it still arrives in time.

It plays exactly what Berlinan for Mac plays

The engine is Berlinan for macOS's, translated into C. The same template, the same seed and the same actions at the same bars give the same notes and the same CC, event for event, tick for tick: the tests check it against the unchanged Swift engine. The Setup page shows the seed, so a run on the FM-1 can be repeated on the Mac.

Berlinan for macOS, the app it comes from, adds harmony modes, melody extraction, Ableton Link, capture and MIDI export.

Three templates to start from

Turn PRESETS to pick one; while playing it takes over at the next bar. Each starts in A minor from a fresh seed. ALGORITHM picks the mode, the Setup page the root, and the Voice page moves any voice to another channel.

Demo trio 90 BPM

Two plucks phasing 16 against 15 steps over a pulsing bass. The first piece after power-on.

  • Pluck 1ch 1
  • Pluck 2ch 2
  • Bassch 3

Full ensemble 96 BPM

The trio grown to six: a bass melody, a chord pad, a lead and the heartbeat kick.

  • Pluck 1ch 1
  • Pluck 2ch 2
  • Bassch 3
  • Padch 4
  • Leadch 5
  • Heartbeatch 10

Ambient drift 72 BPM

Built on a held drone, about one change a minute, with the arranger on and two CC scenes that slowly close and open your synths' filters.

  • Dronech 1
  • Pluck 1ch 2
  • Pluck 2ch 3
  • Padch 4

It plays your synths

The FM-1 makes no sound of its own. Connect it by USB to a MIDI router (a USB MIDI host box, or a computer that passes MIDI on); it shows up as FM-Berlinan. Each voice goes out on its own MIDI channel, so every synth plays its part.

INT The FM-1 is the clock master: MIDI Start, clock and Stop over USB.

EXT It follows MIDI clock from USB or the TRS jack, and holds the tempo if the clock drops out.

SAVE The project and six snapshot slots stay through power-off.

  • The Perform page: six voice lanes with their channels, loops and plays left, the horizon saying Pluck 2 may mutate in about 2 bars, and LCM 1680 bars
    Perform: every voice's loop
  • The Pattern page: the pad's pattern in steps, a bar a row, with the ratchet knob OFF
    Pattern: the steps, the ratchet
  • The Arranger page: the seven phases BUILD, BED, VAR, B-PART, PAYOFF, SUBTR and END
    Arranger: the phases
  • The Delay cheat sheet: a note division and its time in milliseconds for each voice at 96 BPM
    Delay: times for your effects

Made for playing live

Press PLAY and the ensemble starts at once. From there, every move is one press and lands on the next bar.

  • Voice keysTap to mute, hold to select. A voice the arranger holds back comes in with a tap.
  • Degree keysThe white keys move the whole ensemble to degrees 1 to 7.
  • The B partREC: a contrasting second section in one press. With a voice key held: a blank cycle for that voice.
  • Arranger autopilotBuilds the piece voice by voice, varies it, brings the theme back and ends it. >> moves it on.
  • The density faderMASTER thins the ensemble out or fills it, from 0 to 100 %.
  • Scenes and tensionThe black keys morph your synths' controllers to the template's scenes over 8 bars; G5 adds a moment of tension.
  • Snapshots, Dice and undoSix slots recalled on the bar, a new seed on OCT+, 20 steps of undo on OCT-.
  • Help on every buttonHold any button for a second and a card says what it does. Let go and nothing happens.

Get Berlinan for the FM-1

Install from the browser

Open the install page in Chrome or Edge, connect the FM-1 by USB and press Install; allow MIDI when the browser asks. The page checks the firmware before it writes, and the FM-1 reports its version when it restarts. Nothing is installed on the computer.

Installing firmware is at your own risk. If the FM-1 won't start, a Mac can put the stock firmware back.

Back to M-VAVE's firmware

The same page puts M-VAVE's own firmware (FM-1 V15) back: download the file from M-VAVE, choose it on the page and press the button. The page checks it is M-VAVE's before it writes. M-VAVE's own updater, M-UPGRADE, does it too.

Back to the stock firmware · m-vave.com/download

From the command line

Download berlinan-0.5.1.fwsc, then, with fm1-base's installer from the source:

pip3 install mido python-rtmidi
python3 base/tools/fm1_install.py berlinan-0.5.1.fwsc

Build from source

Free software under the GPL 2.0 or later. The build needs Docker (or podman) and JieLi's toolchain; BUILDING.md has the details.

git clone --recursive https://github.com/jiripisa/fm1-berlinan.git
cd fm1-berlinan
./build.sh

Credits

  • Berlinan for macOS and for the FM-1 by Jiří Píša, GPL-2.0-or-later.
  • fm1-base by Charles Vestal (MPL-2.0): the platform, from the hardware layer, USB and storage to the update loader, this installer and the emulator.
  • felucca-bsp and Felucca by Leo Kuroshita (@kurogedelic), Hügelton Instruments: the firmware fm1-base grew from.
  • Berkeley SoftFloat by John R. Hauser (BSD): the engine's double-precision arithmetic, bit for bit the Mac's. The sine is FreeBSD's msun (Sun Microsystems' fdlibm).
  • The screen's fonts: Barlow (SIL OFL 1.1).

M-VAVE and FM-1 are trademarks of their owners. Berlinan is not affiliated with M-VAVE or Hügelton Instruments.