Hello! I’m just getting started with Csound. I’m trying to visualize a waveform using the gentable widget using a Function Table and the GEN1 routine to read from a file. It works for me to directly send a filepath to view a single file, but I’m trying to make it update the table when I select a different file from a combo box. Is there a way I can send a variable (in this case a string) to a parameter of a Function Table or otherwise update the values of the table on the fly?
I’m literally just sitting down to dinner, so I can’t take to long drafting a helpful reply… but the secret here lies in “reinit”.
You need to treat your strings at krate (there are special string functions like strcatk, strcpyk, etc.)
You need to detect a change, and then trigger a reinit.
After the reinit, read the same combobox as an irate.
Sorry if that’s confusing, it’s a bit rushed… but hopefully with a little poking around you can find the answer? I’m pretty sure it’s on the forums, or in the examples… “reinit” will probably help you find the way
Take a look at the soundfiler misc. example. It might be a little overly complicated, but should get you started. It uses reinit, as @t_grey suggested, but you don’t need that. When a user changes the name in the combobx, you can call an instrument that just updates the file, for example:
instr 1 (...) if changed(chnget:s("combo1")) == 1 then event "i", 2, 0, 0 endif (...) endin instr 2 SFile chnget "combo1" iTableNumber = 1 i1 ftgen iTableNumber,0,0,1,SFile,0,0,0 //update gentable/soundfiler..... endin
If you do it this way you don’t have to worry about
k/i rate issues.