Pull to refresh

Comments 48

Запустил под вайном. Звуковой редактор вроде бы работает. Загрузил тестовую мелодию, покопипастил — все ок.
Важно: современные особенности устройства физических клавиатур не позволяют зажимать большое количество клавиш одновременно.

Как мне кажется, это актуально в большей мере для PS/2 клавиатур.

//Пойду достану свой старый мобильник (SE W300i) и порисую. Вспомню былые времена.
Это все глупости про PS/2 или USB. На самом деле имеет значение схемотехника клавиатуры. Например, у меня есть USB клавиатуры без NKRO вообще (т.е. обычная, где в зависимости от комбинации может быть 2-KRO или чуть больше), 6-KRO и 64-KRO.
Возможно на меня повлиял писк от материнки при нажатии нескольких кнопок на моей первой PS/2 клаве и PS/2 клавиатуры в колледже, на которых на одной клавиатуре вдвоём было сложно играть на эмуляторах приставок, последующие мои были usb и умеют более 3 кнопок. Мне почему то казалось что это ограничение PS/2. Пойду погуглю.
Спасибо за интересную информацию.
На средних USB клавах ещё хуже стало.
Например нельзя нажать одновременно Shift+1 и 3 (вообще с 3 и Shift многие другие), очень раздражало по началу.
Не смотрели что-нибудь из серии Max/MSP, PureData?
Если хочется в виде программы писать, а не стрелочек рисованных — Overtone, SuperCollider, CSound, ChucK, Faust?
Ну и если вдруг придется упор на графику делать — Processing?
Еще кажется Pixelang из этой серии.

Это все специализированные языки для создания звука и изображений.
Я очень уважаю ваш порыв, но есть ли смысл изобретать велосипед?
Мне кажется, смысл есть всегда.

Т.к. чем больше велосипедов, тем выше конкуренция и взаимосвязь между ними, слабые и хилые велосипеды отмирают, сильные и мощные заимствуют друг у друга возможности и занимают определенные ниши (как граф.редакторы — этот для фоток, тот для рисования, а вот тот для пиксель-арта, так и звуковые — трекеры с таблицей команд и эффектов, редакторы комплексные для MIDI и звука, редакторы чисто для звука и т.д.).
Вам его все равно не остановить :D
надеюсь это уже с антиалиасингом или мип-мапингом, или автор хотя бы знает про это и реализует в следующих версиях
С трудом представляю область применения этого монстра, даже чисто умозрительно.

Если бы это был бы какой-нибудь учебный проект ученика 9 класса общеобразовательной школы — я бы, вероятно, понял. Но в таком виде это не годится ни для чего. Программировать музыку? Даже не умея играть на музыкальном инструменте я с помощью простейшего vst-синтезатора и любого секвенсора смогу написать мелодию в разы быстрее и приличнее звучащую, чем в этом чуде. А умея — на порядки.

Идеи, заложенные в этот редактор, настолько невероятно далеки от всего, что я знаю и умею в музыке, что просто диву даешься тому, какие осторожные отзывы он получает тут пока.
Как эксперимент для наочного редактирования звука и понимания электроакустики — подойдет.
На практике я не могу найти применения этому монстру, вспоминая о VST и секвенсорах…
Qmpot (читается «кумпот»)

С чего вы взяли, что вам решать, как я буду читать название программы? Компот он и есть компот.
А редактор может быть и крут, рвет Аудишен и Лоджик в клочья, но мне его негде запустить. Да и слава богу, если честно, а то от скриншотов интерфейса я всплакнул кровью.
Кстати, он сначала планировался как Compot =) Но потом я решил назвать его Qmpot.
Сколько лет, сколько зим…
Помню как я ещё пешком под стол ходил, и выспрашивал у тебя про вебмани, когда ты уже вполне работоспособный PaintCAD на waper выкладывал.
Эххх… ностальгия =)
Тоже выходец из forum.s-c.ru? =)
Приятно видеть людей с соседнего сайта. Правда там не очень то сидел, а кто с seclub отзовитесь!
Я скучал по вашим статьям, спасибо, что вернулись!
Генератор музыки, редактор звуков, веб-браузер, IRC-чат и все это в графическом редакторе. Ах… красота…
Следующим будет вооон тот неактивный пункт после IRC-чата:
image
Вот как станет активным, сразу удалю блендер =)
Генератор музыки, редактор звуков, веб-браузер, IRC-чат и все это в графическом редакторе. Ах… красота…

Им бы с автором личкрафта объединиться — вышла бы ОС. =)
Не совсем понятно, а чем эти программы отличаются от обычного midi файла (кроме синтаксиса)? Я к тому, что термин «программирование» предполагает нечто большее. Где циклы, переменные, функции?.. Если бы у вас была возможность получить данные с сенсоров, обработать, сформировать собственные мелодические последовательности нот и изменений параметров звучания, и все это в реальном времени проиграть… вот это было бы программирование музыки. имхо.
Ну, все это уже есть в тех же PureData, Max/Msp, Supercollider… И, думаю, сложновато будет написать что-то, что будет хотя бы таким же, не говоря уже о лучше.
Ну я думал о циклах, хотя бы в ассемблерном виде, о переменных (в простейшем случае, некоторое количество регистров), чтоб можно было загнать в регистр число, а потом прыгать на строку, при этом уменьшая в регистре число на единицу. Это бы помогло выполнять N раз одни и те же фрагменты программы. Но потом подумал, что это запутает программы.

И в итоге сделал простые однопроходные скрипты. Есть лишь команда безусловного перехода «G номер_строки», но она может лишь вперед перепрыгнуть на указанную строку (назад не может). И поэтому используется для отладки части программы, когда надо, например, только припев отладить, а куплеты и вступления уже написаны и трогать их не хочется.

Также есть команда SO (set offset), устанавливающая смещение для работы команд, с параметрами «SO смещение, относительно». Если ставить флажок «относительно» в 1 — то смещение будет устанавливаться относительно предыдущего установленного. Тогда можно использовать одинаковый фрагмент командой с командой SO в начале чтоб добавлять в звук кусок мелодии со сдвигом, указанным в SO.

Так, например, делается в бонусной мелодии, ссылка на которую в конце статьи. Вот эти одинаковые басы с прописанными смещениями трех нот как 0 секунд, 2 секунды и 3 секунды — на самом деле вставляются после каждой команды SO начиная с нуля, потом с 4 секунд, потом с 8 секунд и потом с 12 секунд:
//басы
SO 0,0
PL 1,0,0S,2S,-15
PL 1,0,2S,1S,-19
PL 1,0,3S,1S,-20
SO 4S,1
PL 1,0,0S,2S,-15
PL 1,0,2S,1S,-19
PL 1,0,3S,1S,-20
SO 4S,1
PL 1,0,0S,2S,-15
PL 1,0,2S,1S,-19
PL 1,0,3S,1S,-20
SO 4S,1
PL 1,0,0S,2S,-15
PL 1,0,2S,1S,-19
PL 1,0,3S,1S,-20
Вот практически один в один как в CSound. И язык такой же нечитаемый.
Такие приложение интересны для изучения программирования (в частности).

Вот например Sonic Pi проект, на базе которого сделали учебные материалы.

Sonic Pi is an open source programming environment developed by Dr Sam Aaron, designed to explore and teach programming concepts through the process of creating new sounds.

Пример кода:
Скрытый текст
use_bpm 350

2.times do
  play_pattern [40,25,45,25,25,50,50]
  play_pattern [25,50,25,30,35,40,45,50]
  play_pattern [25,50,25,30,35,40,45,50].reverse
end

2.times do
  use_synth :dsaw
  play_pattern [25,50,25,30,35,40,45,50].shuffle
  play_pattern [25,50,25,30,35,40,45,50].reverse
end

in_thread do
  use_synth :dull_bell
  10.times do
    if rand < 0.5
      play 37
    else
      play 49
    end
  sleep 2
  end
end

in_thread do
  use_synth :beep
  20.times do
    play 49
    sleep 1
  end
end

www.raspberrypi.org/learning/sonic-pi-lessons/

«Но еще с того 1998-2000 года во мне затаилось желание создавать звук и вставлять в него любые ноты в любые места во времени. „

но так в том же cakewalk это можно. Что угодно, фактически.
В те времена я увидел в Cakewalk Pro Audio редактор MIDI с вводом нот по сетке (Piano Roll), по нотной записи и т.д, ну аудиодорожку можно было вставить, загрузив в нее звук из файла. А инструментария, чтоб простыми действиями/командами записывать маленькие звуки с выбранной транспозицией в большой результирующий звук — я там не нашел.

Мечтал чтоб записанное в MIDI переконвертировать в звук — но там такой функции (по крайней мере, на поверхности) не видел. Был там пункт Sound Fonts, но он был неактивен для меня (в помощи было написано, что он только для особенных звуковых карт). А могли бы они сделать, чтоб хотя бы конвертить MIDI в WAV/MP3 с использованием сэмплов из выбранного SF2/DLS банка. И в итоге, я нашел это только спустя годы во фрутилупсах (в плагине LSD, кажется). (хотя наверняка сегодня это есть уже в десятках других программ).
Если вы профессиональный разработчик, то такой софт должно быть стыдно кому-либо показывать. Если же нет, то лучше писать о том в чем разбираетесь и разбираться в том, что пишут другие о том в чем вы не разбираетесь.
Никто никому ничего не должен.

21 век, 2015 год на дворе, а вы задеревенело скрипящим голосом шепчете мне на ухо «вам должно быть стыдно», «вы должны писать не об этом, а о том-то и том-то». Может еще розгами похлещете и в угол поставите?)
Вот именно! 2015 год на дворе, вы пишете статью о работе которая не во всяком вузе за лабораторную сойдет, по статье ощущение что 98й. А в комментариях еще пишете о конкуренции с существующими продуктами…
И что? =) Если у вас подгорает при этом — так и пишите

«Уважаемый blackstrip, при виде вашей статьи у меня пошел дым из-за спины и в стуле образовалась дыра, вследствие чего я был вынужден написать этот пост:

Мне кажется, вам должно быть стыдно (не знаю почему, просто мне обычно стыдно за свои программы, комплексы, все дела, я их делаю, а потом стыдливо боюсь показать кому либо, потому что все скажут что я непрофессиональный, и я думаю что вы должны испытывать сходные чувства, тоже не знаю почему, просто мне так показалось), и что вам лучше об этом не писать, а писать о том, о чем я вам скажу (я знаю, обычно с такими указаниями мне отвечают „не говори что мне делать — и я не скажу куда тебе идти“, но в данном случае пламя подгоняет меня сделать это)».

И я бы все понял. А вбрасывать свои непонятные теории про масленое масло типа «лучше писать о том в чем разбираетесь и разбираться в том, что пишут другие о том в чем вы не разбираетесь» — это и в личку можно, правда чего вы этим добьетесь — мне пока неясно. Видимо просто пободаться захотелось.
Привет, Дим! Уж извини, но частично я согласен с комментатором выше. Да, ты делаешь хорошие вещи, интересные, и вероятно кому-то они будут полезны (собственно, оффтоп: если бы в свое время я не пошел в гугл искать «редактор png», я бы не попал на s-c где был paintcad, и вероятно не стал бы тем, кто я сейчас. Так что, наверное благодаря тебе я стал программистом, и да, я тот самый sie_c72_rus с s-c, правда не уверен что ты меня помнишь), но в данном случае — программы у тебя получаются уж слишком специфичные и узкоспециализированные. Но как минимум, в плане интерфейса приложения получаются не совсем айс, и опять же, сей вывод я могу подтвердить этим комментарием (ну, не просто так же он появился).

Лично мой тебе совет: не придумывай сам интерфейсы, и не рисуй сам иконки. Лучше, уж простите, спизди интерфейс у какой-либо аналогичной софтины, и получится в «стопицот» раз лучше все). Ибо, основная проблема в твоих приложениях — интерфейс. Он слишком пестрый, слишком рисованный (причем не совсем хорошо), слишком непривычный. И, да, такое впечатление что ты ничего не видел кроме вин95/98.

Хоть этот коммент и получился немного грубоватым, но я думаю что он правильный, ну а плюсы/минусы покажут мнение людей.

P.S. Я тебя очень сильно уважаю с очень давних времен, и этим комментарием я не хочу тебя никак оскорбить/обидеть/етц… :)
Если бы все было так просто)

Интерфейс паинткада должен работать для трех вариантов управления: клавиатура, мышь, сенсорный экран (так было задумано).

Управление с клавиатуры — это показ кнопок с горячими клавишами а ля Norton Commander (иначе не запомнишь):


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

Управление мышью — это частично управление в самом поле действия (в поле рисования в главном окошке паинткада, например, хотя в Qmpot управления мышью типа выделения звука или перетаскивания чего нибудь — нет), и частично — кликом по этим же кнопкам.

Управление с сенсорного экрана — это здоровые по размеру кнопки, чтобы комфортно нажимать их пальцем. И виртуальная клавиатура по F12 для перемещения курсора по полю рисования как на мобильнике.

Если смешать все эти три вещи — на выходе получится paintcad 4windows (у меня получился, может у кого получится что нибудь покруче, поинтересней в плане интерфейса. Причем мышку я почти не использую, чаще либо клавиатуру, либо сенсорный экран).

И если даже быть суперкитайцем, копирующим интерфейсы за 10 минут, то после копирования какого либо интерфейса он, наверняка, не будет удовлетворять всем этим трем способам управления.

Помню когда еще выходил Windows 8, я с интересом смотрел: как они (разработчики) смогут сделать, например, автокад, 3dsmax, фотошоп или ms office под тач, оставив функционал с клавиатуры и мыши?

Ответ — никак. Офис теперь выглядит похлеще паинткада, c этими лентами и большими+маленькими кнопками, разложенными в различных ориентациях на экране. А все другие программы — помоему не стали вообще делать полнофункциональных версий под сенсор, и вместе со своими пользователями кричали хором «microsoft глупцы, хотели смешать тач и обычное управление, мне тач на десктопе не нужен, кто это вообще придумал» и т.д.

И конечно если взять в руки какую нибудь книгу про современный дизайн приложений — там будет написано что вот эту кнопку обязательно класть туда, а эту сюда, а поля ввода сделать обязательно посередине и шрифтов не менее N пикселей. И тысячи (миллионы) людей прочитают эту книгу и положат одинаковые кнопки в одинаковые углы приложений. И выберут одинаковый, тонкий, красивый, сглаженный до невозможности шрифт. И повторят интерфейсы известных марок. И сделают все как один серые фоны окон со светло-серым шрифтом.

И эти рыцари клавиатуры и мыши, изучавшие эти дисциплины и уверовавшие в них, всегда будут бросаться на иноверцев) А мне не нравится вся эта шелуха и я делаю паинткад в другом стиле — в стиле Norton Commander.
А вы творец и вашими программами не нужно пользоваться, а только восхищаться.

А если серьезно: для чего эти монструозные велосипеды с функционалом прошлого века? Если для обучения себя, то зачем выкладывать это сюда? Если для обучения других, то тут только одни примеры того как не нужно делать. Причем обучающей части в статье нет, только рекламная.
Хабр — свободный форум для всех и саморегулируемое сообщество. Если человек выкладывает неинтересные статьи или ругается в комментариях — ему обязательно воздастся. И наоборот — если все ок, то ему зачтется. «Интересность» любой статьи видна по количеству минусов и плюсов под ней.

Если же вы хотите настроить хабр лично под себя и показывать только то, что кажется положительным, интересным, немонструозным, современным именно вам — то можно, наверное, такой плагин написать к браузеру. Сначала он проводит опрос, и можно проставить галочки «Мне нравится:» и список большой. Также ввести возраст, рост, выбрать свои страхи и фобии, хобби, кулинарные предпочтения,

Потом этот плагин сканит скриншоты и текст статьи, и закрывает их для вас значком «ОСТОРОЖНО: здесь может быть интерфейс, который вам не понравится», а если интересно стало — то можно кликнуть по закрытому рисунку и посмотреть. Можно даже сначала прищуриться и потихоньку открывать сначала один глаз, а потом второй, чтоб если что — тут же зажмуриться.
Я уже понял что зря решил откоментировать этот пост. Я тогда не понимал с кем имею дело.
Просто вы свое мнение пытаете представить как всеобщее. В этом проблема.

У вас есть граница, статьи ниже которой «не достойны публикации на хабре». Более-менее техническо-музыкальная статья про новый бесплатный продукт, позволяющий с нуля сгенерить звуки для своих целей (программ, игр и т.д.) — это «ниже границы», а вот какая нибудь двадцать пятая змейка в 30 строк кода и «вышел новый продукт ххх версии yyy, вот я статью перевел чужую, 20 строк вышло, кушайте» — это, наверное, отличная тематика по вашему мнению.

Вы пишете, что туториал по генерации этого самого звука с нуля, по последовательному написанию команд и получения мелодии в Qmpot, а потом про упрощение ввода нот при помощи некоторых интерфейсов Фортепиано, Гитары и Барабанов, автоматически генерирующих команды — это все туфта и вам не понравилось, и там «нет обучающей части, только рекламная».

Что звуковой редактор, позволяющий полноценно редактировать любой WAV-звук от эффектов над выделенными фрагментами до правки амплитуд отсчетов, использовать инструменты на основе простых сигналов и сэмплов из WAV/INS-файлов и SF2/DLS-банков, создавать собственные инструменты и подбирать границы циклической части (loop) по амплитудам/производным, программировать на однопроходных скриптах генерацию звука с эхом/расстановкой инструментов в пространстве/настройкой громкости, баланса, длительности атаки/затухания сэмпла, гуманизации (случайного разброса амплитуд, задержек и тона нот в выбранных диапазонах для имитации живой игры) — это все «не во всяком вузе за лабораторную сойдет».

Тут и спорить с этим глупо) Если вам не нужен такой продукт — просто не пользуйтесь. Все программы имеют фанатов и хейтеров. А нападать на людей, желающих бесплатно делать и развивать такие программы — как минимум нехорошо.
Думаю интерфейс программы вызывает столь бурную реакцию не из-за компоновки и размеров, а лишь своей цветовой гаммой и проработанностью иконок.
С начала 2012 он был примерно таким blackstrip.ru/tmp/pc438vk.jpg, а сейчас в начале 2015 он стал вот таким hsto.org/files/e4d/b88/bdc/e4db88bdc4264e4091cbfea796b2b528.png. Динамика есть, и, быть может, иконки когда нибудь приобретут сглаживание и альфа-канал, а цветовая гамма будет переработана. (но пока мне охота еще доработать немного Qmpot, а потом сделать 3D редактор Hippo или еще что нибудь, а потом все это наработанное использовать при разработке игр).
А где можно увидеть исходный код? Было бы интересно узнать, к примеру, как работает «IP 1,-500,500».
Примерно так:

— сдвиги каналов по времени: учитывает что расстояние между ушами 180 мм (среднее у людей), рассчитывает время прохода звука от источника до левого уха (это будет сдвиг левого канала) и до правого уха (это будет сдвиг правого канала), огибание звуком головы не учитывается (т.к. обычно источники ставят много дальше размера головы),

— затухание каналов, связанное с направлением прихода звука: использует заданные в программе диаграммы направленности ушей ( про них — внизу этого поста blackstrip.ru/phpBB2/viewtopic.php?p=2168#p2168 ),

— затухание каналов, связанное с пространственным затуханием в средах: в упрощенной форме затухание считает (в реальности оно частотно-зависимое, но я взял для простоты одно и то же для всех частот), причем оно задано гораздо сильнее, чем затухание в воздухе. Когда сначала попробовал задать настоящее воздушное — то там по разным данным типа таблицы ru-safety.info/static/pngbig/634765712.png и на одном километре всего 5-10(-20) дБ, на самом деле помоему невозможно услышать, если кто-то встанет в километре от меня и будет разговаривать, т.к. это в чистом воздухе. И даже в поле есть всякие травы и редкие деревья (иногда), или уж тем более в городе или лесу много объектов между источником и слушателем, а еще ветер сносит звуки, и от этого всего — затухание получается бОльшим.
А еще можно выделить фрагмент стереозвука (в обоих каналах) и вызвать эффект «Перемещение источника звука». Тогда вылезет окошко, в котором можно задать траекторию источника и скорости прохода траектории и в итоге применить эффект:
image

Эта штука в динамике размазывает стереозвук.
Sign up to leave a comment.

Articles