This project is a real-time emulation of an additive synthesizer (the classical Mini Moog). In this system we relay on the \textbf{pthread} library for multi-threading programming. The system is responsible for the generation of the following wave-forms (sine, triangle and square) as described in the model below. Each with a specific frequency notes decided by users and then they are added/integrated together after they are passing through a dedicated Band Pass Filter (BPF).
The following periodic task sets have been managed using SCHED_RR scheduling policy
- TASK Graphics: allocated for rendering the graphics.
- TASK Keyboard: Actively poll the keyboard to trigger and control the frequency notes of each wave
- TASK Wave-forms: each waveform has an independent periodic tasks.
- TASK Audio handles the Integration of the wave-forms and passing the generated buffer through the audio card driver.
mkdir build && cd build
cmake ..
make
P.S: Must be copied to Allegro5 repo: https://github.com/liballeg/allegro5 and compiled from there.