More than AUDIO 16?

Expanders aren’t the best solution either. Users shouldn’t think of the right Audio communicating with the left module (or vise versa) which is the point of expanders. They should think that both modules are communicating independently to the audio driver.

1 Like

I‘ve been looking through Rack‘s code for the last two weeks and noticed many good design decisions. I believe you come up with a well-thought-out solution for this demand too when time will come :+1: :slightly_smiling_face:

1 Like

Yes, this would be another good solution, and doesn’t work at the moment, as reported by my bug report. But what happens if the user creates 2 audio modules, configured to the same audio channels? Maybe just adding the signals would be a good idea, or showing a warning.

“You are right, and you might have noticed that I removed the VCV logo …”

Still looks 100% Grayscale, but … none of my bizness. :crazy_face:

1 Like

Given Rack already has the capability to shift a group of modules out of the way, I like the idea of an Audio module that dynamically expands in size to the chosen input/output configuration more than adding separate expanders.

On a related note, it would also be good if we could have multiple audio modules which addressed different devices. Currently that can’t be done without glitching/crashes but I wonder if that is just because Rack isn’t currently coded as to allow/support it, or whether it is a fundamental limitation that technically can’t be done?

There is a fundamental limitation of needing to sync the samplerates of all audio interfaces used in the system.

I don’t think there is such a limitation. You can already use a different engine samplerate than audio interface samplerate.

I don’t know if Rack handles the audio output or this is done independently in the modules, but it would seem to me that having virtual io ports for audio would be a safer way to do things. I often have crashes because of conflicting soundcard occupations by different programs. For example if I make a patch in VCV, and use my usb soundcard, then I start Ableton and it will tell me to choose an audio device because the soundcard is in use by another program. But when I close Rack and enable the soundcard in Ableton, Rack will crash if I didnt disable the output before closing it.

A better approach would seem to me to have a seperate, consistent audio in/out manager where audio channels from different devices can be selected to be made available to modules. Then when a device is occupied, Rack can disable those channels and automatically connect them when they become available. Meanwhile the module can just connect to the virtual in/outs. This would also mean patches will be more useable across setups because there’s no need to guess which audio modules were connecting to which device.

2 Likes

There is no limitiation, but you’ll get phasing when combining different audio interfaces. It won’t matter that much for audio out. For audio inputs you need some method so synchronize sampling of the devices, which is done in many cases using ADAT or wordclock, I guess.

Perhaps we mean different things by using the word “limitation”.

Technically you can use multiple interfaces via asio4all, for example. In practise, unsynced combos of audio interfaces usually never work well in terms of latency, stability and not having clicks and other artifacts, or don’t work at all.

At the same time, all the successful pairings work because of the ability of one interface to slave to another’s clock. For example, Babyface Pro plus ES-8 via adat.

1 Like

When I try and use say 2 audio modules addressing different devices, even if those devices have their clocks synced, and everything is using the same sample rate etc, it seems like the audio engine does not know which it should be using as ‘master’. By that I mean, if you turn the CPU timer on, the amount of ms used by each audio module occasionally ‘flips’ from one to the other. One will have a relatively large red bar and the other almost none, then a ‘flip’ happens and the one which had almost no red bar goes high and the high one goes low. When the flip happens you tend to get glitches. (I’m on a Mac)

To prioritize and organize existing needs in hierarchies (and thus investing different resources -or no resources at all- into each one of them) is a fundamental requirement of any kind of development.

The need described in this thread seems to concern a very very small amount of people compared to the totality of VCV users. If this is the case, isn’t it reasonable to accord this need a very low priority?

i know that this need concerns only to a small amount of people because the big amount of people, who uses eurorack and hardware as a sound source, can’t use VCV as aa add on to their systems at the moment, because of this audio-output-limitations.

with always only have the people in mind, they allready use a system, and only be focused on what they need, it’s hard to explore new fields … so, let me tell you :wink: - in most cases development expansion and growth comes after creating asome new ways for maybe some new clients :wink:

1 Like

Really? It’s quite easy to imagine scenarios requiring more than 16 channels of i/o. In fact, I don’t need to imagine it, I could use it right now! Bunch of drum triggers, maybe even bi-directional drum triggering. Bi-directional CV mod to/from eurorack. Individual processing. I could burn through 16 channels in nothing flat. And that’s before we get our hands some of the stuff that’s coming, like the Malekko Varigate and Voltage Block, which I definitely want to use with hardware… You could use 16 outputs or more just with those.

I haven’t got to more than 16 yet, but I have another scenario: once I have finished a patch, I am routing the individual components to separate channels in Ableton Live using Soundflower, so I can send them to my co-collaborator for building on/mixing.

Hi! I’d like to have the possibility to use more than 16 ins/outs at the same time too.
Currently, I’m experimenting with TidalCycles, VCV Rack and Ableton Live where TidalCycles is at the core of the setup controlling everything is going on; in fact I trigger samples and midi data from Tidal, I process everything on Rack and I split sound sources on multiple channels on Ableton Live for mixing and refinements.

The routing in fact is like this:

TidalCycles -> plays different samples on different channels through Soundflower and sends midi data to control parameters on Rack

Rack -> receives audio from different channels to audio inputs of Soundflower interface (at the moment only 16, but potentially until 64 channels) and sends processed audio to Soundflower 16 outs

Ableton Live -> receives audio from every Soundflower output to a channel (at the moment only 16)

I tried to replicate the workaround of @frank but I think I missed something; I checked your code, I forked Rack from Github and applied your changes on my local repository.

Then, I followed the documentation at https://vcvrack.com/manual/Building.html#setting-up-your-development-environment to build from source and now I have the Audio Interface 32 on my core modules but, unfortunately after the make run, I only have Core Modules because it says “Library is disabled in the development mode”. Maybe I followed the wrong guide? I see in your screenshot that you have the possibility to add VCO-1, so I’m definitely missing something.

Unfortunately It’s my first time with C++ .

Thank you,

Federico

edit: Everything was ok, just needed to click on the executable instead of running with make run. Thank you! As soon as possible, I’ll try working on the audio interface 64 based on your 32 design. :slight_smile:

1 Like

jack will support as many channels as a single audio interface exposes to it, assuming you use the third party plugin for it. (at least, on computers the plugin works on.)

the solution i used is to just have each interface module pooled in the back-end, so adding more modules just communicates to more things. if i had to work with a specific fixed number of channels the same technique would probably work, but adding an offset knob/menu that let you pick which batch of 4/8 it was interfacing to.

1 Like


Ben made Audio64

7 Likes

loaded the pack - but there is no audio64 :flushed: