LINUX.ORG.RU
ФорумTalks

Цой жив!!! (брямкалки на Bespoke synth)

 , , ,


0

2

Всем здрасти.

Родилось это хулиганство спонтанно, на фоне очередных залежей на бюлетене. Давным давно поспорили мы с ist76 по поводу правдоподобности работы Musescore, обещал я ему Цоя наиграть в этой программе, чтобы он получил эстетическое наслаждение от воспроизводимого звука. Обещался, да так и кануло в лета. А тут попался под руку Bespoke synth, который собирается на регулярной основе благодаря многоуважаемому kott. Программа, надо сказать, слабо применимая для написания «линейной» музыки. Но дурость она на то и дурость, я взял и накидал Цоя.

Что характерно, звук гитары и баса - это просто Karplus-strong. Жаль, пианина из него не вытянуть. Или можно? Кто пробовал?

Баловство, конечно, но хочу поделиться с лоровцами. Вдруг кто заинтересуется этой программой.

Как послушать? Установить Bespoke synth, запустить и открыть в нём мой прожектфайл. Найти на просторах «холста» модуль Songbuilder и нажать на нём Play (треугольничек). Теоретически, всё должно работать. Только с барабанами, не знаю, подхватятся сэмплы?

Поправка! Надо ставить из ночных сборок или компилять с гитхаба. Релизная версия не подходит, устарела.

Кастовать отдельно никого не буду, вдруг обидятся. Но буду рад старым знакомым по гитарно-музыкальным темам.

★★★★★

Последнее исправление: R_He_Po6oT (всего исправлений: 1)
Ответ на: комментарий от James_Holden

Не, это сразу электронное пианино. Такое могу даже на чистых осциляторах в Беспоке заделать. Думал ты ближе подобрался. Тот же аддитивный синт :) Кстати, идея. Может разманьячиться? Главное - удар молоточка, в нём половина звука. Как его сделать? Хм...

R_He_Po6oT ★★★★★
() автор топика
Ответ на: комментарий от James_Holden

Да, я помню, разговор был о нюансах. Но ты видел как я сделал чёс? :)))

R_He_Po6oT ★★★★★
() автор топика
Ответ на: комментарий от Nervous

>Просто принимайте коньяк три раза в день после еды.

Я пробовал. Коньяк очень быстро заканчивается.

utanho ★★★★★
()
Ответ на: комментарий от R_He_Po6oT

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

Это чтобы получилось хотя бы так.

Что-то я крайне сомневаюсь что можно на трех осцилляторах такой звук получить.

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

ZynAddSubFx

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

alegz ★★★★
()
Ответ на: комментарий от James_Holden

Ну это не пианино. Если только электрическое. Такое, знаешь, в госпел играть и петь под него хриплым голосом.

Вот чего! Тыжпрограммист? У меня тут возникла необходимость чуть-чуть освоить питона и, заодно, появилось желание написать маленькую тулзу, которая будет рисовать громкость входного сигнала в процессоре и сообщать о перегрузе. Тащем-то, есть python-sounddevice, и с ним, более-менее, понятно, куда копать. Но я хочу через жопу хардкора - подрубиться к mydeviceasio.dll через ctypes, читать вход и считать входной уровень. Это вообще будет работать и откуда начинать рыть? Примеров толком нет и ничего непонятно.

ist76 ★★★★★
()
Ответ на: комментарий от ist76

Это вендоспецифично, я не знаю что там в asio, не могу сказать.

James_Holden ★★★★
()
Ответ на: комментарий от R_He_Po6oT

Главное - удар молоточка, в нём половина звука. Как его сделать? Хм…

А зачем лепить коников из говна, когда боженька дал нам открытый формат SFZ, проигрыватели его и тонны семплов? Пердолиться - так уж лучше с абсолютной синтетикой, чтобы от электричества волосы топорщились и хвост светился огнями святого Эльма.

thesis ★★★★★
()
Ответ на: комментарий от James_Holden

Это чтобы получилось хотя бы так.

Уважаю, конечно, но это доклад на тему «как натрахаться на сто дурных и всё равно получить wurlitzer (если повезет)».

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)

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

thesis ★★★★★
()
Ответ на: комментарий от InterVi

Проприетарщина. На LMMS / Ardour / Sunvox слабо было?

Bespoke проприетарщина, а Sunvox открытый. Ок.

kott ★★★★★
()
Ответ на: комментарий от kott

Рога себе выпрямляй или пили ггг.

А баг тебе пусть ТС оформляет, ему вишь интересно.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от R_He_Po6oT

какой ещё питон? нету в твоём проекте питона же

kott ★★★★★
()
Ответ на: комментарий от James_Holden

попробуй выставить в настройках record_buffer_length в 0

ещё можно вызвать консольку «`» и ввести profiler, покажет, что сколько ест

kott ★★★★★
()
Ответ на: комментарий от kott

Попробую. В целом он тянет сабжевый проект, только на некоторых местах тормозит.

James_Holden ★★★★
()
Ответ на: комментарий от ist76

Для начала, надо выяснить - это asio вообще позволяет перехватить звук, идущий в другое приложение?

И что такое mydeviceasio.dll, ничего не яндексится.

James_Holden ★★★★
()
Последнее исправление: James_Holden (всего исправлений: 1)
Ответ на: комментарий от James_Holden

Мне не надо в другое приложение, мне надо что в железный вход приходит
В оффтопике немножко по-другому устроено
Есть стандартные драйвера, которые работают через виндовую подсистему, а есть реализация asio от производителя железки. Через них работают все daw. Они работают параллельно. Вот лежит у меня библиотечка NUXUSBAudioasio_x64.dll и у неё стандартное API
https://www.steinberg.net/asiosdk
есть sdk в нём перечислены вызовы
идея в следующем: начать слушать вход, считать максимальное значение и передавать дальше. По сути, сделать свою маленькую daw, которая только и умеет, что показывать текущий уровень громкости.
В задумке выглядит просто, как реализовывать - волосы дыбом встают.

ist76 ★★★★★
()
Ответ на: комментарий от James_Holden

1. Хочу попробовать и научиться новому
2. Не хочу запускать daw чтобы просто выставить громкость на преампе

Проблема в том, что инфы нет вообще. Никакой. И даже намека где искать. Или я не умею найти.

ist76 ★★★★★
()
Ответ на: комментарий от kott

Не знал про такой финт, спасибо, помогло. А для чего он? И насколько влияет количество выходов и входов?

R_He_Po6oT ★★★★★
() автор топика
Ответ на: комментарий от R_He_Po6oT

По пианине - гугление показывает, что 1) реалистичного патча для синтов нет нигде, 2) на форумах никто не верит что его можно сделать.

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

James_Holden ★★★★
()
Ответ на: комментарий от ist76

Странно, как сделать то же самое в линуксе куча примеров, что на jack что на pipewire. Я сейчас делаю общесистемный плагин эффектов для pipewire, просто беря готовые рыбы примеров и дописывая.

По логике, в asio sdk должны быть минимальные примеры приложения, читающего со входа.

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

В линуксе /dev/dsp есть, из которой можно просто читать
А тут, чтобы читать, надо подключиться к тому из чего будем читать
А я - дурак и не понимаю как мне подключиться
Через sounddevice смог, потому что примеров полно
А напрямую лезть в драйвер не знаю как
ну типа просто взять и сделать условное:

from ctypes import *
lib = CDLL(r"C:\Program Files\NUX\Audio Driver\W10_x64\NUXUSBAudioasio.dll")
lib.ASIOInit()
print(lib.ASIOGetChannels())

не работает конечно

ist76 ★★★★★
()
Ответ на: комментарий от ist76

В линуксе /dev/dsp

С разморозкой, это было 20 лет назад. В современном линуксе ничего подобного, к чему можно «просто подключиться и читать» нету. В alsa api надо штук 10 вызовов сделать, чтобы начать читать.

James_Holden ★★★★
()
Ответ на: комментарий от ist76

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

https://github.com/rleathart/SimpleNativeAudio

Судя по тому что я там вижу, дергать это из python по ctypes это еще хуже, чем мне в ZynAddSubFx пианино делать. То есть малореально, функции ты дернуть можешь, но они возвращают и принимают кучу специфических структур.

Тут надо на C++ сразу делать.

James_Holden ★★★★
()
Ответ на: комментарий от ist76

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

James_Holden ★★★★
()
Ответ на: комментарий от ist76

Тут лучше пойти другим путем! Есть pyaudio, и у него, вроде, есть поддержка asio. Надо пробовать через него, а не напрямую dll дергать.

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

Энивей, спасибо за разъяснения
Значит, возможно, попробую готовое чужое взять

ist76 ★★★★★
()
Ответ на: комментарий от James_Holden

Ну вот на нем я список девайсов получил и примеры готовые как писать и воспроизводить есть. Естественно, и мерять можно. Ок, спасибо.

ist76 ★★★★★
()
Ответ на: комментарий от James_Holden

Да, в Беспоке так просто не по самовозбуждаешься и не по самомодулируешься. Там другое классно выходит

R_He_Po6oT ★★★★★
() автор топика
Ответ на: комментарий от R_He_Po6oT

И в ZynAddSubFx классно выходит имитировать аналоговые синты, а вот для реалистичности акустических инструментов такие методы не катят.

James_Holden ★★★★
()
Ответ на: комментарий от R_He_Po6oT

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

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

Ну, гитару (нейлоновую) и арфу довольно неплохо имитирует Карплус из Беспока. Не идеально, конечно, но нюансы очень неплохо можно отрабатывать контролами. Простейший пример как раз в моём чёсе с заглушкой. Изменяя атаку можно имитировать щипки разного положения. Но для фортепьяно у него не тот начальный импульс. И по ходу звучания пианинная струна гораздо больше самомодулируется.

В Зине и Йошиме проще делать начальный импульс, но на дальнейшее погружение меня не хватает. А ещё верхние струны, там всё сложнее... Да, маньячиться не стоит, всё равно лучше чем электропьянин не получится.

R_He_Po6oT ★★★★★
() автор топика
Ответ на: комментарий от ist76

В линуксе /dev/dsp есть

Я тоже так думал. Но его нет, уже очень давно.

lenin386 ★★★★
()
Ответ на: комментарий от ist76

Название ехешника поменять же.

Вообще это на случай, если забьешь или ниасилишь.

thesis ★★★★★
()
Ответ на: комментарий от James_Holden

Ну это тоже безмикрофонно. Можно сказать, что в линию. Фузз-преамп-софтовый оконечник-импульс
Кстати, обнаружил, что софтовых оконечников на два порядка меньше чем софтовых голов и делают их по остаточному принципу. А жаль.
Я сейчас не против игры в линию, просто мне оно неудобно. Привык уже в железки. Вот в процессор поиграл год и всё равно врубил в него преамп, а от процессора у меня только плеер импульсов. И то бы, по хорошему, продолжал бы в комб играть, да надо ему профилактику делать, лампы менять. Лениво. Ну и записывать, конечно, в линию гораздо удобнее.

ist76 ★★★★★
()
Ответ на: комментарий от ist76

Ой вей... Сильно на любителя и под конкретный стиль такое. Прикольно, конечно, но отдельную педаль такую иметь на педалборде не хотел бы. А плагином в компе я такое делал, а вы все меня зафукали, мол, «зочем?» :)

R_He_Po6oT ★★★★★
() автор топика
Ответ на: комментарий от R_He_Po6oT

Плагином не трушно
А тут-феншуй
Даже внутрях у ей неонка трандистор германиевый
Можно каверы на Бурзум делать. Или на Хендрикса.

ist76 ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)