Fingercomp 4 409 Опубликовано: 8 мая, 2017 (изменено) Прога для тех, кто прочитал мой прошлый гайд по звуковой карте в моём блоге и теперь хочет творить звуки. Потому что вслепую набирать код очень скучно. Synth - это, наконец-то, внятная гуишка для звуковой карты. Она не умеет сохранять полученную конфигурацию в файл и считывать её оттуда, например. Зато можно с лёгкостью создать что-то монстрообразное и потом перенести настройки себе в код. Довольно прелюдий. Это прога является огромным монстром, поэтому ниже я расскажу, как ею пользоваться. 1. Установка Установить прогу можно с помощью oppm или, что лучше (ибо быстрее), hpm. $ hpm oppm:cache update $ hpm oppm:install synth Прога весит 40 кБ, но с ней идут 160 кБ либ, поэтому установка займёт энное время. 2. Запуск Запускать командой synth. Появится красивенькая юишка. 3. Использование Первоначально на поле (а эта синь как раз является полем) ничего нет. Исправить это недоразумение можно с помощью тыка правкой кнопкой по полю. Внизу кнопа для закрытия меню, сверху комбобокс, в котором можно выбрать желаемую карточку. Начнём, пожалуй, с канала ("Channel"). После нажатия по нужному пункту появится карточка в месте, где тыкнули пкм. Таким же образом я создаю карточки "Wave", "Volume", "Frequency". Сами карточки белые, но у них есть цветные штуки. Эти цветные штуки называются пинами. Те пины, которые находятся снаружи карточки, - выходы (на них обычно ">" или "v" написано); которые внутри карточки, - входы. Разноцветные они не просто потому, что мне захотелось, а для помощи. Каждый выход можно подключить ко входу только с таким же цветом. А как подключать-то? Изи: сначала тыкнуть по выходному пину и затем по любому подсвеченному входу. Таким же образом можно отцепить два пина, если они уже подключены друг к другу. Соединения видны глазом даже без какого-либо вооружения. Настройки, которые мы скормили каналу, не особо впечатляют, прямо скажем. Синусоида, 99.99% громкости, 440 Гц частота. Пф. И это недоразумение тоже фиксится правым кликом! Только теперь по карточке. Например, по карточке "Wave". Внизу кнопки удаления объекта (т.е. карточки) и закрытия меню. На большинстве карт этим всё не ограничивается и можно настроить настройки, покрутить крутилки. Вот, например, на скрине выше для карточки "Wave" можно задать тип волны, тыкнув по комбобоксу. После этого можно выйти из меню и наблюдать изменения. Так-так-так, что-то скучновато просто цеплять и отцеплять картонки. Во-первых, их можно таскать по полю: зажать по белой части и потом двигать в тёплые страны. Во-вторых, можно таскать поле: зажать по его свободной части и подвигать. В-третьих, мы можем создать карточку "Sound card". Как ни странно, эта карточка смотрит, что вы к ней подключили, и на основе увиденного ужаса генерирует звук. Для этого её заспавним где-нибудь, а затем к любому из пинов (не столь важно, к какому именно, это ни на что не влияет) подключить канал. Слева у этой карты есть пин громкости - выставит для всех подключенных каналов сразу такую. Но её можно и не ставить. Сразу после этого вы услышите свой звук. Можно таким же образом поставить и второй канал. Если долго эту какофонию слушать, могут отпасть уши, поэтому вместо звуковой карты - её безжалостно удаляем - саммоним график. Особо тут расписывать нечего, вообще. Так же без разницы, куда подключены каналы; через пкм можно настроить зум. Попробуем теперь поиграться с модуляцией. Сначала амплитудная: она попроще. Подключаем канал, который будет модулировать (например, первый), к пину "AM" другого канала. Красота. Даже на график не влезает. Хотя особой проблемы тут нет: как видно, рисуется график не очень красиво (я потом надеюсь это как-нибудь поправить), но представление о виде волны есть. Неплохо, на первый взгляд. Ровно до того, как вы подключите оба канала к звуковой карте. Теперь давайте устроим тотальную частотную модуляцию. Саммоним частотный модулятор, к вернему пину подключаем модулирующий канал, а выхлоп ведём к пину "FM" на другом канале. Звучать оно сразу стало иначе. Можно поменять интенсивность модуляции и частоты на каналах. Последняя карточка в программе - это ADSR. Особого толка в ней, вообще, нет, потому что при подключении её услышите какую-то дичь, но зато на ней есть миленький график изменения амплитуды со временем (вся шкала - это 6 секунд). Так можно наглядно подобрать желаемые значения для этой огибающей. Собственно, это и все карточки, которые есть в этой программе. Ставьте, играйтесь и радуйтесь. А как наиграетесь со звуковой картой, можно выйти из программы (через Ctrl-C) и заняться серьёзными вещами. P. S. Сырцы лежат на OpenPrograms (где б им ещё быть?): https://github.com/OpenPrograms/Fingercomp-Programs/tree/master/synth Изменено 8 мая, 2017 пользователем Fingercomp 16 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
AlexCat 1 Опубликовано: 8 мая, 2017 Я сразу понял,что тут либа от ECS стоит!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp Автор темы 4 409 Опубликовано: 8 мая, 2017 ...ок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
DimaZCOM 35 Опубликовано: 8 мая, 2017 Шедевр! Жаль, что скоро я на сервак не зайду, чтобы опробовать это( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp Автор темы 4 409 Опубликовано: 15 мая, 2017 Совсем небольшой апдейтик, добавляющий ещё 12 килобайт кода. 1. Добавлена карточка LFSR шума Я как-то про неё забыл, из-за чего она на меня обиделась. Но справедливость восторжествовала, и она стала доступна для установки. Я без понятия, как оно работает, автор мода тоже в неведении пребывает, такие дела. Поэтому играйтесь. 2. Улучшен плоттер Во-первых, я разобрался, как надо уметь в зум, поэтому теперь можно отдельно прописывать сэмплрейт и зум. Кроме того, починил плоттеры шума (LFSR и белый шум), которые раньше эмулировали скорее мычащее стадо мух, чем шум для серьёзных дяденек. Ну и в сетапах с модуляторами можно модуляторы на отдельный график теперь ставить (раньше тупо нуль рисовал). 3. Добавлена PCM-карточка Теперь звук можно записывать путём попроще, чем редиректить его из кубача в файл. Подключите все нужные каналы, как и у звуковой карты, к PCM-карте и затем тыкните правой кнопой мышки. Задайте параметры вывода: Sample rate - частота дискретизации. Количество измерений в секунду. Должно быть минимум в два с небольшим раза больше максимальной частоты в выхлопе (напомню, что боковые частоты у модуляторов могут быть выше частоты несущего сигнала). 44100 заявлено как качество CD и является дефолтным сэмплрейтом звуковой карточки, 48000 - качество DVD. Depth - глубина дискретизации. Размер одного сэмпла в битах. Чем больше глубина, тем точнее кодируется амплитуда, но реально разница между 16 битами, например, и 32 не особо заметная для игрушечных выводах в этой проге. Length (in secs) - длина [аудио-файла] (в секундах), внезапно. Format - формат файла. На самом деле, один фиг будет генерироваться LPCM, только если выставить формат в WAV, то за счёт 44 байт можно будет проигрывать полученный файл в любом плеере без шаманских плясок. Path - путь. Туда побежит звук. Очевидно, что файл будет перезаписан (и вас об этом не спросят, потому что это же суровая прога для суровых ребят, а не мягкая комната). Total file size - размер файла, кто бы мог подумать. В кибибайтах - ну там и так написано, так-то. Размер = частота дискретизации × (глубина дискретизации / 8) × длина + (формат == WAV ? 44 : 0). Generate - это кнопка, по которой люди тыкают, чтобы скормить звук в файл. Справа от кнопки прогресс бар, показывающий прогресс. Как-то так. WAV сразу в плеер посылать можно, а для PCM надо указывать формат. Пример для ffplay: $ ffplay -f s${DEPTH}le -ar $SAMPLERATE -ac 1 -i out.pcm Не переиграйтесь с размером: диски в OC не резиновые. 4. Пофикшены баги Самые разные, в основном довольно тупые. Обновить $ oppm update $ # или $ hpm oppm:install -r synth 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
makris 0 Опубликовано: 20 мая, 2017 Ух ты... круто пойду проверю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ALeXeR 67 Опубликовано: 29 мая, 2017 круто, что тут еще добавить) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 19 сентября, 2017 Довольно часто встречаю названия samples, я так понимаю это единица цифрового звука? Линии от карточек к каналу можно сделать тоже цветными, хотя тут можно спорить долго. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 19 сентября, 2017 Цветные линии создадут много визуального шума, имхо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp Автор темы 4 409 Опубликовано: 19 сентября, 2017 Samples — количество измерений. В плоттере замеряются значения функции с шагом в (1 s)/Nsamples. В [PCM out] это будет частота дискретизации PCM/WAV-результатирующего файла. В блоге рекомендую глянуть обзор звуковой карты, чтобы как-то попроще стало, — особенно третью часть. Цветные линии толком сделать не получится красиво. Это же брайль. Если две линии пересекутся, то всю клетку придётся красить в интерполированный цвет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 19 сентября, 2017 (изменено) Samples — количество измерений. В плоттере замеряются значения функции с шагом в (1 s)/Nsamples. В [PCM out] это будет частота дискретизации PCM/WAV-результатирующего файла. В блоге рекомендую глянуть обзор звуковой карты, чтобы как-то попроще стало, — особенно третью часть. Цветные линии толком сделать не получится красиво. Это же брайль. Если две линии пересекутся, то всю клетку придётся красить в интерполированный цвет. Понял. Я читал как делает звуковая карта, она каждые промежуток времени записывает значение звуковой волны в цифровой вид, таким образом получаются "таким грубые ступеньки" на графике и чем больше такой записи в секунду - тем качественнее звук, ну еще и разрядность надо повышать. Жаль в эмуляторе нет звуковой карты. Изменено 19 сентября, 2017 пользователем NEO 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах