/** * audioMotion-analyzer fluid layout demo * * https://github.com/hvianna/audioMotion-analyzer */ import AudioMotionAnalyzer from '../src/audioMotion-analyzer.js'; const audioEl = document.getElementById('audio'), presetSelection = document.getElementById('presets'); // Visualization presets const presets = [ { name: 'Reset to defaults', options: undefined }, { name: 'Classic LED bars', options: { mode: 6, alphaBars: false, ansiBands: true, barSpace: .5, channelLayout: 'single', colorMode: 'gradient', frequencyScale: 'log', gradient: 'classic', ledBars: true, lumiBars: false, maxFreq: 20000, minFreq: 25, mirror: 0, radial: false, reflexRatio: 0, showBgColor: true, showPeaks: true, trueLeds: true } }, { name: 'Mirror wave', options: { mode: 10, channelLayout: 'single', fillAlpha: .6, gradient: 'rainbow', lineWidth: 1.5, maxFreq: 20000, minFreq: 30, mirror: -1, radial: false, reflexAlpha: 1, reflexBright: 1, reflexRatio: .5, showPeaks: false, showScaleX: false } }, { name: 'Radial spectrum + Overlay', options: { mode: 5, barSpace: .1, channelLayout: 'single', gradient: 'prism', ledBars: false, maxFreq: 20000, minFreq: 20, mirror: 0, radial: true, showBgColor: true, showPeaks: true, spinSpeed: 1, overlay: true } }, { name: 'Bark scale + Linear amplitude', options: { mode: 0, channelLayout: 'single', frequencyScale: 'bark', gradient: 'rainbow', linearAmplitude: true, linearBoost: 1.8, maxFreq: 20000, minFreq: 20, mirror: 0, overlay: false, radial: false, reflexAlpha: .25, reflexBright: 1, reflexFit: true, reflexRatio: .3, showPeaks: true, showScaleX: true, weightingFilter: 'D' } }, { name: 'Dual channel combined', options: { mode: 10, channelLayout: 'dual-combined', fillAlpha: .25, frequencyScale: 'bark', gradientLeft: 'steelblue', gradientRight: 'orangered', linearAmplitude: true, linearBoost: 1.8, lineWidth: 1.5, maxFreq: 20000, minFreq: 20, mirror: 0, overlay: false, radial: false, reflexRatio: 0, showPeaks: false, weightingFilter: 'D' } }, { name: 'roundBars + bar-level colorMode', options: { mode: 2, alphaBars: false, ansiBands: false, barSpace: .25, channelLayout: 'single', colorMode: 'bar-level', frequencyScale: 'log', gradient: 'prism', ledBars: false, linearAmplitude: true, linearBoost: 1.6, lumiBars: false, maxFreq: 16000, minFreq: 30, mirror: 0, radial: false, reflexRatio: .5, reflexAlpha: 1, roundBars: true, showPeaks: false, showScaleX: false, smoothing: .7, weightingFilter: 'D' } }, { name: 'Testing config 1 (reflex + mirror)', options: { mode: 10, channelLayout: 'single', gradient: 'rainbow', linearAmplitude: false, reflexRatio: .4, showBgColor: true, showPeaks: true, showScaleX: false, mirror: -1, maxFreq: 8000, minFreq: 20, overlay: true, lineWidth: 2, fillAlpha: .2 } }, { name: 'Testing config 2 (dual LED bars)', options: { mode: 2, alphaBars: false, ansiBands: false, barSpace: .1, channelLayout: 'dual-vertical', gradientLeft: 'steelblue', gradientRight: 'orangered', ledBars: true, lumiBars: false, radial: false, reflexRatio: 0, showPeaks: true, showScaleX: false, mirror: 0, maxFreq: 16000, minFreq: 20, overlay: false, } }, { // gradient sample images for docs are created with a 27.5Hz square wave (volume: 1) in the oscillator name: 'Testing config 3 (gradient samples)', options: { mode: 6, alphaBars: false, ansiBands: false, barSpace: .4, channelLayout: 'single', frequencyScale: 'log', ledBars: false, linearAmplitude: true, linearBoost: 1, lumiBars: false, maxDecibels: -35, minDecibels: -85, maxFreq: 12000, minFreq: 60, mirror: 0, overlay: false, radial: false, reflexRatio: 0, showPeaks: false, showScaleX: false, weightingFilter: 'D' } } ]; // Demo-specific features const features = { showLogo: true, energyMeter: false, songProgress: false } // Create audioMotion-analyzer object try { var audioMotion = new AudioMotionAnalyzer( document.getElementById('container'), { source: audioEl, // main audio source is the HTML