summaryrefslogtreecommitdiffstats
path: root/src/engine/enginemaster.cpp
AgeCommit message (Collapse)Author
2019-11-15Removed statistics from EngineMasterDaniel Schürmann
we have the values impicit by the outher scope statistics in SoundDevicePortAudio
2019-01-12Merge remote-tracking branch 'upstream/2.2'Daniel Schürmann
Conflicts: CHANGELOG.md LICENSE build/wix/LICENSE.rtf src/defs_version.h src/engine/controls/ratecontrol.cpp
2019-01-06move EngineChannel classes to their own folderBe
2018-12-29Merge pull request #1753 from daschuer/lp1782568Daniel Schürmann
Fix broken Mic mute button (used in Deere) and ...
2018-09-15Fix aliasing violations when using SampleUtil::copy2WithGain. Bug #1770771.RJ Skerry-Ryan
2018-07-19Respect volume control of the microphone channelsDaniel Schürmann
2018-07-19Respect microphone mute control, used in Deere.Daniel Schürmann
2018-04-05delete all leaking COsDaniel Schürmann
2017-12-21rename [MicrophoneMix] effect hook to [BusTalkover]be_
2017-12-21rename group string for microphone mix effects busbe_
2017-12-19only apply master EQ to master output, not record/broadcast signalbe_
2017-12-10minor code cleanupbe_
2017-12-06clean up initialization of ChannelHandlesbe_
and their registration with the effects system
2017-11-25add [Microphones] effect bus processingbe_
This allows for routing all microphones to one effect unit, which can save CPU cost by processing the same effects only one time.
2017-11-25fix non-EngineChannel effects routingbe_
and clarify variable names for crossfader bus handles
2017-09-16Merge remote-tracking branch 'upstream/master' into postfader_effectsbe_
2017-09-16Merge pull request #1335 from daschuer/metronomDaniel Schürmann
Metronome Effect + Effect Sync refectoring
2017-08-27Removed unused fields from GroupFeatureState and scale length by secondsDaniel Schürmann
2017-07-29Merge remote-tracking branch 'upstream/master' into balance_effectDaniel Schürmann
Conflicts: src/engine/enginemaster.cpp src/engine/enginemaster.h
2017-07-28Merge remote-tracking branch 'upstream/master' into postfader_effectsbe_
2017-07-16Ramp balance knob to remove cracklingDaniel Schürmann
2017-07-05add TODO commentbe_
2017-07-05"round trip latency" -> "microphone latency compensation"be_
new names are more descriptive of what it does
2017-07-05add some comments to EngineMaster::processbe_
2017-07-05return correct buffer from EngineMaster::getSidechainBufferbe_
2017-07-04factor out application of master effects to its own functionbe_
2017-07-03"talkover mix mode" -> "microphone monitor mode"be_
"Talkover mix mode" is Mixxx-specific jargon. "Microphone monitor mode" should be clear to people familiar with general music technology jargon. Also, move the Measured Round Trip Latency spinbox next to the microphone monitor mode combobox.
2017-07-03do not delay outputs with software monitoring of microphonesbe_
Delaying the outputs only adds latency. It does not change that the user must compensate for the latency by playing earlier to play on beat.
2017-07-01remove redundant non-ramping ChannelMixer functionsbe_
These were only used for tests and created a big maintenance burden. They also made it so the tests were not actually testing how Mixxx behaves.
2017-06-26apply master channel effects to both master & booth outputsbe_
2017-06-26clarify comments regarding direct monitoring talkover mix modebe_
2017-06-26use full round trip time for latency compensation delaysbe_
2017-06-22clarify TODO commentbe_
2017-06-21move input latency compensation logic from EngineMaster to DlgPrefSoundbe_
2017-06-21add a booth delaybe_
This may be useful when the main speakers are significantly farther from the DJ than the booth speakers to align the sounds the two speaker systems.
2017-06-21refactor TalkoverMixMode handling for readabilitybe_
2017-06-21consolidate RECORD_BROADCAST and SIDECHAIN AudioPath typesbe_
2017-06-21move sound I/O registration for non-EngineChannels to EngineMasterbe_
These should not be PlayerManager's or SoundManager's responsibilities.
2017-06-21add a record/broadcast inputbe_
so users do not have to use external programs like Audacity and BUTT when using external mixers
2017-06-20add talkover mix to record/broadcast signal in direct monitor modebe_
I somehow forgot to add this in a previous commit.
2017-06-20fix double processing of headphone input latency compensation delaybe_
2017-06-13pull ChannelHandleFactory out of EngineMaster and into MixxxMainWindowbe_
so both the engine and effects system can access ChannelHandles. This allows effects to store state for only two output handles. Before, each channel was used as its own output for in-place effects processing. That required the effects' state matricies to consume much more memory. Now, they only need to store the state for each input channel going to the master and headphone outputs, instead of every channel going to every other channel.
2017-06-12apply effects in place for mic talkover channelsbe_
to avoid unnecessary buffer copies
2017-06-12avoid modifying inputs to ChannelMixer::applyEffectsAndMixChannels(Ramping)be_
This was causing popping sounds on the master output when routing microphones to headphones because ChannelMixer::applyEffectsAndMixChannelsRamping was applying gain to the channel buffer. To work around this, move the application of gain to EngineEffectsManager::processPostFaderAndMixRamping, where the channel input buffer is copied into one of EngineEffectsManager's temporary processing buffers. Using EngineEffectManager's buffer avoids allocating a temporary buffer for every EngineChannel. Also, remove the unused ChannelMixer::mixChannels(Ramping) functions. If their behavior is desired in the future, nullptr can be passed as the EngineEffectsManager* argument to ChannelMixer::applyEffectsInPlaceAndMixChannels(Ramping).
2017-06-11apply effects to individual deck outputsbe_
Do not modify input buffers for processing effects on headphones, but do modify the buffers in place for the main processing. This also allows for some optimization by avoiding unnecessary buffer copying.
2017-06-11split effects processing into prefader and postfader stagesbe_
EQ and QuickEffect racks are prefader to save CPU processing. When they were post-fader, they had to be double-processed for headphones.
2017-06-10apply effects to both master output post-fader and headphones PFLbe_
This required two major changes to the effects system: 1. Making effects track their internal state for each input going to each output, instead of sharing a state only for each input. 2. Splitting the single combined effects input/output buffer into a separate input and output buffer. TODO: fix signal path tests
2017-06-09calculate input latency for users from measured round trip latencybe_
Spare users the math so they can just copy the round trip time measured by jack_iodelay or a similar program.
2017-06-09input latency compensation for microphone inputsbe_
Selectable between 3 modes: * Mics routed to master * Mics routed to master & booth * Direct monitoring; mics not mixed in software TODO: latency compensation for auxiliary inputs
2017-06-08fix application of headphone gain in split cue modebe_
Previously, in split cue mode, the master gain knob applied to the right side headphone and the headphone gain knob applied to the left side headphone. Now, the headphone gain knob controls both sides of the headphones in split cue mode. This fixes https://bugs.launchpad.net/mixxx/+bug/1458213 Also add an optimization to skip PFL mix processing when no headphone output is configured.