{"_id":"gl-waveform","_rev":"44-15da8bd8ca1fc0cb34a62e288c8c0456","name":"gl-waveform","dist-tags":{"latest":"5.0.0"},"versions":{"1.0.0":{"name":"gl-waveform","version":"1.0.0","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@1.0.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"e819d880f68a1c8a6c24b3a83fc00866f870cbc4","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-1.0.0.tgz","integrity":"sha512-ZXIuTWI2eu9YRgEMwGnOp860w+rYYZkpHPkDw8//W9Ut+1wLM3cVZSaJZx/4QptLgM2OGFfr4qNYFINtcB7IjQ==","signatures":[{"sig":"MEQCIHflHNcKH3vvAqUtq9SCIlK5tbn4/4PwFQmgqYK7lfKkAiBDrZZOMwogw5PqDmKyKCzwYR6nfVwXcKkLakSj+6vOHw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"e819d880f68a1c8a6c24b3a83fc00866f870cbc4","gitHead":"ab309585eb03bdea89fc4621ea387855bb0c74a0","scripts":{"test":"budo test.js","test:browser":"budo test.js"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"inherits":"^2.0.1","plot-grid":"^1.2.1","just-extend":"^1.1.19","gl-component":"^1.4.20","interpolation-arrays":"0.0.0"},"devDependencies":{"tinycolor2":"^1.4.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-1.0.0.tgz_1470981216000_0.20400314102880657","host":"packages-16-east.internal.npmjs.com"}},"1.1.0":{"name":"gl-waveform","version":"1.1.0","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@1.1.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"debe0724dc57c21b922488b515442a4f47fc3553","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-1.1.0.tgz","integrity":"sha512-6QSgvT5wB+eg+8KLxYPkGQmY24gcz7vbjFCXbLJ1DNEcSBZ/gtDtJEP9WljEu7EqVgNxqtgOu+6oCsZ4sfVTBg==","signatures":[{"sig":"MEUCIQCeTyWvfM1SbFrRCgXPKTlBn5oizaQo6vHaDRc7h2BW5QIgUvBDaAM44SKZHYacVEN2f0zQNxcVC8uz2aT+ETtNzSs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"debe0724dc57c21b922488b515442a4f47fc3553","gitHead":"cbafdd5c69fbc3ca2d0a83d4720eaa5dee666f26","scripts":{"test":"budo test.js","test:browser":"budo test.js"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"inherits":"^2.0.1","plot-grid":"^1.2.1","just-extend":"^1.1.19","gl-component":"^1.4.20","interpolation-arrays":"0.0.0"},"devDependencies":{"tinycolor2":"^1.4.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-1.1.0.tgz_1471121598206_0.5219127673190087","host":"packages-16-east.internal.npmjs.com"}},"1.1.1":{"name":"gl-waveform","version":"1.1.1","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@1.1.1","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"1aa0171ef00ad639219617aa9aeeed45dc277683","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-1.1.1.tgz","integrity":"sha512-jiXviGZqaRTxZjyKZZa5cRPUP8agAcQZpxHzCAL3TuahsYO0fYfm/QqfHnHXk04Dp94dYdy4UybaF9sPMav/qQ==","signatures":[{"sig":"MEYCIQDmhpi/8zlU8dys3Izq+lwnzHWc3MiDGrzvckWoX374FgIhAMAK/WCazFLZrdE6fXrVeiixEDkObzq2sJqQbobsn8J4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"1aa0171ef00ad639219617aa9aeeed45dc277683","gitHead":"9208b60f606aa36765e75ccff334700f10fcb77b","scripts":{"test":"budo test.js","build":"browserify test.js -g bubleify -o demo/index.js","test:browser":"budo test.js"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"decibels":"^1.0.1","inherits":"^2.0.1","plot-grid":"^1.2.1","just-extend":"^1.1.19","gl-component":"^1.4.20","interpolation-arrays":"0.0.0"},"devDependencies":{"bubleify":"^0.5.1","tinycolor2":"^1.4.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-1.1.1.tgz_1471132103345_0.39412060054019094","host":"packages-16-east.internal.npmjs.com"}},"1.1.2":{"name":"gl-waveform","version":"1.1.2","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@1.1.2","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"267dafe39f41a291932c969355ea140702cb23e8","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-1.1.2.tgz","integrity":"sha512-KT4tOiZ86PcP9VTQ+rhY1+lihuBmWf1coc/AoZWiKZUOr8KmuHQSZDZ+5OXOebw0qUrHEnBPPoZLpVi6V/xIGg==","signatures":[{"sig":"MEYCIQCt/CvemSNq7tD82f14Rc1h+4sLJp6lot5ly2k2qxPtYQIhAPmGq4YdZrj1A5R03Y4XjsY+NEorpeyWSuzPR7Hxdm1S","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"267dafe39f41a291932c969355ea140702cb23e8","gitHead":"f46a9e1ba6cc28ba73b31c84d133ac013cbf7ede","scripts":{"test":"budo test.js","build":"browserify test.js -g bubleify -o demo/index.js","test:browser":"budo test.js"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"get-uid":"^1.0.1","decibels":"^1.0.1","inherits":"^2.0.1","app-audio":"^1.1.4","plot-grid":"^1.2.1","webworkify":"^1.3.0","just-extend":"^1.1.19","gl-component":"^1.4.20","fps-indicator":"^1.0.1","color-interpolate":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","tinycolor2":"^1.4.1","audio-context":"^0.1.0","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-1.1.2.tgz_1471753878011_0.5487249966245145","host":"packages-16-east.internal.npmjs.com"}},"1.1.3":{"name":"gl-waveform","version":"1.1.3","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@1.1.3","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"afe1df703b9866a4535d970bbd65b73351d7087c","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-1.1.3.tgz","integrity":"sha512-a2rQxXhMXwTyiCAJYjKjemwvhi0K+e6h5tDyWgbolWN0j+UpHAfOKKgwJ9jyGb4goxLuPqEnewWj5qrZzmnMGA==","signatures":[{"sig":"MEUCIEd3mflZrPp1y3Fr+GbEk+5xeuErF+PI4EAIwGSdl1QbAiEAreuEoTlo6uOdCn15dTiCfFzGNYeyp0zMm++ZPxOsI5g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"afe1df703b9866a4535d970bbd65b73351d7087c","gitHead":"0dafa5d1f1ec3515d9a92d84a54e80e087bc7a9b","scripts":{"test":"budo test.js","build":"browserify test.js -g bubleify -o demo/index.js","test:browser":"budo test.js"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"get-uid":"^1.0.1","decibels":"^1.0.1","inherits":"^2.0.1","app-audio":"^1.1.4","plot-grid":"^1.2.1","webworkify":"^1.3.0","just-extend":"^1.1.19","gl-component":"^1.4.20","fps-indicator":"^1.0.1","color-interpolate":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","tinycolor2":"^1.4.1","audio-context":"^0.1.0","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-1.1.3.tgz_1471795477121_0.4546831273473799","host":"packages-16-east.internal.npmjs.com"}},"2.0.0":{"name":"gl-waveform","version":"2.0.0","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.0.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"bc72b8f36c97545b0bc6f605c96aa406df0d88e5","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.0.0.tgz","integrity":"sha512-e5JoLp2YWVlJH6QrVqgywl3U7AZj47eByYY3m1Uc0Pfa28iM1ZXmx6zyHO92wABYViIoSqoRK4urXK1UiQfu+Q==","signatures":[{"sig":"MEYCIQCUHi+W6GYdH/09B4nVTuOgznZ71oND1+Ly5qQHLvmZ3wIhAPMGD+DDeUYgR7HivrGpkROAfy0or/TZvw2fATcMKVJV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"bc72b8f36c97545b0bc6f605c96aa406df0d88e5","gitHead":"d85f22d88701dd7dceb58dc1fae5f0ac1a135899","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify --title gl-waveform > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"get-uid":"^1.0.1","decibels":"^1.0.1","inherits":"^2.0.1","plot-grid":"^1.2.1","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","color-alpha":"^1.0.1","just-extend":"^1.1.19","gl-component":"^1.4.20","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.0.3","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","tinycolor2":"^1.4.1","indexhtmlify":"^1.3.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.0.0.tgz_1475693114339_0.9087614642921835","host":"packages-12-west.internal.npmjs.com"}},"2.0.1":{"name":"gl-waveform","version":"2.0.1","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.0.1","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"61404421fa8d63c8125a62dbf6c9138f690c252d","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.0.1.tgz","integrity":"sha512-39CTqe+C8Z0hzkVDmwsh/o9TNlgdNT8fzUK2qOSEQyo4S1zzN2EAq/WM7Fwr653awtsKEwef37f3HPhxDsDnBQ==","signatures":[{"sig":"MEQCIALfoXF7/AZHCkCqKOylG2cINmu58HhVCFA6OSBX7Vb0AiBH0PPJn2vIuy4Pqtj66ebjY6SiftHwXm4YN/Ba3rgXjw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"61404421fa8d63c8125a62dbf6c9138f690c252d","gitHead":"9b546f6ac78f101b42a32cb29d5a25bceaab9c29","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify --title gl-waveform > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"get-uid":"^1.0.1","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^1.0.0","plot-grid":"^1.2.1","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","color-alpha":"^1.0.1","just-extend":"^1.1.19","gl-component":"^2.2.0","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.0.3","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","tinycolor2":"^1.4.1","indexhtmlify":"^1.3.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.0.1.tgz_1477023348189_0.2566463933326304","host":"packages-12-west.internal.npmjs.com"}},"2.0.2":{"name":"gl-waveform","version":"2.0.2","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.0.2","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"1223e7ce63327230e7a7198ef81100417e819544","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.0.2.tgz","integrity":"sha512-hkhqwCzr2AvG1VdLeHz4HkZhskpoM7uk8OIoCx/GDowYm6Kyqo5xFDMNxMBQQvLk3JHi9d3uzp9fO4Zq7G28Pw==","signatures":[{"sig":"MEUCIDzR5yhzg7XkVoZ7sKt1z+6o8uHPPMfLeUHPFJ8XP6J8AiEAvhzfaQF4feVSdNB8j28tEkF0/ENd/7nc2fS+oH2erEU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"1223e7ce63327230e7a7198ef81100417e819544","gitHead":"2619bff6ca7f636260060426c3710edcccaa88b0","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify --title gl-waveform > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"get-uid":"^1.0.1","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^1.0.0","plot-grid":"^1.2.1","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","color-alpha":"^1.0.1","just-extend":"^1.1.19","gl-component":"^2.2.0","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.0.3","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","tinycolor2":"^1.4.1","indexhtmlify":"^1.3.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.0.2.tgz_1477030491718_0.11254093330353498","host":"packages-18-east.internal.npmjs.com"}},"2.0.4":{"name":"gl-waveform","version":"2.0.4","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.0.4","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"e6d7271d12a146dbb7fb3cdbf5cc6197feffc222","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.0.4.tgz","integrity":"sha512-TQzjgBsjEL3pQuewl6ofZ2OTtJOwaPXSk/hK9mQgRSHk7RcviiXpj/MFGVVmnh9M+uBJbaPM2g3kz9g9VsJYhA==","signatures":[{"sig":"MEUCIQDWWbe2ocRaWxXEUqORNt1//+IK0IvSmFGWTPeOkSyi2AIgO+dhgwFnWEIEvHdvoDioExwaTqS02sc6O9kMZYzEcHg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"e6d7271d12a146dbb7fb3cdbf5cc6197feffc222","gitHead":"e07e8b65c7ec5f7101e1bc7dfa3979473e40d59e","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify --title gl-waveform > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"get-uid":"^1.0.1","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","plot-grid":"^2.2.1","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","color-alpha":"^1.0.1","just-extend":"^1.1.19","gl-component":"^2.3.8","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.0.3","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","tinycolor2":"^1.4.1","indexhtmlify":"^1.3.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.0.4.tgz_1479779094000_0.15908630145713687","host":"packages-18-east.internal.npmjs.com"}},"2.1.0":{"name":"gl-waveform","version":"2.1.0","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.1.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"c9f7f97e3e6c756e5315c68b46faa0cd7e1a54a5","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.1.0.tgz","integrity":"sha512-agWhry8frGrzQZc8myjtCd3xalUQO+EX6zuQ07tGmb63wU1c4pVadYOaDl/5Q28qtB5WBixkn8fAJ80oMxseFQ==","signatures":[{"sig":"MEYCIQC5S4vQd44xOpjDlSNLJBittG0+1Zewp/KTSV9CFf9fCQIhAL/w7w/+DyHdR0ihzTxP7f1Mqs9Y+loGOLt5sYwQmT2X","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"c9f7f97e3e6c756e5315c68b46faa0cd7e1a54a5","gitHead":"c6a2c54511c3aacb970916acac6630d1137af902","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify --title gl-waveform > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"get-uid":"^1.0.1","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","plot-grid":"^2.2.1","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","color-alpha":"^1.0.1","just-extend":"^1.1.19","gl-component":"^2.3.8","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.0.3","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","tinycolor2":"^1.4.1","indexhtmlify":"^1.3.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.1.0.tgz_1479848343604_0.562619237229228","host":"packages-12-west.internal.npmjs.com"}},"2.1.1":{"name":"gl-waveform","version":"2.1.1","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.1.1","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"61a8a7f3ab90d065ff6384f94924e2f4f4616188","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.1.1.tgz","integrity":"sha512-6WEp3BDDL6bj5TSptgTM8EtZKPgHJrLcBE18kpheQo+VkUxBP6HKJmfqzzunCGeS5Sxm6YHjgvIHiwIWITsl8w==","signatures":[{"sig":"MEUCIQDUkVWlgq/KxzD7MpD7WUPfGH0bmNaJEC4iNNZHxgczUgIgQ9PuAAL3bbeYuF36WkQklmkcnLot+JQ9wNxelqHm8GY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"61a8a7f3ab90d065ff6384f94924e2f4f4616188","gitHead":"c9be196058f48a49748e6aae7d435ca73ae5971f","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"get-uid":"^1.0.1","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","color-alpha":"^1.0.1","just-extend":"^1.1.19","gl-component":"^2.3.8","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.0.3","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.1.1.tgz_1479896321505_0.9863344181794673","host":"packages-18-east.internal.npmjs.com"}},"2.1.2":{"name":"gl-waveform","version":"2.1.2","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.1.2","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"6009e9ab92f3c4f378c87bddf57beabce7922f2b","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.1.2.tgz","integrity":"sha512-rU9rUGng6OL2iYKFTrs8cxP5ahIG4rm+dkp1P6O3NxlqXynRZexywBeQc6QSol1Injz1T1Yt5zhCmvMfvyw/MQ==","signatures":[{"sig":"MEUCIQD2JoCWwZtBEkDSgMmNe3ZvVLtbLZLO41TYCTNw2gTJZQIgflvhgTIxO6MPdOKMWk4/8YPt/IRjzOF97/NzJfiO3gA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"6009e9ab92f3c4f378c87bddf57beabce7922f2b","gitHead":"8ce99a6473f43575dc5b6fd6230288635684f362","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"get-uid":"^1.0.1","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","color-alpha":"^1.0.1","just-extend":"^1.1.19","gl-component":"^2.3.8","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.0.3","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.1.2.tgz_1479896528003_0.17606713739223778","host":"packages-12-west.internal.npmjs.com"}},"2.2.0":{"name":"gl-waveform","version":"2.2.0","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.2.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"d93fe400cec3151727a9024c85d06ee409966d7e","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.2.0.tgz","integrity":"sha512-2NfdF7xqVgYlU4PgaK1gD6oIJ8iOqNYbbkG/kS7xIfMZML1QQSSf53t//gsl5YsaXiae7f8pN+pEDnOjyqJ+Ig==","signatures":[{"sig":"MEUCIGXjMSLojBTE2JwWPkQqfKdekeojWPjZsoU0GuS+l6GTAiEAv2/yedH0vYP9+4T5S20tdlDHWSI4/l7ydOBmfJpBwAc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"d93fe400cec3151727a9024c85d06ee409966d7e","gitHead":"2e625670197aa4a78d3c237ce6f468bf95b4eeef","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"get-uid":"^1.0.1","gl-util":"^1.1.3","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","object-assign":"^4.1.0","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.0.3","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.2.0.tgz_1480912266771_0.8911425827536732","host":"packages-12-west.internal.npmjs.com"}},"2.2.1":{"name":"gl-waveform","version":"2.2.1","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.2.1","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"5acdf28faa529353e7fcf0bf04b9000a6c543b2a","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.2.1.tgz","integrity":"sha512-GJie/dNZd/rhtS/ho9RLX8t6S+8qdXfTeUt73xkYBp2nfB0D7tWGkz9p+YlwN0kcWE1uJXbAVZWGiG1IVcYgRg==","signatures":[{"sig":"MEYCIQDgBygii0MihqcYI0WgXlZDhmH+HysJY0pcLlX8ZvOVtwIhAOStBnGxTrVn7VE1t7WWgfhW0c+EpddwjsHz6Joi/wmx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"5acdf28faa529353e7fcf0bf04b9000a6c543b2a","gitHead":"014e00a90aeb544026b04f3efa23404a214f4e25","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","object-assign":"^4.1.0","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.2.0","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.2.1.tgz_1480932126310_0.40875593665987253","host":"packages-12-west.internal.npmjs.com"}},"2.2.2":{"name":"gl-waveform","version":"2.2.2","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.2.2","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"1054b4848dcbba3b8850505cf02cf002927534aa","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.2.2.tgz","integrity":"sha512-gUoZjUPB05pYyu4JldNWdyGrkhqYZaK7ZqVf/DWlZnlGjyQXPdkatpr6vBNMrVvDpCoVdHEq3r0AVLYwvb4IWw==","signatures":[{"sig":"MEYCIQCVVBsMhoNIlLqrKtT0xK3RNzxbA4M20reqX82+Y8zDEwIhAIQBxKKdJxlNkqkgrfJXhHkFI4U/d7jCE0lwzN81KC9z","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"1054b4848dcbba3b8850505cf02cf002927534aa","gitHead":"adb93982c3aed85095da10a15e059880cbabd228","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","object-assign":"^4.1.0","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.2.0","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.2.2.tgz_1480933164474_0.10456391214393079","host":"packages-12-west.internal.npmjs.com"}},"2.2.3":{"name":"gl-waveform","version":"2.2.3","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.2.3","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"87df5b2ae6260ded8e4d3a58c7e82ee9c0901f78","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.2.3.tgz","integrity":"sha512-HRDpMlglReo9b8OoaHYvBT0HkCyg9oDUAk/cznLz+CEk0aDH4aMlhGvrbdK8Cr/guR1/sLhl55maiAImX6BHQA==","signatures":[{"sig":"MEQCIAzNerzaRKZtT2NsAlNB8SaiPXPsE1sd6hlZ2Tg2fKU1AiApi/6apH78j0wzma52tgW1kUexeOtje3LloJh7/garlg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"87df5b2ae6260ded8e4d3a58c7e82ee9c0901f78","gitHead":"abe9d8a29aa31ed0942f299c80909dd5e0257423","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","object-assign":"^4.1.0","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.2.0","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.2.3.tgz_1481447056287_0.15703950310125947","host":"packages-12-west.internal.npmjs.com"}},"2.2.4":{"name":"gl-waveform","version":"2.2.4","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.2.4","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"f3e749b206f9ff975bc7b33648b5aafba4910535","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.2.4.tgz","integrity":"sha512-SLIQpfPNm6LLhjqCnHYnQ59GphT/tgfHcMkeza0wp9Vkkuoyzxtxu89Ygi84CfA4vb3dkiJsaAu+YZShKhri4Q==","signatures":[{"sig":"MEYCIQDiPC9yuW++W0Iurn+Kib8VtsHHB4g7J7i2J0e5xkJYrwIhAL/kWdXEerL3ftqCzP0+hP8uhtOt76eomDlsW08m3ge5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"f3e749b206f9ff975bc7b33648b5aafba4910535","gitHead":"b58c33339cb4b7379d9cc1172ea404d58da36af7","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","object-assign":"^4.1.0","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.2.0","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","audio-table":"^1.0.0","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.2.4.tgz_1483031522722_0.6014038962312043","host":"packages-18-east.internal.npmjs.com"}},"2.2.5":{"name":"gl-waveform","version":"2.2.5","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.2.5","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"e19085e8b0b7d85521eba2572d618ec447c4e1bc","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.2.5.tgz","integrity":"sha512-fpafFuhtzSJgO3qBSoJa3U+12Qygoko2C/tiTcd6zRWg+G9PVCkcjzZpfAoGo+Wnbcbaiy7GXSSfpJ+RH1dqtw==","signatures":[{"sig":"MEYCIQD2a0SIY1nHiFXFFYqbAvA0oucLvEcOr3N0dYl9AM4wuwIhAJhEc60nDzZdXWlB+4I/tkXJRVdfXFz6dRYYZEHac57p","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"e19085e8b0b7d85521eba2572d618ec447c4e1bc","gitHead":"d29f7ab251213b317c2e9a581433a49091addd4b","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","object-assign":"^4.1.0","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.2.0","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","audio-table":"^1.0.0","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.2.5.tgz_1483031828028_0.9024048009887338","host":"packages-12-west.internal.npmjs.com"}},"2.2.6":{"name":"gl-waveform","version":"2.2.6","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.2.6","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"7f74f8ad1a0a8ca5c7ad3d5422a349f6b1bc830f","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.2.6.tgz","integrity":"sha512-6/4aVKBamXZJto10d4DDNGZQG5u6W9G9GYxVJd6inrthj5W6fUyFkKjIQ1ZyTsz3XOZ5RZh+jJw/yj3JN0Y7NQ==","signatures":[{"sig":"MEQCICALQP9IuU4HUnFMK0ovZfnek+bnahL6YOE0D7IztLM1AiAi7ESbERAz/WPae8Nftzgv0rrQKXmLYIT0hioL62090Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"7f74f8ad1a0a8ca5c7ad3d5422a349f6b1bc830f","gitHead":"c91088b59dc454cf306e7bb5df7192f3be85f8d3","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","bit-twiddle":"^1.0.2","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","object-assign":"^4.1.0","color-spectrum":"^1.1.3","negative-index":"^1.0.0","multiscale-array":"^1.2.0","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","colormap":"2.2.0","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","audio-table":"^1.0.0","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.2.6.tgz_1486593583762_0.8581048091873527","host":"packages-18-east.internal.npmjs.com"}},"2.3.0":{"name":"gl-waveform","version":"2.3.0","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.3.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"b6f43167eef84f11f3688056677942e73f8738fc","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.3.0.tgz","integrity":"sha512-8KHVM8AlY/8Uchn6mQ/B51DjsnqANPygdz5OPz6hfCkHNxjmynYRp7XsXCfLADfANPHEPgl+EYq+aeiRoDI8iQ==","signatures":[{"sig":"MEYCIQDTx54HQ9pEZlC9yOIED8+yTE+AilAQu5YmfiPRxxY04gIhAIjMgsU08MIkQan4Iw9pQHMz0Rk1p8HcqYOJnmkiywPO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"b6f43167eef84f11f3688056677942e73f8738fc","gitHead":"f36225683d556911ff7ed6c23f44409880bcc2f8","scripts":{"lint":"eslint *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","object-assign":"^4.1.0","negative-index":"^1.0.0","extrude-polyline":"^1.0.6","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","colormap":"2.2.0","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","audio-table":"^1.0.0","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.3.0.tgz_1488337756447_0.28868551296181977","host":"packages-12-west.internal.npmjs.com"}},"2.4.0":{"name":"gl-waveform","version":"2.4.0","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.4.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"ad50dfbeea3e411ba7a6922a20cf6d3015ced2a6","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.4.0.tgz","integrity":"sha512-YSCJ5uxrmmAHKSIrRNJNSUwWl31EA/UbMbMbTv0M5lLqK5A+qbphKf5BXBY2C90RZi3KWgJB0Z+cPXWtSf05Hg==","signatures":[{"sig":"MEUCICWKlzFdOfjIAE6S3S90Xrt9p3KMwdpnaOD7J7yywbOmAiEAtgyNajuM/Q2SRRx+kJjr+34tAo7dVgI9sjbE3Yz3FT8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"ad50dfbeea3e411ba7a6922a20cf6d3015ced2a6","gitHead":"120c1d106f3713aad3c85737b63be6025b2e9681","scripts":{"lint":"eslint */*.js *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"browserify":{"transform":["glslify"]},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","glslify":"^6.0.1","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"^1.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","glsl-decibels":"^1.0.0","object-assign":"^4.1.0","negative-index":"^1.0.0","extrude-polyline":"^1.0.6","color-interpolate":"^1.0.2","fourier-transform":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","colormap":"2.2.0","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","audio-table":"^1.0.0","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.4.0.tgz_1488414913030_0.25436598784290254","host":"packages-12-west.internal.npmjs.com"}},"2.4.1":{"name":"gl-waveform","version":"2.4.1","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.4.1","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"3930be719fe218cf463152ac0d2c944035117417","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.4.1.tgz","integrity":"sha512-r76ZDDJeSRmNUXcawV5gQS+86+iZb4BuV1ITOLvkBk5oiXce0a4GzRTFD+ayKlWb7m55HsBwU3HbzEnZsP6grA==","signatures":[{"sig":"MEUCIFHAI2njwkzzettwKn2YgMn4k02yjJjOp+mxaSrjcgdXAiEA+YuQrsqq364lPrcImPdcviCXqCb5dnsKMwKPqCV0p28=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"3930be719fe218cf463152ac0d2c944035117417","gitHead":"ebd201e7e07c0a6e8951ad79cfb94a1ebe2de551","scripts":{"lint":"eslint */*.js *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"browserify":{"transform":["glslify"]},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","glslify":"^6.0.1","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","glsl-decibels":"^1.0.0","object-assign":"^4.1.0","negative-index":"^1.0.0","color-interpolate":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","colormap":"2.2.0","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","audio-table":"^1.0.0","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","github-cornerify":"^1.0.6","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.4.1.tgz_1488415692773_0.5472081764601171","host":"packages-18-east.internal.npmjs.com"}},"2.4.2":{"name":"gl-waveform","version":"2.4.2","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.4.2","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"c1cfc2bd59e9626082acbecde504f2421da4cc29","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.4.2.tgz","integrity":"sha512-KbcTqUWmu7l/isIAMSuIR3wgc237PoZaFSCDWygVgRdwkpzaM9kqxe4BKJihhG8U7PRkzJdkU3DWh7iNURZVgA==","signatures":[{"sig":"MEQCIAorY4qY/VOyTZaATpf4YWQFbh+Pkdd7cOGDXok0EQPGAiAqUdz0whlTEsJR5ZZu2JhIzjG5H7WwrIu2PjekCH3M/w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"c1cfc2bd59e9626082acbecde504f2421da4cc29","gitHead":"9d14379ca60c5e3dd420a0e1f563b7ad4d3f5fe8","scripts":{"lint":"eslint */*.js *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"browserify":{"transform":["glslify"]},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","glslify":"^6.0.1","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","is-integer":"^1.0.6","webworkify":"^1.3.0","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","glsl-decibels":"^1.0.0","object-assign":"^4.1.0","negative-index":"^1.0.0","color-interpolate":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","colormap":"2.2.0","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","audio-table":"^1.0.0","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","github-cornerify":"^1.0.6","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.4.2.tgz_1489949230113_0.3265103856101632","host":"packages-12-west.internal.npmjs.com"}},"2.4.3":{"name":"gl-waveform","version":"2.4.3","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.4.3","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"ca7636fd6258dfc9ee0d79d40657e83994e4a0bb","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.4.3.tgz","integrity":"sha512-TA7uxDRbdzho1cmeIJuF1qg2WUjUwnjnkin269ga3jvPYgDsBJFLnGOCeHL+3f06P204pe4/SYjK1MIIBR+GPA==","signatures":[{"sig":"MEQCIG/bYzKxuuybL4QjO01pzI7+dgupBMHefx/TwGPlTtk/AiAY7JUbF+R6Wulc7GqfL/pT7778YynsFsB8sQAw8K5MQg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"ca7636fd6258dfc9ee0d79d40657e83994e4a0bb","gitHead":"152f1c5e895f95c9af14d047676248f8b1075ee9","scripts":{"lint":"eslint */*.js *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"browserify":{"transform":["glslify"]},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"3.7.2","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"6.2.0","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","glslify":"^6.0.1","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"1.1.0","is-integer":"^1.0.6","webworkify":"^1.3.0","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","glsl-decibels":"^1.0.0","object-assign":"^4.1.0","negative-index":"^1.0.0","color-interpolate":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","colormap":"2.2.0","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","audio-table":"^1.0.0","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","github-cornerify":"^1.0.6","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.4.3.tgz_1491876510113_0.5002564024180174","host":"packages-18-east.internal.npmjs.com"}},"2.4.4":{"name":"gl-waveform","version":"2.4.4","keywords":["waveform","time-data","audio","spectrum","spectrogram"],"author":{"name":"ΔY","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@2.4.4","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/audio-lab/gl-waveform#readme","bugs":{"url":"https://github.com/audio-lab/gl-waveform/issues"},"dist":{"shasum":"baf994f4728a1de8bf97fb59c4bd6aff4f1eb290","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-2.4.4.tgz","integrity":"sha512-SwvpQ7whgTJHMykztARDlqtyH9vjwR8vLTtZTyuq/ektmajltMgbzjTHfop6LlMZP+3if0oeU/vbM2Y9XNV7RA==","signatures":[{"sig":"MEYCIQCRRVMSiAx96gAB8X4nhJlLhVlefj/juXlHKZjKOCqMXAIhAOw6+e0lRzcObh2o9FGc19AHAnbuWcQZEIWLxucWV6sm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gl.js","_from":".","_shasum":"baf994f4728a1de8bf97fb59c4bd6aff4f1eb290","gitHead":"a70d605a799a7d529ebefd4bfa979161135a2b67","scripts":{"lint":"eslint */*.js *.js --ignore-pattern test*","test":"budo test.js","build":"browserify test.js -g bubleify | indexhtmlify | metadataify > demo/index.html","test:browser":"budo test.js -- -g bubleify"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"browserify":{"transform":["glslify"]},"repository":{"url":"git+https://github.com/audio-lab/gl-waveform.git","type":"git"},"_npmVersion":"4.6.1","description":"Draw waveform in webgl or canvas2d","directories":{},"_nodeVersion":"8.1.2","dependencies":{"mumath":"^3.3.1","get-uid":"^1.0.1","gl-util":"^1.1.3","glslify":"^6.0.1","decibels":"^1.0.1","inherits":"^2.0.1","pan-zoom":"^2.0.0","color-rgba":"1.1.0","is-integer":"^1.0.6","webworkify":"^1.3.0","canvas-loop":"^1.0.7","color-alpha":"^1.0.1","glsl-decibels":"^1.0.0","object-assign":"^4.1.1","negative-index":"^1.0.0","color-interpolate":"^1.0.2"},"devDependencies":{"bubleify":"^0.5.1","colormap":"2.2.0","app-audio":"^1.1.4","is-mobile":"^0.2.2","plot-grid":"^2.2.1","tinycolor2":"^1.4.1","audio-table":"^1.0.0","metadataify":"^1.0.2","indexhtmlify":"^1.3.0","tap-to-start":"^1.2.0","audio-context":"^0.1.0","enable-mobile":"^1.0.5","fps-indicator":"^1.0.1","insert-styles":"^1.2.1","settings-panel":"^1.8.3","github-cornerify":"^1.0.6","nice-color-palettes":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform-2.4.4.tgz_1500504909784_0.8572891044896096","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"gl-waveform","version":"4.0.0","keywords":["waveform","time-data","audio","spectrum","spectrogram","data-vis"],"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@4.0.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/a-vis/gl-waveform#readme","bugs":{"url":"https://github.com/a-vis/gl-waveform/issues"},"dist":{"shasum":"95f0138654f2f94e614598ac00890d0cadb557f4","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-4.0.0.tgz","fileCount":13,"integrity":"sha512-ypiiHHMVRuWCC/31+83s351BWYsBewjVVLwk8+zntXxCKcq4ZVCwlh2IreZvv9LJ28gzNsqUG5CYS74tonxvnw==","signatures":[{"sig":"MEUCIQC5fU5ZsCDZzgzK7BLRes4sQUVO49RuZ8muzUIXVTYdvQIgJb3MyvlxNt8L0Dts01Zr8VZQZSRY066BSVavC6Yw+6M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbc9/CCRA9TVsSAnZWagAAdOYQAKFDkMxkpZxKFDIv/5gg\n0lc5MajFIEGZdYOgmE+ihar1ZzN9uwQx6b/5XDl92rFsiF07qSBFvujdqLmO\nZnGNC9kIV5IMQOFrIl9lXiEo1F/Rhe7/8YRbCIyIFwTV2+bNc6zYLJi3Cjsl\nIWkGahl7MSOKLqMYfVVjnmeM2AFa2tkxSbQgTmwbuFAE0TV3QEg7kme3OZ1d\nog5TjqphA3VFljObuE4x6DawfdfC7Kv2xxzVQ9TwhfBhl7yDkJhmh9x07ckh\nVw1Kpq2n6qYNjhx7q4V+MmlkIM0as8dmGY5E3tSc5Lw4HaZrROcaJWosPQjp\nbYDBrdKSXLG22FIYdUxqR/gmp/S2Pq0kGr+eiChAgLn2v8mJpVHh2sinZzb+\nKNpxk/+MDNZw8q6JDC7ZGQsiJgi/Slq338iQpak+8z2mlrQI0d0nvoHPEXP2\nqYIaFEVrfAAcbOaZM2CCCGg28ZF8NMMetME8OAWl7EvilpC3G4Q1iEelzM9G\nIlu5oWwhFx+rHcWwWS+aWQPv97Sl2RSbS5azHK2/7sh93elSqLCnDF0Eh4K2\nkDo5XdYKUi0VThUhQJR7AK3NCvuynzx2oeHRCZZDUX7W3apelNBbnOU3MmmJ\naV7FD2vmRXjIer4v3B10supCBoHAxluHRSxW6z2DKwvLjI9ZXBpfu5pv5/7E\nx9SO\r\n=x28K\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"c5afdc4e62c06f8001a830b528c4d40ea36e67f6","scripts":{"lint":"eslint */*.js *.js --ignore-pattern test*","test":"budo test.js","build":"browserify example.js -g bubleify | indexhtmlify | metadataify > demo/index.html"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"browserify":{"transform":[["babelify",{"plugins":["import-to-require","transform-react-jsx"]}],"glslify"]},"repository":{"url":"git+https://github.com/a-vis/gl-waveform.git","type":"git"},"_npmVersion":"6.2.0","description":"Performant waveform renderer with WebGL","directories":{},"_nodeVersion":"8.11.1","dependencies":{"regl":"^1.3.7","to-px":"^1.0.1","gl-util":"^3.0.8","parse-rect":"^1.2.0","parse-unit":"^1.0.1","to-float32":"^1.0.0","is-plain-obj":"^1.1.0","object-assign":"^4.1.1","pick-by-alias":"^1.2.0","negative-index":"^1.0.2","color-normalize":"^1.3.0","typedarray-pool":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.4.1","glslify":"^6.2.1","babelify":"^8.0.0","bubleify":"^1.2.0","pan-zoom":"^3.2.1","react-dom":"^16.4.1","babel-core":"^6.26.3","controlkit":"^0.1.9","prettysize":"^1.1.0","fps-indicator":"^1.2.1","performance-now":"^2.1.0","react-powerplug":"^1.0.0-rc.1","periodic-function":"^1.1.4","babel-plugin-import-to-require":"^1.0.0","babel-plugin-transform-react-jsx":"^6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform_4.0.0_1534320577983_0.41723116310541486","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"gl-waveform","version":"4.1.0","keywords":["waveform","time-data","audio","spectrum","spectrogram","data-vis"],"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@4.1.0","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/a-vis/gl-waveform#readme","bugs":{"url":"https://github.com/a-vis/gl-waveform/issues"},"dist":{"shasum":"4c67bee32bd55e19d1d6358a3376141a891632d9","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-4.1.0.tgz","fileCount":14,"integrity":"sha512-M9jCdgecklWcsxMbMPpY6rxZhuMr0epQAEhOOt8OIS6Gywdl341/xzPTKv/dB+WEKBSHDi1RFIQUS1bw6kI6vw==","signatures":[{"sig":"MEUCIQCOf2ZB2tiHlaQblN9WbaIeR7SMwfvWkROod93M3/3rrgIgYgoNliiLzm/WU79uag0cvEslp4yvdt+x1iJSl2fTfzg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":52518,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbknbCCRA9TVsSAnZWagAAOZMP/05WWPsi7LA+XK23Z0vT\nBoH6qv0ETKTCBdENL4l8v4Fu4lbIlq3qMTDemH/JvOeaiO9nPKzPIxKHZpOb\nHwvU0R6Af+Il//dAxCgY4YU5ldbxxK7ERTh0nSycg3oPCSkk4AIul7UEYJjJ\niwa+BYcNogIR9vHq/C+QF1KDYkXZc7QpVwW+wp4u3BBzuidCq1TSuw3JKmp5\n2Ig27uQlyv2GGXrPFEYVxS67Eer6yU4vojGO/QUjP3GKUwmrvyN0rDnOwVhW\nMUSLc23szxZHEb1gXnQe7sdDeKzneubgWduq1Z1dFqfVrnPhdJi5vIuvzzJ9\nj9esgdomDT3+efu0VjQZVoIZefzTCTnuudQKXzLtRhHSiZh3aX9A3nfnfFsA\n72vVRITqduFR44eQwxKAAwvobhX/kw6CrMQ6368txwsDmdGIAQ7uwzUfVcEq\nJ4rPpKdJXtZ3l/4T5IQBYFDL8AKx4teQFmRvqTWuVwaPUVmQNLsPwhewB50j\nsg3YBbHhASHiYIREWID+ukB1+ZV1eb6gpCTfpz+JdKLHtJv2xp4FrUvOShS7\nHVQRGgjYmqpGOSTfzF/cfZNwAYq8dpvp++n+H7A410ZhQod8F5zAj/tLkeNM\nQSdF4xbcmBrdDyyn2aVkeJoFHAXKlyqWo/mSaGEBzZzYPY64Nt/GkzZZn6eE\nN98t\r\n=RqUL\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"83215ab75db4a7d4c1c082e78a71e69f8c59a019","scripts":{"lint":"eslint */*.js *.js --ignore-pattern test*","test":"budo test.js","build":"browserify example.js -g bubleify | indexhtmlify | metadataify > demo/index.html"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"browserify":{"transform":[["babelify",{"plugins":["import-to-require","transform-react-jsx"]}],"glslify"]},"repository":{"url":"git+https://github.com/a-vis/gl-waveform.git","type":"git"},"_npmVersion":"6.4.1","description":"Performant waveform renderer with WebGL","directories":{},"_nodeVersion":"8.11.1","dependencies":{"regl":"^1.3.7","to-px":"^1.0.1","gl-util":"^3.0.8","parse-rect":"^1.2.0","parse-unit":"^1.0.1","to-float32":"^1.0.0","is-plain-obj":"^1.1.0","object-assign":"^4.1.1","pick-by-alias":"^1.2.0","negative-index":"^1.0.2","color-normalize":"^1.3.0","typedarray-pool":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"glslify":"^6.2.1","babelify":"^8.0.0","bubleify":"^1.2.0","mobilify":"^1.0.1","pan-zoom":"^3.2.1","babel-core":"^6.26.3","controlkit":"^0.1.9","prettysize":"^1.1.0","metadataify":"^2.0.0","indexhtmlify":"^1.3.1","fps-indicator":"^1.2.1","performance-now":"^2.1.0","periodic-function":"^1.1.4","babel-plugin-import-to-require":"^1.0.0","babel-plugin-transform-react-jsx":"^6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform_4.1.0_1536325313789_0.9334860937017668","host":"s3://npm-registry-packages"}},"4.1.1":{"name":"gl-waveform","version":"4.1.1","keywords":["waveform","time-data","audio","spectrum","spectrogram","data-vis"],"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@4.1.1","maintainers":[{"name":"dfcreative","email":"df.creative@gmail.com"}],"homepage":"https://github.com/a-vis/gl-waveform#readme","bugs":{"url":"https://github.com/a-vis/gl-waveform/issues"},"dist":{"shasum":"b8ee6003ac5c767c3c24d823b62c2e94cad68375","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-4.1.1.tgz","fileCount":15,"integrity":"sha512-/gVNw82aVpHqefbHbqtX8OPlEWuEzJe2yAhaXivyy8rVXoZmb/hsBEwpcT3wBEpv6bQLvYrwUKpoH2bofnsagQ==","signatures":[{"sig":"MEUCIQCsNvlV/i7bUzCy9QQvLWNFaHtSFWw5L0KB973CkXgkPQIgPHwsO2xGKUKBtibDX2huJxXKjRVz06IkBV/UbqtTHww=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":87963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbkoUFCRA9TVsSAnZWagAAVwcP/1I/w9ztva+OJROKkeHU\nAosFWNaZB3Xqwr+E4menHLBh+nXTLNzw4iJQLifDHPZNHdHP+lDLLLQolgzW\n9FUxEmNZE1emecZW79NZ8YfOilfgrCy0H2mUJMi6zI5doVtmA94iVF4nfSma\n6EhUBSRclv+p6ain8girJVaBqI5Dyj4ccQtvYRQyjheIouMJcDP+yRB4tK19\nsMfz7KSHgaTENPzhrUKjYGGFVwMHsvH6izhjHFibjlWPoFTw5+TjAImr0Mv4\nRxzgCax058wFAWMaD0vIj+p4I8R4IH2IZfB2wv8tb+9lgaHQ7bJ4WOsGV865\nih5/VSFbVTdNPYqPzAz8v6q9Bt2KVhXqzlfKsJTHxNSMTKhqncelYxyFyuqx\n8PmEwjJOne2Ab+oxaNKTmAxjxPb9vVpvOJhqIHkL8KA80QKGK/No2z+C6h0u\nzCzqBhuHO4veFzkBQgDZfPToCEQr+URpumNnwanWJSEbvpycYLF2z7hAux+r\nuOs1QJmHyqQKV29bOoFcxnIZWehWq0Q8GC2nlfCtKl/duCuF6wsK1B2gHODd\nSn98AkGOla/+EOylZeHBlTj1fw+bumJGTNszT3wSgqs/BJUc4VhqDQ/NoUvF\nyXWHDXTjqnuK4LsA/iG7Rmcs9VasRVBtGpC1iHJkFfW1oBLzpLJ4MTsAeAcu\nmFV6\r\n=nOLE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"5026af31bd9400014df677ed061a209a2ab69b9a","scripts":{"demo":"browserify example.js -g bubleify | indexhtmlify | metadataify > demo/index.html","lint":"eslint */*.js *.js --ignore-pattern test*","test":"budo test.js","build":"browserify index.js -s gl-waveform -x regl -x pick-by-alias -x object-assign -x negative-index -x weak-map -x parse-rect -x gl-util -x is-plain-obj -x typedarray-pool -x color-normalize -x is-negative-zero -x to-float32 -x parse-unit -x to-px -t glslify -g bubleify > dist/index.js"},"_npmUser":{"name":"dfcreative","email":"df.creative@gmail.com"},"browserify":{"transform":[["babelify",{"plugins":["import-to-require","transform-react-jsx"]}],"glslify"]},"repository":{"url":"git+https://github.com/a-vis/gl-waveform.git","type":"git"},"_npmVersion":"6.4.1","description":"Performant waveform renderer with WebGL","directories":{},"_nodeVersion":"8.11.1","dependencies":{"regl":"^1.3.7","to-px":"^1.0.1","gl-util":"^3.0.9","weak-map":"^1.0.5","parse-rect":"^1.2.0","parse-unit":"^1.0.1","to-float32":"^1.0.0","is-plain-obj":"^1.1.0","object-assign":"^4.1.1","pick-by-alias":"^1.2.0","negative-index":"^1.0.2","color-normalize":"^1.3.0","typedarray-pool":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"glslify":"^6.2.1","babelify":"^8.0.0","bubleify":"^1.2.0","mobilify":"^1.0.1","pan-zoom":"^3.2.1","babel-core":"^6.26.3","controlkit":"^0.1.9","prettysize":"^1.1.0","metadataify":"^2.0.0","indexhtmlify":"^1.3.1","fps-indicator":"^1.2.1","performance-now":"^2.1.0","periodic-function":"^1.1.4","babel-plugin-import-to-require":"^1.0.0","babel-plugin-transform-react-jsx":"^6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform_4.1.1_1536328964969_0.29475463466962637","host":"s3://npm-registry-packages"}},"4.1.2":{"name":"gl-waveform","version":"4.1.2","keywords":["waveform","time-data","audio","spectrum","spectrogram","data-vis"],"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@4.1.2","maintainers":[{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/a-vis/gl-waveform#readme","bugs":{"url":"https://github.com/a-vis/gl-waveform/issues"},"dist":{"shasum":"380fc2c2aa824abae8bd0735e0fa7b07871d13f8","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-4.1.2.tgz","fileCount":22,"integrity":"sha512-JMk+6ujvYusS24LRZP5lMaYeGg/L8MlHghSX8i42+r2C15YsGL0KQJMjz8wyNtMFjlYRGKTWwpo74ThqxcPyog==","signatures":[{"sig":"MEUCIBrQwrGyfMuzVBnA0zkMjOjpL7s5Hv+AN1vz5hFfceJPAiEAjgbF7aVgiwknqAEj+rdvAQeN+J3HrDHOdTP4b5uYpGo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122771,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCUcRCRA9TVsSAnZWagAAUVQP/RJov5NksPUSAvoj9Eyk\nYv1Y57JtFl9jyNPa14+JFWlby4DKQYhdWY1yf4Wqt9xEjD4veOniOJUjSg+u\nsvwCsYDjUxg0ivR7/Q37J0RCy5opdPcmwOOBTkkuvYSeq8J+DPkMVOGL5FN4\neaOCAZsK8JiEPgdcs7hacOZTS8S/Pl8Hw3RBcPj9i1wPokHtlOIQSu7ZdTxN\njMNdwNcCZcSa4wIusboNHcLadl1As9ioFhfwO79eK4rFEDH2Lr/xx9QQKyji\nuuK40XsS7ZQBEG2Nj45ju1xIx+voumRWamY14DTFlq3Um+o84pQ8eu8WzcF4\n27Ajbk+Jc/2KalwlhCOgW0R1kFEoSSje2lATWPM5am7gMCcb9w7/HViHbyfw\nx7UVLAAxazS2GG416F/NOlStHJw8LEF9IrQ2rQaW9E44odlnq9IcEQUPvFHm\n3eerHf8bkf16pC+pFkf+lvzls+f54X4PoQI53Qcd8lARQlNXH6zB0hwx1jSS\ni5zjSV/VkhenlOG54YAmX5Vi82GtpMCrJbruQf5ceqqNvEt4yPfOFmCUmUyj\nEid/FfXOwx7XoOi3mIxgWcH/+ia35ohdEqVc/LJmLS28y61N8U0ihilQB6cw\nvHcATrA0Hkjdg52AwRZ//mW4ecmYm2pd7UuX6rahzWX5Gqd7Z+HHvfR7cUpm\nPwAO\r\n=NEFW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","gitHead":"44f1816c289677c8125ad784738188c5622838e0","scripts":{"lint":"eslint */*.js *.js --ignore-pattern test*","test":"node test","build":"rollup -c rollup.config.js","build-demo":"browserify demo/index.js -g | indexhtmlify | metadataify > demo/index.html","test-browser":"budo test -- -t --transform-key=test","prepublishOnly":"npm run build"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"browserify":{"test":["glslify"]},"repository":{"url":"git+https://github.com/a-vis/gl-waveform.git","type":"git"},"_npmVersion":"6.4.1","description":"Performant waveform renderer with WebGL","directories":{},"_nodeVersion":"8.11.1","dependencies":{"lerp":"^1.0.3","regl":"^1.3.7","to-px":"^1.1.0","offset":"0.0.1","gl-util":"^3.1.0","weak-map":"^1.0.5","parse-rect":"^1.2.0","parse-unit":"^1.0.1","to-float32":"^1.0.0","is-plain-obj":"^1.1.0","object-assign":"^4.1.1","pick-by-alias":"^1.2.0","negative-index":"^1.0.3","color-normalize":"^1.3.0","typedarray-pool":"^1.1.0","flatten-vertex-data":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"gl":"^4.1.1","pxls":"^2.3.1","glslify":"^6.4.1","pan-zoom":"^3.4.0","@zeit/ncc":"^0.1.16","controlkit":"^0.1.9","prettysize":"^1.1.0","@babel/core":"^7.1.6","image-equal":"^4.3.0","seed-random":"^2.2.0","image-output":"^2.4.0","image-pixels":"^2.2.0","fps-indicator":"^1.3.0","performance-now":"^2.1.0","audio-oscillator":"^3.0.1","@babel/preset-env":"^7.1.6","periodic-function":"^1.1.4","rollup-plugin-babel":"^4.0.3","browserify-single-file":"^0.3.0","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-node-resolve":"^3.4.0","rollup-plugin-browserify-transform":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform_4.1.2_1544111889044_0.5221716515377333","host":"s3://npm-registry-packages"}},"4.1.3":{"name":"gl-waveform","version":"4.1.3","keywords":["waveform","time-data","audio","spectrum","spectrogram","data-vis"],"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@4.1.3","maintainers":[{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/a-vis/gl-waveform#readme","bugs":{"url":"https://github.com/a-vis/gl-waveform/issues"},"dist":{"shasum":"95373eb52807bf91f52e2346321fa13c007efbfe","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-4.1.3.tgz","fileCount":22,"integrity":"sha512-jKtRyTXGfQKamhgWQ522ylL8sBanm2TqajTaTT9o+RJL89iI9tHwJtozDsV2vLV38KhGy4KM2P+7R1EoIglWYw==","signatures":[{"sig":"MEYCIQDSbza/zyKw2N1WCxCdaMIfyK1omhnr1hwmLGDf2HjNUAIhANYeELnp0YhPwKQMima1g5npFc0iOQ/TAELe1mn+38LO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCWDUCRA9TVsSAnZWagAAgooP/1RP0uNYP8A6Xx5CFFNX\nETIcX4WN4kwqUBXH1/O2Z6f8pHCqONSI9rKWDtFIr+iyYBquZZzSvf12kQIk\nrFHV8i3FrAPH72Cd0HIhvV3UuLPcDQBVX/8HqP7EKtdZ6PKuuj45TL9/gEVo\nIEtJdtaZoCM9mzfaYym7trRGTEQoQ++AX1tgc4BVcJLE9oaVVsuCfM4aSSmR\nNcYczHBfcbfaVgJRRlYw8XbGgCOKu5R15PDvALeke47DV1L/uS7SIMQF2mWW\nwwPcOa4Pl1PS8JxNCVGojQoAucRQgWfXgxDKyt7b1CPjax3lclxo4abGR3HM\nO1jlVXJnP9OD6Uv0u628nuVAhI/6mtwpDMnlwLK/2YGay6jPXGCqxVKLU0bs\nJWBsbNb5jBClFWAmPZXm0IYtHGBFX1podi/c/0Cdu5skOAwkhjx/7rQtRCkd\nVif1OjSKvxGbtc4krAG+8R+AQzE7k0lok4zhp31rkpNswkhTJn977EVBQTaX\nYN8BDUGrhv2sYcQKhl5G/E3x5vYh/+kxfUegrILl3Zmc1WDBrCMju/3vaBgK\nTs5+56UB3iUtq2ZtbI4vvS5dPwF3TBalFZg6UaC3ZNvOcaox5vjrTVgIhliE\nIJeyBZ/+GAw9qCInSLLQn8Ym8JNct1V2NYpajVO/tZjfcV9HGNx7T1nrdM02\neO0s\r\n=TFal\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","gitHead":"b97f93bfc089f96b1632b53ea3c421fc51f5ee98","scripts":{"lint":"eslint */*.js *.js --ignore-pattern test*","test":"node test","build":"rollup -c rollup.config.js","build-demo":"browserify demo/index.js | indexhtmlify | metadataify > demo/index.html","test-browser":"budo test -- -t --transform-key=test","prepublishOnly":"npm run build"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"browserify":{"test":["glslify"]},"repository":{"url":"git+https://github.com/a-vis/gl-waveform.git","type":"git"},"_npmVersion":"6.4.1","description":"Performant waveform renderer with WebGL","directories":{},"_nodeVersion":"8.11.1","dependencies":{"lerp":"^1.0.3","regl":"^1.3.7","to-px":"^1.1.0","offset":"0.0.1","gl-util":"^3.1.0","weak-map":"^1.0.5","parse-rect":"^1.2.0","parse-unit":"^1.0.1","to-float32":"^1.0.0","is-plain-obj":"^1.1.0","object-assign":"^4.1.1","pick-by-alias":"^1.2.0","negative-index":"^1.0.3","color-normalize":"^1.3.0","typedarray-pool":"^1.1.0","flatten-vertex-data":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"gl":"^4.1.1","pxls":"^2.3.1","glslify":"^6.4.1","pan-zoom":"^3.4.0","@zeit/ncc":"^0.1.16","controlkit":"^0.1.9","prettysize":"^1.1.0","@babel/core":"^7.1.6","image-equal":"^4.3.0","metadataify":"^2.0.0","seed-random":"^2.2.0","image-output":"^2.4.0","image-pixels":"^2.2.0","indexhtmlify":"^1.3.1","fps-indicator":"^1.3.0","performance-now":"^2.1.0","audio-oscillator":"^3.0.1","@babel/preset-env":"^7.1.6","periodic-function":"^1.1.4","rollup-plugin-babel":"^4.0.3","browserify-single-file":"^0.3.0","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-node-resolve":"^3.4.0","rollup-plugin-browserify-transform":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform_4.1.3_1544118483974_0.10767298303874706","host":"s3://npm-registry-packages"}},"4.1.4":{"name":"gl-waveform","version":"4.1.4","keywords":["waveform","time-data","audio","spectrum","spectrogram","data-vis"],"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@4.1.4","maintainers":[{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/a-vis/gl-waveform#readme","bugs":{"url":"https://github.com/a-vis/gl-waveform/issues"},"dist":{"shasum":"a0baa8c4b6862a58e33e367127f69cd5d205cf29","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-4.1.4.tgz","fileCount":16,"integrity":"sha512-CmioL1pmwfYcgXgmk73oo2uA5i+3P04AXFLhVowIYHHiYi6JLNVtOOql944BQ1SLT2Itr3EVmuOmM810I2dHuA==","signatures":[{"sig":"MEYCIQC0zKkZw38Kc1c0vNozZpK/xXw5daGIbcf1uTWBQv1vFgIhAJdhVJfEDQTyZ/gPe7avSuJg+yFewPFcovRrghoJClRp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":86604,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcDwRPCRA9TVsSAnZWagAAvH0P/0RJXDw05WFURcXDveNI\nX1V+4P+PPXbmZawXMbJd74znbZomn/J2bDgILByb2noBGFYZeODwvaQviznM\nzSoa8xFckYQMUDHWY8Gij1Y80vKa7Qag4W9LZ+W29nyxg98mIVpKKgDFcqo5\nMCy6zJfF0qCQwAHD17sWaoz+IJdx4odExqCsjl1svqELx+qLmyNR/RszlDXS\n/U8DJ/xbaZTPA5SKJCcF8YtZAlkY91kdzYLLEe8Jk+gBK4/Tgp2hI97o+O27\n0Ld2MV+chPiNuMrVbzpmvYLUR7P2Yc5Qb6p33POeN3rx3uKCly1X6e1C23Qx\nmpADTb+y+kRkQS3dy2CQGLTQAg2pDf19VVIgeTm0PCbzYAl5FaaMHjbk9kAi\nI/CXr0+q2tqydio7/YDYNlQ6fCRPfhuc6EwBhx5Gmy1CAGO/l9Mg4deMLM+6\nalP4eA4UB8Qf9oFt5ea+QiybTB1AEaEGv+DQ1MUkS5vALWd+3MXuc+ecMgES\ntEMcDDGtkjxL1TkKfQtbyA0QNkYYKQAb6d/qVol7g2mYVKXhPOFaqY2mYlXw\n22hr3HvUgRMC+APBxmbss2ty5+NGcV1cNszn6I30zu35fcbhdh7fxHlHQ18t\nxz8paH+xtOlN17+/Gy+uBmQMpd7dy7YE5oIE2PYH27rzJc9Vy95sMicmTwnb\nzEQI\r\n=kAkn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","gitHead":"c005c9880d77407df6ae57a47faa343784b087d9","scripts":{"lint":"eslint */*.js *.js --ignore-pattern test*","test":"node test","build":"rollup -c rollup.config.js","build-demo":"browserify demo/index.js | indexhtmlify | metadataify > demo/index.html","test-browser":"budo test -- -t --transform-key=test","prepublishOnly":"npm run build"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"browserify":{"test":["glslify"]},"repository":{"url":"git+https://github.com/a-vis/gl-waveform.git","type":"git"},"_npmVersion":"6.4.1","description":"Performant waveform renderer with WebGL","directories":{},"_nodeVersion":"8.11.1","dependencies":{"lerp":"^1.0.3","regl":"^1.3.7","to-px":"^1.1.0","offset":"0.0.1","gl-util":"^3.1.0","weak-map":"^1.0.5","parse-rect":"^1.2.0","parse-unit":"^1.0.1","to-float32":"^1.0.0","is-plain-obj":"^1.1.0","object-assign":"^4.1.1","pick-by-alias":"^1.2.0","negative-index":"^1.0.3","color-normalize":"^1.3.0","typedarray-pool":"^1.1.0","flatten-vertex-data":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"gl":"^4.1.1","pxls":"^2.3.1","glslify":"^6.4.1","pan-zoom":"^3.4.0","@zeit/ncc":"^0.1.16","controlkit":"^0.1.9","prettysize":"^1.1.0","@babel/core":"^7.1.6","image-equal":"^4.3.0","metadataify":"^2.0.0","seed-random":"^2.2.0","image-output":"^2.4.0","image-pixels":"^2.2.0","indexhtmlify":"^1.3.1","fps-indicator":"^1.3.0","performance-now":"^2.1.0","audio-oscillator":"^3.0.1","@babel/preset-env":"^7.1.6","periodic-function":"^1.1.4","rollup-plugin-babel":"^4.0.3","browserify-single-file":"^0.3.0","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-node-resolve":"^3.4.0","rollup-plugin-browserify-transform":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform_4.1.4_1544488014805_0.35950388854038606","host":"s3://npm-registry-packages"}},"4.2.0":{"name":"gl-waveform","version":"4.2.0","keywords":["waveform","time-data","audio","spectrum","spectrogram","data-vis"],"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@4.2.0","maintainers":[{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/a-vis/gl-waveform#readme","bugs":{"url":"https://github.com/a-vis/gl-waveform/issues"},"dist":{"shasum":"2900fb6243ff23045e3141bfdf73f29b8258bab6","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-4.2.0.tgz","fileCount":16,"integrity":"sha512-G6YUsVTRKrnQVa2kr3PMyvWpsnDR4DM41k6ITQPMZKmf5uD6PrkAHCSy382WSLLN+NkJZzFAULz7xgvr5CfgFA==","signatures":[{"sig":"MEUCIQCyT122p9A7wWgKUqG2/g0hjxLwyEUBujKU/AHtqDF/VgIgchVUrXH4A5VBGJY8bO+CsSzAMpi6VqGbLJQ8i/DYd+4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":115964,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcN86zCRA9TVsSAnZWagAAfI4P/15M/0YYnsBZLLeUV7qa\nvtUgTImIjw6+3+QAlTUFAx2VE8Rk4ZHKvN0qztyGfuSTX/BlIljmGOekK131\nUvSYtyfkUCIIAOG8kEiW+j19M+ewNFo+jAzW01oWlclwEYXfhPYDtYNm0iNx\nrrTZY7b0zu4WHFiISoCtuioSanVEtBgph1gN1jY12jDH1b/Wxoe+SvmFYO4l\nRNqzz4RgBUv2kmW8mZiluU5oYxr+ZS6pgI+CuNKAvN3ZF5saV0zuiOzEZCqB\nl1PJQPgztuy1CwCPyaBDyx/pKk/+iChxmMqM56CK8MMzaPq+hTOwPGgLi4c0\nZLnsblhsCeCb/Hqe1G+KhARUz5jfWdrY16C75ybpebPXuJhznbMLyvA14is3\nSi+2gPz93zhh0/kjvHb+/gOOBv3asyMytFy2umGSKHBeaxP+gnzVniKIG20I\nEOG4qvl3TRKBdTx/MjtIdZzv2SgGbnTMRQlKIbRlrsOxbQNAK9KdqXNJtAbB\n3sd1N0sU2/SIlB57lb0uBUYZrkabjX+mIkWJJVY/D6LXxuphJF5XkA5xJG83\nBXOV74sYWViEb2KbvPTsnBuzKKcvbYo2Fr+2IS3/ie1wF35006mc1aT+SALb\nMM4uCxQvMQIacs6f6ozEMylcK9SNEQ9KBFo7jT9uSkteGIp53CNwZgVX6B6n\nZRvl\r\n=MryG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/gl-waveform.js","module":"dist/gl-waveform.mjs","source":"index.js","gitHead":"1dfe03e3cff82deb5b5b5e6ee358c73ee35e2074","scripts":{"demo":"budo demo -- --transform-key=test","lint":"eslint */*.js *.js --ignore-pattern test*","test":"node test","build":"rollup -c rollup.config.js","build-data":"browserify example/data.js | indexhtmlify | metadataify > example/data.html","build-multi":"browserify example/multi.js | indexhtmlify | metadataify > example/multi.html","test-browser":"budo test -- -t glslify -p tsify","prepublishOnly":"npm run build"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"umd:main":"dist/gl-waveform.umd.js","repository":{"url":"git+https://github.com/a-vis/gl-waveform.git","type":"git"},"_npmVersion":"6.4.1","description":"Performant waveform renderer with WebGL","directories":{},"_nodeVersion":"8.11.1","dependencies":{"lerp":"^1.0.3","regl":"^1.3.11","to-px":"^1.1.0","offset":"0.0.1","gl-util":"^3.1.0","on-idle":"^3.1.4","weak-map":"^1.0.5","mirrorprop":"^1.0.1","parse-rect":"^1.2.0","parse-unit":"^1.0.1","to-float32":"^1.0.0","is-plain-obj":"^1.1.0","object-assign":"^4.1.1","pick-by-alias":"^1.2.0","negative-index":"^1.0.3","color-normalize":"^1.3.0","typedarray-pool":"^1.1.0","flatten-vertex-data":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"gl":"^4.1.1","pxls":"^2.3.1","tsify":"^4.0.1","glslify":"^6.4.1","pan-zoom":"^3.4.0","@zeit/ncc":"^0.1.16","is-travis":"^2.0.0","controlkit":"^0.1.9","prettysize":"^1.1.0","typescript":"^3.2.2","@babel/core":"^7.1.6","image-equal":"^4.3.1","metadataify":"^2.0.0","microbundle":"^0.8.3","seed-random":"^2.2.0","almost-equal":"^1.1.0","image-output":"^2.4.0","image-pixels":"^2.2.0","indexhtmlify":"^1.3.1","fps-indicator":"^1.3.0","performance-now":"^2.1.0","audio-oscillator":"^3.1.1","@babel/preset-env":"^7.1.6","periodic-function":"^1.1.4","rollup-plugin-babel":"^4.0.3","browserify-single-file":"^0.3.0","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-node-resolve":"^3.4.0","rollup-plugin-browserify-transform":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform_4.2.0_1547161266988_0.31771735829548065","host":"s3://npm-registry-packages"}},"4.3.0":{"name":"gl-waveform","version":"4.3.0","keywords":["waveform","time-data","audio","spectrum","spectrogram","data-vis"],"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@4.3.0","maintainers":[{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/a-vis/gl-waveform#readme","bugs":{"url":"https://github.com/a-vis/gl-waveform/issues"},"dist":{"shasum":"99c5757697a2cc1299309ae8f866056c38966f0b","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-4.3.0.tgz","fileCount":15,"integrity":"sha512-PpCB0vwEGrBSz4AY5ZeLZ0E8O3myipKDDCrRwD9Dz16TA5A3JOZHvNyjNcYbDtGerSTXspTTwXCK35Z81ncP4w==","signatures":[{"sig":"MEQCICOwR4tLoSbqUbMVLhb+kGxHuuYPA0ff3ZjjL78ElZPGAiBR6U95y0TR1vhMBTZlDxD4d5JfbCps8oLVRGz3Bqz1Ag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":114413,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcN9GWCRA9TVsSAnZWagAABIMP/RR/bF9kRDLf/DK429Wm\nmB+ZfPEfs+R8dT6rTMO8uuwE6+xOtwMNKCqBYp2Z6sSC/hb3hiLRP6zO7i5c\nynv5815+cw2q7I7TeoVV+0uj/WsLGJKdzZdzvaFnBuZzjUcPhbzjmNyB4FAY\ndHoSW8cLIdvcgEHwEZMh282XQd+C/7DHxGcuRMG7bsTGeiiUkuOHw9umUNXk\nn5oCV97l7TE8fW5+uUsiNRZeU0AX0aATMhePyrNZlVZTutSNbBGvFEv5gBPs\nta5Ql5hF47CqEuiDwrH2XEA7zFbNq6u+eg0rjI3hRxWXdhaPoxBgr8sUhCbN\npKqwNjoX4oPAgf0xRp/9APz3ioQqCii9pbl36QrJ+m964OHAtotFzhnejqOC\nymlibn5Di1uVrKe9OyUq3tnsfVoVcWBFide99/+4mPI32DiWU75pOFePi/LH\nfFbykU3shS6cbiK1lbin1qweF6IcG+bzH79H4ADujn1mWPj6UpZcurXKZ08F\nAX8C9C2mPf4fcApt+WfO/MQmZ/dFxX217JQ/B64WE6laDPSRAPQQbmP7dEev\neBKTq1OWH5lmHSGjY87yWCerodfFAN/dBc1skTxY18tOVhVBaWGFIRY9Fbi2\n55So6e9IN9R0jEpgqQXiN97C43y4Buk5yw120/SBiYVgV2YdLue9sZsd71pM\nJ5PN\r\n=ZR4L\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"dist/gl-waveform.mjs","source":"index.js","gitHead":"6c58bd95513ea66a98c6a03bb22d75916a472980","scripts":{"demo":"budo demo -- --transform-key=test","lint":"eslint */*.js *.js --ignore-pattern test*","test":"node test","build-data":"browserify example/data.js | indexhtmlify | metadataify > example/data.html","build-multi":"browserify example/multi.js | indexhtmlify | metadataify > example/multi.html","test-browser":"budo test -- -t glslify -p tsify"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"umd:main":"dist/gl-waveform.umd.js","repository":{"url":"git+https://github.com/a-vis/gl-waveform.git","type":"git"},"_npmVersion":"6.4.1","description":"Performant waveform renderer with WebGL","directories":{},"_nodeVersion":"8.11.1","dependencies":{"lerp":"^1.0.3","regl":"^1.3.11","to-px":"^1.1.0","offset":"0.0.1","gl-util":"^3.1.0","on-idle":"^3.1.4","weak-map":"^1.0.5","parse-rect":"^1.2.0","parse-unit":"^1.0.1","to-float32":"^1.0.0","is-plain-obj":"^1.1.0","object-assign":"^4.1.1","pick-by-alias":"^1.2.0","negative-index":"^1.0.3","color-normalize":"^1.3.0","typedarray-pool":"^1.1.0","flatten-vertex-data":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"gl":"^4.1.1","pxls":"^2.3.1","glslify":"^6.4.1","pan-zoom":"^3.4.0","is-travis":"^2.0.0","controlkit":"^0.1.9","prettysize":"^1.1.0","image-equal":"^4.3.1","metadataify":"^2.0.0","seed-random":"^2.2.0","almost-equal":"^1.1.0","image-output":"^2.4.0","image-pixels":"^2.2.0","indexhtmlify":"^1.3.1","fps-indicator":"^1.3.0","performance-now":"^2.1.0","audio-oscillator":"^3.1.1","periodic-function":"^1.1.4"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform_4.3.0_1547162006025_0.6821823671572869","host":"s3://npm-registry-packages"}},"4.3.1":{"name":"gl-waveform","version":"4.3.1","keywords":["waveform","time-data","audio","spectrum","spectrogram","data-vis"],"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@4.3.1","maintainers":[{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/a-vis/gl-waveform#readme","bugs":{"url":"https://github.com/a-vis/gl-waveform/issues"},"dist":{"shasum":"018182bb95ebed31ee904b689cf4301397989671","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-4.3.1.tgz","fileCount":14,"integrity":"sha512-IT31g8iMZZW9+7I4nMV1/hamevcgUNYAcXIgaI+U9+NNnIaw4KerpdCO1phlYFdkuUoV0bcZIokqweKWncd4wQ==","signatures":[{"sig":"MEYCIQCwppReEUumbrwFlfUDBetVEY1ipVM0rLw9N/DC+bwKPQIhAIajrGKh0kY3I1+L9U9Ih1aPRUorIUzqy+XlEB/jYa51","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55044,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcOS7RCRA9TVsSAnZWagAAIgoP/0t3NvmNSxTjlc8ueRZE\nqZbcI5d6xuSf3nypzlbkw3Q7D0rzcSypteNJpuxnzpUL+HmF+IlUaDI/e4cT\nTQronzLfodoIH8A8wtKPOuTCBu0+EQt+qpVhm9wCEgeO0rMwpy9KZvfnRp16\ntQriPtEpaE7W0RqokgNr3beCciDYu2LZ7DX1irKLbg6bejmSjVWb5rKAaL9G\nHACnm/axLh1hl3sBafEmOVwWGbTTeyKa5ilUBMVBIBpWgnMMZzga/+AJFSs0\naUaH+TFEJMNYf6ZJsEuNIL8VGn7vRJYL7sX+8cqWar/8t6UxP8nSIiOGCBlw\n9JSp45XTbyGgWxP9bF/MjN3QbL29OpPifGmAzCLKvMyhXiAE6muYvflF58a1\n4Ow4WSJ/397GD95m7OngSYnr3TgJ7jaVtJjexcw+O5SrML5RmEpEAhM8HuGJ\nIMVkoHdTOvF1kPO44I+69z5jFRRzZuWOUiBCpNlt6ZFEadWw8kSTpML3W9IN\noY8pPR6RYjlilhoL+K+KgORl7ghAa8ynEpg6BcXOYmccJ/MCR2i4UJzusZIh\nn8ECrvea1vSj6NmZsXTOSs3duXOtpCcXyb5A9Ib2pXlgFTj/68Mrx6YTTOZA\nLfXmtqGxDv4m/V0jyL1PLCg0oma0UNbnMzO6/Jn+0dlmaN1ab23lpMmv6bQh\nRlSn\r\n=wyzj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"dist/gl-waveform.mjs","source":"index.js","gitHead":"5c76a1f6ffd25da813872f1f78db6eff1fcc7eac","scripts":{"demo":"budo demo -- --transform-key=test","lint":"eslint */*.js *.js --ignore-pattern test*","test":"node test","build-data":"browserify example/data.js | indexhtmlify | metadataify > example/data.html","build-multi":"browserify example/multi.js | indexhtmlify | metadataify > example/multi.html","test-browser":"budo test -- -t glslify -p tsify"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"umd:main":"dist/gl-waveform.umd.js","repository":{"url":"git+https://github.com/a-vis/gl-waveform.git","type":"git"},"_npmVersion":"6.4.1","description":"Performant waveform renderer with WebGL","directories":{},"_nodeVersion":"8.11.1","dependencies":{"lerp":"^1.0.3","regl":"^1.3.11","to-px":"^1.1.0","offset":"0.0.1","gl-util":"^3.1.0","on-idle":"^3.1.4","weak-map":"^1.0.5","parse-rect":"^1.2.0","parse-unit":"^1.0.1","to-float32":"^1.0.0","is-plain-obj":"^1.1.0","object-assign":"^4.1.1","pick-by-alias":"^1.2.0","negative-index":"^1.0.3","color-normalize":"^1.3.0","typedarray-pool":"^1.1.0","flatten-vertex-data":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"gl":"^4.1.1","pxls":"^2.3.1","glslify":"^6.4.1","pan-zoom":"^3.4.0","is-travis":"^2.0.0","controlkit":"^0.1.9","prettysize":"^1.1.0","image-equal":"^4.3.1","metadataify":"^2.0.0","seed-random":"^2.2.0","almost-equal":"^1.1.0","image-output":"^2.4.0","image-pixels":"^2.2.1","indexhtmlify":"^1.3.1","fps-indicator":"^1.3.0","performance-now":"^2.1.0","audio-oscillator":"^3.1.1","periodic-function":"^1.1.4"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform_4.3.1_1547251408400_0.025563806288456004","host":"s3://npm-registry-packages"}},"4.3.2":{"name":"gl-waveform","version":"4.3.2","keywords":["waveform","time-data","audio","spectrum","spectrogram","data-vis"],"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@4.3.2","maintainers":[{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/a-vis/gl-waveform#readme","bugs":{"url":"https://github.com/a-vis/gl-waveform/issues"},"dist":{"shasum":"e51a5a48bd996597fc0c362080d38946f2a8dbb6","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-4.3.2.tgz","fileCount":14,"integrity":"sha512-LUQqXdGM9HnpHJqLvoLPeOKdLedHegCFvYiou1jgyJ7aiUVgRtVTVD4C6uE+J5P57SzqvAt+X7WPmU+JktlFhQ==","signatures":[{"sig":"MEUCIC3a+po1XZc0wTryPNtqizixiU4aWdsKv5ZpOIaJgAlCAiEAm47XjdqmokLVWCYPU0OTQc9KDvU66YXrDznD84+UQPk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcOS+zCRA9TVsSAnZWagAA9wMP/2Maiwul1JA+QCaGKik7\nc1ZgDgqcL3Ghpjuc5kVVJImGWFGvYudimixY1VREsud22d+0GOQJhHUXikHh\nx+qucUoV/wssNiSPLzLFl1z/GsJCfwje3fFxNV0KYEzv1dLk8+fU+dz8qQih\nZqYNqIYY4Rhj6lIxSdHFO6aL1b7QYJ9dLglIXd8FD8lAuiklwiqMLB1Tp95f\nTh9GKjRcMXHHNR0iiXf8uktlDg15pvHX/tYFr/7HpgAWAMs/1kVB7kkLnqYB\nle4GPf2hgdic7+NWe8vu0l4VEnJ4fkj5+uomAR95Pl4Qs2HzzSatMGeq8ZHq\nV+nu4mW0gbbmOu/Cc+huKd/tFr9uSa7aUIpSSYJKNGMarwQtTlsBw6VJ18yO\nCs4pnl1wg0yabM1EQbwNQfC280X6O9XDp7/Hbk87crtAXxbzzYsIMrAhPmev\ntF5NgCrrl5/z+GyvdIfzA2KFzjoZLJq7pe2V2BFh9LjfElk+ploYTFHD1byV\nFHzR1UuQEuiIhI2eAqYylupUGgi552lQY44BpbuupzzW8qWLsaPhVa9IH2Tl\n5IENCs7xm8OSUpPuL5WdMnuXURbCoIKx9u1g8nJFjJvyjbc69iE+CR8J6dXO\nrm4VQXCIeQiZtQSuonZ9s+n2fRCT2nrwbvqA+K5PtVSLpiCuLNyADpiaaiI/\nJQQz\r\n=Ec8F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"dist/gl-waveform.mjs","source":"index.js","gitHead":"e949492ff2155eb9e52a9cb9bf8a823f408423b5","scripts":{"demo":"budo demo -- --transform-key=test","lint":"eslint */*.js *.js --ignore-pattern test*","test":"node test","build-data":"browserify example/data.js | indexhtmlify | metadataify > example/data.html","build-multi":"browserify example/multi.js | indexhtmlify | metadataify > example/multi.html","test-browser":"budo test -- -t glslify -p tsify"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"umd:main":"dist/gl-waveform.umd.js","browserify":{"transform":["glslify"]},"repository":{"url":"git+https://github.com/a-vis/gl-waveform.git","type":"git"},"_npmVersion":"6.4.1","description":"Performant waveform renderer with WebGL","directories":{},"_nodeVersion":"8.11.1","dependencies":{"lerp":"^1.0.3","regl":"^1.3.11","to-px":"^1.1.0","offset":"0.0.1","gl-util":"^3.1.0","glslify":"^7.0.0","on-idle":"^3.1.4","weak-map":"^1.0.5","parse-rect":"^1.2.0","parse-unit":"^1.0.1","to-float32":"^1.0.0","is-plain-obj":"^1.1.0","object-assign":"^4.1.1","pick-by-alias":"^1.2.0","negative-index":"^1.0.3","color-normalize":"^1.3.0","typedarray-pool":"^1.1.0","flatten-vertex-data":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"gl":"^4.1.1","pxls":"^2.3.1","pan-zoom":"^3.4.0","is-travis":"^2.0.0","controlkit":"^0.1.9","prettysize":"^1.1.0","image-equal":"^4.3.1","metadataify":"^2.0.0","seed-random":"^2.2.0","almost-equal":"^1.1.0","image-output":"^2.4.0","image-pixels":"^2.2.1","indexhtmlify":"^1.3.1","fps-indicator":"^1.3.0","performance-now":"^2.1.0","audio-oscillator":"^3.1.1","periodic-function":"^1.1.4"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform_4.3.2_1547251634743_0.5961114375512511","host":"s3://npm-registry-packages"}},"4.3.3":{"name":"gl-waveform","version":"4.3.3","keywords":["waveform","time-data","audio","spectrum","spectrogram","data-vis"],"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","_id":"gl-waveform@4.3.3","maintainers":[{"name":"dy","email":"df.creative@gmail.com"}],"homepage":"https://github.com/a-vis/gl-waveform#readme","bugs":{"url":"https://github.com/a-vis/gl-waveform/issues"},"dist":{"shasum":"06cc670c8b13e6850940631a4debb011466efcf9","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-4.3.3.tgz","fileCount":14,"integrity":"sha512-7mluMNsh1rAHLWy9Ek9nalaJ4i2ptAca5TSr52DcwMqrN9CRFxeg02xstP/1hy1wBW5hONb7GOl8PKanTs7XSA==","signatures":[{"sig":"MEUCIHTcnkHQu80FpeKc09AYVRlCkDx+evSlLMY496Pp8om3AiEAmw+dKyO+kZGnqIO1ToGhIooFIkrpVZTXpmZ5OAuj0IY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcOTBKCRA9TVsSAnZWagAAoOIP/2EA/W4+AAfOzLFO7Wbt\nNZ2mqsxjuM9eGZ7X9lhpFO3grI1Ozj073s5U4i77QPkl+9VnSlbrOvt6IuyM\n03lYXwIjDE/RlO5r5HaIHpom/yYRBdj5vcZlLtJuwkx9bOTB78+A5/7lq+9Q\nkCBuvp7J3aLSjpaa/roHSVGrQ80c47UYjuAZ6VDbP0ZbLZAJsNP/VpOYlyIQ\nmrQ6BlQ8Sp0szeElx0mfN4u5L5xTNVYYF19hIeqh3FCj8j+xtssI7lsspnny\nYchX6NaA1JfuGbsayWY7lTPDahzQmzSHQMqjeWy6BtMzcsAK7kXhu80eRWgc\nJNxYlAvUtwBXnXwxgAsLhLIBgDU61fsHteV9KefgvSydqQhJZJNgDhkLJAVT\nTHXrV7PnWMG7zRVrRrxKAosOlaS5pKyLb0qVVipL2aln1GiVSfCwlHLcVDLC\n0D8AHDJ9AUfb0TvwYUucM7KMRDj5hjk5c0T7vRiL1MCzkpQYicjOjatdQXEd\nAao2OMFGvDfGV6Se5vo9bXY1ULczSkKZwP7rY4jjrZis3AL3yTBS1K0HnR9h\nb4002XmVl+CNdW1PM0QTEM+6KE6Pkvos2dMUKuhlOFlVj7MhYLitmQYiHRxD\nl9QURFbieivp0eKmn6W8AWT5Q8SHZDxPyNlpWvHNg8Bd+ANNFgGTePcSY3ES\nwWyG\r\n=SJ6E\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"dist/gl-waveform.mjs","source":"index.js","gitHead":"5f4c4c58052f648aa1d08a139a8a2a84aba02b6d","scripts":{"demo":"budo demo -- --transform-key=test","lint":"eslint */*.js *.js --ignore-pattern test*","test":"node test","build-data":"browserify example/data.js | indexhtmlify | metadataify > example/data.html","build-multi":"browserify example/multi.js | indexhtmlify | metadataify > example/multi.html","test-browser":"budo test -- -t glslify -p tsify"},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"umd:main":"dist/gl-waveform.umd.js","browserify":{"transform":["glslify"]},"repository":{"url":"git+https://github.com/a-vis/gl-waveform.git","type":"git"},"_npmVersion":"6.4.1","description":"Performant waveform renderer with WebGL","directories":{},"_nodeVersion":"8.11.1","dependencies":{"lerp":"^1.0.3","regl":"^1.3.11","to-px":"^1.1.0","offset":"0.0.1","gl-util":"^3.1.0","glslify":"^7.0.0","on-idle":"^3.1.4","weak-map":"^1.0.5","parse-rect":"^1.2.0","parse-unit":"^1.0.1","to-float32":"^1.0.0","is-plain-obj":"^1.1.0","object-assign":"^4.1.1","pick-by-alias":"^1.2.0","negative-index":"^1.0.3","color-normalize":"^1.3.0","typedarray-pool":"^1.1.0","flatten-vertex-data":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"gl":"^4.1.1","pxls":"^2.3.1","tape":"^4.9.2","pan-zoom":"^3.4.0","is-travis":"^2.0.0","controlkit":"^0.1.9","prettysize":"^1.1.0","image-equal":"^4.3.1","metadataify":"^2.0.0","seed-random":"^2.2.0","almost-equal":"^1.1.0","image-output":"^2.4.0","image-pixels":"^2.2.1","indexhtmlify":"^1.3.1","fps-indicator":"^1.3.0","performance-now":"^2.1.0","audio-oscillator":"^3.1.1","periodic-function":"^1.1.4"},"_npmOperationalInternal":{"tmp":"tmp/gl-waveform_4.3.3_1547251785678_0.2948341111997439","host":"s3://npm-registry-packages"}},"5.0.0":{"_id":"gl-waveform@5.0.0","bugs":{"url":"https://github.com/dy/gl-waveform/issues"},"dist":{"shasum":"5f082920bd057e60c66dbbb665781c3ac037b973","tarball":"https://registry.npmjs.org/gl-waveform/-/gl-waveform-5.0.0.tgz","fileCount":4,"integrity":"sha512-7uESa4rYxruAxR9spRvD5rJSWFs0pxHSruN+j1UOEgPWaOCq9EHUYO9g8TzaJjGYoVT0zERa9J30xGTqxH+X1g==","signatures":[{"sig":"MEQCICgXAkFNWl6wG8yCGuhi6Xwb6hroYOuNCdfJ+7EM7VaTAiB9jFKLDBGkGQP80pVtRIR7MZErl1GhWjFhxFvl4JTS6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCZHxK2hhrWKaB6Q3tolJqpOMPLvioWR45noDgDsCNMEAIgd5fO/s8KZg1ykg07tutawP1Q3c8gM8NmN2oBcWdKQeE="}],"unpackedSize":34570},"main":"index.js","name":"gl-waveform","type":"module","types":"index.d.ts","author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"exports":{".":{"types":"./index.d.ts","default":"./index.js"}},"gitHead":"a546eacbf854e3cead05fb31dca3664d7a71d4ac","license":"MIT","scripts":{"test":"node test/index.js","bench":"node test/bench.js"},"version":"5.0.0","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"homepage":"https://github.com/dy/gl-waveform#readme","keywords":["waveform","webgl2","audio","peaks","rms","time-data","data-vis"],"repository":{"url":"git+https://github.com/dy/gl-waveform.git","type":"git"},"_npmVersion":"11.12.1","description":"WebGL2 waveform renderer: exact peaks, RMS band, sample-accurate line","directories":{},"maintainers":[{"name":"dy","email":"df.creative@gmail.com"}],"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"playwright":"^1.63.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gl-waveform_5.0.0_1790732970456_0.9181532822576777"}}},"time":{"created":"2016-08-12T05:53:37.273Z","modified":"2026-09-30T01:49:30.707Z","1.0.0":"2016-08-12T05:53:37.273Z","1.1.0":"2016-08-13T20:53:19.804Z","1.1.1":"2016-08-13T23:48:24.971Z","1.1.2":"2016-08-21T04:31:19.417Z","1.1.3":"2016-08-21T16:04:38.519Z","2.0.0":"2016-10-05T18:45:15.812Z","2.0.1":"2016-10-21T04:15:50.051Z","2.0.2":"2016-10-21T06:14:52.545Z","2.0.4":"2016-11-22T01:44:54.508Z","2.1.0":"2016-11-22T20:59:05.505Z","2.1.1":"2016-11-23T10:18:42.037Z","2.1.2":"2016-11-23T10:22:09.735Z","2.2.0":"2016-12-05T04:31:08.872Z","2.2.1":"2016-12-05T10:02:08.239Z","2.2.2":"2016-12-05T10:19:26.219Z","2.2.3":"2016-12-11T09:04:18.127Z","2.2.4":"2016-12-29T17:12:03.370Z","2.2.5":"2016-12-29T17:17:09.922Z","2.2.6":"2017-02-08T22:39:44.343Z","2.3.0":"2017-03-01T03:09:18.407Z","2.4.0":"2017-03-02T00:35:14.919Z","2.4.1":"2017-03-02T00:48:13.364Z","2.4.2":"2017-03-19T18:47:10.361Z","2.4.3":"2017-04-11T02:08:30.876Z","2.4.4":"2017-07-19T22:55:10.733Z","4.0.0":"2018-08-15T08:09:38.137Z","4.1.0":"2018-09-07T13:01:53.978Z","4.1.1":"2018-09-07T14:02:45.111Z","4.1.2":"2018-12-06T15:58:09.152Z","4.1.3":"2018-12-06T17:48:04.132Z","4.1.4":"2018-12-11T00:26:54.956Z","4.2.0":"2019-01-10T23:01:07.177Z","4.3.0":"2019-01-10T23:13:26.180Z","4.3.1":"2019-01-12T00:03:28.522Z","4.3.2":"2019-01-12T00:07:14.912Z","4.3.3":"2019-01-12T00:09:45.807Z","5.0.0":"2026-09-30T01:49:30.530Z"},"bugs":{"url":"https://github.com/dy/gl-waveform/issues"},"author":{"name":"Dmitry Yv","email":"dfcreative@gmail.com"},"license":"MIT","homepage":"https://github.com/dy/gl-waveform#readme","keywords":["waveform","webgl2","audio","peaks","rms","time-data","data-vis"],"repository":{"url":"git+https://github.com/dy/gl-waveform.git","type":"git"},"description":"WebGL2 waveform renderer: exact peaks, RMS band, sample-accurate line","maintainers":[{"name":"dy","email":"df.creative@gmail.com"}],"readme":"# gl-waveform\n\nWebGL2 waveform renderer for audio editors. Zoomed out, every pixel column shows the exact min and max of its samples, joined into one outline, with an RMS band inside. Zoomed in, an anti-aliased line runs through the samples, with dots. Pans and zooms at 60 fps over an hour of 48 kHz audio, with no float32 jitter at sample offsets past 1e9.\n\n<img src=\"example/preview.png\" width=\"968\" alt=\"An hour of synthetic stereo speech in two lanes: a single-sample spike at 18:36, silence gaps, a clipped stretch at 40:00\">\n\n[Demo](https://dy.github.io/gl-waveform/example/): an hour of synthetic stereo speech with a one-sample spike, silences and clipping. Zoom, pan, record.\n\n## Usage\n\n`npm i gl-waveform`\n\n```js\nimport Waveform from 'gl-waveform'\n\n// the drawing buffer is yours to size\ncanvas.width = canvas.clientWidth * devicePixelRatio\ncanvas.height = canvas.clientHeight * devicePixelRatio\n\nlet wf = new Waveform(canvas, { data: samples })  // mono Float32Array\nwf.render()\n\n// on every frame of a zoom or pan\nwf.update({ range: [from, to] }).clear().render()\n```\n\nStereo, as two lanes on one canvas:\n\n```js\nlet lanes = [left, right].map((data, i) => new Waveform(canvas, { data, viewport: [0, i * 100, 800, 100] }))\nfor (let wf of lanes) wf.update({ range }).clear().render()\n```\n\n## API\n\n### `new Waveform(target, options?)`\n\n`target` is a canvas, whose WebGL2 context is created (`preserveDrawingBuffer: true`, `antialias: false`) or reused, or a `WebGL2RenderingContext` to share. Waveforms on one context share one shader program; each has its own small texture. `options` go to `update()`.\n\n### `wf.update(options)`\n\nOption | Default | Meaning\n---|---|---\n`data` | empty | Mono samples; replaces all data. A `Float32Array` is referenced, not copied, and never written to; other array-likes are converted.\n`range` | `[0, length]` | Visible `[from, to]` in samples: fractional, may extend past the data.\n`amplitude` | `[-1, 1]` | Values at the viewport's bottom and top; `[1, -1]` flips.\n`viewport` | whole canvas | `[x, y, width, height]` in CSS px from the canvas' top-left corner.\n`color` | blue | Line and envelope: a CSS color, `oklch()` included, or `[r, g, b, a]` in 0..1.\n`rms` | `color`, lightened | RMS band color; `false` hides the band.\n`density` | `false` | Zoomed out, the fill is as bright as the signal is often at that level, in place of the RMS band: a level reached once stays at 30 %.\n`thickness` | `1` | Line width in CSS px, at least one device pixel.\n`pixelRatio` | `devicePixelRatio` | Device px per CSS px.\n\nKeys left out keep their value, `null` restores the default. `update({ range })` only stores the range: cheap enough for every frame.\n\n### Methods\n\nMethod | Does\n---|---\n`wf.render()` | Draws into the viewport, over what is there. Does nothing while the context is lost.\n`wf.clear()` | Clears the viewport to transparent.\n`wf.push(samples)` | Appends samples.\n`wf.set(samples, offset)` | Writes samples from `offset`, extending the data if needed; a gap before `offset` reads as NaN.\n`wf.pick(x)` | The pixel column at `x` CSS px from the viewport's left: `{ from, to, min, max, rms }` of its samples `[from, to)`, or `null` over a gap. Zoomed in, the sample nearest the column's center.\n`wf.destroy()` | Releases the texture, the data and the event listeners.\n\nProperties: `wf.gl`, `wf.canvas`, `wf.length`, `wf.range` (resolved), `wf.amplitude`.\n\n## Rendering\n\n* **Zoomed out**, over one sample per device pixel: each column shows the exact min and max of its samples, and neighbouring columns join into one outline, so a one-sample spike in 10M samples stays visible at full zoom-out. The RMS band spans −rms..+rms within min..max, rms = √mean(x²) over the column; it fades in from 1 to 4 samples per pixel.\n* **Zoomed in**: an anti-aliased line through the samples. Dots appear at 6 CSS px per sample and reach full size at 12.\n* **No seam**: as columns thin out to one sample, the outline becomes the line, so crossing one sample per pixel changes neither peaks nor stroke; ink per sample changes by about 1%.\n* **Stable pans**: column edges sit on multiples of samples per pixel, so a pan moves the zoomed-out view by whole pixels and never reshuffles samples between columns. From 1024 samples per pixel, edges round to multiples of 256 samples, at most 1/8 px off, so a column is whole pyramid nodes.\n* **NaN** is a gap. **±Infinity** and values past `amplitude` clamp to the viewport edge; `pick()` reports them as they are.\n* **Blending** is premultiplied, over whatever is under the viewport, so the canvas can overlay a spectrogram or a grid. The context must have `premultipliedAlpha` (the default).\n* **Context loss**: nothing throws while the context is lost; on restore, each waveform that had rendered uploads again and redraws.\n\n## Architecture\n\n1. Samples live in chunks of 64K. `update({ data })` makes views into your array; `set()` and `push()` copy only the chunks they touch; gaps allocate nothing.\n2. A pyramid over the samples keeps `[min, max, Σx², count]` in doubles per node of 256·2ᴸ samples: 0.25 bytes per sample, built in one pass, updated in O(k + log n) by `push()` and `set()`.\n3. Each frame, the CPU reads every device-pixel column from the pyramid in doubles: exact min, max and RMS from O(log n) nodes plus at most two partial leaves. Absolute sample positions never reach the GPU, so float32 has nothing to round.\n4. The results go into one RGBA32F texel per column (zoomed out) or per visible sample (zoomed in), already in viewport pixels: tens of KB per frame. GPU memory is that texture, whatever the data length.\n5. One draw per viewport: a quad whose fragment shader measures the distance to the joined column spans, or to the line and its dots, and turns it into anti-aliased coverage.\n\nv4 reduced samples on the GPU instead: it needed float32 fraction-splitting, multipass textures and GPU memory proportional to the data, and drew mean ± deviation rather than peaks.\n\n### Measured\n\n`npm run bench`: headless Chromium 153 on an Apple M4 Max (Metal) with other jobs running (load average ~20), two lanes of 1440×200 CSS px at DPR 2 (2880×400 device px each), synthetic speech. A frame is `update({ range })`, `clear()` and `render()` on both lanes, then `gl.finish()`. Medians of three runs.\n\nSamples | `update({ data })` | Zoom frame, mean / p95 | Pan frame, mean / p95 | Unchanged frame | `push()` of 1024 | Pyramid\n---|---|---|---|---|---|---\n1M | 1.8 ms | 0.52 / 2.2 ms | 0.11 / 0.3 ms | 0.01 ms | 4 µs | 0.25 MB\n10M | 18 ms | 0.77 / 3.1 ms | 2.9 / 3.3 ms | 0.01 ms | 4 µs | 2.5 MB\n172.8M (1 h) | 297 ms | 0.90 / 3.2 ms | 2.8 / 3.3 ms | 0.01 ms | 14 µs | 43 MB\n\nZooming continuously on `requestAnimationFrame` runs at 60 fps at every size. `update({ data })` is one pass at about 1.7 ns per sample of speech. Frames cost most between 256 and 1024 samples per pixel (the pan row), where columns scan partial leaves. Of 723 zoom frames over 172.8M samples, two took over 4 ms: the first after loading (30 ms) and one at 633 samples per pixel (7 ms).\n\n## Changes from v4\n\n* ESM with a default export, WebGL2, no dependencies. Was CommonJS on WebGL1 with regl, glslify and 16 more packages.\n* Draws exact per-column min/max with an RMS band, a sample line and dots. Was mean ± standard deviation from running sums in float32 textures.\n* GPU memory is one texture sized to the viewport. Was every sample in float textures.\n* `pick(x)` returns `{ from, to, min, max, rms }`, with `x` in CSS px from the viewport's left. Was `pick(event | x)` returning `{ average, sdev, x, y, offset }`.\n* `viewport` is in CSS px; was device px.\n* `amplitude` defaults to `[-1, 1]`; was the data's min/max.\n* Added: `rms`, dots, ±Infinity clamping, context loss handling, `length`.\n* Removed, with replacements where one exists:\n  * `new Waveform()` without a target, `container`, `regl` and `new Waveform(otherWaveform)`: pass a canvas or a WebGL2 context.\n  * Setters `wf.range = …`, `wf.amplitude = …`, `wf.viewport = …`, `wf.color = …`: use `update()`. `range` and `amplitude` stay as getters.\n  * `flip`: use `amplitude: [1, -1]`.\n  * `clip` and rectangle objects: use `viewport: [x, y, width, height]`.\n  * `opacity`: use the color's alpha.\n  * 4-value `range`: use `range` and `amplitude`. Numeric `range` (last N samples) and `amplitude` as a number: pass arrays.\n  * `thickness` with units (`'3em'`): pass CSS px. Color arrays in 0..255: pass 0..1.\n  * `update(array)`: use `update({ data })`. `push(...values)` and `push(number)`: use `push(samples)`. regl textures as `data`.\n  * `pick: false`, `line`, `mode`, `pxStep`, `sampleStep`, `shape` and the option aliases (`samples`, `amp`, `width`…).\n  * `regl`, `total` (now `length`), `minY`, `maxY`, `textures` properties.\n\n## Develop\n\n* `npm test`: every pixel column's stats against brute force over the samples (random data, NaN runs, ±Infinity, 0 to 1M samples, `push`/`set` edits, offsets near 1e9, 1e-3 to 1e5 samples per pixel), pixel checks through `readPixels` (spike, line and dots, lanes, resize, transparency, joins, the zoom threshold, gaps, colors, offset 1e9 drawn as offset 1000), context loss and the API contract. Headless Chromium through Playwright; `npx playwright install chromium` if it is missing.\n* `npm run bench`: the table above.\n* Demo: any static server at the repo root, e.g. `npx serve`, then open `/example/`. `?minutes=10` makes a shorter file.\n\n## License\n\n© 2018 Dmitry Yv. MIT License\n","readmeFilename":"readme.md","users":{"errol":true}}