I’ve been thinking about this, but I don’t think this is currently possible. Not without Cabbage saving the gen args user create when they edit a table. These could be saved to a string channel. That would be straight forward enough, and user could then grab that channel and save the string to file.
But how does one then create a function table based on a variable number of GEN args? I guess the easiest way would be a new identifier, tableargs:N("1, 0, 1024, -7, 1, 512, 0, 512, 1")
, that users can call in Csound. This will then update the table points, and send the new table to Csound. Actually tableargs(tableNumber, "data")
might be more readable as the N in multiple tables refers to the instance, not the table number.
Would that work ok? For example, sample code might look like this:
<Cabbage>
form caption("Untitled") size(400, 300), colour(58, 110, 182), pluginid("def1")
gentable bounds(24, 72, 363, 177), tablenumber(10), identchannel("table1")
</Cabbage>
(...)
instr 1001
/*the channel "fN_args" will retrieve the last f statement used to create table N.
Each time a user moves a handle, this channel will be updated */
STableData chnget "f10_args"
fprints "preset1.txt", "%s", STableData
endin
instr 1002
STableData, iLinNum readfi "preset1.txt"
chnset STableData, "table1"
endin