Here is an example to create some random music with python. We will generate random notes and save it to a midi file. You can play the notes with a daw of your choice or with the pygame module. We got it into the code that follows here below, have fun.

import random
from music21 import *
import os
def genmidi():
cwd = os.getcwd()
os.system("E:")
os.system(f"cd {cwd}")
print(cwd)
# Generate a random melody by creating a stream of notes with random pitches and durations
melody = stream.Stream()
for i in range(10):
pitch = random.choice(['C', 'D', 'E', 'F', 'G', 'A', 'B'])
duration = random.choice([1, 2, 4])
n = note.Note(pitch, quarterLength=duration)
melody.append(n)
# Save the melody to a MIDI file
path = "midi_generated/melody.mid"
midi_file = melody.write('midi', fp=path)
return path
def genmidi2():
# Create a stream to hold the melody
melody = stream.Stream()
# Create a phrase by randomly selecting from a list of pitches
def create_phrase():
phrase = stream.Stream()
pitches = ['C', 'D', 'E', 'F', 'G', 'A', 'B']
durations = [0.5, 1, 2]
for i in range(8):
pitch = random.choice(pitches)
duration = random.choice(durations)
n = note.Note(pitch, quarterLength=duration)
phrase.append(n)
return phrase
# Add three phrases to the melody
for i in range(3):
phrase = create_phrase()
melody.append(phrase)
# Set the tempo and add a time signature
melody.insert(0, tempo.MetronomeMark(number=120))
melody.insert(0, meter.TimeSignature('4/4'))
# Save the melody to a MIDI file
path = "midi_generated/melody2.mid"
midi_file = melody.write('midi', fp=path)
return path
def listen_midi(midi):
import pygame
pygame.init()
pygame.mixer.music.load(midi)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
return "Music's over"
midi = genmidi()
listen_midi(midi)

Subscribe to the newsletter for updates
Tkinter templatesTwitter: @pythonprogrammi - python_pygame
Claude's Games
1. Memory gameVideos
Speech recognition gamePygame's Platform Game