sointu/convert.js
2023-04-06 12:12:24 +00:00

1084 lines
29 KiB
JavaScript

import yaml from 'json-to-pretty-yaml';
import groove from './tests/grooveisinthecode.js';
import { writeFile } from 'fs/promises';
const doc = {
bpm: groove.BPM,
rowsperbeat: 4,
score: {
length: groove.instrumentPatternLists[0].length,
rowsperpattern: groove.patternsize,
tracks: groove.instrumentPatternLists.slice(0, 7).map(track => {
const patternMap = {};
track.forEach(patternIndex => {
patternMap[`${patternIndex}`] = groove.patterns[patternIndex-1];
});
const patternIndices = Object.keys(patternMap);
const patterns = patternIndices.map(patternIndex => patternMap[`${patternIndex}`]);
const order = track.map((patternIndex) => {
return patternIndices.indexOf(`${patternIndex}`);
});
return {
numvoices: 1,
order,
patterns
}
})
},
patch: [
{
"numvoices": 1,
"units": [
{
"type": "oscillator",
"parameters": {
"color": 2,
"detune": 48,
"gain": 16,
"lfo": 0,
"phase": 0,
"shape": 63,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "oscillator",
"parameters": {
"color": 126,
"detune": 78,
"gain": 16,
"phase": 0,
"shape": 64,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "oscillator",
"parameters": {
"color": 2,
"detune": 59,
"gain": 16,
"phase": 0,
"shape": 64,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "noise",
"parameters": {
"gain": 6,
"shape": 64,
"stereo": 1
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 128,
"highpass": 1,
"lowpass": 0,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 1
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "envelope",
"parameters": {
"attack": 50,
"decay": 64,
"gain": 96,
"release": 64,
"stereo": 1,
"sustain": 64
}
},
{
"type": "mulp",
"parameters": {
"stereo": 1
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 32,
"highpass": 1,
"lowpass": 0,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 1
}
},
{
"type": "delay",
"parameters": {
"damp": 64,
"dry": 64,
"feedback": 64,
"notetracking": 0,
"pregain": 64,
"stereo": 1
},
"varargs": [
9187,
9187
]
},
{
"type": "outaux",
"parameters": {
"auxgain": 128,
"outgain": 0,
"stereo": 1
}
}
]
},
{
"numvoices": 1,
"units": [
{
"type": "envelope",
"parameters": {
"attack": 48,
"decay": 63,
"gain": 128,
"release": 64,
"stereo": 0,
"sustain": 0
}
},
{
"type": "distort",
"parameters": {
"drive": 112,
"stereo": 0
}
},
{
"type": "oscillator",
"parameters": {
"color": 0,
"detune": 64,
"gain": 128,
"looplength": 1486,
"loopstart": 2536,
"phase": 64,
"samplestart": 250849,
"shape": 64,
"stereo": 0,
"transpose": 64,
"type": 1,
"unison": 0
}
},
{
"type": "mulp",
"parameters": {
"stereo": 0
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 16,
"highpass": 1,
"lowpass": 0,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 0
}
},
{
"type": "filter",
"id": 1,
"parameters": {
"bandpass": 0,
"frequency": 22,
"highpass": 0,
"lowpass": 1,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 0
}
},
{
"type": "pan",
"parameters": {
"panning": 64,
"stereo": 0
}
},
{
"type": "out",
"parameters": {
"gain": 128,
"stereo": 1
}
},
{
"parameters": {}
},
{
"type": "envelope",
"parameters": {
"attack": 0,
"decay": 64,
"gain": 128,
"release": 0,
"stereo": 0,
"sustain": 0
}
},
{
"type": "distort",
"parameters": {
"drive": 32,
"stereo": 0
}
},
{
"type": "send",
"parameters": {
"amount": 79,
"port": 0,
"sendpop": 1,
"stereo": 0,
"target": 1
}
}
]
},
{
"numvoices": 1,
"units": [
{
"type": "oscillator",
"parameters": {
"color": 2,
"detune": 48,
"gain": 16,
"lfo": 0,
"phase": 0,
"shape": 63,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "oscillator",
"parameters": {
"color": 126,
"detune": 78,
"gain": 16,
"phase": 0,
"shape": 64,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "oscillator",
"parameters": {
"color": 2,
"detune": 59,
"gain": 16,
"phase": 0,
"shape": 64,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "noise",
"parameters": {
"gain": 6,
"shape": 64,
"stereo": 1
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 128,
"highpass": 1,
"lowpass": 0,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 1
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "envelope",
"parameters": {
"attack": 50,
"decay": 64,
"gain": 96,
"release": 64,
"stereo": 1,
"sustain": 64
}
},
{
"type": "mulp",
"parameters": {
"stereo": 1
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 32,
"highpass": 1,
"lowpass": 0,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 1
}
},
{
"type": "delay",
"parameters": {
"damp": 64,
"dry": 64,
"feedback": 64,
"notetracking": 0,
"pregain": 64,
"stereo": 1
},
"varargs": [
9187,
9187
]
},
{
"type": "outaux",
"parameters": {
"auxgain": 128,
"outgain": 0,
"stereo": 1
}
}
]
},
{
"numvoices": 1,
"units": [
{
"type": "oscillator",
"parameters": {
"color": 2,
"detune": 48,
"gain": 16,
"lfo": 0,
"phase": 0,
"shape": 63,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "oscillator",
"parameters": {
"color": 126,
"detune": 78,
"gain": 16,
"phase": 0,
"shape": 64,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "oscillator",
"parameters": {
"color": 2,
"detune": 59,
"gain": 16,
"phase": 0,
"shape": 64,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "noise",
"parameters": {
"gain": 6,
"shape": 64,
"stereo": 1
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 128,
"highpass": 1,
"lowpass": 0,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 1
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "envelope",
"parameters": {
"attack": 50,
"decay": 64,
"gain": 96,
"release": 64,
"stereo": 1,
"sustain": 64
}
},
{
"type": "mulp",
"parameters": {
"stereo": 1
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 32,
"highpass": 1,
"lowpass": 0,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 1
}
},
{
"type": "delay",
"parameters": {
"damp": 64,
"dry": 64,
"feedback": 64,
"notetracking": 0,
"pregain": 64,
"stereo": 1
},
"varargs": [
9187,
9187
]
},
{
"type": "outaux",
"parameters": {
"auxgain": 128,
"outgain": 0,
"stereo": 1
}
}
]
},
{
"numvoices": 1,
"units": [
{
"type": "oscillator",
"parameters": {
"color": 2,
"detune": 48,
"gain": 16,
"lfo": 0,
"phase": 0,
"shape": 63,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "oscillator",
"parameters": {
"color": 126,
"detune": 78,
"gain": 16,
"phase": 0,
"shape": 64,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "oscillator",
"parameters": {
"color": 2,
"detune": 59,
"gain": 16,
"phase": 0,
"shape": 64,
"stereo": 1,
"transpose": 64,
"type": 1,
"unison": 3
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "noise",
"parameters": {
"gain": 6,
"shape": 64,
"stereo": 1
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 128,
"highpass": 1,
"lowpass": 0,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 1
}
},
{
"type": "addp",
"parameters": {
"stereo": 1
}
},
{
"type": "envelope",
"parameters": {
"attack": 50,
"decay": 64,
"gain": 96,
"release": 64,
"stereo": 1,
"sustain": 64
}
},
{
"type": "mulp",
"parameters": {
"stereo": 1
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 32,
"highpass": 1,
"lowpass": 0,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 1
}
},
{
"type": "delay",
"parameters": {
"damp": 64,
"dry": 64,
"feedback": 64,
"notetracking": 0,
"pregain": 64,
"stereo": 1
},
"varargs": [
9187,
9187
]
},
{
"type": "outaux",
"parameters": {
"auxgain": 128,
"outgain": 0,
"stereo": 1
}
}
]
},
{
"numvoices": 1,
"units": [
{
"type": "envelope",
"parameters": {
"attack": 36,
"decay": 69,
"gain": 128,
"release": 32,
"stereo": 0,
"sustain": 0
}
},
{
"type": "distort",
"parameters": {
"drive": 112,
"stereo": 0
}
},
{
"type": "oscillator",
"id": 1,
"parameters": {
"color": 128,
"detune": 64,
"gain": 128,
"looplength": 1,
"phase": 0,
"shape": 64,
"stereo": 0,
"transpose": 64,
"type": 0
}
},
{
"type": "mulp",
"parameters": {
"stereo": 0
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 14,
"highpass": 1,
"lowpass": 0,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 0
}
},
{
"type": "push",
"parameters": {
"stereo": 0
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 16,
"highpass": 0,
"lowpass": 1,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 0
}
},
{
"type": "delay",
"parameters": {
"count": 8,
"damp": 64,
"delay": 1,
"dry": 0,
"feedback": 96,
"notetracking": 0,
"pregain": 32,
"stereo": 0
},
"varargs": [
1116,
1188,
1276,
1356,
1422,
1492,
1556,
1618
]
},
{
"type": "addp",
"parameters": {
"stereo": 0
}
},
{
"type": "pan",
"parameters": {
"panning": 64,
"stereo": 0
}
},
{
"type": "out",
"parameters": {
"gain": 64,
"stereo": 1
}
},
{
"parameters": {}
},
{
"type": "envelope",
"parameters": {
"attack": 0,
"decay": 70,
"gain": 128,
"release": 70,
"stereo": 0,
"sustain": 0
}
},
{
"type": "distort",
"parameters": {
"drive": 5,
"stereo": 0
}
},
{
"type": "send",
"parameters": {
"amount": 101,
"port": 0,
"sendpop": 1,
"stereo": 0,
"target": 1
}
},
{
"parameters": {}
},
{
"type": "envelope",
"parameters": {
"attack": 48,
"decay": 58,
"gain": 128,
"release": 0,
"stereo": 0,
"sustain": 0
}
},
{
"type": "distort",
"parameters": {
"drive": 64,
"stereo": 0
}
},
{
"type": "send",
"parameters": {
"amount": 32,
"port": 5,
"sendpop": 1,
"stereo": 0,
"target": 1,
"unit": 0,
"voice": 0
}
}
]
},
{
"numvoices": 1,
"units": [
{
"type": "envelope",
"parameters": {
"attack": 32,
"decay": 60,
"gain": 128,
"release": 0,
"stereo": 0,
"sustain": 0
}
},
{
"type": "oscillator",
"id": 1,
"parameters": {
"color": 64,
"detune": 64,
"gain": 128,
"phase": 0,
"shape": 64,
"stereo": 0,
"transpose": 64,
"type": 1
}
},
{
"type": "mulp",
"parameters": {
"stereo": 0
}
},
{
"parameters": {}
},
{
"type": "envelope",
"parameters": {
"attack": 32,
"decay": 64,
"gain": 64,
"release": 66,
"stereo": 0,
"sustain": 0
}
},
{
"type": "distort",
"parameters": {
"drive": 32,
"stereo": 0
}
},
{
"type": "noise",
"parameters": {
"gain": 64,
"shape": 64,
"stereo": 0
}
},
{
"type": "mulp",
"parameters": {
"stereo": 0
}
},
{
"type": "filter",
"parameters": {
"bandpass": 0,
"frequency": 106,
"highpass": 1,
"lowpass": 0,
"negbandpass": 0,
"neghighpass": 0,
"resonance": 128,
"stereo": 0
}
},
{
"type": "addp",
"parameters": {
"stereo": 0
}
},
{
"parameters": {}
},
{
"type": "distort",
"parameters": {
"drive": 112,
"stereo": 0
}
},
{
"type": "delay",
"parameters": {
"count": 8,
"damp": 0,
"delay": 1,
"dry": 128,
"feedback": 40,
"notetracking": 0,
"pregain": 24,
"stereo": 0
},
"varargs": [
1116,
1188,
1276,
1356,
1422,
1492,
1556,
1618
]
},
{
"type": "compressor",
"parameters": {
"attack": 51,
"invgain": 64,
"ratio": 112,
"release": 49,
"stereo": 0,
"threshold": 64
}
},
{
"type": "mulp",
"parameters": {
"stereo": 0
}
},
{
"parameters": {}
},
{
"type": "pan",
"parameters": {
"panning": 68,
"stereo": 0
}
},
{
"type": "outaux",
"parameters": {
"auxgain": 0,
"outgain": 64,
"stereo": 1
}
},
{
"parameters": {}
},
{
"type": "envelope",
"parameters": {
"attack": 0,
"decay": 60,
"gain": 128,
"release": 0,
"stereo": 0,
"sustain": 0
}
},
{
"type": "distort",
"parameters": {
"drive": 5,
"stereo": 0
}
},
{
"type": "send",
"parameters": {
"amount": 90,
"port": 0,
"sendpop": 1,
"stereo": 0,
"target": 1,
"unit": 0,
"voice": 0
}
}
]
}
]
}
await writeFile('tests/groove.yaml', yaml.stringify(doc));