All streams
Search
Write a publication
Pull to refresh
53
0
Ануфриенко Сергей @madprogrammer

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

Send message
У китайцев давно уже есть такие модули System-on-Module, с более мощным железом, и их, к тому же, можно руками запаять.
В принципе, качество звука меня устраивает. Я ожидал худшего от встроенного кодека. На крайний случай у меня еще есть внешняя USB-звуковая карточка Creative SB Play. Встроенный кодек действительно на максимальной громкости не очень чисто звучит, поэтому при загрузке я устанавливаю 90% громкость. В крайнем случае воткну USB-свисток и буду выводить звук через него.
Конечно можно. С некоторой долей вероятности там стоит отдельная микросхема, сканирующая клавиатурную матрицу, которая посылает данные о нажатых клавишах в UART. Можно прицепить к ней Bluetooth-модуль. В моем случае мне хочется не просто MIDI-клавиатуру, а чтоб играло :) Поэтому целый пк…
Пока еще окончательно не собрано, но уже большая часть функционала работает, синтезатор играет. Чтобы все было красиво, нужно докупить несколько разъемов, шлейф для соединения 50-пинового разъема ARM-компьютера с остальной частью синтезатора, сделать ответную плату, куда будет подключаться шлейф, также решить вопрос с питанием всего этого хозяйства. Плюс, я планирую задействовать и сделать программируемыми элементы управления (кнопки), имеющиеся на лицевой панели. Пока никуда не подключен и не работает разъем педали и Pitch Bend. Демо конечно же будет выложено в последующих статьях (пока планируется еще две статьи).
Почему вы отказались от использования уже готовых синтезаторов для Linux?

Я вроде и не отказывался — собираюсь использовать LinuxSampler и FluidSynth. Правда это больше сэмплеры (если вы это имели в виду). Есть еще синтезаторы вроде amsynth, но я боюсь, у выбранной аппаратной платформы, как вы верно подметили, не хватит ресурсов для полноценного синтеза, хотя попробовать никто не мешает.

Ну и позвольте покритиковать ваш выбор платы.

Наверное, причина такого выбора (не нетбука) в том, что я просто не продумывал такой вариант изначально. Ну и есть определенные вопросы, например, сходу не понятно, как к выдранной из нетбука материнской плате прикрутить LCD-дисплей с тачем. Плюс, я как-то не задавался целью получить на выходе звук с параметрами, превышающими 16 бит 48 кГц — по-моему, более чем достаточно. Кстати, качество встроенного звука оказалось заметно выше, чем аналоговый выход Raspberry Pi.
В большинстве (кроме самых дешевых) синтезаторов клавиши реагируют на скорость нажатия. Реализовано это так, что каждая клавиша имеет под собой на близком расстоянии 2 переключателя. Когда вы нажимаете клавишу, сначала замыкается первый, а потом второй. По разнице времени между этими событиями процессор синтезатора вычисляет скорость (и силу) нажатия, и определяет громкость, с которой нужно воспроизводить ноту.

Есть игра Synthesia — по аналогии с GuitarHero только для ф-но.
На синтезаторе играть легче, чем на цифровом или аналоговом пианино с полноразмерными взвешенными клавишами. Но, как мне кажется, именно учиться играть (полноценно, с правильной постановкой руки и т.д.) нужно, конечно, на полноразмерном. Для этой цели очень хорошо подходит «аналоговое» пианино, или цифровое пианино с полноценным молоточковым механизмом, например Roland RD-700NX (у меня раньше был Roland RD-700SX). Если же речь идет об игре на клавишах в группе, или вам нужен более мобильный инструмент, который легко можно таскать с собой (молоточковый механизм весит немало), или просто инструмент для хобби, то лучше взять синтезатор или MIDI-клавиатуру. Оптимальное количество клавиш — от 61 и выше. Если бюджет не ограничен, то можно посмотреть самые известные модели от каждой фирмы: Yamaha Motif XF/MX, Roland Jupiter-80/50, Korg M3/Kronos/Krome. Но даже в самых дорогих синтезаторах 88-клавишная взвешенная клавиатура далека по физическому восприятию от реальной рояльной клавиатуры, поэтому для обучения и игры классических произведений лучше взять что-то типа серии Roland RD-700/RD-300. Из MIDI клавиатур мне доводилось пользоваться Novation SL 61 MkII — ощущения положительные.
Уважаемый sensboston, я очень рад за ваши приложения. Вы, вероятно, удивитесь, но целью этого любительского проекта не является зарабатывание денег, и я также занимаюсь им не потому, что не в состоянии заработать на новый синтезатор — к вашему сведению, у меня есть несколько синтезаторов более высокого класса — один из них — Roland Jupiter-80. Я занимаюсь этим, потому что мне это интересно, и мне нравится идея, что в результате у меня получится инструмент, который я могу подстроить под себя как угодно, загрузить в него абсолютно любые звуки и алгоритмы синтеза и т. д. Кроме того, в процессе реализации я приобрел больше опыта в написании драйверов для Linux внесении изменений в код ядра и улучшил свое понимание его архитектуры, что в целом считаю для себя полезным. Уверен, найдутся люди, которые также извлекут для себя некоторую пользу от того, что я публикую результаты своего «исследования», со всеми граблями решениями.
Да, QtQuick требует поддержки OpenGL ES, и сначала я хотел использовать именно его (до того, как выяснилось, что драйверы OpenGL есть только под Android). Выпиливать ничего, к счастью не пришлось — он просто не собирается если при конфигурировании Qt отключить OpenGL ES.
Не знал про такую. Спасибо, надо будет глянуть.
На цены тоже смотрел при выборе. Вместо одной платы на nRF51822 можно купить 4-5 плат на nRF24LE1 или еще больше на NRF24L01+
Конечно, не факт, но думаю, что одно из самых малогабаритных. Мое предложение не претендует на звание самого лучшего — я просто упомянул о существовании такой микросхемы для тех, кому это может быть интересно. Потому что сейчас весь eBay завален именно модулями на NRF24L01+, а о других продуктах Nordic Semiconductor не так много шума.

P. S. Я тоже сначала хотел изготовить плату-кирпичик, на которой будет уже сразу микроконтроллер, совместимый с Arduino, запаянный NRF24L01+ и PCB или чип-антенна, но потом решил сперва попробовать эту микросхему, когда узнал, что на ее основе тоже есть похожие модули.
Круто, но к вопросу о достижении максимальной миниатюрности, у китайцев есть еще например платки на базе микросхемы nRF24LE1, которая, в отличие от nRF24L01+ уже имеет встроенный микроконтроллер (Enhanced 8051 CPU and 16kB Flash). Заказал себе таких несколько.

item.taobao.com/item.htm?id=13746037317

Вот еще полезные дополнения:
item.taobao.com/item.htm?id=25829656909
item.taobao.com/item.htm?id=18376576364
Я как-то еще задолго до появления данной статьи делал аналогичное на Raspberry Pi — тогда качество звука через встроенный аналоговый аудиовыход мне показалось полной… и я решил, что если RPi и годится для вывода звука, то только через HDMI. Возможно, у Odroid дела с этим лучше — у меня он тоже есть, надо попробовать
У меня RAID1 поверх обычных SATA-II дисков, разбитых на разделы по 100 ГБ для LVM. Насчет небуферизированного чтения — интересно, надо проверить.
Решил сделать немного более «жизненный» тест, нежели просто чтение с блочного устройства — разархивирование tar.bz2 архива boost-1.49.0.tar.bz2 (46 MB в архиве, 424 MB распакованный):
Host:
real    0m25.265s
user    0m24.850s
sys     0m5.522s

VM:
real    0m38.442s
user    0m26.062s
sys     0m8.039s

Более высокая производительность, вероятно, может быть получена путем увеличения количества доступных виртуальной машине ядер и ОЗУ (сейчас в ней 1 ядро и 128 МБ ОЗУ, в то время как на основной системе 12 ядер и 16 ГБ ОЗУ). Оптимизацией производительности решения я пока не занимался, так как имеющейся достаточно для обслуживания запущенных сервисов.
Внутри виртуалки:
/dev/xvda1: Timing buffered disk reads: 198 MB in 3.03 seconds = 65.45 MB/sec
/dev/xvda2: Timing buffered disk reads: 200 MB in 3.02 seconds = 66.21 MB/sec

Чтение напрямую с LVM раздела из host-системы выглядит аналогично:
/dev/xenguests/vm-template-gentoo: Timing buffered disk reads: 186 MB in 3.00 seconds = 61.95 MB/sec

Следует иметь в виду, что мои LVM разделы созданы поверх mdadm Software RAID-массива.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity