Skip to content

Latest commit

 

History

History
41 lines (34 loc) · 1.28 KB

README.md

File metadata and controls

41 lines (34 loc) · 1.28 KB

libPOLY

A Musical Instrument for Computers

libPOLY is a sound synthesis library for the C programming language designed for real-time music generation and output. libPOLY attempts to balance mathematical correctness with latency minimization, leading to ultra-low distortion levels and support for hundreds of simultaneous generators (channels).

###Features Real-time analytical synthesis of the the following waveforms:

  • Sine Wave
  • Square Wave
  • Sawtooth Wave
  • Triangle Wave
  • Noise (coming soon)
  • Arbitrary Sampling (coming soon)

Simple API:

poly_init(int bitdepth, int channels, int bitrate, int max_generators, const char *filename);
poly_init_generator(int index, poly_wavetype wavetype, float amplitute, float freq);
poly_start();
// Rocking-out hard core...
poly_stop();
poly_shutdown();

Modify synthesis parameters in real-time:

poly_set_wavetype(int index, poly_wavetype wavetype);
poly_set_amplitude(int index, float amplitude);
poly_set_freq(int index, float freq);
poly_set_phase(int index, float phase);

libPOLY is under active develpment and the API changes frequently.

###Requirements:

  • high-speed lm implementation for your platform
  • libao
  • pthreads
  • ALSA if on Linux, ALSA emulation (e.g. via PulseAudio) will not suffice