![]() ![]() One example is the Instrument chunk versus the Sampler chunk. ![]() The net result is that there are far too many chunks that may be found in a WAVE file - many of them duplicating the same information found in other chunks (but in an unnecessarily different way) simply because there have been too many programmers who took too many liberties with unilaterally adding their own additions to the WAVE format without properly coming to a concensus of what everyone else needed (and therefore it encouraged an "every man for himself" attitude toward adding things to this "standard"). Unlike with the AIFF standard which was mostly designed by a small, coordinated group, the WAVE format has had all manner of much-too-independent, uncoordinated aberrations inflicted upon it. The WAVE format is sort of a bastardized standard that was concocted by too many "cooks" who didn't properly coordinate the addition of "ingredients" to the "soup". I've also thought a few times about adding a useFilesystem(FS &filesystem) function, each instance could be told to access something other than just the SD card. I believe the library is still only caching 1 or 2 sectors. Sadly, we don't have an API (as far as I know) to ask SdFat to pre-read data. If all instances have large enough buffers, this could allow many to play simultaneously. Then we only suffer read latency once and get all the data with a fast many-sector read. ![]() Maybe a list of all the instances could be managed in a way where the 1 instance most in need of data would do a large read. #WAVEPLAYER 2.0 BIT RATE UPDATE#Ideally, on each update (128 audio samples) only 1 instance would attempt to read from the SD card. #WAVEPLAYER 2.0 BIT RATE CODE#This does mean the code is a little more complex to deal with using the added buffer and original buffer, but it's not too difficult or a lot of overhead for a nice API which lets people choose how much extra buffer memory.Īnother important piece is coordination between all wav player instances to schedule their use of the SD card. I would like to see the addMemoryForRead(buffer, size) function added to the public API, basically the same as we have for HardwareSerial. Larger buffer memory is the main thing needed to support playing multiple files simultaneously from modern SD cards. I've also considered rewriting the wav file player. ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |