Jump to content
IGNORED

MuseScore/4a - Music for the TI


SteveB

Recommended Posts

Even with the non-square noise it works better than expected. 


10 CALL SOUND(2000,110,30,110,30,830,30,-4,0)
20 CALL SOUND(2000,110,0,110,30,830,30,-4,0)
30 CALL SOUND(2000,110,0,220,0)
 

The overlay 55/110 is not much more "instable" than the 110/220 Hz, just a little more "humming". 

 

I would rather use this in a game than in the MuseScore for now. 

  • Like 3
Link to comment
Share on other sites

  • 3 months later...

I just installed it and it looks great, and works great with the sample music. Thank you! This makes things a lot simpler and more fun when it comes to TI music.

 

My question: I haven't used MuseScore before, and I would like to use it on an older 32 bit Windows computer that I keep for Classic99 and other non-work stuff. But the newest version of MuseScore that I can run is version 2 - not 3. Will that cause any compatibility problems with your program? I figure if everything is saved in MusicXML format, it should work, correct? I know should try it before I ask, but...

  • Like 1
Link to comment
Share on other sites

I done some trials but no luck for the moment ? 
the only one almost good is GALAGA's jingle

Galaga.xml  GALAGAJNGL

The other ones I have tried give me too much errors of transposing notes and the melody change too much.

like these ones:

Knight Rider - Theme Tune.xml  Rodland.xml  Star Trek - Theme Tune.xml

 

 

maybe I should take a better look to the manual to discover some secrets ?

Edited by ti99iuc
  • Like 2
Link to comment
Share on other sites

23 hours ago, ti99iuc said:

maybe I should take a better look to the manual to discover some secrets ?

Always a good idea ... if you do not enjoy saving 10 minutes of reading by trying something for two hours...

 

Very brief:

  • No sounds below 110 Hz 
  • Maximum of 3 simultanious sounds / voices ... chords are lava!
  • Like 3
Link to comment
Share on other sites

 

Thanks :) I just watched your video example and followed the explained steps thinking it was fast and easy to do a conversion.

I just thought that a not too complex midi was already sufficient for an easy conversion, instead not, or at least not always it is possible for a fast conversion, for the Galaga jingle, it was good.


Read and understand the manual is a bit more complicated for me but I will do a try of course ;)

 

Edited by ti99iuc
  • Like 4
Link to comment
Share on other sites

  • 1 year later...

In January the MuseScore team released version 4 with a lot of changes and improvements.

 

I revised the documentation for MuseScore 4 and added two features:

  • Auto-Copy to Clipboard is now an option (as suggested by @Vorticon)
  • Create XB256 Soundlists to be played in the background of program

Harry @senior_falcon helped me very much in getting this to work. Please be aware, this option provides only very basic soundlist-functionality: Play the list once or in endless repetition. For more complex arrangements use the very versatile SLCOMPILER tool from Harry included in XB256, where you can have muliple, named sections and finite loops etc. and can pack multiple soundlists into one binary.

 

I use the BIN$() pseudo-function of LibXBTKN to get the 8bit binary soundlist to the TI. During tokenization, the BIN$("hex-string") gets replaced with the binary representation of the supplied hex-string, i.e. PRINT BIN$("424344") gets saved as PRINT "ABC". Therefore you should use the "Export to FIAD" for saving the XB256 Soundlist (requires line-numbers to be enabled to have a valid XB program) or copy the created code over to TiCodEd, where BIN$ also works. The EXAMPLE256 is the FIAD soundlist of the provided example.

 

Enjoy!

 

TI-MuseScore4a_V11.zip

 

image.thumb.png.f65b3deaaae894f7e3b2573ed7aec314.png

  • Like 8
Link to comment
Share on other sites

On 5/1/2023 at 3:01 PM, SteveB said:

PRINT BIN$("424344") gets saved as PRINT "ABC"

Correction: PRINT BIN$("414243") gets saved as PRINT "ABC"  ... you get the idea ... >00, >0B, >0D, >FF all have special meanings, but are not interpreted by the TI in a quoted string. The preceding length byte makes control characters superfluous.

  • Like 1
Link to comment
Share on other sites

  • 10 months later...

With respect to the XB256 sound list, is it possible to reduce the line length of the generated code?  I ask because XB256 is reporting that the line lengths are too long.  I could probably chop them in half manually but is there a setting somewhere to do this for me?

Link to comment
Share on other sites

I am really sorry about that, my bad.  I was trying to be too clever for my own good.  I had attempted to copy the generated XB256 Soundlist and paste it into Classic99, and of course it didn't work (which is a shame).  Even after editing the long lines & tweeking the entry points, XB256 didnt know how to handle BIN$(). "String-number mismatch".

 

You know the old addage, Never read the instructions unless absolutly nessesary, well i had to read them. I exported the code as FIAD, & merged it into my program.  It worked perfectly, as you intended.

 

Thank you.

  • Like 3
Link to comment
Share on other sites

On 1/15/2022 at 5:10 PM, SteveB said:

 

The program is a Windows 32 bit application that comes with a manual, a small MusicXML example and Lazarus source. 

 

Enjoy,

SteveB and Grammostola

 

 

Been looking for something like this. Thanks!

  • Like 1
Link to comment
Share on other sites

Can someone please help me figure out what I am doing wrong.  I have MuseScore 4 with TI99/4a soundfont set up in a mixer channel.  I have entered a simple single voice 12 bar blues progression In A Maj. (test.mscz) it sounds Okay.

Ensuring that reverb was off I exported the song to musicXML Uncompressed (test.musicxml).

I then loaded the XML file into MuseScor4a and generated the Call Sound statements with the standard parameters (TEST.txt).

I Pasted TEST.txt into classic99 and it sounds really,really bad.  It is as if the program had transposed it into a Minor key or something,  The 'A' notes are OK (220 H)z but all the rest are out by at least 1 cent, some by nearly a whole step. 

 

I don't fully understand the code in the left hand pane but the <note>/<step> and <alter> values look alright to me.  But then again...

test.mscz test.musicxml TEST.txt

Link to comment
Share on other sites

Yes, I'm afraid it is as good as the hardware permits. The calculation of frequencies to the notes seem to be correct, sometimes off by 1 Hz due to rounding and also different frequency tables.

image.thumb.png.8cf9bda5cc0d1927ec356c4efc44e23a.png

 

E: 329 vs. 330 Hz

G: 391 vs. 392 Hz

 

MuseScore/4a calculates by division from the 8th octave:

  freq[8,'C',natural] := 4186;
  freq[8,'C',sharp]   := 4434;
  freq[8,'D',flat]    := 4434;
  freq[8,'D',natural] := 4698;
  freq[8,'D',sharp]   := 4978;
  freq[8,'E',flat]    := 4978;
  freq[8,'E',natural] := 5274;
  freq[8,'F',natural] := 5587;
  freq[8,'F',sharp]   := 5919;
  freq[8,'G',flat]    := 5919;
  freq[8,'G',natural] := 6271;
  freq[8,'G',sharp]   := 6644;
  freq[8,'A',flat]    := 6644;
  freq[8,'A',natural] := 7040;
  freq[8,'A',sharp]   := 7458;
  freq[8,'B',flat]    := 7458;
  freq[8,'B',natural] := 7902;

 

image.jpeg.a2f2c12baf315a07790d85db46f20349.jpeg

 

You may check out the E/A Manual chapter 20.3 to see the actual hardware divider resolution:

image.thumb.png.4ac4f49ff9decea9ee51f477d76689a6.png

 

Some things work better than others...

  • Like 1
Link to comment
Share on other sites

I assume that <alter>1</alter> means changing C to C#, but this is not reflected in the output 110 CALL SOUND(500,261,0), which should be 110 CALL SOUND(500,277,0).

 

<pitch>
          <step>C</step>
          <alter>1</alter>
          <octave>4</octave>
</pitch> 

  • Like 1
Link to comment
Share on other sites

8 hours ago, Asmusr said:

I assume that <alter>1</alter> means changing C to C#, but this is not reflected in the output 110 CALL SOUND(500,261,0), which should be 110 CALL SOUND(500,277,0).

 

<pitch>
          <step>C</step>
          <alter>1</alter>
          <octave>4</octave>
</pitch> 

Very interesting .. I currently ignore <alter> and only look for <accidental>flat</accidental> or <accidental>sharp</accidental>. 

 

I will see what I can do in the code... this does not really fit in my translation logic.

 

 

 

Link to comment
Share on other sites

49 minutes ago, SteveB said:

Very interesting .. I currently ignore <alter> and only look for <accidental>flat</accidental> or <accidental>sharp</accidental>. 

 

I will see what I can do in the code... this does not really fit in my translation logic.

I think <accidental> is about how the note looks while <alter> is about its pitch. As you probably know, depending on the key, e.g. A major, some notes are sharp or flat by default without writing it explicitly.

 

https://www.w3.org/2021/06/musicxml40/musicxml-reference/elements/alter/

Edited by Asmusr
Link to comment
Share on other sites

24 minutes ago, Asmusr said:

I think <accidental> is about how the note looks while <alter> is about its pitch. As you probably know, depending on the key, e.g. A major, some notes are sharp or flat by default without writing it explicitly.

 

https://www.w3.org/2021/06/musicxml40/musicxml-reference/elements/alter/

You are right again ... my music knowlegde wasn't suffient when I started this program. I works only correct when in C major. This is why the first note on the second, fourth, sixth and eights measure have a explicit "natual" accidental.

 

The <alter> seems to reflect this already.

 

@syd michel Does this sounds right?

 

Spoiler

100 CALL SOUND(500,220,0) ! M001: quarter 3A 
110 CALL SOUND(500,277,0) ! M001: quarter 4C#
120 CALL SOUND(500,329,0) ! M001: quarter 4E 
130 CALL SOUND(500,369,0) ! M001: quarter 4F#
140 CALL SOUND(500,391,0) ! M002: quarter 4G 
150 CALL SOUND(500,369,0) ! M002: quarter 4F#
160 CALL SOUND(500,329,0) ! M002: quarter 4E 
170 CALL SOUND(500,277,0) ! M002: quarter 4C#
180 CALL SOUND(500,220,0) ! M003: quarter 3A 
190 CALL SOUND(500,277,0) ! M003: quarter 4C#
200 CALL SOUND(500,329,0) ! M003: quarter 4E 
210 CALL SOUND(500,369,0) ! M003: quarter 4F#
220 CALL SOUND(500,391,0) ! M004: quarter 4G 
230 CALL SOUND(500,369,0) ! M004: quarter 4F#
240 CALL SOUND(500,329,0) ! M004: quarter 4E 
250 CALL SOUND(500,277,0) ! M004: quarter 4C#
260 CALL SOUND(500,293,0) ! M005: quarter 4D 
270 CALL SOUND(500,369,0) ! M005: quarter 4F#
280 CALL SOUND(500,440,0) ! M005: quarter 4A 
290 CALL SOUND(500,493,0) ! M005: quarter 4B 
300 CALL SOUND(500,523,0) ! M006: quarter 5C 
310 CALL SOUND(500,493,0) ! M006: quarter 4B 
320 CALL SOUND(500,440,0) ! M006: quarter 4A 
330 CALL SOUND(500,369,0) ! M006: quarter 4F#
340 CALL SOUND(500,220,0) ! M007: quarter 3A 
350 CALL SOUND(500,277,0) ! M007: quarter 4C#
360 CALL SOUND(500,329,0) ! M007: quarter 4E 
370 CALL SOUND(500,369,0) ! M007: quarter 4F#
380 CALL SOUND(500,391,0) ! M008: quarter 4G 
390 CALL SOUND(500,369,0) ! M008: quarter 4F#
400 CALL SOUND(500,329,0) ! M008: quarter 4E 
410 CALL SOUND(500,277,0) ! M008: quarter 4C#
420 CALL SOUND(500,329,0) ! M009: quarter 4E 
430 CALL SOUND(500,415,0) ! M009: quarter 4G#
440 CALL SOUND(500,493,0) ! M009: quarter 4B 
450 CALL SOUND(500,415,0) ! M009: quarter 4G#
460 CALL SOUND(500,293,0) ! M010: quarter 4D 
470 CALL SOUND(500,369,0) ! M010: quarter 4F#
480 CALL SOUND(500,440,0) ! M010: quarter 4A 
490 CALL SOUND(500,369,0) ! M010: quarter 4F#
500 CALL SOUND(500,220,0) ! M011: quarter 3A 
510 CALL SOUND(500,277,0) ! M011: quarter 4C#
520 CALL SOUND(500,329,0) ! M011: quarter 4E 
530 CALL SOUND(500,369,0) ! M011: quarter 4F#
540 CALL SOUND(500,440,0) ! M012: quarter 4A 
550 CALL SOUND(500,369,0) ! M012: quarter 4F#
560 CALL SOUND(500,440,0) ! M012: quarter 4A 
570 CALL SOUND(500,440,30) ! M012: quarter 4A 
 

 

 

Link to comment
Share on other sites

On 4/27/2022 at 8:08 AM, XLERB said:

Uh-oh, my two life-eating interests have collided: Fiddle tunes and the TI99/4A. I can now import 650,000 tunes in musicxml format and convert them to sound programs for the TI. “Kesh Jig” was the first. Only 649,999 to go…

Ooo thanks for thls link. 

Are you a fiddler?

  • Like 1
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...