mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.4k stars 1.26k forks source link

route Auxiliary through decks #8933

Open mixxxbot opened 2 years ago

mixxxbot commented 2 years ago

Reported by: ronso0 Date: 2017-09-10T14:50:31Z Status: Confirmed Importance: Wishlist Launchpad Issue: lp1716235


For the wishlist: It would be helpful being able to route an auxiliary input through any of the regular decks in order to apply EQs and effects to it in an intuitive way, like it can be done with vinyl passthrough, and change the decks while mixing.

Context: I mix external sources like internet music or mobile players with mixxx tracks. I want the flexibility to have this input available on various decks. So far this is only possible by assigning a DVS/input device to multiple decks. Using aux inputs is no option while playing live because it requires reconfiguring the sound routing.

I have no specific idea about a proper GUI implementation, yet. The simplest way could be a menu like we already have it for DVS options.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2017-09-10T15:26:53Z


Related: Bug #⁠1407222

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2017-09-10T18:25:14Z


Do you use vinyl control and Aux? What is the reason to not use an effect rack for Aux and the Aux x-Fader orientation?

Do you use a two channel controller? Which one?

If the controller is the issue, we may consider to remap the controller for bus effects like current Shade.

Maybe we may consider to give such a mode first class support.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2017-09-10T20:02:29Z


I route the line-in of my Reloop Terminal Mix 2/4 as Vinyl Control passthrough to a deck, mostly deck 1. I don't use control vinyl to play mixxx tracks.

Point is, when I have a mixxx song playing on deck 1, I can't mix in the external/passthrough sound because this is also bound to deck 1 and available there only.

If I'd use Aux for that, sure I'd have effects and crossfader available, but EQs and volume fader are essential for my way of mixing, and the controller mapping is perfect.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2017-09-10T22:41:27Z


I think Daniel was alluding the possibility of routing the auxiliary input to an effect rack with an EQ effect loaded in it. That could work, but IMO it is an ugly hack, not really a solution. I think ronso0 is asking for a way to set any deck to any configured sound card input.

I do not like the current implementation of auxiliary & microphone inputs and samplers as separate from decks for the reasons ronso0 described. I think all the EngineChannel subclasses should be consolidated and able to be switched between different modes (normal deck, input passthrough, remix/sampler deck) like Traktor but without having a fixed relationship of each input to each deck. This would be a huge project and require refactoring pretty much the whole mixing engine.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2017-12-04T23:11:36Z


We can do this already. You can assign one input, from your mobile device to all decks vinyl control. Now you can decide via the pass-through switch, through which deck this should play. Does this solve the bug for you?

I do not see a use-case for routing Mics and samplers trough decks. Because in case of mics, you can use the vinyl-control inputs as well, in case of samplers, load the track to a deck. Is there any?

We may consider to extend the orientation switches for L/M/R/Ch1/Ch2/Ch3/CH3 this would be quite easy. But is this understandable from the users perspective?

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2017-12-05T15:20:49Z


Okay, I wasn't aware that we can assign one vinyl control signal to multiple decks. That solves the bug for my use case.

In general I still think it would be better to route just the Aux signal to a deck because apparently Mixxx is trying to detect a vinyl control signal no matter if I actually use it, and thereby spams the log with messages like this Warning [VinylControlProcessor 1]: VinylControlProcessor could not write signal quality report for VC index: 0 Also the buffer underflow count is increasing rapidly, though I don't hear any pops and latency meter tells me everything is fine.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2017-12-05T16:52:25Z


Do you have no buffer underflow reports if you use Aux instead of talkover? This seems to be a separate issue.

The logfile spam is also a separate issue since it should also not happen if you use a real vinyl on you turn table.

How do you like the L/M/R/Ch1/Ch2/Ch3/CH3 idea?

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2017-12-10T18:35:21Z


The buffer underflow happens for Aux as well. But only when I set Terminal Mix 2/4 as output device (48000Hz only) and internal Conexant CX20590 (44100Hz) as input device. When I configure them the other way around (Terminal as input, Conexant as output), there's no underflow.

Re: L/M/R/Ch1/Ch2/Ch3/CH3 from the technical point of view this would be what I proposed, all EQs and effects could be used for Aux? Anyway, I don't like it very much to extend the orientation buttons in the Aux section because user would have to cycle through settings to discover that it can also be set to Ch1, Ch2...

Instead of creating a completely separate Aux routing section somewhere in decks, what about extending the Vinyl Controls by the configured Aux devices? [Vinyl On] [Vinyl mode] [Cue mode] [Pass] [Aux1] [Aux2]

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2017-12-10T19:10:02Z


From the UI aspect that could makes sense. But the L/M/R bus is still active than. That can be confusing. Will Aux than be passed directly for instance to the L Bus AND to the decks? Or should we force the routing button to "Ch1" in this case?

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2017-12-10T19:20:07Z


What is you Mixxx sample rate and API? Normally all soundcards support 48000 Hz. So you have to pick 48000 Hz in Mixxx.

Maybe we can catch your case before and warn the user. I am only afraid hat the underlying sound API hides these infos from us.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2017-12-10T23:22:50Z


I imagine that the L-M-R bus in the Aux unit would be ignored as soon as Aux is assigned to a deck (i.e. greyed out with a proper tooltip), and only the decks crossfader orientation is used (exposed in skin or not) as one would expect when playing a regular track. You're right, anything else would be confusing. If a user routes Aux to two or more decks he would be aware off that. I think that can be a nice toy, for example one could use different effects/filters on the same source: Aux copy1 is just the bass, Aux copy2 is the isolated voice with a reverb.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2017-12-10T23:28:36Z


Yes, the Conexant soundcard supports 48kHz, too. My mistake.. API is alsa. Buffer underflow happens no matter which latency I set.

Also, I now understand that Mixxx should expect and check the DVS signal no matter if Vinyl control is enabled for a deck: you can check the signal quality in the spinny and adjust it before controllign a track. But Mixxx should not throw errors if passthrough is enabled, that makes no sense since no control vinyl is playing then.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2017-12-12T00:41:56Z


The longer I think about this, shouldn't all controls in the Aux section be blocked? FX assign buttons, orientation, even Gain?

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2017-12-12T06:55:00Z


Yes, that would be an option.

Is there really a use case for switching the aux inputs to decks and back during a gig?

We can also think about a dynamic routing for the vinyl control inputs.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2017-12-12T11:14:34Z


I didn't do this during live gigs, but in sessions with friends we sometimes try to blend in snippets from news shows and other stuff we don't have available in the library ("Dude, I have this BANGER track on my phone, let me drop that!!"

What do you mean by dynamic routing?

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2017-12-12T12:13:51Z


I mean if switching between passthrough and plain Aux is a use case? .. or will the user use Aux only though decks in this case an never as plain aux.

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2017-12-12T15:39:01Z


I mean if switching between passthrough and plain Aux is a use case?

Can't really tell.. I only abuse passthrough for line inputs, not for 'real' phono. But having the possibility to do so without having to go to Preferences would be appreciated I guess. If its there people will find a way to use it.

Another use case: I remember sessions where we also used a loop station and had to pipe its signal through my controller since the main mixer didn't have enough inputs.

geikha commented 3 months ago

I was going to create a feature request for this but found this issue so I'd like to bring attention to it again.

I think this would be incredibly useful for experimental setups. I can easily imagine routing audio from Ableton or SuperCollider to MIXXX.

My personal use case would be with Livecoding. Here's a small example of me livecoding and using MIXXX at the same time (seek to 13:50)

https://youtu.be/2hUDS1MQJmU

Here I'm livecoding using another free and open source project, called TidalCycles.

This routing idea is something I have already tried via having a single CDJ and my computer sent to an analog mixer. Being able to replicate this digitally would be super powerful! Specially in the future when Ableton Link gets integrated into MIXXX.

I hope this sparks ideas for other creative setups and makes it clear as to how useful this feature would be!