ΣSigmaStudio English

Pushbutton Volume, Mute

Блок PushButton Volume может использоваться с кнопками GPIO для управления громкостью входного аудиосигнала. Этот блок объединяет функциональность Push and Hold, Up/Down Control, Index lookup Table и SW External Volume в одном блоке. Пользователь имеет возможность задать собственную кривую громкости, используемую для регулировки (taper), которая индексируется с помощью кнопок.

Этот блок имеет ту же функциональность, что и алгоритм PushButton Volume, с дополнительной функцией mute (отключения звука) входного сигнала при одновременном нажатии обеих кнопок GPIO. Эта функция требует дополнительных программных инструкций.
Pushbutton Volume, Mute

Input Pins

NameFormat
[int/dec] - [control/audio]
Function Description
Pin 0: PushButton Upint - controlСигнал GPIO от кнопки, увеличивающий громкость
Pin 1: PushButton Downint - controlСигнал GPIO от кнопки, уменьшающий громкость
Pin 2: Interface Readn/aРегистр Interface Read для загрузки предыдущего постоянного значения данных в алгоритм
Pin 3: Interface Readdecimal - audioАудиовход для регулятора громкости

Output Pins

NameFormat
[int/dec] - [control/audio]
Function Description
Pin 0: Interface Writen/aРегистр Interface Write для хранения постоянных данных громкости с целью их последующего восстановления
Pin 1: Output Audiodecimal - audioАудиовыход с отрегулированной громкостью

GUI Controls

GUI Control NameDefault ValueRangeFunction Description
Invert GPIOunchecked[checked,
unchecked]
Установка этого флажка инвертирует сигнал на входах для кнопок GPIO. Аппаратное обеспечение SigmaDSP GEN2 имеет регистровые функции для инвертирования сигнала, однако аппаратное обеспечение GEN3 этого не поддерживает. Установка или снятие этого флажка требует повторной компиляции, поскольку для достижения этой функции программный код добавляется или удаляется.
Hold (ms)500[0, 10000]Определяет, как долго удерживается текущий уровень громкости, прежде чем будут генерироваться повторяющиеся импульсы для увеличения/уменьшения громкости, пока кнопка удерживается нажатой.
Repeat (ms)250[0, 10000]Задает временной интервал между повторяющимися импульсами во время удержания.
Volume Table Points33 pts[2, 800]Задает размер таблицы: количество точек, используемых в кривой таблицы громкости.
Volume Table Values1[-16, 15.99]Точки таблицы представляют собой фактические значения усиления для кривой громкости в линейном представлении. Хотя диапазон поддерживает полные значения [-16, 15.99], значения таблицы обычно должны находиться в диапазоне [0, 1] для правильной регулировки усиления. Пользователь имеет полный контроль над этой таблицей, чтобы добавить линейную, логарифмическую или собственную кривую изменения громкости.
SW Slew Rate12[1, 23]Управляет скоростью нарастания (slew) для перехода громкости между последовательными точками усиления громкости

DSP Parameter Information

GUI Control NameCompiler NameFunction Description
Hold (ms)PushButtonVolAlg1holdtimeВремя удержания записывается в DSP как количество сэмплов, представляющих время в миллисекундах: Samples =
HoldTime(ms)*10^-3 *Fs
Repeat (ms)PushButtonVolAlg1repeattimeВремя повторения записывается в DSP как количество сэмплов, представляющих время в миллисекундах: Samples =
HoldTime(ms)*10^-3 *Fs
Volume Table PointsPushButtonVolAlg1maxindexКоличество точек минус 1 является максимальным индексом в таблице.
Volume Table ValuesPushButtonVolAlg1table_p0
Все точки в таблице записываются в DSP в их линейном формате усиления.
SW Slew RatePushButtonVolAlg1stepЗначение скорости нарастания (slew rate), записываемое в DSP, соответствует формуле:
2^(-SW Slew Rate)

Algorithm Information

Регулятор громкости PushButton Volume позволяет двум входам GPIO от кнопок управлять пользовательской кривой громкости. Кривая громкости может быть любой линейной, логарифмической или пользовательской кривой, построенной с любым количеством точек. При нажатии кнопки «Up» (Вверх) громкость увеличивается, индексируясь вверх по значениям таблицы. При нажатии кнопки «Down» (Вниз) громкость уменьшается, индексируясь вниз по значениям таблицы. При достижении предельного индекса на любом конце громкость просто удерживается.

Когда кнопка удерживается в положении «вверх» или «вниз», алгоритм будет прокручивать точки усиления громкости со скоростью, определяемой временем удержания (hold) и повторения (repeat). Время удержания определяет, как долго должна удерживаться кнопка, пока не будет запущен новый импульс повторения. Импульс повторения определяет интервал между инкрементами или декрементами точек громкости, пока кнопка удерживается.

Для PushButton Volume with Mute добавлена дополнительная функция: при одновременном нажатии обеих кнопок выход будет отключен (mute). Любой последующий сигнал от кнопки реактивирует громкость, и она будет увеличиваться или уменьшаться от последнего значения громкости до отключения звука.

Example

На следующем изображении показано, как два входа GPIO используются для управления алгоритмом громкости в блоке PushButton Volume. Алгоритм PushButton Volume был расширен для поддержки стереофонического аудио. Переключатель mux позволяет сравнивать прямой сигнал от входов и сигнал с отрегулированной громкостью, направляемый на выходы. Блоки Interface Read и Write позволяют сохранять и восстанавливать последний уровень громкости.

Example

Algorithm Details

Toolbox PathGPIO Conditioning - Volume Control - Push Button - PushButton Volume
Cores SupportedADAU170x
ADAU144x
ADAU176x
ADAU178x
“Grow Algorithm” Supportedyes - see Algorithm Growth Information
“Add Algorithm” Supportedno
Subroutine/Loop Basedno
Program RAM102*
Program RAM (Invert GPIO)106*
Data RAM31*
Parameter RAM37* - Based on 33 points in table: each point = 1 Parameter RAM

Algorithm Growth Information

DescriptionКогда алгоритм PushButton Volume расширяется, к элементу управления добавляется дополнительная пара входных/выходных пинов. Вся обработка, связанная с громкостью кнопки, выполняется одинаково, но расширение позволяет добавлять новые пары входных/выходных аудиосигналов для применения регулировки усиления.Algorithm Growth Information
Program RAM Repetition2 per growth
Program RAM Repetition (Invert GPIO)2 per growth
Data RAM Repetition1 per growth
Parameter RAM Repetitionnone

Pushbutton Volume, Mute в SigmaStudio: настройка и параметры

Pushbutton Volume, Mute — это функциональный блок в среде SigmaStudio, предназначенный для управления громкостью аудиосигнала с помощью внешних кнопок, подключенных к входам GPIO. Данный компонент относится к категории GPIO Conditioning и объединяет в себе возможности нескольких алгоритмов: Push and Hold, Up/Down Control, Index Lookup Table и SW External Volume. Ключевая особенность — возможность одновременного отключения звука (mute) при нажатии обеих кнопок, что требует дополнительных программных инструкций при компиляции проекта. Блок работает с двумя управляющими сигналами от кнопок: PushButton Up увеличивает громкость, PushButton Down — уменьшает. Сигналы поступают на входы в формате int/control. Алгоритм использует таблицу громкости (Volume Table), которая индексируется нажатиями кнопок. Пользователь может задать собственную кривую изменения усиления — линейную, логарифмическую или произвольную. Аудиосигнал подается на вход Interface Read (decimal/audio), а после обработки выводится через Output Audio. Для сохранения текущего уровня громкости и его восстановления после перезагрузки используются регистры Interface Write и Interface Read. В графическом интерфейсе доступны параметры Hold и Repeat, которые определяют задержку перед началом автоповтора и интервал между импульсами при удержании кнопки. Параметр Volume Table Points задает количество точек кривой (по умолчанию 33), а Volume Table Values — значения усиления в линейном представлении.