GWBasic/wave_stream

Support 5.1 and other channel layouts

Closed this issue · 2 comments

This website explains the channel layout of 5.1 wav files: https://www.jensign.com/bdp95/7dot1voiced/index.html

It then links to a more detailed document from Microsoft about varying channel layout. (IE, how to disambiguate from 3.1 versus quad: https://learn.microsoft.com/en-us/previous-versions/windows/hardware/design/dn653308(v=vs.85)?redirectedfrom=MSDN

One important change needed in wave_stream is supporting channelMask

Converted the headers to handle WAVEFORMATEX. Currently refactoring so that reading/writing works with a SamplesByChannel struct that specifies the sample for each channel by speaker location instead of numerical index.

Writing is almost completed (just need to update tests.) Need to update reading.

Started updating the example: GWBasic/wave_stream_example#1

Changes needed:

  • Need to test a proper 5.1 wav in Kodi
  • Need to update sample code in lib.rs
  • Need to publish a new revision to crates.io
  • Need to update the sample