-
Notifications
You must be signed in to change notification settings - Fork 84
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
Fx by @jnonis #765
base: old-baseline
Are you sure you want to change the base?
Fx by @jnonis #765
Conversation
* Added Insert FX and Juno Chorus * Added lock to inser FXs to avoid crashes. Code clean up. * Added delay implementation * Added LP Filter Effect * Added generic fx paramters handling * Save Insert FX parameters into performance * Fix for Insert FX paramters ui * Added Bypass to FX Parameters * Fix for Bypass and Removed Logs * Added Mod Distortions DS1 and BigMuff * Fix for distortions * Added Tal Reverb 3 * Process TG in stereo * Insert FX UI improvements * Added Ping Pong Mode and Mix control to Delay FX * Fixes for Tal Reverb 3 paramteres * Code clean up * WIP: Added Send FX * Save Send FX configuration in performance * Adapted Plate Reverb as AudioEffect * Added Backward compatibility for performances * Handle Midi clock and resolve BPM * Fix for FX Params * Delay FX: Support for tempo sync * Not working Arp * Almost working Arp * Removed log from Arp * Added Arp to TG menu * Arp fixes * Handle Arp as a Midi FX * Store Midi FX settings into performance * Save Tempo into Performance * UI fix for Tempo display * Added MVerb effect * Added 3 Band EQ * Refactor Effect directory * Fix for MVerb * Added RKR / Zynaddsubfx Phasers * Fix missing Send FX setup for Phasers * AudioEffect refactor * Fix for A Phaser parameters * Fix for Reverb backward compatibility * Fix for MVerb port * Fix for RPi 1 Stereo output * Fix for FX UI * UI improvements * Added Flanger * Fix for Midi Clock Sync --------- Co-authored-by: jnonis <[email protected]> Co-authored-by: Javier Nonis <[email protected]>
Build for testing: |
@diyelectromusic maybe you'd like to have a look at this? |
I'm not sure what you want me to say. That is an awful lot of code changes with implications it is almost impossible to anticipate. Considering how many times in the past you've resisted some of my changes on the basis of not making the code too complex, seeing this and all the network additions - well, to be honest, I just think they will make the codebase significant less maintainable than it already is - and maintaining it as it is right now is already pretty tough. Will these people be responsible for maintaining these huge changes if accepted? There is certainly no way I can get my head around the code that is being proposed and it is almost impossible to anticipate the impact on the real-time performance of the system across all Pis with so much additional processing being added as part of the run-time scheduling itself. In short, I'm afraid I just don't know where to start thinking about the ramifications of all this new code... Kevin |
Hi @jnonis welcome to MiniDexed. I tried your branch and I really like it. And to address @diyelectromusic's concerns, we need to
Thanks for the diagrams, these are really helpful. One could think that the insert FX should be mono since the TGs are mono. But don't some FX take mono as an input and produce audible stereo on the output? Or would you move all such FX to chain FX? Maybe another option would be to just disable FX altogether when an 8 outputs configuration is detected. My assumption is that the (likely very small) user group who uses 8 outputs is clearly doing so in order to do further postprocessing outside of MiniDexed, and hence probably is not interested in built-in FX. So personally I'd not worry about this use case in the context of FX. @diyelectromusic what do you think? My line of thinking is that if I have 2 instruments, say E. Piano and Bass, and I want to have a (stereo) chorus on only one of them (E. Piano but not Bass). Isn't that a typical application? I know that some of our users really like the idea of sends, but I am unsure how this is done for chain FX without overboarding complexity and on the low-spec CPUs we are dealing with. And wouldn't the Arp typically come after the seq/loop? All of this is not exactly my area of expertise. Maybe @Banana71 would like to add to this discussion? |
That is essentially the assumption when I implemented it - yes. IIRC if 8-output mode is selected then all the existing stereo, pan, FX processing is skipped, so I'd say do the same here - basically just add to what is already there fx wise and not worry about 8-ch output. Kevin |
My Raspberry Pi 4 doesn't work at all. The display remains dark and no sound is produced. Since I can't easily access my HDMI port, I can't see the log. When I find time, I'll try a different Raspberry Pi. |
I finally built a new miniDexed (Raspberry Pi 3 Model A+) and can now test the effects. @jnonis did a good job.
|
Hi, @Banana71 I've also added support for "As Played" velocity to the Arp, just set the velocity at 0. |
Do not merge this PR. We need a PR against master that has no conflicts.
Looks like @jnonis has done a great job with effects. Unfortunately it was not opened as a pull request back then and our code has deviated since, to his changes don't cleanly apply to master. Hence, applying them against an old baseline to get builds for testing in this PR.
This has:
Aapparently one effect can be active at a time for each TG ("insert effect") and one global ("send effect").
Every TG also has MIDI effects, currently a simple "Arp".
It also has a new global "Tempo" option, which is used by the Arp.