STAMP

Manual

Stamp Composer FM-1 turns the M-VAVE FM-1 into a little music maker in the spirit of Mario Paint. Pick a character stamp, press a key, and a note lands on the staff. Each of the 31 stamps is its own sound, so a song is a picture you can hear.

The staff page: the header, the row of character stamps, the staff with notes, four knob tiles and the status line
The staff page, where songs are written

Not yet tested on a physical FM-1. The firmware runs in the fm1-emu emulator in your browser. Read the install page before putting it on a real unit.



Your FM-1 at a glance

The FM-1 panel as a schematic: MASTER, SELECT, PRESETS and ALGORITHM at the left, the screen in the middle, KNOB1 to KNOB4 at the right, two rows of six buttons, OCT- and OCT+ and the 27 keys below
The FM-1 panel (not to scale) with each control's job in Stamp Composer

This manual uses the names printed on the panel: PRESETS (the knob that picks the stamp), ALGORITHM (picks the layer), SELECT (moves the cursor), SCL (the button next to FX), and KNOB1 to KNOB4, written K1 to K4. K1 to K4 follow the four tiles on the screen, left to right: whatever the tile in that place says is what that knob does on the current page. (The panel's calibration screen asks for SCL as "SEL"; it is the same button, and the on-screen hint lines shorten some names to ALGO, PRESET and SEL.) MASTER is the unit's own volume and the firmware does not use it for anything else.

Page by page

EDIT (a quick tap) steps through the pages; GLO opens the song book; HOME goes back to the staff. What the four knobs do on each page:

ButtonPageK1K2K3K4
HOMESTAFFtempovelocitylengthsong end
EDITMIXbeats per barsound volumelayer volumesong end
EDITSOUNDtunetonedecaypan
EDITMIDIchannelmodeclockMIDI-in channel
EDITGROOVEswinghumanswing gridhuman mode
EDITBARSfrom barto bartarget bartranspose amount
GLOSong bookslotvelocitylengthnone

On every page PRESETS picks the sound and ALGORITHM picks the layer. Section 3 has every button on every page.

Grips

The buttons that do something different when you combine them. Nothing here needs more than two hands.

GripWhat happens
Several keys togetherA chord: every note lands on the same step
A note key againPress a note key where that note already is (same pitch, sound, layer, at the cursor) and it is removed: ERASED. One undo step; chords toggle note by note. (While playing a repeat is skipped, not removed)
EDIT + keyErase that pitch at the cursor on any sound or layer (the selected sound's first, else the most recently added); NOTHING TO ERASE if there is none. At the playhead while playing. The page does not change
EDIT + FXOn the staff: clear every note at the cursor (only the selected sound's with SCL on), one undo step: CLEARED n NOTES
EDIT + SELECTOn the staff: jump the cursor to the previous or next step that has a note (SCL on: selected sound only), whatever the grid
EDIT + K2 or K3On the staff: change the velocity or length of the selected sound's notes at the cursor
EDIT + PLAYPlay from the start of the cursor's bar
EDIT + OCT− or OCT+On the staff: spelling toward flats or sharps, and respell the notes at the cursor
OCT− + OCT+ togetherFREE PLAY on or off: keys only play, never write. Press the second within 150 ms of the first
OCT− or OCT+ on BARSTranspose the bars down or up (after a 150 ms wait, so the two together still mean FREE PLAY)
Hold HOMEAfter about half a second, a list of this page's controls that stays open; press anything to close it
REC twice (song book)The first press arms a load, the second loads the slot (an empty slot starts a new blank song); HOME cancels
FX or SCL on MIXMute or solo the layer (everywhere else: mute the sound, filter the view)
Hold OCT− + OCT+ while powering onNot a song grip. Opens the platform's panel calibration (see "If something goes wrong")
Hold REC while powering onNot a song grip. Opens the chip's update mode (see "If something goes wrong")

1The screen

The 240 by 240 screen has four parts, top to bottom.


2Your first song in two minutes

  1. Turn PRESETS to pick a character. Press a few keys on the STAFF page: each one plays and places a note at the cursor. Press a note again to remove it.
  2. Turn SELECT to move the cursor one step along. Place another note.
  3. Press several keys together for a chord. They all land on the same step.
  4. Press SEQ to change the step size, then add quicker notes.
  5. Press PLAY. Press it again to stop.
  6. Not happy? ENV takes back your last change and LFO puts it back.
  7. Turn ALGORITHM to pick another layer, change PRESETS to another character, and add a second part.
  8. Turn K1 to change the tempo, and press ARP to loop the song.
  9. Press SAVE to keep the song in the current slot. Your work is also saved on its own (see section 9).

Start from a blank page. Press GLO, turn K1 to a slot that shows EMPTY, and press REC twice: a new, empty song starts in that slot (ENV brings the old one back). Then press SAVE when you like it.

Notes are written on the STAFF page. On every other page the keys only play the selected sound.


3The pages

EDIT (a quick tap) steps through the pages in this order: STAFF, MIX, SOUND, MIDI, GROOVE, BARS, then back to STAFF. GLO opens the song book, and a second press returns to the staff. HOME goes straight back to the staff with the cursor at the start. On every page, PRESETS picks the sound and ALGORITHM picks the layer.

The SOUND page, with TUNE, TONE, DECAY and PAN bars
The SOUND page

STAFF

ControlWhat it does
Note keysPlay a note and place it at the cursor (while playing: at the playhead, see section 4). Several keys make a chord. The keyboard covers F3 to G5; notes must land between C2 and C6
SELECTMove the cursor by one grid step. With EDIT held: jump to the previous or next step that has a note, off the grid too
PRESETSChoose one of the 31 sounds (wraps, like the ribbon)
ALGORITHMChoose layer 1 to 8
K1Tempo, 30 to 300 BPM (stopped only)
K2Velocity (how hard) for new notes
K3Length of new notes
K4Song end, in whole quarter notes; it cannot cut off notes already placed (stopped only). The tile shows bars and beats: 4B+2 is 4 bars and 2 beats, 4 BAR is exactly four
PLAYStart from the beginning, or stop
EDITTap for the next page (a clean tap: pressing anything else while holding EDIT does not change the page). Hold it for erasing and note editing (section 4)
SEQChange the grid (stopped only)
ARPLoop the whole song on or off (stopped only)
RECCopy the cursor's bar into the next bar (stopped only)
FXMute or unmute the selected sound: it goes silent (audio and MIDI) but its level is kept. Works while playing; not saved
SCLShow every sound, or only the selected one (a view filter)
ENV, LFOUndo, redo (stopped only)
OCT−, OCT+Move the keyboard down or up an octave. With EDIT held: spelling, sharps or flats (section 4)
SAVESave to the current slot (stopped only)
GLO, HOMESong book, back to the staff

MIX

ControlWhat it does
K1Beats per bar, 2 to 12 (the time signature is the number over 4; stopped only)
K2Volume of the selected sound; 0 mutes it (stopped only)
K3Volume of the selected layer; 0 mutes it (stopped only)
K4Song end (stopped only)
ALGORITHMPick the layer
FXMute or unmute the layer, even while playing
SCLSolo or unsolo the layer, even while playing

Only on MIX do FX and SCL work on the layer. On every other page except BARS, FX mutes the sound and SCL filters the view. Mute and solo are for performing. They are not saved and reset at power-up. A silent layer sends no MIDI either. If any layer is soloed, only soloed layers sound.

SOUND

ControlWhat it does
K1Tune, −12 to +12 semitones
K2Tone, 0 dark to 127 open
K3Decay, 0 short to 127 long
K4Pan, L64 through centre to R63

MIDI

The page shows all 31 sounds in a grid of 8 by 4 small stamps, each with its channel (-- = off) and the selected one highlighted; PRESETS moves the highlight.

ControlWhat it does
K1This sound's MIDI channel: OFF or 1 to 16
K2Mode: OFF, ON, or MIDI ONLY
K3Clock: OFF, OUT, or IN
K4MIDI-in channel: OMNI (every channel) or 1 to 16. Notes on other channels are ignored; clock and Start/Stop always get through

GROOVE

ControlWhat it does
K1Swing, 0 to 75
K2Human, 0 to 100
K3Swing grid: 8TH (off-beat eighths) or 16TH (off-beat sixteenths)
K4Human mode: TIME+VEL, TIME only, or VEL only

BARS

ControlWhat it does
K1FROM bar
K2TO bar (never before FROM)
K3TARGET bar
SELECTChoose the FROM bar (TO follows if needed)
K4Transpose amount, 1 to 12 semitones
RECCopy the bars to TARGET
FXMove the bars to TARGET
SEQDelete the bars
ARPInsert empty bars at FROM
OCT−Transpose the bars down by K4
OCT+Transpose the bars up by K4 (OCT− and OCT+ together still toggle FREE PLAY, so a single press waits a moment)
SCLCopy, move and transpose touch only the selected sound

On SOUND, MIDI, GROOVE and BARS the knobs only turn while the song is stopped; refused changes say STOP FIRST. On these pages, MIX and the song book, the keys only audition the selected sound, and REC (bar copy), SEQ and ARP do nothing; they belong to the STAFF page. A hint line at the bottom of each page lists the main buttons.

Song book

The song book: eight slots and the DEMO entry, which is chosen
The song book
An empty slot chosen: REC twice starts a new song
An empty slot
ControlWhat it does
K1, SELECTChoose the slot, 1 to 8, then DEMO. Empty slots show a dimmed number, and EMPTY when chosen
K2, K3Velocity and length of new notes
FXMute or unmute the selected sound
SAVEWrite the song into that slot (on DEMO: refused, PICK A SLOT)
RECFirst press arms a load, second press loads the slot (an empty slot: starts a new blank song; on DEMO: loads Twinkle Twinkle, then the staff)
GLO or HOMEBack to the staff

4Writing and editing notes

Chords. Press more than one key while the cursor stays put. The cursor only moves when you turn SELECT.

Erase. There are four ways, all on the staff, all one undo step, none of them change the page:

The notes at the cursor are drawn on a teal box, and the status line reads EDIT+KEY ERASE, so you can see what will go. While the song plays, a repeated key is skipped as before (no toggle), and EDIT plus a key erases that pitch at the playhead's step on any sound.

Notes at the cursor on teal boxes
The notes at the cursor are boxed

Edit notes you already placed. Hold EDIT on the staff and turn K2 to change the velocity, or K3 to change the length, of the selected sound's notes at the cursor. The status line shows NOTE VEL or NOTE LEN. One hold is one undo step. If nothing is there it says NO NOTE HERE.

Sharps and flats. Every black key can be written as a sharp (C#) or a flat (Db); it sounds the same. The staff puts a flat on the line or space of the next letter up, with a flat sign (Bb sits on the B line), and the header name reads Bb3 or Eb4. New notes follow the spelling mode, shown in the status line: SHARP, FLAT, or AUTO (the default), which writes D#, G#, A# as Eb, Ab, Bb and C#, F# as sharps. Hold EDIT and press OCT− to step toward FLAT (SHARP, AUTO, FLAT), or OCT+ toward SHARP. The press also respells the selected sound's black-key notes at the cursor in that mode (one undo step, stopped only), so pressing it again fixes a chord you entered the other way. The mode is not saved. Keys, MIDI notes and live placement use it. A single press acts after a tenth of a second, so OCT− and OCT+ together still switch FREE PLAY. BARS transpose keeps a flat if the note lands on a black key; a white key becomes a sharp or flat as the mode says. A flat and a sharp of the same pitch at the same place count as the same note.

A melody with flats and sharps
Flats and sharps on the staff

Undo and redo. ENV undoes and LFO redoes, up to 16 changes. Both only work while stopped.

Grids. SEQ cycles 1/4, 1/8, 1/16, then the triplet grids 1/8T and 1/16T. The cursor snaps to the new grid. K3 changes length in steps of a 16th, or a triplet 16th on the triplet grids, from one step up to 16 beats.

Time signature. On MIX, turn K1 for 2 to 12 beats per bar. Bar lines, bar numbers, bar copy and the song end all follow it. The default is 4.

Play from the cursor. Hold EDIT and press PLAY. The song starts at the beginning of the cursor's bar. With MIDI clock out, it sends a position message and Continue rather than Start.

Live placement. While the song plays, a key (or a MIDI note) sounds at once and also lands in the song at the playhead, rounded to the nearest step of the grid (triplet grids too). Past the end of the song it lands at the loop start if looping, otherwise on the last step. A note already there is not added twice, and a full song says SONG FULL. Hold EDIT and press a key to erase that pitch (any sound) at the playhead's step; a plain repeated key is skipped, not removed. Everything you place or erase in one playback run is one undo step. A note placed a little ahead of the playhead sounds again when the playhead reaches it.

Free play. Press OCT- and OCT+ together (the second within a tenth of a second of the first) to switch FREE PLAY on or off. The header badge says FREE. Keys then only play the selected sound, stopped or over the song, and never place or erase notes; a note lasts as long as you hold the key. A single OCT press still shifts the octave (on BARS it transposes the bars instead, with EDIT held on the staff it sets the spelling, and both together still toggle FREE PLAY there). FREE PLAY keys work on every page. Free play is not saved.

Stopped only. Settings knobs, bars operations, undo, redo and saving work only while the song is stopped.


5The 31 sounds

Each stamp has its own sound. Turn PRESETS to choose.

StampSoundStampSound
MarioPianoCoinCoin
MushroomKickShy GuyShy Guy
YoshiZipBooBoo
StarBellLuigiLuigi
FlowerTrumpetPeachPeach
Game BoyPulseFeatherFeather
DogDogBullet BillBullet
CatCatGoombaGoomba
PigPigBob-ombBob-omb
SwanHornSpinySpiny
FaceBabyFruitFruit
PlaneGuitar1-Up1-Up
BoatBlockMoonMoon
CarOrganEggEgg
HeartBassGnomeGnome
Piranha PlantPiranha

The sounds are the Mario Paint sound pack (assets/sounds/, with its own notice): Nintendo's sounds, so not under this project's MIT license, and a swappable asset pack.

Shaping. On the SOUND page each sound gets its own tune, tone, decay and pan. Tone is a gentle filter, decay sets how long a note rings after its length, and pan places it left or right. A fresh song starts neutral: tune 0, tone 127, decay 0, pan centre. These are saved with the song and can be undone.

Levels. On MIX, each sound and each of the eight layers has a volume. Quick mute of a sound: press FX on any page except MIX or BARS. The sound goes silent (audio and MIDI) while its level stays as it was, and FX again brings it back. A mute is for performing: it is not saved and resets at power-up.


6MIDI

The FM-1 can play other gear while it plays itself.


7Groove

Two knobs on the GROOVE page make a plain pattern feel alive.

Both are saved with the song. At 0 and 0 the song plays exactly as written. Notes you audition while writing are not swung.

Swing and triplets. Swing delays the off-beats of the chosen grid. Notes on triplet positions are not swung, because triplets already carry the swung feel. Swing 33 moves an off-beat eighth onto the triplet position.


8Bars

The BARS page works on a run of bars at once. Choose FROM and TO (the range, inclusive) and a TARGET bar, then press a button.

Turn on SCL first if copy, move or transpose should touch only the selected sound. Delete and insert always take all sounds. If an action would not fit (more than 384 notes, over the length limit, notes leaving C2 to C6, or nothing to do) it is refused whole and a message says why. Each action is one undo step.

The BARS page, with a range of bars shown on the strip
The BARS page

9Saving, autosave and backup

Eight slots. In the song book choose a slot with K1 and press SAVE. The status line then reads SAVED. To load, press REC twice (the first press arms it, the second loads it). Loading can be undone. HOME cancels an armed load. Stop the song before saving, because audio pauses for a moment while the FM-1 writes.

New song in an empty slot. A slot nothing was saved in shows a dimmed number in the song book, and EMPTY when you choose it; the status line reads REC REC: NEW SONG. Press REC twice and a blank song replaces the one you are working on: no notes, 120 BPM, 4 beats, tied to that slot, with the message NEW SONG IN SLOT n. ENV undoes it and brings back the previous song and its slot. Nothing is written to the slot until you press SAVE (the blank song is autosaved like any change). It needs the song stopped. The staff has no blank-song shortcut: this is the one way.

Demo. After slot 8 the song book has a DEMO entry: Twinkle Twinkle, one of the three demo songs of the original Mario Paint (a public-domain melody; this is our own arrangement: STAR melody over a HEART bass, 12 bars, 100 BPM, looping). REC twice loads it like a slot, and ENV undoes the load. It is never overwritten: SAVE on DEMO is refused. The browser's Load Twinkle demo button does the same.

Autosave. After 3 seconds with no key or button pressed and no change, and the song stopped, the working song is quietly written to the FM-1, at most every 20 seconds. At power-on it comes back exactly as you left it, with the message RESTORED and its slot and UNSAVED mark. If no autosave can be read, slot 1 loads instead.

Backup and restore over USB. The site's Backup page, or the backup tool, saves all eight slots to one file and restores them all together. Stop playback first. A backup holds the eight saved slots only, so press SAVE on anything you want included. After a restore, the working song is replaced by the reloaded slot.


10Help, mirror and limits

The help overlay for the STAFF page, page 1 of 2
Hold HOME for help

Help overlay. Hold HOME for about half a second and a full-screen list of every control on this page appears, followed by the ones that work everywhere (PLAY, PRESETS, ALGORITHM, ENV, LFO, SAVE, GLO, EDIT, HOME, OCT− + OCT+). It stays open when you let go. Press any button (HOME again included), a key or a knob to close it; that press only closes the help and does nothing else. If the list is longer than the screen it shows 1/2: turn SELECT or K1 to see the other page (those turns do not close it). Playback keeps going underneath, but PLAY and the other buttons only close the help while it is open. A quick tap of HOME just returns to the staff.

Screen mirror. With mirror = true in the firmware's settings, the screen and panel can be mirrored to a computer over USB. The screen redraws fully every frame, so it recovers on its own.

Limits.

WhatLimit
Notes per song384
Pitch rangeC2 to C6 (the keys cover two octaves and a bit; OCT− and OCT+ move them)
Tempo30 to 300 BPM
Beats per bar2 to 12
Song length65,535 ticks (a quarter note is 96 ticks)
Layers8
Song slots8
Undo steps16
Playing at once8 voices in this build

The main controls for notes and settings are locked while the song plays. Navigation, sound and layer choice, sound mute (FX), MIX layer mute and solo, velocity and length for new notes on the STAFF, keys (they play, and place on the staff) and octave still work. On MIX the K2 and K3 level knobs are locked while playing and say STOP FIRST.


11Install, go back and recovery

Installing, backing up the stock firmware and returning to stock are on the Install page: Install, back up, go back. Read it before you begin. This firmware has not yet been tested on a physical FM-1; everything below is what the platform code does, read from its source and run in emulators, not something seen on a unit.

If something goes wrong