Update parsing and serialising
This commit is contained in:
@@ -56,7 +56,7 @@ function build_patch(patch) {
|
|||||||
arp_on_off: patch[32] & 0x80,
|
arp_on_off: patch[32] & 0x80,
|
||||||
arp_latch: patch[32] & 0x40,
|
arp_latch: patch[32] & 0x40,
|
||||||
arp_target: getBits(patch[32], 4, 5),
|
arp_target: getBits(patch[32], 4, 5),
|
||||||
arp_key_sync: patch[32] & 0x00,
|
arp_key_sync: patch[32] & 0x01,
|
||||||
arp_type: getBits(patch[33], 0, 3),
|
arp_type: getBits(patch[33], 0, 3),
|
||||||
arp_range: getBits(patch[33], 4, 7),
|
arp_range: getBits(patch[33], 4, 7),
|
||||||
arp_gate_time: patch[34],
|
arp_gate_time: patch[34],
|
||||||
|
|||||||
@@ -1,7 +1,20 @@
|
|||||||
import { fromBitArray, buildByte } from '../utils/functions';
|
import { fromBitArray, buildByte } from '../utils/functions';
|
||||||
|
|
||||||
export default function serialise(patch) {
|
export default function serialise(patch) {
|
||||||
serialise_patch(patch[0]);
|
const data = new Array.from(serialise_patch(patch[0]));
|
||||||
|
switch (patch[0].voice_mode) {
|
||||||
|
default:
|
||||||
|
case 'Single':
|
||||||
|
data.append(serialise_timbre(1, patch[1]));
|
||||||
|
break;
|
||||||
|
case 'Multiple':
|
||||||
|
data.append(serialise_timbre(1, patch[1]), serialise_timbre(2, patch[2]));
|
||||||
|
break;
|
||||||
|
case 'Vocoder':
|
||||||
|
data.append(serialise_vocoder(patch[1]));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
console.log(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
function serialise_patch(patch) {
|
function serialise_patch(patch) {
|
||||||
@@ -48,7 +61,101 @@ function serialise_patch(patch) {
|
|||||||
patch.arp_swing,
|
patch.arp_swing,
|
||||||
patch.keyboard_octave
|
patch.keyboard_octave
|
||||||
);
|
);
|
||||||
console.log(patch_array);
|
return patch_array;
|
||||||
}
|
}
|
||||||
|
|
||||||
function serialise_timbre(timbre) {}
|
function serialise_timbre(num, timbre) {
|
||||||
|
const array = [
|
||||||
|
timbre[`t${num}_midi_channel`],
|
||||||
|
buildByte(
|
||||||
|
{ value: timbre[`t${num}_assign_mode`], start: 6 },
|
||||||
|
{ value: timbre[`t${num}_eg_2_reset`], start: 5 },
|
||||||
|
{ value: timbre[`t${num}_eg_1_reset`], start: 4 },
|
||||||
|
{ value: timbre[`t${num}_trigger_mode`], start: 3 },
|
||||||
|
{ value: timbre[`t${num}_key_priority`], start: 0 }
|
||||||
|
),
|
||||||
|
timbre[`t${num}_unison_detune`],
|
||||||
|
timbre[`t${num}_tune`],
|
||||||
|
timbre[`t${num}_bend_range`],
|
||||||
|
timbre[`t${num}_transpose`],
|
||||||
|
timbre[`t${num}_vibrato_int`],
|
||||||
|
timbre[`t${num}_osc_1_wave`],
|
||||||
|
timbre[`t${num}_osc_1_ctrl_1`],
|
||||||
|
timbre[`t${num}_osc_1_ctrl_2`],
|
||||||
|
timbre[`t${num}_osc_1_dgws`],
|
||||||
|
0,
|
||||||
|
buildByte(
|
||||||
|
{ value: timbre[`t${num}_osc_2_mod_select`], start: 4 },
|
||||||
|
{ value: timbre[`t${num}_osc_2_wave`], start: 0 }
|
||||||
|
),
|
||||||
|
timbre[`t${num}_osc_2_semitone`],
|
||||||
|
timbre[`t${num}_osc_2_tune`],
|
||||||
|
timbre[`t${num}_portamento`],
|
||||||
|
timbre[`t${num}_osc_1_level`],
|
||||||
|
timbre[`t${num}_osc_2_level`],
|
||||||
|
timbre[`t${num}_noise_level`],
|
||||||
|
timbre[`t${num}_filter_type`],
|
||||||
|
timbre[`t${num}_filter_cutoff`],
|
||||||
|
timbre[`t${num}_filter_resonance`],
|
||||||
|
timbre[`t${num}_filter_eg_intensity`],
|
||||||
|
timbre[`t${num}_filter_vel_sense`],
|
||||||
|
timbre[`t${num}_filter_key_track`],
|
||||||
|
timbre[`t${num}_amp_level`],
|
||||||
|
timbre[`t${num}_amp_panpot`],
|
||||||
|
buildByte(
|
||||||
|
{ value: timbre[`t${num}_amp_switch`], start: 6 },
|
||||||
|
{ value: timbre[`t${num}_amp_distortion`], start: 0 }
|
||||||
|
),
|
||||||
|
timbre[`t${num}_amp_vel_sense`],
|
||||||
|
timbre[`t${num}_amp_key_track`],
|
||||||
|
timbre[`t${num}_eg_1_attack`],
|
||||||
|
timbre[`t${num}_eg_1_decay`],
|
||||||
|
timbre[`t${num}_eg_1_sustain`],
|
||||||
|
timbre[`t${num}_eg_1_release`],
|
||||||
|
timbre[`t${num}_eg_2_attack`],
|
||||||
|
timbre[`t${num}_eg_2_decay`],
|
||||||
|
timbre[`t${num}_eg_2_sustain`],
|
||||||
|
timbre[`t${num}_eg_2_release`],
|
||||||
|
buildByte(
|
||||||
|
{ value: timbre[`t${num}_lfo_1_key_sync`], start: 4 },
|
||||||
|
{ value: timbre[`t${num}_lfo_1_wave`], start: 0 }
|
||||||
|
),
|
||||||
|
timbre[`t${num}_lfo_1_frequency`],
|
||||||
|
buildByte(
|
||||||
|
{ value: timbre[`t${num}_lfo_1_tempo_sync`], start: 7 },
|
||||||
|
{ value: timbre[`t${num}_lfo_1_sync_note`], start: 0 }
|
||||||
|
),
|
||||||
|
buildByte(
|
||||||
|
{ value: timbre[`t${num}_lfo_2_key_sync`], start: 4 },
|
||||||
|
{ value: timbre[`t${num}_lfo_2_wave`], start: 0 }
|
||||||
|
),
|
||||||
|
timbre[`t${num}_lfo_2_frequency`],
|
||||||
|
buildByte(
|
||||||
|
{ value: timbre[`t${num}_lfo_2_tempo_sync`], start: 7 },
|
||||||
|
{ value: timbre[`t${num}_lfo_2_sync_note`], start: 0 }
|
||||||
|
),
|
||||||
|
buildByte(
|
||||||
|
{ value: timbre[`t${num}_patch_1_dest`], start: 4 },
|
||||||
|
{ value: timbre[`t${num}_patch_1_src`], start: 0 }
|
||||||
|
),
|
||||||
|
timbre[`t${num}_patch_1_intensity`],
|
||||||
|
buildByte(
|
||||||
|
{ value: timbre[`t${num}_patch_2_dest`], start: 4 },
|
||||||
|
{ value: timbre[`t${num}_patch_2_src`], start: 0 }
|
||||||
|
),
|
||||||
|
timbre[`t${num}_patch_2_intensity`],
|
||||||
|
buildByte(
|
||||||
|
{ value: timbre[`t${num}_patch_3_dest`], start: 4 },
|
||||||
|
{ value: timbre[`t${num}_patch_3_src`], start: 0 }
|
||||||
|
),
|
||||||
|
timbre[`t${num}_patch_3_intensity`],
|
||||||
|
buildByte(
|
||||||
|
{ value: timbre[`t${num}_patch_4_dest`], start: 4 },
|
||||||
|
{ value: timbre[`t${num}_patch_4_src`], start: 0 }
|
||||||
|
),
|
||||||
|
timbre[`t${num}_patch_4_intensity`],
|
||||||
|
];
|
||||||
|
return array;
|
||||||
|
}
|
||||||
|
|
||||||
|
function serialise_vocoder(vocoder) {}
|
||||||
|
|||||||
Reference in New Issue
Block a user