Sandor / HARD Posted December 12, 2017 Share Posted December 12, 2017 (edited) I thought I'd put these into the programmer section as I presume not many ppl will browse my entire source repo in seek of information: HCM Converter examples and sources: About HCM: https://bitbucket.org/sandor-hard/reharden/src/master/HCM.md Converter Sources (Java): https://bitbucket.org/sandor-hard/hcm-converter Viewer Example (Atari): https://bitbucket.org/sandor-hard/hcm-viewer-example The (VERY) experimental HARDBASS tracker I made for Android looks like this: About HARDBASS: https://bitbucket.org/sandor-hard/reharden/src/master/HARDBASS.md Tracker Sources (Android): https://bitbucket.org/sandor-hard/hardbass-tracker-android Player Example (Atari): https://bitbucket.org/sandor-hard/hardbass-player-example Edited December 12, 2017 by Sandor / HARD 22 Quote Link to comment Share on other sites More sharing options...
R0ger Posted December 13, 2017 Share Posted December 13, 2017 I'm loving it ! Still few things I don't understand. Mainly 64kHz source. You say you are realigning the IRQ every frame .. is it enough to prevent IRQ/DLI conflict ? Well since it's once per 8 lines, I guess it is, but I want to know more. Also the demo is stereo pokey right ? I mean you need 2 channels for IRQ, and even if you share synth with RMT, the music is clearly more then 2 channels .. right ? Thanks for making everything public ! 1 Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 13, 2017 Author Share Posted December 13, 2017 (edited) I'm loving it ! Still few things I don't understand. Mainly 64kHz source. You say you are realigning the IRQ every frame .. is it enough to prevent IRQ/DLI conflict ? Well since it's once per 8 lines, I guess it is, but I want to know more. Also the demo is stereo pokey right ? I mean you need 2 channels for IRQ, and even if you share synth with RMT, the music is clearly more then 2 channels .. right ? Thanks for making everything public ! Hi R0ger, Thanks for your questions and your nice comment on YouTube! Let me address each of your questions inline: > You say you are realigning the IRQ every frame .. is it enough to prevent IRQ/DLI conflict ? Well since it's once per 8 lines, I guess it is Ok, so I demonstrated two different approaches to propagate the generated sample buffer to the sample register. 1. HCM based screens This is the approach that's by far the easiest to implement as DLIs and IRQs never run at the same time. 24 updates are written into the sample register from the HCM screen kernel (that's a good thing about the small & generic HCM screen kernel - it leaves you a little time to perform tiny tasks in it in a predictable way). 15 updates are handled via IRQ. (that's covering the areas outside of the DLIST) There's no conflict therefore. The once-per-frame realignment happens via setting the timer freq to 0 at the beginning of the screen kernel (when we don't need the IRQs anyways). Then we kick off our IRQs at the end of the screen kernel and it gets kicked off in a re-initialized / realigned state since our last IRQ has long ran out. To keep the IRQ from drifting away constantly during a single frame there's a timer pattern in the code that's being followed by the IRQ code to even out the inherently unalignable 64KHz timer vs scanline difference. That - in theory - makes the timer aligned to the same position where it started each 7th character line (if I remember my calculations correctly ). 2. Twister-Scroller This one's doing IRQ+DLI based sample updates. Now this approach (like I also say in the player example code) can be a hit and miss situation. DLI and IRQ conflicts and order issues must be expected unless you come up with some clever stuff or you're simply lucky. I think I was lucky as it worked out nicely with my display list and the order in which IRQs and DLIs kick in on that screen turned out to be consistent. I'm re-aligning the IRQs in DLI code and I also modify the IRQ code from DLI code so that IRQs take the samples from the correct position in the correct buffer. Again, this could have been a lot more complex depending on the screen layout / DLIST / DMA setup. If you choose to go down this route, you'll have to design a system that works for your screen. You can start out from mine and debug the DLI & IRQ code to see what's happening and when. There are more possible approaches than these two, but I didn't have more screens in REHARDEN (something to explore / flesh out: 24 DLI based updates instead of screen kernel based ones, then 15 IRQ based updates outside of the DLIST area) > Also the demo is stereo pokey right ? I mean you need 2 channels for IRQ No, it's made for stock 64K XL/XE. It's using channel #4 only for both the IRQ and the sample register. > the music is clearly more then 2 channels .. right ? Correct. You have all 4 POKEY channels in RMT and HARDBASS will only consume Channel #4 when RMT is not using it. (when channel #4 volume = 0 in RMT -OR- when channel #2 volume = 0 when channel #4 serves as a filter for channel #2) It's completely dynamic and automatic. For example, the bass sound I'm using most consists of a highest pitch (pitch=0) RMT instrument noise sound for a frame followed by pulse-width modulated HARDBASS bass. Along with a fully RMT drum instrument. All in Channel #4, mixed automatically. Feel free to ask if something doesn't make complete sense Edited December 13, 2017 by Sandor / HARD 2 Quote Link to comment Share on other sites More sharing options...
R0ger Posted December 13, 2017 Share Posted December 13, 2017 Sorry if I sound uninformed, I'm kinda new to Atari, and all my experience with this is one attempt to make sample playback. I understand all your explanation about synchronization. Still .. you say you use 1 channel for both IRQ source AND synth output ? And one channel only ? Didn't think you can do that. I can and will check the source codes, but maybe you can explain a bit here ? How exactly do you setup the channels ? Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 13, 2017 Author Share Posted December 13, 2017 Sorry if I sound uninformed, I'm kinda new to Atari, and all my experience with this is one attempt to make sample playback. I understand all your explanation about synchronization. Still .. you say you use 1 channel for both IRQ source AND synth output ? And one channel only ? Didn't think you can do that. I can and will check the source codes, but maybe you can explain a bit here ? How exactly do you setup the channels ? No worries. There's not much to this part really. You put the sample data into the audio control register for the channel and the timer freq goes into the audio frequency register for the channel. This just works. 2 Quote Link to comment Share on other sites More sharing options...
R0ger Posted December 13, 2017 Share Posted December 13, 2017 (edited) I tried to modify my test project, which used 16kHz IRQ source, to 64kHz, and indeed, with reset Done in DLI, I can sync it even at 4kHz. Char mode + DLI, no visible conflict. The sample playback is not as clean as 64kHz, but it's still quite clean. And it means I still have 3 channels to do whatever I want ! Still sample playback is both memory and time hungry, not sure I will use it in the end (it's like a puzzle game, secret, obviously). And btw. I actually used the same channel for IRQ source and output already I was thinking about trying some full softsynth for Atari .. but using it only for bass is great idea. And you could also try sampled drums, as they don't need high sample rates. Edited December 13, 2017 by R0ger Quote Link to comment Share on other sites More sharing options...
+JAC! Posted December 13, 2017 Share Posted December 13, 2017 Looks like it's time to change your avatar from GR. 9 to HCM 4 Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 13, 2017 Author Share Posted December 13, 2017 (edited) Sorry if I sound uninformed, I'm kinda new to Atari, and all my experience with this is one attempt to make sample playback. I understand all your explanation about synchronization. Still .. you say you use 1 channel for both IRQ source AND synth output ? And one channel only ? Didn't think you can do that. I can and will check the source codes, but maybe you can explain a bit here ? How exactly do you setup the channels ? Yeah, making it higher and higher quality won't be difficult, but it loses the point then as you won't be able to afford it. In its current form it's very affordable and still gives you a bass you didn't have before. In any case, do as you wish, it's all up to what do you want for your product. BTW most types of drums do need high sample rates because of the noise component in them. That's why the 64KHz Pokey mode is essential for proper sounding drums and that's one of the reasons HARDBASS is not based on the much more straightforward and scanline aligned 15KHz mode. (as that'd impose the very limiting 15KHz requirement on all channels) Edited December 13, 2017 by Sandor / HARD 1 Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 13, 2017 Author Share Posted December 13, 2017 Looks like it's time to change your avatar from GR. 9 to HCM Good point! I just don't have the original photo and my current face is worse than that I'm afraid Quote Link to comment Share on other sites More sharing options...
_The Doctor__ Posted December 14, 2017 Share Posted December 14, 2017 (edited) You forget, you're a part of the Atari scene and that's a whole 'nother world.... some one has that photo somewhere somehow someway. These things manage to turn up over time. Unless you just made the screen and dumped the photo in the bin.... Then sadly you will have to photoshop your current face .... Looks like this is really working out... everyone I've shown this to really likes it (that miraculous all by itself)... You kinda get that double take when they realize it's coming from the old computer, cause they don't sound like that. Nice Job. Edited December 14, 2017 by _The Doctor__ 1 Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 14, 2017 Author Share Posted December 14, 2017 You forget, you're a part of the Atari scene and that's a whole 'nother world.... some one has that photo somewhere somehow someway. These things manage to turn up over time. Unless you just made the screen and dumped the photo in the bin.... Then sadly you will have to photoshop your current face .... Looks like this is really working out... everyone I've shown this to really likes it (that miraculous all by itself)... You kinda get that double take when they realize it's coming from the old computer, cause they don't sound like that. Nice Job. That's great to hear! I never had anybody around me who knew what an Atari was, so I can't show it to anybody who'd appreciate any of it BTW, it appears to me that HARDBASS stole all the spotlight from HCM. I hope ppl will start seeing the use cases for HCM as well in a decade or two 3 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 14, 2017 Share Posted December 14, 2017 Sandor... what's the best way to run the hardbass "tracker"? 1 Quote Link to comment Share on other sites More sharing options...
R0ger Posted December 14, 2017 Share Posted December 14, 2017 BTW. I just noticed .. the filtering on lead voice in Reharden demo is somewhat good. Doesn't sound like normal RMT filter .. any tricks to it ? 1 Quote Link to comment Share on other sites More sharing options...
_The Doctor__ Posted December 14, 2017 Share Posted December 14, 2017 (edited) Who will be the first to make a Christmas or New Years HCM and Hard Bass displayed for our eyes and ears? I know it's a very busy time with travel, friends, family. There will be more time as winter break and a some days off come along. I'm curious and wonder if a some of the rasta converted images would translate nicely into HCM. Since the images are optimized already it might make for some decent screens. My wife is going to kill me, I stayed up all night reading the Hard repository... Edited December 14, 2017 by _The Doctor__ 4 Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 14, 2017 Author Share Posted December 14, 2017 (edited) Sandor... what's the best way to run the hardbass "tracker"? Hey Heaven, I'm afraid you'll need to use an Android phone. I had RMT running on a PC on speakers and the HARDBASS tracker running on my phone with headphones. It sort of worked ...this stuff needs to get integrated into RMT via some black magic reverse-engineering... That's when it'd get comfortable & easy to use. Up until then you'll need a lot of dedication and patience to get something done. ..but it's doable once you get the grip on it. I did that tune in like 2-3 days in total. Edited December 14, 2017 by Sandor / HARD 1 Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 14, 2017 Author Share Posted December 14, 2017 BTW. I just noticed .. the filtering on lead voice in Reharden demo is somewhat good. Doesn't sound like normal RMT filter .. any tricks to it ? No, that's 100% Raster's achievment. Pure stock RMT. 1 Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 14, 2017 Author Share Posted December 14, 2017 (edited) Who will be the first to make a Christmas or New Years HCM and Hard Bass displayed for our eyes and ears? I know it's a very busy time with travel, friends, family. There will be more time as winter break and a some days off come along. I'm curious and wonder if a some of the rasta converted images would translate nicely into HCM. Since the images are optimized already it might make for some decent screens. My wife is going to kill me, I stayed up all night reading the Hard repository... Well, Rasta converter is such a brilliant tool. Only mono-tone (greyscale/etc...) images would be comparable or better in HCM. Color photos will be shoulders down bettern via Rasta converter. The main strengths of HCM are the small size (8k vs 20-22k) and the fact that you can manipulate the image in real time + you can do a small task in the kernel at predictable times in a predictable way (updating HARDBASS say). So it will never replace or rival Rasta converter for colorful photo images. It could for other use cases though. Edited December 14, 2017 by Sandor / HARD 3 Quote Link to comment Share on other sites More sharing options...
_The Doctor__ Posted December 14, 2017 Share Posted December 14, 2017 (edited) I was thinking the Rasta color images would look nice coverted to HCM, much of what looks nice on rasta is detail and alignment achieved by size manipulation with the color processed/optimized. With that excellent source material for HCM color mode, it may just be what is needed to give it that ever so slight bump up. and that's could be a nice surprise. It's not to compete or replace, but to get an optimized source. The better the source the better the output. Not sure if it will diffuse or look like a copy of a copy, but it shouldn't. Something to play with and see what the affect is @Stephen, Does Picard Play the Bass? Love to see and hear that one! Edited December 14, 2017 by _The Doctor__ Quote Link to comment Share on other sites More sharing options...
fox Posted December 15, 2017 Share Posted December 15, 2017 I have added HCM to http://recoil.sourceforge.net/ 6 Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 16, 2017 Author Share Posted December 16, 2017 I have added HCM to http://recoil.sourceforge.net/ WOW, you're fast! Thank you, I'll check it out on Win 10. Quote Link to comment Share on other sites More sharing options...
fox Posted December 16, 2017 Share Posted December 16, 2017 WOW, you're fast! Thank you, I'll check it out on Win 10. Either build from Git or wait for a release. Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 16, 2017 Author Share Posted December 16, 2017 (edited) Either build from Git or wait for a release. Ah, so that's why it didn't support HCM I'll wait for the release then and will try it on Win10 & Android & HTML5. Edited December 16, 2017 by Sandor / HARD Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 16, 2017 Author Share Posted December 16, 2017 Either build from Git or wait for a release. I attached the example files I'm going to try your viewer with. It's a mix of HCM Mode 0 and Mode 2 pics. hcmpics.zip Quote Link to comment Share on other sites More sharing options...
fox Posted December 16, 2017 Share Posted December 16, 2017 I attached the example files I'm going to try your viewer with. It's a mix of HCM Mode 0 and Mode 2 pics. hcmpics.zip Thanks, I already found them in your repo. I updated the HTML5 viewer, so you can try it: http://recoil.sourceforge.net/html5recoil.html 1 Quote Link to comment Share on other sites More sharing options...
Sandor / HARD Posted December 16, 2017 Author Share Posted December 16, 2017 Thanks, I already found them in your repo. I updated the HTML5 viewer, so you can try it: http://recoil.sourceforge.net/html5recoil.html It works very nicely, thank you! 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.