Agreed to try adding a SID to the pokeymax.
Eclaire is a good test bed for this, so starting out with that
Also got this potential USB sharing, that'd save 750 ALMS. Each request/reply is host initiated, so no reason can't share one. Keepalives would need to go to both ports. Not sure how complex that'd be! Perhaps I plumb the output to both, with a mux for when I send explicit in/out requests?
I loaded the tables in to octave to take a look.Observations...
- Not a simple curve
- Lots of zeros, >80% in some cases
- Quite a lot of dupes
ans = 6.5699
ans = 4.7549
ans = 5.8074
ans = 4.5850
ans = 0.63379
ans = 0.86743
ans = 0.58545
ans = 0.89331
Did some research over the weekend. Generating these isn't a terribly trivial problem!
I tried for some time to generate in matlab. I came up with a pretty good solution for wave 3: triangle + sawtooth. Actually its sawtooth + 2 sawtooth since the triangle is inverted. Anyway this worked pretty well:
tmp = zeros(size(a));
post = k;
pre = 1;
post = 12;
idx = pre:post;
if a(idx) == b(idx);
tmp(k) = b(k);
i.e. and and if in conflict, ground the 4 adjacent bits.
Was struggling with the pulse + triangle one, now come up with an easy answer for that one yet!
Anyway found some description of what is going on in the libsidplayfp + some functions to generate:
Also the wave files are here: