Вверх ↑
Этот топик читают: Гость
Ответов: 1291
Рейтинг: 47
#1: 2020-04-12 04:46:46 ЛС | профиль | цитата
4 голосый синтезатор случайных мелодий.



В полях ввода задаются максимальные и минимальные значения для генератора случайных чисел для каждого генератора звука. В силу специфики компонента, генераторы (видимо используется монопольный доступ к звуковой карте) ИГРАЮТ ПОСЛЕДОВАТЕЛЬНО. Если кто поможет преодолеть это ограничение, будет вообще здорово. В компоненте Sound можно подправить одну переменнную для того чтобы выводился стереозвук.
Нужен нестандартный компонент Sound, он прилагается, автор компонента не я.
Осталось доработать алгоритм сочинителя более осмысленной музыки и ее экспорт в миди..



https://forum.hiasm.com/getfile/38957

Редактировалось 5 раз(а), последний 2020-04-12 14:52:54
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 2059
Рейтинг: 132
#2: 2020-04-12 05:33:31 ЛС | профиль | цитата
Aziz, так не делается!
Надо по гармонии делать!
До, Ми, Соль - простейший аккорд: Гармония("квадрат" - Рок-н-ролл)
тоника|доминанта|тоника|субдоминанта|тоника|
4/4||C | F | C | G7 |C |
На худой конец 3 "блатных" аккорда: Am,E,Am,Dm,Am в Ля минорчеке.

Редактировалось 10 раз(а), последний 2020-04-12 12:39:01
карма: 6

0
Ответов: 16884
Рейтинг: 1239
#3: 2020-04-12 13:37:34 ЛС | профиль | цитата
Aziz, на ~20% легче

flint2, "современные музыканты" забили на гармонию.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1Entropy Music 2.0.zip [4.5KB] [463]
Ответов: 1291
Рейтинг: 47
#4: 2020-04-12 14:25:09 ЛС | профиль | цитата
flint2, музыка не имеет границ. Слышал про нестандартные муз строи? Мне интересно было услышать саму Музыку Цифрового Хаоса, великого фрактального Рандома!) И я услышал его голос, не знаю как вы. Потом конечно уже буду его очеловечивать, не знаю в Хиасме ли. Больше для этого подходит FlowStone. Там есть экспорт в VST плагины и midi есть поддержка.
Tad, совершенно верно, беспорядок он порой часть более высшего порядка - фракталы..
Помню, в свое время слушал пару тройку таких алго-синтезаторов музыки. В общем жесть, музыка такая холодная и бездушная..

--- Добавлено в 2020-04-12 14:36:53

Tad, И вправду) Спасибо. Но я не оптимизировал еще)
А вот апдейт, там я пытался секвенсор из таблицы сделать) В итоге обнаружил что скролы от таблиц выглядят вполне себе вертикальными ползунками, которые доже можно использовать для управлением тональностью, если научиться сохранять и считывать их положение. Жаль цвет скроллов не изменишь вроде.



https://forum.hiasm.com/getfile/38960

Редактировалось 8 раз(а), последний 2020-04-12 14:54:21
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 167
Рейтинг: 7
#5: 2020-04-12 15:32:46 ЛС | профиль | цитата
Aziz, а вот ваша схема на стандартных bass элементах, и со звуками пианино
https://drive.google.com/file/d/1bkR6BPVhMuISREjJU6sHQGhLpZrx5fvd/view?usp=sharing
И всего на 90 элементов

Редактировалось 1 раз(а), последний 2020-04-12 15:36:51
карма: 0
c, c++, lua
0
Ответов: 1291
Рейтинг: 47
#6: 2020-04-12 17:14:12 ЛС | профиль | цитата
UtoECat, спасибо, мне понравилось) Вот бы еще научиться bass интегрировать в прогу. В принципе наверное можно его в файловом потоке сохранить и извлекать при старте, только вот не ругнется ли прога сначала и не упадет ли прежде чем он извлечется?
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 167
Рейтинг: 7
#7: 2020-04-12 22:51:43 ЛС | профиль | цитата
Aziz писал(а):
Вот бы еще научиться bass интегрировать в прогу.

Помоему что-то подобное уже обсуждали на форуме... Внедряли dllки в компонент...
Aziz писал(а):
наверное можно его в файловом потоке сохранить и извлекать при старте,

Можно(наверное ). Только сначала извлеките, а потом инициализируйте библиотеку .

--- Добавлено в 2020-04-12 23:00:59

Aziz писал(а):
спасибо, мне понравилось

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

Редактировалось 3 раз(а), последний 2020-04-12 23:00:59
карма: 0
c, c++, lua
0
Ответов: 2059
Рейтинг: 132
#8: 2020-04-13 00:09:02 ЛС | профиль | цитата
,
Aziz писал(а):
Вот бы еще научиться bass интегрировать в прогу.

А что именно?
Берёшь dll и подключаешь.
Я выкладывал не менее пяти дополнительных компонентов и dll в компонент запихивал...
Из баса уже выжали всё, что было.

Илья Ильф и Евгений Петров писал(а):
Только вы, дорогой товарищ из Парижа, плюньте на все это.
— Как плюнуть?
— Слюной, — ответил Остап, — как плевали до эпохи исторического материализма. Ничего не выйдет.

Bass давно устарел и малофункционален.
Бери OpenAL, хотя он тоже устарел, и не поддерживается, но всё-же возможностей у него на порядок больше. На худой конец возьми наш Squall. Там документация толковая на русском.
Вообще появилось много чего хорошего в этой области, просто интересоваться надо.
Надо потусоваться на профильных форумах,( это касается всех областей, а не только звука) посмотреть, что люди делают, задать вопросы. Под профильными форумами я понимаю не различные сайты по программированию (на паскалевских вообще никаких признаков жизни не наблюдается), а где делают конкретные вещи.
Просто надо задать себе вопрос - а что-же мне нужно? Вот когда будет понимание, в ту сторону и копать.
Наскоком никакое дело не делается.
И не надо всё проецировать на HiAsm - это игрушка для души и много c ним не навоюешь.

Редактировалось 5 раз(а), последний 2020-04-13 02:31:55
карма: 6

0
Ответов: 1291
Рейтинг: 47
#9: 2020-04-13 16:43:24 ЛС | профиль | цитата
flint2, а не скинете ссылку с интеграцией длл в компонент? Слышал о нем, искал и не нашел.
Да, согласен, но по поводу того что мало сделаешь в Хиасм для звука.. Не знаю, главное он же умеет - писать буферы в звуковуху и принимать с портов миди сообщения ?(кстати, тоже ищу миди компонент пока не нашел) А значит остальное уже все делается некривыми руками и тем что между ушей)
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 2059
Рейтинг: 132
#10: 2020-04-13 18:02:17 ЛС | профиль | цитата
Aziz, Вот мои компоненты: https://yadi.sk/d/y_1Pq0fSAD-hKg
Prolog - https://yadi.sk/d/Y1w3PSE9qD_png
Morphology - https://yadi.sk/d/_PmqGpmqVh71yQ
TTREE - https://yadi.sk/d/tGb4iiX3JVo4RA
Lame-ENC - https://yadi.sk/d/M3cYoFffyX6B1w
pipes - https://yadi.sk/d/Co-fjDG_6fBeIw
Scintilla - https://yadi.sk/d/ZJag_PY2YKqcgA
Bass_new - https://yadi.sk/d/WR4dkdnb7bQelw
Lua - https://yadi.sk/d/BiqZbVKjp7M9aw
Disasm - https://yadi.sk/d/sLvEo2YyR0B6HA
SPForthScript - https://yadi.sk/d/qZtgGvicDIlY_A
dll2pas - https://yadi.sk/d/NdGAI_WMPoXqmw
DLLLoader - https://yadi.sk/d/0sPTEIePPeh5MA
Наверняка чего-то пропустил, ну так, по мелочи.

В архиве .\Bass_new\Bass без dll\ лежит Bass.pas которым надо заменить штатный.
Сохраняйте старый! Он нужен в некоторых случаях при использовании связанных dll, как в примере .\Bass_new\BASS_Encode\Example\.

Есть программка dll2pas для перевода любой dll в паскаль, аналогично bass.pas.

dll2pas - создаёт два файла pointers.txt и *.pas(вместо * имя dll).
В левую часть окна нужно поместить описания функций dll "function BASS_GetVolume: FLOAT; stdcall; external bassdll",
в правой получаем преобразованные строки, которые надо поместить перед IMPLEMENTATION.
"BASS_GetVolume: function: FLOAT; stdcall; "
Если реализована динамическая загрузка, то этот файл не нужен.
В *.pas сам код.
Для каждого компонента всё индивидуально, например SqLite3.pas для sqlite3.dll и UnRAR.pas для UnRAR.dll ,
поэтому в одном случае полученный файл можно прописать в поле uses Windows,Kol,Share,Debug,UnRARnew;, а в другом
надо скопировать часть после IMPLEMENTATION и поместит в конец кода с программой.
Смотрите пример в архиве. Bass_old.pas - исходный код компонента, Bass.pas - должен получится после манипуляций.
Не забывайте прописывать в своём коде DLLLoader - uses kol,Share,DLLLoader;

Редактировалось 2 раз(а), последний 2020-04-13 18:11:34
карма: 6

0
Ответов: 1291
Рейтинг: 47
#11: 2020-04-14 01:02:34 ЛС | профиль | цитата
flint2, спасибо большое! Наподобие список находил уже тут, но так и не сообразил где среди этих файлов лежит нужный компонент. Теперь яснее)

Нашел компонент от Славы, менеджер скроллов. Теперь можно степсеквенсор сделать из таблиц задействую скролы тоже.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 2059
Рейтинг: 132
#12: 2020-04-14 12:00:57 ЛС | профиль | цитата
Aziz, Загружаешь нужные семплы (WAV/MP3/MP2/MP1/OGG) компонентом BASS_SmpFile.
Идентификаторы сэмплов помещаешь в массив.
Делаешь выборки из массива в нужном порядке и воспроизводишь звуки по их идентификатору компонентом BASS_SmpPlayer.
Вот тебе готовый Секвенсор.
карма: 6

0
Ответов: 1291
Рейтинг: 47
#13: 2020-04-15 02:54:24 ЛС | профиль | цитата
flint2, технически там еще квантизации проблема будет а также как графически редактируемо все это удобно сделать. А так да, можно и так, спасибо)
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1291
Рейтинг: 47
#14: 2020-04-16 12:59:59 ЛС | профиль | цитата
flint2, спасибо, все заработало! Сначала правда писало
Bass.pas(17) Fatal: File not found: 'DLLLoader.dcu'

Но я скачал еще DLLLoader ваш и все заработало. Ура! Там еще пример с потоковым радио есть, там еще какие-то длл-ки, их никак не встроить или попробовать dll2pas ?
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 2059
Рейтинг: 132
#15: 2020-04-16 14:09:28 ЛС | профиль | цитата
Там еще пример с потоковым радио есть, там еще какие-то длл-ки, их никак не встроить или попробовать dll2pas ?
Если речь об этом: https://yadi.sk/d/xrLS6MGnFFMyZg , то в примере с радио поток пишется сразу в mp3 (зелёная кнопка), это делают bassenc.dll и lame.exe.
Они общаются между собой непосредственно по этому ни bass.dll, ни остальные dll запихивать в код своей программы нельзя!

Редактировалось 3 раз(а), последний 2020-04-16 14:23:53
карма: 6

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)