Forum: PC Hard- und Software RealStudio: Sounddaten verändern sich?


von Frank (Gast)


Lesenswert?

Ich entwickle eine Anwendung, die Steuerkommandos per USB/Seriell 
(später Ethernet) zu einem Arduino-Mikrocontroller sendet. Dazu gehört 
auch Sprachausgabe (Zahlworte).

Öffne ich eine 8-Bit-Wave-Datei per Folderitem/BinaryStream, lese jedes 
Byte und sende es, kommt es an wie erwartet und wird korrekt am Arduino 
ausgegeben (PWM).

Nun wollte ich die Soundschnipsel direkt in der Anwendung unterbringen. 
Ziehe ich die Sounddaten in die RealStudio-IDE, kann ich sie zwar hier 
per Play abspielen, komme aber nicht an die Binärdaten heran, um sie zu 
versenden. Da habe ich die Sounddaten von *.wav in *.txt umbenannt - das 
dürfte ja den Inhalt nicht verändern. Wenn ich sie nun in die IDE ziehe, 
kann ich sie auch einem String zuweisen.

Sende ich aber nun die Binärwerte (ASCB) der einzelnen Zeichen, kommen 
nur noch Geräsche, Rauschen und Kratzen aus dem Arduino, die überhaupt 
Nichts mit dem Original zu tun haben. Wo ist mein Denkfehler, was 
verändert die Daten?

von void (Gast)


Lesenswert?

>Wenn ich sie nun in die IDE ziehe, kann ich sie auch einem String zuweisen.

Ich kenne diese IDE nicht, aber es könnte ein Problem mit deinen 
Binärdaten (txt Datei) und dem String liegen. Ein Datentyp String ist 
nicht für das Speichern von Binärdaten ausgelegt. Stichworte: 
Nullterminierter String, Escape-Sequenzen z.B. Line feed

 >Wo ist mein Denkfehler, was verändert die Daten?

Ich gehe davon aus, dass die erste NULL in deiner wave (txt binär) Datei 
das Ende des Strings bedeutet und deshalb das meiste deiner ausgegebenen 
Daten versehentlich 'sonstige Programmdaten' sind.

-> Versuche mal deine Binärdaten einem uint8_t Array (byte array, oder 
wie immer das in der IDE heißt) abzulegen.

P.S.: Nicht vergessen den Header der wav Datei abzuschneiden. Der klingt 
auch schlecht!

von Frank (Gast)


Lesenswert?

Hat sich geklärt: UTF!

"Moderne" Programmiersprachen und deren IDE betrachten Text als 
UTF-codiert und lesen dann eben öfters mal gleich zwei Byte, besonders, 
wenn es sich eigentlich um Binärdaten handelt ... Uff!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.