mirror of
https://github.com/kennethreitz/pytheory.git
synced 2026-06-05 14:50:18 +00:00
26af923789
Just the notes transcribed from MIDI, no arrangement. Base for future iterations. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
70 lines
1.4 KiB
Python
70 lines
1.4 KiB
Python
"""Sprunki Simon Phase 1 — melody reference.
|
|
|
|
Notes transcribed from MIDI. Use as a base for arrangements.
|
|
|
|
Usage:
|
|
python examples/sprunki.py
|
|
"""
|
|
|
|
import sounddevice as sd
|
|
|
|
from pytheory import Score, Duration
|
|
from pytheory.play import render_score, SAMPLE_RATE
|
|
|
|
|
|
def sprunki_simon():
|
|
score = Score("4/4", bpm=200)
|
|
|
|
lead = score.part("lead", synth="square", envelope="pluck", volume=0.5,
|
|
lowpass=4500, detune=3, reverb=0.1)
|
|
|
|
# Phrase A
|
|
lead.add("E4", 1.0)
|
|
lead.add("G4", 1.0)
|
|
lead.rest(1.5)
|
|
lead.add("A4", 0.5)
|
|
lead.add("B4", 1.0)
|
|
lead.add("A4", 1.0)
|
|
lead.add("G4", 1.0)
|
|
lead.add("D4", 1.0)
|
|
|
|
# Phrase B
|
|
lead.add("E4", 1.0)
|
|
lead.add("G4", 1.0)
|
|
lead.rest(1.5)
|
|
lead.add("A4", 0.5)
|
|
lead.add("D4", 2.0)
|
|
lead.add("B3", 1.0)
|
|
lead.add("A3", 0.5)
|
|
lead.add("D4", 0.5)
|
|
|
|
# Phrase C
|
|
lead.add("E4", 1.0)
|
|
lead.add("G4", 1.0)
|
|
lead.rest(1.5)
|
|
lead.add("A4", 0.5)
|
|
lead.add("B4", 1.0)
|
|
lead.add("A4", 1.0)
|
|
lead.add("G4", 1.0)
|
|
lead.add("B4", 1.0)
|
|
|
|
# Phrase D
|
|
lead.add("A4", 2.0)
|
|
lead.add("G4", 1.0)
|
|
lead.add("E4", 1.0)
|
|
lead.add("B3", 2.0)
|
|
lead.add("D4", 2.0)
|
|
|
|
return score
|
|
|
|
|
|
if __name__ == "__main__":
|
|
score = sprunki_simon()
|
|
print(" Sprunki Simon Phase 1")
|
|
try:
|
|
buf = render_score(score)
|
|
sd.play(buf, SAMPLE_RATE)
|
|
sd.wait()
|
|
except KeyboardInterrupt:
|
|
sd.stop()
|