Audio Konvertierung midi to wav

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
downandout
User
Beiträge: 6
Registriert: Dienstag 30. September 2014, 18:01

Hallo!

Betriebssystem: Windows 8
Python: 3.4

Ich möchte ein ein MIDI - File in ein Wav - File verwandeln.

Hier erzeuge ich mein .mid File:

Code: Alles auswählen

from MIDI import *


my_opus = [
    96, 
    [   # track 0:
        ['patch_change', 2, 1, 8],   # and these are the events...
        ['note_on',   0, 3, 67, 200],
        ['note_off', 50, 3, 67, 0],
        ['note_on',   0, 2, 71, 100],
        ['note_off', 96, 2, 71, 0],
        ['note_on',   0, 9, 76, 96],
        ['note_off', 96, 9, 76, 0],
    ],   # end of track 0
]
'''
dtime = Spielzeit des Tons
channel = Instrument
note = wie Tabelle
velocity = Lautstärke
'''
f = open('file.mid','wb')
f.write(opus2midi(my_opus)) 
 
my_midi = opus2midi(my_opus)

# Source = http://www.pjb.com.au/midi/free/MIDI.py
Dieses möchte ich anschließend in ein .wav Datei konvertieren, welche Möglichkeiten habe ich da?

Ich könnte beispielsweise midisox Libary verwenden: http://www.pjb.com.au/midi/midisox.html
Das ist leider Command-Line basierend und eher für Linux entworfen. Ich weiß auch nicht wie ich das erfolgreich integrieren könnte.

Fluidsynth sollte angeblich auch funktionieren, scheitert aber daran, dass ich Fluidsynth im PATH nicht finde.
http://devonbryant.github.io/blog/2013/ ... th-python/
Anleitung dazu, auch für Windows:
http://sourceforge.net/p/fluidsynth/wik ... WithCMake/
$ pwd
fluidsynth-x.y.z
$ mkdir build
$ cd build
$ cmake ..
Weiters weiß ich nicht was ich nach erfolgreichem build mit cmake, code dazu oben, mit dem build anstellen, sollte bzw. sehe ich keine Veränderung.

Habe das hier schon durchgestöbert: https://wiki.python.org/moin/PythonInMusic

Ich habe zwar die Möglichkeit direkt das Midi File abzuhören und in wav zu speichern, dass dauert aber leider zu lange.
Gibt es ein gutes Modul, dass mir das möglich macht?
Wäre für Hilfe dankbar!
BlackJack

@downandout: Du müsstest halt schauen wo die *.exe am Ende liegt und die irgendwo hin kopieren wo Dein Programm sie dann finden/ausführen kann.

TiMidity++ und WildMIDI wären sonst noch zwei Alternativen zu Fluidsynth.
downandout
User
Beiträge: 6
Registriert: Dienstag 30. September 2014, 18:01

Danke für die Antwort!

Kann es sein das ich hier einen Build für Visual Studio bekomme, weil ich es installiert habe? Wie soll/bzw. kann ich das überhaupt mit Python nutzen?
Bild

Werd mir TiMidity++ und WildMIDI mal ansehen!
BlackJack

@downandout: Wie sollst Du was mit Python nutzen? Fluidsynth ist ein Kommandozeilenprogramm. Das kann man von Python aus aufrufen. Mit Hilfe des `subprocess`-Moduls.

Keine Ahnung was Du mit „Build für Visual Studio” meinst.
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

BlackJack hat geschrieben:Fluidsynth ist ein Kommandozeilenprogramm. Das kann man von Python aus aufrufen. Mit Hilfe des `subprocess`-Moduls.
Allerdings gibt es auch ein Modul das zumindest unter python2 läuft und wenn ich das richtig verstehe angeblich auch unter Windows funktionieren soll, wenn die entsprechende dll vorhanden ist.
BlackJack

@nezzcarth: Mit dem Modul kann man nur programmatisch den Synthesizer ansteuern aber keine MIDI-Dateien abspielen oder umwandeln.
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

@BlackJack: Du hast recht. Da war ich zu voreilig, entschuldigt :(
downandout
User
Beiträge: 6
Registriert: Dienstag 30. September 2014, 18:01

Stimmt ein Kommandozeilenprogramm ist unpraktisch... Am liebsten hätte ich ein reines Python Programm, dass das beherrscht!

Gar nicht so einfach zu finden, bin auch noch relativ neu mit Python...
BlackJack

@downandout: Ein reines Python-Programm dürfte es nicht geben, dafür ist Python nicht die geeignete Sprache und es gibt ja bereits Lösungen.
Antworten