Форум: "Прочее";
Текущий архив: 2015.12.20;
Скачать: [xml.tar.bz2];
ВнизMidi 2 Beep-код Найти похожие ветки
← →
Kilkennycat © (2015-02-11 20:17) [80]
> У аппаратного частота слишком маленькая.
вовсе нет... ты просто не чувствуешь.
сам подумай - чем обусловлено наличие аппаратного шима? неужели разработчики занизили его б частотную характеристику, к коему нет никаких предпосылок, в угоду чему либо? размышляй объективно, что разработчики мк несколько сильнее тебя и меня вместе взятых (и это так), и невозможность извлечь правильный звук, это не их косяк, а наш.
попробуй осознать шим, что это не только частота, т.е. отношение периода к единице, но и скважность и длительность, что существует множество режимов шим, которые позволяют моделировать в какой-то степени и ам и чм модуляцию, там такие звуки можно извлекать, что просто жуть. Вся фишка именно в осознании того, как это работает.
в противном случае проще потратить 3*N+1 резисторов и собрать примитивный Цап и гнать 8(16)-битный wav
← →
Inovet © (2015-02-11 20:32) [81]> [80] Kilkennycat © (11.02.15 20:17)
> 8(16)-битный wav
на 16 надо резисторы точные и остальное тоже.
← →
Kilkennycat © (2015-02-11 20:35) [82]
> Inovet © (11.02.15 20:32) [81]
ну, разрядность на точность не скоро влиять начинает, если погрешность резисторов не успевает перекрываться. можно и 5%, если допустимы высокие сопротивления
← →
Inovet © (2015-02-11 20:36) [83]берём километр провода отрезаем кусок 0,01 м, припаеваем, потом 0,02 м, припаеваем и заканчиваем куском 655,36 м. С частотой только проблемы возникнут.
← →
Inovet © (2015-02-11 20:38) [84]> [82] Kilkennycat © (11.02.15 20:35)
> можно и 5%
Ну можно и одинаковых кусков нарезать, но с точностью 0,001%.
← →
Inovet © (2015-02-11 21:09) [85]Удалено модератором
← →
Дмитрий С © (2015-02-12 13:32) [86]Вчера удалось получить частоту ШИМ-а в 80 KHz в режиме Fast PWM, путем большого количества проб. И я почитал даташит, на удивление, понятный для меня документ.
В результате, даже были намеки на тот звук который я хочу получить. Правда всего 6,6 бита, если посчитать. На выходных приедет осциллограф - думаю с ним отладка веселее пойдет.
← →
Дмитрий С © (2015-02-14 21:50) [87]Вроде получил нормальный звук, но очень тихий. Ребят, подскажите, как сделать простой усилитель на транзисторе?
← →
Kilkennycat © (2015-02-14 23:57) [88]ГУГЛ
← →
Дмитрий С © (2015-02-15 13:00) [89]
> Kilkennycat © (14.02.15 23:57) [88]
Тоже верно, но одних знаний недостаточно, нужен и опыт еще.
В общем собрал я простой усилитель + еще воткнул между базой транзистора и землей конденсатор на 10 микрофарад - звук стал намного лучше. Я думаю придется его подбирать.
Теперь вот большой вопрос, а как две частоты соединять? Т.е. есть два сигнала, как получить из совмещенный?
← →
Kilkennycat © (2015-02-15 13:34) [90]гугл микшер
← →
RWolf © (2015-02-15 18:18) [91]что с чем мешать? в этом аппарате два шима, что ли?
← →
Inovet © (2015-02-15 18:58) [92]> [91] RWolf © (15.02.15 18:18)
> в этом аппарате два шима, что ли?
Видать, не осилил программное смешивание.
← →
Дмитрий С © (2015-02-15 18:58) [93]
> RWolf © (15.02.15 18:18) [91]
Нет, шим1. Программно смешать две частоты.
Есть 8-битный звуковой синусовидный сигнал (всегда положительный) частотой 440 Гц. Функция S1(x) возвращает значение этого сигнала, где X - шаг дискретизации.
Соответственно S1(x) может принимать значения от 0 до 255.
Есть аналогичный сигнал, но частотой, к примеру, 523 Гц, его функция S2(x).
И есть 8-битный регистр OUT, куда я кладу значение сигнала (суммарного) каждый шаг дискретизации.
С одним сигналом (одной частотой) все получилось в порядке: получается достаточного качественный звук (приемлемый для меня, с учетом усилителя и фильтра).
А вот с двумя вообще не понятно как их суммировать.
В выбранной мной мелодии есть аккорды и в сумме требуется до 4 сигналов одновременно играть.
Средним арифметическим что ли? В этом случае меня смущает то, что один сигнал будет в 4 раза тише играть, пока остальные молчат.
На данный момент я добился следующих показателей:
Скорость 8-битного ШИМ-а 31250 Гц. (можно увеличить за счет разрядности шима).
Частота дискретизации 7812 Гц. (можно увеличить до примерно 15 кГц).
← →
Kilkennycat © (2015-02-15 19:07) [94]а я бы просто взял ARM Cortex M3 и забабахал бы мп3 проигрывание. За один день.
← →
Inovet © (2015-02-15 19:10) [95]> [93] Дмитрий С © (15.02.15 18:58)
> что один сигнал будет в 4 раза тише играть, пока остальные молчат.
А должн так же что ли? т.е. звучат четыре ноты или вообще иструмента все вместе с максимальным уровнем, затем три замолкают и внезапно оставшаяся начинает звучать громче, как все четыре вместе до этого. Интересный подход. Имей ввиду, что изменения уровня звука слух воспримет совсем не так, как ты думаешь.
← →
Inovet © (2015-02-15 19:14) [96]И насчёт смешивания. Просто складывай их и всё, только в записи нот кроме номера ноты и длительности надо ещё сохранять уровень, или хотя бы на каждую партию общий для всех нот.
← →
Дмитрий С © (2015-02-15 19:20) [97]
> Inovet © (15.02.15 19:14) [96]
Т.е. складывать и делить на их количество, правильно?
Я проанализировал проект квартета, ранее упомянутого в ветке. Там похоже так и делается.
← →
Inovet © (2015-02-15 19:24) [98]> [97] Дмитрий С © (15.02.15 19:20)
> Т.е. складывать и делить на их количество, правильно?
На ходу я бы не стал делить, лучше бы заранее при отладке, или как тут этот процесс уже назвать - сведении, ага, один раз всё сдалал чтобы оно нормально звучало, а при воспроизведении только складывал.
← →
Kilkennycat © (2015-02-15 19:25) [99]
> Т.е. складывать и делить на их количество, правильно?
ты понимаешь разницу между скважностью, длительностью и амплитудой? смешивание двух частот не изменяет амплитуду, с чего предположение, что инструмент будет звучать тише?
← →
Inovet © (2015-02-15 19:28) [100]> [99] Kilkennycat © (15.02.15 19:25)
Да всё правильно он говорит - тише будет, должен, а не будет, так вылезет в переполнение. А ШИМ там или другой вид модуляции - дело второе.
← →
Дмитрий С © (2015-02-16 10:54) [101]
> Kilkennycat © (15.02.15 19:25) [99]
Оставим пока модуляцию, для начала нужно решить что именно модулировать.
Вот графики функций, описывающих 440 Гц и 523 Гц (100 делений по Х в секунду).
Соответственно синим и зеленым.
Оранжевым - их сумма. Наглядно видно, что сумма выходит за рамки [-1; 1] и не сложно установить, что ее рамки [-2; 2]. Но канал у нас [-1; 1], и соответственно результат надо в него как-то вписать.
http://yotx.ru/#!1/2_h/sH@1v7Rgzhf23/aH/zYv9i34gh/K/t/wPhGztgABC8BwaBDra3Dg529w/2STTsxs4p4/F0i/G4dXmxu/8PhG/sgAFA8B74bOdie@vgYHf/YJ9Ew24cMB63Lk4Zjwe7@/9A@MYOGAAE74FBoIPtrYODXeg/EL6xAwYAwXvgs52L7a2Dg939g30SDbuxc3bGeNzaumQ8biF29wEH
Остается два варианта:
А) делить на 2.
Б) найти другой способ суммирования.
Твои предложения?
← →
Дмитрий С © (2015-02-16 11:31) [102]Среднее арифметическое мне кажется самым хорошим вариантом.
Но возникают вопросы:
А если частот будет 4 или 50 и какие то из них будут сильными, а какие то нет, + их сила будет меняться со временем, то на сколько делить?
← →
Дмитрий С © (2015-02-16 12:57) [103]Послушав какие бывают мелодии и придя к выводу, что слишком затяну время и результат будет так себе. Я решил пойти по пути примерно> Kilkennycat © (15.02.15 19:07) [94].
Припаяю что-нибудь вроде http://amperka.ru/product/df-player-mp3-module , а через ADC буду уже "ловить" звук и подсвечивать цветы своей композиции.
Осталось только с динамиком определиться :)
Всем большое спасибо за терпение и советы!
← →
Kilkennycat © (2015-02-17 00:08) [104]
> Дмитрий С © (16.02.15 12:57) [103]
собственно, я к такому пути пришел, сравнив стоимость контроллера и времени, затрачиваемого на попытку сбацать что-то дохленьким, что может сделать более крутой...
но есть одно но: такие попытки нехило обучают и часто возникает необходимость, когда все-таки надо именно дохленьким, например, я их купил сотню штук, не пропадать же добру :)
← →
KSergey © (2015-02-17 09:22) [105]> Дмитрий С © (05.02.15 18:30)
> Кто-нибудь встречал преобразователь Midi файла (одной из его дорожек) в код из beep и sleep ?
А вот это выделенное - сразу было в вопросе?
если да - то позор мне, не заметил ключевого момента
← →
brother © (2015-02-17 11:14) [106]да, тк редактировать сообщения пользователю после отправки нельзя...
← →
Дмитрий С © (2015-04-30 13:51) [107]В общем забил я на полифонию. Сделал обычным бипом.
Получилось вот что:
http://www.youtube.com/watch?v=aV42lAC04v4
← →
RWolf © (2015-04-30 13:58) [108]Как-то тихо совсем, поближе микрофон переставь, что ли.
И что за неведомые проблемы с полифонией, после такого-то обсуждения?
← →
Дмитрий С © (2015-04-30 14:33) [109]
> RWolf © (30.04.15 13:58) [108]
Я не добился приемлемого качества за отведенное время. По мне так 8 МГц не хватает для полифонии.
← →
Inovet © (2015-04-30 14:51) [110]> [109] Дмитрий С © (30.04.15 14:33)
> По мне так 8 МГц не хватает для полифонии.
И как только раньше на всяких 4 МГц i8086, уж не говоря про i8080, Z80 и т.п., исхитрялись делать...
← →
Inovet © (2015-04-30 14:54) [111]> [107] Дмитрий С © (30.04.15 13:51)
> Получилось вот что:
Это что ли "Катюша" в джазовой обработке?
← →
RWolf © (2015-04-30 15:05) [112]
> [109]
В одной моей поделке на атмеге 14 Мгц три голоса играют не напрягаясь. Можно было бы и ещё добавить.
← →
Дмитрий С © (2015-04-30 17:31) [113]
> И как только раньше на всяких 4 МГц i8086, уж не говоря
> про i8080, Z80 и т.п., исхитрялись делать...
Может там отдельный звуковой генератор какой-то был?
Предположим 8 битный звук.
Где-то в ветке читал, что желательно, чтобы PWM успел 4 раза досчитать до конца.
256 * 4 = 1024 такта. При частота дискретизации 8000Hz, получаем 8192000 такта в секунду. Четырех МГц явно не должно хватать. Хотя на 8и можно и еще поиграться. Но это потом, в свободное время.
> В одной моей поделке на атмеге 14 Мгц три голоса играют
> не напрягаясь.
Не затруднит код показать? Интересно как сделал.
← →
RWolf © (2015-04-30 19:50) [114]
> [113]
Код закрытый, но тут все принципы уже обсудили: прерывания по таймеру с частотой 28 кГц, нота пропускается через таблицу синусов, таблицы громкостей, получается текущее значение звукового давления в канале. Повторить для всех каналов, смешать результаты, обновить управляющий регистр ШИМ.
Страницы: 1 2 3 вся ветка
Форум: "Прочее";
Текущий архив: 2015.12.20;
Скачать: [xml.tar.bz2];
Память: 0.67 MB
Время: 0.009 c