music-pipe-rs

Algorithmic Music Demo - Composer Styles

Bach - Full Organ Arrangement

The iconic opening of Bach's Toccata and Fugue in D minor (BWV 565), arranged for multi-voice church organ with octave doubling and pedal bass.
Script Details & Explanation
# Full notes extracted via: mid2seq "Toccata and Fugue in D minor, BWV 565.mid" --bars 4 NOTES='[A4,A5,A6]/t28*89 [G4,G5,G6]/t28*107 [A4,A5,A6]/t163*93 R/t77 [G4,G5,G6]/t28*85 [F4,F6]/t28*88 [E4,E6]/t28*90 [D4,D6]/t28*90 [C#4,C#5,C#6]/t54*110 [D4,D5,D6]/t109*106 R/t371 [A3,A4,A5]/t28*89 [G3,G4,G5]/t28*106 [A3,A4,A5]/t163*92 R/t77 [E3,E4,E5]/t54*86 [F3,F4,F5]/t54*99 [C#3,C#4,C#5]/t54*102 [D3,D4,D5]/t109*104 R/t371 [A2,A3,A4]/t28*90 [G2,G3,G4]/t28*107 [A2,A3,A4]/t163*93 R/t77 [G2,G3,G4]/t28*86 [F2,F4]/t28*87 [E2,E4]/t28*91 [D2,D4]/t28*88 [C#2,C#3,C#4]/t54*111 [D2,D3,D4]/t109*106 R/t371 D1/t1826*116 [D2,E2,A#2,E3,G3,C#4]/t433*64 R/t47 [D2,E2,A#2,C#3,G3,A#3,E4]/t433*81 R/t47 [D2,E2,A#2,D3,G3,A#3,C#4,G4]/t386*92 R/t94 [D2,G2,A#2,D3,E3,G3,C#4,E4,A#4]/t433*102 R/t47 [D2,G2,A#2,D3,E3,A#3,E4,G4,C#5]/t433*107 R/t47 [D2,G2,A#2,C#3,D3,E3,D4,G4,A#4,C#5,E5]/t913*115 R/t47 [D2,G2,A2,D3,D4,G4,A4,D5]/t109*90 R/t11 [E2,E3,E4]/t109*112 R/t11 [F#2,F#3,F#4]/t458*115' # Generate MIDI with church organ (patch 19) seq --notes "$NOTES" --bpm 72 --patch 19 | to-midi --out bach.mid # Render to audio SF2="${HOME}/github/softwarewrighter/midi-cli-rs/soundfonts/GeneralUser_GS.sf2" fluidsynth -ni -F bach.wav "$SF2" bach.mid

Approach

  • Uses mid2seq to extract notes from existing MIDI files
  • Tick-based notation preserves original timing and velocities
  • Patch 19 = Church Organ (General MIDI)
  • Chord notation [A4,A5,A6] for simultaneous notes
  • Pipeline: mid2seq → seq → to-midi → fluidsynth
~19s D minor Church Organ 4 channels

Bach - 8-bit Arcade Style

Gyruss-inspired chiptune rendition with square wave synthesis and punchy 140 BPM arcade tempo. Single channel, pure melody.
Script Details & Explanation
seq --notes "D5/4*127 C#5/32*120 D5/32*120 A4/32*115 G4/32*110 F4/32*110 E4/32*105 D4/32*105 C#4/32*110 D4/8*120 R/8 A4/4*125 G#4/32*115 A4/32*115 E4/32*110 D4/32*105 C4/32*105 B3/32*100 A3/32*100 G#3/32*105 A3/8*115 R/8 D5/4*127 C#5/32*120 D5/32*127 A4/32*115 G4/32 F4/32 E4/32 D4/32 C#4/32*115 D4/4*127 R/8 D3/2*127" \ --bpm 140 --ch 0 --patch 80 --vel 120 \ | viz | to-midi --out arcade.mid fluidsynth -ni -F arcade.wav soundfont.sf2 arcade.mid

Approach

  • Single channel monophonic melody (classic chiptune constraint)
  • Patch 80 = Square Lead (closest to 8-bit square wave)
  • 140 BPM fast arcade tempo for energy
  • Inspired by Gyruss (1983) arcade game by Konami
~7.5s Square Wave 140 BPM 1 channel

Bach-esque - Toccata and Fugue Style

Composed in the style of J.S. Bach's organ works, featuring D minor fugal counterpoint with subject, countersubject, and pedal bass. Three voices on church organ with baroque ornamentation.
Script Details & Explanation
# Upper manual - fugue subject with baroque flourishes seq --notes "D5/t240*95 C#5/t120*85 D5/t120*90 E5/t240*92 F5/t360*95 E5/t120*85 D5/t120*88 C#5/t120*85 D5/t480*98 R/t240 A4/t120*88 B4/t120*85 C#5/t120*88 D5/t120*90 E5/t120*88 F5/t120*90 G5/t120*92 A5/t360*95 G5/t120*88 F5/t120*85 E5/t120*88 D5/t240*92 R/t120 D5/t120*90 E5/t120*88 F5/t240*92 G5/t240*90 A5/t480*95 R/t240 G5/t120*85 F5/t120*82 E5/t120*85 D5/t120*88 C#5/t120*85 D5/t120*88 E5/t120*90 F5/t360*95 E5/t120*85 D5/t240*92 C#5/t240*88 D5/t720*100" --bpm 120 --ch 0 --patch 19 > upper.jsonl # Lower manual - countersubject (imitative, enters on A) seq --notes "R/t960 A4/t240*88 G#4/t120*78 A4/t120*82 B4/t240*85 C5/t360*88 B4/t120*78 A4/t120*80 G#4/t120*78 A4/t480*90 R/t240 E4/t120*80 F4/t120*78 G4/t120*80 A4/t120*82 B4/t120*80 C5/t120*82 D5/t120*85 E5/t360*88 D5/t120*80 C5/t120*78 B4/t120*80 A4/t240*85 R/t120 A4/t120*82 B4/t120*80 C5/t240*85 D5/t240*82 E5/t480*88 R/t240 D5/t120*78 C5/t120*75 B4/t120*78 A4/t120*80 G#4/t120*78 A4/t120*80 B4/t120*82 C5/t360*88 B4/t120*78 A4/t240*85 G#4/t240*80 A4/t720*92" --bpm 0 --ch 1 --patch 19 > lower.jsonl # Pedal bass - foundational, outlines D minor progression seq --notes "D2/t720*85 A2/t480*80 D2/t480*85 F2/t480*82 A2/t720*85 D3/t480*88 A2/t480*82 D2/t720*85 G2/t480*80 C3/t480*78 F2/t720*82 Bb2/t480*78 A2/t720*85 D2/t480*82 G2/t480*80 A2/t720*88 D2/t960*92" --bpm 0 --ch 2 --patch 19 > pedal.jsonl cat upper.jsonl lower.jsonl pedal.jsonl | viz | to-midi --out bach-esque.mid SF2="${HOME}/github/softwarewrighter/midi-cli-rs/soundfonts/GeneralUser_GS.sf2" fluidsynth -ni -F bach-raw.wav "$SF2" bach-esque.mid ffmpeg -y -i bach-raw.wav -t 18 -af "volume=1.3,afade=t=out:st=16:d=2" bach-esque.wav

Approach

  • Composed fugue structure: subject on D, answer on A
  • Countersubject enters after subject with imitative motion
  • Pedal bass moves in half/whole notes, outlines harmony
  • Baroque ornamentation with scalar runs and sequences
  • Church Organ (patch 19) for authentic baroque sound
~18s Composed D minor 3 voices

Maple Leaf Rag (1899)

Scott Joplin's most famous ragtime composition, the "king of ragtime." The "king of ragtime" - syncopated piano classic.
Script Details & Explanation
# 127 notes at 130 BPM seq --notes "R/t712 [D#2,D#3]/t40*96 R/t204 G#3/t156*86 G#2/t164*86 G#4/t88*73 [G#3,C4]/t56*83 D#3/t32*69 D#4/t152*86 D#5/t120*81 R/t16 G#4/t236*66 [G#3,C4]/t72*68 D#3/t40*52 C5/t96*77 R/t40 D#5/t236*77 D#4/t240*91 [A2,A3]/t72*86 R/t84 G4/t88*81 [A#2,A#3]/t192*86 [D#4,D#5]/t184*81 G4/t200*73 [G3,C#4]/t72*68 A#4/t104*77 R/t28 D#4/t580*91 D#5/t480*81 C#4/t76*52 D#3/t140*57 G3/t44*54 R/t200 D#3/t40*86 D#2/t32*91 R/t200 G#3/t156*81 G#2/t156*81 G#4/t84*66 [D#3,G#3,C4]/t40*69 D#5/t156*86 D#4/t184*86 G#4/t248*59 [G#3,C4]/t72*59 [D#3,C5]/t36*54 R/t44 D#5/t240*77 D#4/t232*91 [A2,A3]/t104*94 R/t56 G4/t104*86 [A#2,A#3]/t136*83 D#4/t196*86 D#5/t108*86 R/t24 G4/t208*77 [D#3,G3]/t64*60 C#4/t36*41 A#4/t92*59 R/t40 D#5/t360*77 D#4/t344*81 C#4/t44*37 D#3/t112*66 R/t132 D#3/t48*77 D#2/t48*86 R/t104 D#4/t272*86 D#5/t208*86 E3/t280*108 E2/t288*102 G#4/t284*73 B4/t120*69 R/t20 [E4,E5]/t72*86 R/t16 D#2/t72*81 D#3/t56*73 R/t88 D#5/t56*91 D#4/t48*81 R/t28 [D#2,D#3]/t56*91 R/t96 D#5/t192*91 D#4/t240*91 E3/t200*108 E2/t196*108 G#4/t260*77 B4/t148*77 E5/t76*86 E4/t60*77 R/t36 [D#2,D#3]/t304*83 [D#4,D#5]/t36*105 R/t196 G#1/t208*91 G#2/t176*69 B2/t160*54 G#3/t76*73 R/t28 G#2/t164*108 G#3/t244*66 B3/t152*59 G#4/t120*69 G#3/t164*120 G#4/t252*59 B4/t148*66 G#5/t100*77 G#4/t164*120 G#5/t200*81 B5/t164*65 G#6/t120*81 G#5/t48*86 [D4,G#4]/t60*83 B4/t40*81 F4/t36*77 R/t196 [D4,B4,G#5]/t44*87 [F4,G#4]/t40*75 G#6/t44*91 R/t196 [G#4,B4,G#5]/t48*86 [D4,F4,G#6]/t32*87" \ --bpm 130 --ch 0 --patch 0 \ | humanize --jitter-ticks 8 --jitter-vel 8 \ | trim --auto \ | to-midi --out maple-leaf.mid fluidsynth -ni -F raw.wav soundfont.sf2 maple-leaf.mid ffmpeg -y -i raw.wav -t 12 -af "afade=t=out:st=10:d=2" maple-leaf.wav

Notation Features

  • /t480 - tick-based duration (480 ticks = 1 beat)
  • [D#2,D#3] - chord notation (octave doubling)
  • *96 - per-note velocity for dynamics
~12s Ab major Piano 130 BPM

The Entertainer (1902)

"A Rag Time Two Step" - the classic ragtime piece featured in "The Sting." Joplin's tempo marking: "Do not play this piece fast." Joplin's most famous piece, featured in "The Sting."
Script Details & Explanation
# 109 notes at 200 BPM seq --notes "R/t1925 D5/t213*86 D6/t226*107 E5/t226*82 E6/t251*92 C5/t248*82 C6/t236*96 [A4,A5]/t506*91 B5/t236*96 B4/t224*70 G5/t208*96 G4/t201*86 R/t277 [D4,D5]/t241*93 E5/t233*85 E4/t234*70 C5/t241*96 C4/t246*78 A4/t471*96 A3/t476*86 R/t2 B4/t241*96 B3/t229*78 R/t9 G3/t193*82 G4/t181*92 R/t299 [D3,D4]/t231*96 E4/t233*88 E3/t226*82 R/t9 C4/t219*92 C3/t236*82 R/t1 A3/t481*100 A2/t491*86 B3/t246*96 B2/t226*86 R/t11 [A2,A3]/t224*93 R/t9 G#3/t221*84 G#2/t228*82 R/t2 G3/t281*100 G2/t309*94 R/t641 [G4,B4,D5]/t274*98 G5/t236*96 [G1,G2]/t166*88 R/t312 [D4,G4,B4]/t236*84 D#4/t218*78 R/t32 [C3,E4]/t226*91 C5/t458*104 [E3,G3,C4]/t209*74 R/t24 E4/t256*81 [G2,G3]/t203*86 C5/t436*100 R/t32 E4/t258*84 [G3,C4]/t203*82 A#3/t184*67 R/t39 C5/t1171*104 [F2,F3]/t213*84 R/t267 [A3,C4]/t178*86 R/t304 [E2,E3]/t191*84 R/t41 C5/t126*88 [E5,C6]/t126*100 R/t91 [G3,C4,D5,F5,D6]/t211*88 R/t22 F#5/t115*88 [D#5,D#6]/t115*83 R/t87 [E5,G5,E6]/t115*104 G2/t154*94 R/t86 [C5,E5,C6]/t115*87 R/t123 [E3,G3,C4,D5,F5,D6]/t238*90 [E5,G5,E6]/t319*97 G2/t181*94 R/t52 B5/t115*100 [B4,D5]/t115*100 R/t125 [D5,F5,D6]/t299*96 [F3,G3,B3]/t206*78 R/t271 C3/t241*90" \ --bpm 200 --ch 0 --patch 0 \ | humanize --jitter-ticks 4 --jitter-vel 5 \ | trim --auto \ | to-midi --out entertainer.mid fluidsynth -ni -F raw.wav soundfont.sf2 entertainer.mid ffmpeg -y -i raw.wav -t 12 -af "afade=t=out:st=10:d=2" entertainer.wav
~12s C major Piano 200 BPM

Ride of the Valkyries - Full Orchestra

The actual Ride of the Valkyries theme (WWV 86B) - the iconic "da-da-da-DUM-da" galloping motif from "What's Opera, Doc?" Transcribed note-for-note with full late-Romantic orchestration across 10 MIDI channels.
Script Details & Explanation
# BRASS (4 channels) seq --notes "B4/8 B4/8 B4/8 D5/4 B4/8 B4/8 B4/8 B4/8 D5/4 B4/8 D5/8 D5/8 D5/8 F#5/4 D5/8 D5/8 D5/8 D5/8 F#5/4 D5/8 F#5/8 F#5/8 F#5/8 A5/4 F#5/8 F#5/8 F#5/8 F#5/8 A5/4 F#5/8 D5/8 D5/8 D5/8 F#5/4 D5/8 B4/8 B4/8 B4/8 D5/2" --bpm 152 --ch 0 --patch 60 --vel 115 > horn.jsonl seq --notes "R/2 R/4 D5/4 B4/8 B4/8 B4/8 B4/8 D5/4 B4/8 D5/8 D5/8 D5/8 F#5/4 D5/8 D5/8 D5/8 D5/8 F#5/4 D5/8 F#5/8 F#5/8 F#5/8 A5/4 F#5/8 F#5/8 F#5/8 F#5/8 A5/4 F#5/8 D5/8 D5/8 D5/8 F#5/4 D5/8 B4/8 B4/8 B4/8 D5/2" --bpm 0 --ch 1 --patch 56 --vel 105 > trumpet.jsonl seq --notes "B3/8 B3/8 B3/8 D4/4 B3/8 B3/8 B3/8 B3/8 D4/4 B3/8 D4/8 D4/8 D4/8 F#4/4 D4/8 D4/8 D4/8 D4/8 F#4/4 D4/8 F#4/8 F#4/8 F#4/8 A4/4 F#4/8 F#4/8 F#4/8 F#4/8 A4/4 F#4/8 D4/8 D4/8 D4/8 F#4/4 D4/8 B3/8 B3/8 B3/8 D4/2" --bpm 0 --ch 2 --patch 57 --vel 100 > trombone.jsonl seq --notes "B2/4 B2/8 B2/4 B2/8 B2/4 B2/8 B2/4 B2/8 D3/4 D3/8 D3/4 D3/8 D3/4 D3/8 D3/4 D3/8 F#3/4 F#3/8 F#3/4 F#3/8 F#3/4 F#3/8 F#3/4 F#3/8 B2/4 B2/8 B2/4 B2/8 B2/2" --bpm 0 --ch 3 --patch 58 --vel 120 > tuba.jsonl # WOODWINDS (2 channels) seq --notes "R/2 B5/8 B5/8 B5/8 D6/4 B5/8 B5/8 B5/8 B5/8 D6/4 B5/8 D6/8 D6/8 D6/8 F#6/4 D6/8 D6/8 D6/8 D6/8 F#6/4 D6/8 F#6/8 F#6/8 F#6/8 A6/4 F#6/8 F#6/8 F#6/8 F#6/8 A6/4 F#6/8 D6/4 F#6/4 D6/4 B5/2" --bpm 0 --ch 4 --patch 72 --vel 90 > flute.jsonl seq --notes "R/4 F#5/8 D5/8 F#5/8 D5/8 B4/8 D5/8 F#5/8 D5/8 B4/8 D5/8 A5/8 F#5/8 A5/8 F#5/8 D5/8 F#5/8 A5/8 F#5/8 D5/8 F#5/8 B5/8 A5/8 F#5/8 A5/8 F#5/8 D5/8 F#5/8 D5/8 B4/8 D5/8 F#5/8 D5/8 B4/8 D5/4 B4/2" --bpm 0 --ch 5 --patch 71 --vel 80 > clarinet.jsonl # STRINGS (2 channels) seq --notes "B4/8 F#4/8 D4/8 B4/8 F#4/8 D4/8 B4/8 F#4/8 D4/8 B4/8 F#4/8 D4/8 D5/8 A4/8 F#4/8 D5/8 A4/8 F#4/8 D5/8 A4/8 F#4/8 D5/8 A4/8 F#4/8 F#5/8 D5/8 A4/8 F#5/8 D5/8 A4/8 F#5/8 D5/8 A4/8 F#5/8 D5/8 A4/8 D5/8 A4/8 F#4/8 B4/8 F#4/8 D4/8 B4/2" --bpm 0 --ch 6 --patch 48 --vel 85 > violin.jsonl seq --notes "B2/4 B2/8 B2/4 B2/8 B2/4 B2/8 B2/4 B2/8 D3/4 D3/8 D3/4 D3/8 D3/4 D3/8 D3/4 D3/8 F#3/4 F#3/8 F#3/4 F#3/8 F#3/4 F#3/8 F#3/4 F#3/8 B2/4 B2/8 B2/4 B2/8 B2/2" --bpm 0 --ch 7 --patch 42 --vel 115 > cello.jsonl # PERCUSSION (ch 9) seed 1883 | euclid --steps 12 --pulses 2 --note 41 --ch 9 --bpm 0 --repeat 10 --vel 110 --accent 0.4 > timpani.jsonl seed 1876 | euclid --steps 24 --pulses 2 --note 49 --ch 9 --bpm 0 --repeat 5 --vel 90 > cymbal.jsonl cat horn.jsonl trumpet.jsonl trombone.jsonl tuba.jsonl flute.jsonl clarinet.jsonl violin.jsonl cello.jsonl timpani.jsonl cymbal.jsonl | viz | trim --auto | to-midi --out valkyries.mid fluidsynth -ni -F raw.wav soundfont.sf2 valkyries.mid ffmpeg -i raw.wav -t 14 -af "afade=t=out:st=12:d=2" valkyries.wav

Full Orchestration (10 channels)

  • Brass Section: French Horns (patch 60), Trumpets (patch 56), Trombones (patch 57), Tuba (patch 58)
  • Woodwinds: Flutes/Piccolo (patch 72), Clarinets (patch 71)
  • Strings: Violins (patch 48), Cellos (patch 42)
  • Percussion: Timpani + Cymbals (channel 9)

Approach

  • 152 BPM galloping tempo in 9/8 feel
  • Theme rises through B-D, D-F#, F#-A progression
  • Horns carry iconic melody, trumpets double for power
  • Strings provide galloping tremolo accompaniment
  • Timpani on downbeats, cymbals for climactic crashes
  • Tuba (vel 120) and cellos (vel 115) boosted for bass punch
  • trim --auto removes trailing silence (500ms padding after last note)
~14s B minor 10 channels Bass boosted

Wagner-esque - Ride of the Valkyries Style

Heroic brass fanfares composed in the style of Richard Wagner's "Ride of the Valkyries". French horn melody with triplet gallop rhythm, trombone harmony, tuba foundation, and thunderous timpani accents.
Script Details & Explanation
# French Horn - the iconic Valkyrie fanfare with triplet gallop seq --notes "B4/t160*100 B4/t160*95 B4/t160*90 F#5/t320*105 D5/t160*95 B4/t160*90 B4/t160*88 B4/t160*85 F#5/t320*102 D5/t160*92 B4/t480*98 R/t160 B4/t160*95 D5/t160*92 F#5/t320*105 B5/t480*110 A5/t160*100 F#5/t160*95 D5/t320*98 B4/t480*95 R/t320 B4/t160*98 B4/t160*92 B4/t160*88 F#5/t320*105 D5/t160*95 B4/t160*90 B4/t160*88 B4/t160*85 F#5/t320*102 D5/t160*92 B4/t320*95 D5/t160*90 F#5/t160*95 B5/t480*110 A5/t320*100 G5/t320*98 F#5/t640*105" --bpm 152 --ch 0 --patch 60 > horn.jsonl # Trombone - powerful harmonic countermelody seq --notes "R/t480 D4/t320*95 D4/t160*88 F#4/t320*98 D4/t160*90 B3/t480*95 R/t160 D4/t160*92 F#4/t160*90 A4/t320*98 F#4/t160*92 D4/t480*95 B3/t320*90 D4/t160*88 F#4/t480*98 R/t320 D4/t320*95 D4/t160*88 F#4/t320*98 D4/t160*90 B3/t320*92 D4/t160*88 B3/t160*85 D4/t160*90 F#4/t320*98 A4/t480*100 G4/t160*92 F#4/t160*90 E4/t160*88 D4/t480*95 F#4/t640*100" --bpm 0 --ch 1 --patch 57 > trombone.jsonl # Tuba - thunderous bass with galloping rhythm seq --notes "B2/t160*92 B2/t160*85 B2/t160*80 B2/t320*95 F#2/t160*88 B2/t160*85 B2/t160*80 B2/t160*78 B2/t320*92 F#2/t160*85 B2/t480*95 R/t160 D3/t160*88 D3/t160*82 F#3/t320*92 D3/t160*85 B2/t480*95 B2/t160*88 D3/t160*85 F#3/t320*92 B2/t480*95 R/t320 B2/t160*92 B2/t160*85 B2/t160*80 B2/t320*95 F#2/t160*88 B2/t160*85 B2/t160*80 B2/t160*78 B2/t320*92 F#2/t160*85 B2/t320*95 D3/t160*88 F#3/t160*90 B3/t480*98 A2/t320*88 G2/t320*85 F#2/t640*92" --bpm 0 --ch 2 --patch 58 > tuba.jsonl # Timpani - dramatic accents on strong beats seq --notes "B2/t160*100 R/t320 R/t480 B2/t160*95 R/t320 R/t480 B2/t160*98 R/t640 F#2/t160*90 B2/t160*95 R/t640 B2/t160*100 R/t320 R/t480 B2/t160*95 R/t320 R/t480 B2/t160*98 R/t320 R/t160 B2/t160*92 R/t160 B2/t160*100 R/t320 R/t480 B2/t160*95 R/t320 R/t480 B2/t160*98 R/t640 F#2/t160*90 B2/t160*95 R/t480 B2/t160*105 B2/t160*100 B2/t160*95 B2/t640*110" --bpm 0 --ch 3 --patch 47 > timpani.jsonl cat horn.jsonl trombone.jsonl tuba.jsonl timpani.jsonl | viz | to-midi --out wagner.mid SF2="${HOME}/github/softwarewrighter/midi-cli-rs/soundfonts/GeneralUser_GS.sf2" fluidsynth -ni -F wagner-raw.wav "$SF2" wagner.mid ffmpeg -y -i wagner-raw.wav -t 14 -af "volume=1.4,afade=t=out:st=12:d=2" wagner.wav

Approach

  • Composed heroic brass with Valkyrie triplet gallop rhythm
  • French horn fanfare with dramatic leaps and phrases
  • Trombone provides harmonic depth and countermelody
  • Tuba drives the galloping bass foundation
  • Timpani accents reinforce dramatic downbeats
~14s Composed B minor 4 voices

Verdi-esque - Lyrical Bel Canto

Composed in the style of Giuseppe Verdi's romantic operas. Singable, flowing bel canto violin melody over warm cello bass, lush string ensemble chords, and delicate clarinet fills.
Script Details & Explanation
# Solo Violin - aria-like melody, singable and passionate seq --notes "G5/t480*85 A5/t240*88 B5/t480*92 A5/t240*85 G5/t240*82 F#5/t240*80 E5/t480*85 R/t240 D5/t360*82 E5/t120*80 F#5/t240*85 G5/t480*90 A5/t480*95 B5/t720*100 R/t240 A5/t240*88 G5/t240*85 F#5/t240*82 G5/t480*88 A5/t240*85 B5/t240*88 C6/t480*95 B5/t240*90 A5/t360*88 G5/t600*92 R/t240 E5/t240*80 F#5/t240*82 G5/t360*88 A5/t360*92 B5/t480*98 C6/t240*95 B5/t240*92 A5/t360*90 G5/t720*95" --bpm 72 --ch 0 --patch 40 > violin.jsonl # Cello - warm, singing bass supporting the melody seq --notes "G3/t720*78 D3/t480*75 G3/t480*78 E3/t480*75 D3/t720*78 R/t240 G3/t480*75 B3/t480*78 A3/t720*80 D3/t480*75 G3/t720*78 R/t240 E3/t480*75 F#3/t480*78 G3/t720*82 C4/t480*80 B3/t480*78 A3/t720*80 D3/t480*75 G3/t720*82" --bpm 0 --ch 1 --patch 42 > cello.jsonl # String Ensemble - lush sustained chords seq --notes "[G3,B3,D4]/t960*68 [D3,F#3,A3]/t720*65 [G3,B3,D4]/t720*70 [E3,G3,B3]/t720*68 [D3,F#3,A3]/t960*70 R/t240 [G3,B3,D4]/t720*68 [B3,D4,F#4]/t720*72 [A3,C4,E4]/t960*75 [D3,F#3,A3]/t720*70 [G3,B3,D4]/t960*72 R/t240 [E3,G3,B3]/t720*68 [F#3,A3,C4]/t720*70 [G3,B3,D4]/t960*75 [C4,E4,G4]/t720*78 [B3,D4,F#4]/t720*75 [A3,C4,E4]/t960*72 [D3,F#3,A3]/t720*68 [G3,B3,D4]/t960*75" --bpm 0 --ch 2 --patch 48 > strings.jsonl # Clarinet - gentle countermelody in the rests seq --notes "R/t1200 B4/t240*65 A4/t240*62 G4/t360*68 R/t960 D5/t240*68 E5/t240*70 F#5/t360*72 R/t1440 G4/t240*65 A4/t240*68 B4/t480*72 R/t960 E5/t240*70 D5/t240*68 C5/t240*65 B4/t480*70 R/t720 D5/t360*72 E5/t240*70 D5/t600*75" --bpm 0 --ch 3 --patch 71 > clarinet.jsonl cat violin.jsonl cello.jsonl strings.jsonl clarinet.jsonl | viz | to-midi --out verdi.mid SF2="${HOME}/github/softwarewrighter/midi-cli-rs/soundfonts/GeneralUser_GS.sf2" fluidsynth -ni -F verdi-raw.wav "$SF2" verdi.mid ffmpeg -y -i verdi-raw.wav -t 20 -af "volume=1.5,afade=t=out:st=18:d=2" verdi.wav

Approach

  • Composed bel canto melody - long phrases, expressive intervals
  • Violin carries the aria-like lead, cello provides warm bass
  • String ensemble sustains lush chord progressions
  • Clarinet fills in violin rests with delicate countermelody
  • G major for bright, romantic operatic sound at 72 BPM
~20s Composed G major 4 voices

The Mikado - "Three Little Maids"

The actual melody from Gilbert & Sullivan's The Mikado (1885). "Three little maids from school are we, pert as a schoolgirl well can be..." Transcribed note-for-note with light operetta orchestration.
Script Details & Explanation
# Main melody - Flute seq --notes "G5/8 G5/8 G5/8 F#5/8 E5/8 D5/8 G5/4 B5/8 A5/4 G5/8 G5/8 G5/8 G5/8 F#5/8 E5/8 D5/8 G5/4 A5/8 B5/2 R/8 D5/8 D5/8 D5/8 E5/8 F#5/8 G5/8 A5/4 G5/8 F#5/4 E5/8 D5/8 G5/8 B5/8 A5/8 G5/8 F#5/8 G5/1" --bpm 144 --ch 0 --patch 73 --vel 90 > melody.jsonl # Harmony - Oboe seq --notes "R/4 D5/8 R/4 D5/8 R/4 B4/8 R/4 D5/8 R/4 D5/8 R/4 D5/8 R/4 E5/8 R/4 D5/8 R/4 B4/8 R/4 C5/8 R/4 D5/8 R/4 B4/8 R/4 D5/8 R/4 D5/8 B4/1" --bpm 0 --ch 1 --patch 68 --vel 70 > harmony.jsonl # Bass - Pizzicato strings seq --notes "G3/8 D4/8 B3/8 G3/8 D4/8 B3/8 G3/8 D4/8 B3/8 D3/8 A3/8 F#3/8 G3/8 D4/8 B3/8 G3/8 D4/8 B3/8 G3/8 D4/8 B3/8 G3/2 D3/8 A3/8 F#3/8 G3/8 B3/8 D4/8 A3/8 E4/8 C#4/8 D4/8 A3/8 F#3/8 G3/8 B3/8 D4/8 D3/8 A3/8 F#3/8 G3/1" --bpm 0 --ch 2 --patch 45 --vel 80 > bass.jsonl cat melody.jsonl harmony.jsonl bass.jsonl | viz | to-midi --out mikado.mid fluidsynth -ni -F mikado.wav soundfont.sf2 mikado.mid

Instrumentation (3 channels)

  • Flute (patch 73) - Bright, playful melody
  • Oboe (patch 68) - Harmonic counterpoint
  • Pizzicato Strings (patch 45) - Bouncy oom-pah bass

Approach

  • Actual transcribed melody from The Mikado
  • 144 BPM bouncy 6/8 feel
  • G major for cheerful operetta sound
~13s G major Actual melody 3 channels

Gilbert & Sullivan-esque - Patter Song Operetta

Composed in the style of Gilbert & Sullivan's comic operas. Bouncy, witty patter-song rhythms with playful flute melody, cheeky oboe counterpoint, pizzicato bounce, and pompous bassoon bass.
Script Details & Explanation
# Flute - bright, playful patter-song melody seq --notes "C5/t160*82 D5/t160*80 E5/t160*82 G5/t320*85 E5/t160*80 C5/t160*78 R/t160 G5/t160*85 A5/t160*82 G5/t160*80 E5/t320*82 C5/t160*78 D5/t160*80 E5/t320*85 R/t160 F5/t160*80 E5/t160*78 D5/t160*80 C5/t160*78 B4/t160*75 C5/t320*82 R/t160 E5/t160*80 G5/t160*85 C6/t320*88 B5/t160*82 A5/t160*80 G5/t320*85 R/t160 C5/t160*80 D5/t160*78 E5/t160*82 G5/t320*85 E5/t160*80 C5/t160*78 R/t160 A5/t160*85 G5/t160*82 E5/t160*80 C5/t320*82 D5/t160*78 E5/t160*80 F5/t160*82 E5/t160*80 D5/t160*78 C5/t480*85" --bpm 132 --ch 0 --patch 73 > flute.jsonl # Oboe - comic counterpoint, echoing with cheeky delays seq --notes "R/t320 E5/t160*72 G5/t160*75 E5/t160*72 C5/t320*75 R/t320 E5/t160*75 D5/t160*72 C5/t160*70 B4/t320*72 R/t160 C5/t160*75 E5/t160*78 G5/t320*80 R/t480 D5/t160*72 E5/t160*75 F5/t160*78 E5/t160*75 D5/t160*72 C5/t320*75 R/t320 G5/t160*78 E5/t160*75 C5/t320*78 R/t320 E5/t160*75 G5/t160*78 E5/t160*75 C5/t320*75 R/t320 F5/t160*78 E5/t160*75 D5/t160*72 C5/t160*70 B4/t160*68 C5/t320*75 E5/t160*72 C5/t480*78" --bpm 0 --ch 1 --patch 68 > oboe.jsonl # Pizzicato Strings - bouncy off-beat chords seq --notes "R/t160 [C4,E4,G4]/t160*70 R/t160 [C4,E4,G4]/t160*68 R/t160 [C4,E4,G4]/t160*70 R/t160 [G3,B3,D4]/t160*68 R/t160 [C4,E4,G4]/t160*72 R/t160 [C4,E4,G4]/t160*68 R/t160 [F3,A3,C4]/t160*70 R/t160 [G3,B3,D4]/t160*72 R/t160 [C4,E4,G4]/t160*70 R/t160 [C4,E4,G4]/t160*68 R/t160 [E4,G4,C5]/t160*72 R/t160 [D4,F4,A4]/t160*70 R/t160 [C4,E4,G4]/t160*72 R/t160 [G3,B3,D4]/t160*68 R/t160 [C4,E4,G4]/t160*70 R/t160 [C4,E4,G4]/t160*68 R/t160 [C4,E4,G4]/t160*72 R/t160 [G3,B3,D4]/t160*70 R/t160 [C4,E4,G4]/t160*68 R/t160 [C4,E4,G4]/t160*72 R/t160 [F3,A3,C4]/t160*70 R/t160 [G3,B3,D4]/t160*72 R/t160 [C4,E4,G4]/t320*75" --bpm 0 --ch 2 --patch 45 > pizz.jsonl # Bassoon - pompous comic bass seq --notes "C3/t320*78 R/t160 G3/t320*75 R/t160 C3/t320*78 E3/t160*72 G3/t320*75 R/t160 F3/t320*75 R/t160 G3/t320*78 R/t160 C3/t480*80 R/t160 E3/t160*72 G3/t160*75 C4/t320*78 R/t160 G3/t320*75 R/t160 C3/t320*78 R/t160 G3/t320*75 R/t160 C3/t320*78 E3/t160*72 G3/t320*75 R/t160 F3/t320*75 R/t160 G3/t320*78 R/t160 C3/t480*82" --bpm 0 --ch 3 --patch 70 > bassoon.jsonl cat flute.jsonl oboe.jsonl pizz.jsonl bassoon.jsonl | viz | to-midi --out gands.mid SF2="${HOME}/github/softwarewrighter/midi-cli-rs/soundfonts/GeneralUser_GS.sf2" fluidsynth -ni -F gands-raw.wav "$SF2" gands.mid ffmpeg -y -i gands-raw.wav -t 12 -af "volume=1.4,afade=t=out:st=10:d=2" gands.wav

Approach

  • Composed patter-song style with quick, articulated notes
  • Flute carries witty melody, oboe echoes with comic timing
  • Pizzicato strings provide bouncy off-beat accompaniment
  • Bassoon adds pompous gravitas for comedic effect
  • C major, 132 BPM for bright, energetic operetta feel
~12s Composed C major 4 voices

Baroque Chamber Music

A chamber ensemble piece in the style of Bach and Vivaldi, featuring period instruments: string quartet, harpsichord continuo, and recorder. Vivaldi-style running passages with arpeggiated accompaniment.
Script Details & Explanation
# STRING QUARTET seq --notes "D5/8 F#5/8 A5/8 D6/4 C#6/8 B5/8 A5/8 G5/8 F#5/8 E5/8 D5/4 E5/8 F#5/8 G5/8 A5/8 B5/8 C#6/8 D6/4 A5/8 F#5/8 D5/8 E5/8 F#5/8 G5/8 A5/4 D5/2" --bpm 100 --ch 0 --patch 40 --vel 95 > violin1.jsonl seq --notes "R/4 D5/8 F#5/8 A5/4 G5/8 F#5/8 E5/8 D5/8 C#5/8 B4/8 A4/4 B4/8 C#5/8 D5/8 F#5/8 G5/8 A5/8 F#5/4 D5/8 A4/8 F#4/8 G4/8 A4/8 B4/8 C#5/4 D5/2" --bpm 0 --ch 1 --patch 40 --vel 85 > violin2.jsonl seq --notes "A4/4 A4/8 A4/4 A4/8 G4/4 G4/8 F#4/4 F#4/8 F#4/4 F#4/8 G4/4 G4/8 A4/4 A4/8 A4/4 A4/8 F#4/4 F#4/8 E4/4 E4/8 F#4/4 F#4/2" --bpm 0 --ch 2 --patch 41 --vel 80 > viola.jsonl seq --notes "D3/4 D3/8 A2/4 A2/8 B2/4 B2/8 G2/4 G2/8 D3/4 D3/8 G2/4 G2/8 F#2/4 F#2/8 D3/4 D3/8 F#2/4 F#2/8 A2/4 A2/8 D3/4 D3/2" --bpm 0 --ch 3 --patch 42 --vel 90 > cello.jsonl # CONTINUO seq --notes "D4/16 F#4/16 A4/16 D5/16 F#4/16 A4/16 D5/16 F#5/16 A3/16 C#4/16 E4/16 A4/16 C#4/16 E4/16 A4/16 C#5/16 B3/16 D4/16 G4/16 B4/16 D4/16 G4/16 B4/16 D5/16 G3/16 B3/16 D4/16 G4/16 B3/16 D4/16 G4/16 B4/16 D4/16 F#4/16 A4/16 D5/16 F#4/16 A4/16 D5/16 F#5/16 D4/16 F#4/16 A4/16 D5/16 F#4/16 A4/16 D5/16 F#5/16 A3/16 D4/16 F#4/16 A4/16 D4/16 F#4/16 A4/16 D5/16 D4/8 F#4/8 A4/8 D5/2" --bpm 0 --ch 4 --patch 6 --vel 70 > harpsi.jsonl # WIND seq --notes "R/2 A5/8 B5/16 A5/16 G5/8 F#5/8 E5/8 F#5/16 E5/16 D5/8 C#5/8 D5/4 E5/8 F#5/8 G5/16 F#5/16 E5/8 D5/8 C#5/8 D5/16 E5/16 F#5/4 E5/8 D5/2" --bpm 0 --ch 5 --patch 74 --vel 75 > recorder.jsonl cat violin1.jsonl violin2.jsonl viola.jsonl cello.jsonl harpsi.jsonl recorder.jsonl | viz | trim --auto | to-midi --out baroque.mid fluidsynth -ni -F raw.wav soundfont.sf2 baroque.mid ffmpeg -i raw.wav -t 15 -af "afade=t=out:st=13:d=2" baroque.wav

Period Instruments (6 channels)

  • Strings: Violin I & II (patch 40), Viola (patch 41), Cello (patch 42)
  • Continuo: Harpsichord (patch 6) - arpeggiated chords
  • Wind: Recorder (patch 74) - ornamental line

Approach

  • 100 BPM (Allegro moderato)
  • D major - bright Baroque key
  • Vivaldi-style running sixteenth-note passages
  • Basso continuo: cello + harpsichord
  • trim --auto + ffmpeg fade out
~13s D major 6 channels Period instruments

Turkey in the Straw (c. 1820s)

Traditional American fiddle reel transcribed from The Session ABC notation. 4-voice arrangement: lead fiddle, harmony fiddle, banjo, and bass.
Script Details & Explanation
# Lead fiddle (patch 40) - A part + B part seq --notes "B4/16 A4/16 G4/16 F#4/16 G4/16 A4/16 G4/8 B3/16 C4/16 D4/16 E4/16 D4/16 B3/16 D4/8 G4/16 A4/16 B4/8 B4/8 B4/16 A4/16 G4/16 A4/16 B4/8 A4/8 A4/8 B4/16 A4/16 G4/16 F#4/16 G4/16 A4/16 G4/8 B3/16 C4/16 D4/16 E4/16 D4/16 B3/16 D4/8 G4/16 A4/16 B4/16 D5/8 E5/16 D5/16 B4/16 G4/16 A4/16 B4/8 A4/8 G4/4 D5/8 B4/16 D5/8 B4/16 D5/8 D5/8 B4/16 D5/8 B4/16 D5/8 D5/8 C5/16 E5/8 C5/16 E5/8 E5/8 C5/16 E5/8 C5/16 E5/8 E5/8 G5/8 G5/8 D5/8 D5/8 B4/8 B4/8 A4/8 G4/16 A4/16 B4/16 D5/8 E5/16 D5/16 B4/16 G4/16 A4/16 B4/8 A4/8 G4/4" --bpm 120 --ch 0 --patch 40 --vel 100 > fiddle.jsonl # Second fiddle harmony (thirds below) seq --notes "G4/16 F#4/16 E4/16 D4/16 E4/16 F#4/16 E4/8 G3/16 A3/16 B3/16 C4/16 B3/16 G3/16 B3/8 E4/16 F#4/16 G4/8 G4/8 G4/16 F#4/16 E4/16 F#4/16 G4/8 F#4/8 F#4/8 G4/16 F#4/16 E4/16 D4/16 E4/16 F#4/16 E4/8 G3/16 A3/16 B3/16 C4/16 B3/16 G3/16 B3/8 E4/16 F#4/16 G4/16 B4/8 C5/16 B4/16 G4/16 E4/16 F#4/16 G4/8 F#4/8 E4/4 B4/8 G4/16 B4/8 G4/16 B4/8 B4/8 G4/16 B4/8 G4/16 B4/8 B4/8 A4/16 C5/8 A4/16 C5/8 C5/8 A4/16 C5/8 A4/16 C5/8 C5/8 E5/8 E5/8 B4/8 B4/8 G4/8 G4/8 F#4/8 E4/16 F#4/16 G4/16 B4/8 C5/16 B4/16 G4/16 E4/16 F#4/16 G4/8 F#4/8 E4/4" --bpm 0 --ch 1 --patch 40 --vel 75 > fiddle2.jsonl # Banjo rhythm (patch 105) seq --notes "R/16 R/16 G3/8 B3/8 G3/8 B3/8 G3/8 B3/8 D3/8 A3/8 G3/8 B3/8 G3/8 B3/8 D3/8 A3/8 G3/8 B3/8 G3/8 B3/8 G3/8 B3/8 D3/8 A3/8 G3/8 B3/8 G3/8 B3/8 D3/8 A3/8 G3/8 B3/8 R/8 G3/8 B3/8 G3/8 B3/8 G3/8 B3/8 G3/8 B3/8 C3/8 E3/8 C3/8 E3/8 C3/8 E3/8 C3/8 E3/8 G3/8 B3/8 D3/8 A3/8 G3/8 B3/8 D3/8 A3/8 G3/8 B3/8 G3/8 B3/8 G3/8 D3/8 G3/4" --bpm 0 --ch 2 --patch 105 --vel 70 > banjo.jsonl # Acoustic bass (patch 32) seq --notes "R/16 R/16 G2/4 G2/4 G2/4 D2/4 G2/4 G2/4 G2/4 D2/4 G2/4 G2/4 G2/4 D2/4 G2/4 D2/4 G2/2 R/8 G2/4 G2/4 G2/4 G2/4 C3/4 C3/4 C3/4 C3/4 G2/4 G2/4 D2/4 D2/4 G2/4 D2/4 G2/2" --bpm 0 --ch 3 --patch 32 --vel 90 > bass.jsonl cat fiddle.jsonl fiddle2.jsonl banjo.jsonl bass.jsonl | viz | trim --auto | to-midi
~12s G major Fiddle + Banjo 4 channels

Camptown Races (1850)

Stephen Foster's "Doo-dah! Doo-dah!" - playful American folk classic. Fiddle melody with banjo, bass, and whistle fills.
Script Details & Explanation
# Fiddle melody (patch 40) - Verse + Chorus seq --notes "E5/16 D5/16 B4/16 D5/16 E5/16 D5/16 B4/8 B4/16 A4/16 A4/16 G4/16 A4/16 R/16 B4/16 A4/16 A4/16 B4/16 D5/16 R/16 E5/16 D5/16 B4/16 D5/16 E5/16 D5/16 B4/16 G4/16 A4/16 G4/16 A4/16 R/16 B4/16 A4/16 G4/8 E5/16 D5/16 B4/16 D5/16 E5/16 D5/16 B4/8 B4/16 A4/16 A4/16 G4/16 A4/16 R/16 B4/16 A4/16 A4/16 B4/16 D5/16 R/16 E5/16 D5/16 B4/16 D5/16 E5/16 D5/16 B4/16 G4/16 A4/16 G4/16 A4/16 R/16 B4/16 A4/16 G4/8 B4/16 D5/16 E5/16 F#5/16 G5/8 G5/8 F#5/16 E5/16 F#5/16 E5/16 D5/8 D5/16 B4/16 D5/16 R/16 E5/16 D5/16 B4/16 D5/16 E5/16 D5/16 B4/16 G4/16 A4/16 G4/16 A4/16 R/16 B4/16 A4/16 G4/4" --bpm 80 --ch 0 --patch 40 --vel 100 > melody.jsonl # Banjo (patch 105) seq --notes "G3/16 B3/16 D4/16 B3/16 G3/16 B3/16 D4/16 B3/16 G3/16 B3/16 D4/16 B3/16 D3/16 F#3/16 A3/16 F#3/16 G3/16 B3/16 D4/16 B3/16 G3/16 B3/16 D4/16 B3/16 D3/16 F#3/16 A3/16 F#3/16 G3/16 B3/16 D4/16 B3/16 G3/16 B3/16 D4/16 B3/16 G3/16 B3/16 D4/16 B3/16 C4/16 E4/16 G4/16 E4/16 D3/16 F#3/16 A3/16 F#3/16 D3/16 F#3/16 A3/16 F#3/16 G3/16 B3/16 D4/16 B3/16 G3/16 B3/16 D4/16 B3/16 D3/16 F#3/16 A3/16 F#3/16 G3/8 B3/8" --bpm 0 --ch 1 --patch 105 --vel 75 > banjo.jsonl # Bass (patch 45) seq --notes "G2/8 D3/8 G2/8 D3/8 G2/8 D3/8 D2/8 A2/8 G2/8 D3/8 G2/8 D3/8 D2/8 A2/8 G2/8 D3/8 G2/8 D3/8 G2/8 D3/8 G2/8 D3/8 D2/8 A2/8 G2/8 D3/8 G2/8 D3/8 D2/8 A2/8 G2/8 D3/8 G2/8 D3/8 C3/8 G3/8 D2/8 A2/8 D2/8 A2/8 G2/8 D3/8 G2/8 D3/8 D2/8 A2/8 G2/4" --bpm 0 --ch 2 --patch 45 --vel 85 > bass.jsonl # Whistle (patch 72) - fills during chorus seq --notes "R/2 R/2 R/2 R/2 B5/8 D6/8 E6/8 F#6/8 G6/4 G6/4 F#6/8 E6/8 F#6/8 E6/8 D6/4 D6/8 B5/8 D6/8 R/8 E6/8 D6/8 B5/8 D6/8 E6/8 D6/8 B5/8 G5/8 A5/8 G5/8 A5/8 R/8 B5/8 A5/8 G5/4" --bpm 0 --ch 3 --patch 72 --vel 80 > whistle.jsonl cat melody.jsonl banjo.jsonl bass.jsonl whistle.jsonl | viz | trim --auto | to-midi
~12s G major Fiddle + Banjo

Oh! Susanna (1848)

Stephen Foster's beloved minstrel song transcribed from ABC notation. Banjo lead with harmonica, bass, and percussion.
~12s G major Banjo lead

When the Saints Go Marching In

Traditional New Orleans brass band arrangement. Trumpet lead with trombone harmony, clarinet fills, tuba bass, and march drums.
Script Details & Explanation
# Trumpet lead (patch 56) seq --notes "C5/4 E5/4 F5/4 G5/1 R/4 C5/4 E5/4 F5/4 G5/1 R/4 C5/4 E5/4 F5/4 G5/2 E5/2 C5/2 E5/2 D5/1 R/4 E5/4 E5/4 D5/4 C5/1 E5/2 G5/2 G5/4 F5/2 R/4 R/2 E5/4 F5/4 G5/2 E5/2 C5/2 D5/2 C5/1" --bpm 130 --ch 0 --patch 56 --vel 100 > trumpet.jsonl # Trombone harmony (patch 57) seq --notes "G4/4 C5/4 D5/4 E5/1 R/4 G4/4 C5/4 D5/4 E5/1 R/4 G4/4 C5/4 D5/4 E5/2 C5/2 G4/2 C5/2 B4/1 R/4 C5/4 C5/4 B4/4 G4/1 C5/2 E5/2 E5/4 D5/2 R/4 R/2 C5/4 D5/4 E5/2 C5/2 G4/2 B4/2 G4/1" --bpm 0 --ch 1 --patch 57 --vel 85 > trombone.jsonl # Tuba bass (patch 58) seq --notes "C2/4 G2/4 C2/4 C2/4 G2/4 C2/4 G2/4 C2/4 G2/4 C2/4 G2/4 C2/4 G2/4 C2/4 G2/4 C2/4 G2/4 C2/4 G2/4 G2/4 D3/4 G2/4 D3/4 G2/4 D3/4 G2/4 D3/4 C2/4 G2/4 C2/4 G2/4 C2/4 G2/4 F2/4 C3/4 F2/4 C3/4 F2/4 C3/4 F2/4 C3/4 C2/4 G2/4 C2/4 G2/4 C2/4 G2/4 G2/4 D3/4 C2/1" --bpm 0 --ch 3 --patch 58 --vel 100 > tuba.jsonl # Drums: snare march + bass drum (ch 9) seed 1865 | euclid --steps 8 --pulses 4 --note 38 --ch 9 --bpm 0 --repeat 18 --vel 85 --vel-var 15 --accent 0.3 > snare.jsonl seed 1901 | euclid --steps 4 --pulses 2 --note 36 --ch 9 --bpm 0 --repeat 18 --vel 100 --vel-var 10 > kick.jsonl cat trumpet.jsonl trombone.jsonl tuba.jsonl snare.jsonl kick.jsonl | viz | trim --auto | to-midi
~12s C major Brass band 6 channels

Beer Barrel Polka (1927)

"Roll Out the Barrel" - Czech/German beer hall classic with authentic oom-pah. "Roll Out the Barrel" - 32-second chorus with authentic oom-pah.
Script Details & Explanation
# 245 notes at 220 BPM - accordion with full chords seq --notes "A#4/t3840*23 [E4,G4]/t480*23 G2/t480*23 [E4,G4]/t480*23 C2/t480*23 [E4,G4]/t480*23 [G2,D5]/t480*23 [E4,A#4]/t480*23 C2/t480*23 [E4,A#4]/t480*23 [G2,D5]/t480*23 [E4,A#4]/t480*23 C2/t360*23 R/t120 [E4,A#4,C#5]/t480*23 [G2,E4,A#4,D5]/t480*23 [G4,A#4,E5]/t480*23 C2/t480*23 [G4,A#4]/t480*23 G2/t480*23 [G4,A#4]/t480*23 C2/t480*23 [G4,A#4]/t480*23 [G2,G4,A#4,D5]/t480*23 [G4,A#4,E5]/t960*23 C2/t480*23 [G4,A#4,D5]/t480*23 [G2,G4,A#4,E5]/t480*23 [G4,A#4,D5]/t960*23 C2/t480*23 [G4,A#4,C#5]/t480*23 [F2,F4,A4,C5]/t480*23 C2/t480*23 R/t480 F2/t480*23 R/t480 C2/t480*23 R/t480 [F2,C5]/t480*23 [F4,A4]/t480*23 C2/t480*23 [F4,A4]/t480*23 [F2,C5]/t480*23 [F4,A4]/t480*23 C2/t480*23 [F4,G#4,B4]/t480*23 [F2,F4,A4,C5]/t480*23 [F4,A4,D5]/t960*23 C2/t480*23 [F4,A4]/t480*23 F2/t480*23 [F4,A4]/t480*23 C2/t480*23 [F4,A4]/t480*23 [F2,F4,A4,C5]/t480*23 [F4,A4,D5]/t960*23 C2/t480*23 [F4,A4,C5]/t480*23 [F2,D#4,A4,D5]/t480*23 [D#4,A4,C5]/t960*23 F2/t480*23 [D#4,F4]/t480*23 [A#2,F4,A#4,D5]/t960*23 [A2,F#4,C5]/t960*23 [G2,G4,A#4]/t960*23 D3/t960*23 [A#2,D4,G4]/t480*23 [D4,A4]/t480*23 [A#2,D4,A#4]/t480*23 [D4,C5]/t480*23 [B2,F4,G#4,E5]/t480*23 B2/t480*23 [F4,G#4,D5]/t480*23 [C3,F4,A4,D5]/t600*23 [F4,A4,C5]/t1440*23 F3/t480*23 D#3/t480*23 [D3,F#4]/t480*23 [D2,F#4,B4]/t480*23 [F#4,C5]/t480*23 [G2,F4,B4,D5]/t480*23 A2/t480*23 B2/t480*23 G2/t480*23 [C3,G4,A#4,E5]/t480*23 C2/t480*23 D2/t480*23 E2/t480*23 [F2,F4,A4,F5]/t480*23 C5/t240*24 D5/t240*24 [F#2,D#4,A4,C5]/t480*24 C5/t240*24 D5/t240*24 [G2,E4,A#4,C5]/t480*24 [C4,E4]/t240*25 [D4,F4]/t240*25 [C2,C3,E4,G4]/t960*25 [F4,A4]/t240*25 [G4,A#4]/t240*25 [G#4,B4]/t240*25 [F2,C5]/t480*23 [F4,A4]/t480*23 C3/t480*23 [F4,A4]/t480*23 [F2,C5]/t480*23 [F4,A4]/t480*23 C2/t480*23 [F4,G#4,B4]/t480*23 [F2,F4,A4,C5]/t480*23 [F4,A4,D5]/t960*23 C2/t480*23 [F4,A4]/t480*23 F2/t480*23 [F4,A4]/t480*23 C2/t480*23 [F4,A4]/t480*23 [F2,F4,A4,C5]/t480*23" \ --bpm 220 --ch 0 --patch 21 \ | humanize --jitter-ticks 4 --jitter-vel 5 \ | trim --auto \ | to-midi --out beerhall.mid fluidsynth -ni -F raw.wav soundfont.sf2 beerhall.mid ffmpeg -y -i raw.wav -t 32 -af "afade=t=out:st=30:d=2" beerhall.wav

Notation Features

  • /t480 - tick-based duration (480 ticks = 1 beat)
  • [E4,G4] - chord notation (simultaneous notes)
  • *23 - per-note velocity
~32s F major Accordion 220 BPM

Soft Progressive Rock - Satie Inspired

Inspired by Erik Satie's Gnossiennes (1890), reimagined as soft progressive rock. Satie (1866-1925) was a contemporary of Debussy, known for modal harmonies and dreamlike atmospheres. D Dorian mode, syncopated rhythms, 60 BPM.
Script Details & Explanation
# Electric Piano - dreamy chords with Satie-like suspensions (D Dorian) seq --notes "R/t60 [D3,A3,E4]/t420*70 R/t240 [D3,A3,F4]/t180*65 R/t60 [E3,B3,G4]/t480*72 R/t240 [F3,C4,A4]/t420*68 R/t60 [D3,A3,E4]/t240*70 R/t120 [E3,G3,D4]/t360*65 R/t120 [D3,A3,F4]/t480*72 R/t240 [C3,G3,E4]/t420*68 R/t60 [D3,A3,D4]/t600*75" --bpm 60 --ch 0 --patch 4 > piano.jsonl # Clean Guitar - melodic fills seq --notes "R/t480 A4/t360*55 R/t120 G4/t120*50 F4/t120*52 E4/t480*58 R/t240 D4/t240*55 E4/t120*52 F4/t240*54 R/t120 G4/t360*56 R/t240 A4/t480*60 R/t120 G4/t180*55 E4/t180*52 D4/t600*58" --bpm 0 --ch 1 --patch 27 > guitar.jsonl # Fretless Bass seq --notes "D2/t420*75 R/t60 A2/t240*70 R/t240 D2/t480*78 R/t120 E2/t360*72 R/t120 F2/t480*75 R/t120 D2/t360*78 R/t120 E2/t240*72 R/t120 C2/t420*75 R/t60 D2/t720*80" --bpm 0 --ch 2 --patch 35 > bass.jsonl # Soft Drums - C2=kick, D2=snare, F#2=hihat, A#2=open-hat, D#3=ride seq --notes "C2/t240*60 F#2/t120*40 F#2/t120*35 D2/t240*50 F#2/t120*40 A#2/t120*45 C2/t120*55 F#2/t120*38 C2/t120*58 F#2/t120*40 D2/t240*52 F#2/t120*42 F#2/t120*38 C2/t240*60 F#2/t120*40 F#2/t120*35 D2/t240*50 F#2/t120*40 A#2/t120*45 C2/t240*58 D#3/t120*45 D#3/t120*42 D2/t240*55 F#2/t120*40 C2/t120*60 F#2/t240*38" --bpm 0 --ch 9 --patch 0 > drums.jsonl cat piano.jsonl guitar.jsonl bass.jsonl drums.jsonl | viz | to-midi --out soft-prog.mid SF2="${HOME}/github/softwarewrighter/midi-cli-rs/soundfonts/GeneralUser_GS.sf2" fluidsynth -ni -F soft-prog-raw.wav "$SF2" soft-prog.mid ffmpeg -y -i soft-prog-raw.wav -t 12 -af "volume=1.8,afade=t=out:st=10:d=2" soft-prog.wav

Approach

  • Inspired by Erik Satie's Gnossiennes (1890) - modal, dreamlike
  • D Dorian mode with syncopated rhythms
  • Rhodes piano (patch 4), Clean guitar (patch 27), Fretless bass (patch 35)
  • Soft brushed drums at 60 BPM
~12s D Dorian Rhodes/Guitar 60 BPM

Hard Rock - Arensky Inverted & Reversed

Anton Arensky's String Quartet No. 2 in A minor (1894), with voices INVERTED around A4 and played REVERSED. Arensky (1861-1906) was a contemporary of Tchaikovsky but far more obscure. Transformed into aggressive hard rock with funky syncopation at 150 BPM.
Script Details & Explanation
# Lead Guitar - Violin 1 inverted around A4 and reversed # Original: A4-B4-C5-D5-E5-D5-C5-B4... Inverted: A4-G4-F4-E4... Reversed: play backwards seq --notes "A3/t60*115 D4/t60*118 E4/t60*120 F4/t60*122 G4/t60*125 A4/t120*127 A#4/t60*125 A4/t60*127 G4/t60*125 F4/t60*122 E4/t60*120 D4/t120*118 R/t60 E4/t60*120 F4/t60*122 G4/t60*125 A4/t180*127 R/t120 A3/t60*115 D4/t60*118 E4/t60*120 F4/t60*122 G4/t60*125 A4/t120*127 A#4/t60*125 A4/t60*127 G4/t60*125 F4/t60*122 E4/t60*120 D4/t120*118 R/t60 E4/t60*120 F4/t60*122 G4/t60*125 A4/t180*127 R/t240 A5/t60*127 G5/t60*125 F5/t60*122 E5/t60*120 D5/t120*118 E5/t60*120 F5/t60*122 G5/t60*125 A5/t240*127" --bpm 150 --ch 0 --patch 30 > lead.jsonl # Rhythm Guitar - Violin 2 inverted/reversed as funky power chords seq --notes "[D3,A3,D4]/t90*110 R/t30 [D3,A3,D4]/t30*80 R/t30 [G3,D4,G4]/t60*108 R/t30 [A3,E4,A4]/t60*110 R/t30 [A#3,F4,A#4]/t90*115 R/t30 [A#3,F4,A#4]/t30*85 R/t60 [C4,G4,C5]/t90*118 R/t30 [C4,G4,C5]/t30*88 R/t30 [D4,A4,D5]/t60*112 R/t30 [D#4,A#4,D#5]/t90*120 R/t30 [D4,A4,D5]/t90*118 R/t30 [D4,A4,D5]/t30*90 R/t30 [C4,G4,C5]/t60*115 R/t30 [A#3,F4,A#4]/t60*112" --bpm 0 --ch 1 --patch 29 > rhythm.jsonl # Bass - Cello inverted/reversed with funky slap syncopation seq --notes "A2/t60*120 R/t30 A2/t30*70 R/t30 F2/t60*115 R/t30 F2/t30*65 G2/t60*118 R/t30 A2/t90*122 R/t30 A2/t30*72 R/t30 A2/t60*118 R/t30 A2/t30*68 A2/t60*120 R/t30 D2/t60*115 R/t30 D2/t30*65 D2/t60*118 R/t30 D2/t90*120 R/t30 D2/t30*70 R/t60 A2/t60*118 R/t30 A2/t30*68 A2/t60*120 R/t30 A2/t90*122" --bpm 0 --ch 2 --patch 34 > bass.jsonl # Heavy Drums with funk syncopation - C2=kick, D2=snare, F#2=hihat, C#3=crash seq --notes "C#3/t30*127 C2/t30*120 F#2/t30*90 F#2/t30*70 C2/t30*100 F#2/t30*85 D2/t30*75 F#2/t30*90 D2/t30*120 F#2/t30*85 F#2/t30*70 C2/t30*115 F#2/t30*90 F#2/t30*75 D2/t30*80 F#2/t30*90 C2/t30*118 F#2/t30*85 F#2/t30*70 C2/t30*110 F#2/t30*90 D2/t30*75 F#2/t30*85 D2/t30*122" --bpm 0 --ch 9 --patch 0 > drums.jsonl cat lead.jsonl rhythm.jsonl bass.jsonl drums.jsonl | viz | to-midi --out hard-rock.mid SF2="${HOME}/github/softwarewrighter/midi-cli-rs/soundfonts/GeneralUser_GS.sf2" fluidsynth -ni -F hard-rock-raw.wav "$SF2" hard-rock.mid ffmpeg -y -i hard-rock-raw.wav -af "volume=2.0,apad=whole_dur=20,afade=t=out:st=18:d=2" -t 20 hard-rock.wav

Approach

  • Source: Arensky String Quartet No. 2 (1894) - obscure Russian chamber music
  • Transformation: pitches INVERTED around A4, sequence REVERSED
  • Violin 1 → Distortion lead (patch 30), Violin 2 → Overdriven rhythm (patch 29)
  • Cello → Picked bass (patch 34), 16th-note funk syncopation throughout
~20s A minor Distortion 150 BPM

Rockabilly - 1950s Rock & Roll

Classic 1950s rockabilly in E major with shuffle rhythm. Boogie-woogie piano walking octaves, rhythm guitar chops on upbeats, twangy steel guitar fills, slap bass walking pattern, and driving shuffle drums with backbeat.
Script Details & Explanation
# Piano - boogie-woogie walking octaves (root-fifth-sixth-fifth) seq --notes "E2/t160*85 E3/t160*75 G#2/t160*85 E3/t160*75 A2/t160*85 E3/t160*75 G#2/t160*85 E3/t160*75 E2/t160*85 E3/t160*75 G#2/t160*85 E3/t160*75 A2/t160*85 E3/t160*75 B2/t160*85 E3/t160*75 A2/t160*85 A3/t160*75 C#3/t160*85 A3/t160*75 D3/t160*85 A3/t160*75 C#3/t160*85 A3/t160*75 E2/t160*85 E3/t160*75 G#2/t160*85 E3/t160*75 B2/t160*85 E3/t160*75 G#2/t160*85 E3/t160*75 E2/t160*85 E3/t160*75 G#2/t160*85 E3/t160*75 A2/t160*85 E3/t160*75 G#2/t160*85 E3/t160*75 E2/t160*85 E3/t160*75 G#2/t160*85 E3/t160*75 A2/t160*85 E3/t160*75 B2/t160*85 E3/t160*75 A2/t160*85 A3/t160*75 C#3/t160*85 A3/t160*75 D3/t160*85 A3/t160*75 C#3/t160*85 A3/t160*75 B2/t160*90 B3/t160*80 D#3/t160*90 B3/t160*80 E3/t320*95 R/t160 E2/t480*100" --bpm 160 --ch 0 --patch 0 > piano.jsonl # Rhythm Guitar - chunky shuffle chords on upbeats seq --notes "R/t320 [E4,G#4,B4]/t160*70 R/t320 [E4,G#4,B4]/t160*72 R/t320 [E4,G#4,B4]/t160*68 R/t320 [E4,G#4,B4]/t160*70 R/t320 [E4,G#4,B4]/t160*72 R/t320 [E4,G#4,B4]/t160*70 R/t320 [E4,G#4,B4]/t160*68 R/t320 [E4,G#4,B4]/t160*72 R/t320 [A4,C#5,E5]/t160*70 R/t320 [A4,C#5,E5]/t160*72 R/t320 [A4,C#5,E5]/t160*68 R/t320 [A4,C#5,E5]/t160*70 R/t320 [E4,G#4,B4]/t160*72 R/t320 [E4,G#4,B4]/t160*70 R/t320 [B4,D#5,F#5]/t160*74 R/t320 [E4,G#4,B4]/t160*72 R/t320 [E4,G#4,B4]/t160*70 R/t320 [E4,G#4,B4]/t160*72 R/t320 [E4,G#4,B4]/t160*68 R/t320 [E4,G#4,B4]/t160*70 R/t320 [E4,G#4,B4]/t160*72 R/t320 [E4,G#4,B4]/t160*70 R/t320 [E4,G#4,B4]/t160*68 R/t320 [E4,G#4,B4]/t160*72 R/t320 [A4,C#5,E5]/t160*70 R/t320 [A4,C#5,E5]/t160*72 R/t320 [A4,C#5,E5]/t160*68 R/t320 [A4,C#5,E5]/t160*70 R/t320 [B4,D#5,F#5]/t160*75 R/t320 [B4,D#5,F#5]/t160*78 R/t320 [E4,G#4,B4]/t240*80 R/t240" --bpm 0 --ch 1 --patch 27 > rhythm.jsonl # Steel Guitar - twangy melodic fills between phrases seq --notes "R/t1920 B4/t240*65 G#4/t160*60 E4/t320*68 R/t1280 E5/t160*70 D#5/t160*65 C#5/t160*62 B4/t320*68 R/t1440 G#4/t240*65 A4/t160*62 B4/t480*70 R/t960 E5/t320*72 D#5/t160*68 B4/t240*65 G#4/t480*70 R/t640 B4/t160*68 C#5/t160*65 D#5/t160*68 E5/t480*75 R/t320 B4/t320*70 G#4/t320*68 E4/t480*72" --bpm 0 --ch 2 --patch 25 > lead.jsonl # Walking Bass - classic slap pattern (root-root-fifth-approach) seq --notes "E2/t320*90 E2/t160*85 B2/t320*88 D#2/t160*82 E2/t320*90 E2/t160*85 G#2/t320*88 A2/t160*82 E2/t320*90 E2/t160*85 B2/t320*88 D#2/t160*82 E2/t320*90 G#2/t160*85 A2/t320*88 B2/t160*85 A2/t320*90 A2/t160*85 E3/t320*88 G#2/t160*82 A2/t320*90 A2/t160*85 C#3/t320*88 E2/t160*82 E2/t320*90 E2/t160*85 B2/t320*88 G#2/t160*82 B2/t320*92 B2/t160*88 F#2/t320*90 A2/t160*85 E2/t320*90 E2/t160*85 B2/t320*88 D#2/t160*82 E2/t320*90 E2/t160*85 G#2/t320*88 A2/t160*82 E2/t320*90 E2/t160*85 B2/t320*88 D#2/t160*82 E2/t320*90 G#2/t160*85 A2/t320*88 B2/t160*85 A2/t320*90 A2/t160*85 E3/t320*88 G#2/t160*82 A2/t320*90 C#3/t160*85 D3/t160*82 D#3/t160*85 B2/t320*95 B2/t160*90 F#2/t320*92 B2/t160*88 E2/t640*100" --bpm 0 --ch 7 --patch 32 > bass.jsonl # Drums - shuffle with strong backbeat (C2=kick, D2=snare, F#2=hihat, A#2=open-hat) seq --notes "C2/t160*95 F#2/t160*60 F#2/t160*55 D2/t160*90 F#2/t160*60 F#2/t160*55 C2/t160*92 F#2/t160*58 F#2/t160*55 D2/t160*88 F#2/t160*60 A#2/t160*65 C2/t160*95 F#2/t160*60 F#2/t160*55 D2/t160*90 F#2/t160*60 F#2/t160*55 C2/t160*92 F#2/t160*58 F#2/t160*55 D2/t160*88 F#2/t160*60 A#2/t160*65 C2/t160*95 F#2/t160*60 F#2/t160*55 D2/t160*90 F#2/t160*60 F#2/t160*55 C2/t160*92 F#2/t160*58 F#2/t160*55 D2/t160*88 F#2/t160*60 A#2/t160*65 C2/t160*95 F#2/t160*60 F#2/t160*55 D2/t160*90 F#2/t160*60 F#2/t160*55 C2/t160*92 F#2/t160*58 F#2/t160*55 D2/t160*92 F#2/t160*62 D2/t160*70 C2/t160*95 F#2/t160*60 F#2/t160*55 D2/t160*90 F#2/t160*60 F#2/t160*55 C2/t160*92 F#2/t160*58 F#2/t160*55 D2/t160*88 F#2/t160*60 A#2/t160*65 C2/t160*95 F#2/t160*60 F#2/t160*55 D2/t160*90 F#2/t160*60 F#2/t160*55 C2/t160*92 F#2/t160*58 F#2/t160*55 D2/t160*88 F#2/t160*60 A#2/t160*65 C2/t160*95 F#2/t160*60 F#2/t160*55 D2/t160*90 F#2/t160*60 F#2/t160*55 C2/t160*92 F#2/t160*58 F#2/t160*55 D2/t160*88 F#2/t160*60 A#2/t160*65 C2/t160*98 F#2/t160*65 D2/t160*75 D2/t160*95 C2/t160*90 D2/t160*70 C2/t320*100 R/t160 C#3/t320*80" --bpm 0 --ch 9 --patch 0 > drums.jsonl cat piano.jsonl rhythm.jsonl lead.jsonl bass.jsonl drums.jsonl | viz | to-midi --out rockabilly.mid SF2="${HOME}/github/softwarewrighter/midi-cli-rs/soundfonts/GeneralUser_GS.sf2" fluidsynth -ni -F rockabilly-raw.wav "$SF2" rockabilly.mid ffmpeg -y -i rockabilly-raw.wav -t 14 -af "volume=1.5,afade=t=out:st=12:d=2" rockabilly.wav

Approach

  • E major (classic rockabilly key) at 160 BPM shuffle
  • Boogie-woogie piano with walking octave pattern
  • Rhythm guitar plays upbeat chord stabs for shuffle feel
  • Steel guitar provides sparse twangy fills between phrases
  • Walking bass with slap-style root-fifth motion
  • Shuffle drums with triplet hi-hats and strong snare backbeat
~14s E major Shuffle 160 BPM