Jump to content
IGNORED

MDCMC - Mono Double Chaos Music Composer


matosimi

Recommended Posts

Hi,

 

I have created modification to classic CMC (Chaos Music Composer) that extends replay routine same as it is in stereo SDCMC by Datri... which results in better and richer drums. This playback mode requires only single call of replay routine per frame.

You can read some info and download the binaries here: http://matosimi.websupport.sk/atari/2020/10/mdcmc-mono-double-chaos-music-composer/

 

 

There is demosong p6mondbl (on the mdcmc disk image) that has instruments adjusted for this modified version of CMC (Thanks to @Poison for quick adjustment).

 

MDCMC player source can be found here: https://sourceforge.net/p/mdcmc/code/HEAD/tree/

 

 

Enjoy.

Edited by matosimi
deleted some stuff
  • Like 9
  • Thanks 4
Link to comment
Share on other sites

2 hours ago, Heaven/TQA said:

nice.... how much rasterlines does the player consume?

around 72 compared to 52 of original cmc

1 hour ago, rensoup said:

So are you just calling the replay routine twice in a row rather than in the Vbi then in a DLi midscreen ?

nope, that would play the music in 2x speed; replay routine consists of 3 parts (executed on 1st call) and in the 2nd call only 3rd part is executed.

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, matosimi said:

around 72 compared to 52 of original cmc

that's an expensive player ? 

 

1 hour ago, matosimi said:

nope, that would play the music in 2x speed; replay routine consists of 3 parts (executed on 1st call) and in the 2nd call only 3rd part is executed.

Sure, the better question would have been: Do you update the pokey registers twice in a row rather than in the Vbi then in a DLi midscreen ?

Or are you only updating them once per frame ?

Link to comment
Share on other sites

9 hours ago, rensoup said:

that's an expensive player ? 

 

Sure, the better question would have been: Do you update the pokey registers twice in a row rather than in the Vbi then in a DLi midscreen ?

Or are you only updating them once per frame ?

its updating twice a frame

2 hours ago, fox said:

Are you aware of CMC DoublePlay made by Greg in the '90s?

I have done some research, CMC DoublePlay by Greg is a bit different mod. His CMC is actually being executed twice a frame (normal cmc module is playing twice the speed).

 

However when I changed the speed from 05 to 10, it sounds pretty same as Datri's mod :)

 

I have also found that (with respect to the player greediness) it also runs through 72 rasterlines and it is just executed twice in a row (no midscreen execution).

 

So now i know the only difference is that Datri's double mode does not count second execution of replay routine as separate, so there is no need to slow the tempo.

 

replay routine from Greg's DMC:

	jsr cmc.replay+6
	jmp cmc.replay+6

replay routine from Datri's SDCMC:

	jmp cmc.playDouble

playDouble
	jsr play
	lda czygrc
	sta tmp01
	lda #$01
	sta czygrc
	jsr play

	lda tmp01
	sta czygrc
	rts

 

hmm... I did not want to reinvent the wheel...

  • Like 1
Link to comment
Share on other sites

1 hour ago, Heaven/TQA said:

hmmm.... I always wonder why Atari music players consume so many cpu time... ;) compared to SID players... I still like Wratchild's work on the Adam Gilmore player... but of course... no editor just by editing by hand... 

Because they take use of the available chip commands and features. But they sound very "common" . Special tunes use also much more CPU there. 

And, yes, It's one of my "development goals", to have best POKEY sound with the lowest need of CPU.

 

You don't find any other tune at an equal quality , using equally low CPU....

 

(CPU usage given by the player itself)

 

 

 

Link to comment
Share on other sites

10 hours ago, rensoup said:

Dmsc's LZS takes 10 scanlines constant, not sure anyone is using it beside me though!

 

interesting but what are the player names ?

You might hear it that it is "Richard Munns" music . Could be a rip off from the game and re used for "similar" sounding tunes.

  

....

 

Wait. Is it just RMTplay using every routine unrolled ?

Is would save CPU time but cost more RAM. 

 

Edited by emkay
Link to comment
Share on other sites

I most certainly should give this one a try. Although today it seems to be a quite obsolete music editor (compared to other formats like RMT, but even compared with TMC and MPT), but it is the only music editor I ever learned to use. 

 

Is this updated version also compatible with atari's with a STEREO upgrade? I noticed that originally CMC songs do weird things on Stereo Atari (which has to set to mono with the switch to sound good).

 

Thanks for keeping CMC alive. I will give it a try soon!

Link to comment
Share on other sites

12 hours ago, emkay said:

Because they take use of the available chip commands and features. But they sound very "common" . Special tunes use also much more CPU there. 

And, yes, It's one of my "development goals", to have best POKEY sound with the lowest need of CPU.

 

You don't find any other tune at an equal quality , using equally low CPU....

 

(CPU usage given by the player itself)

 

 

 

 

 

I have two wishes:

 

1. Oh... I should definitely learn to arrange stuff like this. I think always way too much from the perspective using chords which eat way too many notes. This is really a fabulous song, with a wide acoustic field. Well done, any suggestion how I could learn this? (I know how music works, it is more that I am not skilled in making this kind of arrangements)

 

2. I love using atari 8bit, and I dislike using PC / Mac for Atari 8bit stuff. You seem to use RMT (am I right?) ... so that would not my #1 choice, since I want to use my a8 more frequently. Is there anything native on a8 that comes close to what RMT can do? I thought Theta Music Composer was adviced to use on a8 to me... but I can not remember clearly. Is there a good manual available for Theta Music Composer, or do you recommend a different composer on a8? 

 

Great stuff emkay!

Link to comment
Share on other sites

27 minutes ago, Marius said:

I most certainly should give this one a try. Although today it seems to be a quite obsolete music editor (compared to other formats like RMT, but even compared with TMC and MPT), but it is the only music editor I ever learned to use. 

 

Is this updated version also compatible with atari's with a STEREO upgrade? I noticed that originally CMC songs do weird things on Stereo Atari (which has to set to mono with the switch to sound good).

 

Thanks for keeping CMC alive. I will give it a try soon!

I have not spotted this, but there was a call to $d21f (which indicates 2nd pokey) in the editor and it of course messed up the sounds.

Here is the fixed version, it took me a minute to fix this:

cmceditor.xex

 

 

  • Like 1
  • Thanks 2
Link to comment
Share on other sites

12 minutes ago, Marius said:

A great. I will check it out soon!

 

(Is that also fixed in the player-routine then, in case I might use one of the newly created CMC's in a demo or game in the future....)?

Do not use embedded player in the CMC editor, but use the one in the repository instead (linked in original post)... it was already ok, only composer had this bug.

Edited by matosimi
typo
Link to comment
Share on other sites

3 hours ago, Heaven/TQA said:

ah sorry...that is the ST like dump of the pokey stream.... should play with it finally some day.

Yep, it's not difficult to use at all

2 hours ago, emkay said:

 

Wait. Is it just RMTplay using every routine unrolled ?

Is would save CPU time but cost more RAM. 

 

it's a raw dump of the Pokey registers compressed LZ style... discussed here 

  

Sorry for the thread hijack

Link to comment
Share on other sites

6 hours ago, Marius said:

 

 

I have two wishes:

 

1. Oh... I should definitely learn to arrange stuff like this. I think always way too much from the perspective using chords which eat way too many notes. This is really a fabulous song, with a wide acoustic field. Well done, any suggestion how I could learn this? (I know how music works, it is more that I am not skilled in making this kind of arrangements)

 

The only way I'd know is to use a SID Tracker. I'm still hoping someone is doing a "Goat-Tracker" to "RMT" converting tool. 

Using it the old way: One channel bass + drum , one channel an arpeggio, and one channel using any possibility of the SID modulation. 

Seems the "SID musicians" get inspired by the resulting sounds there.

If this can be played on SID, it also can be played on POKEY then.

 

 

6 hours ago, Marius said:

2. I love using atari 8bit, and I dislike using PC / Mac for Atari 8bit stuff. You seem to use RMT (am I right?) ... so that would not my #1 choice, since I want to use my a8 more frequently. Is there anything native on a8 that comes close to what RMT can do? I thought Theta Music Composer was adviced to use on a8 to me... but I can not remember clearly. Is there a good manual available for Theta Music Composer, or do you recommend a different composer on a8? 

 

The thing is: You can do "Pokey tunes" while you're doing something on the PC. Running RMT , listen to the tune, and find the needed positions and solutions. 

If you're doing this on a real Atari, it will cost more time. 

The perfect solution could be to have the tune "99%" perfect on the PC and then do the final tuning on the real thing. Because there is a lot of possibilities missing to control in RMT. 

 

Btw: We found out that my "Hardsynth" Method does work well even if played by the LZS "Player" . 

10 Scanlines for such complex tunes....

 

6 hours ago, Marius said:

Great stuff emkay!

 

Well, Sack-c0s posted a video of his "Chordian" conversion. I took the notes and pattern from the video and added my own instrumentation. You can see the development steps in the "emkayvideo" channel.

 

At least this way we've got something outstanding. ;)

 

 

 

Link to comment
Share on other sites

1 hour ago, emkay said:

Btw: We found out that my "Hardsynth" Method does work well even if played by the LZS "Player" . 

10 Scanlines for such complex tunes....

 

So far, we have determined one thing that doesn't work with SAP-R/LZS Player, and that's two-tone mode.

 

I might add that timed writes don't work either, so pavros' way to sync dist C does not work.

 

1 hour ago, emkay said:

I took the notes and pattern from the video and added my own instrumentation.

Now that's determination! :)

You could also have run the original SID through siddump ;)

Link to comment
Share on other sites

38 minutes ago, ivop said:

 

So far, we have determined one thing that doesn't work with SAP-R/LZS Player, and that's two-tone mode.

 

I might add that timed writes don't work either, so pavros' way to sync dist C does not work.

 

Now that's determination! :)

You could also have run the original SID through siddump ;)

 

That way I was 100% sure, the notation will fit. So it was worth the work ;)

Link to comment
Share on other sites

2 hours ago, ivop said:

So far, we have determined one thing that doesn't work with SAP-R/LZS Player, and that's two-tone mode.

 

I might add that timed writes don't work either, so pavros' way to sync dist C does not work.

I'm not sure what 2 tone mode is, care to give some details why it doesn't work in the original thread (we've totally hijacked this thread)? 

 

Does any of the regular players support timed writes ? I'm guessing not, RMT at least just updates Pokey at the end of its replay routine I think

 

 

Link to comment
Share on other sites

13 minutes ago, rensoup said:

I'm not sure what 2 tone mode is, care to give some details why it doesn't work in the original thread (we've totally hijacked this thread)? 

Two-tone mode is enabled through SKCTL ($d20f) which is not recorded by SAP-R. It only records writes to $d200-$d208, i.e. all the AUDF and AUDC registers and AUDCTL.

 

For a description what enabling two-tone mode actually does, I refer to phaeron's excellent Altirra Hardware Reference Manual, chapter five, just before section 5.5. Page 97 in the latest version I have.

 

Quote

Does any of the regular players support timed writes ? I'm guessing not, RMT at least just updates Pokey at the end of its replay routine I think

No, AFAIK, no player in the wild supports timed writes to reset the poly counter to a known state.

 

Somewhat resetting the poly counters in RMT is done by playing the highest frequency possible for a frame and then go back to your desired note. That works with SAP-R/LZS player.

 

Something that won't work work SAP-R either, is putting the poly counter in a known state before you start playing your tune (and keep your notes that rely on those counter within certain modulo boundaries), by means of writing a non-zero value to STIMER ($d209). STIMER is also not recorded in SAP-R.

 

13 minutes ago, rensoup said:

we've totally hijacked this thread

Yes, we have :D

 

Edited by ivop
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...