Added examples, fixed samplerate issue on import, added to settings tab, fixed spread, added default wavetables, change default phaserand to 0

This commit is contained in:
Aria
2025-09-26 20:46:10 -07:00
parent 8b2c35b7a3
commit 97beaec25a
8 changed files with 311 additions and 38 deletions
+54
View File
@@ -0,0 +1,54 @@
{
"_base": "http://localhost:5432",
"Bad Day": [
"/Bad Day.wav"
],
"Basique": [
"/Basique.wav"
],
"Crickets": [
"/Crickets.wav"
],
"Curses": [
"/Curses.wav"
],
"Earl Grey": [
"/Earl Grey.wav"
],
"Echoes": [
"/Echoes.wav"
],
"Glimmer": [
"/Glimmer.wav"
],
"Majick": [
"/Majick.wav"
],
"Meditation": [
"/Meditation.wav"
],
"Morgana": [
"/Morgana.wav"
],
"Red Alert": [
"/Red Alert.wav"
],
"Sad Piano": [
"/Sad Piano.wav"
],
"Shook": [
"/Shook.wav"
],
"Sludge": [
"/Sludge.wav"
],
"Squelch": [
"/Squelch.wav"
],
"Summers Day": [
"/Summers Day.wav"
],
"Wasp": [
"/Wasp.wav"
]
}
@@ -44,6 +44,9 @@ export function SoundsTab() {
if (soundsFilter === soundFilterType.SYNTHS) {
return filtered.filter(([_, { data }]) => ['synth', 'soundfont'].includes(data.type));
}
if (soundsFilter === soundFilterType.WAVETABLES) {
return filtered.filter(([_, { data }]) => data.type === 'wavetable');
}
//TODO: tidy this up, it does not need to be saved in settings
if (soundsFilter === 'importSounds') {
return [];
@@ -74,6 +77,7 @@ export function SoundsTab() {
samples: 'samples',
drums: 'drum-machines',
synths: 'Synths',
wavetables: 'Wavetables',
user: 'User',
importSounds: 'import-sounds',
}}
@@ -125,7 +129,7 @@ export function SoundsTab() {
>
{' '}
{name}
{data?.type === 'sample' ? `(${getSamples(data.samples)})` : ''}
{data?.type === 'sample' || data?.type === 'wavetable' ? `(${getSamples(data.samples)})` : ''}
{data?.type === 'soundfont' ? `(${data.fonts.length})` : ''}
</span>
);
+5 -1
View File
@@ -1,5 +1,5 @@
import { Pattern, noteToMidi, valueToMidi } from '@strudel/core';
import { aliasBank, registerSynthSounds, registerZZFXSounds, samples } from '@strudel/webaudio';
import { aliasBank, registerSynthSounds, registerZZFXSounds, samples, tables } from '@strudel/webaudio';
import { registerSamplesFromDB } from './idbutils.mjs';
import './piano.mjs';
import './files.mjs';
@@ -32,6 +32,10 @@ export async function prebake() {
prebake: true,
tag: 'drum-machines',
}),
tables(`${baseNoTrailing}/uzu-wavetables.json`, 2048, undefined, {
prebake: true,
tag: 'wavetables',
}),
samples(`${baseNoTrailing}/mridangam.json`, undefined, { prebake: true, tag: 'drum-machines' }),
samples(
{
+1
View File
@@ -13,6 +13,7 @@ export const soundFilterType = {
DRUMS: 'drums',
SAMPLES: 'samples',
SYNTHS: 'synths',
WAVETABLES: 'wavetables',
ALL: 'all',
};