AURE Beta (WIP) - User’s Guide

A domain-agnostic, open-source, audio-reactive application framework designed for musical live-coding environments. The source code is available at Github/alptugan. AURE is currently available as standalone app for only Mac OS X systems. Since it was built with the creative C++ coding framework openFrameworks, you can compile the source-code relevant to your operating system.

Setup Diagram with Sonic Pi

aure.excalidraw#^group=CkjRjEFppCT0dQ-gG6BVi

Actual setup with Sonic Pi

Add New Scenes

Developers interested in extending the application with additional scenes should consult the developer documentation.

Instructions

  1. Compile the app using openframeworks or download here for Mac. If your system rejects to open AURE. Follow the instructions or ask it to an LLM for the instructions.
  2. Open the AURE app and follow the instructions on startup.
  3. Open Sonic Pi or any other live-coding tool capable of sending OSC
  4. Set the OSC port 9333 to send messages. Run use_osc "localhost", 9333 on Sonic Pi.
  5. Use osc “/par1” messages to morph scene content inside live_loops to sync audio with generative visuals. Refer to “List of Available OSC Commands” section.
  6. Use osc “/fx_on” messages to morph scene content inside live_loops to apply post processing effects.

List of Available OSC Commands

You can use the following OSC messages to adjust parameters of the generative visuals on the fly.

OSC CommandDescription
/par1Modifies a random parameter of the current scene.
/par2Modifies a random parameter of the current scene.
/par3Modifies a random parameter of the current scene.
/par4Modifies a random parameter of the current scene.
/par5Modifies a random parameter of the current scene.
/fx_onApply a random post-processing effect.
/fx_offDisable all post-processing effects.
/w_full_onEnable Full Screen Window Mode
/w_full_offDisable Full Screen Window Mode
/scene1Switch to Scene 1
/scene2Switch to Scene 2

Control & OSC Reference

  • Scene Switching:
    • Keyboard: Keys 1 to 9 switch directly to scenes 0 to 8.
    • OSC: /scene1, /scene2, /scene3, /scene4, etc. switch automatically.
  • Scene Parameters (OSC):
    • /par1 to /par5 call onPar1() to onPar5() on the active scene.
    • /reset calls onReset() on the active scene.
  • FX & Window (OSC):
    • /fx_on / /fx_off: Trigger or disable post-processing shaders.
    • /w_full_on / /w_full_off: Toggle fullscreen mode.

Dependencies

AURE Developer Guide

Quick setup and scene creation guide for openFrameworks developers.

1. Prerequisites & Compilation

Refer to the Dependencies section on README.md file.

2. Adding a New Scene

Step 1: Create the Scene Header

Create a new header file in src/ (e.g. src/cN_MyScene.h) deriving from BaseContent.

#pragma once
 
#include "ofMain.h"
#include "BaseContent.h"
#include "ofxEasing.h"
#include "globalParameters.h"
 
class c4_MyScene : public BaseContent {
private:
    ofParameter<float> size = {"Size", 100.0f, 10.0f, 500.0f};
    ofParameter<ofColor> color = {"Color", ofColor::white, ofColor(0), ofColor(255)};
    float triggerTime = 0.0f;
 
public:
    c4_MyScene() {
        initGUI(posGuiConent1);
        gui.add(size);
        gui.add(color);
        loadGUISettings();
        setup();
    }
 
    ~c4_MyScene() override = default;
 
    void setup() override {
        // Allocate FBOs, meshes, or load assets here
    }
 
    void update() override {
        // Update scene animations and logic
    }
 
    void draw() override {
        ofPushStyle();
        ofSetColor(color);
        ofDrawCircle(ofGetWidth() * 0.5f, ofGetHeight() * 0.5f, size);
        ofPopStyle();
    }
 
    // --- Optional OSC Hooks (called automatically via /par1 - /par5, /reset) ---
    void onPar1() override {
        size = ofRandom(20.0f, 300.0f);
    }
 
    void onPar2() override {
        color.set(ofColor(ofRandom(255), ofRandom(255), ofRandom(255)));
    }
 
    void onReset() override {
        size = 100.0f;
    }
};

Step 2: Register the Scene in ofApp

  1. In src/ofApp.h:
    Include the new header and declare the scene pointer:

    #include "c4_MyScene.h"
     
    // Inside ofApp class:
    c4_MyScene *c4;
  2. In src/ofApp.cpp (setup()):
    Instantiate the scene and add it to mContentsManager:

    c4 = new c4_MyScene();
    mContentsManager.addContent(c4);