#1 2025-06-27 22:35:03

jokeR
Учасник
Зареєстрований: 2024-12-12
Повідомлень: 121

Генерація звуків

Оце подумалось.. Взагалі, хтось бачив десь колекцію семплів, які можна без особливих зусиль запустити на мікроконтроллері? Бо пищати функцією tone() якось скучно. Аранжувати ноти в послідовність звуків - це точно не для мене wink
Знайшов на github лібу sensorium/Mozzi (не любить автомодератор коли URL в першому повідлмленні wink). Прикольно. Але щоб почути - треба прошити.
А взагалі хочеться процедурно згенерований звук метронома чи кастаньєт wink

Неактивний

#2 2025-06-28 01:38:51

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 488

Re: Генерація звуків

Тут декілька окремих питань: відтворення звуків, колекція семплів, процедурна генерація.

Якщо не розглядати зовнішні синтезатори типу AY-3-8910, то які варіанти крім PCM? А PCM можна відтворювати хоч ШІМ'ом, хоч пасивним R-2R DACом.

Але у флешку atmega328p, наприклад, при 8 біт @ 8 кГц влізе менше 4 секунд. Можна знизити розрядність до 4 біт, тоді в два рази більше. Можна зберігати семпли у зовнішній EEPROM.

jokeR пише:

Оце подумалось.. Взагалі, хтось бачив десь колекцію семплів, які можна без особливих зусиль запустити на мікроконтроллері?

В чому проблема взяти семпли, які не можна "запустити" на мікроконтролері, і конвертувати в такі, які можна? І що значить "запустити"?

jokeR пише:

А взагалі хочеться процедурно згенерований звук метронома чи кастаньєт wink

Берете семпл в PCM, розкладаєте його у спектр. Непотрібні компоненти відкидаєте, потрібні зберігаєте у форматі з точністю, достатньою для відтворення у необхідній якості. На контролері процедурно відтворюєте вейв-форму зі спектру. Тригонометрію можна реалізувати таблицею або CORDIC. Залежить, що за контролер і які в нього є ресурси.

Неактивний

#3 2025-06-28 08:33:28

jokeer
Гість

Re: Генерація звуків

Ключовий момент  - без особливих зусиль. Так то можна упоротися в конвертування, а потім у впихання у флешку. Але це якось не сама основна частина алгоритму.

#4 2025-06-28 10:03:46

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 488

Re: Генерація звуків

jokeer пише:

Ключовий момент  - без особливих зусиль. Так то можна упоротися в конвертування, а потім у впихання у флешку. Але це якось не сама основна частина алгоритму.

Тоді не дуже розумію питання. У моно PCM всього два параметра: частота семплінгу та формат семпла. Якщо це не якийсь екзотичний формат, то ресемплиться та конвертується існуючими тулзами, наприклад sox'ом. Якщо екзотичний, то пишеться свій конвертор у потрібний формат.

Ідеї для процедурної генерації на МК можна підглянути в демосцені.

Неактивний

#5 Вчора 15:51:47

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,062

Re: Генерація звуків

https://habr.com/ru/articles/234763/

Музыкальный дверной звонок в стиле Star Wars на Arduino ( Attiny13 )

Остання редакція renoshnik (Вчора 15:53:26)

Неактивний

#6 Вчора 16:19:45

jokeer
Гість

Re: Генерація звуків

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

#7 Вчора 18:16:38

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 488

Re: Генерація звуків

jokeer пише:

Хотілось знайти готову колекцію готових семплів, з яких вибрати щось підходяще.

Колись, в доінтернетні часи, колекції семплів качали з BBSок, видирали з програм-трекерів, з mod-файлів та з іграшок. Пізніше, памʼятаю, продаватись цілі компакт-диски з колекціями семплів.
Невже в наш час інтернету нема де скачати? Наче ж гугляться, і платні, і безплатні. На торентах ще можуть лежати.
Якщо потрібні семпли якихось музичних інструментів, можна згенерувати зі звукового шрифта (soundfont). Той же timidity++ вміє писати в wav.
Звісно, не завжди можна знайти саме те, що хочеться. Тоді аудіоредактор в руки, і ліпити з того що є.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму