more wave file parsing WIP -> weiter in OF

This commit is contained in:
Sebastian
2025-06-06 11:41:35 +02:00
parent db463c5b8c
commit ac9d4b5e6b
2 changed files with 26 additions and 16 deletions

View File

@ -424,20 +424,5 @@ void setup1(){
}
void loop1(){
if(streams_loaded) {
for (int i = 0; i < NSTREAMS; i++) {
if(!ringbuffer[i].isFull()){
int cnt = 0;
while (!ringbuffer[i].isFull() && cnt < 10000) {
uint8_t samplebyte[2];
streams[i].read(samplebyte, 2);
if(!streams[i].available()) streams[i].seek(44, SeekSet);
int16_t sample = (samplebyte[1] << 8) + samplebyte[0];
ringbuffer[i].push(sample);
cnt++;
}
}
}
}
}

View File

@ -64,6 +64,18 @@ struct WaveFile{
return true;
}
bool readblock(int16_t samplebuffer[]){
uint8_t samplebyte[blockalign];
file.read(samplebyte, blockalign);
if(!file.available() && loop) file.seek(44, SeekSet);
int16_t sample = (samplebyte[1] << 8) + samplebyte[0];
ringbuffer[i].push(sample);
}
bool loop = false;
uint16_t format = 0;
uint32_t length = 0;
uint16_t channels = 0;
@ -98,4 +110,17 @@ class WaveStream{
private:
WaveFile wavefiles[8];
void stream(){
for (int i = 0; i < NSTREAMS; i++) {
if(!wavefiles[i].buffer.isFull()){
int cnt = 0;
while (!wavefiles[i].buffer.isFull() && cnt < 10000) {
wavefiles[i].readblock(samplebyte);
cnt++;
}
}
}
}
};