From 2ab8f1a509799abe000ed3863272e6ebbd687fbb Mon Sep 17 00:00:00 2001 From: Ted Moore Date: Tue, 15 Nov 2022 12:54:22 -0500 Subject: [PATCH] fixed example: 'Neural Network Predicts FM Params from Audio Analysis' --- ...Predicts FM Params from Audio Analysis.scd | 88 ++++++++++--------- 1 file changed, 47 insertions(+), 41 deletions(-) diff --git a/release-packaging/Examples/Guides/Neural Network Predicts FM Params from Audio Analysis.scd b/release-packaging/Examples/Guides/Neural Network Predicts FM Params from Audio Analysis.scd index f204c26..aa8f5b5 100644 --- a/release-packaging/Examples/Guides/Neural Network Predicts FM Params from Audio Analysis.scd +++ b/release-packaging/Examples/Guides/Neural Network Predicts FM Params from Audio Analysis.scd @@ -47,37 +47,33 @@ s.waitForBoot{ }); }); }; - var open_mlp = { - arg path; - // nn.prGetParams.postln; - nn.read(path,{ - var params = nn.prGetParams; - var n_layers = params[1]; - var layers_string = ""; - - // params.postln; + var display_mlp_params = { + var params = nn.prGetParams; + var n_layers = params[1]; + var layers_string = ""; - n_layers.do({ - arg i; - if(i > 0,{layers_string = "% ".format(layers_string)}); - layers_string = "%%".format(layers_string,params[2+i]); - }); + // params.postln; - nn.maxIter_(maxIter_nb.value); - nn.learnRate_(learnRate_nb.value); - nn.momentum_(momentum_nb.value); - nn.batchSize_(batchSize_nb.value); - - defer{ - hidden_tf.string_(layers_string); - act_pum.value_(nn.activation); - outAct_pum.value_(nn.outputActivation); - /* maxIter_nb.value_(nn.maxIter); - learnRate_nb.value_(nn.learnRate); - momentum_nb.value_(nn.momentum); - batchSize_nb.value_(nn.batchSize);*/ - }; + n_layers.do({ + arg i; + if(i > 0,{layers_string = "% ".format(layers_string)}); + layers_string = "%%".format(layers_string,params[2+i]); }); + + nn.maxIter_(maxIter_nb.value); + nn.learnRate_(learnRate_nb.value); + nn.momentum_(momentum_nb.value); + nn.batchSize_(batchSize_nb.value); + + defer{ + hidden_tf.string_(layers_string); + act_pum.value_(nn.activation); + outAct_pum.value_(nn.outputActivation); + /* maxIter_nb.value_(nn.maxIter); + learnRate_nb.value_(nn.learnRate); + momentum_nb.value_(nn.momentum); + batchSize_nb.value_(nn.batchSize);*/ + }; }; ~in_bus = Bus.audio(s); @@ -256,20 +252,39 @@ s.waitForBoot{ win.view.decorator.nextLine; Button(win,Rect(0,0,100,20)) - .states_([["Save MLP"]]) + .states_([["Save"]]) .action_{ Dialog.savePanel({ arg path; - nn.write(path); + nn.dump{ + arg mlp_dict; + scaler_params.dump{ + arg scaler_params_dict; + scaler_mfcc.dump{ + arg scaler_mfcc_dict; + var dict = Dictionary.new; + dict['mlp'] = mlp_dict; + dict['scaler_params'] = scaler_params_dict; + dict['scaler_mfcc'] = scaler_mfcc_dict; + + dict.writeArchive(path); + }; + }; + }; + }); }; Button(win,Rect(0,0,100,20)) - .states_([["Open MLP"]]) + .states_([["Open"]]) .action_{ Dialog.openPanel({ arg path; - open_mlp.(path); + var dict = Object.readArchive(path); + + nn.load(dict['mlp'].postln,{display_mlp_params.value}); + scaler_params.load(dict['scaler_params'].postln); + scaler_mfcc.load(dict['scaler_mfcc'].postln); }); }; @@ -299,15 +314,6 @@ s.waitForBoot{ statsWinSl.valueAction_(0.0); - /* 100.do{ - var cfreq = exprand(20,20000); - var mfreq = exprand(20,20000); - var index = rrand(0.0,20); - parambuf.setn(0,[cfreq,mfreq,index]); - 0.2.wait; - add_point.value; - 0.05.wait; - };*/ 40.do{ var cfreq = exprand(100.0,1000.0); var mfreq = exprand(100.0,min(cfreq,500.0));