Mac OS 9 Lives

Mac OS 9 Discussion => Software => Topic started by: Matej on July 31, 2024, 06:47:47 AM

Title: MMMMP (Matej's Multiprocessing Macintosh Music Player)
Post by: Matej on July 31, 2024, 06:47:47 AM
Hello,

I have released the first beta version of MMMMP, a music player for Mac OS 8.6-9.2.2 that makes use of Multiprocessing Services. This means that if your computer has two (or more) processors, it can use one processor to decode audio while other (cooperatively multitasked) applications use the other processor.

If your computer has only one processor, the decoding will still be preemptively multitasked, which means that playback will remain smooth even if other processor-intensive applications are running.

Currently it can only play FLAC files.

You can get it at: http://matejhorvat.si/en/mac/mmmmp/ (http://matejhorvat.si/en/mac/mmmmp/)
Title: Re: MMMMP (Matej's Multiprocessing Macintosh Music Player)
Post by: Protools5LEGuy on July 31, 2024, 03:16:23 PM
Thank you! Can you give more details,  if is realbasic or C, etc.
Title: Re: MMMMP (Matej's Multiprocessing Macintosh Music Player)
Post by: smilesdavis on July 31, 2024, 04:16:17 PM
Currently it can only play FLAC files.

does it support HiRes FLAC files? With my Lynx AES16 and Aurora16-VT i can play back up to 192 192 kHz / 24 Bit. would be a nice dedicated DP Quicksilver just for HiRes FLAC
Title: Re: MMMMP (Matej's Multiprocessing Macintosh Music Player)
Post by: Matej on August 01, 2024, 02:08:26 AM
Can you give more details,  if is realbasic or C, etc.

What exactly do you want to know?

It's written in C and compiled with the MPW tools.

Besides multiprocessing, It makes use of the PowerPC-specific CNTLZW instruction. It doesn't use AltiVec (yet), but even on a 350 MHz G4 it's fast enough (in my opinion) that optimizing with AltiVec is not a priority.

By default, it uses less than 1 MB of RAM, but you can increase the memory partition size in case playback isn't smooth.

does it support HiRes FLAC files?

You mean 24-bit? I'm afraid not. I've only tried one such file so far and heard only noise. Another reason why it's a beta. :) But you can try.
Title: Re: MMMMP (Matej's Multiprocessing Macintosh Music Player)
Post by: Greystash on August 30, 2024, 04:18:04 PM
Very cool thank you! I've always wanted a FLAC player for OS9!
Title: Re: MMMMP (Matej's Multiprocessing Macintosh Music Player)
Post by: Jubadub on November 17, 2024, 01:26:11 AM
Very cool thank you! I've always wanted a FLAC player for OS9!

There was for a long time one program that could do it, actually, called MoreAmp (http://macintoshgarden.org/apps/moreamp). It's a REALLY awesome player (and ripper, apparently). Like MMMMP here, it also does not have any occasional "hiccups" playing audio, unlike e.g. QuickTime.

That being said, this does not detract the worth from MMMMP: it's multi-processor-aware (no idea about MoreAmp on this), and holds great potential overall. Plus it's great to have more options. Thanks for yet another awesome app, @Matej!
Title: Re: MMMMP (Matej's Multiprocessing Macintosh Music Player)
Post by: Matej on January 02, 2025, 03:52:42 PM
Thanks for the kind words!

I knew about MoreAmp, but it's unstable in my experience, and I don't think it uses multiprocessing - as far as I know, no other Mac OS player does.
Title: Re: MMMMP (Matej's Multiprocessing Macintosh Music Player)
Post by: Knezzen on January 03, 2025, 12:13:39 AM
I haven't had time to check this one out yet and I'm not sure how I missed it in the first place. Great job, Matej! :)
Title: Re: MMMMP (Matej's Multiprocessing Macintosh Music Player)
Post by: Jubadub on January 03, 2025, 12:26:52 AM
I knew about MoreAmp, but [...] I don't think it uses multiprocessing - as far as I know, no other Mac OS player does.

That makes your player all the more awesome! :)

All your projects and knowledge-sharing in your website have been incredible so far!
Title: Re: MMMMP (Matej's Multiprocessing Macintosh Music Player)
Post by: Jubadub on January 31, 2025, 03:26:50 AM
@Matej By the way, how hard was it to leverage the Multiprocessing Services API? Now I understand it is THE way to leverage the pre-emptive multi-tasking and pre-emptive multi-threading v2 nanokernel of Mac OS as found in Mac OS 9.2.2 ~ Mac OS 8.6.

I'm asking because we noticed the original SDL 1.2 developers only bothered to implement such tasking/threading models for *NIX systems (pthreads) and for Windows, even though the exact same can be done for the Mac via the Multiprocessing Services API. So we are considering implementing it ourselves, and expect it to be quite an involved, technical challenge. But it CAN be done.

If there are any tips, or even source code, that you think could help us achieve this, we would greatly appreciate it! Also any references that you think are relevant or worth reading/trying out.

(On a side-note, we really could use a list of apps that leverage the Multiprocessing Services API! It's excellent to already have MMMMP as one of them.)