WIP midi and audio channel config

This commit is contained in:
Nuwan 2023-07-04 12:56:18 +05:30
parent dd4f62cb07
commit 917d8f1a8e
2 changed files with 44 additions and 40 deletions

View File

@ -110,7 +110,7 @@ ConfigureTracksStore = @ConfigureTracksStore
</div>
<div className="instrument-selection">
<h3>Instrument</h3>
<select className="instrument-pick" name="instrument" onChange={() => {this.instrumentSelected()}} value={selectedInstrument} disabled={instrumentDisabled}>
<select className="instrument-pick" name="instrument" onChange={this.instrumentSelected} value={selectedInstrument} disabled={instrumentDisabled}>
{instruments}
</select>
</div>
@ -188,7 +188,7 @@ ConfigureTracksStore = @ConfigureTracksStore
</div>
<div className="instrument-selection">
<h3>Instrument</h3>
<select className="instrument-pick" name="instrument" onChange={async () => { await this.instrumentSelected()}} value={selectedInstrument} disabled={instrumentDisabled}>
<select className="instrument-pick" name="instrument" onChange={this.instrumentSelected} value={selectedInstrument} disabled={instrumentDisabled}>
{instruments}
</select>
</div>
@ -293,7 +293,7 @@ ConfigureTracksStore = @ConfigureTracksStore
# instrumentId = $select.val()
# ConfigureTracksActions.associateInstrumentWithTrack(instrumentId)
instrumentSelected: `async function(e) {
instrumentSelected: `function(e) {
const $root = $(this.getDOMNode());
const $select = $root.find('.instrument-pick');
@ -365,7 +365,7 @@ ConfigureTracksStore = @ConfigureTracksStore
# $root.find('select.instrument-pick').unbind('change').change(@instrumentSelected)
# $root.find('select.vsts').unbind('change').change(@vstsChanged)
componentDidUpdate: `async function() {
componentDidUpdate: `function() {
const $root = $(this.getDOMNode());
const $manageAudioPlugins = $root.find('.manage-audio-plugins');
@ -379,7 +379,8 @@ ConfigureTracksStore = @ConfigureTracksStore
context.JK.dropdown($root.find('select'));
$root.find('select.input-selectors').unbind('change').change(this.inputChanged);
$root.find('select.instrument-pick').unbind('change').change(this.instrumentSelected);
return $root.find('select.vsts').unbind('change').change(this.vstsChanged);
$root.find('select.vsts').unbind('change').change(this.vstsChanged);
$root.find('select.midi-select').unbind('change').change(this.updateMidiAssociations);
}
}`
@ -426,7 +427,6 @@ ConfigureTracksStore = @ConfigureTracksStore
midiInterfaceChanged: (e) ->
@updateMidiAssociations()
updateMidiAssociations: (e) ->

View File

@ -351,6 +351,7 @@ void removeSearchPath(int typeId, QString pathToRemove);
findMidiTrack: () ->
midi = null
console.log("__DEBUG__ @trackAssignments", @trackAssignments)
for assignment in @trackAssignments.inputs.assigned
if assignment.assignment == MIDI_TRACK
midi = assignment
@ -600,6 +601,7 @@ void removeSearchPath(int typeId, QString pathToRemove);
# context.JK.Banner.showAlert('Unable to save assignments. ' + result);
onAssociateInputsWithTrack: `async function(inputId1, inputId2) {
alert('onAssociateInputsWithTrack')
if (this.trackNumber == null) { return; }
for (let inputs of Array.from(this.editingTrack)) {
@ -646,7 +648,6 @@ void removeSearchPath(int typeId, QString pathToRemove);
# logger.debug("synced midi track with #{instrumentId}")
# midi.instrument_id = instrumentId
# if(!result || result.length == 0)
# else
@ -660,12 +661,9 @@ void removeSearchPath(int typeId, QString pathToRemove);
# else
# context.JK.Banner.showAlert('Unable to save assignments. ' + result);
onAssociateInstrumentWithTrack: `async function(instrumentId) {
onAssociateInstrumentWithTrack: `function(instrumentId) {
if (this.trackNumber == null) { return; }
console.log("context.jamClient.TrackSetInstrument(trackNumber, track.instrument_id)", this.trackNumber, instrumentId);
let clientInstrumentId = null;
if ((instrumentId !== null) && (instrumentId !== '')) {
clientInstrumentId = context.JK.instrument_id_to_instrument[instrumentId].client_id;
@ -673,33 +671,37 @@ void removeSearchPath(int typeId, QString pathToRemove);
clientInstrumentId = 0;
}
await context.jamClient.TrackSetInstrument(this.trackNumber, clientInstrumentId);
if (this.trackNumber === MIDI_TRACK) {
console.log("checking midi track for track instrument synchronization");
// keep artificial midi track in sync
const midi = this.findMidiTrack();
if (midi != null) {
logger.debug('synced midi track with ' + instrumentId);
midi.instrument_id = instrumentId;
const self = this
context.jamClient.TrackSetInstrument(self.trackNumber, clientInstrumentId).then(function(result){
console.log("__DEBUG__ TrackSetInstrument result, trackNumber, MIDI_TRACK", result, self.trackNumber, MIDI_TRACK);
if (self.trackNumber == MIDI_TRACK) {
console.log("checking midi track for track instrument synchronization");
// keep artificial midi track in sync
const midi = self.findMidiTrack();
console.log("__DEBUG__ midi", midi)
if (midi != null) {
logger.debug('synced midi track with ' + instrumentId);
midi.instrument_id = instrumentId;
context.jamClient.TrackSaveAssignments().then(function(result){
if(result.process_status !== 'Success') {
console.log("__DEBUG__ Unable to save1", result)
context.JK.Banner.showAlert('Unable to save assignments.' + result);
}
}).catch(function(){
context.JK.Banner.showAlert('Unable to save assignments.');
})
}
}
}
if(!result || (result.length === 0)) {
} else {
context.JK.Banner.showAlert('Unable to save assignments. ' + result);
}
var result = await context.jamClient.TrackSaveAssignments();
if(!result || (result.length === 0)) {
} else {
return context.JK.Banner.showAlert('Unable to save assignments. ' + result);
}
if(result.process_status !== 'Success') {
context.JK.Banner.showAlert('Unable to save assignments. ' + result);
}
}).catch(function(){
context.JK.Banner.showAlert('Unable to save assignments.');
})
}`
# onAssociateVSTWithTrack: (vst) ->
@ -731,7 +733,7 @@ void removeSearchPath(int typeId, QString pathToRemove);
# )), 250)
onAssociateVSTWithTrack: `async function(vst) {
alert('onAssociateVSTWithTrack')
if (!this.hasVst) {
logger.debug("onAssociateVSTWithTrack skipped due to no VST");
return;
@ -996,15 +998,17 @@ void removeSearchPath(int typeId, QString pathToRemove);
# )), 250)
onAssociateMIDIWithTrack: `async function(midiInterface) {
alert('onAssociateMIDIWithTrack')
this.trackNumber = MIDI_TRACK;
if ((midiInterface == null) || (midiInterface === '')) {
logger.debug('disabling midiInterface:'+midiInterface+', track:' +this.trackNumber - 1);
await context.jamClient.VST_EnableMidiForTrack(this.trackNumber - 1, false, 0);
res1 = await context.jamClient.VST_EnableMidiForTrack(this.trackNumber - 1, false, 0);
console.log("onAssociateMIDIWithTrack res1", res1)
} else {
logger.debug('enabling midiInterface:'+midiInterface+', track:' +this.trackNumber - 1);
await context.jamClient.VST_EnableMidiForTrack(this.trackNumber - 1, true, midiInterface);
res2 = await context.jamClient.VST_EnableMidiForTrack(this.trackNumber - 1, true, midiInterface);
console.log("onAssociateMIDIWithTrack res2", res2)
}
setTimeout((async () => (