Skip to content

Commit

Permalink
fix: revert Midas metering back to code from last release. As meterin…
Browse files Browse the repository at this point in the history
…g comes in "all channels at once", so reference to Channel is way more performant.
  • Loading branch information
olzzon committed Sep 1, 2023
1 parent 2741f1c commit 546367b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 12 deletions.
4 changes: 2 additions & 2 deletions server/src/utils/mixerConnections/OscMixerConnection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,6 @@ export class OscMixerConnection {
.CHANNEL_VU?.[0].mixerMessage
)
) {
const assignedFaderIndex = this.getAssignedFaderIndex(message.address.split('/')[this.cmdChannelIndex])
if (
state.settings[0].mixers[
this.mixerIndex
Expand All @@ -141,8 +140,9 @@ export class OscMixerConnection {
].mixerProtocol.includes('midas')
) {
this.resetMixerTimeout()
midasMeter(this.mixerIndex, message.args, assignedFaderIndex)
midasMeter(this.mixerIndex, message.args)
} else {
const assignedFaderIndex = this.getAssignedFaderIndex(message.address.split('/')[this.cmdChannelIndex])
let ch =
message.address.split('/')[this.cmdChannelIndex]
sendVuLevel(
Expand Down
24 changes: 14 additions & 10 deletions server/src/utils/mixerConnections/productSpecific/midas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,36 +6,40 @@ const calcVuLevel = (level: number) => {
return Math.log(level) / Math.log(600) + 1
}

export const midasMeter = (mixerIndex: number, message: any, faderIndex: number) => {
export const midasMeter = (mixerIndex: number, message: any) => {
const DATA_OFFSET = 4
let uint8bytes = Uint8Array.from(message[0])
let dataview = new DataView(uint8bytes.buffer)
let level: number
let reductionLevel: number
let assignedFader: number
let numberOfChannels =
state.settings[0].mixers[mixerIndex].numberOfChannelsInType[0]

for (let ch = 0; ch < numberOfChannels; ch++) {
for (let i = 0; i < numberOfChannels; i++) {
assignedFader =
state.channels[0].chMixerConnection[mixerIndex].channel[i]
.assignedFader
if (
faderIndex >= 0 &&
faderIndex < state.settings[0].numberOfFaders
assignedFader >= 0 &&
assignedFader < state.settings[0].numberOfFaders
) {
level = calcVuLevel(dataview.getFloat32(4 * ch + DATA_OFFSET, true))
level = calcVuLevel(dataview.getFloat32(4 * i + DATA_OFFSET, true))
reductionLevel = dataview.getFloat32(
4 * (ch + 64) + DATA_OFFSET,
4 * (i + 64) + DATA_OFFSET,
true
)
let vuIndex: number = state.faders[0].fader[
faderIndex
assignedFader
].assignedChannels?.findIndex((assigned) => {
return (
assigned.mixerIndex === mixerIndex &&
assigned.channelIndex === ch
assigned.channelIndex === i
)
})
if (vuIndex === -1) vuIndex = 0
sendVuLevel(faderIndex, VuType.Channel, vuIndex, level)
sendVuLevel(faderIndex, VuType.Reduction, 0, 1 - reductionLevel)
sendVuLevel(assignedFader, VuType.Channel, vuIndex, level)
sendVuLevel(assignedFader, VuType.Reduction, 0, 1 - reductionLevel)
}
}
}

0 comments on commit 546367b

Please sign in to comment.