Untitled
unknown
plain_text
11 days ago
1.3 kB
2
Indexable
# Fall back to generating a basic MIDI file using raw MIDI byte creation with mido (available in this environment) from mido import Message, MidiFile, MidiTrack # Create a new MIDI file and track mid = MidiFile() track = MidiTrack() mid.tracks.append(track) # Set tempo (optional, not all players interpret this without meta messages) # 500000 microseconds per beat = 120 BPM, so for 80 BPM = 750000 track.append(Message('program_change', program=0, time=0)) # Define verse melody (G major scale, simple phrase) verse_notes = [67, 69, 71, 72, 71, 69, 67, 69] # MIDI notes chorus_notes = [72, 74, 76, 77, 76, 74, 72, 74] # Add verse notes for note_value in verse_notes: track.append(Message('note_on', note=note_value, velocity=64, time=0)) track.append(Message('note_off', note=note_value, velocity=64, time=480)) # Quarter note at 480 ticks # Add a pause between verse and chorus track.append(Message('note_off', note=0, velocity=0, time=480)) # Add chorus notes for note_value in chorus_notes: track.append(Message('note_on', note=note_value, velocity=70, time=0)) track.append(Message('note_off', note=note_value, velocity=70, time=480)) # Save MIDI file midi_file_path = "/mnt/data/almost_knew_your_name_demo.mid" mid.save(midi_file_path) midi_file_path
Editor is loading...
Leave a Comment