Fantastic. My largest BASICally scripts work fine with 2.0.7 I was able to create a live performance setup using BASICally with Meander diatonic harmony and melody octal radix CV control. I will have to give some thought to posting it here soon. It is a variation of the several ~Misha inspired patches that other have done here.
I like your idea of passing data between modules. One version of the above I did like that, but very simplistically. I believe that this will open up some new ideas for patching and control. II think I qualify as an āuber-nerdā
Also, thanks for the log functions. I will have to try out the unclamped ports.
Oh, just to note, if you are using blocks, Iāve added this to the docs:
NB: Remember that all variables, including the loop variables in FOR-NEXT
loops, are in the same variable space. If you are using blocks
which might be running at the same time, make sure you use different loop
variables in different blocks. Not doing so leads to VERY confusing behavior
when running.
I was convinced there was some terrifically subtle bug in the compilation until I realized I was looping over āiā in multiple blocks. Thereās some good reasons most languages donāt have global variables!
Hi @StochasticTelegraphnext, Iād need a bit of confirmation ā¦
I read that in general āall variables start with the value 0.0 when first readā. But Iāve just realized that if STYLE is set to āstart on trigger, donāt loopā variables arenāt reset to 0.0 on trigger receipt. It is like this by design, isnāt it?
I like this behavior very much actually! I just would like to make sure that it is not a mistake (and so I can build on this).
For example here OUT1 would return 0, 1, 2, 3, and then 4 in this order on receiving triggers. (Instead of 1,1,1,1, and then 1.)
Itās kind of inspired me to write (eventually GPL3) a module wrapping J the language. I think Iād find it amusing. Running a dll loading thread ā¦
EDIT: It will need someone to build a mac-arm64 of jsource and zip up the bin directory for mac. (Maybe).
And thereās a perhaps unwelcome surprise in your shorter for-loop version, in that a NEXT has a implied WAIT 0 in it, meaning that the for-loop version would only update, say, out1, every six samples, whereas the flat version will update every sample. Depending on desired outcome, that might be an issue.
I put in the implied WAIT 0 into loops because I didnāt want to make it too easy to stall or stutter Rack by naively taking a long time while iterating over a For loop. But itās non-obvious at times.
If you mean a true functional language, like a Haskell, Erlang, Scheme, or LISP, mmmm, that would certainly be a different module, and, I would currently expect, one with a far smaller potential audience. But Iād be curious what an example or two of that would look like, in your imagining.
If you instead mean being able to define and then call functions, that seems a lot more tractable, and Iāve certainly encountered the desire for that myself. I donāt relish the thought of trying to explain and document variable name spaces and countless other issues functions could introduce, but functions sure would be nice sometimesā¦
Javascript is a perfectly usable functional language, isnāt it? Arenāt there any JS modules for VCV? Or was that only in some never updated module?
Yeah - Iāve never understood why that has not been ported to V2. A lot can be done with docB Formula One and BASICally, but VCV Prototype had some nice features that I miss. In particular was the ability to format and display multi-line text.