Skip to content

Wakes v0.6.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 01:23
· 7 commits to main since this release
e3c8a83

What's New

In v0.6.0, a deep optimization pass on Plaits' audio thread, Marbles' MIDI clock sync calculation, and the MIDI over USB thread resulted in a massive decrease in CPU requirements, a reduction in latency from ~25ms to ~8ms, and a smart clock delay compensation algorithm for Marbles. Wakes is now a fully playable and sync-able MIDI instrument, ready to play along with other instruments.

Claude's Blurb

Flashing

Read docs/SAFETY.md first. The SP-1 has no hardware reset pin.

  1. Open https://solderless.engineering in a browser and connect the SP-1 over USB-C.
  2. Hold Track 1 + Track 4 while plugging in. The four track lights go solid.
  3. Select wakes-sp1-v0.6.0.bin, flash, then unplug and replug.

wakes-sp1.bin is the same file under a fixed name, for the README's download link.
Check the file against SHA256SUMS before flashing.
wakes-sp1-v0.6.0-fallback.bin is the test-tone build without Plaits or Marbles,
for diagnosing hardware only. It is not the instrument.

Size vs v0.5.0

plaits vs v0.5.0

Config: plaits

base head Δ of total
FLASH (.bin) 420,856 424,252 +3,396 46.45%
RAM 172,530 168,790 -3,740 64.39%
Sections that changed
section base head Δ
noinit 121,192 117,352 -3,840
text 238,072 241,112 +3,040
rodata 178,240 178,588 +348
bss 48,198 48,290 +92
datas 2,690 2,699 +9
device_states 26 25 -1
check_image
check_image: build/zephyr
  [PASS] _vector_table at 0x20000  (0x20000)
  [PASS] no load segment below 0x20000  (lowest LMA 0x20000)
  [PASS] no load segment at or above 0xFF000  (image ends 0x8793c)
  [PASS] wakes-sp1.bin matches the ELF's loadable span  (424252 B vs 424252 B)
  [PASS] .map: FLASH region origin 0x20000  (0x20000)
  [PASS] .map: FLASH region ends at 0xFF000  (0xff000)
  [PASS] .map: _vector_table at 0x20000  (0x0000000000020000)
  [PASS] CONFIG_USE_DT_CODE_PARTITION=y  (got y)
  [PASS] CONFIG_FLASH_LOAD_OFFSET=0x20000  (got 0x20000)
  [PASS] CONFIG_WATCHDOG=y  (got y)
  [PASS] CONFIG_REBOOT=y  (got y)
  [PASS] CONFIG_CLOCK_CONTROL_NRF_K32SRC_SYNTH=y  (got y)
  [PASS] one layout per Plaits/Marbles class  (175 classes)
  [PASS] SP1_FORCE_CALIB is 0  (got 0)
wakes-sp1.bin: 424252 B (46.45% of the slot), plaits config
OK: safe to hand over for flashing

fallback vs v0.5.0

Config: fallback

base head Δ of total
FLASH (.bin) 85,404 86,044 +640 9.42%
RAM 127,490 123,447 -4,043 47.09%
Sections that changed
section base head Δ
noinit 121,048 117,208 -3,840
text 73,288 73,848 +560
bss 4,834 4,631 -203
rodata 9,120 9,200 +80
check_image
check_image: build/zephyr
  [PASS] _vector_table at 0x20000  (0x20000)
  [PASS] no load segment below 0x20000  (lowest LMA 0x20000)
  [PASS] no load segment at or above 0xFF000  (image ends 0x3501c)
  [PASS] wakes-sp1.bin matches the ELF's loadable span  (86044 B vs 86044 B)
  [PASS] .map: FLASH region origin 0x20000  (0x20000)
  [PASS] .map: FLASH region ends at 0xFF000  (0xff000)
  [PASS] .map: _vector_table at 0x20000  (0x0000000000020000)
  [PASS] CONFIG_USE_DT_CODE_PARTITION=y  (got y)
  [PASS] CONFIG_FLASH_LOAD_OFFSET=0x20000  (got 0x20000)
  [PASS] CONFIG_WATCHDOG=y  (got y)
  [PASS] CONFIG_REBOOT=y  (got y)
  [PASS] CONFIG_CLOCK_CONTROL_NRF_K32SRC_SYNTH=y  (got y)
  [PASS] SP1_FORCE_CALIB is 0  (got 0)
wakes-sp1.bin: 86044 B (9.42% of the slot), fallback config
OK: safe to hand over for flashing

SHA-256

f941579b541fcf73b1f3110c6f02c16bad8b4b928e5f2de261164e9735f0c579  wakes-sp1-v0.6.0-fallback.bin
0484c18e325123d0088aa3e30f8f2b94a1e498d46be447574319332280e953b5  wakes-sp1-v0.6.0.bin
0484c18e325123d0088aa3e30f8f2b94a1e498d46be447574319332280e953b5  wakes-sp1.bin