Midi To Base64 Page
with open('song_package.json') as f: data = json.load(f) midi_bytes = base64.b64decode(data['midi_base64']) with open('restored.mid', 'wb') as out: out.write(midi_bytes) If your MIDI is generated in memory (e.g., using midiutil or pretty_midi in Python), encode directly:
with open('song_package.json', 'w') as out: json.dump(song_data, out)
<script> const b64 = "TVRoZAAAAA..."; // your full base64 string const binary = atob(b64); const arrayBuffer = new ArrayBuffer(binary.length); const view = new Uint8Array(arrayBuffer); for (let i = 0; i < binary.length; i++) view[i] = binary.charCodeAt(i); const blob = new Blob([arrayBuffer], type: 'audio/midi' ); const url = URL.createObjectURL(blob); new Audio(url).play(); </script> import base64, json with open('melody.mid', 'rb') as f: b64_midi = base64.b64encode(f.read()).decode('ascii') midi to base64
base64 -i my_song.mid -o my_song_base64.txt Or to output directly:
certutil -encode my_song.mid output.txt (Then remove the -----BEGIN CERTIFICATE----- lines manually.) Python (most common) import base64 Read MIDI file as binary with open('song.mid', 'rb') as f: midi_bytes = f.read() Encode to Base64 string b64_string = base64.b64encode(midi_bytes).decode('utf-8') with open('song_package
import io with io.BytesIO() as buf: with open(buf, 'wb') as f: midi.writeFile(f) b64_string = base64.b64encode(buf.getvalue()).decode() | Step | Action | |------|--------| | 1 | Read .mid file as binary | | 2 | Encode binary → Base64 string | | 3 | Use string in text context (JSON, HTML, DB) | | 4 | To reverse: decode Base64 → binary → write .mid |
base64 my_song.mid
Decode later:
import base64 from midiutil import MIDIFile midi = MIDIFile(1) midi.addTempo(0, 0, 120) midi.addNote(0, 0, 60, 0, 1, 100) using midiutil or pretty_midi in Python)