Исходники здесь -- https://github.com/fairplay/pixilang
С её помощью можно делать так
Code: Select all
// Подключаем библиотеку
include "embe.pixi"
// Создаём три осциллятора
// Можно так же использовать osc_sine, osc_saw, osc_noise
// У osc_noise только один аргумент -- амплитуда (от 0 до 1)
$o1 = osc_sqr(220, 0.2)
$o2 = osc_sqr(293, 0.2)
$o3 = osc_sqr(330, 0.2)
// Создаём микшер
$m = mix()
// Цепляем осцилляторы к микшеру
j($m, $o1)
j($m, $o2)
j($m, $o3)
// Создаём фильтр (low-pass)
// на частоте среза в 110Hz с резонансом в 33%
$f = flt_lp(110, 33)
// Цепляем микшер к нашему фильтру
j($f, $m)
// Запускаем вывод звука с фильтра
out($f)
Всё грязно, шипяще, 8-битно, без интерполяций и антиалиасингов. И, возможно, с ошибками в реализации dsp-алгоритмов.
Делать ООП в Pixilang занятно.