| |
Martin Piper
Registered: Nov 2007 Posts: 699 |
Sample streaming from tape
Has anyone done four bit sample streaming from tape before? I'm thinking the time between pulses can be directly translated to four bit volume values as they are read from tape.
Practically useless, except for pure geekyness. But I wanted to know if it's been done, before I do it myself. |
|
... 36 posts hidden. Click here to view all posts.... |
| |
Oswald
Registered: Apr 2002 Posts: 5074 |
Quote: Improved sample rate. Same instructions and links as post #16 above...
Download this PRG: https://github.com/martinpiper/C64Public/raw/master/IRQTape/Tap..
Download this TAP file: https://github.com/martinpiper/C64Public/raw/master/IRQTape/vic..
You should see narrow colour bars indicating the volume this time. This time it's using "Tom's Diner".
that sounds very good |
| |
Martin Piper
Registered: Nov 2007 Posts: 699 |
Quote: At least to test jitter. Iirc, 95% Jitter is surprisingly small, within a 6 cycle window. But the other 5% are far off, so you have to increase your pulse lengths. And if you want to write with a PC, you will stick to 44100 anyways.
But why is there so much noise in this sample??
Downloaded from YouTube. Volume increased to increase the range of volume bits used. Also the quantization is accentuating rumble and hiss. |
| |
tlr
Registered: Sep 2003 Posts: 1762 |
Quote: Downloaded from YouTube. Volume increased to increase the range of volume bits used. Also the quantization is accentuating rumble and hiss.
With this variable sample rate, how do you do your downsampling/alias filtering of the source material? |
| |
Martin Piper
Registered: Nov 2007 Posts: 699 |
Quote: With this variable sample rate, how do you do your downsampling/alias filtering of the source material?
I don't, which obviously doesn't help at all. :)
New build using IRQ (and a NOP fill) is available at the same links as post #16. The sound quality is improved because there is less jitter in the pulse detection. I was also able to add timer underflow detection which clamps the volume appropriately.
Anyone recognise the music? :) |
| |
Martin Piper
Registered: Nov 2007 Posts: 699 |
Hmm, so at the moment the 16 volume values are separated by 16 cycles, which is 256 cycles in total. A base value or 56 cycles is added. This means an early pulse or longer pulse (due to tape speed or wobble) has the high timer bit set.
The timer is setup to count cycles to measure the pulse length... The read of the high timer value and the associated branch adds precious cycles to the IRQ, which reduces the overall maximum volume value rate from the tape.
However... what if the one timer was setup to count not cycles but "cycles divided by 2" instead. This would allow the middle 128 value range of the timer to represent the desired pulses and anything outside that range to represent undesired values and clamp the volume appropriately.
This would mean the timer is doing the underflow check, not the CPU, which would save precious cycles in the IRQ and allow a higher sample rate. |
| |
Hoogo
Registered: Jun 2002 Posts: 103 |
You can't have less than 2 cycles of jitter, so a long column of INX can do the counting instead. Just add a Jmp * at the end. |
| |
tlr
Registered: Sep 2003 Posts: 1762 |
Quote: You can't have less than 2 cycles of jitter, so a long column of INX can do the counting instead. Just add a Jmp * at the end.
very clever, then you can just interweave nop's and inx's to acheive the counting rate you desire. Also, if you have decided on an acceptable range for each transition, the inx/nop chain need not be repeated, you can add a branch where there is supposed to be no transition. |
| |
Martin Piper
Registered: Nov 2007 Posts: 699 |
Quote: You can't have less than 2 cycles of jitter, so a long column of INX can do the counting instead. Just add a Jmp * at the end.
Could do. But I actually want to use the mainline for other code. :) Perhaps even enable the screen with some scroller... |
| |
Martin Piper
Registered: Nov 2007 Posts: 699 |
Interesting. If you're using vice, in the monitor do "> d011 1b" and the sample quality with the screen on can be heard.
Not too bad. Time for a scroller? :) |
| |
Martin Piper
Registered: Nov 2007 Posts: 699 |
Links updated with 6.3KHz sample rate now.
Timer A and B are used, which means the CIA can do the underflow and overflow check for free. So the IRQ sample play is much simpler. |
Previous - 1 | 2 | 3 | 4 | 5 - Next |