Grid grammar: - a base-36 glyph above a column's top operator tags it with a MIDI channel; '>' right of the tag makes the channel mono-legato (60 ms slide) - operators below a '!' form the stereo master chain: Z delay, W chorus, plus any filter/shaper - X: phase modulation by the cell to the left (and above), index from the right - K: control envelope; left of an operator it drives that operator's left param (2KL5 = 303 filter sweep) - per-note params: @ velocity, ^ key tracking, ? random; registers now read on the digit scale, so MIDI CC and UDP registers have full range I/O: - MIDI keeps the channel nibble - UDP (orca's ';', port 49161): k7 register, *3 bang a column, @34O write a glyph, #name load a patch - --stems n: one mono PipeWire node per channel tag (galdr.ch<tag>), sample-aligned with the master; separate nodes because a playback stream's AUX ports deliver no data in PipeWire 1.6 - the audio thread reconnects when PipeWire restarts; status line shows it - patches: ~/hometaping/<date>.galdr by default, .galdr extension, Ctrl+S, GALDR_DEBUG=<file> logs events Examples with render tests: drums, orchestra, acid. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
22 lines
1.4 KiB
Plaintext
22 lines
1.4 KiB
Plaintext
# galdr orchestra: one section per MIDI channel (tag glyph above each column).
|
|
# Sections are 4 columns: [left param | chain | right param | gap]. Tweak the digits;
|
|
# @ = velocity, ^ = key tracking, ? = random per note, a-z = registers (MIDI CC / UDP).
|
|
# strings ch1 saw > lowpass(cutoff=@ velocity, res 2) > env 4/5 > out; the HALL below it: highpass 1 > chorus 2/3 > delay 4/fb from register z (orca: ;z3)
|
|
# low str ch2 saw > lowpass 3/3 > env 3/4 > soft clip 2
|
|
# brass ch3 left col = saw>env modulator (no !); right = X FM with index from @ velocity > env 1/2 > soft clip 2
|
|
# horns ch4 pulse width 2 > lowpass 4/1 > env 3/3 > soft clip 1
|
|
# flute ch5 left = noise breath (highpass 9 > env 1 > gain 2); right = sine > env rel 3
|
|
# reed ch6 narrow pulse 1 > bandpass 6/6 > env 2/2 > fold 1
|
|
# clarinet ch7 square (width 5) > lowpass 6/1 > env 2/2
|
|
# timpani ch8 left = sine>env modulator; right = X index 3 > env 0/4 (play C1-C2)
|
|
# harp ch9 saw > lowpass: cutoff ^ key-tracked, resonance ? random per pluck > env 0/3
|
|
# choir ch10 triangle > lowpass: cutoff from register k (orca: ;k5), res 2 > slow env 7/7 > gain 9
|
|
.0...1...2...3...44..5...6...7...8...9..
|
|
.A...A...A2.2U...NO.1U..5U...O7..A...V..
|
|
@L2.3L3.1EX@4L1.9HE36B6.6L1..EX3^L?.kL2.
|
|
4E5.3E4..1E23E3.1E!.2E2.2E2..0E40E3.7E7.
|
|
.!..2S...2S.1S..2G..1F...!....!..!..9G..
|
|
1H...!....!..!...!...!...............!..
|
|
2W3.....................................
|
|
4Zz.....................................
|