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

Fingercomp

Гуру
  • Публикации

    1 629
  • Зарегистрирован

  • Посещение

  • Победитель дней

    283

Сообщения, опубликованные пользователем Fingercomp


  1. Потому что это не ответы на вопрос. Это только сообщения типа "просто мы так хотим" и "мы обожаем таумкрафт".

    Откуда знаем? Да если бы они не магически крафтились, ни Алекс, ни newbie не стали бы об этом говорить.

     

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


  2. Продолжаю кодить свой любимый смапик. В обновлении завезли:

    • Трелло-доску: https://trello.com/b/PYyrj3dP/smap
    • Совместимость с потоками. Для этого вторым аргументом передайте "allow" (для разрешения слипа) или "force" (для принудительного слипа, не будет работать на треках с темпом > 20 tps).

  3. В чём-то я согласен с @eu_tomat. Магия — процесс затяжной, а компы обычно требуется быстро и много. Meh.

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

     

    Сообщения @eu_tomat — не повод проявлять свою грубость. Так, двум отдельно взятым личностям напоминаю.

    • Нравится 1

  4. Консольная утилитка... smap (да у меня самые оригинальные названия!)

    Собственно, более-менее человеческий интерфейс ко смапу. Не самый доработанный, ну и фиг с ним пока что.

    Включена в пакет: oppm install smap или oppm update smap.

     

    1. Качаем мюзикальный файл NBS/MIDI.
    2. Устанавливаем smap.
    3. Пишем smap --d=<устройство> <путь> <формат>, где <устройство> — одно из inoteblock, pcspkr, beep (см. посты выше), <путь> — путь к файлу и <формат> — формат файла (nbs или midi).
    4. Слушаем музыку! :rap:
    5. Для выхода вам надо попытаться нажать Control и С в нужное время. Или дослушать до конца. Или перезагрузить комп.

  5. каких  айтишников? тех 2-х человек, которые играют, или тех 20 человек старожилов и прогеров, которые не играю вообще и чисто на форуме колбасятся и отвисают? :)

    В какой группе я? Так редко играю или меня интересуют только лагодромы? :o

    • Нравится 1

  6. Лучше напиши баг репорт, тут чизель крашит и багует.

    Подробности, нужно взять лопату, открыть её, забить весь инвентарь чем - то, оставить 63 камня, с шифтом преобразовать в камень и что бы > 64 было, игра крашит, а иногда бугает.

    Кхм-кхм, кому мне надо писать?

    Под 1.7.10, извините, но насколько я знаю, поддержки от автора чизеля больше нет.


  7. не подгружается через require на том месте где он ищет фаил init.lua там есть только папка init.lua а в ней уже сам init.lua :)

    Ох ё. :facepalm:

    Срочно обновил список — пропишите oppm uninstall smap и oppm install smap.

    >_>

    Ну и раз я пишу пост, о работе. Базовые команды:

    • smap.load(path: string, format: string) — загрузить файл по данному пути данного формата ("midi" / "nbs"). Возвращает объект Music, которые далее будет переменной music.
    • smap.device(name: string) — получить экземпляр устройства ("inoteblock" ­— железный нотный блок, "pcspkr"computer.beep(), "beep" — Beep Card).
    • music:connect(device: Device) — подключить экземпляр устройства.
    • music:play(ticks: number): [nil, reason] — проиграть мелодию заданное количество тиков. Можно поставить math.huge.
    • music:seek(pos: number) — переключить буфер в треке и сбросить позицию буфера до 1. Например, music:seek(1).
    • music:getPos(): number — возвратить текущий буфер.
    • music:getLength(): number — получить длину трека (данную функцию следует вызывать после загрузки всех буферов).
    • music:close() — освободить память.
    • Нравится 1

  8. Только что буквально починили midi — звук НЕМНОООООГО, но похож на тот, что нужен. Правда, из-за переносов октав вверх/вниз, непоятных инструментов и сложных нот, звук может (и будет) отличаться от оригинального.

     

    Сейчас надо починить игру в фоне для всяких игрушек, например, ну и ещё прикрутить какой-нибудь формат файлов музыкальных, кроме миди и nbs.


  9. Ну так есть стандартная библиотека note которая если надо может переводить ноты в длину волны. Да и посмотрев на это библиотеку (по какой формуле происходит конвертация) можно и самому такую функцию написать. Не особо сложно.

    "Спасибо", а то я сооооовсеем не знал о ней. Ага.

     

     

    Что за формат что хранит в себе аккорды вместо отдельных нот?

    Есть трек, он хранит буферы, буферы хранят акккорды, которые хранят ноты.

     

     

    То есть нужен вымышленный формат для конвертации произведения с нужного формата в своё собственный? А потом со своего формата будет производится игра?

    А почему "вымышленный"? Не на одних MP3 и MIDI мир сошёлся.

    Не вижу ничего плохого в своём формате — а иначе как абсолютные разные файлы проигрывать?

    Я так понял, что ты вообще моё сообщение не читал нормально.

    • Нравится 1

  10. Да ноты-то я знаю, сам на пьянине играл. Бемоледиезы в ту же топку.

    Есть внутренний формат, который хранит ноты, а не волну. Точней сказать, аккорды — массив массивов с заданной продолжительностью, тиком, частотой и инструментом (пока только пять, сменить легко).

     

    Теперь нужны внешние — какой-нибудь простой для декодинга и понимания не помешал бы. Ну и более-менее популярный.


  11. В активной разработке (а как же иначе, если на кону стоит эта штука) сейчас находится такая библиотека, как smap — акроним от simple minecraft audio player. Взялся я за такую тему, в которой я почти полностью нуб. Какие-то чертовски непонятные спецификации на миллионы строк для одного только формата, волны морские звуковые, которые как-то надо играть нотами.

    Что есть?

    • Поддержка computer.beep().
    • Поддержка железных нотноблоков из Computronics (одного хватит).
    • Поддержка Beep Card из Computronics (однако, не тестил).
    • MIDI — ужасно кривая реализация, так как был скопирован большой объём кода из программы Sangar, а затем кое-как переделан, не имея понятися о работе кодека.
    • NBS — использовал программу TxN для того, чтобы не копаться в очень скудной спецификации формата... на C#... Ну там всё довольно просто, к тому же даже умудрился прикрутить загрузку файла во время игры,

    Что надо? Хороший вопрос, ибо единственный ответ — это цель проекта. "Возможность играть многие форматы аудио в Minecraft на разных устройствах". Так что тех, кто разбирается в кодеках, музыке и тому прочем, прошу помочь мне с этим плеером несчастным. Парсинг файлов музыкальных, куски кода на Луа, ссылки на реализации чтения форматов на языках программирования иди даже Pull Request'ы (O.o).

     

    Сама библиотека лежит здесь: https://github.com/OpenPrograms/Fingercomp-Programs/tree/master/smap/smap, которую можно скачать на компьютер OC с помощью OPPM: oppm install smap.

     

    Пример использования библиотеки:

    -- Подключаем библиотеку
    local smap = require("smap")
    -- Загружаем аудио-файл
    local music = smap.load("/home/music/NyanCat.nbs", "nbs")
    -- Создаём объект выходного устройства (inoteblock — железный нотный блок)
    local outputDevice = smap.modules.output.inoteblock.new()
    -- Подключаем устройство
    music:connect(outputDevice)
    -- Играем музыку до конца
    print(music:play(math.huge))
    

    И хотя обычно темы о помощи вообще никакого резонанса не делали — неинтересно другим, — я всё-таки надеюсь на помощь.

    • Нравится 1

  12. Да забудь ты про ОпенБлоки, как про страшный сон, и не вспоминай о нём больше на форуме. :facepalm:

    Интерфейсы, работающие на магии — раньше мне это тоже интересно было, но сейчас хочется самому знать, как работает. Компьютерные интерфейсы нужны.

    • Нравится 1

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

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

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

     

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


  14. Ааааааа! Нет слова "autors"! Есть "authors"!!

    Так, ладно.

     

    https://gist.github.com/Fingercomp/3975221042e4e16c83d7a5f6fceed0d1 — подключаешь библиотеку и работаешь:

     

    local addMethod = require("addmethod")
    local a = {}
    addMethod(a, "hello", function()
      return "Hello, world!"
    end, "function():string -- Returns \"Hello, world!\"")
     
    print(a.hello)
    print(a.hello())
    
    • Нравится 1
×
×
  • Создать...