perf/perf_caw.cfg : Aded ex_04/05_score_player.

This commit is contained in:
kevin 2025-03-08 12:33:27 -05:00
parent 90ce72effe
commit b3945e168c

View File

@ -9,6 +9,9 @@
ex_00_mod_sine: { ex_00_mod_sine: {
dur_limit_secs:30.0, // Run the network for 5 seconds
non_real_time_fl: true,
network: { network: {
procs: { procs: {
@ -16,6 +19,7 @@
sh: { class: sample_hold, in:{ in:lfo.out } } sh: { class: sample_hold, in:{ in:lfo.out } }
osc: { class: sine_tone, preset:mono, in:{ hz:sh.out } }, osc: { class: sine_tone, preset:mono, in:{ hz:sh.out } },
aout: { class:audio_out, in:{ in:osc.out }, args:{ dev_label:"main"} } aout: { class:audio_out, in:{ in:osc.out }, args:{ dev_label:"main"} }
//af: { class: audio_file_out, in: { in:osc.out } args:{ fname:"$/out.wav"} }
} }
} }
} }
@ -29,7 +33,7 @@
samp_vt:{ class: vel_table, in:{ in:player.out }, args:{ vel_tbl_fname:"$/vel_table_perf.json", vel_tbl_label:"ivory" }}, samp_vt:{ class: vel_table, in:{ in:player.out }, args:{ vel_tbl_fname:"$/vel_table_perf.json", vel_tbl_label:"ivory" }},
stop: { class: halt, in:{ in:player.done_fl }} stop: { class: halt, in:{ in:player.done_fl }}
vctl: { class: poly_voice_ctl, in:{ in:smp_vt.out }, args:{ voice_cnt:20 } }, vctl: { class: poly_voice_ctl, in:{ in:samp_vt.out }, args:{ voice_cnt:20 } },
voice_poly: { voice_poly: {
class: poly, class: poly,
@ -91,9 +95,12 @@
ex_02_score_player: { ex_02_score_player: {
ui_create_fl: true,
network: { network: {
procs: { procs: {
//xform_igain: { class: number, args:{ in:1.0f }},
player: { class:score_player, args:{ fname:"$/score_20240504.csv" }}, player: { class:score_player, args:{ fname:"$/score_20240504.csv" }},
pian_vt:{ class: vel_table, in:{ in:player.out }, args:{ vel_tbl_fname:"$/vel_table_perf.json", vel_tbl_label:"spirio" }}, pian_vt:{ class: vel_table, in:{ in:player.out }, args:{ vel_tbl_fname:"$/vel_table_perf.json", vel_tbl_label:"spirio" }},
@ -102,22 +109,22 @@
stop: { class: halt, in:{ in:player.done_fl }} stop: { class: halt, in:{ in:player.done_fl }}
mout: { class: midi_out, in:{ rin:pian_vt.out }, args:{ print_fl:false, dev_label:"Fastlane", port_label:"Fastlane MIDI A" } } //mout: { class: midi_out, in:{ rin:pian_vt.out }, args:{ print_fl:false, dev_label:"Fastlane", port_label:"Fastlane MIDI A" } }
vctl: { class: poly_voice_ctl, in:{ in:samp_vt.out }, args:{ voice_cnt:30 } }, vctl: { class: poly_voice_ctl, in:{ in:samp_vt.out }, args:{ voice_cnt:30 } },
ps: { class: preset_select, preset:init, in:{ in:player.out }, args:{ fname:"$/m1_458_trans_6.txt", preset_proc:"xf_poly" } } ps: { class: preset_select, preset:init, in:{ in:player.out }, args:{ fname:"$/m1_458_trans_5.txt" } }
voice_poly: { voice_poly: {
class: poly, class: poly,
in: { count:vctl.voice_cnt } in: { count:vctl.voice_cnt }
args: { parallel_fl:false } args: { parallel_fl:false }
network: { network: {
procs: { procs: {
//voc: { class:piano_voice, in:{ _.in:_.vctl.out_ }, voc: { class:piano_voice, in:{ _.in:_.vctl.out_ },
// out:{ _.done_fl:_.vctl.done_fl_ }, out:{ _.done_fl:_.vctl.done_fl_ },
// args:{ wtb_fname:"~/temp/wt6/wt_bank.json", wtb_instr:"piano" } }, args:{ wtb_fname:"~/temp/wt6/wt_bank.json", wtb_instr:"piano" } },
voc: { class:midi_voice, in:{ _.in:_.vctl.out_ }, out:{ _.done_fl:_.vctl.done_fl_ }, args:{print_fl:false, chCnt:2, gain:0.2 } }, //voc: { class:midi_voice, in:{ _.in:_.vctl.out_ }, out:{ _.done_fl:_.vctl.done_fl_ }, args:{print_fl:false, chCnt:2, gain:0.2 } },
} }
} }
} }
@ -125,17 +132,20 @@
xf_ctl: { class:poly_xform_ctl, in:{ in_:voice_poly.voc_.out, xf_ctl: { class:poly_xform_ctl, in:{ in_:voice_poly.voc_.out,
midi_:vctl.out_, midi_:vctl.out_,
donefl_:voice_poly.voc_.done_fl, donefl_:voice_poly.voc_.done_fl,
out_ch_idx:ps.out_idx }, args:{ out_ch_cnt:10 } } trig:ps.preset_label }, args:{ out_ch_cnt:10 } }
xf_poly : { xf_poly : {
class: poly, class: poly,
in: { count:xf_ctl.out_ch_cnt, preset_sfx_id:ps.out_idx, preset_label:ps.preset_label }, in: { count:xf_ctl.out_ch_cnt,
preset_sfx_id:xf_ctl.out_ch_idx,
preset_label:ps.preset_label },
args: { parallel_fl:false } args: { parallel_fl:true }
network: { network: {
procs: { procs: {
//igain: { class: audio_gain, in:{ in:_.xf_ctl.out, gain:_.xform_igain.out }, },
pva: { class: pv_analysis, in:{ in:_.xf_ctl.out }, args:{ wndSmpN:512, hopSmpN:128, hzFl:false } }, pva: { class: pv_analysis, in:{ in:_.xf_ctl.out }, args:{ wndSmpN:512, hopSmpN:128, hzFl:false } },
sd: { class: spec_dist, in:{ in:pva.out }, preset:kc, args:{ bypass:false } }, sd: { class: spec_dist, in:{ in:pva.out }, preset:kc, args:{ bypass:false } },
pvs: { class: pv_synthesis, in:{ in:sd.out } }, pvs: { class: pv_synthesis, in:{ in:sd.out } },
@ -182,10 +192,10 @@
// delay the incoming signal to sync it with the piano // delay the incoming signal to sync it with the piano
sync_delay { class: audio_delay, in: { in:merge.out }, args:{ delayMs:400 }} sync_delay { class: audio_delay, in: { in:merge.out }, args:{ delayMs:400 }}
//aout: { class: audio_out, in:{ in:sync_delay.out }, args:{ dev_label:"main" } }, aout: { class: audio_out, in:{ in:sync_delay.out }, args:{ dev_label:"main" } },
sel_two: { class: audio_split, in:{ in:sync_delay.out } args:{ select[0,0,1,1]} } //sel_two: { class: audio_split, in:{ in:sync_delay.out } args:{ select[0,0,1,1]} }
aout: { class: audio_out, in:{ in:sel_two.out0 }, args:{ dev_label:"main" } }, //aout: { class: audio_out, in:{ in:sel_two.out0 }, args:{ dev_label:"main" } },
} }
@ -214,5 +224,179 @@
} }
} }
ex_04_score_player: {
ui_create_fl: true,
dur_limit_secs:10.0, // Run the network for 5 seconds
non_real_time_fl: true,
network: {
procs: {
player: { class:score_player, args:{ fname:"$/score_20240504.csv" }},
pian_vt:{ class: vel_table, in:{ in:player.out }, args:{ vel_tbl_fname:"$/vel_table_perf.json", vel_tbl_label:"spirio" }},
samp_vt:{ class: vel_table, in:{ in:player.out }, args:{ vel_tbl_fname:"$/vel_table_perf.json", vel_tbl_label:"ivory" }},
stop: { class: halt, in:{ in:player.done_fl }}
vctl: { class: poly_voice_ctl, in:{ in:samp_vt.out }, args:{ voice_cnt:25 } },
ps: { class: preset_select, preset:init, in:{ in:player.out }, args:{ fname:"$/m1_458_trans_5.txt" } }
voice_poly: {
class: poly,
in: {
count:vctl.voice_cnt,
}
args: { parallel_fl:false }
network: {
procs: {
voc: { class:piano_voice, in:{ _.in:_.vctl.out_ },
out:{ _.done_fl:_.vctl.done_fl_ },
args:{ wtb_fname:"~/temp/wt6/wt_bank.json", wtb_instr:"piano" } },
pva: { class: pv_analysis, in:{ in:voc.out }, args:{ wndSmpN:512, hopSmpN:128, hzFl:false } },
sd: { class: spec_dist, in:{ in:pva.out }, preset:kc, args:{ bypass:false } },
pvs: { class: pv_synthesis, in:{ in:sd.out } },
cmp: { class: compressor, in:{ in:pvs.out }, preset:kc, args:{ bypass:false } },
ogain: { class: audio_gain, in:{ in:cmp.out } },
}
presets: {
dry: { pva:dry, sd:dry, cmp:dry, ogain:{ gain:0.0 } },
a: { pva:a, sd:a, cmp:a, ogain:{ gain:1.0 } },
b: { pva:b, sd:b, cmp:b, ogain:{ gain:1.0 } },
c: { pva:c, sd:c, cmp:c, ogain:{ gain:1.0 } },
d: { pva:d, sd:d, cmp:d, ogain:{ gain:1.0 } },
f1: { pva:f_1, sd:f_1, cmp:f_1, ogain:{ gain:1.0 } },
f2: { pva:f_2, sd:f_2, cmp:f_2, ogain:{ gain:1.0 } },
f3: { pva:f_3, sd:f_3, cmp:f_3, ogain:{ gain:1.0 } },
f4: { pva:f_4, sd:f_4, cmp:f_4, ogain:{ gain:1.0 } },
g: { pva:g, sd:g, cmp:g, ogain:{ gain:1.0 } },
ga: { pva:g_a sd:g_a, cmp:g_a, ogain:{ gain:1.0 } },
g1a: { pva:g_1_a sd:g_1_a, cmp:g_1_a, ogain:{ gain:1.0 } },
g1d: { pva:g_1_d sd:g_1_d, cmp:g_1_d, ogain:{ gain:1.0 } }
}
}
}
wet_poly_mix: { class: audio_mix, in:{ in_:voice_poly.ogain_.out } args:{ igain_:1.0 }},
dry_poly_mix: { class: audio_mix, in:{ in_:voice_poly.voc_.out} args:{ igain_:1.0 }},
// apply the wet/dry gain balance
wd_bal: { class: balance, args{}},
wet_bal_gain: { class: audio_gain, in:{ in:wet_poly_mix.out, gain:wd_bal.out } },
dry_bal_gain: { class: audio_gain, in:{ in:dry_poly_mix.out, gain:wd_bal.inv_out } },
mstr_wet_out: { class: audio_gain, in:{ in:wet_bal_gain.out }, args:{ gain:0.5 } }
mstr_dry_out: { class: audio_gain, in:{ in:dry_bal_gain.out }, args:{ gain:0.5 } },
// merge the wet/dry signals into a single 4 channel signal
merge: { class: audio_merge, in:{ in0:mstr_wet_out.out, in1:mstr_dry_out.out } },
// delay the incoming signal to sync it with the piano
sync_delay { class: audio_delay, in: { in:merge.out }, args:{ delayMs:400 }}
//aout: { class: audio_out, in:{ in:sync_delay.out }, args:{ dev_label:"main" } },
sel_two: { class: audio_split, in:{ in:sync_delay.out } args:{ select[0,0,1,1]} }
//aout: { class: audio_out, in:{ in:sel_two.out0 }, args:{ dev_label:"main" } },
af: { class: audio_file_out, in: { in:sel_two.out0 }, args:{ fname:"$/out.wav"} }
}
}
}
ex_05_score_player: {
ui_create_fl: false,
//dur_limit_secs:60.0,
//non_real_time_fl: true,
network: {
procs: {
player: { class:score_player, args:{ fname:"$/score_20240504.csv" }, ui: { create_fl:true } },
pian_vt:{ class: vel_table, in:{ in:player.out }, args:{ vel_tbl_fname:"$/vel_table_perf.json", vel_tbl_label:"spirio_1" }},
samp_vt:{ class: vel_table, in:{ in:player.out }, args:{ vel_tbl_fname:"$/vel_table_perf.json", vel_tbl_label:"ivory" }},
//stop: { class: halt, in:{ in:player.done_fl }}
//mout: { class: midi_out, in:{ rin:pian_vt.out }, args:{ print_fl:false, dev_label:"Fastlane", port_label:"Fastlane MIDI A" } }
//mout: { class: midi_out, in:{ rin:pian_vt.out }, args:{ print_fl:false, dev_label:"iRig MIDI 2", port_label:"iRig MIDI 2 MIDI 1" } }
vctl: { class: poly_voice_ctl, in:{ in:samp_vt.out }, args:{ voice_cnt:25 } },
ps: { class: gutim_ps, preset:init, in:{ in:player.out, midi_in_:vctl.out_, reset:player.start },
args:{ fname:"$/m1_458_trans_5.txt" },
ui: { create_fl:true } }
voice_poly: {
class: poly,
in: {
count:vctl.voice_cnt,
}
args: { parallel_fl:true }
network: {
procs: {
voc: { class:piano_voice, in:{ _.in:_.vctl.out_ },
out:{ _.done_fl:_.vctl.done_fl_ },
args:{ wtb_fname:"~/temp/wt6/wt_bank.json", wtb_instr:"piano" } },
pva: { class: pv_analysis, in:{ in:voc.out, _.wndSmpN:_.ps.wnd_smp_cnt_ }, args:{ wndSmpN:512, hopSmpN:128, hzFl:false } },
sd: { class: spec_dist, in:{ in:pva.out,
_.ceiling:_.ps.ceiling_,
_.expo:_.ps.expo_,
_.thresh:_.ps.thresh_,
_.upr:_.ps.upr_,
_.lwr:_.ps.lwr_,
_.mix:_.ps.mix_ }, preset:kc, args:{ bypass:false } },
pvs: { class: pv_synthesis, in:{ in:sd.out } },
cmp: { class: compressor, in:{ in:pvs.out,
_.igain:_.ps.c_igain_,
_.ogain:_.ps.c_ogain_ }, preset:kc, args:{ bypass:false } },
ogain: { class: audio_gain, in:{ in:cmp.out, _.gain:_.ps.dry_gain_ } },
}
}
}
wet_poly_mix: { class: audio_mix, in:{ in_:voice_poly.ogain_.out } args:{ igain_:1.0 }},
dry_poly_mix: { class: audio_mix, in:{ in_:voice_poly.voc_.out} args:{ igain_:1.0 }},
// apply the wet/dry gain balance
wd_bal: { class: balance, args{}},
wet_bal_gain: { class: audio_gain, in:{ in:wet_poly_mix.out, gain:wd_bal.out } },
dry_bal_gain: { class: audio_gain, in:{ in:dry_poly_mix.out, gain:wd_bal.inv_out } },
mstr_wet_out: { class: audio_gain, in:{ in:wet_bal_gain.out }, args:{ gain:0.5 } }
mstr_dry_out: { class: audio_gain, in:{ in:dry_bal_gain.out }, args:{ gain:0.5 } },
// merge the wet/dry signals into a single 4 channel signal
merge: { class: audio_merge, in:{ in0:mstr_wet_out.out, in1:mstr_dry_out.out } },
// delay the incoming signal to sync it with the piano
sync_delay { class: audio_delay, in: { in:merge.out }, args:{ delayMs:400 }}
aout: { class: audio_out, in:{ in:sync_delay.out }, args:{ dev_label:"main" } },
//sel_two: { class: audio_split, in:{ in:sync_delay.out } args:{ select[0,0,1,1]} }
//aout: { class: audio_out, in:{ in:sel_two.out0 }, args:{ dev_label:"main" } },
//af: { class: audio_file_out, in: { in:sync_delay.out }, args:{ fname:"$/out.wav"} }
}
}
}
} }