From 58ee03f8a846174b7b88e95cfc0a8fa0705cc078 Mon Sep 17 00:00:00 2001 From: zenoamaro Date: Sun, 30 Jun 2019 14:07:36 +0200 Subject: [PATCH] Trying out different sound waves --- src/constants.js | 3 +++ src/main.js | 2 +- src/sound.js | 12 +++++++----- src/weapons.js | 10 +++++----- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/constants.js b/src/constants.js index 8c8ec15..9076d93 100644 --- a/src/constants.js +++ b/src/constants.js @@ -105,3 +105,6 @@ export const EXPLOSION_SHAKE_REDUCTION_FACTOR = 7; export const FONT_WIDTH = 3; export const FONT_HEIGHT = 5; + +export const SOUND_MUSIC_VOLUME = 0.3; +export const SOUND_SFX_VOLUME = 0.05; diff --git a/src/main.js b/src/main.js index 8b95204..6135e53 100644 --- a/src/main.js +++ b/src/main.js @@ -132,7 +132,7 @@ function update() { weaponType.ammo -= 1; projectile = { - osc: createOsc(), + osc: createOsc('sine'), player: player, weaponTypeId: weaponType.type, ox:px, oy:py, a, p, diff --git a/src/sound.js b/src/sound.js index 0cfc1f9..7bd356a 100644 --- a/src/sound.js +++ b/src/sound.js @@ -1,12 +1,14 @@ +import {SOUND_MUSIC_VOLUME, SOUND_SFX_VOLUME} from './constants.js'; + // @ts-ignore export const audio = new (window.AudioContext || window.webkitAudioContext)(); export const music = audio.createGain(audio); -music.gain.setValueAtTime(0.4, audio.currentTime); +music.gain.setValueAtTime(SOUND_MUSIC_VOLUME, audio.currentTime); music.connect(audio.destination); export const sfx = audio.createGain(audio); -sfx.gain.setValueAtTime(0.05, audio.currentTime); +sfx.gain.setValueAtTime(SOUND_SFX_VOLUME, audio.currentTime); sfx.connect(audio.destination); export async function createAudioLoop(src) { @@ -21,15 +23,15 @@ export async function createAudioLoop(src) { }) } -export function createOsc() { +export function createOsc(type='triangle') { const osc = audio.createOscillator(); - osc.type = 'triangle'; + osc.type = type; osc.connect(sfx); return osc; } export function playTickSound() { - const osc = createOsc(); + const osc = createOsc('triangle'); osc.frequency.setValueAtTime(440, audio.currentTime); osc.frequency.setValueAtTime(0, audio.currentTime + 0.005); osc.start(); diff --git a/src/weapons.js b/src/weapons.js index 65639a7..d7d3006 100644 --- a/src/weapons.js +++ b/src/weapons.js @@ -27,7 +27,7 @@ export const EXPLOSION_TYPES = { blast: { create(spec, x, y) { const {r} = spec; - const osc = createOsc(); + const osc = createOsc('sawtooth'); osc.start(); return {type:'blast', x, y, r, cr:0, osc}; }, @@ -36,7 +36,7 @@ export const EXPLOSION_TYPES = { }, draw(explosion, foreground) { const {x, y, cr, osc} = explosion; - const f = cycle(explosion.cr, 6) % 2 === 0 ? 220 : 440; + const f = cycle(explosion.cr, 6) % 2 === 0 ? 110 : 220; osc.frequency.setValueAtTime(f, audio.currentTime); drawExplosion(foreground, x, y, cr); }, @@ -62,7 +62,7 @@ export const EXPLOSION_TYPES = { dirt: { create(spec, x, y) { const {r} = spec; - const osc = createOsc(); + const osc = createOsc('sawtooth'); osc.start(); return {type:'dirt', x, y, r, cr:0, osc}; }, @@ -89,7 +89,7 @@ export const EXPLOSION_TYPES = { digBomb: { create(spec, x, y) { const {r} = spec; - const osc = createOsc(); + const osc = createOsc('sawtooth'); osc.start(); return {type:'digBomb', x, y, r, cr:0, osc}; }, @@ -117,7 +117,7 @@ export const EXPLOSION_TYPES = { create(spec, x, y) { const {r} = spec; const pattern = []; - const osc = createOsc(); + const osc = createOsc('sawtooth'); osc.start(); return {type:'dirtCone', x, y, r, cr:0, osc, pattern}; },