Parcourir la source

Improved analyzer graphics; new music

WestLangley il y a 7 ans
Parent
commit
1415bd88b9
1 fichiers modifiés avec 20 ajouts et 28 suppressions
  1. 20 28
      examples/webaudio_visualizer.html

+ 20 - 28
examples/webaudio_visualizer.html

@@ -39,6 +39,7 @@
 			void main() {
 
 				vUv = uv;
+
 				gl_Position = vec4( position, 1.0 );
 
 			}
@@ -48,16 +49,16 @@
 		<script id="fragmentShader" type="x-shader/x-fragment">
 
 			uniform sampler2D tAudioData;
-
 			varying vec2 vUv;
 
 			void main() {
 
-				vec3 backgroundColor = vec3( 0.0 );
-				vec3 color = vec3( 1.0, 0.0, 0.0 );
+				vec3 backgroundColor = vec3( 0.125, 0.125, 0.125 );
+				vec3 color = vec3( 1.0, 1.0, 0.0 );
+
+				float f = texture2D( tAudioData, vec2( vUv.x, 0.0 ) ).r;
 
-				float f = texture2D( tAudioData, vec2( vUv.x, 0.0 ) ).r; // sample data texture (only the red channel is relevant)
-				float i = step( vUv.y, f );
+				float i = step( vUv.y, f ) * step( f - 0.0125, vUv.y );
 
 				gl_FragColor = vec4( mix( backgroundColor, color, i ), 1.0 );
 
@@ -66,12 +67,12 @@
 		</script>
 
 	</head>
-<body>
+	<body>
 
 	<div id="container"></div>
 	<div id="info">
 		<a href="https://threejs.org" target="_blank" rel="noopener noreferrer">three.js</a> webaudio - visualizer<br/>
-		music by <a href="http://www.newgrounds.com/audio/listen/358232" target="_blank" rel="noopener noreferrer">larrylarrybb</a>
+		music by <a href="http://www.newgrounds.com/audio/listen/376737" target="_blank" rel="noopener">skullbeatz</a>
 	</div>
 
 	<script>
@@ -85,55 +86,46 @@
 
 	function init() {
 
-		var fftSize = 2048;
+		var fftSize = 128;
 
 		//
 
 		var container = document.getElementById( 'container' );
 
-		//
-
-		scene = new THREE.Scene();
-
-		//
-
 		renderer = new THREE.WebGLRenderer( { antialias: true } );
 		renderer.setSize( window.innerWidth, window.innerHeight );
 		renderer.setClearColor( 0x000000 );
 		renderer.setPixelRatio( window.devicePixelRatio );
 		container.appendChild( renderer.domElement );
 
-		//
+		scene = new THREE.Scene();
 
 		camera = new THREE.Camera();
-		camera.position.z = 1;
 
 		//
 
 		var audioLoader = new THREE.AudioLoader();
 
 		var listener = new THREE.AudioListener();
-		camera.add( listener );
 
 		var audio = new THREE.Audio( listener );
-		audioLoader.load( 'sounds/358232_j_s_song.mp3', function( buffer ) {
+
+		audioLoader.load( 'sounds/376737_Skullbeatz___Bad_Cat_Maste.mp3', function ( buffer ) {
+
 			audio.setBuffer( buffer );
 			audio.setLoop( true );
 			audio.play();
-		});
+
+		} );
 
 		analyser = new THREE.AudioAnalyser( audio, fftSize );
 
 		//
 
-		var geometry = new THREE.PlaneBufferGeometry( 2, 2 );
-
-		//
+		uniforms = {
 
-		var size = fftSize / 2;
+			tAudioData: { value: new THREE.DataTexture( analyser.data, fftSize / 2, 1, THREE.LuminanceFormat ) }
 
-		uniforms = {
-			tAudioData: { value: new THREE.DataTexture( analyser.data, size, 1, THREE.LuminanceFormat ) }
 		};
 
 		var material = new THREE.ShaderMaterial( {
@@ -144,7 +136,7 @@
 
 		} );
 
-		//
+		var geometry = new THREE.PlaneBufferGeometry( 1, 1 );
 
 		var mesh = new THREE.Mesh( geometry, material );
 		scene.add( mesh );
@@ -171,7 +163,7 @@
 
 	function render() {
 
-		var data = analyser.getFrequencyData();
+		analyser.getFrequencyData();
 
 		uniforms.tAudioData.value.needsUpdate = true;
 
@@ -181,5 +173,5 @@
 
 	</script>
 
-</body>
+	</body>
 </html>