This shows you the differences between two versions of the page.

Link to this comparison view

roadmap:chunk_interleaving [2017/03/24 21:11] (current)
deva created
Line 1: Line 1:
 +[20:56:17] <​deva>​ Speaking of which; I have had an idea for further diskstreming optimisation in the way we store the samples in the files 
 +[20:56:23] <​deva>​ today we do sample interleaving 
 +[20:57:07] <​deva>​ [sample 1 ch 1][sample 1 ch 2]...[sample 2 ch 1][sample 2 ch 2]... and so on 
 +[20:57:36] <​deva>​ when we read those into memory we need to deinterleave them which is a rather straining on memory operations 
 +[20:57:48] <​deva>​ the engine works in "​chunks"​ of say 4k 
 +[20:58:12] <​deva>​ So if we instead make the files contain the samples "chunk interleaved"​ 
 +[20:58:46] <​deva>​ [sample 1 ch 1][sample 2 ch1]...[sample 4k ch1][sample 1 ch 2][sample 2 ch2]...[sample 4k ch2].... 
 +[20:59:06] <​deva>​ then we would save a lot of sample moving in memory when reading 
 +[20:59:47] <​deva>​ the downside would however be that it will not be possible to play the wav files  in a regular wav player because the samples would have the wrong ordering 
 +[20:59:59] <​deva>​ ... it would play but it would sound strange 
 +[21:01:21] <​deva>​ We would basically be making our own wav format for the kits with that approach, which I suppose might be ok in the name of The Holy Distreamer :p 
 +[21:01:28] <​deva>​ *Diskstreamer 
 +[21:02:12] <​deva>​ >>​Thou Shalt Never Spell The Name Of The Holy Diskstreamer Wrongly<<​ 
 +[21:02:30] *deva starts looking for a rock to climb under 
 +[21:04:19] <André Nusser.jabber>​ What happened here? :D 
 +[21:04:21] <André Nusser.jabber>​ Let me read. 
 +[21:04:58] <​deva>​ Sorry ... I got carried a bit away ;) 
 +[21:07:39] <André Nusser.jabber>​ :D 
 +[21:08:24] <André Nusser.jabber>​ Isn't there maybe a wav data format for that? 
 +[21:08:33] <​deva>​ I don't think so 
 +[21:08:57] <​deva>​ Basically we would need it to be wav anymore, but merely a header and an "​array"​ of floats 
 +[21:09:12] <​deva>​ Perhaps not even the header, but headers are usually a good idea :p 
 +[21:09:38] <​deva>​ We would no longer need libsndfile either 
 +[21:09:56] <​deva>​ And removing a depency is never a bad thing :-) 
roadmap/chunk_interleaving.txt · Last modified: 2017/03/24 21:11 by deva
GNU Free Documentation License 1.3
Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0