Skip to content

Commit

Permalink
Merge pull request #1 from mttbernardini/feat/modernize
Browse files Browse the repository at this point in the history
Rebrand and fix bugs
  • Loading branch information
mttbernardini committed May 7, 2024
2 parents c4b1b61 + 2dd889a commit 5d9be60
Show file tree
Hide file tree
Showing 25 changed files with 113 additions and 214 deletions.
11 changes: 11 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
root = true

[*]
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
tab_width = 4

[*.{cpp,h,md}]
indent_style = space
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
**/.DS_Store
Builds
build
build/
dist/
.cache/
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "External/JUCE"]
path = External/JUCE
[submodule "lib/JUCE"]
path = lib/JUCE
url = https://github.com/juce-framework/JUCE.git
93 changes: 53 additions & 40 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,59 +1,72 @@
cmake_minimum_required(VERSION 3.13.0)
project(frequalizer VERSION 1.1.0)
add_subdirectory(External/JUCE)
project(frequalizer VERSION 2.0.0)

add_subdirectory(lib/JUCE)

option(INSTALL_AFTER_BUILD "Automatically copy built plugins in system directories after build" OFF)

# useful for linting (i.e. `clangd`)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# check which formats we want to build
set(FORMATS "VST3")
if (AAX_PATH)
list(APPEND FORMATS "AAX")
juce_set_aax_sdk_path(${AAX_PATH})
endif()

if (VST2_PATH)
list(APPEND FORMATS "VST2")
juce_set_vst2_sdk_path(${VST2_PATH})
endif()

if (APPLE)
list(APPEND FORMATS "AU")
endif()

# add the plugin targets
juce_add_plugin(frequalizer
VERSION "1.1.0"
COMPANY_NAME "foleysfinest"
PLUGIN_MANUFACTURER_CODE "FFAU"
PLUGIN_CODE "FqOS"
FORMATS ${FORMATS}
VST3_CATEGORIES "Fx" "Analyzer" "EQ"
AAX_CATEGORY "AAX_ePlugInCategory_EQ"
AU_MAIN_TYPE "kAudioUnitType_Effect"
COMPANY_WEBSITE "https://foleysfinest.com"
COMPANY_EMAIL "[email protected]"
BUNDLE_ID "com.foleysfinest.frequalizer"
PLUGIN_NAME "Frequalizer Free"
PRODUCT_NAME "Frequalizer")
COMPANY_NAME "teobe"
PLUGIN_MANUFACTURER_CODE "TEOB"
PLUGIN_CODE "FqOS"
FORMATS ${FORMATS}
VST3_CATEGORIES "Fx" "Analyzer" "EQ"
AU_MAIN_TYPE "kAudioUnitType_Effect"
COMPANY_WEBSITE "https://teobe.net"
COMPANY_EMAIL "[email protected]"
BUNDLE_ID "net.teobe.frequalizer"
PLUGIN_NAME "Frequalizer"
PRODUCT_NAME "Frequalizer"
)

# add the sources
add_subdirectory(Resources)
add_subdirectory(Source)
target_sources(frequalizer
PRIVATE
src/FrequalizerEditor.cpp
src/FrequalizerProcessor.cpp
)

# add required flags
target_link_libraries(frequalizer PRIVATE juce::juce_recommended_warning_flags juce::juce_recommended_config_flags juce::juce_recommended_lto_flags)
target_link_libraries(frequalizer PRIVATE juce::juce_opengl juce::juce_dsp juce::juce_audio_utils)
target_compile_definitions(frequalizer
PUBLIC
JUCE_VST3_CAN_REPLACE_VST2=0
JUCE_WEB_BROWSER=0)
target_link_libraries(frequalizer
PRIVATE
# compiler flags
juce::juce_recommended_warning_flags
juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags
# juce modules
juce::juce_opengl
juce::juce_dsp
juce::juce_audio_utils
)
target_compile_definitions(frequalizer
PUBLIC
JUCE_VST3_CAN_REPLACE_VST2=OFF
JUCE_WEB_BROWSER=OFF
)
set_target_properties(frequalizer
PROPERTIES
CXX_STANDARD 17
)

# setup the copying to the output folder
if (APPLE)
set(COPY_FOLDER ${CMAKE_SOURCE_DIR}/Builds/MacOSX)
elseif(WIN32)
set(COPY_FOLDER ${CMAKE_SOURCE_DIR}/Builds/VisualStudio2015)
endif()
set(COPY_FOLDER ${CMAKE_SOURCE_DIR}/dist)

foreach(FORMAT ${FORMATS})
get_target_property(ARTEFACTS_DIR frequalizer_${FORMAT} LIBRARY_OUTPUT_DIRECTORY)
add_custom_command(TARGET frequalizer_${FORMAT} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${ARTEFACTS_DIR} ${COPY_FOLDER})
endforeach()
get_target_property(ARTEFACTS_DIR frequalizer_${FORMAT} LIBRARY_OUTPUT_DIRECTORY)
add_custom_command(TARGET frequalizer_${FORMAT} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${ARTEFACTS_DIR} ${COPY_FOLDER})
endforeach()

if(INSTALL_AFTER_BUILD)
juce_enable_copy_plugin_step(frequalizer)
endif()
1 change: 0 additions & 1 deletion External/JUCE
Submodule JUCE deleted from e6ec18
1 change: 1 addition & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
Copyright (c) 2018, Daniel Walz - Foleys Finest Audio UG
Copyright (c) 2024, Matteo Bernardini
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Expand Down
37 changes: 27 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,34 @@
# Frequalizer

This is a JUCE project using the new dsp module for an Equalizer.
It features:
[![Build Status](https://github.com/mttbernardini/frequalizer/actions/workflows/build.yml/badge.svg)](https://github.com/mttbernardini/frequalizer/actions/workflows/build.yml/badge.svg)

- six individual bands
- an input and an output analyser
- solo each band
- drag frequency and gain directly in the graph
![Frequalizer Screenshot](docs/freq_demo.jpg)

![Frequalizer Screenshot](https://raw.githubusercontent.com/ffAudio/Frequalizer/master/Resources/Screenshot.png)
This project provides a 6-band Parametric Equalizer built using [JUCE](https://github.com/juce-framework/JUCE) and the `juce::dps` module.

[![CMake](https://github.com/ffAudio/Frequalizer/actions/workflows/workflow.yml/badge.svg)](https://github.com/ffAudio/Frequalizer/actions/workflows/workflow.yml)
The code is based on the work of [Foley Finest](https://github.com/ffAudio/Frequalizer) and has been forked in order to continue development for my personal needs, since, at the time of writing, the original project is unmaintaned since 2022.

Download a ready built package for Mac OSX plugins running as AU, VST, VST3 and AAX:
**⚠️ Compatibiliy Note:** branding and IDs are replaced with my own! This plugin is NOT compatible with the original Foley Finest's Frequalizer and is treated as a different plug-in by Audio Hosts and DAWs.

https://www.foleysfinest.com/plugins/frequalizer/

## Download

Pre-built VST3 or Audio Unit are available over the [Releases](https://github.com/mttbernardini/frequalizer/releases) page.

After download, move the VST/AU file to the expected location of your OS.

Note for macOS users: the Audio Unit is self-signed. To use it you will need to remove the quarantine flag using `xattr -rd com.apple.quarantine path/to/frequalizer.component` after downloading.

## Build

Clone this repo and its submodules:

git clone --recurse-submodules https://github.com/mttbernardini/frequalizer
cd frequalizer

Use CMake to build:

cmake -B build
cmake --build build

You'll find the built plugins under `dist/`.
7 changes: 0 additions & 7 deletions Resources/CMakeLists.txt

This file was deleted.

Binary file removed Resources/FB-logo.png
Binary file not shown.
Binary file removed Resources/FF-text.png
Binary file not shown.
Binary file removed Resources/GitHub-logo.png
Binary file not shown.
Binary file removed Resources/In-logo.png
Binary file not shown.
12 changes: 0 additions & 12 deletions Resources/InnoSetup.iss

This file was deleted.

Binary file removed Resources/Logo-FF.png
Binary file not shown.
Binary file removed Resources/Screenshot.png
Binary file not shown.
21 changes: 0 additions & 21 deletions SETUP_CI.md

This file was deleted.

6 changes: 0 additions & 6 deletions Source/CMakeLists.txt

This file was deleted.

90 changes: 0 additions & 90 deletions Source/SocialButtons.h

This file was deleted.

Binary file added docs/freq_demo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions lib/JUCE
Submodule JUCE added at 4f4301
2 changes: 1 addition & 1 deletion Source/Analyser.h → src/Analyser.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class Analyser : public juce::Thread
audioFifo.setSize (1, audioFifoSize);
abstractFifo.setTotalSize (audioFifoSize);

startThread (5);
startThread (Priority::low);
}

void run() override
Expand Down
Loading

0 comments on commit 5d9be60

Please sign in to comment.