SteveB Posted January 16, 2022 Author Share Posted January 16, 2022 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. 3 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted January 17, 2022 Share Posted January 17, 2022 Excellent. I was working with LMMS doing much the same. ? 1 Quote Link to comment Share on other sites More sharing options...
globeron Posted January 22, 2022 Share Posted January 22, 2022 Very nice program! I never came very far with Music Maker, but this makes music fun again on the TI 2 Quote Link to comment Share on other sites More sharing options...
XLERB Posted April 26, 2022 Share Posted April 26, 2022 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... 1 Quote Link to comment Share on other sites More sharing options...
SteveB Posted April 26, 2022 Author Share Posted April 26, 2022 Hi Paul, I did not test the MuseScore 2.x version, but in general any uncompressed MusicXML should work. But I think the current 3.x version is also available in 32bit Windows: https://musescore.org/de/download/musescore-32bit.msi This should work in 32bit Windows 7 and is version 3.6.2. 2 Quote Link to comment Share on other sites More sharing options...
XLERB Posted April 26, 2022 Share Posted April 26, 2022 3 hours ago, SteveB said: Hi Paul, I did not test the MuseScore 2.x version, but in general any uncompressed MusicXML should work. But I think the current 3.x version is also available in 32bit Windows: https://musescore.org/de/download/musescore-32bit.msi This should work in 32bit Windows 7 and is version 3.6.2. Thanks! Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted April 26, 2022 Share Posted April 26, 2022 (edited) 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 April 26, 2022 by ti99iuc 2 Quote Link to comment Share on other sites More sharing options...
XLERB Posted April 27, 2022 Share Posted April 27, 2022 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… 2 6 Quote Link to comment Share on other sites More sharing options...
SteveB Posted April 27, 2022 Author Share Posted April 27, 2022 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! 3 Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted April 27, 2022 Share Posted April 27, 2022 (edited) 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 April 27, 2022 by ti99iuc 4 Quote Link to comment Share on other sites More sharing options...
SteveB Posted May 1, 2023 Author Share Posted May 1, 2023 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 8 Quote Link to comment Share on other sites More sharing options...
SteveB Posted May 2, 2023 Author Share Posted May 2, 2023 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. 1 Quote Link to comment Share on other sites More sharing options...
syd michel Posted March 28 Share Posted March 28 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? Quote Link to comment Share on other sites More sharing options...
SteveB Posted March 28 Author Share Posted March 28 Could you send me an example? I'm sure this is fixable ... Quote Link to comment Share on other sites More sharing options...
syd michel Posted March 29 Share Posted March 29 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. 3 Quote Link to comment Share on other sites More sharing options...
MikeV Posted March 29 Share Posted March 29 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! 1 Quote Link to comment Share on other sites More sharing options...
syd michel Posted March 31 Share Posted March 31 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 Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted March 31 Share Posted March 31 As frequency increases, accuracy decreases. This is characteristic of the SN76494 sound generator. This will demonstrate... 100 A=110 110 CALL SOUND(-4250,A,0) 120 A=A+1 130 PRINT A 140 GOTO 110 By the time it gets to 1000, the issue is quite evident. Quote Link to comment Share on other sites More sharing options...
SteveB Posted March 31 Author Share Posted March 31 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. 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; You may check out the E/A Manual chapter 20.3 to see the actual hardware divider resolution: Some things work better than others... 1 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted April 1 Share Posted April 1 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> 1 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted April 1 Share Posted April 1 Some of the problems, including transposition, are somewhat outside the sound chip. 🙂 1 Quote Link to comment Share on other sites More sharing options...
SteveB Posted April 1 Author Share Posted April 1 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. Quote Link to comment Share on other sites More sharing options...
Asmusr Posted April 1 Share Posted April 1 (edited) 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 April 1 by Asmusr Quote Link to comment Share on other sites More sharing options...
SteveB Posted April 1 Author Share Posted April 1 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 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted April 1 Share Posted April 1 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? 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.