summaryrefslogtreecommitdiff
path: root/client/lib/kalimba.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-10-10 03:37:14 +0200
committerJules Laplace <julescarbon@gmail.com>2018-10-10 03:37:14 +0200
commit0bb5cc4661bea6f8cf89ec4f4a109aa63630b668 (patch)
treebdef919c173c6a45308a1cda994e429fb5aa4526 /client/lib/kalimba.js
parent8d728437d3903411c784cc92f5df260178171604 (diff)
fix scaling
Diffstat (limited to 'client/lib/kalimba.js')
-rw-r--r--client/lib/kalimba.js9
1 files changed, 6 insertions, 3 deletions
diff --git a/client/lib/kalimba.js b/client/lib/kalimba.js
index 0354f69..1401dc4 100644
--- a/client/lib/kalimba.js
+++ b/client/lib/kalimba.js
@@ -2,6 +2,7 @@ import Tone from 'tone'
import { choice } from './util'
const player_count = 2
+let sample_index = 0
const compressor = new Tone.Compressor(-30, 3).toMaster()
@@ -33,14 +34,16 @@ samples.forEach((sample) => {
}
})
-function play (freq) {
- const best = { sample: choice(samples) }
+function play (freq, volume = 0.0) {
+ const best = { sample: samples[sample_index] }
+ sample_index = (sample_index + 1) % samples.length
best.sample.index = (best.sample.index + 1) % player_count
const player = best.sample.players[ best.sample.index ]
player.playbackRate = freq / best.sample.root
// console.log(player)
- player.start()
+ player.volume.value = volume
+ setTimeout(() => { player.start() }, 0)
}
export default { play }