/aq

A lightweight framework for creating audio toys

Primary LanguageCMIT LicenseMIT

aq

screenshot

A lightweight framework for creating audio toys

Overview

The project is a lightweight framework for creating small audio toys. The framework binds immediate mode ui, modularly routed audio nodes and midi input to the fe scripting language. A small program that would output a sinewave and change its frequency when a button is clicked would be as follows:

(do-file "common.fe")

(= osc (dsp:new 'osc))
(= dac (dsp:new 'dac))

(dsp:link osc 'out dac 'left)
(dsp:link osc 'out dac 'right)

(func on-frame ()
  (when (ui:button "Hello")
    (dsp:set osc 'freq (+ 200 (rand 1000)))
  )
)

The demo program pictured in the screenshot at the top of this README file is provided in the demo folder. You can run the program on Linux by doing:

./aq demo

or, on Windows:

aq demo

Building

If you don't intend to modify the project you can download binaries for Linux and Windows from the releases page and avoid building it yourself.

The project can be built on Linux for both Linux and Windows. The build.py script should be used to build the project. To perform a release build, run the following:

./build.py release

or, to cross-compile for windows:

./build.py release windows

License

This project is free software; you can redistribute it and/or modify it under the terms of the MIT license. See LICENSE for details.