Skip to content
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

Add Phaser effect to LMMS #6540

Draft
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

LostRobotMusic
Copy link
Contributor

Replaces #5168, companion PR to #5873. I already listed most of the features in the initial post, so I won't bother here.

I've fixed the bitrot issues that built up over time, and also added a few internal improvements (most notably 2x oversampling to every source of distortion). I have no idea how to build a "good" oversampling filter, but for an effect of this nature I don't think absolute perfection is required in this aspect. Just as long as most of the aliasing is removed. I just used two lowpasses each for the input and output, cutoff at exactly Nyquist of the original sample rate.

A screenshot of the UI (thanks to H4CKTON3 for the assistance)
image

This is a very old video so it's out of date in some aspects, but it provides an easy-access showing of some of its features:
https://www.youtube.com/watch?v=_Zyd7OcZRO8

plugins/Phaser/PhaserEffect.h Outdated Show resolved Hide resolved
plugins/Phaser/PhaserEffect.cpp Outdated Show resolved Hide resolved
@Monospace-V
Copy link
Contributor

As per the UI, I am lead to believe AMNT is for amount.
A lot of the rest of LMMS uses AMT. Seems best to fit with convention.
Additionally, the "FRQ" dial on the top right, is that frequency? It would appear that the rest of LMMS, including a knob on your UI, uses "FREQ". I understand it may be too small a space to type "FREQ" in. Is there less space?
Can you clarify these, though? I'm not familiar with the layout of phaser effects.

Copy link
Contributor

@allejok96 allejok96 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know absolutely nothing about filters and such, and I haven't studied the calculations. The UI is sleek even if I don't understand what all the knobs does. This probably calls for some gitbook documentation later... All I can look at is general coding style and it looks very good. Just left a few remarks.

@@ -0,0 +1,3 @@
INCLUDE(BuildPlugin)

BUILD_PLUGIN(Phaser PhaserEffect.cpp PhaserControls.cpp PhaserControlDialog.cpp MOCFILES PhaserEffect.h PhaserControls.h PhaserControlDialog.h ../Eq/EqFader.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since EqFader.h is reused here it would be a good candidate to move to src/gui/widgets

plugins/Phaser/PhaserEffect.cpp Outdated Show resolved Hide resolved
plugins/Phaser/CMakeLists.txt Outdated Show resolved Hide resolved
plugins/Phaser/PhaserEffect.cpp Outdated Show resolved Hide resolved
plugins/Phaser/PhaserEffect.cpp Outdated Show resolved Hide resolved
@PhysSong PhysSong self-requested a review May 15, 2023 07:18
@LostRobotMusic LostRobotMusic added the rework required Pull requests which must be reworked to make it able to merge or review label Jan 2, 2024
@RainbowShatter
Copy link

how do i download this plugin?

@zonkmachine
Copy link
Member

zonkmachine commented May 7, 2024

how do i download this plugin?

You need to build it from source. (edit: probably)

@zonkmachine zonkmachine marked this pull request as draft May 7, 2024 16:33
@RainbowShatter
Copy link

how do i download this plugin?

You need to build it from source. (edit: probably)

How do I do that?

@zonkmachine
Copy link
Member

zonkmachine commented May 15, 2024

You need to build it from source. (edit: probably)

How do I do that?

  1. https://github.com/LMMS/lmms/wiki/Accessing-git-repository
  2. https://github.com/LMMS/lmms/wiki/Compiling
  3. https://github.com/LMMS/lmms/wiki/Testing-Pull-Requests

If you're on a linux machine, this is not particularly hard.
If you're on another machine. This is a bit harder.

For future help on compiling this PR, please join and use our Discord https://discord.com/invite/3sc5su7 group.
Especially the chat room named support is where you ask questions on compiling this.

@zonkmachine zonkmachine reopened this May 15, 2024
@zonkmachine
Copy link
Member

Oopsie!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rework required Pull requests which must be reworked to make it able to merge or review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants