diff --git a/src/cwtest/cfg/main.cfg b/src/cwtest/cfg/main.cfg index 333e772..d579204 100644 --- a/src/cwtest/cfg/main.cfg +++ b/src/cwtest/cfg/main.cfg @@ -21,6 +21,9 @@ object: {}, time:{}, thread: {}, + kbTest1: {}, + kbTest2: {}, + kbTest3: {}, spscBuf: {}, spscQueueTmpl: {}, @@ -70,7 +73,7 @@ } }, - + socketMdns: {}, dnssd: {}, eucon: {}, @@ -192,6 +195,11 @@ }, + io_minimal: { + + }, + + audio_midi: { audio_midi: { @@ -762,7 +770,7 @@ audio_transforms: {}, - am_to_midi_file: { inDir: "~/temp/audio_midi_app_backup/taka1" }, + am_to_midi_file: { inDir: "~/src/currawong/audio/workshop/taka1" }, audio_file_proc: { srcFn: "/home/kevin/src/currawong/audio/GUTIM_All_20200711_96k_float.wav", @@ -1314,7 +1322,7 @@ default_master_wet_in_gain: 1.0, default_master_wet_out_gain: 1.0, default_master_dry_gain: 1.0, - default_master_sync_delay_ms: 400, + default_master_sync_delay_ms: 0, // spirio 400 }, @@ -1330,8 +1338,12 @@ // piano { enableFl: true, + //midi_out_device: "MIDIFACE 2x2", + //midi_out_port: "MIDIFACE 2x2 Midi Out 1", + midi_out_device: "Scarlett 18i20 USB", midi_out_port: "Scarlett 18i20 USB MIDI 1", + //midi_out_device: "PipeWire-RT-Event", //midi_out_port: "input", @@ -1347,13 +1359,18 @@ }, // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 - vel_table: [ 1, 4, 10, 12, 12, 18, 24, 24, 30, 36, 36, 44, 48, 52, 58, 64, 64, 70, 76, 82, 88, 94,100,106,112 ] + // spirio vel_table: [ 1, 4, 10, 12, 12, 18, 24, 24, 30, 36, 36, 44, 48, 52, 58, 64, 64, 70, 76, 82, 88, 94,100,106,112 ] + vel_table: [ 1, 5 10, 16, 21, 26, 32, 37, 42, 48, 53, 58, 64, 69, 74, 80, 85, 90, 96,101,106,112,117,122,127 ] , + }, { - enableFl: false, + enableFl: true, midi_out_device: "Fastlane", midi_out_port: "Fastlane MIDI A", + //midi_out_device: "MIDIFACE 2x2", + //midi_out_port: "MIDIFACE 2x2 Midi Out 2", + //midi_out_device: "PC-300", //midi_out_port: "PC-300 MIDI 1", @@ -1380,7 +1397,8 @@ }, col: { row: { - name: fragPresetRowId + name: fragPresetRowId, + addClassName: fragPresetRow, }, row: { @@ -1390,6 +1408,10 @@ col: { number:{ name: fragWetDryGainId, title:"Wet/Dry", min:0.0, max:1.0, step:0.1, decpl:2 }, number:{ name: fragFadeOutMsId, title:"Fade Ms", min:0.0, max:5000, step:1, decpl:0 }, + row: { + button:{ name: fragPlaySeqBtnId, title:"Play Seq" }, + button:{ name: fragPlayAllBtnId, title:"Play All" }, + } }, col: { number: { name: fragBegPlayLocId, title:"Begin", min:0, max:1000000, step:1, decpl:0 }, @@ -1486,11 +1508,53 @@ printNetworkFl: false, // print the network instance printClassDictFl: false, // print the class description dictionary - - + + network: { aud_in: { class: audio_in, args:{ default:{dev_label:"main"} } }, + // select the first two channels (this reduces the channel count if there are more than 2 incoming channels) + ivory_in: { class: audio_split, in:{ in:aud_in.out } args:{ default:{select[1,1]}} } + + + vsl_in: { class: audio_split, in:{ in:aud_in.out } args:{ default:{select[0,0,1,1]}} } + + // delay the incoming audio signal to sync it with the piano + sync_delay: { class: audio_delay, in: { in:vsl_in.out }, args:{ default:{ delayMs:0 } }} + + mstr_wet_in_gain: { class: audio_gain, in:{ in:ivory_in.out }, args:{}} + + // wet signal processing chain + wet_in_gain: { class: audio_gain, in:{ in:mstr_wet_in_gain.out }, args:{}}, + pva: { class: pv_analysis, in:{ in:wet_in_gain.out }, args:{ default:{ wndSmpN:512, hopSmpN:128, hzFl:false } } }, + sd: { class: spec_dist, in:{ in:pva.out }, preset:kc }, + pvs: { class: pv_synthesis, in:{ in:sd.out }, }, + cmp: { class: compressor, in:{ in:pvs.out }, preset:kc }, + + wet_out_gain: { class: audio_gain, in:{ in:cmp.out }, args:{}}, + + mute_wet: { class: audio_gain, in:{ in:wet_out_gain.out }, args:{}}, + + + // apply the wet/dry gain balance + wd_bal: { class: balance, args{}}, + wet_bal_gain: { class: audio_gain, in:{ in:mute_wet.out, gain:wd_bal.out }, args:{}}, + dry_bal_gain: { class: audio_gain, in:{ in:vsl_in.out, gain:wd_bal.inv_out }, args:{}}, + + mstr_wet_out_gain: { class: audio_gain, in:{ in:wet_bal_gain.out }, args:{}} + mstr_dry_out_gain: { class: audio_gain, in:{ in:dry_bal_gain.out }, args:{}}, + + // merge the wet/dry signals into a single 4 channel signal + merge0: { class: audio_merge, in:{ in0:mstr_wet_out_gain.out, in1:mstr_dry_out_gain.out }, args:{} }, + + merge1: { class: audio_merge, in:{ in0:merge0.out, in1:sync_delay.out }, args:{} }, + + aout: { class: audio_out, in:{ in:merge1.out }, args:{ default:{dev_label:"main"} } }, + } + + spirio_network: { + aud_in: { class: audio_in, args:{ default:{dev_label:"main"} } }, + // select the first two channels (this reduces the channel count if there are more than 2 incoming channels) split_in: { class: audio_split, in:{ in:aud_in.out } args:{ default:{select[1,1]}} }