Skip to content

Commit

Permalink
feat: Behringer XR & Midas MR series Gain reduction. (rest of ch stri…
Browse files Browse the repository at this point in the history
…p to be implemented)
  • Loading branch information
olzzon authored and olzzon committed Apr 19, 2020
1 parent 589d936 commit c81a7f4
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 61 deletions.
72 changes: 48 additions & 24 deletions server/__tests__/__mocks__/parsedFullStore.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,76 +3,100 @@
{
"vuMeters": [
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
},
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
}
],
"fader": [
Expand Down
3 changes: 2 additions & 1 deletion server/__tests__/__mocks__/parsedSimpleStore.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
{
"vuMeters": [
{
"vuVal": 0
"vuVal": 0,
"reductionVal": 0
}
],
"fader": [
Expand Down
3 changes: 2 additions & 1 deletion server/__tests__/faderReducer.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,8 @@ describe('Test redux faderReducers actions', () => {
let vuMeters: IVuMeters[] = []
for (let i=0; i<24; i++) {
vuMeters.push({
vuVal: 0.75
vuVal: 0.75,
reductionVal: 0
})
newState.faders[0].vuMeters[i].vuVal = 0.75
}
Expand Down
4 changes: 2 additions & 2 deletions server/constants/mixerProtocols/behringerXrMaster.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export const BehringerXrMaster: IMixerProtocol = {
type: "s", min: 0, max: 1, zero: 0.75
},
{
mixerMessage: "/meters", value: "/meters/5",
mixerMessage: "/meters", value: "/meters/6",
type: "s", min: 0, max: 1, zero: 0.75
}
],
Expand All @@ -38,7 +38,7 @@ export const BehringerXrMaster: IMixerProtocol = {
fromMixer: {
CHANNEL_OUT_GAIN: [{ mixerMessage: '/ch/{channel}/mix/fader', value: 0, type: 'f', min: 0, max: 1, zero: 0.75}],
CHANNEL_VU: [{ mixerMessage: '/meters/1', value: 0, type: 'f', min: 0, max: 1, zero: 0.75}],
CHANNEL_VU_REDUCTION: [{ mixerMessage: '/meters/1', value: 0, type: 'f', min: 0, max: 1, zero: 0.75}],
CHANNEL_VU_REDUCTION: [{ mixerMessage: '/meters/6', value: 0, type: 'f', min: 0, max: 1, zero: 0.75}],
CHANNEL_NAME: [{ mixerMessage: '/ch/{channel}/config/name', value: 0, type: 'f', min: 0, max: 1, zero: 0.75}],
PFL: [emptyMixerMessage()],
NEXT_SEND: [emptyMixerMessage()],
Expand Down
28 changes: 2 additions & 26 deletions server/utils/mixerConnections/OscMixerConnection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { socketServer } from '../../expressHandler'

//Utils:
import { IMixerProtocol } from '../../constants/MixerProtocolInterface'
import { behringerMeter, behringerReductionMeter } from './productSpecific/behringer'
import { behringerXrMeter, behringerReductionMeter } from './productSpecific/behringerXr'
import { midasMeter } from './productSpecific/midas'
import { SET_OUTPUT_LEVEL, SET_AUX_LEVEL } from '../../reducers/channelActions'
import {
Expand Down Expand Up @@ -76,36 +76,12 @@ export class OscMixerConnection {
mixerOnline: true
});
logger.verbose("Received OSC message: " + message.address, {})
/// ONLY TEST!!!!
if (this.checkOscCommand(message.address, this.mixerProtocol.channelTypes[0].fromMixer
.CHANNEL_VU_REDUCTION[0].mixerMessage)){
if (state.settings[0].mixerProtocol.includes('behringer')) {
behringerReductionMeter(message.args);
} else if (state.settings[0].mixerProtocol.includes('midas')) {
midasMeter(message.args);
} else {
let ch = message.address.split("/")[this.cmdChannelIndex];
store.dispatch({
type:SET_VU_REDUCTION_LEVEL,
channel: state.channels[0].channel[ch - 1].assignedFader,
level: message.args[0]
});
socketServer.emit(
SOCKET_SET_VU_REDUCTION,
{
faderIndex: state.channels[0].channel[ch - 1].assignedFader,
level: message.args[0]
}
)
}
}



if (this.checkOscCommand(message.address, this.mixerProtocol.channelTypes[0].fromMixer
.CHANNEL_VU[0].mixerMessage)){
if (state.settings[0].mixerProtocol.includes('behringer')) {
behringerMeter(message.args);
behringerXrMeter(message.args);
} else if (state.settings[0].mixerProtocol.includes('midas')) {
midasMeter(message.args);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ import * as DEFAULTS from '../../../constants/DEFAULTS';
import { SET_VU_LEVEL, SET_VU_REDUCTION_LEVEL } from '../../../reducers/faderActions'
import { SOCKET_SET_VU, SOCKET_SET_VU_REDUCTION } from '../../../constants/SOCKET_IO_DISPATCHERS';

const DATA_OFFSET = 4

export const behringerMeter = (message: any) => {
export const behringerXrMeter = (message: any) => {

//Test data from Behringer:
//message = [40, 0, 0, 0, 133, 157, 183, 156, 72, 154, 101, 157, 229, 162, 241, 158, 253, 162, 156, 162, 131, 162, 253, 162, 81, 162, 29, 162, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 223, 157, 223, 157, 223, 157, 223, 157];
Expand All @@ -15,7 +16,7 @@ export const behringerMeter = (message: any) => {
let dataview = new DataView(uint8bytes.buffer);

for (let i=0; i < state.settings[0].numberOfChannelsInType[0]; i++) {
let level = (dataview.getInt16(2*(i+2) , true) + 8000)/8000
let level = (dataview.getInt16(DATA_OFFSET + 2*(i) , true) + 8000)/8000
store.dispatch({
type:SET_VU_LEVEL,
channel: i,
Expand All @@ -34,18 +35,18 @@ export const behringerMeter = (message: any) => {
export const behringerReductionMeter = (message: any) => {

//Test data from Behringer:
//message = [40, 0, 0, 0, 133, 157, 183, 156, 72, 154, 101, 157, 229, 162, 241, 158, 253, 162, 156, 162, 131, 162, 253, 162, 81, 162, 29, 162, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 0, 128, 223, 157, 223, 157, 223, 157, 223, 157];
//message =

let uint8bytes = Uint8Array.from(message[0]);
let dataview = new DataView(uint8bytes.buffer);
let uint8bytes = Uint8Array.from(message[0])
let dataview = new DataView(uint8bytes.buffer)

for (let i=0; i < state.settings[0].numberOfChannelsInType[0]; i++) {
let level = (dataview.getInt16(2*(i+2) , true) + 8000)/8000
let level = 1 - (dataview.getInt16(DATA_OFFSET + 2*(i+16) , true)+8000)/8000
store.dispatch({
type:SET_VU_REDUCTION_LEVEL,
channel: i,
level: level
});
})
socketServer.emit(
SOCKET_SET_VU_REDUCTION,
{
Expand Down

0 comments on commit c81a7f4

Please sign in to comment.