TxN 67 Опубликовано: 17 апреля, 2016 Представляю вам свою первую более-менее серьезную программу для openComputers. Ее единственная функция - проиграть указанный музыкальный файл. Файл формата nbs, это трекерная музыка с майнкрафтовской спецификой (т.е. написана для музыкальных блоков) Для создания и редактирования файлов в этом формате используется программа Minecraft Note Block Studio, ссылка на тему на майнкрафтфоруме: http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-tools/1260747-minecraft-note-block-studio Там же можно найти уже готовые музыкальные треки. Большую часть их программа сможет воспроизвести, проблемы будут с треками, содержащими нестандартные музыкальные инструменты и использующие диапазон шире двух октав. Но даже их можно проиграть, предварительно поправив в редакторе, он делает это автоматически. Ссылка на программу: http://pastebin.com/yrtLYBhz Использование очень простое, параметр всего один - относительный путь до файла (с расширением).Да, и помимо собственно компьютера вам понадобятся железные музыкальные блоки из Computronics, подключенные к нему. Штук восемь, можно больше или меньше, если их будет меньше, чем того требует трек, программа помрет, если больше - запас, как говорится, карман не тянет. В планах упаковать программу в библиотечку, сделав возможность включать плеер из других программ. Например, для саундтрека в играх. Еще хотелось бы решить проблему со сбивающимся ритмом, если подскажете способ создавать задержки точнее, чем через pullSignal и os.sleep, буду очень благодарен. Видео работы: 19 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 17 апреля, 2016 Бомба! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ivan52945 75 Опубликовано: 17 апреля, 2016 это точно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 18 апреля, 2016 (изменено) Зачем столько блоков? Можно ведь на одном играть. Время можно измерять при помощи os.time() или computer.uptime(), хотя, для музыки такая точность все-равно не годится. (можно глянуть как это сделано в программах для проигрывания midi) Изменено 18 апреля, 2016 пользователем Doob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TxN Автор темы 67 Опубликовано: 18 апреля, 2016 Зачем столько блоков? Можно ведь на одном играть. Время можно измерять при помощи os.time() или computer.uptime(), хотя, для музыки такая точность все-равно не годится. (можно глянуть как это сделано в программах для проигрывания midi) Разве эти блоки позволяют за раз проигрывать несколько нот? В документации об этом ничего не было, если не ошибаюсь. Тогда да, программку можно сделать попроще и покомпактнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 18 апреля, 2016 Разве эти блоки позволяют за раз проигрывать несколько нот? В документации об этом ничего не было, если не ошибаюсь. Тогда да, программку можно сделать попроще и покомпактнее. Есть звуковая плата позволяющая играть несколько нот из модов. Есть стандартная библиотека note, просто для игры. Ну и всякие железные нотные блоки.К тому же если обычный нотный блок подключить через адаптер, по идее можно обойтись только одним. Хм, у тебя все ноты по продолжительности одинаковые. Так было задумано или это минус ПО? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 18 апреля, 2016 (изменено) Как раз и не позволяют. Программа офигенная, одна из моих давнишних идей, которые постоянно задвигаются, то языками новыми, то проектами более важными На ИТ за это творение обязательно выдам призы, если пожелаете Хм, у тебя все ноты по продолжительности одинаковые. Так было задумано или это минус ПО? Это не минус ПО, это фича Note Block Studio — у ванильных нотных блоков продолжительность ты не задашь. Да и не надо. Есть звуковая плата позволяющая играть несколько нот из модов. Есть стандартная библиотека note, просто для игры. Ну и всякие железные нотные блоки. Звуковой платы нет. Ноты из модов — слишком зависит от сборки. Железные нотные блоки, сюрприз, и так используются. К тому же если обычный нотный блок подключить через адаптер, по идее можно обойтись только одним. Это фича OpenPeripheral-Integration. Этот мод не любят многие за читерность. Так что всё верно сделал автор Изменено 18 апреля, 2016 пользователем Fingercomp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 18 апреля, 2016 Так что всё верно сделал автор Не совсем. Продолжительность нот всё же нужно добавить. Иначе получается какая-то кастрированная музыка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 18 апреля, 2016 Не совсем. Продолжительность нот всё же нужно добавить. Иначе получается какая-то кастрированная музыка. Я ещё раз повторюсь, проигрывается файл из NBS, NBs сделан для нотных блоков, которые не поддерживают длительность нот, как и железные нотные блоки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 18 апреля, 2016 Если заставить блок воспроизвести несколько нот подряд, то будет слышно, что они воспроизводятся одновременно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 18 апреля, 2016 Я ещё раз повторюсь, проигрывается файл из NBS, NBs сделан для нотных блоков, которые не поддерживают длительность нот, как и железные нотные блоки Это нехорошо. При тех возможностях что есть в ОС и его аддонах, делать музыку на уровне майнеров у которых нет ОС. Надо нормальный формат брать, например .abc. У меня был план разобраться полностью в этом формате и сделать плеер, но я психанул и вручную вбил "имперский марш" как самостоятельную программу под ОС. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 18 апреля, 2016 Это нехорошо. При тех возможностях что есть в ОС и его аддонах, делать музыку на уровне майнеров у которых нет ОС. Надо нормальный формат брать, например .abc. У меня был план разобраться полностью в этом формате и сделать плеер, но я психанул и вручную вбил "имперский марш" как самостоятельную программу под ОС. Мне ещё раз повторить?.. Другой формат — другая прога. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TxN Автор темы 67 Опубликовано: 18 апреля, 2016 Чуть обновил программу. Теперь она по сути вся завернута в две функции: player:init(songPath) и player.upd(player) Вначале загружаем песню в ините, потом в цикле вызываем апдейт. По сути, уже можно использовать в других программах. http://pastebin.com/A3UGxM1S Еще сегодня начал понемногу ковырять tape recorder и работу с ним. Он позволяет синтезировать уже полноценный звук и записывать его на кассету. Банальное использование - воспроизводить заранее наконверченные музыкальные записи. Но мне кажется, можно пойти дальше, и синтезировать музыку самостоятельно, как в старых спектрумах или коммодорах. Жаль только, документации по computronics очень мало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 18 апреля, 2016 (изменено) Классная программа. Документацию по computronics можно найти в блогах Fingercomp. И да, кассеты лучше на 64 бит/с пиши (в ваниле 32 ток), там звук чуть лучше, но и пленку жрет в 2 раза больше. P.S. computronics-polnyi-obzor Изменено 18 апреля, 2016 пользователем Asior Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 19 апреля, 2016 В YouTube по CX поищите просто "Computronics гайд", там единственный видеогайд имеется, к счастью, на русском. Может помочь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
FluttyProger 84 Опубликовано: 19 апреля, 2016 (изменено) Как раз и не позволяют. Программа офигенная, одна из моих давнишних идей, которые постоянно задвигаются, то языками новыми, то проектами более важными На ИТ за это творение обязательно выдам призы, если пожелаете Это не минус ПО, это фича Note Block Studio — у ванильных нотных блоков продолжительность ты не задашь. Да и не надо. Звуковой платы нет. Ноты из модов — слишком зависит от сборки. Железные нотные блоки, сюрприз, и так используются. Это фича OpenPeripheral-Integration. Этот мод не любят многие за читерность. Так что всё верно сделал автор А можно мне тоже призы? за аналогичную программу только у меня другой принцип, воспроизводится на одном нотном блоке и есть минималистичный граф. интерфейс) сделал где-то месяца 2 назад, не выложил потому-что местами кривой код и не счёл её полезной) выложить свою версию? Изменено 19 апреля, 2016 пользователем FluttyProger Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 19 апреля, 2016 А можно мне тоже призы? за аналогичную программу только у меня другой принцип, воспроизводится на одном нотном блоке и есть минималистичный граф. интерфейс) сделал где-то месяца 2 назад, не выложил потому-что местами кривой код и не счёл её полезной) выложить свою версию? Ну допиливай и выкладывай, если хочешь. Посмотрим. Квест только меня на ИТ поймать Кликните в ирке, если что, если я на ИТ нужен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 20 апреля, 2016 (изменено) Я как-то пробовал синтезировать звук напрямую, на пару секунд музыки придется затратить около часа. Плюнул на это дело, нужен редактор, который будет генерить и работать со звуком в памяти, а потом писать на кассету. Но в OC это не реализовать, проще конвертировать что-то созданное в нормальной программе. Изменено 20 апреля, 2016 пользователем Doob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Hardeh 0 Опубликовано: 31 июля, 2016 (изменено) Скрипт почему-то использует инструмент барабана там, где должен быть бас, огромная просьба пофиксить Неважно уже, поправил айдишники всех инструментов и поменял таймер на os.time() - синхронизироваться стало получше. Вот, если надо http://pastebin.com/gEfVrExJ Изменено 1 августа, 2016 пользователем Hardeh Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
kinonik 0 Опубликовано: 9 августа, 2018 можно пример простенькой программы ,де издаётся любая нота ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах