und nochmal: Musik grafisch darstellen
@Green Snake................das sehe ich auch so,
ich suche nur mal einen Ansatzpunkt wie so etwas aussehen könnte, die Zeitschienen und Marker die ich noch brauche um Zeiten auszulesen bringe ich dann doch zusammen.
mein bestehendes Steuerungs-Programm habe ich immerhin auch schon nahezu alleine programmiert.
Mein Problem liegt darin, das ich von diesem Teil absolut keine Ahnung habe und einfach nur im Forum auf Hilfe hoffe und auch daraus dazulernen kann
@AndyX
das ich das WAV gut kenne habe ich nicht behauptet, sondern keine Ahnung davon habe und nicht weiterkomme
dazu bin ich noch relativ Anfänger
@MVXA
also von der Aussage von super_castle distanziere ich mich energisch
mit meiner spöttischen Bemerkung an dich meinte ich eigentlich hauptsächlich, wenn ich bei PB Fragen nicht hier nachfragen kann, in welchem Forum dann.
Ich habe es auch nicht beleidigend gemeint, wenn du es aber doch so aufgefasst hast, mach ich nen Knicks und entschuldige mich natürlich auch dafür
ich suche nur mal einen Ansatzpunkt wie so etwas aussehen könnte, die Zeitschienen und Marker die ich noch brauche um Zeiten auszulesen bringe ich dann doch zusammen.
mein bestehendes Steuerungs-Programm habe ich immerhin auch schon nahezu alleine programmiert.
Mein Problem liegt darin, das ich von diesem Teil absolut keine Ahnung habe und einfach nur im Forum auf Hilfe hoffe und auch daraus dazulernen kann
@AndyX
das ich das WAV gut kenne habe ich nicht behauptet, sondern keine Ahnung davon habe und nicht weiterkomme
dazu bin ich noch relativ Anfänger
@MVXA
also von der Aussage von super_castle distanziere ich mich energisch
mit meiner spöttischen Bemerkung an dich meinte ich eigentlich hauptsächlich, wenn ich bei PB Fragen nicht hier nachfragen kann, in welchem Forum dann.
Ich habe es auch nicht beleidigend gemeint, wenn du es aber doch so aufgefasst hast, mach ich nen Knicks und entschuldige mich natürlich auch dafür
Soweit zum Auslesen der Wave:
Code: Alles auswählen
Structure sWAVHead
lSignatur.l ; Sollte immer $46464952 sein ("RIFF")
lFileSize.l ; Größe der Datei
lRIFFType.l ; Sollte $45564157 sein
EndStructure
Structure sWAVChunk_FMT
wFormat.w ; Chunk Format
wChannels.w ; Anzahl der Kanäle (1 = mono, 2 = stereo)
lSamples.l ; Abtastrate pro Sekunde (z.B. 44100)
lBytesPerSec.l ; Sample-Rate * Block-Align
wBlockAlign.w ; Kanäle * bits/sample / 8
wBitsPerSample.w ; bits/sample (8 oder 16)
EndStructure
Structure sWAVChunk_DATA
pSampleData.l
EndStructure
Structure sWAVChunk
lChunkID.l ; Normalerweise 'fmt ' ($20746D66) oder 'data' ($61746164)
lSize.l ; Größe des Chunks
StructureUnion
tChunkFMT.sWAVChunk_FMT
tChunkDATA.sWAVChunk_DATA
EndStructureUnion
EndStructure
NewList WaveContent.sWAVChunk()
Procedure OpenWave(sDateiName.s)
DefType.sWAVHead tWAVHEAD
DefType.l lFileID
lFileID = ReadFile(#PB_Any, sDateiName)
If lFileID
ReadData(@tWAVHEAD, SizeOf(sWAVHead))
If tWAVHEAD\lSignatur = $46464952
If tWAVHEAD\lFileSize = (FileSize(sDateiName)-8)
ClearList(WaveContent())
While (Eof(lFileID) = #False)
AddElement(WaveContent())
ReadData(@WaveContent(), 8)
Select WaveContent()\lChunkID
Case ' tmf': Debug "TMF"
ReadData(@WaveContent()+8, WaveContent()\lSize)
Case 'atad': Debug "Data"
WaveContent()\tChunkDATA\pSampleData = AllocateMemory(WaveContent()\lSize)
ReadData(WaveContent()\tChunkDATA\pSampleData, WaveContent()\lSize)
Default: Debug "Unknown"
DeleteElement(WaveContent())
EndSelect
Wend
Else
Debug "Filesize mismatch"
EndIf
Else
Debug "Invalid Wave..."
EndIf
CloseFile(lFileID)
EndIf
EndProcedure
OpenWave("D:\m_pass.wav")
ForEach WaveContent()
If WaveContent()\lChunkID = 'atad'
CreateFile(1, "C:\Out.raw")
WriteData(WaveContent()\tChunkDATA\pSampleData, WaveContent()\lSize)
; WaveContent()\tChunkDATA\pSampleData ist Pointer zu Data mit Sample
; WaveContent()\lSize Größe der Daten
EndIf
Next
www.purebasic-lounge.dewenn ich bei PB Fragen nicht hier nachfragen kann, in welchem Forum dann.


- Froggerprogger
- Badmin
- Beiträge: 855
- Registriert: 08.09.2004 20:02
Zum WAV-Format gibt's hier Infos:
http://www.sonicspot.com/guide/wavefiles.html
Einfach mal durchlesen. An englischsprachige Beschreibungen kann man sich gar nicht früh genug gewöhnen. Außerdem wird dort verständlich alles zum WAV-Format erklärt, selbst so selten genutzte Features wie Marker, etc.
Und das unkomprimierte WAV-format ist tatsächlich supereinfach:
Z.b. bei 16 Bit stereo parse einfach bis zum data-chunk, der durch die Bytes 'data' eingeleitet wird. Danach folgen immer abwechselnd links/rechts jeweils ein 16-Bit-Samplewert. 0 ist 0, 32768 max, -32768 min.
Weitere Infos hinter obigem Link oder auf wotsit.org.
MVXA hat dafür ja auch schon einen schönen Source gepostet.
http://www.sonicspot.com/guide/wavefiles.html
Einfach mal durchlesen. An englischsprachige Beschreibungen kann man sich gar nicht früh genug gewöhnen. Außerdem wird dort verständlich alles zum WAV-Format erklärt, selbst so selten genutzte Features wie Marker, etc.
Und das unkomprimierte WAV-format ist tatsächlich supereinfach:
Z.b. bei 16 Bit stereo parse einfach bis zum data-chunk, der durch die Bytes 'data' eingeleitet wird. Danach folgen immer abwechselnd links/rechts jeweils ein 16-Bit-Samplewert. 0 ist 0, 32768 max, -32768 min.
Weitere Infos hinter obigem Link oder auf wotsit.org.
MVXA hat dafür ja auch schon einen schönen Source gepostet.
!UD2
Hab mich größten teils an das gehalten was auch in Wikipedia steht:
http://de.wikipedia.org/wiki/WAV_%28Format%29
Da steht auch noch mehr nützliches... Einfach mal rein schauen
.
Vielleicht bringt dir der Link jetzt mehr im Zusammenhang mit dem Code.
http://de.wikipedia.org/wiki/WAV_%28Format%29
Da steht auch noch mehr nützliches... Einfach mal rein schauen

Vielleicht bringt dir der Link jetzt mehr im Zusammenhang mit dem Code.
Bei so schlechten/bösen Posts muss ich mein Senf auch dazugeben:
1) Dies ist ein Forum, kein Lösungsbuch!
2) Warum darf jemand, der so beleidigend ist, hier überhaupt noch posten? /ban
...meine Meinung. Danke.
1) Dies ist ein Forum, kein Lösungsbuch!
2) Warum darf jemand, der so beleidigend ist, hier überhaupt noch posten? /ban
...meine Meinung. Danke.
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22