sf-ec7 / app.js
djwugee's picture
Add 5 files
cd95f47 verified
raw
history blame contribute delete
No virus
1.85 kB
import WaveSurfer from 'https://cdn.jsdelivr.net/npm/[email protected]/dist/plugin/wavesurfer.multitrack.min.js'
import ThreeJs from 'https://cdnjs.cloudflare.com/ajax/libs/three.js/0.156.1/three.min.js'
import WaveSurferCanvas from 'https://www.npmjs.com/package/wavesurfer.js'
import TailwindTheme from 'https://cdn.tailwindcss.com?plugins=forms,typography,aspect-ratio'
const wavesurfer = new WaveSurfer.create({
container: '#wavesurfer-container',
waveColor: '#69D2E7',
progressColor: '#69D2E7',
cursorColor: '#fff',
barHeight: 1,
cursorWidth: 0.1,
hideScrollbar: true,
})
const canvasEl = document.getElementById('wavesurfer-canvas')
const wavesurferCanvas = new WaveSurferCanvas(canvasEl, wavesurfer)
const threeJs = new ThreeJs.Scene()
const geometry = new ThreeJs.BoxGeometry(1, 1, 1)
const material = new ThreeJs.MeshBasicMaterial({ color: 0x00ff00 })
const cube = new ThreeJs.Mesh(geometry, material)
cube.position.z = -1
threeJs.add(cube)
const renderingElement = document.getElementById('rendering')
if (renderingElement) {
threeJs.renderingElement = renderingElement
renderingElement.appendChild(threeJs.canvas)
}
wavesurfer.on('ready', () => {
const soundSource = new ThreeJs.AudioDevice()
soundSource.setBuffer(wavesurferCanvas.wavesurfer.getSoundSource())
threeJs.add(soundSource)
soundSource.play()
})
const main = async () => {
await wavesurferCanvas.load(
'https://api.soundcloud.com/tracks/293'
)
wavesurfer.load('https://api.soundcloud.com/tracks/305')
document.body.style.display = 'flex'
document.body.style.flexDirection = 'column'
document.body.style.alignItems = 'center'
document.body.style.justifyContent = 'center'
document.body.style.height = `${wavesurfer.options.container.clientHeight}px`
document.body.style.width = `${wavesurfer.options.container.clientWidth}px`
}
main()