Erik37, image 1 from its README
1/2
Firmware

Erik37

Hype: warming · 59

Sampled grand piano firmware with velocity layers.

forM-VAVE SMK-37 Pro,M-VAVE SMK-37 Elite,M-VAVE FM-1·by@genkigenki

Unclaimed. Is this yours? Sign in with GitHub as @genkigenki to claim it.

Download v1.2

erik37.fwsc· 636 KB· +3 files

MPL-2.0· genkigenki/erik37·genkigenki.github.io/smk37/#fw-erik37·downloads come from the creator’s GitHub releases

3 commits and 2 releases in the last year

Erik37

Erik37

A grand piano for the M-Vave SMK-37 (and the FM-1): a sampled concert grand with velocity layers, a key-by-key decay, dampers and their noise, the three pedals, sympathetic string resonance and four rooms. It is its own firmware, built on fm1-base and felucca-bsp.

Status: 1.2, experimental. Played on an SMK-37 Pro. 1.2: the release noise has its own level, SEQ REC is a sustain toggle with its light, only the pedal holds notes by default (the PEDAL jack is read more carefully), a pad light setting, and a cleaner output. The FM-1 build is untested on a unit: feedback welcome. All controls: CONTROLS.md. Video (1.1): https://youtu.be/5yUCB1-OJNE

Install it with the installer at https://genkigenki.github.io/smk37/ (Chrome or Edge), the keyboard on USB. There is one package per model: SMK-37 Pro (and the Starrykey 37 Play), SMK-37 Elite, MKE-P37 and the FM-1 (erik37-fm1.fwsc). M-Vave's updater takes the stock firmware back at any time.

the play screen

Playing

ControlWhat it does
Keysthe piano, with velocity through the touch curve (TONE & TOUCH); C3..C6, OCTAVE- / OCTAVE+ move them by octaves
K1..K4the four knobs at the bottom of the screen (below)
K5 MASTERthe volume
K6..K8nothing
< / >the pages: play, TONE & TOUCH, ROOM, PEDALS & PADS, ABOUT
PATCHback to the play screen; held, the audio load and the voices in the header
Pads 1-4the voices: CONCERT (hall), STUDIO (chamber, brighter), VINTAGE (darker), JAZZ (a small room)
Pads 5-16the user presets USER 1-12: a tap recalls one; held a second, the sound is saved there ("SAVED USER n")
PEDAL jacksustain; a continuous pedal gives half pedal. Its rest position is learnt once the reading is steady (or set on PEDALS & PADS: open or closed at rest)
SEQ RECsustain on / off (a toggle), its light on while on; the header says SUSTAIN ON
CHORDsostenuto
SCALEuna corda (its depth on TONE & TOUCH)
Mod wheelnothing by default; PEDALS & PADS K2: sustain, with half pedal (off at rest and a little above, full near the top)
Pitch wheelpitch bend, +-2 semitones; in tune at rest
SEQ PLAYthe metronome (its tempo: K4 on the play screen)
BTsave the settings now (they also save themselves once the piano is quiet)
FXevery note let go
Fadersnothing (every setting is on a knob)
USB-MIDIthe keys, pedals and pitch wheel go out (notes, CC 64 / 66 / 67, pitch bend); notes, those pedals and pitch bend come in and play the piano (a note the keys hold is not struck again when the computer echoes it back)
OCTAVE- + OCTAVE+ held 5 supdate mode

SCALE and CHORD: held, the pedal is down while held; a tap latches it (its light on) until the next tap. The sustain is the strongest of the PEDAL jack, SEQ REC, MIDI and (when set) the mod wheel.

PageK1K2K3K4
playtoneroomreverbtempo
TONE & TOUCHtouch curvebrillianceresonance (down past 0: off)release noise (0 off .. 100, 40 at first)
ROOMroomsizeamountwidth
PEDALS & PADSuna corda depthmod wheel (off, sustain)pedal jack (auto, open, closed)pad light (45, 60, 80, 100 %)
ABOUTaudio loadvoicesmost voicesxruns

The play screen is a view into the piano: the strings light up as they sound, the dampers lift. A user preset keeps the tone, room, size, amount, width, brilliance, resonance, release noise, touch curve and una corda depth; the presets survive power-off (in the firmware's own store). The pad lights: a voice dim amber, the one chosen bright gold; a preset pale warm grey when empty, brighter when filled, warm ivory when chosen. The pad light dims the chosen pad to 45 % at the least; the dim levels keep a floor, so each stays visible and apart from the next.

On the FM-1

erik37-fm1.fwsc (identity FM-1_480102) is the same piano for the FM-1's 27 keys (F3..G5, velocity from the keys). Untested on a unit. It does not run in fm1-emulator yet: the velocity reads the keys through the chip's converter (rows PA7, PA8 and PA10), and the emulator models only the converter settings and inputs of the stock firmware (MASTER and PB1), so it stops as soon as the key scan starts (erik37#2). The SMK-37 packages do not run on an FM-1 or in an FM-1 emulator. Its controls:

FM-1What it does
KNOB 1..4the page's four knobs (as K1..K4 above; PEDALS has only una corda)
SELECTthe pages
ALGORITHMthe voices CONCERT, STUDIO, VINTAGE, JAZZ
PRESETSthe user presets USER 1-12, recalled as it lands on them
SAVEtap: save the settings; held a second: the sound into the user preset PRESETS points at
REC / ENV / SELsustain (a toggle) / sostenuto / una corda (held or latched)
PLAY, FX, HOME, OCTas SEQ PLAY, FX, PATCH and OCTAVE on the SMK-37; MASTER the volume

The sound

  • The Salamander Grand Piano V3 (a Yamaha C5): 18 notes across the keyboard in 3 velocity layers, crossfaded in the attack, about 380 KB of block-ADPCM samples (4.25 bits a sample, 22.05 to 32 kHz), looped after the attack.
  • Each key's decay is measured from the recording (a fast first decay, then the aftersound), faster in the treble. The top keys have no dampers, as on a grand.
  • The brightness follows the velocity and darkens as a note rings. Releasing a key brings the damper down, with its noise (its level on TONE & TOUCH, down to off).
  • Sustain with half pedal, sostenuto, una corda (softer and darker, its depth set on TONE & TOUCH).
  • Sympathetic resonance: undamped strings ring along while the sustain pedal is down.
  • Tones: CONCERT (as recorded), STUDIO (closer, brighter), VINTAGE (darker, the unisons a little apart), JAZZ (round, warm). Rooms: an 8-line FDN reverb, as chamber, hall or church, with a size knob.
  • Polyphony: 20 notes, plus room for the ones fading out. The quietest released notes give way first.
  • The pitch wheel bends every string (the damper noises stay put), +-2 semitones.
  • The phase 1 study (the sample sources, the demos, the engine's prototype) is in SOURCES.md, LISTEN.md and tools/.

Building

On Linux or WSL with JieLi's toolchain (base/tools/get_toolchain.sh), the AC79 SDK (for the package's SDK files) and Python 3 with Pillow and NumPy:

git clone --recursive https://github.com/genkigenki/erik37
./build.sh                          # the four packages into build/erik37/ (and SHA256SUMS), the host simulators
app/tests/run_tests.sh              # the engine, the CPU budget, the flash, the loader, the packages, the screens
app/build/smk37/host/erik37-smk37_host app/tests/screens.txt /tmp/shots   # the simulator: a script, screenshots
app/build/host/erik37_host app/tests/screens-fm1.txt /tmp/shots-fm1       # the FM-1's

base/ is fm1-base (Charles Vestal, MPL-2.0) with felucca-bsp in base/bsp (Leo Kuroshita, MPL-2.0), included here with their SMK-37 board support and two additions for the SMK-37: the keybed's velocity and the PEDAL jack (plat_keybed_vel, plat_pedal_raw).

Licence

MPL-2.0. The piano samples are the Salamander Grand Piano V3 by Alexander Holm, CC BY 3.0. See LICENSING.md.