awacke1's picture
Create app.py
dfd0713
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()