Hi,
I'm working on a port of DOTT to the classic Amiga. The Amiga doesn't handle MIDI very well so I'm using a DOOM based MUS player. Although I found an old DOOM utility to convert MIDI to MUS files (called Midi2Mus...very strange), what I really want is some C source code that I can add to my port.
I've found this site that shows the MUS format and C code.
Can anyone help?[/url]
MIDI to MUS conversion
Moderator: ScummVM Team
Re: MIDI to MUS conversion
While i find this project of yours quite intruiging (as i'm an owner of a classic Amiga myself) and haven't even heard a single thing about it, i'd like to concur on this: "The Amiga doesn't handle MIDI very well"NovaCoder wrote:Hi,
I'm working on a port of DOTT to the classic Amiga. The Amiga doesn't handle MIDI very well so I'm using a DOOM based MUS player. Although I found an old DOOM utility to convert MIDI to MUS files (called Midi2Mus...very strange), what I really want is some C source code that I can add to my port.
I've found this site that shows the MUS format and C code.
Can anyone help?
That is not quite true.
Granted, it takes a lot of processing power away to use the tools mentioned below, but ... you'll understand my point later ... maybe
You can (as with all the other platform flavours out there) install a hardware MIDI device and play your MIDI through them (i.e. MT32, USB-based etc).
Take a look at the CAMD library for 68k and OS4.
Granted again, it takes a little bit of fiddling to get those hardware installed, but classic Amiga users are bound to fiddle on their machines, aren't they?
Furthermore is there a software solution which emulates MIDI on platforms that doesn't feature a hardware device. It's called TiMIDIty and was ported to Amiga ages ago.
This solution would only take some minutes to install the software and the soundfont and (given your port supports it) off you would go.
Not that i want to discourage you on your way to convert the MIDI music (it's your project all the way), but believe me, DOTT with real MIDI and even with MIDI played through TiMIDIty sounds LOTS better than ANY conversion can bring... and I tried that.
...plus you would have more time to focus on porting the game itself
...
Then of course, i wouldn't be the porter of ScummVM to AmigaOS4 if i wouldn't ask if you tried the 68k flavour of ScummVM and played DOTT through it (just to see how it works for you)...
...and if you can't get hold of a newer version (Uwe Ryssel seems to have stopped after 0.10), have you thought about becoming the 68k maintainer of ScummVM?
Keep us updated on your project
Cheers
Hiya guys,
I can't go the hardware midi device route as this would restrict my port too much (most of us classic guys don't have that kind of hw).
I haven't tried Timidity yet but I was also under the impression it would be too much of a load on the average 030/50mhz 64mb AGA machine.
I already have a very fast and low overhead, Amiga optimised 16 channel MUS + 16 digital channel library that doesn't need any additional hardware. It was used for the Amiga version of DOOM which has great MIDI sound (probably as good as the original SoundBaster equipped PC's back in the day).
Although I could convert all of the games MIDI files to MUS manually using a PC utility, it would be better to do it in my code (more generic). All the documentation that I've read states that MUS files are 'almost' identical to MIDI files so it should reasonably easy for someone with more skill than me to come up with some conversion code.
Another option is to use the ScummVM Adlib driver to pre-convert the MIDI to digital sound...not sure how that would sound though and I would run into size issues.
I'm not sure about fully implementing iMuse either; I might have to dumb it down a bit to get the speed up. I'm also having some trouble understanding the iMuse commands for DOTT...it's coded in a very confusing way. The ScriptV6 Start/stop music methods are never called for DOTT and it looks like it has to use a ‘sound kludge’ to route commands? It's also continually checking the status of the music for some reason (eg is it playing?).
Anyway, if I can get my nasty hack of DOTT working properly, I might also use the same code to quickly port Sam and Max. If I ever get the time to do a serious port of the latest version of ScummVM to 68k I'd have to disable large parts of it as a classic AGA machine wouldn't be able to handle anything more demanding than Sam and Max.
DOTT is already playing very well on my AGA machine in VGA 320x200 with full speech and sfx (CDROM version with the 260mb sfx file!), full speed, perfect lip-sync and 256 colours with hardy any VGA tearing....it's just adding music which I'm stuck on
The other 68k versions of ScummVM play really badly on my machine (esp sound and music which use AHI). That's why I'm doing this port.
I can't go the hardware midi device route as this would restrict my port too much (most of us classic guys don't have that kind of hw).
I haven't tried Timidity yet but I was also under the impression it would be too much of a load on the average 030/50mhz 64mb AGA machine.
I already have a very fast and low overhead, Amiga optimised 16 channel MUS + 16 digital channel library that doesn't need any additional hardware. It was used for the Amiga version of DOOM which has great MIDI sound (probably as good as the original SoundBaster equipped PC's back in the day).
Although I could convert all of the games MIDI files to MUS manually using a PC utility, it would be better to do it in my code (more generic). All the documentation that I've read states that MUS files are 'almost' identical to MIDI files so it should reasonably easy for someone with more skill than me to come up with some conversion code.
Another option is to use the ScummVM Adlib driver to pre-convert the MIDI to digital sound...not sure how that would sound though and I would run into size issues.
I'm not sure about fully implementing iMuse either; I might have to dumb it down a bit to get the speed up. I'm also having some trouble understanding the iMuse commands for DOTT...it's coded in a very confusing way. The ScriptV6 Start/stop music methods are never called for DOTT and it looks like it has to use a ‘sound kludge’ to route commands? It's also continually checking the status of the music for some reason (eg is it playing?).
Anyway, if I can get my nasty hack of DOTT working properly, I might also use the same code to quickly port Sam and Max. If I ever get the time to do a serious port of the latest version of ScummVM to 68k I'd have to disable large parts of it as a classic AGA machine wouldn't be able to handle anything more demanding than Sam and Max.
DOTT is already playing very well on my AGA machine in VGA 320x200 with full speech and sfx (CDROM version with the 260mb sfx file!), full speed, perfect lip-sync and 256 colours with hardy any VGA tearing....it's just adding music which I'm stuck on
The other 68k versions of ScummVM play really badly on my machine (esp sound and music which use AHI). That's why I'm doing this port.
You will get all the needed help here if you really want to take on a port of ScummVM to 68k, at least, this is the forum to ask, isn't it?Anyway, if I can get my nasty hack of DOTT working properly, I might also use the same code to quickly port Sam and Max. If I ever get the time to do a serious port of the latest version of ScummVM to 68k I'd have to disable large parts of it as a classic AGA machine wouldn't be able to handle anything more demanding than Sam and Max.
...and there are already backends that are supported that doesn't have the cpu power to compete with modern systems and still they are running ScummVM quite nicely, so ... not to distract your from your neat project, but, just give it a shot...the ScummVM team is here to help
Both DOTT and Sam'n'Max use iMuse, which is quite clever about the actions it does with MIDI music. It can crossfade tracks, mix them with one another, modify them on the fly and several other cool things... which makes it complicated.NovaCoder wrote: I'm not sure about fully implementing iMuse either; I might have to dumb it down a bit to get the speed up. I'm also having some trouble understanding the iMuse commands for DOTT...it's coded in a very confusing way. The ScriptV6 Start/stop music methods are never called for DOTT and it looks like it has to use a ‘sound kludge’ to route commands? It's also continually checking the status of the music for some reason (eg is it playing?).
Anyway, if I can get my nasty hack of DOTT working properly, I might also use the same code to quickly port Sam and Max. If I ever get the time to do a serious port of the latest version of ScummVM to 68k I'd have to disable large parts of it as a classic AGA machine wouldn't be able to handle anything more demanding than Sam and Max.
I don't understand how your port differs from ScummVM. Are you using the ScummVM codebase, or something else?
- LogicDeLuxe
- Posts: 432
- Joined: Thu Nov 10, 2005 9:54 pm
Now that is a definition of Classic Amiga completely new to me. It sounds more like the top end of the line Amiga, and someone who was serious enough to get such a machine shouldn't have any problem with connecting a simple MIDI interface to it.NovaCoder wrote:I haven't tried Timidity yet but I was also under the impression it would be too much of a load on the average 030/50mhz 64mb AGA machine.
AfaIk, Doom can also handle standard MIDI files, not only mus. Isn't that the case with the Amiga port?I already have a very fast and low overhead, Amiga optimised 16 channel MUS + 16 digital channel library that doesn't need any additional hardware. It was used for the Amiga version of DOOM which has great MIDI sound
DOS Doom has no software synthesizer. It can play the MIDI music through MPU401 or through on-board synthesizers of several souncards of the day.(probably as good as the original SoundBaster equipped PC's back in the day).
If you're willing to ditch iMuse, the most practical option would be using MOD versions. They did this with Monkey 1, and certainly is the best option performance wise.I'm not sure about fully implementing iMuse either; I might have to dumb it down a bit to get the speed up.
I think, if you're also willing to convert all the graphics in a blitter-friendly format (which could be done on the fly during loading), the game probably could perform well on a bare Amiga 1200 (with a harddrive that is). See the Turrican games for instance, fullscreen animation with a much higher framerate than any SCUMM title, and 5 channel MOD support.
Actually, that all could be done with an advanced MOD player as well.md5 wrote:Both DOTT and Sam'n'Max use iMuse, which is quite clever about the actions it does with MIDI music. It can crossfade tracks, mix them with one another, modify them on the fly and several other cool things... which makes it complicated.
-
- Posts: 129
- Joined: Mon May 05, 2008 3:37 pm
"classic amiga" refers to all the amiga models originally made by commodore (tho the later of those models were also manufactured by amiga inc), and running operating systems from 1.x to 3.x - the name is used to distinguish them from later computers made by other companies, which used very different hardware, and were designed to run amigaos 4.0.
(this is going from memory and a very quick glance at wikipedia, excuse me if any details are wrong )
i sadly no longer have a functional amiga, just fire up uae occasionally, but seeing this kind of project still makes me happy - keep up the good work
(this is going from memory and a very quick glance at wikipedia, excuse me if any details are wrong )
i sadly no longer have a functional amiga, just fire up uae occasionally, but seeing this kind of project still makes me happy - keep up the good work
Hiya Dave,hippy dave wrote:"classic amiga" refers to all the amiga models originally made by commodore (tho the later of those models were also manufactured by amiga inc), and running operating systems from 1.x to 3.x - the name is used to distinguish them from later computers made by other companies, which used very different hardware, and were designed to run amigaos 4.0.
(this is going from memory and a very quick glance at wikipedia, excuse me if any details are wrong )
i sadly no longer have a functional amiga, just fire up uae occasionally, but seeing this kind of project still makes me happy - keep up the good work
Yep although my Miggy has wireless internet access, an 8GB sold state HD and VGA output...it's still a 17 year old 'classic' computer
Thanks for the support