On Saturday, 2 September 2017 at 00:43:00 UTC, Nicholas Wilson wrote:
On Friday, 1 September 2017 at 22:10:43 UTC, Biotronic wrote:
On Friday, 1 September 2017 at 19:39:14 UTC, EntangledQuanta wrote:
Is there a way to create a 24-bit int? One that for all practical purposes acts as such? This is for 24-bit stuff like audio. It would respect endianness, allow for arrays int24[] that work properly, etc.

I haven't looked at endianness beyond it working on my computer. If you have special needs in that regard, consider this a starting point:


struct int24 {
    ubyte[3] _payload;

    this(int x) {
        value = x;
    }

    ...
}

--
  Biotronic

You may also want to put an align(1) on it so that you dont waste 25% of the allocated memory in an array of int24's

The whole point is so that there is no wasted space, so if it requires that then it's not a waste of space but a bug.

Audio that is in24 is 3 bytes per sample, not 4. Every 3 bytes are a sample, not every 3 out of 4.

Basically a byte[] cast to a int24 array should be 1/3 the size and every 3 bytes are the same as an int24.

Thanks for pointing this out if it is necessary.


Reply via email to