Перейти к содержимому


Фотография

Synth - графический интерфейс для звуковой карты

CX synth sound card GUI OC Lua

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 2 001
  • Уровень сигнала: 169,88%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 08 Май 2017 - 11:21

*
Популярное сообщение!

Ahxvlv2.png

 

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

 

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

 

Довольно прелюдий. Это прога является огромным монстром, поэтому ниже я расскажу, как ею пользоваться.

 

1. Установка

Установить прогу можно с помощью oppm или, что лучше (ибо быстрее), hpm.

$ hpm oppm:cache update
$ hpm oppm:install synth

Прога весит 40 кБ, но с ней идут 160 кБ либ, поэтому установка займёт энное время.

 

2. Запуск

Запускать командой synth. Появится красивенькая юишка.

dlMulwY.png

 

3. Использование

Первоначально на поле (а эта синь как раз является полем) ничего нет. Исправить это недоразумение можно с помощью тыка правкой кнопкой по полю.

DeGp0hx.png

Внизу кнопа для закрытия меню, сверху комбобокс, в котором можно выбрать желаемую карточку. Начнём, пожалуй, с канала ("Channel").

После нажатия по нужному пункту появится карточка в месте, где тыкнули пкм.

Таким же образом я создаю карточки "Wave", "Volume", "Frequency".

JoLsTbL.png

Сами карточки белые, но у них есть цветные штуки. Эти цветные штуки называются пинами. Те пины, которые находятся снаружи карточки, - выходы (на них обычно ">" или "v" написано); которые внутри карточки, - входы. Разноцветные они не просто потому, что мне захотелось, а для помощи. Каждый выход можно подключить ко входу только с таким же цветом.

А как подключать-то? Изи: сначала тыкнуть по выходному пину и затем по любому подсвеченному входу.

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

EfoeokT.png

Соединения видны глазом даже без какого-либо вооружения.

sGAADYu.png

Настройки, которые мы скормили каналу, не особо впечатляют, прямо скажем. Синусоида, 99.99% громкости, 440 Гц частота. Пф.

И это недоразумение тоже фиксится правым кликом! Только теперь по карточке. Например, по карточке "Wave".

Hj59te5.png

Внизу кнопки удаления объекта (т.е. карточки) и закрытия меню. На большинстве карт этим всё не ограничивается и можно настроить настройки, покрутить крутилки. Вот, например, на скрине выше для карточки "Wave" можно задать тип волны, тыкнув по комбобоксу.

После этого можно выйти из меню и наблюдать изменения.

NLHYOrO.png

Так-так-так, что-то скучновато просто цеплять и отцеплять картонки.

Во-первых, их можно таскать по полю: зажать по белой части и потом двигать в тёплые страны.

Во-вторых, можно таскать поле: зажать по его свободной части и подвигать.

В-третьих, мы можем создать карточку "Sound card". Как ни странно, эта карточка смотрит, что вы к ней подключили, и на основе увиденного ужаса генерирует звук.

Для этого её заспавним где-нибудь, а затем к любому из пинов (не столь важно, к какому именно, это ни на что не влияет) подключить канал.

f0bRQTp.png

Слева у этой карты есть пин громкости - выставит для всех подключенных каналов сразу такую. Но её можно и не ставить. Сразу после этого вы услышите свой звук.

Можно таким же образом поставить и второй канал.

exY4OcP.png

Если долго эту какофонию слушать, могут отпасть уши, поэтому вместо звуковой карты - её безжалостно удаляем - саммоним график.

raT4CfG.png

Особо тут расписывать нечего, вообще. Так же без разницы, куда подключены каналы; через пкм можно настроить зум.

Попробуем теперь поиграться с модуляцией. Сначала амплитудная: она попроще. Подключаем канал, который будет модулировать (например, первый), к пину "AM" другого канала.

uQ80llS.png

Красота. Даже на график не влезает. Хотя особой проблемы тут нет: как видно, рисуется график не очень красиво (я потом надеюсь это как-нибудь поправить), но представление о виде волны есть. Неплохо, на первый взгляд. Ровно до того, как вы подключите оба канала к звуковой карте.

mg8MnXe.png

Теперь давайте устроим тотальную частотную модуляцию. Саммоним частотный модулятор, к вернему пину подключаем модулирующий канал, а выхлоп ведём к пину "FM" на другом канале.

GIuSMUE.png

Звучать оно сразу стало иначе. Можно поменять интенсивность модуляции и частоты на каналах.

Q5Lg0RW.png

Последняя карточка в программе - это ADSR. Особого толка в ней, вообще, нет, потому что при подключении её услышите какую-то дичь, но зато на ней есть миленький график изменения амплитуды со временем (вся шкала - это 6 секунд).

NhSgKj5.png

Так можно наглядно подобрать желаемые значения для этой огибающей.

 

Собственно, это и все карточки, которые есть в этой программе. Ставьте, играйтесь и радуйтесь. А как наиграетесь со звуковой картой, можно выйти из программы (через Ctrl-C) и заняться серьёзными вещами.

 

P. S. Сырцы лежат на OpenPrograms (где б им ещё быть?): https://github.com/O...ee/master/synth


Сообщение отредактировал Fingercomp: 08 Май 2017 - 17:15


#2 Оффлайн   AlexCat

AlexCat
  • Пользователи
  • Сообщений: 24
  • Уровень сигнала: 8,34%
  • В игре: 62 час. 45 мин.
  • ГородСеление диких поедателей колбасы

Отправлено 08 Май 2017 - 18:04

Я сразу понял,что тут либа от ECS стоит!!! :smile148:



#3 Оффлайн   Fingercomp

Fingercomp
  • Автор темы
  • Гуру
  • Сообщений: 2 001
  • Уровень сигнала: 169,88%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 08 Май 2017 - 19:16

...ок.



#4 Оффлайн   DimaZCOM

DimaZCOM
  • Пользователи
  • Сообщений: 22
  • Уровень сигнала: 0,05%
  • В игре: 0 час. 24 мин.

Награды

     

Отправлено 08 Май 2017 - 22:21

Шедевр!

Жаль, что скоро я на сервак не зайду, чтобы опробовать это(



#5 Оффлайн   Fingercomp

Fingercomp
  • Автор темы
  • Гуру
  • Сообщений: 2 001
  • Уровень сигнала: 169,88%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 15 Май 2017 - 09:55

Совсем небольшой апдейтик, добавляющий ещё 12 килобайт кода.

 

1. Добавлена карточка LFSR шума

Я как-то про неё забыл, из-за чего она на меня обиделась. Но справедливость восторжествовала, и она стала доступна для установки. Я без понятия, как оно работает, автор мода тоже в неведении пребывает, такие дела. Поэтому играйтесь.

 

2. Улучшен плоттер

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

Ну и в сетапах с модуляторами можно модуляторы на отдельный график теперь ставить (раньше тупо нуль рисовал).

 

3. Добавлена PCM-карточка

Теперь звук можно записывать путём попроще, чем редиректить его из кубача в файл. Подключите все нужные каналы, как и у звуковой карты, к PCM-карте и затем тыкните правой кнопой мышки.

 

iycpXnj.png

 

Задайте параметры вывода:

  • 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

  • Totoro, LeshaInc и eu_tomat это нравится

#6 Оффлайн   makris

makris
  • Пользователи
  • Сообщений: 5
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 20 Май 2017 - 19:18

Ух ты... круто пойду проверю. :)



#7 Оффлайн   ALeXeR

ALeXeR
  • Пользователи
  • Сообщений: 204
  • Уровень сигнала: 34,01%
  • В игре: 255 час. 59 мин.
  • ГородОдесса

Отправлено 29 Май 2017 - 22:00

круто, что тут еще добавить)



#8 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,84%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 19 Сентябрь 2017 - 17:00

Довольно часто встречаю названия samples, я так понимаю это единица цифрового звука?

Линии от карточек к каналу можно сделать тоже цветными, хотя тут можно спорить долго.



#9 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 19 Сентябрь 2017 - 17:10

Цветные линии создадут много визуального шума, имхо.



#10 Оффлайн   Fingercomp

Fingercomp
  • Автор темы
  • Гуру
  • Сообщений: 2 001
  • Уровень сигнала: 169,88%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 19 Сентябрь 2017 - 17:21

Samples — количество измерений. В плоттере замеряются значения функции с шагом в (1 s)/Nsamples. В [PCM out] это будет частота дискретизации PCM/WAV-результатирующего файла. В блоге рекомендую глянуть обзор звуковой карты, чтобы как-то попроще стало, — особенно третью часть.

 

Цветные линии толком сделать не получится красиво. Это же брайль. Если две линии пересекутся, то всю клетку придётся красить в интерполированный цвет.



#11 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,84%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 19 Сентябрь 2017 - 17:36

Samples — количество измерений. В плоттере замеряются значения функции с шагом в (1 s)/Nsamples. В [PCM out] это будет частота дискретизации PCM/WAV-результатирующего файла. В блоге рекомендую глянуть обзор звуковой карты, чтобы как-то попроще стало, — особенно третью часть.

 

Цветные линии толком сделать не получится красиво. Это же брайль. Если две линии пересекутся, то всю клетку придётся красить в интерполированный цвет.

Понял. Я читал как делает звуковая карта, она каждые промежуток времени записывает значение звуковой волны в цифровой вид, таким образом получаются "таким грубые ступеньки" на графике и чем больше такой записи в секунду - тем качественнее звук, ну еще и разрядность надо повышать.

 

Жаль в эмуляторе нет звуковой карты.


Сообщение отредактировал NEO: 19 Сентябрь 2017 - 17:38

  • Fingercomp это нравится





Темы с аналогичным тегами CX, synth, sound card, GUI, OC, Lua

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных