wav bzw. midi zurücklesen

  • Hallo,


    ich habe ein Problem und zwar:


    Ich soll eine wav bzw. midi datei ausgeben und dann über den linein(mikro) wieder zurücklesen und vergleichen. (das signal wird zu testzwecken direkt von dem lineout(lautsprecherausgang) in den linein(mikro) gespeist)
    meine fragen sind nun:
    ist überhaupt möglich eine midi-datei einfach auszugeben??


    wie kann man den ausgegebenen sound zurücklesen und vergleichen??


    gibt es einen befehl der nicht einen 100%igen vergleich macht sonder schon ab z.b. 80% ein true gibt?? (es wird wahrscheinlich nicht so zurückgegeben wie die orginaldatei ist wegen digital to analog und analog to digital Wandlung)


    so noch eine letzte frage, was würdet ihr nehmen wav oder midi??


    großes danke schon mal
    grüße

  • Hallo,


    Quote

    ... This project introduces how to use waveInopen and waveOutopen to recording and play the waveform audio.This is MFC application using VC++.The purpose is to help to understand waveform audio function ...


    CodeProject Demo Sourcecode (Aufnahme, Playback WAVE):
    http://www.codeproject.com/KB/cpp/julienT.aspx


    Nutzen Sie die Suchfunktion auf CodeProject.com für weitere Beispiele.


    Wir empfehlen WAV als Format. Mit MIDI haben wir keine Erfahrung.


    Um feststellen zu können ob WAV ausgegeben wurde, können Sie die Ausgabe wieder (wie Sie bereits geschrieben haben) von
    LineIn samplen und schauen, ob der Speicherinhalt des Aufnahmepuffers ein Signal enthält. Möchten Sie bestimmen, ob dieses Signal
    gleich, oder ähnlich, dem Original ist, wird es kompliziert.


    DKuhne.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Quote from "AMaisch"

    ist überhaupt möglich eine midi-datei einfach auszugeben??


    Eigentlich nein. Eine MIDI-Datei ist eine Datei, die Informationen darüber enthält, zu welchem Zeitpunkt welcher Ton bei welchem Musikinstrument angestoßen wird. Mehr nicht. Das heißt damit aus einer MIDI-Datei Musik wird, muss es Instrumente geben. Üblicherweise sind dies Synthesizer wie z.B. Keyboards oder andere externe Klangerzeuger. Eine Soundkarte auf einem PC stellt heutzutage aber selbst schon einen Synthesizer dar und enthält schon die Klänge von mehreren zig Instrumenten und kann so auch MIDI-Files abspielen, indem diese Pseudo-Instrumente genau wie auf einem externen Synthesizer einzeln ausgegeben und deren Klänge dann überlagert werden. Früher konnten Soundkarten nur wenige Instrumente gleichzeitig abspielen, heute sind sie so rechenstark, dass auch viele viele Instrumente gleichzeitig "gespielt" werden können. Man sagt dann, diese Soundkarten sind polyphon.


    Ein Board wie die PicoMOD ist aber primär kein Synthesizer, hat also von Haus aus keine solchen Instrumente einprogrammiert. Die Samples würden einfach viel zuviel Platz benötigen. Außerdem wäre der Rechenaufwand für die Überlagerung mehrerer solcher Instrumente für die Rechenpower der PicoMOD schon bei wenigen gleichzeitig gespielten Instrumenten deutlich zu viel. Insofern kann ein MIDI-File mit der PicoMOD selbst tatsächlich nicht abgespielt werden.


    Außerdem bedeutet es ja auch, dass der Klang hinterher von der Art der Instrumente abhängt. Ein MIDI-File, das auf einer Soundkarte A abgespielt wird, klingt komplett anders als wenn es auf einer Soundkarte B abgespielt wird, und auch wieder anders, wenn es z.B. auf einem externen Profi-Klangerzeuger abgespielt wird. Eben je nachdem welche Instrumente da einprogrammiert sind. Ein teurer Profisynthesizer hat beispielsweise einen teuren Stainway-Flügel einprogrammiert, während die Soundkarte mit einem billigen No-Name-Klavier "bestückt" ist. Das sind eben dann deutliche Unterschiede, obwohl beidesmal der gleiche Ton vom Instrument "Klavier" abgespielt wurde. Für einen Vergleich "mit dem Original", den Sie ja anstreben, ist das sicher nicht zuträglich.


    Quote

    wie kann man den ausgegebenen sound zurücklesen und vergleichen??


    Indem man Line-Out mit einem Kabel auf Line-In verbindet.


    Quote

    gibt es einen befehl der nicht einen 100%igen vergleich macht sonder schon ab z.b. 80% ein true gibt?? (es wird wahrscheinlich nicht so zurückgegeben wie die orginaldatei ist wegen digital to analog und analog to digital Wandlung)


    Einen solchen Befehl direkt gibt es nicht. Vielleicht kann man mit einem Audio-Editor die beiden Dateien so angleichen und dann die Differenz bilden, dass man etwas über die Gleichheit aussagen kann. Im Idealfall wäre die Differenz ja überall Null. In der Praxis haben Sie genau das Problem, dass natürlich ein gewisser Unterschied besteht. Nicht nur die D/A und A/D-Wandlungen an sich, sondern ganz banal die unterschiedliche Lautstärke bei Wiedergabe und Aufnahme kann die Kurve schon komplett unterschiedlich aussehen lassen. So kann bei Übersteuerung das Signal geclipped sein, d.h. Schwingungen, die eigentlich über die maximale Amplitude hinausgehen müssten, werden entsprechend beim Maximalwert gekappt. Und letztendlich kann auf dem Analogweg allerlei "böses" passieren, was die Frequenzen beeinflusst. So sind auf der Line-In-Seite üblicherweise Kondensatoren, um Störfrequenzen wegzufiltern. Diese beeinflussen selbstverständlich auch das Frequenzspektrum im hörbaren Bereich.


    Außerdem sind Ausgabe und Eingabe zeitlich etwas zueinander verschoben, da die D/A- und A/D-Wandlungen jeweils etwas Zeit benötigen. Diesen zeitlichen Versatz muss man beim Vergleich ebenfalls berücksichtigen. Hat man hier nicht einen eindeutigen Anfangspunkt, z.B. einen plötzlichen Pegelausschlag, ist es schon gar nicht so leicht, zu erkennen, welche Stellen (Samples) man eigentlich miteinander vergleichen muss.


    Insgesamt ist so ein Vergleich also kein einfaches Unterfangen. Und man muss wohl in der Tat selbst Hand anlegen.


    Quote

    so noch eine letzte frage, was würdet ihr nehmen wav oder midi??


    Wie gesagt geht MIDI sowieso nicht. Aber selbst wenn, macht es keinen Sinn. Denn im MIDI-File stehen Information wie "Spiele zum Zeitpunkt x auf Instrument y den Ton z mit den und den Anschlagsparametern." Von analog aufgenommen werden kann aber nur ein Analogschwingung, also ein WAV-File, niemals ein MIDI-File. Wie will man das vergleichen? Insofern macht MIDI aus dem Grund alleine schon keinen Sinn, sondern nur WAV.


    Möglicherweise ist es für den Vergleich aber sogar notwendig, sich das Frequenzspektrum der Töne anzuschauen. Und schon kommen so nette Dinge wie Fouriertransformation ins Spiel. Wie gesagt, leicht ist diese Aufgabe nicht.


    Mit freundlichen Grüßen,


    H. Keller

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.