-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lv2: Do not duplicate mono plugins #7387
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quick look over review
Are there any mono Lv2 plugins you'd recommend testing this with? |
This is very likely buggy for mono plugins. From looking at the code, it looks like in that for mono plugins, |
@messmerd Can you please review my enum, which I want to use for input and output Combo Boxes? Most should be correct (according to Discord). For the option "PC Output, Stereo Plugin:" in "Left", I was not 100% sure if the right plugin port should be averaged with the left or be discarded, but I assumed the latter. enum LR
{
// PC (=Pin Connector) mapping:
// For a Stereo Plugin, this means the Left->Left and Right->Right bits are set,
// For a Mono Plugin, this means all (both) bits are set.
// This translates as follows:
// PC Input/Output, Stereo Plugin: Forward stereo normally
// PC Input, Mono Plugin: Average both LMMS ports to plugin input
// PC Output, Mono Plugin: Duplicate output to both LMMS ports
Dual,
// For a Stereo Plugin, this means only the Left->Left bit is set,
// For a Mono Plugin, this means only the Left->Mono bit is being set.
// This translates as follows:
// PC Input, Stereo Plugin: Forward left LMMS port to left plugin port,
// Fill right plugin port with zeroes
// PC Input, Mono Plugin: Forward left to mono plugin input,
// Do not use/touch right
// PC Output, Stereo Plugin: Forward left output to LMMS port,
// Right LMMS output port keeps values from right LMMS input port
// (This means the right plugin output is being discarded)
// PC Output, Mono Plugin: Forward output to left LMMS port,
// Right LMMS output port keeps values from right LMMS input port
Left,
// Symmetrical to Left
Right
}; |
Btw, another possibility would be, for Mono plugins, only allow Dual for now. This would still cover all current use cases. |
@JohannesLorenz It sounds like what you're considering implementing is just another form of L/R routing. We're planning on eventually using pin connectors instead, so I wouldn't want you to waste work on a 2nd L/R routing implementation that's just going to be replaced. If you add any sort of L/R routing functionality, we'd need an upgrade routine when it is replaced with the pin connector. For now, I think you should do this unconditionally without offering any ComboBox to the user:
These are the same defaults for mono plugins that the pin connector uses. |
Status: This is waiting for #7459 . |
Co-authored-by: Dalton Messmer <[email protected]>
78724d3
to
7366376
Compare
This merges
Lv2ControlBase
andLv2Proc
into 1 class, as discussed in Discord.The PR is preparation for adding L/R Routing, as proposed by @messmerd .
It already should be reviewed:
Lv2Proc.cpp
diff, as there, we now add together channel inputs and duplicate channel outputs for mono plugins, instead of duplicating processors.