Path Set Infinity - Dev Blog

I am starting development of my second plugin “Path Set: Infinity” and thought it would be interesting to share my development process in this blog.

The idea for this set started with my AstroVibe module. It’s an oscillator with a large number of internal configurations that you can randomize and save, but you can’t control. I thought it would be fun to explore that concept more.

The first module for this set I am creating is Warp Drive. I wanted to build off the space theme of AstroVibe and I thought the visuals of a starship diagram would make for a fun panel on a module. I imagined two parallel drives, each their own voice.

When thinking about what kind of sounds I wanted, I thought back to Omri Choen’s video on frequency modulation. I liked the idea of chaining simple oscillators together to create more varied sounds. I also like making big complicated things, so I decided I would use five copies of an oscillator for each side of the drive for a total of ten oscillators inside the module.

I set myself the task of designing just one of those ten oscillators. I created a simple prototype using javascript and the Prototype module. This combination allowed me to try many different ideas very quickly until I had a basic building block I liked,

I started copying the prototype module inside of VCV Rack. I hooked two more to the original’s FM input. I used CF’s Algebra module and to mix them and that created a good range of settings. But I was still short of the five-oscillator goal I had set. So I experimented with what else I could do. I modified another oscillator so it could create different envelopes for the output. And the last oscillator became and LFO that also doubled as a clock.

This gave me a solid base for one drive of the module, but I also wanted to have interplay between the two drives. I wasn’t sure what interactions would create interesting sounds and I wanted to figure that out before designing the panel. So I copied the modules again :). By now my CPU was starting to sweat, but javascript interpretation is a lot slower than the final compiled c++ code will be, so I pressed on.

To help make this easier to managed I started adding external controls using buttons and knobs from RCM. These are big and bright and allow me to label the controls. I used switches and other utility modules to quickly test different interactions. I threw away ideas that weren’t working out and expanded on the ones that did. Eventually I good set of controls that I really liked. That looks like this:

That’s where I am now. My next steps are the panel design and then converting my javascript into C++ code. Those will both go fairly smoothly since I all of this prototyping to figure out how WarpDrive will eventually work.

If you found this interesting please give this post a like. And if you’d like to know more about my development process please leave a comment.

16 Likes

I took a break from WarpDrive and switched to my quantizer: QuantumCompass. During the prototyping of it, it turned into more of a sequencer than a quantizer. Rather than rattling on about how it works I thought I’d share a video of it in action:

The basic idea is you can key in which notes of the scale you want it to play, but it randomly assigns them to the sequencer. You can then add Accidentals (Flats/Sharps), Octave shifts, Ratchets and Mutes to the sequence in a similar manner.

Keying the same notes in again will generate a different sequence, but once they are in they are stable… unless you add some Chaos. The central Chaos parameter adds variability to all the other parameters.

11 Likes

Looks so much fun! That chaos knob is wonderful.

1 Like

Warp Drive Panel

This week I went back to Warp Drive and stared working on a panel. I started by making a list of all the parameters and ports I had in my mockup. I took time extra time think of the names for the more unique parameters. I also explicitly itemized out all the attenuators and CV inputs I wanted; that way I would remember to leave space for them.

From there I started the layout. I wanted it to look like a space ship with two big drives, so I split the panel horizontally. I thankfully turned my component list into a checklist, otherwise I would have certainly forgotten something. After laying all that out I ended up with this:

I was happy with that as a first draft so I let it sit. After a few days I come back and I had two breakthroughs. First I realized I could covert the big black rectangles from an eyesore into a feature. Second I realized the connection lines between components could become the outline of shapes. With a little darkening of the background for emphasis I created this hammerhead looking engine block:

This really opened up the visual design space for me. I quickly expanded on this concept, visiting all the components of the panel adding more shapes and connections to, all evocative of a starship diagram. Bringing the elements together into shapes had the added benefit of shrinking the massive 50hp module down to 45. I ended up with so many decorations that I had to pull them into their own layer and reduce the opacity so they wouldn’t distract from functional elements. Here is the final results:

14 Likes

Warp Drive is now functional! Here is a quick video of it with two Quantum Compasses as sequencers.

15 Likes

So I’d like to introduce you to Orchestrator, the 3rd and final module of Path Set - Infinity:

Orchestrator is designed to be the conductor for a modular song. I wanted a module that could easily create large amounts of variation but could also constantly repeat that variation to create things that feel more like a traditional song. To achieve that Orchestrator is divided into a central brain and eight surrounding arms.

The brain at the center has two knobs for eyes. One controls the overall length of its song, anywhere from 15 seconds to 10 minutes. The other controls how many movements there are per song; essentially how often the song will change.

The brain “waves” each of its eight arms, i.e. sends them a macro oscillation. Each arm can turn that wave into a modulation/lfo signal or clock/gates. I imagine giving each arm either drum sticks or a conductor’s baton. Each arm has its own individual controls as well as three outputs, for a total of 24 different modulations and/or gates to use throughout your composition.

Like the rest of the Infinity set, Orchestrator has wide range of internal sequences that can be randomized but are unlikely to be found again once changed. There is a main sequence as well as eight individual sequences in each arm. Each one can be randomized independently of each-other.

Here you can see a few scopes showing the kind of patterns that can be generated. Note the module is running at 100x speed (a setting in the context menu).

The upper right scope shows three different arms, you can see how different arms are high at different times. Think of this as the conductor controlling which sections of the orchestra should be playing when.

The lower left scope shows gates from a single arm set to gate mode. You can see the gates form sort of pyramids, with the green gate forming a base and the red gate forming the top. This is intentional. You can use this relationship control which instruments are playing when.

The lower right scope shows the modulation output from a single arm. You can see that all three modulators stay close to each other at a macro scale but have micro oscillations added to them. The idea here is you can use these outputs to modulate voices giving them micro variations for texture but then also have macro variations provide interesting movement over the course of the song.

11 Likes

Thank you so much for adding to your wonderful modules, they look so beautiful and so functional as well. Any ideas when they will hit the library?

1 Like

This looks so cool! Can’t wait to try the new set out.

1 Like

I’ve got all 3 modules functional now. Now I’m working on writing the manual and then I’ll be asking for volunteers to help test them before I release them as premium modules. I’m not sure how long all of that will take but likely 4 to 8 weeks, maybe more.

2 Likes

Ok, please keep posting about them, so they don’t get forgotten about, these look wonderful modules!

2 Likes

This week has been a marathon of writing, and then rewriting, my manuals. I’ve had a lot of great feedback from @GrayCatMusic and now I am finally happy with them now.

I’ve also got an open call for testers for the module. If you are interested in helping, please message me.

I’ve also made many small improvements to the modules this week based on feedback. Having the modules automatically build for all three platforms has been supper helpful in that process. I’ve made 6 different builds of the plugin is as many days.

The other thing I’ve been doing for now is keeping feedback from testers isolated in their own threads. I believe that this will help me see if multiple people find certain aspects confusing or independently have the same opinions.

Testing on Infinity is moving along nicely. Thank you everyone who’s helped! I expect it to be live by the end of April.

While the three modules for Infinity are set, I’ve been working on a bonus module that I plan to release for free shortly after the premium modules are live. Its a network sequencer I call GlassPane.

I was inspired by the Mog Network. I loved the creatively of the original Network and wanted to give it my own twist. So I created GlassPane. In less than a week I’ve already found it super expressive and fun to explore. With it just sort of suggest things through the connections, then watch and listen as something wonderful unfolds. When I get board with a patch I can just tweak a few connections and get pleasant rifts on the sequence.

Since I knew I wanted something different, and the original creator of the Mog Network doesn’t want to contribute to VCV anymore, I decided to build my version from the ground up with two major differences:

First each node in GlassPane has three different modes: Cycle, Random and Arpeggiate. These modes give the network a lot more flexibility on their own. But they can also be patched allowing for a network that modifies itself.

Second GlassPane is driven by a global clock which is routed to the currently active node. At first I wasn’t sure what this would change, but after I built it I realized it allowed for more complicated circular networks. For example you can build two loops and then have a chance to jump between the two, like Geodesic’s Ions.

I think GlassPane is quickly becoming my personal favorite module from my own plugins.

7 Likes

Glasspane looks like a lot of fun!

1 Like

God that is beautiful!!! Truly angelic, will it do dissonant nasty ‘noisy’ delay sequencing? Suppose it depends on the sound sources really! Thank you so much for making these modules.

I’m not sure what you mean by noisy delay sequencing. Do you have an example?

For the video above the sound quality is mostly in the sound source. The sequencer generates one v/oct and I’m using Boguadio Assign to rotate that through 8 polyphonic channels. This goes into an FM-OP. The 8 channels allows the FM-OP voices to ring out more. Then that goes into Plateau. Reverb is life :). And there is little panning and modulation from Ochd.

Well I was thinking aloud, of whether the Glasspane would sequence Ice Tray, maybe the noisy part was a reaction to the prettiness of FM-OP. Not a bad thing at all though. Alsorts of sounds can be produced by varying the modules!

How would Atelier Palette sound using Glasspane? I like using that to get Japanese style bamboo and koto sounds.

If your interested in testing out GlassPane, I have a build and manual ready to test. The manual includes three examples and all three use Atelier Palette :slight_smile:

Manual: PathSetManuals/GlassPane.md at main · patheros/PathSetManuals · GitHub
Download Link: Path Set Free - Google Drive

Thank you, so if I drop the vcvplugin file into V2 plugin folder, it should all work? Look forward to making some beautiful sounds with this module.

It should. Maybe send me a DM if it doesn’t and we can work through it.

Hello put the plugin file into V2 Plugin folder but Glasspane has not appeared in the library. Flipping flipping!

Pathset-V2 plugin folder