I am running some tests in DaVinci and its channel layout on adaptive tracks.
When adding 5.1 audio to a 16-channel track (channel by channel), I get volume in channels as follow:
0 - Left
1 - Right
2 - C
3 - LFE
4 - ?
5 - ?
6 - ?
7 - ?
8 - Lss
9 - Rss
The same way, if I make the track 18-20 channel, I get the following results:
0 - Left
1 - Right
2 - C
3 - LFE
4 - Left Surround
5 - Right Surround
6 - ?
7 - ?
8 - ?
9 - ?
Mind you, both the 16 channel and the 18-20 channel track report EXACTLY the same characteristics
Type: Uknown,
Layout: L R C Lfe Ls Rs Lc Rc Lss Rss Tfl Tfr Trl Trr Tsl Tsr
And yet, channels 4 and 5 go through Lss Rss if the track is 16 channels, and through Ls Rs if it’s 18-20
So either I am doing something wrong (doubt it? In all DAWs it works fine), or there’s a bug in the channel layout when it comes to DaVinci.
Any help would be appreciated.
The code I tested on to monitor each channel’s volume, in processBlock:
auto lol = getChannelLayoutOfBus(true, 0);
auto tracks = lol.getChannelTypes();
DBG(lol.getSpeakerArrangementAsString());
DBG(lol.getDescription());
DBG(
"0 " << buffer.getMagnitude(lol.getChannelIndexForType(tracks[0]), 0, buffer.getNumSamples()) << " || " <<
"1 " << buffer.getMagnitude(lol.getChannelIndexForType(tracks[1]), 0, buffer.getNumSamples()) << " || " <<
"2 " << buffer.getMagnitude(lol.getChannelIndexForType(tracks[2]), 0, buffer.getNumSamples()) << " || " <<
"3 " << buffer.getMagnitude(lol.getChannelIndexForType(tracks[3]), 0, buffer.getNumSamples()) << " || " <<
"4 " << buffer.getMagnitude(lol.getChannelIndexForType(tracks[4]), 0, buffer.getNumSamples()) << " || " <<
"5 " << buffer.getMagnitude(lol.getChannelIndexForType(tracks[5]), 0, buffer.getNumSamples()) << " || " <<
"6 " << buffer.getMagnitude(lol.getChannelIndexForType(tracks[6]), 0, buffer.getNumSamples()) << " || " <<
"7 " << buffer.getMagnitude(lol.getChannelIndexForType(tracks[7]), 0, buffer.getNumSamples()) << " || " <<
"8 " << buffer.getMagnitude(lol.getChannelIndexForType(tracks[8]), 0, buffer.getNumSamples()) << " || " <<
"9 " << buffer.getMagnitude(lol.getChannelIndexForType(tracks[9]), 0, buffer.getNumSamples()) << " || "
);
Any ideas?