Об этом проекте

Oh Sheet! — это конвейер с открытым исходным кодом, который преобразует песни в фортепианные ноты для двух рук. Пользователи могут вставить URL-адрес YouTube, загрузить аудио в формате MP3/WAV или предоставить MIDI-файл, и система вернёт PDF-партитуру, MusicXML и очеловеченный MIDI. Бэкенд написан на Python и FastAPI. Он использует yt-dlp для получения аудио, Demucs для опционального разделения на стемы и Spotify Basic Pitch для транскрипции аудио в MIDI. Собственный этап аранжировки назначает мелодию правой руке, а бас/гармонию — левой. Этап очеловечивания добавляет микротайминг, динамику скорости нажатия, обозначения педали и артикуляции. Гравировка по умолчанию выполняется встроенным конвейером music21 и LilyPond, который создаёт MusicXML и PDF; в качестве запасного варианта можно использовать опциональный удалённый HTTP-сервис гравировки. Фронтенд представляет собой приложение Flutter с интерактивным просмотрщиком нот на базе OpenSheetMusicDisplay (OSMD) и воспроизведением через Tone.js. Он также включает собственный piano roll на основе canvas с цветовой маркировкой рук и синхронизированной с темпом сеткой долей. События WebSocket транслируют прогресс конвейера с анимациями маскота для каждого этапа. Проект предоставляет REST API для загрузки аудио или MIDI, отправки заданий, опроса статуса, потоковой передачи живых событий и скачивания артефактов. Также доступны конечные точки для отдельных этапов-воркеров для внешней оркестрации. Развёртывание поддерживается через Docker Compose, а репозиторий включает CI-воркфлоу, инструменты офлайн-оценки транскрипции и интеграцию с платформой совместного изучения музыки TuneChat.