LINUX.ORG.RU

TRUE-DEATH-PRIMITIVE-LINUX-CHIPTUNE

 , , ,


14

5

Представляю вашему вниманию очередное ненужноподелие — программу Robotonic. Сотня строчек говнокода на православной сишечке превращает любые входные данные в нечто мелодичное. Четыре параметра (длина последовательности, длительность «ноты», частота дискретизации и уровень тёплого лампового шума) регулируются константами, по просьбам трудящихся могу прикрутить ключи. Использование, например: cat /dev/urandom | ./robotonic | aplay. Можно вместо входного файла вбивать музон прямо с клавиатуры (учтите, что программа жуёт символы по четыре).

Начиналось сие поделие как факультативная лабораторка. Препод (внезапно, юниксойд) задал запилить что-нибудь наглядно демонстрирующее рулёзность пайпов. Я, недолго думая, реализовал давнюю задумку: прогу, которая из любых входных данных генерирует нечто более музыкообразное, чем TDPLM. Препод в целом остался недоволен, ибо хотел что-либо, что можно цеплять в длинную последовательность. Прога временно ушла в чулан, летом я её раскопал, довёл до более-менее приемлемого звучания и закопал обратно. Сегодня внезапно вспомнил, послушал полчасика незамыленным слухом и решил, что прога готова к употреблению; чутка причесал сырцы и залил на гитхаб.

Гуманитариям, говнарям и прочим нежноухим просьба проходить мимо.

На всякий случай оставлю здесь демо.

Перемещено beastie из talks

★☆

Последнее исправление: INFOMAN (всего исправлений: 3)

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

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

Охрененно

Блин, и правда же охрененно.

Sectoid ★★★★★
()

cat /initrd.img | ./robotonic | aplay - тоже ничего так

sehellion ★★★★★
()

Кстати!

Чуть не забыл, надо же призвать в этот тред Moderators, дабы узрел он, что такое по-настоящему мёртвая музыка.

MiniRoboDancer ★☆
() автор топика

некоторые файлы звучат лучше чем вся поп-сцена России :]

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

Можно ещё саму себя ей скормить, тогда вообще рекурсия получится :-)

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

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

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

Там несколько другая задача была: для tip-tilt генерировать эталонные импульсы. Но звуки прикольные получались.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от MLP_Fan

Эльфы в начале все унылы (тихи, точнее). Через часик из systemctl эйсид-хаус пошёл о_О Теперь понятно, чем упарывается Поттеринг...

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

Ни под что не работается так плодотворно, как под упоротые срачи ЛОРчан, сдобренные красочными мотивами HTML...

MiniRoboDancer ★☆
() автор топика

Шикарно, спасибо!!

HTaeD ★★★★
()
./robotonic < /dev/urandom | aplay

В качестве будильника будет идеально.

kvap
()

Вот так повеселее будет: ./robotonic < /dev/urandom | aplay -r 16000 -c 2

anonymous
()
Ответ на: комментарий от exception13

BPM фиксированный?

Для каждого сэмпла генерируется отдельно также из входных данных в определённых пределах. А сферичновакуумный можно не напрямую крутить константами — обратно пропорционален длине семпла и прямо пропорционален частоте дискретизации. От размера буфера зависит ритмичность — что душа пожелает, от однообразного хауса до хаотичного нойзкора. Про ТЛШ, думаю, объяснять не нужно :-)

надо j4f добавить поддержку opl синтов

А смысл? оно слишком примитивно, проще алгоритм обработки входных данных к какому-нибудь из OPL-синтезаторов прикрутить.

MiniRoboDancer ★☆
() автор топика
$ make all
gcc -lm Robotonic.c -o robotonic
/tmp/cc8h05W7.o: In function `gen_wave':
Robotonic.c:(.text+0x2ad): undefined reference to `sin'
Robotonic.c:(.text+0x318): undefined reference to `sqrt'
Robotonic.c:(.text+0x33d): undefined reference to `sqrt'
collect2: выполнение ld завершилось с кодом возврата 1
make: *** [all] Ошибка 1
$ gcc Robotonic.c -lm -o robotonic
$ 
superuser ★★★★★
()
Ответ на: комментарий от buratino

сделаю звуковые аватары

Сестра, разупорин!

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

всё, разобрался с oggenc:

oggenc -r -B 8 -C 1 -R 8000 - > out.ogg пойду аватарить :)

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

Хм, а в каких версиях gcc нельзя линк-ключи до указания сырца прописывать?

The correct order for a link command line is

$(CC) $(CFLAGS) $(LDFLAGS) $(SOURCES) $(LIBS)

-o $(TARGET) can go wherever you want.

Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.