UNPKG

u-he-preset-randomizer

Version:

Create random u-he synth presets through randomization and merging of your existing presets.

52 lines 1.89 kB
/** * @file Preset library filtering utilities. * Provides functions to filter presets by category, author, and favorites. */ import chalk from 'chalk'; export function narrowDownByCategory(presetLibrary, category) { const filteredPresets = presetLibrary.presets.filter((el) => { if (!el.categories.length) { return false; } for (const ownCategory of el.categories) { if (ownCategory.startsWith(category)) { return true; } } return false; }); return filteredPresets; } export function narrowDownByAuthor(presetLibrary, author) { const filteredPresets = presetLibrary.presets.filter((el) => { const authorMeta = el.meta.find((meta) => meta.key === 'Author'); return authorMeta?.value === author; }); return filteredPresets; } export function narrowDownByFavoritesFile(presetLibrary, favorites) { const favList = Array.isArray(favorites) ? favorites : [favorites]; const favPresets = []; const filteredPresets = []; for (const favoriteFilePath of favList) { const favoriteFile = presetLibrary.favorites.find((el) => el.fileName === favoriteFilePath); if (favoriteFile) { favPresets.push(...favoriteFile.presets); } else { console.error(chalk.red(`Error: Could not find favorites file: ${favoriteFilePath}`)); return []; // Return empty array instead of all presets } } for (const preset of presetLibrary.presets) { for (const fav of favPresets) { if (preset.filePath.toLowerCase() === `${fav.path.toLowerCase()}/${fav.name.toLowerCase()}.h2p`) { filteredPresets.push(preset); break; } } } return filteredPresets; } //# sourceMappingURL=libraryFilters.js.map