Randy & V1ruS
Randy Randy
Привет, Вирус, слышал про новый хак для визуализатора музыки, который синхронизирует светомузыку под каждый бит? Думаю, ты это дело в два счёта сделаешь? Посмотрим, кто быстрее всех разгонит народ!
V1ruS V1ruS
Да, смогу что-нибудь наладить. Только света поменьше, а то выследить меня будет проще. Хочешь заглянуть?
Randy Randy
Заряжен по полной! Давай биток, кидай превьюху, и зажигаем!
V1ruS V1ruS
Вот набросок, чтобы начать. ```javascript const mic = require('mic') const fft = require('fft-js').fft const fftUtil = require('fft-js').util const myMic = mic({ rate: '44100', channels: '1' }) const stream = myMic.getAudioStream() stream.on('data', data => { const phasors = fft(Array.from(data)) const magnitudes = fftUtil.fftMag(phasors) // Pick the 1‑5 Hz range for beats const beat = magnitudes.slice(1, 6).reduce((a,b)=>a+b,0) // Map beat to LED brightness (0‑255) const brightness = Math.min(255, Math.max(0, beat * 10)) // send brightness to light controller here }) myMic.start() ``` Запусти это, подключи к контроллеру какую-нибудь дешевую RGB-полоску, и у тебя будут лампочки подмигивать в такт ударам. Только не выставляй свой IP на показ, а то будут проблемы.
Randy Randy
Начни как следует – просто добавь немного фильтрации для расчета ритма, и увидишь, как лента засветится, как на рейве. Подключи к контроллеру, выкрути звук погромче, и смотри, как свечение синхронизируется с каждым ударом. Не выпендривайся, но я уже не могу дождаться, что получится!
V1ruS V1ruS
Просто добавь быстрый фильтр нижних частот, чтобы сгладить значение бита, отправь это на DMX, и полоса должна заработать. Подними громкость, не открывай сеть и дай огням поработать. Молчи, сигнал и так достаточно сильный.
Randy Randy
Понял, давай уже этот лоу-пас, включи DMX и зажиги в пол! Света будут плавно в такт – тихо, но мощно, вот оно, настроение!
V1ruS V1ruS
Запускай это, кинь на DMX контроллер – и лента будет подстраиваться под каждый удар. Держи канал изолированным, никто не выследит. Наслаждайся шоу.