Export to MIDI File

Example script (scamp): examples/Notation & engraving/Basics/record_and_export_midi.py

Download: record_and_export_midi.py

Records glissandi with microtonal pitches and playback params (fast-forwarded), then exports the performance as a MIDI file.

Topics: Notation & engraving › Basics, Playback › MIDI CC & arbitrary parameters

import random
from scamp import *


random.seed(0)

s = Session()
s.set_rate_target(2, Moment.after_time(10))

# s.fast_forward()

clar = s.new_part("clarinet")
piano = s.new_part("piano")

performance = s.start_transcribing()


def piano_part():
    while True:
        piano.play_note(random.randint(40, 58), random.uniform(0.3, 0.8), 0.5, "staccato")


piano_clock = fork(piano_part)

for p in [random.randint(50, 80) for _ in range(30)]:
    clar.play_note([p, p + 1, p - 2], Envelope([0.8, 0.1, 1.0], [0.1, 1.0]), random.uniform(0.1, 2),
                   f"param_10: {random.uniform(0, 1)}" if random.random() < 0.5 else "param_10: [0, 1]")

piano_clock.kill()
s.stop_transcribing().export_to_midi_file("midi_export.mid")