First steps with MSX-Music

Pagina 2/2
1 |

Van NYYRIKKI

Enlighted (5609)

afbeelding van NYYRIKKI

11-08-2020, 10:02

Briqunullus wrote:

Just wondering. Because of that detection routine, even clones wouldn't work in an I/O only slot, would they?

Yes, technically clones work just fine on I/O slots as they don't need to be activated first, but usually detection routines search "PAC2OPLL" / "APRLOPLL" ID-string from ROM and if they can't find it they likely switch to PSG music instead.

Van Metalion

Paragon (1215)

afbeelding van Metalion

11-08-2020, 10:32

Grauw wrote:

If you detect an FM-PAC, you need to set bit 0 of address #7FF6 to enable the I/O ports (disabled by default to allow multiple FM-PACs). Further explanation here here. Example code including detection following the MSX Datapack advice here.

Yes, I am aware about that procedure to enable the I/O ports after detection. At the moment, I'm just happy (for my tests) that the FM-PAC cartridge works directly out of the box with I/O ports, without any need for initialization.

I ran into another problem : I assumed, reading the YM2413 application manual, that to produce any note, you just could enter the F-number of a given octave (for example the 4th octave), and then change the octave in the Block bits (in registers 20h-28h). So for example, I could do this :

note    F-number    Block
C4      171         4
C5      171         5
C6      171         6

And if you check with this formula, it seems to confirm that :
Fnumber = Fmus . 2^18/ Fsam / 2^(Block-1)

But it doesn't seem to work entirely like that. I get some notes in 4th octave, some in 3rd, but some notes are missing. So I guess I got it wrong. Could someone correct me on that ?

PS : I think this hobby needs a fuller and clearer MSX-Music application manual. Yamaha can be so obfuscated sometimes in their explanations ...

Van Grauw

Ascended (9395)

afbeelding van Grauw

11-08-2020, 10:32

No, your assumption is correct. Something else must be wrong if it doesn’t work for you. Maybe to do with key on, or you’re using the wrong bits?

Van Metalion

Paragon (1215)

afbeelding van Metalion

11-08-2020, 11:46

I found the problem : my F-number table was incorrect, and the E note was missing. I had this :

F_number	; A,A#,B,-,C,C#,D,D#,E,-,F,F#,G,G#
	word	288,306,324,0,171,182,192,204,0,216,229,242,257,272

where I should have had this :

F_number	; A,A#,B,-,C,C#,D,D#,E,-,F,F#,G,G#
	word	288,306,324,0,171,182,192,204,216,0,229,242,257,272

Van Metalion

Paragon (1215)

afbeelding van Metalion

03-10-2020, 10:36

OK, now trying to play a user instrument.
My first try is with MSX-MUSIC built-in user instruments.
I've done this program:

10 _MUSIC
20 _VOICE(@58,,)
30 _AUDREG (16,216)
40 _AUDREG (48,&h20)
50 _AUDREG (32,&b00011000)

But it gives me 'Syntax error in 20'
I used this page as reference : https://www.msx.org/wiki/CALL_VOICE
What am I doing wrong ?

Van Manuel

Ascended (17075)

afbeelding van Manuel

03-10-2020, 12:42

Just leave out the extra commas there. They are only needed if you want to 'skip' channels in the voice specification.

Van Metalion

Paragon (1215)

afbeelding van Metalion

03-10-2020, 13:18

OK, thanks, it works now.

Van Giangiacomo Zaffini 2

Master (234)

afbeelding van Giangiacomo Zaffini 2

24-10-2020, 00:46

In K.H.'s Tweet - with powerful MSXPen that's always on our side - some insight on BASIC CALL TEMPER.

Pagina 2/2
1 |