Обновить
8K+
36

Пользователь

19,2
Рейтинг
19
Подписчики
Отправить сообщение

Ответ на мой вопрос оказался куда интереснее, чем я ожидал, спасибо!

Барабаны, перегруженные гитары и шум добавляют энергию на всех частотах. Обертоны тоже путают: у ноты до третья гармоника звучит как соль. Поэтому я режу диапазон до 80–5000 Гц, но это полумера.

Наверное, нейросети выделяют только мелодию без ударных, а уже её анализируют?

Так ведь и более крутые уровни есть - разработка на FPGA, например, вплоть до плат PCIx. А вот "нужно" или нет - ИМХО, каждый решает сам.

я же все таки обычный студент который хочет развиваться в профессии. Claude я использовал для создания интерфейса в tauri (что что, а React я не очень то знаю), все остальное ручками собирал с начала сентября на rust и kotlin

Желаю Вам удачи - всем бы студентам иметь столько желания развиваться и работоспособности. Отдельно хочу отметить, насколько многие (включая меня) недооценивают возможности современных средств разработки с помощью ИИ. Есть правильная фраза про то, что одни ищут возможности, а другие - причины (ничего не делать).

Напишите, пожалуйста, это реально интересно. Я хоть и сам музыкант, но не очень понимаю, как программно определять тональность даже с использованием нейросетей. Просто бывает, что слушаешь какую-нибудь симфонию Прокофьева до-диез мажор, а в её звучании мажор как-то не очень присутствует :-) Вот и как определять здесь тональность?

Да и в более простой музыке это совсем непросто может оказаться.

Тормозной digitalWrite можно заменить на прямую запись в регистры, тогда побыстрее будет. Другое дело, что у многих Arduino тактовая частота МК низкая, и они просто медленные сами по себе.

А как ставится высокомное состояние в Ардуино? pinMode(INPUT), digitalWrite(HIGH) - что за бред? 

вместо хака с pinMode, digitalWrite в коде будет указан конкретный тип из enum

Согласен, что лучше явное включение режима, но это, ИМХО, не такая уж страшная проблема, как малое количество памяти, низкая тактовая частота и др. ИМХО, на всё имеет смысл смотреть с точки зрения решаемых задач и баланса между возможностями и сложностью их использования.

Попробую пояснить, что я тут хотел сказать (статья и так большой получилась, поэтому старался писать покороче). Если взять цифровой эквалайзер на БИХ-фильтрах (аналогичный ручкам эквалайзера на обычном аналоговом микшере, в цифровом виде его ещё называют Parametric EQ), то при поднятии громкости в какой-то полосе частот на 3...6 дБ звук вроде как становится просто громче, но если поднимать громкость значительно (на 12 дБ и больше), то звук при этом уже сильно меняется - в зависимости от частоты, становится либо "как из бочки", либо "как в старом телефоне", либо "из-за угла" (надеюсь, я понятно объяснил :-)

Когда-то давно, когда я только начинал заниматься цифровой обработкой звука, и я первый раз покрутил громкость в многополосном FIR-эквалайзере в программе Cool Edit Pro (сейчас она называется Adobe Audition), разница в звучании для меня была значительной, особенно в наушниках. Даже если сильно поднимать громкость в какой-то полосе, звук просто "выходит на первый план", и при этом не становится "как из бочки". На реальных микшерских пультах или рэковых многополосных эквалайзерах я такого никогда не слышал.

"частотная окраска" — это свойство слуха, а у слуха частотная чувствительность зависит от уровня

Про это я знаю. Помню, году в 2000 выписывал журнал "Звукорежиссер", в котором был цикл статей про психоакустику - там много было написано про то, что, например, громкие низкочастотные звуки "маскируют" собой более высокочастотные, и от громкости восприятие частот на слух тоже зависит, и всё это нужно учитывать при обработке и сведении звука.

Поэтому регуляторы громкости делают тонкомпенсированными.

Я занимался только реализацией различных алгоритмов цифровой обработки звука, но сам я не звукорежиссер, поэтому с реальными (физическими/аналоговыми) приборами работал мало.

Сходу нашел вот такой материал, где написано:

Проведённые ими эксперименты по исследованию амплитудно-частотной характеристики человеческого слуха показали, в частности, что более тихий звук воспринимается как более глухой или тусклый, то есть, испытывающий недостаток верхних частот.

С тех пор в аппаратуре для воспроизведения и создания музыки часто встречаются тонкомпенсированные регуляторы громкости, в которых при аттенюации сигнала верхние частоты ослабляются в меньшей мере, чем все остальные.

Наверное, Вы это имеете ввиду?

С этим я не спорю. Я имею ввиду "для новичка, желающего начать работать именно с STM32".

освещена в сотнях (если не тысячах) статей

Можете ссылку хоть на один материал дать? Что именно искать надо?

ИМХО, как-то это всё сложновато, если это "руководство для новичка". Я вот подумываю заняться написанием чего-нибудь для STM32, но после Arduino как-то рука не поднимается такую кучу всего осваивать (для меня это хобби, а не работа).

Возможно, сейчас меня закидают чем-нибудь, но можно же и в Arduino IDE для STM32 писать. Например, здесь и тут пишут:

Программная поддержка STM32 в Arduino IDE называется STM32duino. Она реализована в виде пакета поддержки и загрузчика, прошиваемого в плату. В среду она добавляется как обычно: сначала указывается ссылка в настройках, потом устанавливается пакет из Менеджера плат.

Для новичка этого недостаточно будет?

А можете вкратце рассказать, как определяется тональность композиции? ИМХО, это вполне может потянуть на рассказ в виде отдельной статьи.

это убивало (и по сей день так) детальность на высоких и (в мЕньшей степени) средних частотах

А можно подробнее - почему такой подход "убивает детальность" на высоких и средних частотах? Казалось бы - просто восстановление аналога из цифры, зачем здесь передискретизация? Может, где-то подробнее про это прочитать можно?

Хабр - торт, но Вы пробовали поиск? Там выдается и готовый краткий ответ от ИИ, и куча ссылок на статьи, в которых примерно то же самое написано. Но я ничуть не умаляю достоинств этой статьи.

но при этом есть ощутимая нагрузка на процессор. Обычно в реальном времени используется компромиссный вариант, из-за которого качество заметно портится.

Это общие слова. Качественный ресэмплинг можно реализовать так, что он даже на процессоре Pentium с частотой 100 МГц будет работать в реальном времени без слышимых артефактов - например, с помощью полифазных фильтров. Я такими задачами ещё лет 25 назад занимался.

насколько этот ресемплинг 147 к 160 влияет на качество звука

Ресэмплинг можно делать с разным качеством - и так, что будут слышны искажения, и так, что их не будет слышно. Вопрос не совсем корректно поставлен.

А если в композиции тональность меняется несколько раз, плеер что и как определяет?

Проблема сия едва ли устранима

С частью таких проблем помогают справиться статические анализаторы.

class Foo {
    int value;
public:
    Foo(int value) { // параметр затеняет поле class
        value = value; // ничего не делает, присваивает параметр самому себе
    }
};

От таких вещей спасают соглашения об именовании переменных и членов класса. Например, переменные-члены класса всегда должны начинаться с m_ или просто _, а прочие переменные - не должны. Да и вообще много рекомендаций по написанию кода существует, чтобы поменьше на грабли наступать.

1
23 ...

Информация

В рейтинге
384-й
Зарегистрирован
Активность