Randy & 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 на показ, а то будут проблемы.
Начни как следует – просто добавь немного фильтрации для расчета ритма, и увидишь, как лента засветится, как на рейве. Подключи к контроллеру, выкрути звук погромче, и смотри, как свечение синхронизируется с каждым ударом. Не выпендривайся, но я уже не могу дождаться, что получится!
Просто добавь быстрый фильтр нижних частот, чтобы сгладить значение бита, отправь это на DMX, и полоса должна заработать. Подними громкость, не открывай сеть и дай огням поработать. Молчи, сигнал и так достаточно сильный.
Понял, давай уже этот лоу-пас, включи DMX и зажиги в пол! Света будут плавно в такт – тихо, но мощно, вот оно, настроение!
Запускай это, кинь на DMX контроллер – и лента будет подстраиваться под каждый удар. Держи канал изолированным, никто не выследит. Наслаждайся шоу.