# Real firmware app + core. host tests/panel/workflow.txt /tmp/panel-output
wait 80
expect mode 0
expect panel 0
expect track 0
expect store_writes 0
tapkey w0
wait 40
expect step0velocity >0
key w0 down
wait 300
key w0 up
wait 40
expect step0velocity >0
# A pitch edit on an empty bass step creates a complete audible event.
tapkey b2
spin ALGO -9
wait 40
expect engine 0
turn ALGO 1
wait 40
expect engine 1
turn PRESET 1
key w0 down
turn K1 7
key w0 up
wait 40
expect stepvelocity >0
expect stepgate >0
expect steppitch 43
# Persistent editor selection must not toggle a note.
tap EDIT
tapkey w0
wait 40
expect panel 7
expect stepvelocity >0
turn K2 2
turn K4 1
wait 40
expect stepglide 1
shot panel-edit.png
# A note survives screen navigation, and the keyboard is never a menu keypad.
tap SEQ
expect mode 1
key w0 down
wait 30
tap ENV
expect panel 4
expect active >0
shot panel-env.png
tap LFO
expect panel 5
expect active >0
shot panel-lfo.png
tap FX
expect panel 6
expect active >0
shot panel-fx.png
key w0 up
# Record through the real panel while an FX screen remains open.
tap REC
expect recording 1
expect playing 0
tap PLAY
expect playing 1
key w2 down
wait 180
key w2 up
tap REC
expect recording 0
tap PLAY
expect playing 0
# ARP momentary performance works from KEYS and cleans up on release.
press ARP
wait 30
expect perform 1
release ARP
wait 30
expect perform 0
# MIX uses knobs for mute, leaving note keys available.
tap GLO
turn K2 1
wait 40
expect mute 1
turn K2 -1
wait 40
expect mute 0
turn ALGO 1
wait 40
expect solo >0
turn ALGO -1
wait 40
expect solo 0
shot panel-mix.png
# Safe copy and dangerous clear use explicit commands, not key interception.
tap SAVE
expect panel 2
turn K1 1
tap SAVE
wait 40
expect used 3
turn K1 2
tap SAVE
expect confirm 1
tap HOME
expect confirm 0
expect panel 0
# Re-enter, confirm then execute clear; original notes survive cancellation.
tap SEQ
tap EDIT
tapkey w0
wait 40
expect stepvelocity >0
tap SAVE
tap SAVE
expect confirm 1
tap SAVE
wait 40
expect stepvelocity 0
# Undo restores the clear as one operation.
turn K1 -1
tap SAVE
wait 40
expect stepvelocity >0
shot panel-session.png
# Pattern selection is explicit K1 + SEL; keys still play notes or steps.
tap SEL
expect panel 3
turn K1 1
tap SEL
wait 40
expect pattern 1
shot panel-pattern.png
tap HOME
shot panel-sound.png
expect drops 0
expect store_writes 0
