_(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
   |
   |
{}-|
   |
 _(_)_
(_)@(_)
  (_)
   |
   |-{}
   |
   |
  ---
        

Boids Synth

WORK-IN-PROGRESS

Written in C99, raylib for visuals.

Each boid is a synth voice, with a customisable synth definition. Boid properties (e.g. speed, terror of mouse pointer) can be used to modulate any of the synth voice's parameters.

 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---
   |
   |
   |-{}
   |
 _(_)_
(_)@(_)
  (_)
   |
{}-|
   |
   |
  ---