← Все инструменты

Определитель BPM

Бросьте трек. Получите темп и точное время каждой доли — посчитано на вашей машине, без загрузки куда-либо.

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

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

Вопросы

Мой звук куда-то загружается?

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

Насколько это точно?

Используется анализ силы атак с отслеживанием долей методом динамического программирования — тот же подход, что в устоявшихся инструментах music information retrieval, и тот же код, что движет монтажным движком Life2Film. На музыке с ровным пульсом попадание в пределах доли. На рубато, живых записях без клика и сильно синкопированном материале считайте результат отправной точкой.

Что значит «половинный или двойной темп»?

Темп двусмыслен по своей природе: трек на 140 BPM — это одновременно и корректные 70 BPM в половинном счёте. Детекторы выбирают то, что сильнее в сигнале. Если число ощущается ровно вдвое не тем, произошло именно это, и обе трактовки показаны, чтобы вы взяли нужную.

Можно использовать доли в монтажной программе?

Ради этого экспорт и сделан. EDL — то, что нужно для DaVinci Resolve или Premiere: каждая доля приходит именованным маркером на таймлайн. Final Cut принимает FCPXML. OTIO работает и в Resolve, и в Avid, и в Premiere, и подходит, если доли идут в пайплайн, а не прямо на таймлайн. Audacity читает экспорт меток, а CSV и JSON закрывают таблицы и скрипты.

Почему важна частота кадров?

Доли попадают на доли секунды, а таймлайн считает целые кадры. Каждый маркер округляется к ближайшему кадру того проекта, куда он идёт, поэтому сетка, экспортированная в 25 fps, окажется до 20 мс мимо в тридцатикадровой секвенции. Поставьте частоту своего проекта — и маркеры лягут ровно туда, где доля. На CSV и JSON это не влияет: там есть и сырые секунды.

Смотрите также

Другие инструменты

Встроить в свой проект

Finding the tempo and beat grid of a track — the same way this page does it, on the user's machine, with no server. Take the code, or hand the prompt to a coding agent.

const engine = await import('https://life2film.com/wasm/va_wasm.js');
await engine.default({ module_or_path: 'https://life2film.com/wasm/va_wasm_bg.wasm' });

const ctx = new AudioContext();
const buffer = await ctx.decodeAudioData(await file.arrayBuffer());

// Down-mix to mono at 22050 Hz first (OfflineAudioContext), then:
const { bpm, beats } = JSON.parse(engine.detect_beats(mono, 22050, null));

The engine is documented for agents, and every tool page is available as markdown by adding .md to its address.