<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Wie kann ich Wave oder MP3-Dateien erzeugen]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich bin blutiger Anfänger in Sachen Sound-Programmierung.<br />
Da ich mit dem Borland C++ Builder 5.0 ein kleines Programm zum Erstellen von simplen Wave oder besser MP3-Dateien schreiben möchte, benötige ich eine kleine Starthilfe. Es sollen einfach nur Töne verschiedener Tonhöhe (Frequenz) und Länge erzeugt und in eine Datei geschrieben werden.</p>
<p>Ich würde mich über ein paar Tips freuen.</p>
<p>Gruss,</p>
<p>Terry</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/172979/wie-kann-ich-wave-oder-mp3-dateien-erzeugen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 13:12:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/172979.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 10 Feb 2007 13:36:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie kann ich Wave oder MP3-Dateien erzeugen on Sat, 10 Feb 2007 17:14:47 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich bin blutiger Anfänger in Sachen Sound-Programmierung.<br />
Da ich mit dem Borland C++ Builder 5.0 ein kleines Programm zum Erstellen von simplen Wave oder besser MP3-Dateien schreiben möchte, benötige ich eine kleine Starthilfe. Es sollen einfach nur Töne verschiedener Tonhöhe (Frequenz) und Länge erzeugt und in eine Datei geschrieben werden.</p>
<p>Ich würde mich über ein paar Tips freuen.</p>
<p>Gruss,</p>
<p>Terry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1226195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1226195</guid><dc:creator><![CDATA[Terry]]></dc:creator><pubDate>Sat, 10 Feb 2007 17:14:47 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich Wave oder MP3-Dateien erzeugen on Sun, 11 Feb 2007 12:42:42 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Upsss.. Du willst sie speichern. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Das steht im Pezold drin.<br />
WAVE -&gt; PCM-Format. Da kommt die unten beschriebene <strong>WAVEFORMATEX</strong> structur rein.<br />
Das MP3 Format kenne ich nicht.</p>
<p>Sound ausgabe:<br />
Hab das mal mit der WinAPI Bibel Petzold gelöst (dank der Beispeile).<br />
Blicke leider in meinem Code nicht mehr durch.<br />
(Botschaftenverteilung etc. )</p>
<p>Hier ein kleiner Überblick. müsst eigentlich alles stimmen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p><strong>Strukturen:</strong></p>
<pre><code class="language-cpp">MMRESULT re;      //definierte Fehler-Rückgabe (muss mitausgewertet werden um Fehler sofort zu behandeln)
                  //im Notfall Ausgabegerät freigeben damit kein Absturz

HWAVEOUT ho;      //welches Ausgabegerät... SOUNDKarte (normal WAVE_MAPPER).... s.-&gt;waveOutOpen unten

WAVEFORMATEX w;   //Bitrate, Stereo/Mono, Sampelrate, usw.
                  //diese Struktur muss von Anfang an festgelegt werden

WAVEHDR he;       //loop (Wiederholungen des Puffer), Name des Ausgabepuffer, Ausgabepuffer grösse, usw. 
                  //diese Struktur muss von Anfang an festgelegt werden
</code></pre>
<p><strong>Funktionen</strong></p>
<pre><code class="language-cpp">Die Reihenfolge müsste richtig sein, wenn alles ohne Fehler läuft.
Es werden von den Funktionen selbst Botschaften verschickt, wenn fertig mit abspielen... usw. 
Es fehelen einige, wie die Stop und Reapet-Funktion!!!

//Wav-Gerät öffnen (Standart-Ausgabegerät-&gt; WAVE_MAPPER)  ---&gt; Ergebnis ist ho!!!
re=waveOutOpen(&amp;ho,WAVE_MAPPER,&amp;w,dwCallback,0,CALLBACK_WINDOW);

//Dem Ausgabegerät über he sagen wie Ausgabepuffer heist usw.
re=waveOutPrepareHeader(ho,&amp;he,sizeof(WAVEHDR));

//he abspielen
re=waveOutWrite(ho,&amp;he,sizeof(WAVEHDR));

//(Ausgabegerät freigeben) ho freigeben
re=waveOutUnprepareHeader(ho,&amp;he,sizeof(WAVEHDR)); 
re=waveOutReset(ho);                               
re=waveOutClose(ho);
</code></pre>
<p><strong>Botschaften</strong></p>
<pre><code class="language-cpp">MM_WOM_CLOSE
MM_WOM_DONE
MM_WOM_OPEN
und noch einige mehr
</code></pre>
<p>Es gibt bestimmt eine I-Seite.<br />
genügend Stichworte hast du jetzt ja. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
Wie gesagt blicke ich in meine Code nicht mehr ganz durch.<br />
Aber so in der Art läuft es ab.... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Grüsse</p>
<p>PS: hab gerade die Funktion gefunden die in den Ausgabepuffer eine Sinuswelle reinpackt.<br />
So wie die aussieht ist sie 1:1 vom Petzold raus.<br />
Die länge des Tons hängt von der länge des Ausgabepuffer ab.</p>
<p>Das mit der MP3-Ausgabe stellst du dir zu einfach vor.<br />
In Wirklichkeit werden auch da Wav-Daten ausgegeban (PCM-Format).<br />
Ich könnte mir vorstellen das man mit der Lame.dll MP3-Dateien abspielen kann.<br />
Dies hab ich aber noch nicht probiert. Ob es vom Lame eine Dokumentation gibt weis ich nicht.<br />
Er gibt einem bestimmt Wav-Daten für den Ausgabepuffer zurück.<br />
Lame ist Freeware oder OpenSource.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1226704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1226704</guid><dc:creator><![CDATA[steinsoft]]></dc:creator><pubDate>Sun, 11 Feb 2007 12:42:42 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich Wave oder MP3-Dateien erzeugen on Mon, 12 Feb 2007 18:02:27 GMT]]></title><description><![CDATA[<p>Vielen Dank für deine Antwort.<br />
Den Petzold kannte ich nicht. Aber ich bekomme den demnächst mal ausgeliehen und dann werde ich dort mal ein wenig drinnen stöbern.<br />
Warscheinlich habe ich mir die ganze Sache wirklich etwas zu einfach vorgestellt.</p>
<p>Nachdem ich mich ein wenig in das Thema eingelesen habe, werde ich mit Hilfe der von die geposteten Hilfe und Funktionen einen weiteren Anlauf nehmen.</p>
<p>Nochmals vielen Dank.</p>
<p>Gruß,</p>
<p>Terry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1227641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1227641</guid><dc:creator><![CDATA[Terry]]></dc:creator><pubDate>Mon, 12 Feb 2007 18:02:27 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich Wave oder MP3-Dateien erzeugen on Mon, 12 Feb 2007 18:19:19 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>hab noch was interessantes zu deiner Frage gefunden.<br />
<a href="http://de.wikipedia.org/wiki/Wav" rel="nofollow">http://de.wikipedia.org/wiki/Wav</a></p>
<p>Ich hab mir den Pezold damals auch nur ausgeliehen.<br />
Es sind Beispiele drin wie man eine Wave-datei erzeugt ohne Soundkarte<br />
und mit Soundkarte.</p>
<p>Grüsse</p>
<p>*edit* ist ziemlich weit am Ende im Petzold.</p>
<p>kannst gerne Fragen wenns Probleme gibt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1227655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1227655</guid><dc:creator><![CDATA[steinsoft]]></dc:creator><pubDate>Mon, 12 Feb 2007 18:19:19 GMT</pubDate></item></channel></rss>