Freezer Labs - Interactive Rhythm Composer - sent for submission

Hi everyone,

I need tester for Mac and Linux for this new plugin.

Interactive Rhythm Composer is a 6-track gate sequencer based on Daniel Davies “James” gate sequencer, designed around style-based algorithmic generation. Selecting a genre and hitting Random generates a brand new rhythmic variation tuned to that style’s specific rules.

Tracks & Voices

  • Kick

  • Snare

  • Closed Hi-Hat

  • Open Hi-Hat

  • Perc 1 (Claps)

  • Perc 2

Available Styles

  • House

  • Techno

  • Trap

  • Drum & Bass

  • Minimal

  • Afro

  • Electro

  • Ambient

  • Glitch

  • Braindance

  • Markovian (Generative sequences based on Markov chain probability matrices)

Key Features

  • Per-step Probability: Set step triggers independently (0%, 25%, 50%, 75%, and 100%).

  • Style-driven Randomization: Generating a new pattern resets step probabilities according to the active style’s rule set.

  • Rush/Drag steps: Original Daniel Davies James module functionality to rush or drag a track to create JDilla style beats.

Build & Cross-Platform Testing

Developed on Windows using Cursor + Cline. I’d really appreciate it if macOS and Linux users could try compiling it and share feedback on performance or build issues!

Github Repository link

Here is a release compiled for Windows only to try it

Panel

Thanks in advanced for any feedback!

1 Like

Compiled fine on MacOS 26.6.2. Running well. No issues found during limited testing, uses very little CPU.

One question: seems the clock in need at least a 24x clock signal, which isn’t documented.

1 Like

I recommend wiring up the github build actions so you can work out the cross platform build issues yourself. This also gets you builds for other platform users that are willing to download but can’t or don’t want to clone and build.

2 Likes

64x actually, (at least if you’re using Impromptu Clocked). It’s denoted on this one and the model he derived it from (the James sequencer) by the divided by 16 mark next to the port. It’s divided by 16 based on a quarter note clock is my guess.

1 Like

aha! That makes sense. Retesting in a bit. Thanks Paul!

I like this a lot. testing on linux here. it built and installed cleanly, no issues with that part.

First thing I found was that I run with “Use dark panels if available” set in my “View” menu and this showed the old “James” module, which confused me for a while. Turning that option off uses your new panel, so i carried on testing with that.

I triggered various vcv and vult drum modules with no issues, basic sequencing seems to work.

The random styles seem to work nicely and I can definitely see myself using these.

I did notice that it has a pretty severe “first tick” issue. The first triggers never play on the first clock.

I have a module I use to fix most of these issues (rcm sync) but that doesn’t do anything either.

If fact, using internal clocking and using the “Reset” input has the same issue - I can’t get that first column to trigger on the first run.

It’s honestly not an easy sequencing problem to solve, and some modules trigger on “Reset”, because that’s where the cursor goes, or on the first clock after a reset, meaning the cursor doesn’t move on the first clock or there is no cursor on reset until the first clock. (by cursor in your case i mean the row of yellow lights at the bottom)

If it’s on “Reset”, that’s what my sync module fixes so that seq3 and various other modules can play that first note when the patch starts.

This does mean that if you’ve got “4 on the floor”, that first count doesn’t come in and it throws everything off.

This is a basic test patch, 4 on the floor, clocked is reset and ready to go, pressing “Run” on clocked will NOT trigger Kick until the second beat. Once it loops, it will be fine. Stopping mid sequence and pressing Reset does not cause an early trigger either, so the first beat is just lost.

I like the rush/drag feature, i can hear the change that makes, works well, and I’m assuming this is why you need such a high clock multiplier (I need to use an x64 ratio output from the Clocked module, it’s fine, it’s just the only thing that uses that).

Overall, I like it, I could see this being my go-to sequencer. I would like a first clock trigger tho.

1 Like

Hi everyone,

First of all, a big thank you to @fractalgee, @pachde, @pgatt, and @JimT for testing the module and providing such helpful feedback!

Here is a quick update on the project:

  • v1.0 Release: I’ve updated the repository to officially reflect version 1.0 of the plugin.

  • Light & Dark Panels: I created both Light and Dark panel variants so the module matches whichever theme you prefer in VCV Rack.

  • 64x Clock Requirement: Clarified in the README that the engine requires a 64x clock input (64 PPQN) for micro-timing precision, and updated the panel graphics to clearly indicate this.

  • Developer Context & Community Help: Just a heads-up—I’m not a programmer by trade, so deeper C++ code mechanics and advanced Git workflows are still a big learning curve for me. Since the project is open source (GPL-3.0), Pull Requests and contributions are extremely welcome! If any experienced devs want to dive into the code, fork the repo, or help resolve underlying issues, please feel free.

  • First-Tick Sync Issue: Regarding the “first tick” issue brought up in the feedback (where triggers don’t fire on the very first clock pulse), I don’t know how to resolve it yet, but I’ll be investigating how reset and initial clock synchronization work in VCV Rack. Any guidance or code fixes for this are more than welcome!

  • GitHub Actions & Pre-built Binaries: I’m going to look into setting up GitHub Actions for automated cross-platform builds. This should resolve build issues across platforms and provide downloadable binaries for users who want to try the module without cloning and building it manually.

Thanks again for all the support and guidance!

Light Panel

1 Like

Looks like a great idea for a rhythm sequencer! My only suggestion on the reset is that some savvy trigger sequencers in VCV reset to an unseen “0” step then proceed to step one. Some cv sequencers actually reset to the first step and then do not move forward on the next clock, but remain at step one until a second clock pulse.

1 Like

The venerable Moog 960 sequential controller and close clones had a physical 9th step. It had an option to skip or stop; in normal operation it would be set to skip so that the sequence cycled. You would select that position via the button/trigger when you wanted to reset.

3 Likes

I have a small writeup here about how I treat the 1st step issue in Impromptu, which might be relevant:

Congrats on the new sequencer!

4 Likes

Hi everyone,

Quick update on the Interactive Rhythm Composer:

  • First-Tick Sync Issue Fixed: I’ve implemented the 1ms clock-ignore and gate-retrigger logic (following the standard approach used by Impromptu Modular). Step 0 now triggers cleanly upon reset without skipping or double-triggering. The fix is live and pushed to the GitHub repository!

  • Windows Binary Updated: I’ve updated the pre-compiled .vcvplugin binary for Windows in the GitHub Releases section.

  • Mac & Linux Compilation Request: Since I develop on Windows, I’d really appreciate it if Mac and Linux users could try building the module from source to verify there are no cross-platform compilation errors.

  • Mac/Linux Binaries: For those who manage to build it successfully on Mac or Linux, what’s the best way for you to share those compiled .vcvplugin files with me so I can host them in the release section for non-technical users?

Freezer Labs Git Repo

Thanks again for all the guidance and support!

2 Likes

I recommend wiring up the GitHub actions that build all platforms and update GitHub releases. After pushing you can go to your actions and see the build results so that you can fix build problems that show up on the other platforms. They’re usually easy to fix.

For an example and template repo that has this set up, check out Paul-Dempsey/GenericBlank: Template for a VCV Rack Blank module

2 Likes

Hi everyone,

Thanks to @pachde (Paul Dempsey) for all the help and guidance!

To be completely honest, I’m still figuring things out as I go and half the time I don’t fully know what I’m doing with C++ or Git workflows, but I managed to get the automated builds set up:

  • Automated Multi-Platform Builds: GitHub Actions are now live! Every push to main automatically compiles the module for Windows, Linux, Mac Intel (x64), and Mac Apple Silicon (ARM64).

  • Nightly Builds & Release Automation: I’ve also implemented Nightly builds, and pushing version tags (like v1.0.0) will now automatically publish complete release packages for all platforms.

If you are on Mac or Linux and couldn’t compile the module from source before, you can now grab the latest pre-built .vcvplugin binaries directly from the gitlab repository pre-release module.

Thanks again to everyone for the ongoing feedback and support!

5 Likes

Uploaded a demo showing some of its features.

2 Likes

I did a test integration with the Rack Plugin toolchain and the plugin passes all of our integration tests with flying colors. Great job! Ready for submission to the Rack library. :slight_smile:

And it works great on GNU/Linux.

2 Likes