简体   繁体   中英

Pure python library for MIDI to Score (Notes) and/or Audio Translation

I want something that abstracts away MIDI events, to extract/synthesize pitch/duration/dynamic/onset (eg loud D# quarter note on the 4th beat).

fluidsynth and timidity work, but I'd prefer a pure python library. I can't find anything but bindings here .

midiutil makes MIDIs and pygame plays them, but I want something that can both synthesize raw audio data and quantize the notes (ie as they would be represented in sheet music, not as midi events / pulses / "pitch" / etc).

EDIT: these don't quite do it (either not in python, or too low-level, or "do it yourself"):
Get note data from MIDI file
Python: midi to audio stream

What you probably want is a process called "quantization" which matches the midi events to the closest note length.

I wrote such an app in C 1999:

http://www.findthatzipfile.com/search-3558240-hZIP/winrar-winzip-download-midi2tone.zip.htm

(I don't have source any more, sorry)

The process itself is not very complex. I just brute forced different note lengths to find the closest match. MIDI event pitches themselves map directly to notes, so conversation there is not neede.d

MIDI format itself is not very complex, so I suggest you find a pure Python MIDI reading library and then apply the algorithm on the top of that.

https://github.com/vishnubob/python-midi

Have you tried Mingus? It with py FluidSynth http://code.google.com/p/mingus/wiki/tutorialFluidsynth

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM