Frage

ich tun möchte, eine kleine app erstellen, die MIDI-Sounds erzeugt. Ich habe noch nie mit Ton in der Programmierung behandelt, damit ich mit etwas beginnen möchte, die grundlegenden ist und hat eine gute Dokumentation. Ich mag mit Python bleiben, da ich am meisten zufrieden mit ihm bin und will mich nicht überwältigen, zunächst.

Meine Zeit geteilt wird etwa 50/50 zwischen Windows und Ubuntu so etwas, das auf beiden Plattformen „einfach funktioniert“ wäre wirklich hilfreich.

Irgendwelche Vorschläge?

War es hilfreich?

Lösung

Die MIDIUtil Bibliothek (hosted hier bei Google Code) nicht, was Sie wollen: Schreiben MIDI Dateien von einer reinen Python-Bibliothek. Sobald Schöne daran (und vollständige Offenlegung: Ich bin der Autor) ist, dass Sie müssen nicht verfolgen, auf niedrigerer Ebene MID Ereignisse wie Note-On- und Note-off. Es behandelt sie für Sie

Als Beispiel eine Notiz zu schreiben, würden Sie so etwas wie:

MyMIDI = MIDIFile(1)
track = 0
channel = 0
pitch = 60
time = 0
duration = 1
volume = 100
MyMIDI.addNote(track,channel,pitch,time,duration,volume)

Hope, das hilft

Andere Tipps

Ich war auf der Suche nach einer reinen Python-Bibliothek eine MIDI-Datei zu erzeugen, mxm Python MIDI-Bibliothek ist genau das.

dieser dzone Schnipsel , gibt es eine Single-File-Version der oben genannten Bibliothek , smidi.py ( gist'd hier für die Nachwelt)

Die Benutzung ist ganz einfach:

>>> import smidi
>>> m = smidi.MidiOutFile('out.mid')
>>> m.header()
>>> m.start_of_track()
>>> m.update_time(0)
>>> m.note_on(note=0x40)  # single note
>>> m.update_time(192)
>>> m.note_off(note=0x40) # stop it after 192
>>> m.update_time(0)
>>> m.end_of_track()
>>> m.eof()

funktioniert Vermutlich unter Windows (wie das ursprüngliche Beispiel C:\out.mid als Ausgabedateiname verwendet), und ich habe es auf OS X getestet

pyPortMidi ist ein Python-Wrapper von PortMidi, die als beschrieben „eine plattformübergreifende C-Bibliothek für Echtzeit-MIDI-Steuerung“. Ich habe es selbst nicht benutzt, aber es sieht sehr vielversprechend aus. Ausdrückliche Erwähnung in der Lage, MIDI-Daten in Echtzeit zu senden.

Wenn Sie nur Midi oder Prozess MIDI-Dateien, versuchen mingus zu erzeugen, Es ist ein großes Paket und erlaubt es auch viele höher Abstraktionen wie Akkorde, Akkordfolgen, Skalen und so weiter.

Ich habe versucht, acht Pakete im Wiki aufgelistet http://wiki.python.org/moin/PythonInMusic . Ich fand, dass derjenige, der music21 ( http://web.mit.edu/music21/ ) war

  • die umfassendste
  • das beste Tutorial
  • am einfachsten auf Windows installieren

aber auf Ihre Anfrage der Einfachheit halber, ich glaube, es ist nicht die einfachste. Aber ich konnte keine der anderen Programme bekomme MIDI-Dateien in einer robusten Art und Weise zu lesen (Ich habe eine Vielzahl von seltsamen und wundervollen MIDI-Datei-Formaten rumhängen)

Midi-Unterstützung (in und out) wurde hinzugefügt PyGame 1,9, obwohl es vor allem in der Entwicklungsphase ist und ist nicht sehr gut noch dokumentiert, aber es funktioniert.

Midi-Unterstützung ist auch in dem PyGame Nachfolger entwickelt, pgreloaded (oder pygame2).

Beachten Sie auch, dass, obwohl PyGame ‚Spiel‘ hat in dem Titel, sein Nutzen weit über die reine Spieldesign strecken.

Lesen Sie cSounds .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top