Awesome
SquarePine Modules
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.
Requirements
The C++ modules contained assume you're using the latest develop
branch of JUCE and a C++20/modern toolchain.
Philosophy
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!
Shields
Functionality Highlights
squarepine_core
Some major feature highlights:
- Highly flexible Google Analytics integrations
- Pair up the
sp::GoogleAnalyticsReporter
with 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.
- Every standard easing function for animation purposes.
sp::Vector4D
sp::Angle
- Many
juce::XYZType
are available within thejuce::ValueTree
ecosystem via theVariantConverters
provided. - Plenty freestanding utilities for the
juce::ValueTree
ecosystem.
squarepine_audio
Utilities
Some utils to avoid boilerplate and rewriting the same code again:
sp::AudioBufferFIFO
sp::AudioBufferView
- For easy
juce::AudioBuffer
iteration using range-basedfor
.
- For easy
- Wide range of straightforward resamplers based on JUCE's interpolators.
Metering & Graphics
We have an easy to use metering system with sp::LevelProcessor
and sp::Meter
.
Many, Many Audio Effects
A vast range of simple renditions of audio effects can be found, including an ecosystem to manage them.
The Effects
sp::BitCrusherProcessor
sp::ChorusProcessor
sp::DitherProcessor
sp::GainProcessor
sp::HissingProcessor
sp::JUCEReverbProcessor
sp::LFOProcessor
sp::MuteProcessor
sp::PanProcessor
sp::PolarityInversionProcessor
sp::SimpleDistortionProcessor
sp::SimpleEQProcessor
sp::StereoWidthProcessor
The Ecosystem
sp::EffectProcessor
sp::EffectProcessorFactory
sp::EffectProcessorChain
sp::SquarePineAudioPluginFormat
squarepine_graphics
- iCUESDK support for controlling your Corsair devices' RGB lights.
- You need to have the SDK.
- Enable
SQUAREPINE_USE_ICUESDK
when integrating thesquarepine_graphics
module. - Call
sp::corsair::updateAllLEDsWithColour
to have some fun!
sp::ImageFormatManager
makes it easier to bring together your favourite image formats, unifying their instances for loading images with your own codecs using JUCE'sjuce::ImageFileFormat
ecosystem.- Simplifying font support for look and feels using
sp::FontWeight
andsp::FontFamily
.