main.cfg : Changes to support simulating acoustic piano with sampler.

This commit is contained in:
kevin 2022-08-13 09:38:23 -04:00
parent 71d20bf091
commit 1171f1f3f1

View File

@ -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]}} }