squarepine_core
squarepine_core copied to clipboard
An assortment of modules that make a great addition to your JUCE app and plugin development tool belt.
SquarePine JUCE Modules
An assortment of modules that make a great addition to your JUCE app and plugin development tool belt.
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!
This library is an assortment of loosely related or unrelated JUCE-based tools, audio or GUI or otherwise, all of which you can pull up at any given time and with limited hassle. Everything should "Just Work™" with your JUCE project (assuming you're using the latest develop branch of JUCE).
Functionality Highlights
squarepine_core
- Translation file notification using
sp::LanguageHandler. - A highly flexible memory pool allocation system called
sp::Allocator. sp::NetworkConnectivityCheckerwill help you find out what kind of network you're on, and will give you listener notifications when connectivity changes (connects or disconnects).- A wide array of math functions and structures, including
sp::Vector4Dandsp::Angle. - Many
juce::XYZTypeare available wihtin thejuce::ValueTreeecosystem via theVariantConvertersprovided. - Plenty freestanding utilities for the
juce::ValueTreeecosystem.
Easing Demo

squarepine_audio
Utilities
sp::AudioBufferFIFOsp::AudioBufferView- For easy
juce::AudioBufferiteration 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::BitCrusherProcessorsp::ChorusProcessorsp::DitherProcessorsp::GainProcessorsp::HissingProcessorsp::JUCEReverbProcessorsp::LFOProcessorsp::MuteProcessorsp::PanProcessorsp::PolarityInversionProcessorsp::SimpleDistortionProcessorsp::SimpleEQProcessorsp::StereoWidthProcessor
The Ecosystem
sp::EffectProcessorsp::EffectProcessorFactorysp::EffectProcessorChainsp::SquarePineAudioPluginFormat
squarepine_graphics
- CueSDK support for controlling your Corsair devices' RGB lights.
- You need to install the SDK.
- Enable
SQUAREPINE_USE_CUESDKwhen integrating thesquarepine_graphicsmodule. - Use
sp::corsair::getAllAvailableLEDIDsto find out what's available to control. - Call
sp::corsair::fillLED,sp::corsair::updateLED,sp::corsair::updateAllLEDsWithColourto have some fun!
- Highly flexible Google Analyitcs integrations by pairing the
sp::GoogleAnalyticsReporterwith an easy to use and feature extensivesp::GoogleAnalyticsMetadata. - A wide array of easing functions for animation purposes.
- Simplifying font support for look and feels using
sp::FontWeightandsp::FontFamily. 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.
License
The current license is Beerware.
Contributing
If you get snagged by anything or if you have suggestions -- let's have a look!
Simply make a GitHub Issue or a Pull Request, whatever's easier for you.