Rotary Volume
Входные пины
| Name | Format [int/dec] - [control/audio] | Function Description |
|---|---|---|
| Pin 0: Rotary Input Up | int - control | Управляющий сигнал с GPIO вращающегося энкодера, который увеличивает громкость |
| Pin 1: Rotary Input Down | int - control | Управляющий сигнал с GPIO вращающегося энкодера, который уменьшает громкость |
| Pin 2: Interface Read | n/a | Регистр Interface Read для загрузки предыдущего постоянного значения громкости в алгоритм |
| Pin 3: Input Audio | decimal - audio | Аудиовход для регулятора громкости |
Выходные пины
| Name | Format [int/dec] - [control/audio] | Function Description |
|---|---|---|
| Pin 0: Interface Write | n/a | Регистр Interface Write для сохранения постоянного значения громкости для последующего вызова |
| Pin 1: Output Audio | decimal - audio | Выходной аудиосигнал с отрегулированной громкостью |
Элементы управления GUI
| GUI Control Name | Default Value | Range | Function Description |
|---|---|---|---|
| Debounce | 20 | [0, 1000] | Счетчик выборок для времени антидребезга на вращающемся энкодере |
| Volume Table Points | 33 pts | [2, 800] | Задает размер таблицы: количество точек, используемых в кривой таблицы громкости. |
| Volume Table Values | 1 | [-16, 15.99] | Точки таблицы представляют собой фактические значения усиления для кривой громкости в линейном представлении. Хотя диапазон поддерживает полные значения [-16, 15.99], значения таблицы обычно должны находиться в диапазоне [0, 1] для правильной регулировки усиления. Пользователь имеет полный контроль над этой таблицей и может добавить линейную, логарифмическую или произвольную кривую изменения громкости. |
| SW Slew Rate | 12 | [1, 23] | Управляет скоростью нарастания сигнала (slew) для плавного перехода громкости между соседними точками усиления |
Информация о параметрах DSP
| GUI Control Name | Compiler Name | Function Description |
|---|---|---|
| Debounce | RotaryVolAlg1countmax | Целое число напрямую записывается в DSP. |
| Volume Table Values | RotaryVolAlg1table_p0 … | Все точки таблицы записываются в DSP в их линейном формате усиления. |
| SW Slew Rate | RotaryVolAlg1step | Значение скорости нарастания сигнала (slew rate), записываемое в DSP, вычисляется по формуле: 2^(-SW Slew Rate) |
Описание алгоритма
Регулятор громкости Rotary Volume позволяет использовать входы GPIO от вращающегося энкодера для управления произвольной кривой громкости. Кривая громкости может быть любой: линейной, логарифмической или произвольной, и может быть построена с использованием любого количества точек. При повороте энкодера громкость будет увеличиваться или уменьшаться в соответствии с кривой громкости в таблице. Переход между точками таблицы является плавным, и его скорость определяется параметром Slew rate. Время антидребезга (Debounce) используется для сглаживания фактического физического входа GPIO вращающегося энкодера.
Пример
На следующем изображении показано, как два входа GPIO используются для управления алгоритмом громкости в блоке Rotary Volume. Алгоритм Rotary Volume был расширен для поддержки стереофонического аудио. Mux-переключатель позволяет сравнивать прямой сигнал со входов и сигнал с отрегулированной громкостью, направляемый на выходы. Блоки Interface Read и Interface Write позволяют сохранять и восстанавливать последний уровень громкости.

Детали алгоритма
| Toolbox Path | GPIO Conditioning - Volume Control - Rotary - Rotary Volume |
| Cores Supported | ADAU170x ADAU144x ADAU176x ADAU178x |
| “Grow Algorithm” Supported | yes - see Algorithm Growth Information |
| “Add Algorithm” Supported | no |
| Subroutine/Loop Based | no |
| Program RAM | 88* |
| Data RAM | 41* |
| Parameter RAM | 36* - Based on 33 points in table: each point = 1 Parameter RAM |
*Числа основаны на одном экземпляре алгоритма без дополнительных операций «add» или «grow»

