If you start commenting the code, then I'd ask you to do this in the repository, so your comments don't get lost.
I've just tried to make this into a more "macos" like application. It actually works even will the interrupts still enabled. And I've added the musoff function, so the player can...
Here's a version that behaves by default like the previous one and plays axel-f. But if you put a "song.mod" into the image then it will play that instead.
This routine originates from the Atari STE which has stereo capabilities. That may also be the reason why the four channels are being computed in pairs. I am now scaling and summing the result into one channel. I might save a few microseconds by scaling the samples beforehand and not having to...
You should really take a look at the published code and read the previous postings. The replayer does run every 444 samples and not at 50hz. In fact this results in the replayer being run at nearly 50 hz or to be precise at mac-vbl-rate*370/444. It does that inside the vbl handler as the vbl...
If the main purpose of this is to reuse Atari ST color code, wouldn't it the make sense to make the color plane arrangement identical to the Atari?
You'd then read 4 16 bit words into a shift register and shift then in parallel giving 4 bits per pixel into the palette.
That's the key. As mentioned before, the Mac doesn't run at exactly 60Hz and the sample rate isn't exactly 22250 Hz. But I think it's absolutely fine to assume it is 60Hz. And we have 370 samples per VBL. If we want to run the music evaluation at 50Hz we'd need to run music every 370*60/50 = 444...
I fully agree and I also think that this really needs some major tweaking to be satisfying. And yes, synthesizing a full 370 samples in one run makes this loose too much granularity and even worse sometimes doing it only after 740 samples is even worse.
My intention was to prove that this can...
I fully understand. They may even be right and I may be wrong. But as long as they just guess and I really do run the code and see what happens then I tend to believe my own ears.
Filling the audio buffers and setting the
As explained before, there are two major but rather independent things happening: a) the samples are assembled/mixed into buffer. This happens at 22250 hz or 370 times every 60hz vbl. There's not much to do about this on a Mac as that's how the hardware...
Lots of nice feedback, thanks. But I don't intend to optimize this any further. It worked for me and that's sufficient. I don't own any Apple hardware and don't really have a further use case.
Just a few remarks:
The buffer handling IMHO cannot just be relaxed as simple as stated here. If I...
Someone may actually have fun making this into a 16 Bit dance party using a Donkey Kong Country mod for some famous classic Mac enthusiast repairing them in his basement.
The replay routine itself is the WizzCat routine as discussed at https://www.atari-forum.com/viewtopic.php?t=43127 I did not touch the MOD decoder/parser itself. It's my understanding that it's a full MOD decoder supporting the typical four channels and all the basic effects required for MOD...
Here's the source code:
https://github.com/harbaum/NanoMac/tree/main/NanoMacTracker
The current version is sufficient for me to showcase my NanoMac. But anyone interested in a real player perhaps e.g. with a simple user interface to load a MOD from disk may use this as a basis.
Excellent! Thanks a lot. Yeah ... some noise here and there do I hear as well. But I think this goes into right direction.
I'll publish the code tomorrow.
> This is great, can't wait to try it out on a lowly Mac
And I am really keen to hear if it actually works on the real classic hardware. It relies on a quite exact relationship between the vertical blank interrupt and the timing of the memory locations the samples are being played from by the...
While searching for fun stuff for my NanoMac I was wondering why there doesn't seem to be a MOD tracker. The 22khz audio and the 7+ Mhz 68k CPU is pretty close to the Amiga and Atari ST and thus should allow for playback.
That's why I joined this discussion. As a result, I have something that...
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.