Entwickler-Ecke

Multimedia / Grafik - MP3 in MIDI konvertieren...


Mike_C - So 11.05.03 13:00
Titel: MP3 in MIDI konvertieren...
Hi

kann mir jemand erklären, wie ich ein MP3 in ein MIDI konvertieren kann? nur theoretisch, keinen Code (außer Pseudo-Code) und keine komplett Lösung (alle, die mein Posting "Bitte an alle Forummitglieder" gelesen haben, wissen, was ich meine ;-) ). Wenn, dann will ich's selbst hin bekommen und nur bei unklarheiten weiterfragen...

Greetz, Mike


matze - So 11.05.03 14:54

ich bin mir nicht sicher ob das geht, denn bei MP3 ist die Musik ja so gespeichert wie du sie hörst. aber bei MIDI ist die Musik ja quasi als notenblatt gespeichert, auf dem die einzelnen Noten stehen, die der PC dann abspielt. deswegen hören sich MIDI files ja nicht auf jedem PC gleich an.


Mike_C - So 11.05.03 19:11

matze hat folgendes geschrieben:
aber bei MIDI ist die Musik ja quasi als notenblatt gespeichert, auf dem die einzelnen Noten stehen, die der PC dann abspielt. deswegen hören sich MIDI files ja nicht auf jedem PC gleich an.

also soweit ich weiß, kommt es dabei darauf an, welche samples (also musikinstrumente) die soundkarte unterstützt (GeneralMidi, Midi1 oder Midi0 oder RMI). das hört sich natürlich anders an. aber wäre es nicht möglich so zusagen die Frequenzen aus einem MP3-File heraus zu filtern und dann in ein MIDI-File zu schreiben? dabei bliebe nur noch das instrumental-problem und evtl die sache mit der sprache (also gesang).


UGrohne - So 11.05.03 19:13

Das scheint net ganz einfach zu sein, ich hab bisher einige Programme ausprobiert, die angeblich MP3 in MIDI "konvertieren" können, aber die haben sich danach dermaßen schlecht angehört, dass sich fast nicht mal die Weiterverarbeitung gelohnt hat. Da hätte ich das Lied auch gleich selbst in MIDI schreiben können :wink:


matze - Mo 12.05.03 15:39

ich denke auch mal dass die qualitäts sowas von in den keller geht, dass sich das nicht wirklich lohnt


JacFab - Mo 12.05.03 17:35

hä??? wie soll das denn gehen, mp3 in midi umwandeln?
mp3 speichert für jeden "frame" die frequenzen.
midi hingegen hat als einzige information, wann, welcher sample von der soundkarte abgespielt werden soll!
man müsste ja die mp3 nach zB schlagzeugschlägen durchsuchen und die dann in der richtigen stelle in die midi-datei einsetzen.
filtern von einzelnen instrumenten ist aber ein wahnsinns aufwand und wird auch nur von hochqualitativen soundgeräten unterstützt.
wenn das einer von euch hinkriegt:
DEN CODE WILL ICH HABEN :wink: :P


Mike_C - Mo 12.05.03 18:20

ok ok ok, ihr habt mich überzeugt, dass meine Idee schwachsinn war...


JacFab - Mo 12.05.03 18:30

nene schwachsinn war sie nicht!
ich fänds ja saugeil, wenn so etwas gehen würde.
aber ich glaube, es wäre, wenn überhaupt, nur mit einem wahnsinns aufwand zu verwirklichen :cry:


matze - Mo 12.05.03 19:00

mann könnte halt die frequenzen im MP3 auslesen und die dann in MIDI noten umrechnen.... wie das dann klingt...... ich wills gar nicht wissen !


Mike_C - Mo 12.05.03 19:16

nein, das klingt eher so, als würde ich bei "good old fashioned" MP3 bleiben.


mimi - Di 13.05.03 16:14

und die Frage umbekehrt ?
MIDIS TO MP3 ?


flow - Di 13.05.03 16:33

Wenn du das schaffst dann hast du ausgesorgt. Wenns danach auch noch gut klingt :D !

Die beste Methode, oder die wirksamtse ist das Audio Spektrum in seine einzelnen Frequenzen zu vzerlegen. Das heißt jedes Sample in Frequenzen aufteilen und dann brauchst du von jedem erdenklichen Instrument wiederum ein Frequenzspektrum das du dem Sample zuordnest. Wenn das geklappt hat kannst du dem MIDI File das demensprechende Programm zuordnen. Näher will ich gar nicht ins Detail gehen!
Glaub mir, das dauert genausolange wie einen 3D Film aus Studio MAX zu rendern. Und dabei kommt gerade mal ein Wirkungsgrad von max 50 % raus.

FLOW


matze - Di 13.05.03 16:58

mimi hat folgendes geschrieben:
und die Frage umbekehrt ?
MIDIS TO MP3 ?


das ist ein weitaus kleiners Prob als MP3 -> MIDI


tommie-lie - Di 13.05.03 18:31

Für MIDI -> MP3 müsstest du die MIDI-Datei abspielen. Dann an letzter Instanz (also hinter dem Sequencer) von der Soundkarte holen und in einen Wave-Stream schreiben. Dann die Wave-Daten ins MP3-Format konvertieren (LAME) und als Datei abspeichern.
Wie man die Daten hinter dem Sequencer abfängt weiß ich nicht genau, aber müsste theoretisch mit FMod über die DSP-Engine funktionieren, frag' mich aber nicht, wie man das Teil benutzt, hab's nie gebraucht und werde es vermutlich acuh nicht.
Allerdings zeigt die FMod-Hilfe einen schematischen Aufbau der DSP, und da die SFX vor den MIDI-Daten in den Audiostrom mixt werden, dürfte während des Abspielens der MIDI-Datei nichts anderes abgespielt werden, sonst hört man das mit.
Alternativ könnte man sich einen eigenen kleinen Sequencer bauen, die MIDI-Datei selbst abspielen und das Resultat, was ja dann schon Wave wäre, ins MP3-Format umwandeln. Durch Quantisierung ließe sich das vielleicht sogar schneller machen, als die MIDI-Datei lang ist, also in wesentlich kürzerer Zeit als die spielzeit des Liedes.
Aber das ist alles nur Theorie, praktisch habe ich keinerlei Informationen darüber, wie man soetwas genau macht.


DJFlow - Di 13.05.03 20:13

Entweder in Realtime oder quntisieren, wie schon gesagt!

Cubase macht es mit beiden Varianten. Bei realtime zeichnet es den Midiausgang des internen Mixers als Audiospur auf und speichert es gleichzeitig im Wave Vormat auf der Platte ab. Dabei wird der Synthesizerausgang von der Soundkarte angesprochen oder wenn man ein virtuelles Instrument verwendet, werden die Ausgänge dieses Instruments angesprochen welches schon den fertigen Ton liefert.

Beim quantisieren wird eigentlich nur alles schneller gemacht. Das Programm spielt die Midi Sequenzen so schnell ab wie sie die Wavedatei schreiben kann.

FLOW


matze - Di 13.05.03 20:34

die frage ist nur: wieso aus nem MIDI file ein viel grösseres MP3 file machen ??


JacFab - Di 13.05.03 23:43

zB. um hinterher mit cubase effekte reinzumischen, die man auf einen midi mixer nicht anwenden kann... also eigentlich alle steinberg effekte!


flow - Mi 14.05.03 07:37

Das bringt aber genausowenig wie aus Midi direkt MP3 zu machen.

Wenns ordentlich sein soll wendet man schon auf die Midi Sequenzen Effekte an, wie Reverb, Chorus, Modulation, Pitch, Hall usw. Dann wird aus jeder Midi Spur die es noch nötig hat eine Audiospur erstellt um diese dynamisch nachbearbeiten zu können. Mit EQ, Compressor, Limiter, und andere Effekte. Danach kommt alles in den Endmix, kurz gesagt auf eine Stereo Spur oder 5:1, je nach dem was man bezwecken will. Jetzt kommt noch das Mastering dazu, hier wird der Track noch einem Feinschliff unterzogen, Hardlimiting, EGs, Compressoren, Normalizing, usw...

Dann hat es Sinn einen Midi Song in MP3 zu verwandeln.

FLOW


mimi - Mi 14.05.03 14:48

ich wollte mal meine mids(über 3000 dateien) auf eine CD berennen und das geht ja leider nur in MP3 oder WAV, oder ?


mars - Mi 14.05.03 15:48

Wenn du's auf einem CD-Player hören willst, kannst du wirklich nicht direkt MIDI-files brennen (aber genausowenig mp3 oder wave dateien). Wenn du also eine AudioCD brennst geschieht immer eine Umwandlung der Ausgangsdaten. Der Unterschied zwischen MIDI und WAV/MP3 ist halt nur, dass die gängigen Brennprogramme WAV/MP3 als Eingangsmaterial akzeptieren und eine Umwandlung dafür integriert haben, für MIDI aber nicht.


mimi - Mi 14.05.03 17:11

achso, und wie kann man sowas selbst machen ?
so einumwandlungs programm für mid to CDFile ?


matze - Mi 14.05.03 19:33

mimi hat folgendes geschrieben:
ich wollte mal meine mids(über 3000 dateien) auf eine CD berennen und das geht ja leider nur in MP3 oder WAV, oder ?
klingen die denn so toll ? ;-)


mars - Mi 14.05.03 22:35

mimi hat folgendes geschrieben:
achso, und wie kann man sowas selbst machen ?
so einumwandlungs programm für mid to CDFile ?


Da musst du wohl den "Umweg" über WAV/MP3 machen. Dazu gibts ja oberhalb schon einiges. (Realtime, Quantisieren...)


flow - Do 15.05.03 11:32

Da suchst du dir am besten irgend ein Freeware Sequenzerprogramm und renderst alles in wave.
Das Brennprogramm schreibt dann die Tracks auch in einem Integer Format auf die CD!

Hilfreich kann Steinberg Cubasis sein, das ist günstig und gut!

Soetwas in Delphi zu programmieren ist schwierig, da du dich erstens mit allen Midi Befehlen auseinadersetzen mußt, dann mit den verschiedenen Formaten und du mußt die Befehle auch noch verarbeiten damit auch der Sound rauskommt den du haben willst.

FLOW


mimi - Do 15.05.03 14:59

mm, das heißt also man muss aufjedenfall die midi datei apspielen lassen und aufnehmen, das ist blöd finde ich gibt es keinen andren weg ?


tommie-lie - Do 15.05.03 16:48

Doch, selber synthesizen. Aber das artet wieder in Aufwand aus, allerdings denke ich mal, daß dieses Cubase (oder Cubasis? was denn nun?) das macht, also würde ich auch dieses Programm benutzen.
Als Wave-Datei abspeichern musst du auf jeden fall, es sei denn, du schreibst sie auch noch selbst auf die CD, dann geht das bei schnellem Brenner auch on the fly. Die Daten auf CDs sind übrigens im Wave-Format, nur nicht in einem RIFF-Stream. Das einzige, was das Brennprogramm "konvertiert" sind die Sampleraten (auf 44.1kHz) und die Sampletiefe (auf 16 bit, stereo), und halt bei MP3s auch noch Dekomprimierung. (nur damit man mars' Aussage nicht falsch versteht)
Eine eigene Implementierung eines MIDI-Synthesizers in Delphi ist wirklich extrem schwer und kompliziert, weil man eben alle Samples selbst einspielen muss und sie entsprechend den MIDI-Befehlen zusammenschustern muss. Allerdings ist das natürlich auch die flexibelste Lösung, denn man kann ja machen was man will, und wenn man schön optimiert, geht's auch schneller als in Echtzeit.


mimi - Do 15.05.03 17:14

da ist die idee nicht wei, ein Team zu bilden was so ein Programm schreibt, oder ?

kennt ihr denn Programm bzw, die links wo man welche bekommt, die MDI TO WAV OR MP3 macht ???