ChoralRoot 0.24-beta3 is the third beta of 0.24: it fixes SAFE MODE's Flash Data, which now really clears your saved
sounds, makes FM TONE lighter on memory with the same sound, and is built for the M-Vave SMK-37 too, on top of
0.24-beta2's GRAIN engine and 0.24-beta1's velocity on the top seven keys, poly aftertouch out and the touch on Geek
Out 2. Like the earlier betas it is opt-in: the web installer offers it only when you tick Show beta releases under
Other versions, and 0.23 stays its default. A beta may have bugs (please report them on GitHub), and the next stable
release, 0.24, replaces it. What is new since 0.24-beta2 comes first; after it are the whole of 0.24's notes so far,
so this page is all you need. Updating from 0.24-beta2, 0.24-beta1 or 0.23 keeps your settings, sounds, loops and
favorites; going back is possible at any time (the last section says what it means).
New since 0.24-beta2
- SAFE MODE's Flash Data clears your saved sounds too. Since 0.22 the saved sounds (the 128 user slots) live in an
area of their own, and Flash Data left that area out: it erased the settings, the favorites and the loops but kept
every saved sound. It now erases them as well, as the manual always said, so a unit started clean really is clean.
Back up first (the device manager's Backup) if you want them again afterwards. Nothing else about SAFE MODE changes,
and nothing is erased unless you choose Flash Data there. - FM TONE uses less memory, with the same sound. It used to keep a second copy of its HARM waves in the working
memory; it now reads them from the firmware, sample for sample the same values, which frees about 27 KB of working
memory for what comes next (more engines or effects). Every FM TONE sound plays exactly as before. The cost: a dense
chord on a preset that uses HARM (GLASS PAD, DRONE, HOLLOW, CLAV, STRINGS, SQUARE LEAD) takes slightly more of the
processor, up to about 9 % more for FM TONE's part of the work; the presets without HARM cost the same or a little
less. - ChoralRoot for the M-Vave SMK-37. Community test builds of this beta exist for the SMK-37 Pro, SMK-37 Elite,
MKE-P37 and Starrykey 37 Play: SMK37.md.
GRAIN (new in 0.24-beta2)
GRAIN plays clouds of short grains, a few milliseconds to a few tenths of a second each, read out of two pieces of
sound that it makes itself. There are no samples to load: a GRAIN sound stores its knobs, and the engine renders the
material from them whenever the sound loads or a knob of the material turns.
- Two sources, A and B. Each is about three quarters of a second of sound made by one of eight families, set by
four knobs: TYPE (PLUCK, a plucked string; DRONE, detuned saws under a moving filter; BELL, two-operator FM;
BREATH, filtered noise; CHIRP, sweeping sines; SWEEP, a driven saw through a sweeping filter; VOWEL, a voice moving
round A E I O U; METAL, inharmonic partials with a strike), TONE (the brightness or colour within the family),
MOTION (how the material moves over its length: decay, sweep, vibrato, strums) and SEED (a variant: the same
SEED is always the same material). Turn one and that source is made again in a moment while you play; the grains
on the other source keep sounding. - MORPH goes from A to B. It is a granular blend, not a crossfade: each grain reads A or B, and MORPH is the share
that read B, so in between the two materials interleave in the cloud. ENV 2 or an LFO on MORPH moves between them
(the preset STRUM strikes on B's METAL and settles into A's PLUCK). - The grains: SIZE (their length), DENS (how many start each second), POS (where in the material they
start) and SPRD (how far round POS they scatter); RAND (random detune, and some grains played in reverse),
PITCH (-24 to +24 semitones) and SCAN (POS moving through the material by itself: right of 0 forward, left
of 0 in reverse, very slowly near 0 and faster further out; 0 holds still). - The VA's filter (CUT, RES, FTYPE round low-pass, band-pass, high-pass and notch, DRIVE, KTRK), ENV 1 for
the volume, ENV 2 a second envelope for modulation, two LFOs (RATE, WAVE, DEPTH, FADE; each can sync to the
tempo with the VA's divisions) and an eight-slot modulation matrix: sources ENV1, ENV2, LFO1, LFO2, VEL, KEY,
RAND and MODW (the mod wheel, CC 1 over MIDI), destinations MORPH, POS, SIZE, DENS, SPRD, RAND, PITCH, SCAN, CUT,
RES, FTYPE, DRIVE, the LFOs' rates and depths and AMP. Amounts work as on the VA: tenths below 6, whole numbers from
6. Quick modulation works too: hold ENV or LFO and turn a knob. - The pages. In the sound editor: OSC has the two screens SRC (SRC 1 and SRC 2: TYPE, TONE, MOTION, SEED) and
GRAIN (GRAIN: SIZE, DENS, POS, SPRD; GRAIN+: MORPH, RAND, PITCH, SCAN); FILT the filter under its curve (FILTER,
FILTER+); ENVENV 1 · ampandENV 2 · mod; LFO the two LFOs and their SYNC; MOD the eight slots (SRC, DST,
AMT), then EXPR as on every engine. - The wave band. On the SRC and GRAIN screens a band across the screen draws the material: on SRC the source of
the active row, made anew when its render lands; on GRAIN both, A in blue and B in orange, each as bright as MORPH
gives it, with POS as a white line (it moves with SCAN), SPRD as a green span round it, and every sounding grain as
a bright line travelling over its source. - Eight presets after INIT: CLOUD PAD, SHIMMER, BREATH PAD, FROZEN, STRUM, SWARM, ACID DUST and GLITCH. GRAIN
comes after WHEEL in the engine picker and under OPT + PRESETS. - Chord and bass on GRAIN share the material. The FM-1 holds one pair of sources: the chord part's (or, when only
the bass is on GRAIN, the bass part's). With both parts on GRAIN the bass plays the chord sound's A and B with its
own grain knobs, MORPH, filter and envelopes. - Notes up to C6 are pitched from the material; above C6 they stop rising.
- The device manager and sound files carry GRAIN sounds as any engine's.
Also new: the firmware is smaller (about 35 KB of flash freed to make room for GRAIN), with no change to any sound
or screen.
Playing (new in 0.24-beta1)
Nothing here changes until you turn Key Touch on: with Options > Key Touch at Fixed (the default) every key plays
at Options > Velocity, as in 0.23.
- The top seven keys sense velocity. With Key Touch on (Dynamic, Vel + Aftertouch or the new Vel + Poly AT),
C#5 to G5 now play at the velocity you strike them with, as F3 to C5 do; until 0.24-beta1 they followed the velocity
you had been playing. All 27 keys sense velocity now.- These seven are read another way (the method is Charles Vestal's, from his MONK-1 and CTL-1 firmwares), which
tells a light touch from a firm press less finely than the other keys can: a touch plays softly, a light press in
the middle, and a firm press at or near the top. - They have no aftertouch: leaning on one of them moves nothing. Options > Velocity Curve does not change them
(it shapes F3 to C5); Velocity Sens works on all 27.
- These seven are read another way (the method is Charles Vestal's, from his MONK-1 and CTL-1 firmwares), which
- Key Touch: Vel + Poly AT. A fourth value of Options > Key Touch, after Vel + Aftertouch. The keys play and sound
as with Vel + Aftertouch, and the pressure goes out over MIDI (MIDI Perform and MIDI Bass) as polyphonic
aftertouch, to each note that sounds, on the channel it was played on, instead of as channel pressure. Every note
gets the same value: a chord is one finger's. Saved automatically, as the other Options. - Geek Out 2 shows the keys' touch. While Key Touch is on, the view's title line reads the last key's velocity and
the pressure now, such asVEL 73 AT 42, in place of2 coresor1 core(AT stays 0 with Dynamic, which senses
no pressure). With Key Touch at Fixed it says2 coresor1 core, as before. - With Key Touch on, notes sound a few milliseconds later than in 0.23. While the top row is read, the other keys
are read less often, so a key on F3 to C5 waits about 13 ms after it lands for its velocity instead of about 9; the
top seven now wait a few milliseconds for theirs (they played at once before). With Key Touch at Fixed nothing waits,
as before.
Installing
- A beta, opt-in. In the web installer tick Show beta releases under Other versions (the page remembers it in
that browser), choose 0.24-beta3 and press Install. Without the tick the installer offers 0.23, the latest stable
release, as before. On an FM-1 that runs the beta, "What is on my FM-1?" says so, and Install then writes 0.23 unless
you choose the beta again. Options > Version readsChoralRoot 0.24-beta3. - From 0.24-beta2, 0.24-beta1 or 0.23 nothing needs doing: your sounds, loops, favorites and settings are all
there (from 0.24-beta1 or 0.23, GRAIN is new in the engine picker). - From 0.22 or older. The beta brings everything of 0.23 with it: 0.23.md says what changes (FM TONE
sounds at the Digitone's own levels play about 6 dB quieter, as loud as the other engines) and, from 0.21 or older,
0.22.md "Installing" what the first start does. - A Single core package, for FM-1s that have trouble with Dual Core. The web installer offers it under
Advanced > Hardware fallback, as for 0.23. Options > Version then readsChoralRoot 0.24-beta3 1-core(shown as
0.24-beta3 1-core, the line being too short for the whole name).
Going back to 0.24-beta2, 0.24-beta1 or 0.23
The installer offers 0.23 at any time (it is the default), and 0.24-beta2 and 0.24-beta1 under Show beta releases.
0.24-beta3 stores nothing differently from 0.24-beta2: your sounds, loops, favorites and settings stay as they are on
any of them.
- Going back to 0.24-beta2 changes nothing for your data. FM TONE sounds the same. Only SAFE MODE's Flash Data
is the old one there: it keeps the saved sounds. - Going back to 0.24-beta1 or 0.23, the same, plus what an older version does not know:
- GRAIN sounds you saved stay in their slots, untouched, but do not play as GRAIN there. 0.24-beta1 and 0.23 have
no GRAIN engine. Each GRAIN sound you saved shows at the end of the VA's list under its own name and plays the VA's
plain starting sound, with the messageengine retired: init sound. Nothing is rewritten or deleted: back on
0.24-beta3 (or 0.24-beta2) the sound is GRAIN again, exactly as you saved it. Two things do replace it: saving over
that slot on the older version (it then holds what you saved there), and deleting it. Renaming it keeps the GRAIN
sound. - A part left on GRAIN (the chord or the bass sound when you go back) starts on FM6
TINE EPor VADEEP SUB
there, as on a new unit. - Backups. A backup taken on 0.24-beta3 restores onto 0.24-beta2, 0.24-beta1 and 0.23 with its GRAIN sounds kept
as they are (they play as above on 0.24-beta1 and 0.23, and as GRAIN again on 0.24-beta2 and 0.24-beta3). 0.22 and
older refuse a group of ten sounds that holds a GRAIN sound, so restore such a backup on 0.23 or newer. - Going back to 0.23 is also the same as from 0.24-beta1 for Key Touch:
- Vel + Poly AT. 0.23 reads it as Key Touch Fixed: its keys play at Options > Velocity, while Velocity Sens,
Aftertouch Sens, the Velocity Curve and Numerals keep their values. Once 0.23 saves its settings (you hold SAVE or
change an Option there), Key Touch is Fixed when you come back; until then it is still Vel + Poly AT. To keep the
keys sensing on 0.23, set Key Touch to Vel + Aftertouch before going back. - The top seven keys follow the velocity you have been playing again, as in 0.23.
- Geek Out 2's title line says
2 coresor1 coreagain, with Key Touch on too.
- Vel + Poly AT. 0.23 reads it as Key Touch Fixed: its keys play at Options > Velocity, while Velocity Sens,
- GRAIN sounds you saved stay in their slots, untouched, but do not play as GRAIN there. 0.24-beta1 and 0.23 have
- Going back to 0.22 is the same, plus what 0.23's notes say (0.23.md, "Going back to 0.22").
ChoralRoot 0.24-beta3 for the M-VAVE FM-1 (identity FM-1_920).
Install from the browser at https://quixotic7.github.io/ChoralRootFM1/ (Chrome or Edge, the FM-1 connected by USB), or with the command-line installer: python3 tools/fm1_install.py choralroot-0.24-beta3.fwsc.
choralroot-0.24-beta3-1core.fwsc is the same firmware on one processor core, for an FM-1 that crashes or freezes with the standard package (the installer offers it under Advanced > Hardware fallback). Settings, sounds and loops stay when you switch between the two.
SHA256SUMS lists both packages and their apps. The package holds three JieLi AC79 SDK files (Apache-2.0); LICENSE, LICENSING.md and LICENSES.zip carry every licence. Installing firmware is at your own risk.
Full Changelog: v0.24-beta2-smk37...v0.24-beta3