Improve instrument ripper C++ output and add some instruments from Dune 2.
This commit is contained in:
parent
fd1b40182a
commit
a2c16c0aec
2 changed files with 83 additions and 15 deletions
|
@ -105,6 +105,7 @@ JuceOplvstiAudioProcessor::JuceOplvstiAudioProcessor()
|
||||||
|
|
||||||
void JuceOplvstiAudioProcessor::initPrograms()
|
void JuceOplvstiAudioProcessor::initPrograms()
|
||||||
{
|
{
|
||||||
|
// these ones from the Syndicate in-game music
|
||||||
const float i_params_0[] = {
|
const float i_params_0[] = {
|
||||||
0.000000f, 0.660000f, // waveforms
|
0.000000f, 0.660000f, // waveforms
|
||||||
0.066667f, 0.133333f, // frq multipliers
|
0.066667f, 0.133333f, // frq multipliers
|
||||||
|
@ -209,6 +210,68 @@ void JuceOplvstiAudioProcessor::initPrograms()
|
||||||
};
|
};
|
||||||
std::vector<float> v_i_params_97283 (i_params_97283, i_params_97283 + sizeof(i_params_97283) / sizeof(float));
|
std::vector<float> v_i_params_97283 (i_params_97283, i_params_97283 + sizeof(i_params_97283) / sizeof(float));
|
||||||
programs["Instr 97283"] = std::vector<float>(v_i_params_97283);
|
programs["Instr 97283"] = std::vector<float>(v_i_params_97283);
|
||||||
|
|
||||||
|
// The start of the Dune 2 introduction
|
||||||
|
const float i_params_3136[] = {
|
||||||
|
0.000000f, 0.660000f, // waveforms
|
||||||
|
0.133333f, 0.133333f, // frq multipliers
|
||||||
|
0.000000f, 0.333333f, // attenuation
|
||||||
|
0.0f, 0.0f, 0.0f, 0.0f, // tre / vib / sus / ks
|
||||||
|
0.0f, 0.0f, 0.0f, 0.0f, // tre / vib / sus / ks
|
||||||
|
0.000000f, 0.330000f, // KSR/8ve
|
||||||
|
0.000000f, // algorithm
|
||||||
|
0.571429f, // feedback
|
||||||
|
1.0f, 0.1f, 0.1f, 0.3f, // adsr
|
||||||
|
1.0f, 0.4f, 0.2f, 0.3f, // adsr
|
||||||
|
};
|
||||||
|
std::vector<float> v_i_params_3136 (i_params_3136, i_params_3136 + sizeof(i_params_3136) / sizeof(float));
|
||||||
|
programs["Instr 3136"] = std::vector<float>(v_i_params_3136);
|
||||||
|
|
||||||
|
const float i_params_7254[] = {
|
||||||
|
0.000000f, 0.330000f, // waveforms
|
||||||
|
0.066667f, 0.066667f, // frq multipliers
|
||||||
|
0.253968f, 0.476190f, // attenuation
|
||||||
|
1.0f, 1.0f, 1.0f, 1.0f, // tre / vib / sus / ks
|
||||||
|
1.0f, 1.0f, 0.0f, 0.0f, // tre / vib / sus / ks
|
||||||
|
0.000000f, 0.330000f, // KSR/8ve
|
||||||
|
0.000000f, // algorithm
|
||||||
|
0.571429f, // feedback
|
||||||
|
0.1f, 0.1f, 0.1f, 0.1f, // adsr
|
||||||
|
0.2f, 0.1f, 0.1f, 0.0f, // adsr
|
||||||
|
};
|
||||||
|
std::vector<float> v_i_params_7254 (i_params_7254, i_params_7254 + sizeof(i_params_7254) / sizeof(float));
|
||||||
|
programs["Instr 7254"] = std::vector<float>(v_i_params_7254);
|
||||||
|
|
||||||
|
const float i_params_20108[] = {
|
||||||
|
0.000000f, 0.000000f, // waveforms
|
||||||
|
0.400000f, 0.066667f, // frq multipliers
|
||||||
|
0.238095f, 0.000000f, // attenuation
|
||||||
|
1.0f, 1.0f, 1.0f, 0.0f, // tre / vib / sus / ks
|
||||||
|
0.0f, 1.0f, 1.0f, 0.0f, // tre / vib / sus / ks
|
||||||
|
0.000000f, 0.330000f, // KSR/8ve
|
||||||
|
0.000000f, // algorithm
|
||||||
|
0.000000f, // feedback
|
||||||
|
0.1f, 0.1f, 0.1f, 0.1f, // adsr
|
||||||
|
0.1f, 0.1f, 0.1f, 0.1f, // adsr
|
||||||
|
};
|
||||||
|
std::vector<float> v_i_params_20108 (i_params_20108, i_params_20108 + sizeof(i_params_20108) / sizeof(float));
|
||||||
|
programs["Instr 20108"] = std::vector<float>(v_i_params_20108);
|
||||||
|
|
||||||
|
const float i_params_27550[] = {
|
||||||
|
1.000000f, 0.000000f, // waveforms
|
||||||
|
0.000000f, 0.066667f, // frq multipliers
|
||||||
|
0.238095f, 0.793651f, // attenuation
|
||||||
|
0.0f, 1.0f, 0.0f, 0.0f, // tre / vib / sus / ks
|
||||||
|
0.0f, 0.0f, 1.0f, 1.0f, // tre / vib / sus / ks
|
||||||
|
0.000000f, 0.000000f, // KSR/8ve
|
||||||
|
0.000000f, // algorithm
|
||||||
|
0.571429f, // feedback
|
||||||
|
1.0f, 0.0f, 1.0f, 1.0f, // adsr
|
||||||
|
0.9f, 0.1f, 0.0f, 1.0f, // adsr
|
||||||
|
};
|
||||||
|
std::vector<float> v_i_params_27550 (i_params_27550, i_params_27550 + sizeof(i_params_27550) / sizeof(float));
|
||||||
|
programs["Instr 27550"] = std::vector<float>(v_i_params_27550);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JuceOplvstiAudioProcessor::~JuceOplvstiAudioProcessor()
|
JuceOplvstiAudioProcessor::~JuceOplvstiAudioProcessor()
|
||||||
|
|
|
@ -305,23 +305,28 @@ def output_instrument_vst_program(json_i, ts):
|
||||||
try:
|
try:
|
||||||
d = json.loads(json_i)
|
d = json.loads(json_i)
|
||||||
m=d[0]; c=d[1]
|
m=d[0]; c=d[1]
|
||||||
|
lines = [
|
||||||
|
' const float i_params_%d[] = {' % ts,
|
||||||
|
' %.6ff, %.6ff, // waveforms' % (W2F[c['wav']], W2F[m['wav']]),
|
||||||
|
' %.6ff, %.6ff, // frq multipliers' % (m2f(c['fm_mult']), m2f(m['fm_mult'])),
|
||||||
|
' %.6ff, %.6ff, // attenuation' % (a2f(c['db']), a2f(m['db'])),
|
||||||
|
' %.1ff, %.1ff, %.1ff, %.1ff, // tre / vib / sus / ks' % tuple([b2f(c[x]) for x in ['tre', 'vib', 'sus', 'ksr']]),
|
||||||
|
' %.1ff, %.1ff, %.1ff, %.1ff, // tre / vib / sus / ks' % tuple([b2f(m[x]) for x in ['tre', 'vib', 'sus', 'ksr']]),
|
||||||
|
' %.6ff, %.6ff, // KSR/8ve' % (D2F[c['db_oct']], D2F[m['db_oct']]),
|
||||||
|
' %.6ff, // algorithm' % (1.0 if 'ADD'==d[2]['alg'] else 0.0),
|
||||||
|
' %.6ff, // feedback' % (float(d[2]['feedback'])/7.0),
|
||||||
|
' %.1ff, %.1ff, %.1ff, %.1ff, // adsr' % tuple([e2f(c[x]) for x in ['a', 'd', 's', 'r']]),
|
||||||
|
' %.1ff, %.1ff, %.1ff, %.1ff, // adsr' % tuple([e2f(m[x]) for x in ['a', 'd', 's', 'r']]),
|
||||||
|
' };',
|
||||||
|
' std::vector<float> v_i_params_%d (i_params_%d, i_params_%d + sizeof(i_params_%d) / sizeof(float));' % (ts,ts,ts,ts),
|
||||||
|
' programs["Instr %d"] = std::vector<float>(v_i_params_%d);' % (ts, ts),
|
||||||
|
]
|
||||||
print
|
print
|
||||||
print ' const float i_params_%d[] = {' % ts
|
print '\n'.join(lines)
|
||||||
print ' %.6ff, %.6ff, // waveforms' % (W2F[c['wav']], W2F[m['wav']])
|
|
||||||
print ' %.6ff, %.6ff, // frq multipliers' % (m2f(c['fm_mult']), m2f(m['fm_mult']))
|
|
||||||
print ' %.6ff, %.6ff, // attenuation' % (a2f(c['db']), a2f(m['db']))
|
|
||||||
print ' %.1ff, %.1ff, %.1ff, %.1ff, // tre / vib / sus / ks' % tuple([b2f(c[x]) for x in ['tre', 'vib', 'sus', 'ksr']])
|
|
||||||
print ' %.1ff, %.1ff, %.1ff, %.1ff, // tre / vib / sus / ks' % tuple([b2f(m[x]) for x in ['tre', 'vib', 'sus', 'ksr']])
|
|
||||||
print ' %.6ff, %.6ff, // KSR/8ve' % (D2F[c['db_oct']], D2F[m['db_oct']])
|
|
||||||
print ' %.6ff, // algorithm' % (1.0 if 'ADD'==d[2]['alg'] else 0.0)
|
|
||||||
print ' %.6ff, // feedback' % (float(d[2]['feedback'])/7.0)
|
|
||||||
print ' %.1ff, %.1ff, %.1ff, %.1ff, // adsr' % tuple([e2f(c[x]) for x in ['a', 'd', 's', 'r']])
|
|
||||||
print ' %.1ff, %.1ff, %.1ff, %.1ff, // adsr' % tuple([e2f(m[x]) for x in ['a', 'd', 's', 'r']])
|
|
||||||
print ' };'
|
|
||||||
print ' std::vector<float> v_i_params_%d (i_params_%d, i_params_%d + sizeof(i_params_%d) / sizeof(float));' % (ts,ts,ts,ts)
|
|
||||||
print ' programs["Instr %d"] = std::vector<float>(v_i_params_%d);' % (ts, ts)
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print 'incomplete instrument?'
|
pass
|
||||||
|
#print
|
||||||
|
#print '// incomplete instrument..'
|
||||||
|
|
||||||
def main(argv):
|
def main(argv):
|
||||||
events = parse_opldump(sys.stdin)
|
events = parse_opldump(sys.stdin)
|
||||||
|
|
Loading…
Reference in a new issue