Pradeeh Program File
Pradeeh Program File
import tensorflow as tf
import numpy as np
import pretty_midi
import os
def load_midi_files(data_path):
notes = []
if file.endswith(".mid"):
if not instrument.is_drum:
return notes
sequences.append(notes[i:i + sequence_length])
next_notes.append(notes[i + sequence_length])
model = tf.keras.Sequential([
tf.keras.layers.Embedding(input_dim=vocab_size, output_dim=100,
input_length=sequence_length),
tf.keras.layers.LSTM(256, return_sequences=True),
tf.keras.layers.Dropout(0.3),
tf.keras.layers.LSTM(256),
tf.keras.layers.Dense(256, activation="relu"),
tf.keras.layers.Dense(vocab_size, activation="softmax")
])
model.compile(loss="sparse_categorical_crossentropy", optimizer="adam")
return model
return model
generated_notes = list(start_sequence)
for _ in range(length):
next_note = np.argmax(predicted_note)
generated_notes.append(next_note)
return generated_notes
midi = pretty_midi.PrettyMIDI()
instrument = pretty_midi.Instrument(program=0)
start_time = 0
midi_note = pretty_midi.Note(
instrument.notes.append(midi_note)
start_time += 0.5
midi.instruments.append(instrument)
midi.write(output_file)
data_path = 'C:/Users/ASUS/Documents/prathesh/brahms'
notes = load_midi_files(data_path)
unique_notes = list(set(notes))
sequence_length = 50
vocab_size = len(unique_notes)
start_sequence = list(sequences[0])
notes_to_midi(generated_midi_notes)