Если вы действительно хотите сделать это с этой функцией, сгенерируйте сигнал в буфере.Волна в форме треугольника может звучать не слишком ужасно и должна быть достаточно простой для генерации.
Базовое значение «la» (A) составляет 440 Гц, то есть 440 циклов формы волны по вашему выбору в секунду.Другие ноты можно получить умножением / делением на 2 ^ (1/12) (1.05946309
) для каждого полутона выше / ниже этой базовой частоты.Вам нужно будет знать, на какой частоте настроено устройство вывода (это, вероятно, аргумент другой функции ALSA).Если частота устройства составляет, скажем, 44100 Гц, и вы хотите воспроизвести базовое значение «la», каждый период вашего сигнала должен занимать 44100/440 или около 100 выборок.Обратите внимание на ширину выборки и количество каналов, для которых настроено устройство.
Пояснение: в октаве 12 полутонов, а октава ровно наполовину (нижняя высота звука) или двойная (выше)разбил) частота.После того, как вы умножили 12 раз на 2 ^ (1/12), вы умножили на 2, так что каждый полутон имеет коэффициент в 2 ^ (1/12) выше предыдущего.