Skip to content

paolomarrone/Zampogna

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zampogna

Zampogna is a compiler for the Ciaramella audio DSP language.

Ciaramella is designed around a small declarative, synchronous data-flow model for audio processing. Zampogna parses Ciaramella source files and generates code for multiple targets.

Key traits:

  • Declarative
  • Synchronous Data flow
  • Minimalistic
  • Modular

References:

Installation

Install from npm:

npm install -g zampogna

Or work from source:

git clone https://github.com/paolomarrone/Zampogna.git
cd Zampogna
npm install

CLI Usage

If installed globally, use:

Usage: zampogna [options] input_file

Options:
  -i, --initial-block <name>    Initial block name (required)
  -c, --controls <ids>          Control inputs, comma-separated
  -V, --initial-values <pairs>  Initial values, comma-separated key=value pairs
  -t, --target <lang>           Target language (default: cpp)
  -o, --output <folder>         Output folder (default: build)
  -d, --debug <bool>            Debug mode: true/false (default: false)
  -h, --help                    Show this help
  -v, --version                 Show version

Supported targets: C, cpp, VST2, yaaaeapa, MATLAB, js, d.

Example:

zampogna -i test -t cpp examples/ifelseNormalize/ifelse.crm

If you are running from a local clone instead of a global install:

node src/zampogna-cli.js -i test examples/ifelseNormalize/ifelse.crm

Generated files are written under build/<target>/ by default.

Browser Usage

The web IDE is available at:

https://ciaramella.dev/webide.html

Examples

Sample projects are available under examples/.

For example:

cd examples/lp_wdf
./build.sh

Credits

Ciaramella and Zampogna are developed by Orastron in collaboration with the University of Udine.

About

Ciaramella compiler

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors