Skip to content

bgaster/aa_standalone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

This repo is part of a larger project called Audio Anywhere (AA). Audio Anywhere a framework for work-ing with audio plugins that are compiled once and run anywhere. At the heart of Audio Anywhere is an audio engine whose Digital Signal Processing (DSP) components are written in Faust and deployed with WebAssembly.

Details about the project can be found on the project's homepage.

Introduction

An example implementation of a Audio Anywhere standalone application for desktop.

Support is provided for hot loading single AA modules or a chain of AA modules that form an audio graph, along with their corresponding interfaces. The modules are written in WASM and are compiled once to conform to the AA WASM API.

Building

It is implemented using stable Rust.

To install Rust go you need simply to install Rustup and if you already have Rust installed, then you can update with the command rustup update.

You can build with the following cargo command:

cargo build --release

Go get a coffee.

Limitations

Currently I have tested it only on Mac OS and as it is dependent on Portaudio it possible that one Windows there is some additional work to do. This is on the list of tasks to complete in the next few weeks.

Running

While Audio Anywhere does not specify how interfaces are implemented for a particular platform, for this implementation they are written with HTML5. Instruments can be defined as a collection of modules with a single user interface or they as a set of seperate modules with individual interfaces. Interfaces are "injected" using an iframe, or a collection of iframes.

The applications interface is also written in HTML5 and to avoid issues with different domains the interface is served from the same server. The interface conforms to a specifed API, however, beyond that it is independent of the hosting application and thus is not contained within this repo. An example interface and a set of example AA modules can be found here.

TODO: update with how to connect to a server with AA Modules

Todo

  • Build on Windows 10
  • Working on Windows 10
  • Add menu to dynamically select MIDI device
  • Add MIDI learn functionality
    • Select between 0-127 MIDI CC and Endless (as per Push 2 and MIDIFighter)
  • Add alternative Audio driver support, e.g. optionally not PortAudio

License

© 2020 Benedict R. Gaster (cuberoo_)

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Audio Anywhere Standalone Desktop Application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages