021. Avalonia UI - Calculating Loudness

00:00 Введение и установка библиотеки • Замена кода вывода изображения на код обработки звука. • Использование библиотеки NVVI для обработки звука. • Установка библиотеки через меню Avalonia Loudness. 00:37 Обзор возможностей NVVI • NVVI работает с дискретными сигналами, позволяя обрабатывать аудиосэмплы. • Возможность извлечения данных, таких как уровень громкости и частота. • Утилиты для преобразования сигналов в децибелы и другие единицы измерения. 01:35 Измерение громкости • Фокус на измерении сигнала громкости. • Отображение значения громкости в разных форматах: число, полоса со стрелкой, интегрированная динамика. • Объяснение формата WAV как файла PCM с 16 битами на сэмпл. 02:33 Преобразование буфера данных • Преобразование необработанного буфера данных в значение громкости. • Привязка значения громкости к свойству в модели представления. • Создание приватного вспомогательного класса для обработки данных. 04:55 Захват звука • Создание устройства захвата звука. • Начало захвата звука и обработка данных. • Управление устройством захвата и его удаление при закрытии приложения. 07:49 Анализ данных WAV • Анализ формата WAV как шестнадцатибитного PCM-файла. • Вычисление количества сэмплов в буфере. • Преобразование буфера в дискретный сигнал с частотой дискретизации 44100 Гц. 11:02 Извлечение значений сэмплов • Извлечение шестнадцатибитных значений сэмплов из буфера. • Использование бинарного ридера для чтения данных. • Деление значений на 32768 для преобразования в формат с плавающей запятой. 12:42 Расчёт громкости в децибелах • Выражение значения громкости в децибелах. • Использование вспомогательного класса Scale для преобразования значений. • Получение значения громкости в децибелах с помощью класса Scale. 13:27 Вычисление децибел • Использование RMS для вычисления децибел. • RMS рассматривается как среднее значение энергии сигнала. 13:58 Установка модели представления • Переход в новый поток для установки модели представления. • Выполнение команды для установки значения краткосрочной громкости. 14:31 Проблемы с вычислением • Вычисление лофтов для каждого сэмпла и обновление пользовательского интерфейса. • Обнаружение некорректного поведения значений. 15:35 Анализ краткосрочных значений • Сравнение краткосрочных и усреднённых значений. • Усреднённое значение остаётся на уровне 20, в то время как краткосрочное падает до −50. 16:34 Разработка алгоритма усреднения • Использование таймера для усреднения образцов за секунду. • Расчёт новых средних значений на основе данных за секунду. 17:15 Реализация алгоритма усреднения • Создание массива чисел с плавающей запятой для хранения образцов. • Замена списка на стек для удобства добавления и удаления элементов. 19:16 Исправление ошибок в алгоритме • Исправление логики добавления и удаления элементов в стеке. • Переход на использование очереди для корректного извлечения элементов. 20:23 Тестирование и корректировка • Тестирование усреднённых значений с 40 выборками. • Обнаружение некорректных расчётов и необходимость корректировки средних значений. 21:32 Обработка стрелки и полосы • Сопоставление значения стрелки с кратковременными углами наклона. • Расчёт размера полосы на основе мгновенных углов наклона. 22:01 Заключение • Призыв к участию в Discord для дальнейшего обсуждения и разработки. • Подчёркивание важности наличия информации о звуке и громкости. • Обещание продолжить работу над графиком и функциональностью приложения.

Иконка канала Ленинский Букварь
240 подписчиков
12+
18 просмотров
15 дней назад
12+
18 просмотров
15 дней назад

00:00 Введение и установка библиотеки • Замена кода вывода изображения на код обработки звука. • Использование библиотеки NVVI для обработки звука. • Установка библиотеки через меню Avalonia Loudness. 00:37 Обзор возможностей NVVI • NVVI работает с дискретными сигналами, позволяя обрабатывать аудиосэмплы. • Возможность извлечения данных, таких как уровень громкости и частота. • Утилиты для преобразования сигналов в децибелы и другие единицы измерения. 01:35 Измерение громкости • Фокус на измерении сигнала громкости. • Отображение значения громкости в разных форматах: число, полоса со стрелкой, интегрированная динамика. • Объяснение формата WAV как файла PCM с 16 битами на сэмпл. 02:33 Преобразование буфера данных • Преобразование необработанного буфера данных в значение громкости. • Привязка значения громкости к свойству в модели представления. • Создание приватного вспомогательного класса для обработки данных. 04:55 Захват звука • Создание устройства захвата звука. • Начало захвата звука и обработка данных. • Управление устройством захвата и его удаление при закрытии приложения. 07:49 Анализ данных WAV • Анализ формата WAV как шестнадцатибитного PCM-файла. • Вычисление количества сэмплов в буфере. • Преобразование буфера в дискретный сигнал с частотой дискретизации 44100 Гц. 11:02 Извлечение значений сэмплов • Извлечение шестнадцатибитных значений сэмплов из буфера. • Использование бинарного ридера для чтения данных. • Деление значений на 32768 для преобразования в формат с плавающей запятой. 12:42 Расчёт громкости в децибелах • Выражение значения громкости в децибелах. • Использование вспомогательного класса Scale для преобразования значений. • Получение значения громкости в децибелах с помощью класса Scale. 13:27 Вычисление децибел • Использование RMS для вычисления децибел. • RMS рассматривается как среднее значение энергии сигнала. 13:58 Установка модели представления • Переход в новый поток для установки модели представления. • Выполнение команды для установки значения краткосрочной громкости. 14:31 Проблемы с вычислением • Вычисление лофтов для каждого сэмпла и обновление пользовательского интерфейса. • Обнаружение некорректного поведения значений. 15:35 Анализ краткосрочных значений • Сравнение краткосрочных и усреднённых значений. • Усреднённое значение остаётся на уровне 20, в то время как краткосрочное падает до −50. 16:34 Разработка алгоритма усреднения • Использование таймера для усреднения образцов за секунду. • Расчёт новых средних значений на основе данных за секунду. 17:15 Реализация алгоритма усреднения • Создание массива чисел с плавающей запятой для хранения образцов. • Замена списка на стек для удобства добавления и удаления элементов. 19:16 Исправление ошибок в алгоритме • Исправление логики добавления и удаления элементов в стеке. • Переход на использование очереди для корректного извлечения элементов. 20:23 Тестирование и корректировка • Тестирование усреднённых значений с 40 выборками. • Обнаружение некорректных расчётов и необходимость корректировки средних значений. 21:32 Обработка стрелки и полосы • Сопоставление значения стрелки с кратковременными углами наклона. • Расчёт размера полосы на основе мгновенных углов наклона. 22:01 Заключение • Призыв к участию в Discord для дальнейшего обсуждения и разработки. • Подчёркивание важности наличия информации о звуке и громкости. • Обещание продолжить работу над графиком и функциональностью приложения.

, чтобы оставлять комментарии