Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/0x07dc/none

Audio application and library management framework built on JUCE
https://github.com/0x07dc/none

Last synced: 3 months ago
JSON representation

Audio application and library management framework built on JUCE

Awesome Lists containing this project

README

        

# None Audio Application Framework
## About
To provide a framework that provides a simple drop-in component system
and handles any non-creative work consistently.

This framework is built on the JUCE audio plugin framework, which provides
all of the tools for making the actual audio plugin.

While JUCE is a great framework, I found that there are some tasks
which are repetitive (such as state maintenance), and plenty things that could
go wrong in making a JUCE application. This framework is a solution
to a decoupled, organized, and uniform framework that will allow
even giant apps to be built, while maintaining maintainability and simplicity.

## Current version - 0.0.0
This is super alpha and definitely not considered production yet, although it is already useful.

## Documentation
The framework contains 4 main types of entities.

- GUI Components
- Midi/Audio Processors
- States
- State Modifiers

With these four entities, any app should be constructable. The framework aims to
handle everything that is not specifically creating a GUI, running audio processes,
referring to states, and modifying states.

The NoneApp folder contains a JUCE project that is built using this framework. It
is a simple FM modulator, and uses every component of the framework. It generates
a sine using a state that contains the frequency information. A state modifier
modulates the generator's state, by way of a GUI rotary slider component. This
results in a synthesizer with a controllable frequency modulator.

The `juce_modules` folder contains the modules that this framework used in development.

### Step by step
1) To create a new app, just copy and rename the NoneApp. You'll need Projucer from JUCE to
open the project file.
2) You'll need to copy the folder `modules/none_app`. That's the starting project. You
will edit this module to configure the app. Consider renaming the namespace to your desire.
3) Include your module in the JUCE project, by adding a module in Projucer.
4) If you renamed your namespace, you'll need to change the app's variable
declaration in `PluginProcessor.h`.

## Known bugs
- Automation is non-functional in Fl Studio. The parameter only updates on play.

## License
This framework contains two different licenses. This repository contains JUCE module code
for convenience and as a way of preserving the framework's integrity.
A licence document is included in the `juce_modules` folder which details the JUCE license.

Aside from JUCE, this library is licensed with the MIT license, making it very free.