Skip to content

A programming language to build sounds by granular synthesis.

License

Notifications You must be signed in to change notification settings

SamueleGiraudo/Qlusster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qlusster

[]|_|/

A programming language to build sounds by granular synthesis.

Copyright (C) 2022--2024 Samuele Giraudo - giraudo.samuele@uqam.ca -

Quick overview

TODO

See this introductory video (only in french for the time being).

This program is linked with Aclove, a programming language to pilot Qlusster and write high level musical specifications. See below.

First examples

TODO

Versions

Here is the changelog of the different versions.

Dependencies

The following programs or libraries are needed:

  • pkg-config
  • make
  • ocaml (Version >= 5.0.0. An inferior but not too old version may be suitable.)
  • opam
  • ocamlbuild (Available by opam install ocamlbuild.)
  • ocamlfind (Available by opam install ocamlfind.)
  • extlib (Available by opam install extlib.)
  • menhir (Available by opam install menhir.)

Building

Here are the required steps to build the interpreter qlusster:

  1. Clone the repository somewhere by running git clone https://github.com/SamueleGiraudo/Qlusster.git.

  2. Install all dependencies (see the section above).

  3. Build the project by running make.

This creates an executable qlusster. The following sections explain how to use it.

User guide

This page contains the description of the Qlusster language.

Qlusster program files must have .qlu as extension. The main command is

./qlusster [--help] [--version] --file PATH [--verbose LVL] [--bunch START LEN] [--write] [--draw] [--play]

where

  • --help prints the short help.
  • --version prints the version and other information.
  • --file PATH sets PATH as the path to the Qlusster program to consider.
  • --verbose LVL enables the verbose mode at level LVL from 0 (nothing) to 2 (full). By default, the level is 1.
  • --bunch START LEN specifies the part of the generated signal to consider, with its starting time START and length LEN in seconds.
  • --write creates the PCM file specified by the program.
  • --draw creates the SVG and PNG files specified by the program.
  • --play plays the signal specified by the program.

Using with Aclove

TODO

The standard library, written in Aclove, contains some useful definitions. it contains some tools, some synthesizers (trying to mimic some existing ones), and some effects.

Theoretical aspects

TODO

Bibliography

TODO