This commit is contained in:
Jade (Rose) Rowland 2025-03-31 00:21:01 -04:00
parent 5ed28d6168
commit 999c0b2349
2 changed files with 12 additions and 13 deletions

View file

@ -1,9 +1,9 @@
import { getAudioContext } from './superdough.mjs'; import { getAudioContext } from './superdough.mjs';
import { clamp, nanFallback } from './util.mjs'; import { clamp, nanFallback } from './util.mjs';
export function gainNode(value) { export function gainNode(value) {
const node = getAudioContext().createGain(); const node = getAudioContext().createGain();
node.gain.value = value node.gain.value = value;
return node; return node;
} }

View file

@ -20,14 +20,14 @@ export function registerSound(key, onTrigger, data = {}) {
soundMap.setKey(key.toLowerCase(), { onTrigger, data }); soundMap.setKey(key.toLowerCase(), { onTrigger, data });
} }
let gainCurveFunc = (val) => Math.pow(val,2) let gainCurveFunc = (val) => Math.pow(val, 2);
export function applyGainCurve(val) { export function applyGainCurve(val) {
return gainCurveFunc(val) return gainCurveFunc(val);
} }
export function setGainCurve(newGainCurveFunc) { export function setGainCurve(newGainCurveFunc) {
gainCurveFunc = newGainCurveFunc gainCurveFunc = newGainCurveFunc;
} }
function aliasBankMap(aliasMap) { function aliasBankMap(aliasMap) {
@ -482,12 +482,11 @@ export const superdough = async (value, t, hapDuration) => {
} = value; } = value;
gain = applyGainCurve(nanFallback(gain, 1)); gain = applyGainCurve(nanFallback(gain, 1));
postgain = applyGainCurve(postgain) postgain = applyGainCurve(postgain);
shapevol = applyGainCurve(shapevol) shapevol = applyGainCurve(shapevol);
distortvol = applyGainCurve(distortvol) distortvol = applyGainCurve(distortvol);
delay = applyGainCurve(delay) delay = applyGainCurve(delay);
velocity = applyGainCurve(velocity) velocity = applyGainCurve(velocity);
//music programs/audio gear usually increments inputs/outputs from 1, so imitate that behavior //music programs/audio gear usually increments inputs/outputs from 1, so imitate that behavior
channels = (Array.isArray(channels) ? channels : [channels]).map((ch) => ch - 1); channels = (Array.isArray(channels) ? channels : [channels]).map((ch) => ch - 1);
@ -531,7 +530,7 @@ export const superdough = async (value, t, hapDuration) => {
// gain stage // gain stage
chain.push(gainNode(gain)); chain.push(gainNode(gain));
chain.push(gainNode(.8 * velocity)) chain.push(gainNode(0.8 * velocity));
//filter //filter
const ftype = getFilterType(value.ftype); const ftype = getFilterType(value.ftype);
@ -632,7 +631,7 @@ export const superdough = async (value, t, hapDuration) => {
} }
// last gain // last gain
const post = new GainNode(ac, { gain:postgain }); const post = new GainNode(ac, { gain: postgain });
chain.push(post); chain.push(post);
connectToDestination(post, channels); connectToDestination(post, channels);