Git Product home page Git Product logo

fire's Introduction

Fire (Version 1.0.1) Codacy BadgeCMake Build Matrix

Alt text

Alt text

1. Introduce

This is a multi-band distortion plugin 『Fire』. It can be used in DAWs which supports AU and Vst3 plugins such as Ableton Live, Fl Studio, etc.

Demo video:

(YouTube) https://youtu.be/sccW_8W_0o4

(Bilibili) https://www.bilibili.com/video/BV17f4y1M7Hm

🎵 Home Page for Wings Music: Wings Music

Hope you like it!

2. How to install

Download from Release Page

Download here

Build by JUCE

Open .jucer file by Projucer then select your IDE to build 『Fire』. If you don't have projucer, you can go to JUCE/extras/Projucer/Builds/... and build it, or download from the latest JUCE release

Note: You should choose Release mode rather than Debug mode(or disable Debug mode) in .fire Exporters page. Build with debug mode will cause high CPU usage.

3. User Manual

『Fire』has a top panel, a spectrogram, four graph visualizers, band effect, and global effect.

3.1. Top panel

  • HQ: 4x oversampling for high quality audio.
  • A/B: switch between A/B to compare.
  • Copy: copy current preset parameters to another(A/B) panel.
  • Preset bar: choose your current preset.
  • Save: save your preset to user folder.
  • Menu: other settings including init, open preset folder, rescan preset folder, open GitHub page, check for new version.

3.2. Spectrogram

  • You can split up frequency to four bands for multiband distortion.

3.3. Graph Visualizer

  • There are four graph visualizers. You can click on each graph to zoom in or zoom out.
  • Top left is oscilloscope.
  • Top right is distortion graph.
  • Buttom Left is VU meters.
  • Buttom right is Width graph.

3.4. Band Effect

  • You can click four switches on the right side of graphs.

  • Drive:『Fire』 has several distortion functions. There are three buttons "L", "S", "E", related to drive knob, and each means "Link", "Safe", and "Extreme".

    • "L" (Link): When your turn up drive knob, the output knob value will automatically reduce.
    • "S" (Safe): If your drive knob pushes your volume too loud, it will automatically reduce your drive value. It also shows reduced value on drive knob.
    • "E" (Extreme): It expands the range of the the drive knob (from around +40db to around +60db) when it is enabled to give more distortion.
  • Retification and bias: Change your distortion shape.

  • Compressor: you can change threshold and ratio for each band.

  • Width: change audio width.

  • Output and mix: for band control.

3.5. Global Effect

  • Filter: you can set lowcut, highcut, and peak. Lowcut and highcut each has four slopes (12, 24, 36, 48) you can choose.

  • Downsample: downsample your audio.

  • Limiter: add a limiter after distortion.

  • Output and mix: for global control.

4. Support the author

我也是一个音乐制作人,欢迎关注网易云音乐:羽翼深蓝Wings

I am also a music producer. Netease channel: 羽翼深蓝Wings SoundCloud: Wings

5. References

5.1. A great example of using XML by johnflynnjohnflynn to save presets to file example. I changed the code to save presets as mutiple files.

5.2. Diode Clipping algorithm from JUCE forum

5.3. Spectrum Analyser by adriannaziel

5.4. SimpleEQ by matkatmusic

6. Update Notes

2024-5-22 (version 1.0.1)

  1. Add a button for more Drive gain (E-Extreme).
  2. Fix a bug of compression settings and width settings can not be set for each band independently.
  3. Add original spectrum (white).
  4. Improve GUI of VU meters.

2022-7-29 (version 1.0.0)

  1. Refactor the code of frequency lines and close buttons.
  2. Fix a crash in Fl Studio of v0.9.9.
  3. Fix audiobuffer pointer bug when setting history array.
  4. Fix the bug of changing presets that might cause wrong frequency line positions.
  5. New close buttons for each band.
  6. Other GUI improvements.
  7. Add Extreme button for more distortion.
  8. Check update when opening the plugin.
  9. Support JUCE 7.
  10. Fix a bug that changing presets doesn't reset new params.
  11. Add a Limiter in the global mode.

2022-7-13 (version 0.9.9)

  1. Fix the bug of freezing distortion graph before playing the audio. (in Logic Pro)
  2. Fix the bug of global mix button phasing issue.
  3. New function! When you move your mouse to the spectrogram, the peak frequency and decibel will be calculated.
  4. New separate bypass buttons for each band.
  5. Improve width graph, reduce CPU usage.
  6. Fix the bug that close button sometimes doesn't work.

2022-6-29 (version 0.9.8)

  1. Fix phasing issue in HQ mode.
  2. Fix low frequency drop in HQ mode.
  • v0.9.3 - v0.9.7 has those bugs

2022-6-22 (version 0.9.7)

  1. Fix HQ not working bug in v0.9.6.
  2. Add fade in/out of frequency text labels.

2022-5-28 (version 0.9.6)

  1. Fix a crash when turn on HQ mode in mono channel mode in Logic Pro.
  2. Improve graphs in mono channel mode.
  3. Fix an issue where graphs are not refreshed before playing in Logic Pro.

2022-2-5 (version 0.9.5)

  1. Smoothed the graph of spectrogram.
  2. Fix Logic Pro crash.
  3. Add GitHub CI.
  4. Fix vst3 bug.
  5. Fix A/B mode bug.

2021-11-18 (version 0.9.4)

Warning: Previous presets won't work, you have to resave your preset!

  1. For VU meters and width graph, each represents to each band instead of global.
  2. Add more details to VU meters.
  3. Add "solo" buttons, change "enable" buttons to "bypass" buttons.
  4. Remove "None" option in the distortion functions, because it causes bug(in version 0.9.3) and you can bypass the band now.
  5. Add bypass buttons for compressor, width, filter, downsample.
  6. Add 4 new distortion functions.

2021-10-2 (version 0.9.3)

Warning: Previous presets won't work, you have to resave your preset!

  1. Redesign GUI.
  2. Fix multiple bugs of multiband control(enable buttons, focus band, vertical lines, etc.), redesigned the code structure.
  3. Add new filter control and filter graph.
  4. Fix other bugs such as preset box selection, A/B mode, bypass repaint issue, etc.
  5. Now you can click graph to zoom in and out.

2021-9-7 (version 0.9.2)

  1. GUI improvement.
  2. Add shape, width, and compressor groups.
  3. Spectrogram display bug fixed.
  4. Add VU meter and width graph.
  5. Add frequency label, and frequency automation bug fixed.

2021-1-24 (version 0.9.1)

  1. Drive knob reduction and GUI improvement Fix a bug that in global mode menu won't change when selecting different bands.

2021-1-23 (version 0.9.0)

  1. First Beta release.

7. License

From v.0.9.4, I changed the license to AGPL-3.0.

What can you do with the source

  • Currently, up to version 0.9.4 is free for music producers, audio programmers who start to learn JUCE. You can fork, modify my code, but projects that used my code must be open-source.

Things you can't do with this source

  • Do not create an app and distribute it on the iOS app store.

  • Do not use the name "Fire", "Wings", or "羽翼深蓝Wings" for marketing or to name any distribution of binaries built with this source. This source code does not give you rights to infringe on trademarks. If you wanna use it for commercial, please send me an email. Otherwise, your software has to be open-source.

8. Acknowledgement

@IcyLeaves

fire's People

Contributors

dependabot[bot] avatar jerryuhoo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fire's Issues

Can't be opened because Apple can not check it for malicious software

Running Ventura 13.1 I've tried different versions but all lead to the same message: "Fire.vst3" can't be opened because Apple can not check it for malicious software. This software needs to be updated. Contact the developer for more information.

As someone suggested I tried downloading it with Safari instead of FireFox but alas. I'm using FL Studio 20, I don't have issues with other plugins so I don't think it's an FL issue. I've checked my system settings to allow from trusted developers as well as the App Store but it doesn't let me allow this plugin specifically like it would normally with an unverified app (I suppose because it is not an 'app' to the system unless it's loaded into the FL Wrapper).

Can anyone help me fix or circumvent this please? I saw the plugin in a video and it looks reaally good so I would be very thankful!

[Bug] HQ on drastically changes the sound

In the most current version of Fire Release v1.0.0.2 (Beta 2) switching on HQ drastically alters the sound. I just tried it on a full mix and turning it on sounds almost as if all the side information gets collapsed to the center and there is a drastic loss of high frequency content in the mix.

[Feature Request] Global Effect: Output Ceiling

While playing with multiband distortion I have noticed that it is easy to get a pretty high peak level on the output. I think it would be nice if we had an option to link the global output level to some sort of safety limiter or clipper ceiling, meaning we will never get higher levels than what we set as Output dB.

Build Error on Fedora 40

I am trying to build Fire 1.0.1 on Fedora 40 using gcc-14.1.1.
I met an error during link:

/usr/bin/ld: /tmp/ccyXj6FF.ltrans43.ltrans.o: in function `FireAudioProcessorEditor::~FireAudioProcessorEditor()':
/builddir/build/BUILD/Fire/Source/PluginEditor.cpp:184:(.text+0x321a): undefined reference to `SpectrumBackground::~SpectrumBackground()'
/usr/bin/ld: /tmp/ccyXj6FF.ltrans43.ltrans.o: in function `FireAudioProcessorEditor::FireAudioProcessorEditor(FireAudioProcessor&)':
/builddir/build/BUILD/Fire/Source/PluginEditor.cpp:17:(.text+0x502d): undefined reference to `SpectrumBackground::SpectrumBackground()'
/usr/bin/ld: /builddir/build/BUILD/Fire/Source/PluginEditor.cpp:169:(.text.unlikely+0x154): undefined reference to `SpectrumBackground::~SpectrumBackground()'
collect2: error: ld returned 1 exit status

Output levelling issue

Was trying to gain stage my drumbus properly by manually setting the output (with the autolevelling (L button) off) but it would not accurately drop the output level or something of the sort. So I'd be doing comparisons and trying to do quick exports to send out but then the next moment my drumbus level drops significantly after reactivating Fire.

Installation issues Mac

I´ve downloaded the latest version of the plugin. As I tried to install the plugin it didn't work. I put the VST3 version into my VST3 folder but FL Studio didn't recognize the plugin, what shall I do?

Phasing issues when using the HQ mode.

Thanks for this excellent open source multiband saturator! It has a great interface and is a pleasure to use.

One issue I have come across in my testing is regarding phase.

When the HQ mode is active, the mix control causes a lot of phasing that is not present in normal quality mode. The effect also sounds slightly different when running at 96kHz and when running at 48kHz. When doing a null test between a 96kHz rendered file and a 48kHz rendered file with the same plugin settings, it seems to be mostly low-end left
when the plugin is in normal quality mode and the plugin does not null very well at all in HQ mode, so there are some phase differences between sample rates. This doesn't happen with FreeClip (by Venn Audio). Maybe there are some filters or other operations that are sample rate dependent that are causing these issues when the HQ (oversampling?) mode is active and when the plugin is used at different sample rates.

Tested in reaper 6.61 at 48kHz and 96kHz (128, 256, 512, and 1024 buffer sizes) using the arctangent clipping modes in FreeClip and Fire for comparison tests (not using the multiband features for the null test).
These null issues at different sample rates are apparent in the other clipping modes as well, with the low-end being left.

(it also seems to make reaper's GUI freeze sometimes when the plugin is open, but I can open another issue if that problem persists)

Clicking the HQ Button disables Output

Hi there ! First i have to say its a really helpfull and good sounding vst! But there is a bug, everytime i click on the High Quality (HQ) Button in the plugin it will stop working. Deleting the plugin from the channel and setting it new up works for fixing it.

Logic Pro mono channels issue

First of all, your plugin is fantastic. I have been testing it and it is reaching the best ones. However, one major issue is that it doesn't work correctly on mono channels in Logic Pro. When I load a preset, made on a stereo channel, it crashes. Also if I turn on HQ mode.

Ableton Mac installation issues

hi there, I have the plug-in in the correct VST3 folder. When I went to scan the folder in Ableton, a window popped up saying it cannot be used because it cannot be verified. I have since tried re-installing, but the plug-in is nowhere to be found. It also does not give me the pop-up window anymore.

[Feature Request] smoother downsampling algo

The famous "underwater effect" of Drake / Noah Shebib is based on downsampling the signal without producing too much nasty aliasing. This revolves aound using two fillters in addition to the resampling module: one filter pre and one post the resampler. This reduces aliasing and leads to a smoother resample sound. See the manual of Decimort for more details.

[Bug] Compression settings and Width settings can not be set for each band independently

Setting the compressor or width in the Band Effect tab and then switching to another band:

the other band will have the exact same compressor / width settings! Is it not supposed to work independently for each band?

Also Bias setting for each band's saturation is not kept independently for each band. Changing it in one band will also affect the other bands.

It seems as if only the chosen _Clipping type: (Tanh, Exp etcetera) and the Drive setting is retained correctly for each band independently.

Release v1.0.0.2 (Beta 2) Windows VST3, Ableton 11

Use either Git submodules (preferable) or CMake FetchContent

There is a Git submodule (dependency fetching mechanism # 1) for JUCE that gets semi-regularly updated, but it's completely ignored by the CMake script which uses FetchContent (dependency fetching mechanism # 2) for JUCE and the other required dependencies instead.

Mixing these is weird because the submodule is essentially never used by CMake, it seems like a mistake? For me at least (trying to package this in a Linux/macOS package manager) it would be preferable to only use Git submodules and replace the FetchContent_* calls with add_subdirectory(<dependency> EXCLUDE_FROM_ALL) ones, because FetchContent isn't very compatible with the way we do fetching.

where is the code for the menu button to remove the github links

i literally cant find it anywhere i removed what i could but its not changing anything in the menu button i just want to bulid off his and i can find basically everything esle but anything to do with that menu button where is it located what file i just want to remove it damn

Please make it build-able without projucer

This would make it possible to package it for source based distros.
I wuold like to package this for NixOS.

@baconpaul, You have done this a couple of times for other plugins, would you mind taking a look, or giving some advice?

Build broken (including on CI)

Since commit 28f83fd the build is broken. This include CI.

The CMakeList.txt likely need to be regenerated and checked in as it is missing Source/Panels/SpectrogramPanel/SpectrumBackground.cpp

Can't find vst on windows, fl studio 20

I do not know why but even though I place the extracted folder into the fl vst folder where I ALWAYS successfully am able to find downloaded plugins with the fl plugin manager, I cannot find or use this one at all, and I even did what a website told me to do and changed the .vst3 file to .dll and it still can't find it or use it, Could you please send a dll file soon or place it in the next update and stuff? please...

[Feature Request] Band Effect: Filter (pre-drive)

I think it could be a cool idea to have a Filter also as Band Effect, with the possibility to filter before distortion. Having a resonant filter going into the distortion and automating the cutoff frequency can give a very nice sweeping effect, specially on basslines. (A tempo-synced LFO to control it would be the cherry on top but maybe that would go a bit too far for what you intended Fire to be.)

Switch/save presets bug

Unable to write to an existing preset. (Due to JUCE 6.1.0 update)
"Enable buttons" wrong value when switching presets. (Due to v0.9.9 update)

LV2 version?

Now JUCE 7 is out, how about an LV2 version of the plugin?

Plugin not loaded in Linux

Hello,
The plugin cannot be loaded on my Linux system. It does not appear in the plugins list in bitwig and Carla says it failed to load the file as it could not find the VST main entry in the plugin library.

[Feature Request] Button for more Drive gain

First of all, congrats for this wonderful plugin! Was hoping to find a fully featured multi-band Distortion/Clipper plugin like this for a long time.

The only thing I am really missing is a little more gain for the drive knob. Seems to go up to +40dB, right? I'd love to have at least +60dB for really aggressive, fuzzy distortion which brings out all the overtones and noise even in low input signals with simple frequency spectrums and brings all the little noises from quiet parts in samples to the front.

If you feel the current drive range is good for most situations, maybe an implementation idea could be to add a third button under L and S buttons (perhaps something like A for "aggresive" or E for "extreme") which expands the range of the the drive knob when enabled?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.