Repository navigation
Releases
Circus Arrhythmia FM 0.2.2
Circus Arrhythmia FM 0.2.2 release notes
Circus Arrhythmia FM is custom firmware for the Novation Circuit Rhythm. It ships as a patcher: you apply it to your own copy of
the official firmware file on your own computer, then send the result to the unit. No Novation firmware is included.
Arrhythmia is not affiliated with or endorsed by Novation or Focusrite. The device name says only which hardware this
is for.
0.2.2 builds on 0.2.1. The changes are in the synth page, the output level of the synth and the modules.
Changes since 0.2.1
New
- Synth page as a view. Shift + Track 8 opens the synth page. It has two pages
(synth page):- Page 1, chords: notes per press, chord type, In key, minor or major, voicing, poly, octave.
- Page 2, scale: row 1 turns scales on or off for track 1 to 7, row 2 selects the scale, rows 3 and 4 set the key.
- Down shows page 2. Up shows page 1. The page opens on the last page you used.
- A view or track button (for example Note, Sample, Mixer, Track 1 to 8) closes the page. The unit goes to that
view or track. The button press is not lost. Play and Rec operate while the page is open. - Clear + macro sets that macro of the synth page to its default: tune 64, modulator attack 0, modulator
decay 64, modulator floor 127. - Lights. The exit buttons and Shift keep their normal lights. Track 8 is magenta. Up or Down is green when
there is a page in that direction. Clear keeps its normal light (dim red when that light is off) and is red
while you hold it. While you hold Shift in the normal views, Track 8 is lit.
- Module files over USB. The firmware can write module files to the folder
Moduleson the microSD card. The
module files web pageweb/modules.htmluses this function. It lists the files on the card in the order of the
picker, with the pad of each file. It writes, verifies, replaces and deletes files. You do not need a card reader
(add modules with the web page). - Published modules on the website. The 10 module files of the release are on the website. The module files
web page writes them to the card with one button each. They keep their numbers, so each goes on its pad. - New name. The project is now Circus Arrhythmia FM, with a new logo. The build names stay arrhythmia-firmware
and arrhythmia-devkit.
Changed behaviour
- Synth output 4 dB down. The fixed decrease of the synth output is now 4 dB. It was 7 dB. The synth is
approx. 3 dB louder than in 0.2.1. Set the balance with track 8's mixer level
(output level). - Eight scales. arrhythmia-firmware has eight scales. It has no Phrygian and no Lydian. A project that has
Phrygian plays and shows natural minor. A project that has Lydian plays and shows major. The project keeps its
stored value. The SysEx scale command refuses Phrygian and Lydian on arrhythmia-firmware
(scales). arrhythmia-devkit keeps all ten scales. - Scales on page 2. Scale, key and the tracks with scales are on page 2 of the synth page. In 0.2.1 you held
Shift to select scale and key, and Track 1 to 7 turned scales on or off. Now Track 1 to 7 close the page and select
that track.
Known issues
- Macro 1 light at step 8 to 9. On track 8, the light of macro 1 can flicker when the sequencer goes from step
8 to step 9. The cause is not known. - Crackle on the tested unit. A sample was heard crackling on the tested unit with the stock firmware 5706.
The cause and extent are unknown. - All known issues of 0.2.1 stay: see the 0.2.1 release notes.
Test status
On the unit, with development builds that have the code of 0.2.2 except the final light changes:
- Install and health report: pass.
- The synth plays on track 8: pass.
- Synth page: Up and Down, the layout of both pages, the exit buttons and their lights, Note exit from the normal
and the expanded Note view, Track 8 lit while Shift is held, Clear + macros 1 to 4, tune saved and loaded with the
project: pass. - Card writer with the module files web page: write, verify, list and delete module files, and write a published
module again with its button: pass. The picker shows a written file and starts it: pass. - Output level: measured on the unit against the 7 dB decrease of 0.2.1. Six capture comparisons on development
builds showed about 3 dB more level than 0.2.1. Live settings were not fully established across boots, so this
was not a complete headroom test.
The public image itself was not run on a unit. The final light and list-order changes (Clear and Shift lights on
the synth page, list order on the module page) were tested in emulation only.
In emulation only: the module functions and synth page functions not named above.
Not measured: the processing time of the synth on the unit, as in 0.2.0.
Install
Use the installer page, as for 0.2.1: install guide. An earlier Arrhythmia release updates
the same way.
| Build | Number | SHA-256 of the patched .syx |
|---|---|---|
| arrhythmia-firmware | 7339 | 7aadbde0811a77b23c05a06fca34c36d27d98c98945f3f587bb8d7ccf63fc822 |
| arrhythmia-devkit | 7228 | 66e1872c45b742992bdead24ebcbaffb9634d13b0a2db36caf5f2d1e6dd8354d |
arrhythmia-devkit 7228 is unchanged from 0.1.0 and is released again.
The version query (SysEx 70) ends 00 39 2B for 7339 and 00 38 3C for 7228. In bootloader mode the pads show
73 39 for 7339. The release file is release/v0.2.2.json. The files of the earlier releases stay in the repository
as their record.
Input: the official Circuit Rhythm firmware 2.0.1, build 5706 (SHA-256
11d604a6b6bef0d41378da03718658c7fe9c959ac24e7fef6563796b9932afaf), on a unit with bootloader 4799. The installer and
tools/crpatch.py refuse any other file.
Source
The ARM source is in patches/src/. The DSP source is in tools/dspvoice207m4/. It is the DSP source of 0.2.1
(tools/dspvoice207rel/) with one change: the output level constant. The
rebuild steps describe how image 7339 rebuilds from this tree with the official
firmware 5706 file as the only firmware input.
Licence
MIT (see LICENSE) for the Arrhythmia code and documents. Novation's firmware is not included and not
covered.
Arrhythmia 0.2.1
Arrhythmia 0.2.1 release notes
Arrhythmia is custom firmware for the Novation Circuit Rhythm. It ships as a patcher: you apply it to your own copy of
the official firmware file on your own computer, then send the result to the unit. No Novation firmware is included.
Arrhythmia is not affiliated with or endorsed by Novation or Focusrite. The device name says only which hardware this
is for.
0.2.1 builds on 0.2.0. The FM synth on track 8 is the same. The changes are in the controls, the sequencer and the
modules.
Changes since 0.2.0
New
-
Feedback on macro 1. On track 8, macro 1 now sets FM feedback. It was tune. Feedback is audible only with FM
depth (macro 6) above 0. Clear + macro 1 sets feedback 0. -
Tune on the synth page. Tune is now macro 1 of the synth page (Shift + Track 8). 64 is no change. There are 5
steps per semitone, up to 12 semitones up or down. -
Step chords. A track 8 step can hold up to 4 notes. In the Note view, hold the step and press more keys. Each
key adds a note. Press a chord note again to remove it. With notes per press 1, pads or MIDI notes played together
record as one chord step. Details: Step chords. -
Startup pulse. While the unit loads the pack at power-on, the pads show a heartbeat line over the load
progress. Loaded pads are dim green. -
Modules from the microSD card. Put module files in the folder
Moduleson the card. Shift + Sample Rec opens
the picker.- Numbered pads. A file
NNname.modgoes on pad NN (01 to 32). Pad 1 is top left. Pads without a file are
dark. Files without a number go on the free pads. Details: Loading. - Colours. Each pad of the picker has a colour from the file name. A module keeps its colour when you change
its number. - Play always works. Play starts and stops the transport while a module runs, and while the picker is open.
Modules that follow the clock start with Play. - Play blinks. While a module waits for Play, the Play button blinks green.
- Numbered pads. A file
-
8 new modules. They are card files in the release, with paint and stars:
Pad File Module 1 01paint.modPaint: pads light, fade and play notes 2 02euclid.modEuclid: four Euclidean rhythm rows 3 03life.modLife: the Game of Life plays notes 4 04rain.modRain: falling drops play notes 5 05balls.modBalls: bouncing balls play notes at the walls 9 09pulse.modPulse: lights on the beat 10 10stars.modStars: twinkling lights 17 17snake.modSnake: a game 18 18lights.modLights Out: a puzzle 19 19mole.modWhack-a-mole: a game on the beat Euclid, life, rain, balls, pulse and mole follow the clock: push Play. The controls of each module:
modules.
Changed behaviour
- Paint is not built in. Paint is now a card file,
01paint.mod. Without a card, the picker shows no pads. - 0.2.0 projects are converted. When you open a project from 0.2.0 or earlier, its tune goes to the synth page
and its feedback goes to macro 1. The sound stays the same. Save the project to keep the change. 0.2.0 does not
read the tune and feedback of a project saved by 0.2.1. - Projects from the stock firmware open with feedback from their old Tune value. Examine macro 1.
- Locks on macro 1 in older projects were tune locks. They now set feedback.
- Knob lights. On track 8, the lights of macro 1 (feedback) and macro 4 (sustain) go from off to full. The light
of tune on the synth page has its centre at 64.
Fixed
- The light of macro 1 on track 8 showed feedback as a value with a centre. It now goes from off to full.
- In the Note view, chord notes kept their second colour after you selected another step.
- When you held a chord step, only its root showed. All notes of the chord now show.
Known issues
- Feedback and sustain apply to new notes. Macro 1 (feedback) and macro 4 (sustain) take effect at the next
note start. A knob turn does not change sounding notes. - Stars does not take the pads. While stars runs, the pads play track sounds as usual.
- All known issues of 0.2.0 stay: see the 0.2.0 release notes.
Test status
On the unit, image 7329 itself:
- Install with no Play from a development build, version query and identity: pass.
- The synth plays on track 8, and FM depth (macro 6) changes the tone: pass.
- The health report right after that install was refused because notes were playing. It was not repeated.
- Install from 7329 to a development build, with the confirmation on Play (the install gate of the public image):
pass.
On the unit, with a development build with the same code as 7329 except the install gate (7330):
- Install and health report: pass.
- Chord note lights in the Note view: the second colour clears after the release, and the root and the chord notes
come on together: pass. Both come on after the hold delay of the unit, approx. 300 ms.
On the unit, with an earlier development build (7328):
- Startup pulse line, feedback knob light, tune light, chord notes that follow the selected step, the picker, life
with Play, snake paused: pass. - Sustain light: it dims at the bottom of its range, as the other knob lights do (stock behaviour).
In emulation only: the conversion of 0.2.0 projects, and the modules and module functions not named above.
Not measured: the processing time of the synth on the unit, as in 0.2.0.
Install
Use the installer page, as for 0.2.0: install guide. An earlier Arrhythmia release updates
the same way.
| Build | Number | SHA-256 of the patched .syx |
|---|---|---|
| arrhythmia-firmware | 7329 | f756c03a71039ba3edd248d53232f9bac24367a4cf800fe6ffd9b8d00fb15251 |
| arrhythmia-devkit | 7228 | 66e1872c45b742992bdead24ebcbaffb9634d13b0a2db36caf5f2d1e6dd8354d |
arrhythmia-devkit 7228 is unchanged from 0.1.0 and is released again.
The version query (SysEx 70) ends 00 39 21 for 7329 and 00 38 3C for 7228. In bootloader mode the pads show
73 29 for 7329. The release file is release/v0.2.1.json. The files of the earlier releases stay in the repository
as their record.
Input: the official Circuit Rhythm firmware 2.0.1, build 5706 (SHA-256
11d604a6b6bef0d41378da03718658c7fe9c959ac24e7fef6563796b9932afaf), on a unit with bootloader 4799. The installer and
tools/crpatch.py refuse any other file.
Source
The ARM source is in patches/src/. The DSP source is in tools/dspvoice207rel/; it is the same as in 0.2.0. The
rebuild steps describe how image 7329 rebuilds from this tree with the official
firmware 5706 file as the only firmware input.
Licence
MIT (see LICENSE) for the Arrhythmia code and documents. Novation's firmware is not included and not
covered.
Arrhythmia 0.2.0
Arrhythmia 0.2.0 release notes
Arrhythmia is custom firmware for the Novation Circuit Rhythm. It ships as a patcher: you apply it to your own copy of
the official firmware file on your own computer, then send the result to the unit. No Novation firmware is included.
Arrhythmia is not affiliated with or endorsed by Novation or Focusrite. The device name says only which hardware this
is for.
0.2 is the first stable release of the FM synth on track 8. One part is experimental: the processing time of the
synth has not been measured on the unit (see Known issues).
Changes since 0.1.1
New
Track 8 in arrhythmia-firmware is now a 4-operator FM synth with 4 voices. It replaces the saw synth of 0.1.x.
The chord functions, the scales, the parameter lock fix and the modules stay. arrhythmia-devkit is unchanged from
0.1.0.
- Sounds in the Sample view. Track 8's Sample view chooses the FM sound. The 16 pads of rows 3 and 4 are 16
ratio families. The first page plays them under the serial algorithm, the second page (Down) under the dual stack
algorithm. A tap selects the sound and plays it. The pad of the selected sound is bright, and the view opens on its
page. - Per-step sounds. The stock sample flip on a step selects the sound for that step. MIDI CC 8 on track 8's channel
selects the sound. - Eight macros on track 8. Macro 1 tune, 2 attack, 3 decay, 4 sustain, 5 release, 6 FM depth, 7 filter cutoff,
8 resonance. MIDI CC 21 to 28 and parameter locks work on all eight. If the sounds sound alike, turn macro 6 up. - Sustain. A held note stays at the sustain level until you release it, then fades through its release.
- Envelope ranges. Attack and modulator attack run from about 10 ms to 8 s. Release T60 (the time to fall by
60 dB) runs from about 29 ms to 8 s and starts smoothly. Decay T60 runs from 50 ms to 8 s. These are design values,
not measurements on the unit. - Filter. Quiet signals keep about the same low-frequency level at every resonance setting, and the top of the
cutoff range is smooth. Strong resonant peaks are shaped to keep their level bounded; this can change their tone. - Feedback and the modulator envelope. On the synth page (Shift + Track 8), macros 1 to 4 set feedback, modulator
attack, modulator decay and modulator floor. They apply at the next note start, not to sounding notes. Feedback is
audible only with FM depth (macro 6) above 0. The knob lights show the values. - Pad chords. With notes per press 1 and poly on, held pads sound together, up to 4.
- New projects start on Unity under serial (the first pad of the first page), with FM depth 96.
- Clear + macro 6 on track 8 sets FM depth to 96, the new-project value.
- The synth recovers after sample loading. After a pack change or a sample transfer or load (including read-back
over SysEx), track 8's synth starts again by itself with the settings loaded at that moment. Notes sounding on
track 8 at that moment are cut, and notes for track 8 during the load do not sound. Ordinary sample edits do not
trigger it. In earlier 0.2 test builds the synth stayed silent until a power cycle.
Details: Loading samples. - Fixed output level. The synth's output is lowered by a fixed amount, against crackle on loud chords. Set the
balance with track 8's mixer level. Details, the amount and a loudness measurement:
Output level.
Details: docs/user/synth.md.
Changed behaviour
- Macros 1 to 5 act at note start. Tune, attack, decay, sustain and release are taken when a note starts. A knob
turn or a lock changes the next notes, not the sounding ones. In 0.1.x, attack and decay changed every sounding
note. Macros 6 to 8 are live and also change sounding notes. - Stop, CC 123 and mute send sounding notes to their release.
- Existing projects (from 0.1.x, from stock firmware or imported) keep their stored track 8 sample slot, which
now selects the sound, and their macro values, which now have synth meanings on macros 1 and 4 to 8. Only a new
project gets the new defaults. One exception, as in 0.1.1: in a project never opened in Arrhythmia, a track 8
length (macro 3, Length on the stock panel) set to the full stock value 127 is read once as the default decay 64.
Any other value is kept. Save the project to keep the change. - Stored sample flips on track 8 now change the sound of those steps. In 0.1.x they had no audible effect.
Patterns saved under 0.1.x and factory patterns that flipped track 8's samples sound different.
Fixed
- FM feedback (synth page macro 1) was too weak to hear. Its range is increased 4 times. Feedback applies from
the next note and needs FM depth above 0.
Other
- arrhythmia-firmware answers a diagnostic request over USB MIDI; it changes no sound, setting or project, while
diagnostic counters and read bookkeeping advance (details).
Known issues
Processing time is not measured on the unit
This release is experimental in one respect: the DSP processing time of the synth is not measured on the unit.
- Estimate for the heaviest synth case: 128,409 cycles per audio block. It is a prior estimate from an earlier
build. It is not a measured worst case and is not derived again for this release. - It is composed from a model (128,288 cycles) plus the model cost of a fixed output level (121 cycles).
- We compare it with 131,072 cycles, a ceiling that we chose for the model. It is not a physical deadline.
- Silicon timing is not measured. The model does not cover all combinations with seven sample tracks and effects.
- If the processor runs out of time, audio can glitch or drop out.
- Glitches may occur without a fault report or Rec indication. Report them with the project settings.
Restart after a sample load
- If the restart after a sample load does not complete, track 8 stays silent until you turn the unit off and on.
Save your project first. - How frequently a restart does not complete on the unit is not known. Test results: see Test status.
Loud chords and high resonance
Some settings at high level or with high resonance can still crackle. In a model at this output level, the master
filter limits the signal in some cases with overlapping loud notes or transitions at high resonance. The fixed
output level does not guarantee clean headroom for all settings. A higher track 8
level makes crackle more likely.
A sample crackled, also on stock firmware
On our unit, the same sample was heard crackling with the verified official firmware 5706 installed. The cause and
extent are unknown.
High notes lose the character of the family
At high pitch, the modulation decreases gradually to limit aliasing. Aliasing is not fully removed. From the MIDI note
below, the family has no modulation (as FM depth 0), and macro 6 has no effect. Both algorithms, tune 64, design
values, not measured on the unit:
| From note | 91 | 96 | 101 | 103 | 105 | 106 | 109 | 115 | 119 |
|---|---|---|---|---|---|---|---|---|---|
| Family | High metal | Deep bell | Chime | Organ | Hollow | Metal | Bell | Bright | all others |
At high pitch, several families sound the same. Feedback (synth page macro 1) is not free of aliasing.
Other issues
- Releasing a note before its attack finishes can produce a small tick, especially at the fastest attack settings.
- The very end of a fading note carries a small rounding artefact at a very low level. Its audibility has not been
established. - With FM depth (macro 6) at 0 the families sound almost the same. Older projects can have macro 6 at 0.
- Only the first two pages of track 8's Sample view hold sounds. The other six pages are dark and do nothing.
- A tap in the Sample view plays the last note that track 8 played. A very high note can sound plain.
- Track 8 has 4 voices in total, including notes in their release.
- Save does not work while the synth page is open. Close the page first.
To be verified on the unit
Sample view sound selection; install of build 7323 with the confirmation on Play; FM settings
after power off; the voice of a fifth held pad; the sound after a choke.
Test status
Image 7323 itself: not run on the unit. Image 7323 has the same synth, feedback and sample-load recovery code as the
development builds below; the development builds have a different install gate. The install with the confirmation
on Play is tested in emulation only.
On the unit, with a development build with the same synth, feedback and sample-load recovery code as 7323 (the
development build has a different install gate):
- Install, version query and health report: pass.
- Feedback check, played on the unit at feedback 0 to 127 with FM depth above 0: pass.
On the unit, with a development build with the same sample-load recovery code:
- Pack switch away and back, automatic recovery on both switches: pass.
- 80-note run after the recovery: pass.
On the unit, with earlier development builds with the same FM engine, without the sample-load recovery:
- Install and return to the previous build: pass.
- Stress pattern of 2,458 MIDI messages, health report clean: pass.
- Host-driven four-note attack and release test: pass.
- Clear + macro 6 on the unit sets FM depth 96: pass.
- Host-driven repeated-note test with nine notes: pass.
- Chord crackle test with a fixed output level 2 dB lower than this release: pass.
- Loudness of the synth against stock samples: measured (see Output level).
- An earlier build, which chose the sound on a separate synth page view: idle for 10 minutes with no fault, single
notes and chords: pass.
In emulation only.
- The sample-load recovery for a sample loaded...
Arrhythmia 0.1.1
Arrhythmia 0.1.1 release notes
Arrhythmia is custom firmware for the Novation Circuit Rhythm. It ships as a patcher: you apply it to your own copy of
the official firmware file on your own computer, then send the result to the unit. No Novation firmware is included.
Arrhythmia is not affiliated with or endorsed by Novation or Focusrite. The device name says only which hardware this
is for.
What is new in 0.1.1
The track 8 chord synth in arrhythmia-firmware now has attack and decay. arrhythmia-devkit is unchanged from
0.1.0.
- Macro 2 sets the attack and macro 3 sets the decay on track 8. The values are 0 to 127. MIDI CC 22 and
CC 23 on track 8's channel set the same values. - Parameter locks work on both macros, as on the other macros.
- New projects start with attack 0 and decay 64. These values match the fixed sound of the 0.1.0 synth (a decay
of about 60 dB in about 2 seconds). - Clear + macro 3 on track 8 sets the decay to 64, not to the stock value 127. Clear + macro 2 sets the attack to
0, as on stock. Tracks 1 to 7 keep the stock behaviour. - Notes play out. When playback stops (press Play), on MIDI CC 123 (all notes off) and when track 8 is muted,
sounding synth notes play out their decay, like samples. - Track 8 ignores slice mode. Macros 2 and 3, their locks and lights, the Note-view keyboard, the octave arrows
and the expanded view work as without slice mode.
Details: docs/user/synth.md.
How attack and decay operate
- No sustain. A note rises through its attack, then decays. Holding a pad does not hold the level.
- Attack and decay are global for the synth. A knob turn or a parameter lock changes all track 8 voices that are
sounding, not only the note of the locked step. Example: a long decay locked on step 1 becomes shorter when step 2
plays with the knob value. - Range (design values, not measured on the unit): attack about 2 ms to 2 s; decay T60 (the time to fall by
60 dB) 50 ms to 8 s. Decay 64 has a T60 of 2 s. T60 is not the time until the note is silent. - Fine parts: Shift + macro 2 or 3 (CC 86 and CC 87) has no effect on the synth.
- Loudness: the track 8 mixer level sets the loudness, as before.
- Steps without a note: such a step uses the knob (base) value again. Attack and decay locks stored on a step
without a note are ignored. A lock carried from the preceding step that has a note still plays. Arrhythmia never
erases a lock: put a note on the step again and its locks play again. A step that holds a note counts as a step with
a note also when its probability skips the note: its locks apply. - Attack after the attack phase: a change to attack does not restart the attack of a note that is already in its
decay. - Clear + macro 3 in lock edit (Rec held with a step) records the value 127 as the lock of that step, as on stock.
- Projects from stock firmware or from 0.1.0: if track 8's decay (macro 3, Length on the stock panel) is at the
stock value 127, the project opens with decay 64. Other values stay. Save the project to keep the change. After a
save in 0.1.1, every value that you set stays, 127 included. - Stop, CC 123 and mute: notes play out their decay. One edge is accepted: a note that the sound processor had
already accepted at the moment of the stop still starts, then decays. CC 120 (all sound off) is ignored, as on stock: it does not cut the synth notes. - Cuts: loading a project or a pack, a choke and a sample edit cut the synth notes at once.
Install
The procedure is the same as for 0.1.0: install guide. The installer page offers the two
images of this release.
Two builds
| Build | Number | SHA-256 of the patched .syx |
|---|---|---|
| arrhythmia-firmware | 7261 | 920b2893e8427fc0ea468a414ad7bfc82705aa499828be4375196d6dca2b011b |
| arrhythmia-devkit | 7228 | 66e1872c45b742992bdead24ebcbaffb9634d13b0a2db36caf5f2d1e6dd8354d |
arrhythmia-firmware (7261), for players:
- Track 8 is a chord synth: 4 voices, one saw sound with attack (macro 2) and decay (macro 3), no sustain. Pads,
the sequencer, MIDI on track 8's channel and modules play it. - The synth page opens with Shift + Track 8: notes per press, chord type, voicing, octave, MIDI poly.
- Scales on tracks 1 to 7 (ten scales, shared key), set on the synth page.
- P-lock fix on all tracks: an unlocked step goes back to the knob's value.
- SD card module loader, with the built-in paint module.
- No DSP load meter.
arrhythmia-devkit (7228), for developers: unchanged from 0.1.0. The same image is released again in 0.1.1.
- DSP load meter and its read command.
- Module loader and SDK.
- Scales on tracks 1 to 7, set over SysEx only.
- P-lock fix.
- No synth: track 8 stays a stock sample track and there is no synth page.
The version query (SysEx 70) ends 00 38 5D for 7261 and 00 38 3C for 7228. In bootloader mode the pads show
72 61 for 7261. The release file is release/v0.1.1.json. release/v0.1.0.json stays in the repository as the
record of 0.1.0.
Image 7261 is byte-identical to the tested development build 7255 except for the build number. The ARM code of 0.1.1
is the 0.1.0 code plus the attack and decay code, which a build switch enables. The scales code for tracks 1 to 7 is
the same as in 0.1.0.
Input: the official Circuit Rhythm firmware 2.0.1, build 5706 (SHA-256
11d604a6b6bef0d41378da03718658c7fe9c959ac24e7fef6563796b9932afaf), on a unit with bootloader 4799. The installer and
tools/crpatch.py refuse any other file.
What was tested on hardware
Development builds 7253, 7254 and 7255 of arrhythmia-firmware, on one unit, 2026-10-20:
- Install.
- Attack and decay with the knobs and with parameter locks.
- Clear + macro 3.
- Notes that play out after Play stops, on CC 123 and when track 8 is muted.
- Slice mode on track 8.
- Steps without a note.
- Save and power cycle.
- No DSP fault: the fault query was clean at the end.
Image 7261 was not separately hardware-tested. It differs from hardware-tested development build 7255 only in the build number.
Tested in emulation only:
- A lock on a single micro-step only (the carried lock of a step with a note). The exact stimulus cannot be set by
hand on the unit. - Timing. The timing check is an emulation; there is no hardware timing (WCET) claim.
Not tested:
- Deliberate DSP fault containment (what the unit does when the sound processor is made to stop answering on
purpose). - arrhythmia-devkit 7228 on hardware (as in 0.1.0).
- Edge and macOS.
The functions that 0.1.1 does not change keep the test record of the
0.1.0 release notes.
Known limitations
- No sustain. The synth has one saw sound with attack and decay; there are no presets.
- Attack and decay are global: a lock also changes the notes of other steps that are still sounding.
- The 4 synth voices include notes that are still decaying, so dense playing can cut tails short.
- A note that the sound processor had already accepted at a stop still starts, then decays.
- Lock recording on track 8 in slice mode is tested only while the transport is stopped.
- Timing is checked in emulation only. A full pattern with long decays can cause audio errors; listen for them.
- The source of the sound processor (DSP) code of the synth is not published yet, so the full arrhythmia-firmware
image cannot be rebuilt from source yet. The ARM side and arrhythmia-devkit can. - The limitations of 0.1.0 that 0.1.1 does not change still apply (expanded view at the default octave, MIDI clock
during scale changes, SysEx 7D, the soak result, power-cycle before flashing). See the
0.1.0 release notes.
Licence
MIT (see LICENSE) for the Arrhythmia code and documents. Novation's firmware is not included and not
covered.
Arrhythmia 0.1.0
Arrhythmia 0.1.0 release notes
Arrhythmia is custom firmware for the Novation Circuit Rhythm. It ships as a patcher: you apply it to your own copy of
the official firmware file on your own computer, then send the result to the unit. No Novation firmware is included.
Arrhythmia is not affiliated with or endorsed by Novation or Focusrite. The device name says only which hardware this
is for.
Install in three steps
- Download Novation's official firmware 2.0.1 (build 5706): open this link in your browser and save the file:
https://components.novationmusic.com/api/v2/firmwares/169/file. Any file name works (the browser may call it
circuitrhythm-firmware-5706.syx); the installer checks the content. That is the only download you need. Other
ways (PowerShell, curl) are in
the install guide.
The "Source code" archives on the release page are for developers;STARS.MODis an optional light-show module. - Close Novation Components and any other music software or browser tab that uses MIDI. Do not start Components: it
holds the unit's MIDI port and the installer then cannot reach the unit (on Windows a MIDI port has one user at a
time). - Open https://llcoolkm.github.io/arrhythmia/web/ in Chrome (Edge untested) and connect the unit by USB. Press
"Connect MIDI", choose the file in "2. Choose the stock firmware", pick the image (arrhythmia-firmware for players),
press "Install", and press Play on the unit when it blinks. The page checks the file's SHA-256
(11d604a6b6bef0d41378da03718658c7fe9c959ac24e7fef6563796b9932afaf) before anything is sent.
Before installing, read Back up first and Going back to stock.
Close the installer tab before you open Components or any other MIDI software. On Windows a MIDI port has one
user at a time; in our test Components hung until the installer tab was closed.
Going back to stock: use Back to stock on the installer page, or send the unmodified 5706 file with
tools/flash.py. Novation Components cannot return the unit to stock: it reports the unit as up to date, because
Arrhythmia answers the standard identity query with the stock version 5706 on purpose.
Scales on the Note view
On a scaled track each row of pads is exactly one octave, from the key note to the key note above it:
- Every pad you play lights itself, and a note the sequencer plays lights its own pad.
- Only key notes sit on two pads (the end of one row and the start of the next), and both light together.
- 5- and 6-note scales leave dark, silent pads past the upper key note: two per row in the pentatonic scales, one in
blues. - Expanded view: at the default octave the upper rows run above the unit's highest note and stay dark. Press Down
twice for four full rows (in key C, once is enough).
Details and examples: docs/user/scales.md.
Two builds
| Build | Number | SHA-256 of the patched .syx |
|---|---|---|
| arrhythmia-firmware | 7229 | 13d983b24c30bbdb3df0b4c2203d1016a8ab85bede4528751dad7d45b9145571 |
| arrhythmia-devkit | 7228 | 66e1872c45b742992bdead24ebcbaffb9634d13b0a2db36caf5f2d1e6dd8354d |
arrhythmia-firmware (7229), for players:
- Track 8 becomes a chord synth: 4 voices, one saw sound with a fixed attack and a decay of about 2 seconds, no
sustain yet. Pads, the sequencer, MIDI on track 8's channel and modules play it. - The synth page opens with Shift + Track 8: notes per press, chord type, voicing, octave, MIDI poly.
- Scales on tracks 1 to 7 (ten scales, shared key), set on the synth page.
- P-lock fix on all tracks: an unlocked step goes back to the knob's value.
- SD card module loader, with the built-in paint module.
- No DSP load meter.
arrhythmia-devkit (7228), for developers:
- DSP load meter and its read command.
- Module loader and SDK.
- Scales on tracks 1 to 7, set over SysEx only.
- P-lock fix.
- No synth: track 8 stays a stock sample track and there is no synth page.
If you are not sure, install arrhythmia-firmware. You can switch between the two with the installer at any time.
The version query (SysEx 70) ends 00 38 3D for 7229 and 00 38 3C for 7228. The release file is
release/v0.1.0.json.
Input: the official Circuit Rhythm firmware 2.0.1, build 5706 (SHA-256
11d604a6b6bef0d41378da03718658c7fe9c959ac24e7fef6563796b9932afaf), on a unit with bootloader 4799. The installer and
tools/crpatch.py refuse any other file, and the installer checks both versions on the unit.
What was tested on hardware
On one unit, 2026-10-20, arrhythmia-firmware 7229 installed with tools/flash.py on Linux:
- The version reply shows 7229 and no DSP fault is reported.
- C major in the normal and the expanded view: every pad lights itself.
- A minor pentatonic: the two dark pads at the right of each row.
- A note held across a scale change stops when released.
- Scales off: the stock keyboard comes back.
- Save and power cycle: the settings are kept.
- Track 8's synth and unscaled tracks are unaffected.
All passed. arrhythmia-devkit 7228 was not tested on hardware.
The code outside the scales feature was tested on one unit, 2026-10-19, in development builds that differ from 7229 and 7228 only
in the scales code and the build number (the sound processor code is the same), installed with tools/flash.py on
Linux:
- Development firmware build: listening; a 60 second musical stress test; save plus 10 power cycles (settings kept); a 1 hour soak
with a module in the second half: the unit stayed responsive with no faults reported, but the audio result is
inconclusive (see known limitations). - Development devkit build: the version reply and no DSP fault reported; SysEx 7D refuses reads of the bootloader and the stock
firmware and allows module ITCM; the DSP load meter reads through command 08 (idle: core 0 about 41 %, core 1 about
1 %). No listening or stress test on devkit. - Windows with Chrome and a development version of the installer page that differs from this one only in the
release it embeds: detecting the unit, back to stock 5706, and installing a development firmware build all passed. This release's page itself was not run
against the unit.
Not tested:
- Listening or stress tests on arrhythmia-devkit.
- Edge (Chromium based, expected to work, but untested).
- macOS.
- Deliberate DSP fault containment (what the unit does when the sound processor is made to stop answering on
purpose). - Loading an Arrhythmia project on stock firmware is not confirmed on hardware.
- There is no restore tool for a backup of the unit's memory.
Known limitations
- In the expanded view at the default octave the upper rows are mostly dark; press Down twice.
- Changing a scale while the sequencer plays can stretch the MIDI clock the unit sends by a few milliseconds. At
130 BPM the longest clock interval measured during scale changes was 26.9 ms, against 24.0 ms without changes.
Devices that follow the unit's clock may notice it. - The 4 synth voices include notes that are still fading out, so dense playing can cut tails short.
- No synth sound controls: one fixed sound, no presets, no attack, decay or level. Planned for 0.2.
- The DSP voice source is not published yet, so the full arrhythmia-firmware image cannot be rebuilt from source yet.
The ARM side and arrhythmia-devkit can. - SysEx command 7D reads only module ITCM; it refuses reads of the bootloader and the stock firmware.
- Deliberate fault containment is untested (see above).
- The 1 hour soak audio result is inconclusive: no reference take on stock firmware and no close listening were done.
- After reading the devkit DSP meter, one flash attempt showed red pads and did not reach the Play confirmation. The
tool aborted and the installed firmware was untouched; a power cycle and a retry worked. Power-cycle the unit
before flashing.
Licence
MIT (see LICENSE) for our code and documents. Novation's firmware is not included and not covered.
Thanks
Thanks to Ghillermo's CIRCUITS-HACKS-RC, the community mod for the
Circuit Tracks that came first. Its published notes helped us, for example the rule that the bootloader installs only
an image whose version block differs. Arrhythmia is a separate project.