From ffd6f7e41ad5ff3804efb5f328d0a99121c2cd82 Mon Sep 17 00:00:00 2001 From: Joshua Seigler Date: Sun, 11 Sep 2016 22:36:18 -0400 Subject: [PATCH] feat: transaction sounds change pitch based on size :) --- app.js | 17 ++++++++++------- assets/wood-hit-glass.mp3 | Bin 0 -> 13111 bytes 2 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 assets/wood-hit-glass.mp3 diff --git a/app.js b/app.js index 7a47d4a..4af95af 100644 --- a/app.js +++ b/app.js @@ -1,12 +1,12 @@ -'use strict'; +(function() { + 'use strict'; -//(function() { var socket = io("https://blockchain.masternode.io/"); -// var socket = io("https://insight.bitpay.com/"); var transactionList = document.getElementById('transactionList'); var muteButton = document.getElementById('muteToggle'); var muted = false; var audioContext; + var audioGainNode; var soundBuffers = { 'tx': null, 'block': null @@ -17,13 +17,16 @@ try { window.AudioContext = window.AudioContext||window.webkitAudioContext; audioContext = new AudioContext(); + audioGainNode = audioContext.createGain(); + audioGainNode.connect(audioContext.destination); + audioGainNode.gain.value = 0.3; } catch(e) { console.error('Web Audio API is not supported in this browser'); document.getElementById('muteToggle').remove(); } try { - loadSound('assets/bell.mp3', 'tx'); + loadSound('assets/wood-hit-glass.mp3', 'tx'); loadSound('assets/whoosh.mp3', 'block'); } catch(e) { @@ -79,7 +82,7 @@ } var source = audioContext.createBufferSource(); source.buffer = soundBuffers[bufferName]; - source.connect(audioContext.destination); + source.connect(audioGainNode); source.playbackRate.value = playbackRate; source.start(); } @@ -94,7 +97,7 @@ var onTransaction = function(data) { console.log(data); - var playbackRate = Math.min(Math.max(0.25, 1 - Math.log(data.valueOut)/16), 2); + var playbackRate = Math.min(Math.max(0.25, 2.4 - Math.log(data.valueOut)/5), 7); playSound('tx', playbackRate); var tx = document.createElement('div'); tx.className = 'tx'; @@ -134,4 +137,4 @@ transactionList.insertBefore(newBlock, transactionList.firstChild); }; -//})(); +})(); diff --git a/assets/wood-hit-glass.mp3 b/assets/wood-hit-glass.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..1888ef4aa7d2a95748693ea6f31ef436bfcd3505 GIT binary patch literal 13111 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 literal 0 HcmV?d00001