Commit Graph

18 Commits

Author SHA1 Message Date
kris
5fb995c435 Credit Scott in README 2020-08-16 23:19:48 +01:00
kris
4767ee51fd Fixup player timings and opcode variants for 65c02 timings since JMP
(indirect) takes 5 cycles not 6!  It should be possible to also
accommodate 6502 timings in a followup.

h/t to Scott Duensing who noticed that my sample audio sounded "a tad
slow", which turned out to be due to this 1-cycle difference (which
added up to almost an extra minute playback to an 8-minute song).

Add comments and tidy up the code a bit.

Flesh out README some more.
2020-08-16 23:15:30 +01:00
kris
9e0e1fcbcb One more fix 2020-08-15 23:24:25 +01:00
kris
790c2bc1ec Revise and update 2020-08-15 23:22:27 +01:00
kris
86cd1e1114 1MHz encoder and player
- we simulate the speaker at full 1-cycle resolution, and
  evaluate all possible opcodes that can be scheduled for the
  given position in the TCP stream
- this lets us tick the speaker at any cycle interval >=9 (except 10
  cycles)
2020-08-13 22:08:50 +01:00
kris
eeeb457b23 Add an example file. This was encoded with lookahead 11. 2020-08-12 22:10:38 +01:00
kris
08f3a58a7f Add missing makefile and tidy up a bit. 2020-08-12 22:08:27 +01:00
kris
9c08e31cb0 Remove dead code and assemble at $2000 instead. 2020-08-12 21:48:54 +01:00
KrisKennaway
ebe9cd688e
Happy 70th birthday Woz! 2020-08-12 00:14:20 +01:00
kris
b35e4f86fb Add shebang and tidy some more 2020-08-11 23:26:55 +01:00
kris
1bbbd8c154 Merge preprocess_audio back in. We didn't end up getting a speed
boost from pypy, perhaps because the critical path is in numpy code.

Add some comments and clean up a bit.
2020-08-11 23:23:33 +01:00
kris
7ff129346e Merge branch 'master' of https://github.com/KrisKennaway/ii-sound 2020-08-11 23:18:28 +01:00
kris
61cdda6cd1 Rename 2020-08-11 23:18:20 +01:00
KrisKennaway
1b2eede9fb
Create README.md 2020-08-11 23:17:46 +01:00
kris
1d8ed9e8aa Clean up, add comments and include disk image 2020-08-11 22:36:33 +01:00
kris
2f341bda99 Support files for btc build 2020-08-11 21:53:48 +01:00
kris
0f8ad1bf17 Checkpoint working code that implements delta modulation with look-ahead.
I split out preprocess_audio because scipy/librosa don't run under
pypy and I was hoping that would speed up the encoding, but it does
not for some reason (maybe numpy interactions?)

Anyway, I should be able to vectorize the slow path which will likely
help a lot.
2020-08-10 21:03:12 +01:00
kris
d283789199 Initial commit of working delta modulation playback over ethernet
(moved over from rewolf repository).

Using a 13-cycle period neatly divides the 65-cycle 'long cycle'
period of the Apple II which avoids audio transients when playing
'silence'.  This also aligns with the horizontal refresh period which
should make it possible to do some interesting visual effects.

TODO
- implement predictive encoding that looks ahead to next N samples and
  minimizes average error.  This should improve quality

- get page-flipping effects looking nice
2020-08-07 12:50:32 +01:00