Skip to content

Commit

Permalink
fix: Studer update faders with log scale
Browse files Browse the repository at this point in the history
  • Loading branch information
olzzon authored and olzzon committed Apr 2, 2020
1 parent 722dc5d commit a6e1b24
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 15 deletions.
20 changes: 13 additions & 7 deletions server/utils/mixerConnections/StuderMixerConnection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ export class StuderMixerConnection {
let hexArray = levelMessage.split(' ')
let buf = new Buffer(hexArray.map((val:string) => { return parseInt(val, 16) }))
this.emberConnection._client.socket.write(buf)
console.log("Send HEX: " + levelMessage)
logger.verbose("Send HEX: " + levelMessage)
}

sendOutRequest(mixerMessage: string, channel: number) {
Expand All @@ -216,21 +216,27 @@ export class StuderMixerConnection {
}

updateOutLevel(channelIndex: number) {
let channelType = state.channels[0].channel[channelIndex].channelType;
let channelTypeIndex = state.channels[0].channel[channelIndex].channelTypeIndex;
let protocol = this.mixerProtocol.channelTypes[channelType].toMixer.CHANNEL_OUT_GAIN[0]
let level = (state.channels[0].channel[channelIndex].outputLevel - protocol.min) * (protocol.max - protocol.min)
let outputlevel = state.channels[0].channel[channelIndex].outputLevel
let level = 20 * Math.log((1.3*outputlevel)/0.775)
if (level < -90) {
level = -90
}
// console.log('Log level :', level)

this.sendOutLevelMessage(
channelTypeIndex+1,
level,
);
}

updateFadeIOLevel(channelIndex: number, outputLevel: number) {
let channelType = state.channels[0].channel[channelIndex].channelType;
let channelTypeIndex = state.channels[0].channel[channelIndex].channelTypeIndex;
let protocol = this.mixerProtocol.channelTypes[channelType].toMixer.CHANNEL_OUT_GAIN[0]
let level = (outputLevel - protocol.min) * (protocol.max - protocol.min)
let level = 20 * Math.log((1.3*outputLevel)/0.775)
if (level < -90) {
level = -90
}
// console.log('Log level :', level)

this.sendOutLevelMessage(
channelTypeIndex+1,
Expand Down
24 changes: 16 additions & 8 deletions server/utils/mixerConnections/StuderVistaMixerConnection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ export class StuderVistaMixerConnection {
(channelVal & 0x000000ff),
])

//console.log('Fader value :', Math.floor(value))
console.log('Fader value :', Math.floor(value))
let BERwriter = new BER.Writer()

BERwriter.startSequence();
Expand All @@ -199,7 +199,7 @@ export class StuderVistaMixerConnection {
let hexArray = levelMessage.split(' ')
let buf = new Buffer(hexArray.map((val:string) => { return parseInt(val, 16) }))
this.emberConnection._client.socket.write(buf)
//console.log("Send HEX: " + levelMessage)
logger.verbose("Send HEX: " + levelMessage)
}

sendOutRequest(mixerMessage: string, channel: number) {
Expand All @@ -218,28 +218,36 @@ export class StuderVistaMixerConnection {
}

updateOutLevel(channelIndex: number) {
let channelType = state.channels[0].channel[channelIndex].channelType;
let channelTypeIndex = state.channels[0].channel[channelIndex].channelTypeIndex;
let protocol = this.mixerProtocol.channelTypes[channelType].toMixer.CHANNEL_OUT_GAIN[0]
let level = state.channels[0].channel[channelIndex].outputLevel * (protocol.max - protocol.min) - Math.abs(protocol.min)
let outputlevel = state.channels[0].channel[channelIndex].outputLevel
let level = 20 * Math.log((1.3*outputlevel)/0.775)
if (level < -90) {
level = -90
}
// console.log('Log level :', level)

this.sendOutLevelMessage(
channelTypeIndex+1,
level,
);
}

updateFadeIOLevel(channelIndex: number, outputLevel: number) {
let channelType = state.channels[0].channel[channelIndex].channelType;
let channelTypeIndex = state.channels[0].channel[channelIndex].channelTypeIndex;
let protocol = this.mixerProtocol.channelTypes[channelType].toMixer.CHANNEL_OUT_GAIN[0]
let level = outputLevel * (protocol.max - protocol.min) - Math.abs(protocol.min)
let level = 20 * Math.log((1.3*outputLevel)/0.775)
if (level < -90) {
level = -90
}
// console.log('Log level :', level)

this.sendOutLevelMessage(
channelTypeIndex+1,
level
)
}



updatePflState(channelIndex: number) {
let channelType = state.channels[0].channel[channelIndex].channelType;
let channelTypeIndex = state.channels[0].channel[channelIndex].channelTypeIndex;
Expand Down

0 comments on commit a6e1b24

Please sign in to comment.