Implement MMD3/OctaMED Soundstudio support [PERFECTIVE]
- based on OctaMED player by mld
- mixing routine configured as 8-bit, 24000Hz, bufsize 16384, no smoothing
side notes:
- mixing routine also has smoothing support, but doesn't seem to work with paula version
- the current mixing settings work for me(tm) on M2 macbook air even for 16+ channels mods, but increasing frequency any further or enabling 14-bit makes the audio choke and score soon crashes. Increasing buffer size helps only little.
- it might make sense to use med/octamed players for MMD3 4-8 channel songs, but the example code doesn't seem to detect that, as mixing flag seems to be always enabled (MMD3 as format is identical to MMD2 otherwise).
- would be nice to provide the uade audio frequency to score/player as well, so the player can set the same (or 1/2) freq
- would be nice to support dblpal etc. screen modes to allow up to 56KHz frequencies
- commented out utility.library usage from promixplayer.a and replaced SMult32/UMult32/SDivMod32/UDivMod32 calls with direct 020+ muls.l,mulu.l,divsl.l,divul.l instructions
requires couple of score updates:
- Add AllocVec and FreeVec
- Fix exec:Cause implementation (copied from webuade: https://bitbucket.org/wothke/uade-2.13/src/7ed9664ee60b00cedca4f575696d516082509c1a/amigasrc/score/score.s#lines-3983)
This affects also audio output for Musicline, AHX and some Customs for some tunes, though I didn't hear any audible changes. Noticed because of some small changes to audacious-uade songlength db: https://github.com/mvtiaine/audacious-uade/commit/156239c31168e47412e9a8e82ca6d9d772501a1f). Probably some similar effect to player init as with !26.
Updates also MED/OctaMED players:
- Fix OctaMED crash at song end
- add makefiles for MED/OctaMED players and fix compile with vasm
Didn't notice any regressions with the updated player binaries and audacious-uade songdb (a few millisecond songlength difference for some tunes).
Example tunes: https://ftp.modland.com/pub/modules/OctaMED%20MMD3/ 25-channel mmd3: https://ftp.modland.com/pub/modules/OctaMED%20MMD3/Dominator/new%20world%20disorder.mmd3 19-channel mmd3: https://ftp.modland.com/pub/modules/OctaMED%20MMD3/Counterpoint/intricate%20personality.mmd3