Rybags Posted November 18, 2016 Share Posted November 18, 2016 I've not looked at this one on the inside but I would guess like the earlier one near saturation for the Sid emulation part which leaves those few cycles per scanline remaining for the tracker to execute. So, no go for in-game or loading. With a little sacrifice in quality would probably go fine with a sparse title screen. Quote Link to comment Share on other sites More sharing options...
rdefabri Posted November 18, 2016 Share Posted November 18, 2016 So I'm a little dense - this emulates SID or is this actually POKEY creating SID-like sounds? Quote Link to comment Share on other sites More sharing options...
Rybags Posted November 18, 2016 Share Posted November 18, 2016 Sid emulation, but for this version some (all?) of the noise type is translated and Pokey noise used. Quote Link to comment Share on other sites More sharing options...
ivop Posted November 18, 2016 Author Share Posted November 18, 2016 Sid emulation, but for this version some (all?) of the noise type is translated and Pokey noise used. Yes, all noise is done with pokey's own noise generators. The range is limited though, because we are in 15kHz mode. No huge table is used (like it was in sid2gumby) to convert the frequency values, but a rough approximation. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 18, 2016 Share Posted November 18, 2016 ok... again my question if this could be used on other 6502 machines like Atari Lynx? does this play only with volume bits (so samples) or does it use actually "pokey" and does a sid-freq2pokey-freq translation? Quote Link to comment Share on other sites More sharing options...
ivop Posted November 18, 2016 Author Share Posted November 18, 2016 (edited) ok... again my question if this could be used on other 6502 machines like Atari Lynx? does this play only with volume bits (so samples) or does it use actually "pokey" and does a sid-freq2pokey-freq translation? Most of the sounds (sawtooth, triangle, pulse) are played with the volume only bits. Starting at version 6, noise is not played that way, but pokey's own noise generator (distortion 8 ) is used, because it sounds better Edited November 18, 2016 by ivop Quote Link to comment Share on other sites More sharing options...
Xuel Posted November 18, 2016 Share Posted November 18, 2016 Volume-only synthesis is great because you can get 16-bit frequency accuracy on all three channels which means pitches are much closer to perfectly in-tune than POKEY's standard 8-bit frequencies. Of course, the downsides are high CPU usage and aliasing due to down sampling to 15KHz. I would love to see more duty cycle steps as I think smooth duty cycle sweeps are a key feature of a lot of SID instruments. Quote Link to comment Share on other sites More sharing options...
emkay Posted November 18, 2016 Share Posted November 18, 2016 (edited) Volume-only synthesis is great because you can get 16-bit frequency accuracy on all three channels which means pitches are much closer to perfectly in-tune than POKEY's standard 8-bit frequencies. Of course, the downsides are high CPU usage and aliasing due to down sampling to 15KHz. I would love to see more duty cycle steps as I think smooth duty cycle sweeps are a key feature of a lot of SID instruments. Actually, you could use one 16 bit channel with filter AND replay 2 of the SID voices via sampling. Using POKEY's modulation features, results in many waveshapes without huge amounts of CPU... Things sometimes need a chance ... to prove things REminder: RMT limits, 50Hz VBI programming! An environment that allows full emulations and to create the "cpu saving stuff" manually, well, that would be the next step ... Edited November 18, 2016 by emkay Quote Link to comment Share on other sites More sharing options...
Rybags Posted November 19, 2016 Share Posted November 19, 2016 I don't think he's using 16-bit channel/s, the volume-only nature of the emulation makes the Pokey audio mode irrelevant unless you're using timer IRQs as the sample timebase - except for the noise which already as stated is 15 KHz based (using an 8-bit AUDF ?) Sid emulation reproduces the phase accumulator relationship with their 16-bit freq registers and what you need to do is reproduce what value it would have from one sampling period to the next. Obviously the emulation is near cycle-accurate but it's only producing amplitude changes at about 1/64th of what a real SID at 1 MHz does. Although even PC based emulation would only be producing audible changes at best at the rate the sound hardware is operating at which might be 41, 48, 96, 192 KHz in most cases. Atari suffers a bit more since we can only do 4-bit rather than 8-bit amplitude representation and per scanline sampling is somewhat less than the PC will do in most cases. 1 Quote Link to comment Share on other sites More sharing options...
ivop Posted November 19, 2016 Author Share Posted November 19, 2016 except for the noise which already as stated is 15 KHz based (using an 8-bit AUDF ?) Yes, 8-bit AUDF for each channel. You can have three different frequencies of noise at the same time. That's also the reason why I moved to channel 2, 3 and 4, because I can't change AUDF1 as that's used for the timer interrupt. 1 Quote Link to comment Share on other sites More sharing options...
ivop Posted November 19, 2016 Author Share Posted November 19, 2016 (edited) One question: If it is possible to filter the SIDs, to get played with that player, shouldn't it be possible to build clean 3 channel Tracker files I'm not sure what exactly you are asking here, but if you mean whether it is possible to write a tracker/player that uses this replay core and bypasses the SID registers and ADSR emulation, yes, that would be possible. If you mean to use it to extract tracker like data from the SID files itself, I'd rather use siddump on a PC. It does a pretty good job on detecting vibration. I don't think it's that hard to massage its output into something useful. Edited November 19, 2016 by ivop 1 Quote Link to comment Share on other sites More sharing options...
ivop Posted November 20, 2016 Author Share Posted November 20, 2016 I would love to see more duty cycle steps as I think smooth duty cycle sweeps are a key feature of a lot of SID instruments. Could you point me to a song where it is very noticeable, preferably one I already converted? 1 Quote Link to comment Share on other sites More sharing options...
Shannon Posted November 22, 2016 Share Posted November 22, 2016 Atari800WinPlus does not correctly emulate Read-Modify-Write instructions on pokey registers. Neither does the current atari800, but there's a patch here: https://sourceforge.net/p/atari800/mailman/message/34233143/ Altirra works fine, but it's enjoyed best on real hardware Just an FYI.. this patch seems to break the Tempest Xtreem Demo. Quote Link to comment Share on other sites More sharing options...
ivop Posted November 24, 2016 Author Share Posted November 24, 2016 Just an FYI.. this patch seems to break the Tempest Xtreem Demo. Thanks for the feedback. I'll look into it. Can you tell what exactly breaks? And where can I get this Tempest Xtreem Demo? Quote Link to comment Share on other sites More sharing options...
Shannon Posted November 24, 2016 Share Posted November 24, 2016 http://www.atarimania.com/game-atari-400-800-xl-xe-tempest-xtreem_23225.html Just start a game... the emulator crashes after about 10 seconds. Quote Link to comment Share on other sites More sharing options...
ivop Posted November 25, 2016 Author Share Posted November 25, 2016 http://www.atarimania.com/game-atari-400-800-xl-xe-tempest-xtreem_23225.html Just start a game... the emulator crashes after about 10 seconds. I can't reproduce it. Latest git checkout, plain autogen.sh, ./configure et cetera on debian stable. Perhaps we should move this discussion to PM. If you send me more info, maybe I can pin down where and why it crashes on your machine. Quote Link to comment Share on other sites More sharing options...
Xuel Posted November 28, 2016 Share Posted November 28, 2016 Could you point me to a song where it is very noticeable, preferably one I already converted? It's most noticeable on long sustained notes but I notice it in other situations as well. For an example, start as6-alien.xex in Altirra, enable View -> Show FPS, and then fast forward with "F1" until about cycle 6840 (time 2:14 in the .SID file). There you'll get to a part where the lead instrument on channel two sustains several long notes with slowly changing duty cycle. You can distinctly hear the points in time at which the timbre changes as the duty cycle thresholds that you've implemented are crossed. In contrast, on the SID, the instrument gradually changes timbre without any discrete jumps. Quote Link to comment Share on other sites More sharing options...
Shannon Posted November 28, 2016 Share Posted November 28, 2016 I can't reproduce it. Latest git checkout, plain autogen.sh, ./configure et cetera on debian stable. Perhaps we should move this discussion to PM. If you send me more info, maybe I can pin down where and why it crashes on your machine. OK thanks. Turns out I was using older source. Quote Link to comment Share on other sites More sharing options...
ivop Posted November 28, 2016 Author Share Posted November 28, 2016 It's most noticeable on long sustained notes but I notice it in other situations as well. For an example, start as6-alien.xex in Altirra, enable View -> Show FPS, and then fast forward with "F1" until about cycle 6840 (time 2:14 in the .SID file). There you'll get to a part where the lead instrument on channel two sustains several long notes with slowly changing duty cycle. You can distinctly hear the points in time at which the timbre changes as the duty cycle thresholds that you've implemented are crossed. In contrast, on the SID, the instrument gradually changes timbre without any discrete jumps. Thanks, I'll use that song as a test song. Currently, I have a new version with a heavily reduced memory footprint. 9.5kB instead of 22kB (but configurable at compile time for songs that do need the mixed waveforms). Now it should be possible to add extra duty cycles without running out of memory. At least eight, perhaps more. Stay tuned 4 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.