VCV Rack Modules and Documentation
Sound Palace, a generative music app
A couple of albums are also on most of the streaming services under "Stochastic Telegraph"
"Hold Me In The Air" Now Available
I'm now making and selling this artwork/art device. It's to make the black screens in your rooms interesting and yet not distracting. Available on my Etsy shop.
VCV Modules version 2.0.10
This introduces a new module, Fermata, that does no audio or signal processing at all. It is essentially an improved version of the VCV Fundamental module Notes, except that Fermata is resizable (horizontally), scrollable (vertically), and includes a title, which becomes a label on the panel at the narrowest width. There's a also a (small) number of font and color choices. I imagine this as useful for:
Instructions for playing the patch.
Notes/reminders on how this part of the patch works. Useful in a teaching environment as well.
TODO's or ideas on a patch in progress.
A short story you're writing while listening to your patch.
The font choices were also added to BASICally, and there's a new preset for BASICally as well.
VCV Rack Modules version 2.0.9
After a short hiatus, I appear to be back at the VCV game.
Additional preset scripts for BASICally, and fixed a compilation issue.
Drifter can now RESET to shapes other than a straight line at zero.
Drifter can drift the left and right end points in sync. This prevents sudden changes/transients when driving IN with a saw wave.
Fuse now has an UNTRIGGER input and button, which lowers the accumulated count of triggers.
BASICally 2.0.7 is now live.
February 6, 2023 -- New features include:
Added notion of “ALSO blocks” that run in parallel.
Added notion of “WHEN blocks” that are started when a condition is met.
Added “CLEAR ALL” command, which sets all variables to zero and empties all arrays.
Added “RESET” command, which interrupts all blocks and restarts them from the beginning.
Added start() and trigger(INn) functions, to know when the program has just been compiled or a trigger has been received.
Added log2(), loge(), and log10() functions.
Added time() and time_millis() functions for tracking the execution time more easily.
Added some factory Presets illustrating some interesting features of the module.
Added two more OUT ports, for a total of six.
Added the ability to “unclamp” OUTn ports; they are normally limited to the range -10 <= x <= 10. Useful for debugging scripts.
Fixed a few couple UI bugs, including undo/redo crashing Rack at times.
Made the screen a couple of lines taller.
While I've greatly enjoyed working on BASICally, I hope to largely let it rest for a while. To a first approximation, me making VCV Rack modules mirrors my 30+year software engineering career; making tools for other people to do things with. I am reasonably good at it, but I'd like to lean away from this well-worn groove in my intellectual life in favor more visceral creative pursuits. Although, let's be honest, there's an upper bound to how visceral my musical doings get.
Difficulty getting hardware (exacerbated by a cyber attack at the Royal Mail, of all things) is what I'm now overcoming in order to progress on my currently nameless ambient video device project, although I must acknowledge that there are many parts of it (like naming it!) that aren't actually hardware dependent.
BASICally 2.0.5 is now live.
The 3rd version of BASICally is now live in the library. It features:
Many UI changes:
STYLE knob is smaller, elements moved.
Now have nine INx ports instead of six.
The minimum width is now one “hole” smaller, and this hides the editing window.
Can enter a title for a module via the menu that shows up above the IN ports. Handy for stating what role the module plays in the patch.
Added menu option to change the status light from green/red to blue/orange.
And added new screen color options.
Added ‘elseif’. E.g., “IF a == 5 THEN … ELSEIF a == 4 THEN … “
Added methods about the environment, sample_rate() and connected().
Added methods for random number generation, random() and normal().
Added single dimension arrays, and a simple way to set a range of values.
That last bit led to the creation of an oddity; a VCV tape loop with four read heads.
BASICally 2.0.4 is now live.
The 2nd version of BASICally (2.0.4) is now live in the library. It features:
Rejiggered UI elements.
The first line that confuses BASICally will be highlighted in red. This behavior can be turned off in the menu.
Text window scrolls when you get to the top or bottom. Longer programs!
Now have six INx ports instead of four.
Added scientific note notation: “out1 = c#3” and “if IN5 < bb3 then…” are now legal. An example is in this image.
Now can have black text on a white background.
Some performance improvement.
Added all the Math functions to the menu.
BASICally VCV Rack module now live in the Library
December 13, 2022 -- It took longer than I expected, but on Monday it was made available in the Library. The documentation is here. There's already been a modest interest in the VCV Rack Community discussion board, and there are some interesting suggestions there and elsewhere for me to ponder already. I've already seen someone use it within a patch. Exciting to finally have it out, but also a bit, I don't know, daunting? Perhaps the release of the suspense means I have to actively decide how to divide and use my time, as usual. Fortunately, I have many options, including further work on BASICally, which is already in progress. As I write this, just pushing live the revisions I've already made in the last couple weeks sounds like a good plan.
3rd VCV Rack module to be released soonish
November 30, 2022 -- I was inspired by HAINBACH's video, in particular his joy at being able to program a musical device in the BASIC language of his childhood. "Gripped by" is the better phrase; the idea hijacked my brain pretty unrelentingly, a stew of my own nostalgia for BASIC and also for the obscure thrill of implementing a language. I last made the mistake of doing so for work some 20+ years ago (I say "mistake" because few engineers want to learn a custom language that doesn't polish their resume when a library would do the trick). I'll leave my story of implementing a BASIC compiler in BASIC for another day, but suffice to say, I'm primed to dive headlong into something like this. Additionally, I was intrigued by the results he was getting, even though the BASIC part was really just an unusual way to set up a sequencer.
As a result, I've spent the last 6-7 weeks writing BASICally, and while there are similar things in VCV Rack (which I note in that doc), I now think this module adds enough novel improvements to ease of use and functionality to make it worthwhile.
It's now in the stage where I ask the VCV Library maintainers to add it, and then I wait for some unknown period of time. When that happens, it'll show up here.