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


Фотография

Проигрыватель музыки в формате NBS

opencomputers музыка NBS

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

#1 Оффлайн   TxN

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

Награды

     

Отправлено 17 Апрель 2016 - 21:06

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

Представляю вам свою первую более-менее серьезную программу для openComputers.

Ее единственная функция - проиграть указанный музыкальный файл. Файл формата nbs, это трекерная музыка с майнкрафтовской спецификой (т.е. написана для музыкальных блоков)

Для создания и редактирования файлов в этом формате используется программа Minecraft Note Block Studio, ссылка на тему на майнкрафтфоруме: http://www.minecraft...te-block-studio

Там же можно найти уже готовые музыкальные треки. Большую часть их программа сможет воспроизвести, проблемы будут с треками, содержащими нестандартные музыкальные инструменты и использующие диапазон шире двух октав. Но даже их можно проиграть, предварительно поправив в редакторе, он делает это автоматически.

 

Ссылка на программу: http://pastebin.com/yrtLYBhz

 

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

 

В планах упаковать программу в библиотечку, сделав возможность включать плеер из других программ. Например, для саундтрека в играх. Еще хотелось бы решить проблему со сбивающимся ритмом, если подскажете способ создавать задержки точнее, чем через pullSignal и os.sleep, буду очень благодарен.

 

 

Видео работы:

 



#2 Оффлайн   NEO

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

Награды

   3                        

Отправлено 17 Апрель 2016 - 21:25

Бомба!

#3 Оффлайн   ivan52945

ivan52945
  • Пользователи
  • Сообщений: 150
  • Уровень сигнала: 62,12%
  • В игре: 463 час. 53 мин.

Награды

                       

Отправлено 17 Апрель 2016 - 21:33

это точно



#4 Оффлайн   Doob

Doob
  • Пользователи
  • Сообщений: 814
  • Уровень сигнала: 19,57%
  • В игре: 146 час. 10 мин.

Награды

                                   

Отправлено 18 Апрель 2016 - 05:35

Зачем столько блоков? Можно ведь на одном играть.

Время можно измерять при помощи os.time() или computer.uptime(), хотя, для музыки такая точность все-равно не годится. (можно глянуть как это сделано в программах для проигрывания midi)


Сообщение отредактировал Doob: 18 Апрель 2016 - 05:35


#5 Оффлайн   TxN

TxN
  • Автор темы
  • Пользователи
  • Сообщений: 3
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 3 мин.

Награды

     

Отправлено 18 Апрель 2016 - 06:46

Зачем столько блоков? Можно ведь на одном играть.

Время можно измерять при помощи os.time() или computer.uptime(), хотя, для музыки такая точность все-равно не годится. (можно глянуть как это сделано в программах для проигрывания midi)

Разве эти блоки позволяют за раз проигрывать несколько нот? В документации об этом ничего не было, если не ошибаюсь. Тогда да, программку можно сделать попроще и покомпактнее.



#6 Оффлайн   qwertyMAN

qwertyMAN
  • Пользователи
  • Сообщений: 1 427
  • Уровень сигнала: 0,14%
  • В игре: 1 час. 3 мин.
  • ГородCity17

Награды

                             

Отправлено 18 Апрель 2016 - 09:50

 

Разве эти блоки позволяют за раз проигрывать несколько нот? В документации об этом ничего не было, если не ошибаюсь. Тогда да, программку можно сделать попроще и покомпактнее.

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

 

Хм, у тебя все ноты по продолжительности одинаковые. Так было задумано или это минус ПО?



#7 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 999
  • Уровень сигнала: 171,24%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 18 Апрель 2016 - 10:12

Как раз и не позволяют.

Программа офигенная, одна из моих давнишних идей, которые постоянно задвигаются, то языками новыми, то проектами более важными :)

На ИТ за это творение обязательно выдам призы, если пожелаете ;)

 

 

Хм, у тебя все ноты по продолжительности одинаковые. Так было задумано или это минус ПО?

Это не минус ПО, это фича Note Block Studio — у ванильных нотных блоков продолжительность ты не задашь. Да и не надо.

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

Звуковой платы нет. Ноты из модов — слишком зависит от сборки. Железные нотные блоки, сюрприз, и так используются.

К тому же если обычный нотный блок подключить через адаптер, по идее можно обойтись только одним.
  1. Это фича OpenPeripheral-Integration.
  2. Этот мод не любят многие за читерность.

 

Так что всё верно сделал автор ;)


Сообщение отредактировал Fingercomp: 18 Апрель 2016 - 10:15


#8 Оффлайн   qwertyMAN

qwertyMAN
  • Пользователи
  • Сообщений: 1 427
  • Уровень сигнала: 0,14%
  • В игре: 1 час. 3 мин.
  • ГородCity17

Награды

                             

Отправлено 18 Апрель 2016 - 10:22

Так что всё верно сделал автор

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



#9 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 999
  • Уровень сигнала: 171,24%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 18 Апрель 2016 - 11:40

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

Я ещё раз повторюсь, проигрывается файл из NBS, NBs сделан для нотных блоков, которые не поддерживают длительность нот, как и железные нотные блоки -_-



#10 Оффлайн   Doob

Doob
  • Пользователи
  • Сообщений: 814
  • Уровень сигнала: 19,57%
  • В игре: 146 час. 10 мин.

Награды

                                   

Отправлено 18 Апрель 2016 - 12:57

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



#11 Оффлайн   qwertyMAN

qwertyMAN
  • Пользователи
  • Сообщений: 1 427
  • Уровень сигнала: 0,14%
  • В игре: 1 час. 3 мин.
  • ГородCity17

Награды

                             

Отправлено 18 Апрель 2016 - 17:59

Я ещё раз повторюсь, проигрывается файл из NBS, NBs сделан для нотных блоков, которые не поддерживают длительность нот, как и железные нотные блоки -_-

Это нехорошо. При тех возможностях что есть в ОС и его аддонах, делать музыку на уровне майнеров у которых нет ОС.

Надо нормальный формат брать, например .abc. У меня был план разобраться полностью в этом формате и сделать плеер, но я психанул и вручную вбил "имперский марш" как самостоятельную программу под ОС.


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

#12 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 999
  • Уровень сигнала: 171,24%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 18 Апрель 2016 - 18:24

Это нехорошо. При тех возможностях что есть в ОС и его аддонах, делать музыку на уровне майнеров у которых нет ОС.

Надо нормальный формат брать, например .abc. У меня был план разобраться полностью в этом формате и сделать плеер, но я психанул и вручную вбил "имперский марш" как самостоятельную программу под ОС.

Мне ещё раз повторить?..

Другой формат — другая прога.



#13 Оффлайн   TxN

TxN
  • Автор темы
  • Пользователи
  • Сообщений: 3
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 3 мин.

Награды

     

Отправлено 18 Апрель 2016 - 21:28

Чуть обновил программу. Теперь она по сути вся завернута в две функции:

player:init(songPath) и player.upd(player)

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

http://pastebin.com/A3UGxM1S

 

Еще сегодня начал понемногу ковырять tape recorder и работу с ним. Он позволяет синтезировать уже полноценный звук и записывать его на кассету. Банальное использование - воспроизводить заранее наконверченные музыкальные записи.

Но мне кажется, можно пойти дальше, и синтезировать музыку самостоятельно, как в старых спектрумах или коммодорах. Жаль только, документации по computronics очень мало.



#14 Оффлайн   Asior

Asior
  • Пользователи
  • Сообщений: 147
  • Уровень сигнала: 68,47%
  • В игре: 511 час. 16 мин.

Награды

                          

Отправлено 18 Апрель 2016 - 22:28

Классная программа. Документацию по computronics можно найти в блогах Fingercomp. И да, кассеты лучше на 64 бит/с пиши (в ваниле 32 ток), там звук чуть лучше, но и пленку жрет в 2 раза больше.
P.S. computronics-polnyi-obzor

Сообщение отредактировал Asior: 18 Апрель 2016 - 22:30


#15 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 999
  • Уровень сигнала: 171,24%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 19 Апрель 2016 - 09:47

В YouTube по CX поищите просто "Computronics гайд", там единственный видеогайд имеется, к счастью, на русском. Может помочь.



#16 Оффлайн   FluttyProger

FluttyProger
  • Пользователи
  • Сообщений: 60
  • Уровень сигнала: 169,77%
  • В игре: 1267 час. 44 мин.

Награды

                 

Отправлено 19 Апрель 2016 - 19:12

Как раз и не позволяют.

Программа офигенная, одна из моих давнишних идей, которые постоянно задвигаются, то языками новыми, то проектами более важными :)

На ИТ за это творение обязательно выдам призы, если пожелаете ;)

 

 

Это не минус ПО, это фича Note Block Studio — у ванильных нотных блоков продолжительность ты не задашь. Да и не надо.

 

 

Звуковой платы нет. Ноты из модов — слишком зависит от сборки. Железные нотные блоки, сюрприз, и так используются.

 

 

  1. Это фича OpenPeripheral-Integration.
  2. Этот мод не любят многие за читерность.

 

Так что всё верно сделал автор ;)

А можно мне тоже призы? :)  за аналогичную программу только у меня другой принцип, воспроизводится на одном нотном блоке и есть минималистичный граф. интерфейс) сделал где-то месяца 2 назад, не выложил потому-что местами кривой код и не счёл её полезной) выложить свою версию?


Сообщение отредактировал FluttyProger: 19 Апрель 2016 - 19:12


#17 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 999
  • Уровень сигнала: 171,24%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 19 Апрель 2016 - 19:23

А можно мне тоже призы? :)  за аналогичную программу только у меня другой принцип, воспроизводится на одном нотном блоке и есть минималистичный граф. интерфейс) сделал где-то месяца 2 назад, не выложил потому-что местами кривой код и не счёл её полезной) выложить свою версию?

Ну допиливай и выкладывай, если хочешь. Посмотрим.

Квест только меня на ИТ поймать :)

 

Кликните в ирке, если что, если я на ИТ нужен.



#18 Оффлайн   Doob

Doob
  • Пользователи
  • Сообщений: 814
  • Уровень сигнала: 19,57%
  • В игре: 146 час. 10 мин.

Награды

                                   

Отправлено 20 Апрель 2016 - 06:25

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


Сообщение отредактировал Doob: 20 Апрель 2016 - 06:26


#19 Оффлайн   Hardeh

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

Отправлено 01 Август 2016 - 01:23

Скрипт почему-то использует инструмент барабана там, где должен быть бас, огромная просьба пофиксить

 

Неважно уже, поправил айдишники всех инструментов и поменял таймер на os.time() - синхронизироваться стало получше.

Вот, если надо

http://pastebin.com/gEfVrExJ


Сообщение отредактировал Hardeh: 01 Август 2016 - 16:02






Темы с аналогичным тегами opencomputers, музыка, NBS

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

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