The SquarePine Modules provide a vast array of tools in the format of JUCE/C++ modules. From animation and easing, cryptopgraphy, networking, and codecs and audio effects, hopefully you will find something of use!
Everything should "Just Work™" within your JUCE project. If this isn't the case, please see the guidelines under Contributing.
The C++ modules contained assume you're using the latest develop branch of JUCE and a C++20/modern toolchain.
The philosophy here is multi-part:
- Easy to integrate into new and existing JUCE projects (ie: following the JUCE module format).
- Open up as much code as possible.
- Make the code as generic and flexible as possible.
- Make the code as consistent in design, architecture, and style, as much as possible.
- Have a look at our coding standards!
Some major feature highlights:
- Highly flexible Google Analytics integrations
- Pair up the
sp::GoogleAnalyticsReporterwith the easy to usesp::GoogleAnalyticsMetadata.
- Pair up the
- Translation file management with notifications.
- A highly flexible memory pool allocation system.
- Find out what kind of network you're on and receive notifications when connectivity changes (connects or disconnects).
- A wide array of math functions and structures.
- Many
juce::XYZTypeare available within thejuce::ValueTreeecosystem via theVariantConvertersprovided. - Plenty freestanding utilities for the
juce::ValueTreeecosystem.
Some utils to avoid boilerplate and rewriting the same code again:
sp::AudioBufferFIFOsp::AudioBufferView- For easy
juce::AudioBufferiteration using range-basedfor.
- For easy
- Wide range of straightforward resamplers based on JUCE's interpolators.
We have an easy to use metering system with sp::LevelProcessor and sp::Meter.
A vast range of simple renditions of audio effects can be found, including an ecosystem to manage them.
sp::BitCrusherProcessorsp::ChorusProcessorsp::DitherProcessorsp::GainProcessorsp::HissingProcessorsp::JUCEReverbProcessorsp::LFOProcessorsp::MuteProcessorsp::PanProcessorsp::PolarityInversionProcessorsp::SimpleDistortionProcessorsp::SimpleEQProcessorsp::StereoWidthProcessor
sp::EffectProcessorsp::EffectProcessorFactorysp::EffectProcessorChainsp::SquarePineAudioPluginFormat
- iCUESDK support for controlling your Corsair devices' RGB lights.
- You need to have the SDK.
- Enable
SQUAREPINE_USE_ICUESDKwhen integrating thesquarepine_graphicsmodule. - Call
sp::corsair::updateAllLEDsWithColourto have some fun!
sp::ImageFormatManagermakes it easier to bring together your favourite image formats, unifying their instances for loading images with your own codecs using JUCE'sjuce::ImageFileFormatecosystem.- Simplifying font support for look and feels using
sp::FontWeightandsp::FontFamily. - Every standard easing function for animation purposes.
- Including a CubicBezier implementation with its own easing variants.
