Update docstring to include new warp modes; save sample server for a separate PR
This commit is contained in:
parent
d1869c18ba
commit
fe46e1da53
2 changed files with 15 additions and 34 deletions
|
|
@ -110,14 +110,8 @@ export const { wtWarp, wavetableWarp } = registerControl('wtWarp', 'wavetableWar
|
||||||
/**
|
/**
|
||||||
* Amount of warp (alteration of the waveform) to apply to the wavetable oscillator.
|
* Amount of warp (alteration of the waveform) to apply to the wavetable oscillator.
|
||||||
*
|
*
|
||||||
* The current options are:
|
* The current options are: none, asym, bendp, bendm, bendmp, sync, quant, fold, pwm, orbit,
|
||||||
* 0 = asym
|
* spin, chaos, primes, binary, brownian, reciprocal, wormhole, logistic, sigmoid, fractal, flip
|
||||||
* 1 = mirror
|
|
||||||
* 2 = bend+
|
|
||||||
* 3 = bend-
|
|
||||||
* 4 = bend+/-
|
|
||||||
* 5 = sync
|
|
||||||
* 6 = quantize
|
|
||||||
*
|
*
|
||||||
* @name wtWarpMode
|
* @name wtWarpMode
|
||||||
* @param {number | Pattern} mode Warp mode: an integer
|
* @param {number | Pattern} mode Warp mode: an integer
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
import cowsay from 'cowsay';
|
import cowsay from 'cowsay';
|
||||||
import { createReadStream, existsSync, writeFileSync } from 'fs';
|
import { createReadStream, existsSync } from 'fs';
|
||||||
import { readdir } from 'fs/promises';
|
import { readdir } from 'fs/promises';
|
||||||
import http from 'http';
|
import http from 'http';
|
||||||
import { join, sep, resolve } from 'path';
|
import { join, sep } from 'path';
|
||||||
import os from 'os';
|
import os from 'os';
|
||||||
|
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
|
|
@ -36,19 +36,17 @@ async function getFilesInDirectory(directory) {
|
||||||
return files;
|
return files;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getBanks(directory, flat = false) {
|
async function getBanks(directory) {
|
||||||
let files = await getFilesInDirectory(directory);
|
let files = await getFilesInDirectory(directory);
|
||||||
let banks = {};
|
let banks = {};
|
||||||
directory = directory.split(sep).join('/');
|
directory = directory.split(sep).join('/');
|
||||||
files = files.map((path) => {
|
files = files.map((path) => {
|
||||||
path = path.split(sep).join('/');
|
path = path.split(sep).join('/');
|
||||||
const subDir = path.replace(directory, '');
|
const [bank] = path.split('/').slice(-2);
|
||||||
const subDirFlat = subDir.replaceAll('/', '_').slice(1); // remove initial underscore
|
|
||||||
const subDirFlatStem = subDirFlat.replace(/\.[^.]+$/, ''); // remove extension
|
|
||||||
let bank = flat ? subDirFlatStem : subDir.split('/')[0];
|
|
||||||
banks[bank] = banks[bank] || [];
|
banks[bank] = banks[bank] || [];
|
||||||
banks[bank].push(subDir);
|
const relativeUrl = path.replace(directory, '');
|
||||||
return subDir;
|
banks[bank].push(relativeUrl);
|
||||||
|
return relativeUrl;
|
||||||
});
|
});
|
||||||
banks._base = `http://localhost:5432`;
|
banks._base = `http://localhost:5432`;
|
||||||
return { banks, files };
|
return { banks, files };
|
||||||
|
|
@ -56,25 +54,14 @@ async function getBanks(directory, flat = false) {
|
||||||
|
|
||||||
const args = process.argv.slice(2);
|
const args = process.argv.slice(2);
|
||||||
|
|
||||||
function getArgValue(flag) {
|
|
||||||
const i = args.indexOf(flag);
|
|
||||||
if (i !== -1) {
|
|
||||||
const nextIsFlag = args[i + 1]?.startsWith('--') ?? true;
|
|
||||||
if (nextIsFlag) return true;
|
|
||||||
return args[i + 1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
let directory = getArgValue('--dir') || process.cwd();
|
const directory = process.cwd();
|
||||||
directory = resolve(directory);
|
|
||||||
|
|
||||||
if (args.includes('--json')) {
|
if (args.includes('--json')) {
|
||||||
const { banks } = await getBanks(directory, getArgValue('--flat'));
|
const { banks, files } = await getBanks(directory);
|
||||||
const json = JSON.stringify(banks);
|
const json = JSON.stringify(banks);
|
||||||
const outFile = resolve(directory, 'strudel.json');
|
console.log(json);
|
||||||
writeFileSync(outFile, json, 'utf8');
|
process.exit(0);
|
||||||
console.log(`Wrote json to ${outFile}`);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
|
|
@ -87,7 +74,7 @@ console.log(
|
||||||
|
|
||||||
const server = http.createServer(async (req, res) => {
|
const server = http.createServer(async (req, res) => {
|
||||||
res.setHeader('Access-Control-Allow-Origin', '*');
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
||||||
const { banks, files } = await getBanks(directory, getArgValue('--flat'));
|
const { banks, files } = await getBanks(directory);
|
||||||
if (req.url === '/') {
|
if (req.url === '/') {
|
||||||
res.setHeader('Content-Type', 'application/json');
|
res.setHeader('Content-Type', 'application/json');
|
||||||
return res.end(JSON.stringify(banks));
|
return res.end(JSON.stringify(banks));
|
||||||
|
|
@ -95,7 +82,7 @@ const server = http.createServer(async (req, res) => {
|
||||||
let subpath = decodeURIComponent(req.url);
|
let subpath = decodeURIComponent(req.url);
|
||||||
const filePath = join(directory, subpath.split('/').join(sep));
|
const filePath = join(directory, subpath.split('/').join(sep));
|
||||||
|
|
||||||
// console.log('GET:', filePath);
|
//console.log('GET:', filePath);
|
||||||
const isFound = existsSync(filePath);
|
const isFound = existsSync(filePath);
|
||||||
if (!isFound) {
|
if (!isFound) {
|
||||||
res.statusCode = 404;
|
res.statusCode = 404;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue