| |
— | roadmap:chunk_interleaving [2017/03/24 21:11] (current) – created deva |
---|
| <code> |
| [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 :-) |
| </code> |