Skip to content

Commit

Permalink
fix: Midas - Behringer X32 metering update correct when musing ultipl…
Browse files Browse the repository at this point in the history
…e mixers with Vumeters
  • Loading branch information
olzzon authored and olzzon committed Oct 13, 2020
1 parent cb59a70 commit 0b628f0
Showing 1 changed file with 23 additions and 36 deletions.
59 changes: 23 additions & 36 deletions server/utils/mixerConnections/productSpecific/midas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,59 +6,46 @@ import {
SET_VU_LEVEL,
} from '../../../reducers/faderActions'
import { SOCKET_SET_ALL_VU } from '../../../constants/SOCKET_IO_DISPATCHERS'
import { faders, IVuMeters } from '../../../reducers/fadersReducer'

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 vuMeters: number[] = new Array(Number(state.settings[0].numberOfFaders))
let vuReductionMeters: number[] = new Array(
Number(state.settings[0].numberOfFaders)
)
let level: number
let reductionLevel: number
let numberOfChannels =
state.settings[0].mixers[mixerIndex].numberOfChannelsInType[0]

for (let i = 0; i < numberOfChannels; i++) {
level = dataview.getFloat32(4 * i + DATA_OFFSET, true)
reductionLevel = dataview.getFloat32(4 * (i + 64) + DATA_OFFSET, true)

store.dispatch({
type: SET_VU_LEVEL,
channel:
state.channels[0].chConnection[mixerIndex].channel[i]
.assignedFader,
level: level,
})
reductionLevel = 1 - reductionLevel
store.dispatch({
type: SET_VU_REDUCTION_LEVEL,
channel:
state.channels[0].chConnection[mixerIndex].channel[i]
.assignedFader,
level: reductionLevel,
})
if (
vuMeters[
state.channels[0].chConnection[mixerIndex].channel[i]
.assignedFader
] === undefined &&
state.channels[0].chConnection[mixerIndex].channel[i]
.assignedFader < state.settings[0].numberOfFaders
) {
vuMeters[
state.channels[0].chConnection[mixerIndex].channel[
i
].assignedFader
] = level
vuReductionMeters[
state.channels[0].chConnection[mixerIndex].channel[
i
].assignedFader
] = reductionLevel
assignedFader =
state.channels[0].chConnection[mixerIndex].channel[i].assignedFader
if (assignedFader < state.settings[0].numberOfFaders) {
store.dispatch({
type: SET_VU_LEVEL,
channel: assignedFader,
level: level,
})
reductionLevel = 1 - reductionLevel
store.dispatch({
type: SET_VU_REDUCTION_LEVEL,
channel: assignedFader,
level: reductionLevel,
})
}
}
state.faders[0].vuMeters.forEach((meter: IVuMeters, index: number) => {
vuMeters[index] = meter.vuVal
vuReductionMeters[index] = meter.reductionVal
})
console.log('VU Val', vuMeters[0])
socketServer.emit(SOCKET_SET_ALL_VU, {
vuMeters: vuMeters,
vuReductionMeters: vuReductionMeters,
Expand Down

0 comments on commit 0b628f0

Please sign in to comment.