Конвертер MIDI в JSON
Конвертируйте MIDI в удобные для разработчиков ноты Tone.js или версионированные необработанные события — а также конвертируйте любой из поддерживаемых форматов JSON обратно в проверенный MIDI. Всё происходит прямо в браузере.
Конвертировать MIDI в JSON
.mid/.midi · до 10 МБ · обработка локально в браузере
Выбрать файл MIDI
Обработка выполняется в воркере браузера, который можно отменить.
Выберите локальный файл, чтобы начать.
Как конвертировать MIDI в JSON или JSON в MIDI
- 1. Выберите направление и локальный файл. Откройте файл .mid, .midi или поддерживаемый файл .json. Конвертер читает его локально с ограничением по времени и проверяет в воркере браузера.
- 2. Выберите формат данных. Для конвертации MIDI в JSON выберите нормализованные ноты Tone.js или версионированные события Raw SMF, а затем читаемое или компактное форматирование.
- 3. Создайте результат. Скопируйте или скачайте точный JSON, либо явно создайте и скачайте проверенный MIDI из JSON.
Ноты Tone.js и события Raw SMF
| Профиль | Подходит для | Представление | Обратное преобразование |
|---|---|---|---|
| Ноты Tone.js | Веб-приложения, игры, визуализация | Ноты, синхроимпульсы, дорожки, контроллеры, питч-бенд | Нормализовано; не точное соответствие исходным событиям |
| События Raw SMF | Анализ, обмен данными, редактирование событий | Версионированный заголовок, дорожки и события с delta-time | Точное семантическое обратное преобразование событий |
Что нормализованный JSON формата Tone.js сохраняет, а что меняет
Tone.js MidiJSON содержит PPQ, изменения темпа и размера, текст заголовка, инструменты и каналы дорожек, парные ноты с длительностью в тиках, группы контроллеров, питч-бенд и производные значения времени в секундах. Результат — это тот самый {header, tracks} объект, который использует сама библиотека, — без специфичной для сайта обёртки.
Объединение событий note-on и note-off в объекты нот неизбежно нормализует исходные данные. Принадлежность к исходной дорожке может быть разделена по каналу или программе, а SysEx, афтертач, временные шкалы программ, кодировки байтов и точный порядок событий разных категорий выходят за рамки этой схемы. Поэтому при конвертации JSON в MIDI создаётся детерминированный файл формата 1, а не заявляется восстановление исходного необработанного потока данных.
Что означает точное обратное преобразование событий
Схема songparts.raw-smf.v1 записывает заголовок Standard MIDI, каждую исходную дорожку и каждое поддерживаемое событие вместе с его delta-time и разрешённой полезной нагрузкой. Она сохраняет представленные границы дорожек, тайминг, порядок событий в пределах одной дорожки, подсказки running status и признак note-off по статусному байту 0x9.
Это семантическая точность событий, а не гарантия побайтовой идентичности файлов. Программа записи может кодировать чанки, статусные байты и целые числа переменной длины иначе, но при повторном разборе получится та же структура событий. Неподдерживаемые дополнительные чанки за пределами разобранного заголовка Standard MIDI и дорожек не придумываются.
Форматы MIDI 0, 1, 2, PPQ и SMPTE
- Формат 0 и 1 с PPQ
- Доступны оба профиля. Tone.js возвращает нормализованные данные нот; события Raw SMF сохраняют разобранные исходные дорожки и деление времени.
- Формат 2
- Каждая дорожка — это независимая последовательность. Необработанные события SMF сохраняют эту структуру и вычисляют длительность для каждой дорожки; вместо того чтобы объединять несвязанные последовательности, Tone.js в этом случае отключается.
- Тайминг SMPTE
- Необработанные события SMF сохраняют поддерживаемый тайминг с частотой кадров. Tone.js JSON описывает только PPQ, поэтому инструмент выбирает необработанный формат и поясняет это ограничение.
Использование MIDI JSON в приложениях, играх и Web Audio
Нормализованные объекты нот удобны для планирования звучания синтезатора, отрисовки пиано-ролла, построения целей в ритм-играх или анализа высоты и тайминга без декодирования исходных событий MIDI. Необработанные события подходят лучше, если приложению нужно понимать контроллеры, послекасание, SysEx, точную принадлежность дорожкам или последовательности формата 2. В обоих случаях JSON — это структурированные данные, а не готовый звук.
Приватная обработка, ограничения на размер файлов и безопасный предпросмотр
Файлы MIDI размером до 10 МБ и файлы JSON размером до 30 МБ считываются локально, а затем разбираются и кодируются отдельно от основной страницы, в заменяемом фоновом воркере браузера. Ни один запрос не отправляет ваши данные на сервер. Отображаемый блок кода очищается от лишних данных и ограничивается по размеру, чтобы большие метаданные не могли привести к зависанию страницы; копирование и скачивание всегда используют точный полный локальный результат, вплоть до лимита JSON в 50 МБ.
Часто задаваемые вопросы о конвертере MIDI в JSON
- Бесплатен ли конвертер MIDI в JSON и нужен ли аккаунт?
- Да. Конвертер бесплатен и не требует аккаунта. Выберите локальный файл MIDI или поддерживаемый файл JSON и создайте результат прямо в браузере.
- Загружаются или сохраняются ли мои файлы MIDI или JSON?
- Нет. Чтение, проверка, конвертация, копирование и скачивание файлов происходят в вашем браузере. Файлы не загружаются на сервер, не передаются, не сохраняются в аккаунте и не остаются после ухода со страницы или её перезагрузки.
- Какие форматы MIDI JSON поддерживает этот конвертер?
- Он поддерживает формат Tone.js MidiJSON для нормализованных нот и версионированную схему songparts.raw-smf.v1 для данных заголовка, дорожек и событий Standard MIDI. Конвертер JSON в MIDI автоматически распознаёт оба этих формата.
- Какой профиль JSON выбрать?
- Выбирайте «ноты Tone.js» для веб-приложений, игр, визуализации и работы на уровне отдельных нот. Выбирайте «необработанные события SMF», если границы дорожек, дельта-тайминг, SysEx, послекасание, события контроллеров и другие представленные события Standard MIDI должны сохраняться при обратном преобразовании.
- Даёт ли преобразование MIDI в JSON и обратно исходный файл в неизменном виде?
- «Необработанные события SMF» сохраняют представленный формат, деление тайминга, дорожки, содержимое событий, дельта-тайминг и порядок событий при смысловом обратном преобразовании, но не гарантируют побайтово идентичное кодирование блоков. «Ноты Tone.js», напротив, намеренно нормализуются и не являются точным обратным преобразованием.
- Может ли этот конвертер превратить JSON обратно в MIDI?
- Да. Переключитесь на режим JSON в MIDI и выберите файл Tone.js MidiJSON или корректный файл songparts.raw-smf.v1. Перед созданием локального файла MIDI для скачивания конвертер проверяет всю структуру целиком.
- Какие форматы MIDI и деления тайминга поддерживаются?
- «Необработанные события SMF» поддерживают корректный Standard MIDI формата 0, 1 или 2 с таймингом PPQ или поддерживаемым SMPTE. «Ноты Tone.js» принимают формат 0 или 1 с таймингом PPQ; для формата 2 и SMPTE автоматически используется формат необработанных событий.
- Какие события MIDI сохраняет необработанный JSON?
- Формат необработанных событий представляет ноты, программы, все номера контроллеров, изменение высоты тона, послекасание нот и каналов, темп, размер, тональности, текст, слова песни, названия, префиксы, SysEx, данные, специфичные для секвенсора, и поддерживаемые неизвестные метаданные — точно так, как они были разобраны.
- Можно ли скопировать JSON или скачать его?
- Да. Сначала создайте JSON, затем скопируйте его точный локальный текст или скачайте файл .json. Предпросмотр на странице очищен от лишних данных и может быть сокращён для отзывчивости интерфейса; копирование и скачивание используют полный локальный результат.
- Является ли JSON аудиоформатом?
- Нет. MIDI JSON описывает ноты, тайминг, параметры управления и метаданные как данные для программ. Он не содержит записанной звуковой волны и не становится слышимым звуком, пока синтезатор или сэмплер не воспроизведёт инструкции MIDI.
Другие локальные инструменты для MIDI
- MIDI-плеер — прослушивайте локальный файл MIDI и просматривайте пиано-ролл, партитуру и табулатуру.
- Разделитель MIDI — экспортируйте исходные дорожки или партии по каналам из одного файла MIDI.
- Объединитель MIDI — накладывайте файлы друг на друга или соединяйте их последовательно.
- Конвертер MIDI в WAV — превращайте инструкции MIDI в аудиофайл для скачивания.