From 9988cf3f221a43a66ca7905ab6f9c9150a766077 Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Mon, 20 Sep 2021 17:25:40 -0400 Subject: [PATCH] Allow for sound sets to be pre-defined --- src/data/presets.ts | 219 +---------------------------------------- src/data/sound-sets.ts | 18 ++++ src/serialize.ts | 10 +- 3 files changed, 28 insertions(+), 219 deletions(-) diff --git a/src/data/presets.ts b/src/data/presets.ts index 4b19665..562479a 100644 --- a/src/data/presets.ts +++ b/src/data/presets.ts @@ -7,29 +7,6 @@ export const PresetSources: Array<{ { soundSet: { name: "Gurgles", - soundKeys: [ - "gurgles/gurgle (1)", - "gurgles/gurgle (2)", - "gurgles/gurgle (3)", - "gurgles/gurgle (4)", - "gurgles/gurgle (5)", - "gurgles/gurgle (6)", - "gurgles/gurgle (7)", - "gurgles/gurgle (8)", - "gurgles/gurgle (9)", - "gurgles/gurgle (10)", - "gurgles/gurgle (11)", - "gurgles/gurgle (12)", - "gurgles/gurgle (13)", - "gurgles/gurgle (14)", - "gurgles/gurgle (15)", - "gurgles/gurgle (16)", - "gurgles/gurgle (17)", - "gurgles/gurgle (18)", - "gurgles/gurgle (19)", - "gurgles/gurgle (20)", - "gurgles/gurgle (21)", - ], }, kind: "source", volume: 1, @@ -42,23 +19,6 @@ export const PresetSources: Array<{ { soundSet: { name: "Burps", - soundKeys: [ - "belch (1)", - "belch (2)", - "belch (3)", - "belch (4)", - "belch (5)", - "belch (6)", - "belch (7)", - "belch (8)", - "belch (9)", - "belch (10)", - "belch (11)", - "belch (12)", - "belch (13)", - "belch (14)", - "belch (15)", - ], }, kind: "source", volume: 1, @@ -71,12 +31,6 @@ export const PresetSources: Array<{ { soundSet: { name: "Guts", - soundKeys: [ - "stomach-churn", - "intestines-to-bowels", - "intestines-to-stomach", - "intestines-to-stomach-forced", - ], }, kind: "source", volume: 1, @@ -89,7 +43,6 @@ export const PresetSources: Array<{ { soundSet: { name: "Squishing", - soundKeys: ["squishing"], }, kind: "source", volume: 1, @@ -100,7 +53,6 @@ export const PresetSources: Array<{ { soundSet: { name: "Heartbeat", - soundKeys: ["heartbeat"], }, kind: "source", volume: 1, @@ -111,7 +63,6 @@ export const PresetSources: Array<{ { soundSet: { name: "Breathing", - soundKeys: ["breaths"], }, kind: "source", volume: 1, @@ -122,7 +73,6 @@ export const PresetSources: Array<{ { soundSet: { name: "Rumble", - soundKeys: ["rumble"], }, kind: "source", volume: 1, @@ -155,172 +105,5 @@ export const PresetFilters: Array<{ name: string; [x: string]: any }> = [ ]; export const DemoScene = [ - { - name: "Soundscape", - sources: [ - { - soundSet: { - name: "Guts", - soundKeys: [ - "stomach-churn", - "intestines-to-bowels", - "intestines-to-stomach", - "intestines-to-stomach-forced", - ], - }, - volume: 1, - interval: [7, 15], - pitch: [0.7, 1.1], - panning: [-0.5, 0.5], - kind: "source", - name: "Guts", - type: "IntervalSource", - }, - { - soundSet: { name: "Squishing", soundKeys: ["squishing"] }, - volume: 1, - pitch: 1, - kind: "source", - name: "Squishing", - type: "LoopingSource", - }, - { - soundSet: { name: "Heartbeat", soundKeys: ["heartbeat"] }, - volume: 0.65, - pitch: 1, - kind: "source", - name: "Heartbeat", - type: "LoopingSource", - }, - { - soundSet: { name: "Rumble", soundKeys: ["rumble"] }, - volume: 1, - pitch: 1, - kind: "source", - name: "Rumble", - type: "LoopingSource", - }, - { - soundSet: { - name: "Gurgles", - soundKeys: [ - "gurgles/gurgle (1)", - "gurgles/gurgle (2)", - "gurgles/gurgle (3)", - "gurgles/gurgle (4)", - "gurgles/gurgle (5)", - "gurgles/gurgle (6)", - "gurgles/gurgle (7)", - "gurgles/gurgle (8)", - "gurgles/gurgle (9)", - "gurgles/gurgle (10)", - "gurgles/gurgle (11)", - "gurgles/gurgle (12)", - "gurgles/gurgle (13)", - "gurgles/gurgle (14)", - "gurgles/gurgle (15)", - "gurgles/gurgle (16)", - "gurgles/gurgle (17)", - "gurgles/gurgle (18)", - "gurgles/gurgle (19)", - "gurgles/gurgle (20)", - "gurgles/gurgle (21)", - ], - }, - volume: 1, - interval: [1.0281138266560665, 1.9724654089867184], - pitch: [0.9, 1.1], - panning: [-0.7, 0.7], - kind: "source", - name: "Gurgles", - type: "IntervalSource", - }, - { - soundSet: { - name: "Gurgles", - soundKeys: [ - "gurgles/gurgle (1)", - "gurgles/gurgle (2)", - "gurgles/gurgle (3)", - "gurgles/gurgle (4)", - "gurgles/gurgle (5)", - "gurgles/gurgle (6)", - "gurgles/gurgle (7)", - "gurgles/gurgle (8)", - "gurgles/gurgle (9)", - "gurgles/gurgle (10)", - "gurgles/gurgle (11)", - "gurgles/gurgle (12)", - "gurgles/gurgle (13)", - "gurgles/gurgle (14)", - "gurgles/gurgle (15)", - "gurgles/gurgle (16)", - "gurgles/gurgle (17)", - "gurgles/gurgle (18)", - "gurgles/gurgle (19)", - "gurgles/gurgle (20)", - "gurgles/gurgle (21)", - ], - }, - volume: 1, - interval: [4, 14.123247940650476], - pitch: [0.3438854545349359, 0.6155722066724582], - panning: [-0.7, 0.7], - kind: "source", - name: "Gurgles", - type: "IntervalSource", - }, - ], - filters: [], - }, - { - name: "Soundscape", - sources: [ - { - soundSet: { - name: "Burps", - soundKeys: [ - "belch (1)", - "belch (2)", - "belch (3)", - "belch (4)", - "belch (5)", - "belch (6)", - "belch (7)", - "belch (8)", - "belch (9)", - "belch (10)", - "belch (11)", - "belch (12)", - "belch (13)", - "belch (14)", - "belch (15)", - ], - }, - volume: 1, - interval: [11.080875744887399, 29.040612970149155], - pitch: [0.7, 1.1], - panning: [-0.1, 0.1], - kind: "source", - name: "Burps", - type: "IntervalSource", - }, - { - soundSet: { name: "Breathing", soundKeys: ["breaths"] }, - volume: 1, - pitch: 0.8585654364377537, - kind: "source", - name: "Breathing", - type: "LoopingSource", - }, - ], - filters: [ - { - cutoff: 596.3435962718496, - kind: "filter", - name: "Lowpass Filter", - type: "LowpassFilter", - }, - ], - }, + ]; diff --git a/src/data/sound-sets.ts b/src/data/sound-sets.ts index e69de29..356621e 100644 --- a/src/data/sound-sets.ts +++ b/src/data/sound-sets.ts @@ -0,0 +1,18 @@ +export const PresetSoundSets: Record> = { + Gurgles: Array(21) + .fill(0) + .map((x, i) => "gurgles/gurgle (" + (i + 1) + ")"), + Burps: Array(16) + .fill(0) + .map((x, i) => "belch (" + (i + 1) + ")"), + Guts: [ + "stomach-churn", + "intestines-to-bowels", + "intestines-to-stomach", + "intestines-to-stomach-forced", + ], + Heartbeat: ["heartbeat"], + Breathing: ["breaths"], + Squishing: ["squishing"], + Rumble: ["rumble"] +}; diff --git a/src/serialize.ts b/src/serialize.ts index c68a6b2..fb52e7a 100644 --- a/src/serialize.ts +++ b/src/serialize.ts @@ -24,6 +24,7 @@ import { Filter } from "./filters/Filter"; import { LowpassFilter } from "./filters/LowpassFilter"; import { HighpassFilter } from "./filters/HighpassFilter"; import { StereoWidthFilter } from "./filters/StereoWidthFilter"; +import { PresetSoundSets } from "./data/sound-sets"; // eslint-disable-next-line @typescript-eslint/no-explicit-any export function serializeNode(_node: T): any { @@ -109,7 +110,14 @@ export function deserializeNode(data: any): Node { ); if (soundSetMetadata !== undefined) { - node[key] = new SoundSet(data[key].name, data[key].soundKeys); + if (data[key].soundKeys === undefined) { + node[key] = new SoundSet( + data[key].name, + PresetSoundSets[data[key].name] + ); + } else { + node[key] = new SoundSet(data[key].name, data[key].soundKeys); + } } });