Skip to content

SquarePine/squarepine_core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

22cdd92 · Feb 15, 2025
Jan 21, 2025
Feb 15, 2025
Feb 15, 2025
Mar 10, 2023
Mar 10, 2023
Dec 9, 2024
Dec 9, 2024
Feb 15, 2025

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.

Shields

Version

Functionality Highlights

squarepine_core

Some major feature highlights:

squarepine_audio

Utilities

Some utils to avoid boilerplate and rewriting the same code again:

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

The Ecosystem

squarepine_graphics

  • iCUESDK support for controlling your Corsair devices' RGB lights.
    • You need to have the SDK.
    • Enable SQUAREPINE_USE_ICUESDK when integrating the squarepine_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's juce::ImageFileFormat ecosystem.
  • Simplifying font support for look and feels using sp::FontWeight and sp::FontFamily.
  • Every standard easing function for animation purposes.
    • Including a CubicBezier implementation with its own easing variants.

Demo Screenshots

Easing

image