iMixing

iMixing - это музыкальный AI-сервис для подготовки треков к релизу и работы с MIDI-материалом. Пользователь загружает отдельные аудиодорожки или MIDI-файл, а сервис анализирует материал, исправляет технические и музыкальные проблемы, формирует понятный отчет и отдает готовый результат.

Сервис состоит из двух основных направлений:
  • Audio Mixing & Mastering: обработка отдельных WAV-дорожек, сведение в stereo mix и экспорт готового master.wav.
  • MIDI Doctor: исправление MIDI по музыкальным правилам, включая ритм, тональность, плотность голосов, диапазоны и совместимость с DAW.
Сайт проекта GitHub

Для кого

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

Типовые сценарии:
  • автор записал вокал, бас и барабаны отдельно и хочет получить готовый демо-мастер;
  • битмейкер хочет быстро проверить баланс stems;
  • музыкант написал MIDI-партию, но она звучит грязно, слишком плотно или неестественно;
  • пользователь хочет загрузить файл и получить исправленную версию без ручной настройки DAW;
  • начинающий продюсер хочет понять, что именно было исправлено в его материале.

Пользовательский сценарий для аудио

Пользователь готовит папку с отдельными WAV-дорожками:
  • kick.wav
  • drums.wav
  • bass.wav
  • lead_vocal.wav
  • guitar.wav
  • synth.wav
  • fx.wav
После запуска команды: imixing-agent examples/stems --output out сервис выполняет полный цикл:
  1. Находит WAV-файлы в указанной папке.
  2. Определяет роль каждой дорожки по имени файла.
  3. Анализирует технические параметры: длительность, sample rate, bit depth, peak, RMS и clipping.
  4. Создает план обработки для каждой дорожки.
  5. Применяет базовую DSP-обработку.
  6. Суммирует дорожки в stereo mix.
  7. Применяет мастер-шину: компрессия, gain staging и limiter.
  8. Экспортирует готовый master.wav.
  9. Создает отчеты analysis.json и mix_plan.md.

Как работает аудио-анализ

Аудиомодуль читает WAV-файлы и измеряет базовые параметры сигнала:
  • количество каналов;
  • sample rate;
  • bit depth;
  • длительность;
  • peak level в dBFS;
  • RMS level в dBFS;
  • примерный headroom;
  • количество samples около клиппинга.
Эти данные используются для предупреждений и выбора gain staging. Например, если дорожка слишком близко к 0 dBFS, сервис рекомендует уменьшить clip gain до обработки.

Как определяется тип дорожки

Сервис использует простую классификацию по имени файла. Например:
  • kick, bd, бочка -> kick;
  • snare, clap, малый -> snare;
  • bass, sub, 808, бас -> bass;
  • vocal, vox, voice, вокал -> lead vocal;
  • backing, bvox, harmony, бек -> backing vocals;
  • guitar, gtr, гитара -> guitar.
Это MVP-подход. В следующих версиях классификацию можно усилить аудио-фичами: спектр, transient profile, pitch tracking, onset density и stereo image.

Как работает аудио-рендер

Рендер выполняется в модуле rendering.py.

Используемые библиотеки:
  • librosa загружает аудио и при необходимости ресемплит дорожки;
  • pedalboard применяет DSP-эффекты;
  • soundfile экспортирует финальный WAV;
  • ffmpeg может создавать MP3-preview, если установлен в системе.
Каждая дорожка приводится к stereo-формату. Mono-файлы дублируются в левый и правый канал, multichannel-файлы берут первые два канала.

Затем применяется роль-зависимая обработка:
  • kick: gain, high-pass, compression, mono-center;
  • snare: gain, high-pass, compression, легкая ambience-обработка;
  • drums: bus-style compression и очистка низа;
  • bass: low-end control, compression, center placement;
  • lead vocal: high-pass, compression, легкая ambience-обработка;
  • backing vocals: quieter gain, panning, high-pass, group-like compression;
  • guitars, keys, synths: filtering, gain staging, stereo placement;
  • FX: quieter support level, high-pass и ambience.
После обработки дорожки суммируются в общий stereo mix. Затем сервис нормализует premaster до безопасного headroom и применяет мастер-шину:
  • gentle bus compression;
  • target gain;
  • final limiter;
  • peak normalization около -1 dBFS.
Результат сохраняется как 24-bit PCM WAV.

Что получает пользователь после аудио-обработки

В папке out появляются:
  • master.wav - готовый stereo master;
  • analysis.json - технический отчет в машинном формате;
  • mix_plan.md - человекочитаемый план сведения и мастеринга;
  • master.mp3 - MP3-preview, если установлен FFmpeg.

Пользовательский сценарий для MIDI

Для MIDI пользователь может запустить локальное веб-приложение:
imixing-midi-web

После этого открывается:
http://127.0.0.1:8000

Пользователь перетаскивает .mid или .midi файл в браузер, выбирает стиль обработки и скачивает исправленную версию.

Также доступна CLI-команда:
imixing-midi-fix input.mid output.mid --style pop

Как работает MIDI Doctor

MIDI Doctor разбирает MIDI-файл на события, извлекает ноты, tempo и time signature, а затем перестраивает музыкальный материал по набору правил.

Основные шаги:
  1. Проверка MIDI-заголовка.
  2. Чтение MIDI tracks.
  3. Извлечение note on / note off событий.
  4. Определение примерного тонального центра.
  5. Выбор quantize grid.
  6. Очистка слишком коротких, слабых или шумовых нот.
  7. Приведение нот к найденной мажоро-подобной гамме.
  8. Перестройка voicing по музыкальному стилю.
  9. Исправление плотности голосов.
  10. Формирование нового MIDI-файла.

Музыкальные Правила MIDI-Исправления

Сервис учитывает несколько музыкальных принципов:
  • ноты должны попадать в логичную тональную систему;
  • бас должен оставаться в нижнем регистре;
  • верхний голос должен быть читаемым как мелодия;
  • внутренние голоса не должны образовывать слишком плотные кластеры;
  • интервалы между голосами должны быть музыкально естественными;
  • резкие скачки по возможности сглаживаются;
  • параллельные октавы и квинты штрафуются в классических и сбалансированных профилях;
  • velocity перестраивается с учетом сильных и слабых долей;
  • слишком слабые короткие ноты удаляются как мусор;
  • MIDI экспортируется в DAW-friendly формате.

MIDI-Стили

Сервис поддерживает несколько профилей:
  • balanced: универсальное исправление с умеренной плотностью;
  • piano: более pianistic voicing, широкая раскладка рук, певучий верхний голос;
  • classical: более строгая четырехголосная логика и осторожное голосоведение;
  • jazz: больше внимания к септимам, нонам и root-light voicing;
  • pop: более простые, чистые и hook-friendly партии.
Каждый стиль меняет:
  • желаемое количество голосов;
  • допустимые диапазоны баса, внутренних голосов и мелодии;
  • spacing между голосами;
  • правила дублирования нот аккорда;
  • velocity accents;
  • допустимую плотность фактуры.

Что получает пользователь после MIDI-обработки

Пользователь получает новый .mid файл, который легче открыть в DAW и использовать в аранжировке.

В веб-интерфейсе дополнительно показывается статистика:
  • выбранный стиль;
  • найденный тональный центр;
  • quantize grid;
  • количество нот до и после обработки;
  • диапазон нот до и после обработки;
  • средняя длительность нот.

Архитектура Сервиса

В текущем MVP есть несколько слоев:
  • cli.py: CLI для аудио-сведения и мастеринга;
  • audio_analysis.py: анализ WAV-файлов;
  • stem_classifier.py: определение роли дорожек;
  • mix_strategy.py: план обработки и routing;
  • rendering.py: реальный аудио-рендер;
  • midi_fixer.py: ядро исправления MIDI;
  • midi_cli.py: CLI для MIDI;
  • midi_web.py: локальный FastAPI web-интерфейс.
  • Важно, что web-интерфейс не содержит музыкальной логики. Он только принимает файл, вызывает midi_fixer.py и возвращает результат. Это позволяет в будущем сделать Telegram-бота, desktop app или облачный сервис поверх того же ядра.

Ограничения MVP

Текущая версия уже работает, но это еще не финальный коммерческий продукт.

Ограничения:
  • аудио ingest напрямую анализирует только WAV;
  • MP3-preview требует установленный FFmpeg;
  • мастеринг использует универсальные default chains, а не жанровую AI-модель;
  • loudness пока оценивается упрощенно, без полноценного integrated LUFS analysis;
  • MIDI key detection пока approximate;
  • MIDI Doctor работает лучше с harmonic/piano-roll материалом, чем с барабанными MIDI;
  • web-интерфейс пока локальный, без аккаунтов, очередей задач и хранения проектов.

Следующие шаги

Ближайшие улучшения:
  • добавить импорт MP3, AIFF и FLAC через FFmpeg;
  • добавить настоящий LUFS-анализ;
  • добавить preview-плеер до/после в web-интерфейс;
  • добавить загрузку stems в web-приложение;
  • добавить выбор жанра для сведения и мастеринга;
  • добавить reference track matching;
  • добавить instrument-specific MIDI режимы: piano, bassline, melody, strings, drums;
  • добавить Telegram-бота как быстрый клиент;
  • добавить облачную очередь задач для больших файлов.

Коротко

iMixing уже работает как локальный прототип музыкального сервиса:
  • принимает stems и делает WAV-master;
  • принимает MIDI и возвращает исправленный MIDI;
  • имеет CLI и локальный web-интерфейс;
  • генерирует отчеты;
  • построен так, чтобы дальше вырасти в полноценное приложение, бота или облачный SaaS.
iMixing превращает сырые stems и грязный MIDI в более чистый, понятный и готовый к дальнейшей работе музыкальный материал.
Сайт проекта GitHub

Другие проекты

Проекты GitHub

Кейсы

Портфолио и услуги