Spaces:
Runtime error
Runtime error
import streamlit as st | |
import mido | |
from mido import Message, MidiFile, MidiTrack | |
st.title("7 Chords MIDI Player") | |
# Define the chords | |
C = [60, 64, 67] | |
D = [62, 65, 69] | |
E = [64, 68, 71] | |
F = [65, 69, 72] | |
G = [67, 71, 74] | |
A = [69, 73, 76] | |
B = [71, 75, 78] | |
# Create a MIDI file and track | |
mid = MidiFile() | |
track = MidiTrack() | |
mid.tracks.append(track) | |
# Function to play a chord | |
def play_chord(chord, velocity=64, duration=1): | |
for note in chord: | |
track.append(Message('note_on', note=note, velocity=velocity, time=0)) | |
track.append(Message('note_off', note=note, velocity=0, time=duration)) | |
# Main function that plays the 7 chords | |
def main(): | |
st.header("Select a chord to play") | |
chord = st.selectbox("", ["C", "D", "E", "F", "G", "A", "B"]) | |
if chord == "C": | |
play_chord(C) | |
elif chord == "D": | |
play_chord(D) | |
elif chord == "E": | |
play_chord(E) | |
elif chord == "F": | |
play_chord(F) | |
elif chord == "G": | |
play_chord(G) | |
elif chord == "A": | |
play_chord(A) | |
elif chord == "B": | |
play_chord(B) | |
mid.save("chord.mid") | |
st.header("Now playing...") | |
if __name__ == '__main__': | |
main() |