Any multi-channel audio file player?

I use the @synthi PolyRec to record surround sound music. I’m looking for a module that can play a multi-channel audio file. Something like Complex Simpler would be nice, but working with all the channels in the audio file, not just the first two. Or just something that will let me start and stop playing the multi-channel file with an output of each channel (or poly-out). Does anyone know if a module like that already exists?

isn’t one of the nysthi modules what you want?

Aren’t they all stereo out?

I’m after at least 6 channel out (FL, FR, C, LFE, RR, RL)

I don’t know. for some reason I didn’t think so. but that doesn’t mean much.

The other day I was looking into audio-players in Rack, to see if I could get a multi-track/master-tape workflow going. We have the recorders (NYSTHI), but unfortunately all the players disqualified because they distort the sound which is a no-no. The most distinct effect is that of a lowpass filter. My theory is, that for some reason they all (I think) insist on implementing vary-speed features, with focus on being sample players/manglers, and if that feature is in the audio-path it could be what introduces the distortion, I don’t know.

We need a multi-track, master-tape type module, kind of like NYSHI’s musical box modules, but they must not distort the sound. It’s one of those things that could either drag me into module development, or into using a DAW for recording :pensive: For me that would also be, maybe, the last needed item for realizing Andrew’s vision of “Rack as the DAW” which I actually believe in, and would like to use it for.

I’m tempted to dial up MindMeld (@marc_boule @steve) for the right/proper/Mercedes solution here, but I dare not for the risk of sounding ungrateful :slight_smile:

Even if the main purpose isn’t to allow varispeeding the audio, resampling would kind of be required because Rack could be running at a different sample rate than the played audio file. Of course the resampling could be completely bypassed when the sample rates match. And there are also various high quality sample rate conversion algorithms available, that could be used.

1 Like

Agreed! I’d like to layer recorded tracks at the highest quality within Rack.

Rack gets me away from the software development that takes up the rest of my time, so I’ve been trying to avoid slipping into building modules. But I admit I started considering it.

1 Like

Exactly the same for me.

I’ve been thinking about doing something for this, but designing it (not just in terms of the module panel, but the features/workflow) is somewhat involved. I wouldn’t necessarily want to make just a straight simple playback module for audio files that happens to support more channels than stereo.

1 Like

That would be awesome!

Sure. When I’ve been thinking about such a module, I’ve been thinking of both recording and playback, basically like a studio tape-machine. But the playback is the most pressing.

The most pressing features I’ve been thinking about for playback are roughly:

  • Load a single multitrack WAV file, or import single WAW file into designated track.
  • Arbitrary number of tracks, but if impractical then down to say 12 would be very useful.
  • Global play, pause, stop - triggerered.
  • Per-track play, pause, stop, overriding the global if patched - triggered.
  • Per-track nudge, say x miliseconds + x seconds, backwards or forwards. To get timing between tracks/takes synced up.
  • Global rewind to start + jump to x seconds on the timeline.

Cutting, moving, splicing, inserting, editing would be nice, but now we’re into the advanced edition…

Nice concrete ideas!

Unlimited tracks would be impractical because Rack doesn’t AFAIK support dynamic module parameter and port counts. Also that would make the GUI a lot more challenging to do.

1 Like

Yeah. Taking a cue from ShapeMaster and MindMeld mixer: Each input and output could be a poly cable. That’s 16 (mono)channels. If a reasonable panel design lends itself to it, then perhaps each of those could be x 2, 3 or 4, for more channels. With x=2 it would integrate perfectly with the 16-(stereo)channel MindMeld mixer, which is highly desirable. For x>2 the mixers can be chained. I think it’s fine if this is a big module, that’s to be expected, and is better than being crippled.

Just to be pragmatic… I’ll bet if you asked @synthi to fix his player he would. If it truly is just an artifact of sample rate conversion it would be extremely easy to fix. I’ll keep my algorithm secret, but it’s trivial…

1 Like

you could separate each channel to mono and play them with the quad Simpler , but how are you monitoring it ?

It’s great to wake up, read the forum and find you’ve put far more thought into this than my meagre attempt :slight_smile:

I don’t want to side-track the topic, but having a n-channel rather than stereo mixer would be helpful for surround processing too. @marc_boule / @steve might have far better ideas about this. E.g. for MindMeld Mixer, being able to specify for each track which channel I want it to mix to, then being able to output each of those specified channels. Maybe the channel assignment UI could be similar to the way a group number is assigned, and have a poly channel output jack? I need to think about it about more.


Sure, but I’m looking for a less clunky way of doing it. For simple surround processing, we’re talking two quadsimplers. Currently I’m taking each multi-channel audio file and splitting it into six using ffmpeg. Then loading the six files into two quadsimplers, and patching six start/stop etc.

I’d rather just do it in one go.

The AUDIO-* modules already implement resampling, right? So under the assumption that the implementation is close to optimal, I guess a person could just grab the code for it from there…

how is it more clunky then doing the same on a daw ?

I doubt we’ll see any surround processing in vcv any soon … not exactly at the top of priorities I presume.

I’ve been making surround music in just VCV Rack, no DAW, for years. If I had a multi-channel player, it would save having to split each audio source file and load six times, and patch six times. Typically, my source audio files are from other VCV Rack patches I have recorded.

Technically, a simple multi-channel player probably isn’t much more complex than something like QuadSimpler; imagine a hypothetical MultiChannelSimpler - one file to read, one set of controls applied to each channel, and possibly a poly-out. If I didn’t spend the rest of my time in major software development projects, I’d have a go at it myself.


  1. I have a multitrack importer player but I never released it because it’s unfinished. It’s a variation of the musicalbox 1. (the final idea was/is 16 tracks, with mute, solo, move/nudge, fadein fadeouts, ecc ecc). Currently I’ve stopped any dev of vcvrack
  2. if you import, let’s say a 96kHz wave 32 bit float and you have VCV rack sampling rate set to 96kHz, and you don’t move the varispeed you’ll get exactly what is in the loaded file, no artifacts
1 Like