Pull to refresh

Хор невольниц из оперы «Князь Игорь» разпознает FPGA плата. Без микропроцессора, DSP и FFT. Вообще без программирования

Mathematics *FPGA *Programming microcontrollers *Studying in IT Electronics for beginners

Сегодня молодой ученый из МФТИ Виктор Прутьянов отлаживал с преподавательницей флейты Марией Беличенко электронную схему, которая распознает мелодии. Упражнения по проектированию таких схем будут выполнять в среду старшие школьники и младшие студенты на проходящей в Сколково "Школе синтеза цифровых схем".

Это не программирование - на плате, которая видна на видео, вообще нет микропроцессора который мог бы выполнять программу. На ней стоит микросхема ПЛИС, матрица реконфигурируемых логических элементов. ПЛИС используют для обучения, например в курсе 6.111 от Массачуссетского Технологического Института, который выпускает будущих разработчиков чипов в смартфонах, автомобильной и космической электронике. Виктор Прутьянов вместе с студентов Сколтеха Владиславом Молодцовым Поставили такой курс в МФТИ.

Если вы хотите познакомиться с математикой музыки, или методами проектирования электроники на уровне регистровых передач (Register Transfer Level - RTL) с помощью синтеза схем, описанных на яхыке описания аппаратуры Verilog, вы можете бесплатно присоединиться к занятиям онлайн (офлайн места в Сколково уже все разобраны к сожалению).

Если вы при этом еще и пройдете роснановский онлайн-курс "Как работают создатели умных наночипов", то вам пришлют вот такую плату как в видео бесплатно (это предложение касается только школьников, преподавателей и руководителей кружков).

Как распознавать музыку голым железом:
Total votes 13: ↑12 and ↓1 +11
Views 4.4K
Comments 14

Голосовое управление: цифровая обработка сигналов на 8-битном AVR при помощи жесткого ассемблера

DIY
Итак, пришло время рассказать кое-что поинтереснее простых поделок на АВРках. В этой статье я расскажу, как собрать на АВР устройство, выполняющее достаточно серьезную обработку аудио-сигнала с целью распознания голосовых команд.
Читать дальше →
Total votes 99: ↑96 and ↓3 +93
Views 30K
Comments 30

Distortion (waveshaping) эффекты в Max/MSP

Sound
Sandbox
Дисторшены используются для добавления гармоник к исходному звуку. В большинстве случаев для этого используются вэйвшэйперы, Я говорю «в большинствe», потому что гармоники можно добавлять еще с помощью, например, кольцевой модуляции (ring modulation). Итак, суть waveshaping-а заключается в преобразовании сигнала с помощью специально подобранной передаточной функции. Звучит сложно? Вовсе нет. По сути, возведение сигнала в квадрат – это тоже передаточная функция. Это вся теория, которую нам нужно знать. Приступим к патчингу!
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Views 3.8K
Comments 5

Apple приобрела Anobit

Self Promo
Корпорация Apple купила израильскую стартап-компанию Anobit, которая занимается разработкой уникальной технологии флеш-памяти (DSP), за 500 млн. долларов.

Подробнее о технологии здесь.

Кроме того, на днях Apple заявила о намерении открыть в Израиле первый за пределами США центр исследований и разработок, который будет располагаться в городе Хайфа, поближе к ведущему израильскому технологическому институту — Техниону.
Total votes 22: ↑12 and ↓10 +2
Views 546
Comments 4

Многоядерный процессор для беспилотников

High performance *
Translation
За последние 10 лет беспилотные летательные аппараты (БПЛА) окончательно перешли из разряда лабораторных образцов в разряд технологий, проверенных в полевых условиях. Недавно проведенные Teal Group исследования показали, что общие сметные расходы на БПЛА удвоятся за следующую декаду с 5 млрд. долл. США в год до 11,3 млрд. в год. Ожидается, что за следующие 10 лет будет потрачено более 94 млрд. долларов. Помимо военного применения (основная ожидаемая область применения), БПЛА применяются в таких областях, как наблюдение за общественной безопасностью, контроль границ, пожаротушение, мониторинг автотрафика. Ожидается коммерческое применение БПЛА в системах связи.
Под катом тизер многоядерного DSP TMS320C6678 от TI
Total votes 14: ↑9 and ↓5 +4
Views 4.2K
Comments 7

Мел-кепстральные коэффициенты (MFCC) и распознавание речи

Programming *Algorithms *
Sandbox
Недавно я наткнулся на интересную статью, опубликованную rgen3, в которой описан DTW-алгоритм распознавания речи. В общих чертах, это сравнение речевых последовательностей с применением динамического программирования.

Заинтересовавшись темой, я попробовал применить этот алгоритм на практике, но на этом пути меня поджидало некоторое количество граблей. Прежде всего, что именно нужно сравнивать? Непосредственно звуковые сигналы во временной области — долго и не очень эффективно. Спектрограммы — уже быстрее, но не намного эффективнее. Поиски наиболее рационального представления привели меня к MFCC или Мел-частотным кепстральным коэффициентам, которые часто используются в качестве характеристики речевых сигналов. Здесь я попытаюсь объяснить, что они из себя представляют.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 73K
Comments 9

Вейвлет-сжатие «на пальцах»

Image processing *
Tutorial


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

Попробуем на простых примерах разобраться, откуда же вообще берутся вейвлеты и как их можно использовать при сжатии. Предполагается, что читатель знаком с основами линейной алгебры, не боится слов вектор и матрица, а также умеет их перемножать. (А во второй части даже попробуем что-то запрограммировать.)

Читать дальше →
Total votes 169: ↑168 and ↓1 +167
Views 168K
Comments 58

IP-телефония: от медных проводов до цифровой обработки сигнала

Promwad corporate blog Development of communication systems *Manufacture and development of electronics *


Если в один прекрасный день вам придется на скорую руку разобраться, что есть VoIP (voice over IP) и что значат все эти дикие аббревиатуры, надеюсь, эта методичка поможет. Сразу замечу, что вопросы конфигурирования дополнительных видов обслуживания телефонии (такие как перевод вызова, голосовая почта, конференц-связь и т.п.) здесь не рассматриваются.



Итак, с чем мы будем разбираться под катом:
  1. Базовые понятия телефонии: типы аппаратов, схемы подключения
  2. Связка SIP/SDP/RTP-протоколов: как это работает
  3. Как передается информации о нажатых кнопках
  4. Как происходит передача голоса и факсов
  5. Цифровая обработка сигналов и обеспечение качества звука в IP-телефонии

Читать дальше →
Total votes 28: ↑25 and ↓3 +22
Views 77K
Comments 11

Использование DSP звуковой платы SB Live! на пользу радиолюбителей (KX Driver's) — Часть [1/2]

Sound

Эксперименты по обработке звука аппаратными средствами SB Live и их возможное применение для работы в эфире. Заметка включает в себя инструкцию по применению альтернативных драйверов KX-Project, примеры применения и выводы по возможности реального применения. Период написания статьи 2006-2007 год, размещена была на страничке ныне уже не существующей коллективной радиостанции (RK3MXH). Авторство мое.

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

Под катом очень много текста и рисунков.
Читать дальше →
Total votes 41: ↑38 and ↓3 +35
Views 85K
Comments 24

Использование DSP звуковой платы SB Live! на пользу радиолюбителей (KX Driver's) — Часть [2/2]

Sound


Первая часть: Использование DSP звуковой платы SB Live! на пользу радиолюбителей (KX Driver's) — Часть [1/2]

Практическая часть, проблемы, выводы.

Под катом много видео.
Читать дальше →
Total votes 24: ↑24 and ↓0 +24
Views 16K
Comments 3

Микрокомпьютер Module MB 77.07 — русский ответ Raspberry Pi

Promwad corporate blog Open source *System Programming *Manufacture and development of electronics *


Читая новости о запрете на поставку электронной компонентной базы из США для отдельных производителей в РФ, мы решили рассказать об одноплатном микрокомпьютере Module МВ 77.07, который был разработан в российском научно-техническом центре «Модуль» на базе одного из наиболее производительных российских процессоров архитектуры ARM. Также мы рассмотрим установку Linux-дистрибутива Debian на этот микрокомпьютер.
Читать дальше →
Total votes 119: ↑106 and ↓13 +93
Views 110K
Comments 194

Создание аудиоплагинов, часть 1

C++ *
Tutorial
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг



Этот пост — первый из серии переводов руководства Мартина Финке о написании собственных аудиоплагинов.
Отличительной особенностью этого материала является отсутствие зависимости от формата плагина и платформы его использования. Внимание сфокусировано на общей структуре аудиоплагина. Затем алгоритмы оборачиваются в слой абстракции для сборки в форматы VST, VST3, AU, RTAS, AAX или в отдельное приложение.
Сам Мартин больше работает на Маке, но руководство содержит и все необходимые шаги для разработки на Windows.
Интересно? Тогда под кат!
Total votes 25: ↑24 and ↓1 +23
Views 76K
Comments 5

Создание аудиоплагинов, часть 2

C++ *
Tutorial
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг



Давайте получше рассмотрим наш тестовый проект. Самые важные файлы — resource.h, MyFirstPlugin.h и MyFirstPlugin.cpp. На данный момент плагин представляет собой простой регулятор громкости звука.
Читать дальше →
Total votes 6: ↑4 and ↓2 +2
Views 15K
Comments 0

Создание аудиоплагинов, часть 3

C++ *
Tutorial
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг



В этом посте мы завершим необходимую настройку среды разработки и подготовим вспомогательное окружение.
Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 13K
Comments 0

Создание аудиоплагинов, часть 4

C++ *
Tutorial
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг



Пора приступать к написанию нашего первого плагина. Это будет грязный цифровой дисторшн. Если говорить точнее, плагин будет просто обрезать пики амплитуды звукового сигнала.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Views 10K
Comments 0

Создание аудиоплагинов, часть 5

Interfaces *Sound
Tutorial
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг



Давайте добавим несколько предустановок для плагина и создадим [относительно] симпатичный интерфейс.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Views 9.3K
Comments 0

Создание аудиоплагинов, часть 6

C++ *
Tutorial
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг



После улучшений интерфейса пора бы заняться и программированием. В этом посте мы сгенерируем классические синус, пилу, треугольник и меандр.

Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Views 9.2K
Comments 0

Создание аудиоплагинов, часть 7

C++ *
Tutorial
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг



Пока что мы генерировали только постоянную звуковую волну, которая просто звучала на заданной частоте. Давайте посмотрим, как можно реагировать на MIDI сообщения, включать и выключать генерацию волны на нужной частоте в зависимости от получаемой ноты.
Читать дальше →
Total votes 21: ↑19 and ↓2 +17
Views 7.2K
Comments 0

Создание аудиоплагинов, часть 8

Interfaces *Sound
Tutorial
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг



Настройка виртуальной клавиатуры в REAPER не так очевидна, к тому же хост пользователя может вообще не иметь такой функциональности. Давайте добавим свою маленькую экранную клавиатуру в GUI.
Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Views 6.1K
Comments 10

Создание аудиоплагинов, часть 9

C++ *
Tutorial
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг



Звук интересен тогда, когда в нем происходят какие-то изменения. Давайте сделаем генератор огибающей (envelope), которая будет менять громкость звука.
Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Views 5.5K
Comments 7