SteveB Posted January 15, 2022 Share Posted January 15, 2022 Hi 99ers, there are plenty of graphic tools around for our beloved TI-99/4a, but very few for audio. Instead of building a mediocre audio editor we decided to use the greatest free music notation tool MuseScore and just build a bridge to the TI. With the included soundfont you can hear how your score will sound on the TI. Since MuseScore can import MIDI files, you can use them as a base as well. We use the MusicXML format to create CALL SOUND or DATA sequences for the TI. You may cut&paste to a TI emulator, TiCodEd or save as a FIAD TI-FILE program using the LibXBTKN32.DLL library. Examples: Fuer Elise.mp3 Program: elise Score: Für_Elise.mscz Lullaby.mp3 Program: lullaby Here is a short video introduction: The program is a Windows 32 bit application that comes with a manual, a small MusicXML example and Lazarus source. TI-MuseScore4a.zip Enjoy, SteveB and Grammostola 12 9 Quote Link to comment Share on other sites More sharing options...
oddemann Posted January 16, 2022 Share Posted January 16, 2022 Wow, impressive! 2 Quote Link to comment Share on other sites More sharing options...
oddemann Posted January 16, 2022 Share Posted January 16, 2022 OK, testing... I got this file... and if you load it there is a LOT of instruments and it dos not fit. I get "half boxes". Anything you can do about that? Happy_Birthday.musicxml 1 Quote Link to comment Share on other sites More sharing options...
oddemann Posted January 16, 2022 Share Posted January 16, 2022 Brandenburg Concerto No. 2 in F Major, BWV 1047 by Johann Sebastian Bach This is with Flute, Oboe, Violin and Violocello. Dos not sound great. BUT, it is cool that you can with musicXML get all this code for "free". Thx, @SteveB PS! Will try to take off instruments to see if I get a better sounding code. Spoiler 100 DATA 250,146,0,0,250,220,0,0,250,174,0,0,250,220,0,0,250,440,146,0,250,440,220,0 110 DATA 250,493,195,0,250,493,246,0,250,493,164,0,250,440,195,0,125,391,138,0,125,493,138,0 120 DATA 250,440,164,0,250,349,146,0,250,349,220,0,250,329,174,0,250,293,220,0,250,440,698,146 130 DATA 250,440,698,174,250,493,698,195,250,493,659,164,250,493,138,0,250,440,164,0 140 DATA 125,391,659,110,125,493,659,110,125,440,698,130,125,440,783,130,250,349,659,146 150 DATA 250,349,587,110,250,329,174,0,250,293,110,0,250,880,698,146,250,880,698,174 160 DATA 250,987,698,195,250,987,659,123,250,987,164,0,250,880,195,0,125,783,659,110 170 DATA 125,987,659,110,125,880,698,220,125,880,783,220,250,698,659,146,250,698,587,220 180 DATA 250,659,174,0,250,587,220,0,250,880,349,146,250,880,349,174,250,987,349,207 190 DATA 250,987,329,123,250,987,164,0,125,1046,195,0,125,1174,195,0,125,1046,349,110 200 DATA 125,987,349,110,250,1046,349,146,250,830,349,164,250,830,329,246,250,739,207,0 210 DATA 250,659,246,0,250,1046,659,220,250,1046,659,261,250,1046,698,293,250,987,698,349 220 DATA 250,698,246,0,250,659,293,0,125,987,587,195,125,987,880,195,125,1046,783,246 230 DATA 125,1174,783,246,250,987,698,261,250,880,659,329,250,587,220,0,250,523,261,0 240 DATA 250,880,493,174,250,880,440,220,250,880,587,246,250,830,587,293,250,587,698,207 250 DATA 250,523,659,246,125,783,493,164,125,783,587,164,250,783,523,329,250,830,493,220 260 DATA 250,880,440,261,250,493,174,0,250,440,220,0,250,880,698,146,250,880,698,123 270 DATA 250,880,698,164,250,880,659,146,250,880,587,164,250,987,523,164,125,659,587,164 280 DATA 125,880,698,164,250,830,659,164,250,880,587,110,250,880,523,164,250,493,130,0 290 DATA 250,440,164,0,250,1046,523,110,250,1046,523,130,250,1046,587,123,250,987,587,146 300 DATA 250,587,195,0,125,659,123,0,125,698,123,0,125,987,659,130,125,987,783,130 310 DATA 125,1046,698,130,125,1174,698,130,250,987,698,174,250,880,698,110,250,659,195,0 320 DATA 250,587,123,0,250,880,523,110,250,880,587,130,250,880,523,123,250,783,493,146 330 DATA 250,587,195,0,125,659,123,0,125,698,123,0,250,783,493,130,125,880,523,261 340 DATA 125,987,587,261,250,783,493,174,250,698,440,220,250,659,195,0,250,587,246,0 350 DATA 250,1046,440,220,250,1046,440,261,250,1174,440,246,250,1174,391,293,250,1174,195,0 360 DATA 125,1318,246,0,125,1396,246,0,125,1318,391,138,125,1567,391,138,125,1396,440,164 370 DATA 125,1396,493,164,250,1396,391,146,250,1396,349,220,250,1318,174,0,250,1174,220,0 380 DATA 250,1046,587,146,250,987,587,174,250,1567,587,164,250,1567,523,174,250,1396,523,195 390 DATA 250,1318,493,195,250,1174,493,195,125,1046,440,195,125,1046,493,195,250,1046,523,130 400 DATA 250,1046,523,164,250,146,0,0,250,174,0,0,250,783,164,0,250,783,195,0,250,880,174,0 410 DATA 250,880,146,0,250,880,123,0,250,783,146,0,125,698,195,0,125,880,195,0,250,783,123,0 420 DATA 250,659,130,0,125,783,110,0,125,739,110,0,250,783,123,0,125,987,184,0,125,880,184,0 430 DATA 250,1174,987,195,250,1174,987,123,250,1244,987,130,250,1244,880,155,250,1244,110,0 440 DATA 250,1174,130,0,125,1046,880,146,125,1318,880,146,125,1174,987,146,125,1174,1046,146 450 DATA 250,1046,880,195,250,987,783,164,125,1174,174,0,125,1108,174,0,250,1174,138,0 460 DATA 125,1396,440,146,125,1318,440,146,250,1396,440,146,250,1396,493,195,250,1396,493,246 470 DATA 250,1318,493,164,250,440,195,0,125,391,1046,220,125,493,1046,220,250,1318,440,110 480 DATA 125,1396,349,146,125,1567,349,146,250,1318,349,220,250,1174,329,174,250,293,220,0 490 DATA 250,698,440,146,250,698,440,174,250,698,493,195,250,622,493,246,250,493,155,0 500 DATA 125,523,195,0,125,587,195,0,125,659,622,130,125,659,587,130,125,698,659,164 510 DATA 125,783,659,164,250,622,440,174,250,587,440,220,250,391,146,0,250,349,174,0 520 DATA 250,587,493,123,250,1396,587,146,250,1396,587,155,250,1567,523,130,250,1567,493,174 530 DATA 250,1567,523,174,250,1396,523,174,125,1244,587,174,125,1567,622,174,250,1396,523,123 540 DATA 250,1244,493,174,250,1174,698,146,250,698,174,0,250,987,123,0,250,587,987,146 550 DATA 250,587,987,174,250,587,880,261,250,523,523,220,250,523,261,0,250,880,698,174 560 DATA 250,880,698,220,250,880,698,130,250,783,622,195,250,155,0,0,250,783,195,0 570 DATA 250,783,659,130,250,1046,659,164,250,1046,622,195,250,1046,587,293,250,987,587,246 580 DATA 250,587,293,0,250,783,195,0,250,987,783,246,250,987,783,146,250,987,739,220 590 DATA 250,880,184,0,250,220,0,0,250,987,195,0,250,1174,987,246,250,1174,987,261 600 DATA 250,1244,880,311,250,1244,220,0,250,1244,261,0,250,1174,880,174,125,1046,987,220 610 DATA 125,1567,1046,220,250,1396,880,246,250,1244,783,293,250,1174,195,0,250,1046,246,0 620 DATA 250,987,587,155,250,880,587,195,250,783,622,220,250,1046,622,261,250,1046,622,184 630 DATA 250,1046,587,220,125,987,523,146,125,987,659,146,125,880,587,293,125,1046,587,293 640 DATA 250,987,523,195,250,880,493,246,250,783,440,155,250,391,195,0,250,440,783,130 650 DATA 125,1244,493,110,125,1244,523,110,250,1244,493,146,250,1244,493,130,250,1174,493,146 660 DATA 250,1046,440,146,250,987,440,146,125,1046,493,146,125,1318,493,146,250,1174,391,195 670 DATA 250,1046,391,293,250,987,783,246,250,880,293,0,250,783,587,195,250,587,493,246 680 DATA 250,659,493,138,250,659,493,164,250,659,440,110,125,698,130,0,125,783,130,0 690 DATA 125,698,146,0,125,659,146,0,250,493,698,195,250,493,554,110,250,493,554,164 700 DATA 250,440,493,138,250,440,164,0,250,110,0,0,250,783,659,130,250,783,659,146 710 DATA 250,783,659,220,250,698,587,174,250,220,0,0,250,587,146,0,250,587,349,174 720 DATA 250,587,349,110,250,554,349,164,250,329,138,0,250,164,0,0,250,659,110,0 730 DATA 250,391,659,130,250,391,659,146,250,391,587,220,250,349,174,0,250,220,0,0 740 DATA 250,146,0,0,250,698,587,174,250,698,587,110,250,698,587,164,250,659,329,138 750 DATA 250,329,164,0,250,391,110,0,250,391,523,130,250,391,523,146,250,369,554,220 760 DATA 250,587,184,0,250,880,220,0,250,880,739,146,250,1046,739,174,250,1046,739,195 770 DATA 250,1046,783,293,250,987,246,0,250,587,293,0,250,587,195,0,250,987,698,246 780 DATA 250,987,698,130,250,987,698,195,250,1046,391,164,250,391,195,0,250,466,130,0 790 DATA 250,466,659,164,250,493,659,174,250,440,659,261,250,698,220,0,250,523,261,0 800 DATA 250,523,440,174,250,622,440,220,250,622,440,123,250,622,493,174,250,587,146,0 810 DATA 250,698,174,0,250,698,123,0,250,698,880,146,250,698,880,164,250,698,880,246 820 DATA 250,659,987,195,250,987,246,0,250,587,164,0,250,587,987,195,250,587,987,110 830 DATA 250,554,987,164,250,880,138,0,250,659,164,0,250,659,659,110,250,783,659,130 840 DATA 250,783,659,146,250,783,587,220,250,698,174,0,250,220,0,0,250,146,0,0,250,698,440,174 850 DATA 250,698,440,195,250,698,493,246,250,659,493,164,250,493,195,0,250,440,130,0 860 DATA 125,659,391,164,125,659,587,164,125,698,523,174,125,783,523,174,250,659,493,220 870 DATA 250,587,440,146,250,391,174,0,250,1174,349,123,250,587,1174,146,250,587,987,164 880 DATA 250,587,987,195,250,554,987,138,250,880,391,164,125,783,349,110,125,987,349,110 890 DATA 250,523,880,220,250,523,783,146,250,554,698,174,250,587,659,123,250,587,146,0 900 DATA 250,659,195,0,125,587,698,164,125,587,783,164,250,587,698,110,250,587,698,195 910 DATA 250,587,698,110,250,587,659,110,250,659,659,110,125,440,698,110,125,587,698,110 920 DATA 250,554,554,123,500,783,554,123,125,783,587,123,125,987,587,123,250,880,415,123 930 DATA 250,783,415,123,250,698,391,123,250,698,440,123,125,698,349,110,125,554,349,110 940 DATA 250,587,349,110,250,587,329,110,250,587,293,110,375,523,293,146,1125,587,293,146 950 DATA 500,587,369,0 960 ! Player code 970 FOR I=1 to 433 980 READ DUR,F1,F2,F3 990 IF F2=0 THEN CALL SOUND(DUR,F1,0 ) ELSE IF F3=0 THEN CALL SOUND(DUR,F1,0 ,F2,0 ) ELSE CALL SOUND(DUR,F1,0 ,F2,0 ,F3,0 ) 1000 NEXT I Quote Link to comment Share on other sites More sharing options...
oddemann Posted January 16, 2022 Share Posted January 16, 2022 Violin and Violocello sounds OK. To much with the others. The TI dos not handle it good or it dos not sound good. This is so cool!!! Spoiler 100 DATA 250,146,0,0,250,220,0,0,250,174,0,0,250,220,0,0,250,440,146,0,250,440,220,0 110 DATA 250,493,195,0,250,493,246,0,250,493,164,0,250,440,195,0,125,391,138,0,125,493,138,0 120 DATA 250,440,164,0,250,349,146,0,250,349,220,0,250,329,174,0,250,293,220,0,250,698,146,0 130 DATA 250,698,174,0,250,698,195,0,250,659,164,0,250,138,0,0,250,164,0,0,250,659,110,0 140 DATA 125,698,130,0,125,783,130,0,250,659,146,0,250,587,110,0,250,174,0,0,250,110,0,0 150 DATA 250,587,146,0,250,587,174,0,250,587,195,0,250,554,123,0,250,164,0,0,250,195,0,0 160 DATA 250,523,110,0,250,523,220,0,250,554,146,0,250,587,220,0,250,174,0,0,250,220,0,0 170 DATA 250,146,0,0,250,174,0,0,250,207,0,0,250,123,0,0,250,164,0,0,250,195,0,0 180 DATA 250,349,110,0,250,349,146,0,250,349,164,0,250,329,246,0,250,207,0,0,250,246,0,0 190 DATA 250,220,0,0,250,261,0,0,250,293,0,0,250,349,0,0,250,246,0,0,250,293,0,0 200 DATA 250,195,0,0,250,246,0,0,250,261,0,0,250,329,0,0,250,220,0,0,250,261,0,0 210 DATA 250,880,174,0,250,880,220,0,250,698,246,0,250,698,293,0,250,698,207,0,250,659,246,0 220 DATA 125,587,164,0,125,698,164,0,250,659,329,0,250,587,220,0,250,523,261,0,250,493,174,0 230 DATA 250,440,220,0,250,493,146,0,125,523,123,0,125,587,123,0,250,523,164,0,250,523,146,0 240 DATA 250,523,164,0,500,493,164,0,250,523,164,0,250,493,110,0,250,440,164,0,250,130,0,0 250 DATA 250,164,0,0,250,110,0,0,250,130,0,0,250,123,0,0,250,146,0,0,250,195,0,0 260 DATA 250,123,0,0,500,130,0,0,250,174,0,0,250,110,0,0,250,195,0,0,250,123,0,0 270 DATA 250,523,110,0,250,523,130,0,250,587,123,0,250,587,146,0,250,587,195,0,125,659,123,0 280 DATA 125,698,123,0,125,659,130,0,125,783,130,0,250,698,261,0,250,698,174,0,250,698,220,0 290 DATA 250,659,195,0,250,587,246,0,250,523,220,0,250,587,261,0,250,523,246,0,250,493,293,0 300 DATA 250,195,0,0,250,246,0,0,250,493,138,0,125,523,164,0,125,587,164,0,250,493,146,0 310 DATA 250,440,220,0,250,174,0,0,250,220,0,0,250,698,146,0,250,698,174,0,250,698,164,0 320 DATA 250,659,174,0,250,880,195,0,250,783,195,0,250,698,195,0,250,783,195,0,250,659,130,0 330 DATA 250,659,164,0,250,146,0,0,250,174,0,0,250,783,164,0,250,783,195,0,250,880,174,0 340 DATA 250,880,146,0,250,880,123,0,250,783,146,0,125,698,195,0,125,880,195,0,250,783,123,0 350 DATA 250,659,130,0,125,783,110,0,125,739,110,0,250,783,123,0,125,987,184,0,125,880,184,0 360 DATA 250,987,195,0,250,987,123,0,250,987,130,0,250,880,155,0,250,110,0,0,250,130,0,0 370 DATA 250,880,146,0,125,987,146,0,125,1046,146,0,250,880,195,0,250,783,164,0 380 DATA 250,174,0,0,250,138,0,0,500,1174,146,0,250,1174,195,0,250,1108,246,0,250,164,0,0 390 DATA 250,195,0,0,250,1046,220,0,250,1046,110,0,250,1108,146,0,250,1174,220,0 400 DATA 250,174,0,0,250,220,0,0,250,440,146,0,250,440,174,0,250,493,195,0,250,493,246,0 410 DATA 250,493,155,0,125,523,195,0,125,587,195,0,125,622,130,0,125,587,130,0,250,659,164,0 420 DATA 250,440,174,0,250,440,220,0,250,391,146,0,250,349,174,0,250,493,123,0,250,493,146,0 430 DATA 250,493,155,0,250,493,130,0,250,493,174,0,250,523,174,0,500,440,174,0,250,440,123,0 440 DATA 250,493,174,0,250,146,0,0,250,174,0,0,250,123,0,0,250,146,0,0,250,174,0,0 450 DATA 250,261,0,0,250,523,220,0,250,523,261,0,250,698,174,0,250,698,220,0,250,698,130,0 460 DATA 250,622,195,0,250,155,0,0,250,195,0,0,250,659,130,0,250,659,164,0,250,622,195,0 470 DATA 250,587,293,0,250,246,0,0,250,293,0,0,250,195,0,0,250,246,0,0,250,146,0,0 480 DATA 250,220,0,0,250,184,0,0,250,220,0,0,250,987,195,0,250,987,246,0,250,987,261,0 490 DATA 250,880,311,0,250,220,0,0,250,261,0,0,250,880,174,0,125,987,220,0,125,1046,220,0 500 DATA 250,880,246,0,250,783,293,0,250,195,0,0,250,246,0,0,250,783,155,0,250,783,195,0 510 DATA 250,783,220,0,250,739,261,0,250,184,0,0,250,220,0,0,250,698,146,0,250,698,293,0 520 DATA 250,739,195,0,250,783,246,0,250,155,0,0,250,195,0,0,250,783,130,0,250,783,110,0 530 DATA 250,783,146,0,250,783,130,0,250,783,146,0,250,880,146,0,125,587,146,0,125,783,146,0 540 DATA 250,739,146,0,250,739,195,0,250,783,293,0,250,783,246,0,250,293,0,0,250,195,0,0 550 DATA 250,493,246,0,250,493,138,0,250,493,164,0,250,440,110,0,250,130,0,0,250,146,0,0 560 DATA 250,195,0,0,250,110,0,0,250,164,0,0,250,138,0,0,250,164,0,0,250,110,0,0 570 DATA 250,659,130,0,250,659,146,0,250,659,220,0,250,587,174,0,250,220,0,0,250,146,0,0 580 DATA 250,349,174,0,250,349,110,0,250,349,164,0,250,329,138,0,250,164,0,0,250,110,0,0 590 DATA 250,130,0,0,250,146,0,0,250,220,0,0,250,174,0,0,250,220,0,0,250,146,0,0 600 DATA 250,587,174,0,250,587,110,0,250,587,164,0,250,554,138,0,250,164,0,0,250,110,0,0 610 DATA 250,523,130,0,250,523,146,0,250,554,220,0,250,587,184,0,250,220,0,0,250,146,0,0 620 DATA 250,174,0,0,250,195,0,0,250,293,0,0,250,246,0,0,250,587,293,0,250,587,195,0 630 DATA 250,698,246,0,250,698,130,0,250,698,195,0,250,659,164,0,250,195,0,0,250,130,0,0 640 DATA 250,659,164,0,250,659,174,0,250,659,261,0,250,698,220,0,250,261,0,0,250,174,0,0 650 DATA 250,220,0,0,250,123,0,0,250,174,0,0,250,146,0,0,250,698,174,0,250,698,123,0 660 DATA 250,880,146,0,250,880,164,0,250,880,246,0,250,783,195,0,250,246,0,0,250,164,0,0 670 DATA 250,987,195,0,250,987,110,0,250,987,164,0,250,880,138,0,250,164,0,0,250,110,0,0 680 DATA 250,130,0,0,250,146,0,0,250,220,0,0,250,174,0,0,250,220,0,0,250,146,0,0 690 DATA 250,440,174,0,250,440,195,0,250,493,246,0,250,493,164,0,250,493,195,0,250,440,130,0 700 DATA 125,391,164,0,125,587,164,0,250,523,174,0,250,493,220,0,250,440,146,0,250,391,174,0 710 DATA 250,349,123,0,250,329,146,0,250,293,164,0,250,391,195,0,250,391,138,0,250,391,164,0 720 DATA 250,349,110,0,125,329,220,0,125,391,220,0,250,349,146,0,250,329,174,0,250,293,123,0 730 DATA 250,146,0,0,250,195,0,0,250,987,164,0,250,987,110,0,250,987,195,0,250,880,110,0 740 DATA 250,783,110,0,250,698,110,0,250,783,110,0,250,880,123,0,250,698,123,0,750,659,123,0 750 DATA 250,698,123,0,500,587,123,0,250,587,110,0,125,659,110,0,125,698,110,0,250,440,110,0 760 DATA 250,391,110,0,250,493,146,0,250,440,146,0,1000,369,146,0,500,369,0,0 770 ! Player code 780 FOR I=1 to 399 790 READ DUR,F1,F2,F3 800 IF F2=0 THEN CALL SOUND(DUR,F1,0 ) ELSE IF F3=0 THEN CALL SOUND(DUR,F1,0 ,F2,0 ) ELSE CALL SOUND(DUR,F1,0 ,F2,0 ,F3,0 ) 810 NEXT I Quote Link to comment Share on other sites More sharing options...
SteveB Posted January 16, 2022 Author Share Posted January 16, 2022 Always remember, the TI can only play three dirty square-wave tones at a time. Your score has 14 simultanious instruments. This is way beyond the capabilities of the TI and not an intended use-case of the program. You have two options: 1. the selection of instruments is still possible, just count the checkboxes. As all instruments are single-voiced, you may select up to three instruments. 2. you do a selection on MIDI import in MuseScore: Only the selected MIDI instruments get transferred to the actual score. I usually disable all rhythm instruments like percussions in this step. So I would recommend downstripping the in instruments in MuseScore and use the preview with the included TI Soundfont for picking the best instruments. I looked for some distinctive instruments and chose Flute, Bass Clarinet and Trombone. The MuseScore MP3 export sounds like: Happy_Birthday.mp3 Then I only exported those three instruments to MusicXML and the instrument selection now looks much nicer: I selected all of them by double-clicking the whole box and exported as DATA: 100 DATA 500,523,293,130,500,587,329,146,500,523,293,130,500,698,391,174,1000,659,349,164 110 DATA 500,523,293,130,500,587,329,146,500,523,293,130,500,783,440,195,1000,698,391,174 120 DATA 500,523,293,130,500,1046,587,261,500,880,493,220,500,698,391,174,500,659,349,164 130 DATA 500,587,329,146,500,987,523,246,500,880,493,220,500,698,391,174,500,783,440,195 140 DATA 1500,698,391,174,500,523,293,130,500,587,391,146,500,523,391,130,500,698,391,174 150 DATA 1000,659,293,195,500,523,195,0,500,587,293,195,500,523,293,195,500,783,293,164 160 DATA 1000,698,391,174,500,523,174,0,500,1046,391,174,500,880,391,174,500,698,391,174 170 DATA 500,659,261,195,500,587,261,174,500,987,261,195,500,880,293,174,500,698,293,174 180 DATA 500,783,293,164,1500,698,391,130 190 ! Player code 200 FOR I=1 to 42 210 READ DUR,F1,F2,F3 220 IF F2=0 THEN CALL SOUND(DUR,F1,0 ) ELSE IF F3=0 THEN CALL SOUND(DUR,F1,0 ,F2,0 ) ELSE CALL SOUND(DUR,F1,0 ,F2,0 ,F3,0 ) 230 NEXT I 2 Quote Link to comment Share on other sites More sharing options...
oddemann Posted January 16, 2022 Share Posted January 16, 2022 (edited) Yes, but... I have tried and it is a good thing to have all 14 in your tool. Then I can test with 3 goes best together or only two. Just like in "Brandenburg Concerto No. 2 in F Major, BWV 1047 by Johann Sebastian Bach" I found all 4 to be a mess, 3... still messy, but in the end 2 of them fit together. So... to be able to play around and find what works together would be nice. BUT, where do I find the TI soundfont? Edited January 16, 2022 by oddemann bugs :p Quote Link to comment Share on other sites More sharing options...
SteveB Posted January 16, 2022 Author Share Posted January 16, 2022 It is the SF2 file in the ZIP. The manual describes two options to use it in MuseScore and how to activate it for your score. 1 Quote Link to comment Share on other sites More sharing options...
oddemann Posted January 16, 2022 Share Posted January 16, 2022 (edited) 29 minutes ago, SteveB said: It is the SF2 file in the ZIP. The manual describes two options to use it in MuseScore and how to activate it for your score. I looked at you YT and did what you did and then started to look for musicXML files to play with ? Your YT was so good that it got me started to play around with your tool (no need to read manual or anything else, hehehe). Again... very cool tool! Now I only need to get a hold of the notes for TOTO's music ? hehehehe Found this... cool in MuseScore3 with all the instruments... BUT can it be ported over to the TI and sound half decent ? hehehe (trying to understand how to do the sorting before your tool.) StIIPerMSco.musicxml IMSLP190146-WIMA.5926-StIIPerM-xml.zip PS! I am looking for the music in Elite and see if I can get it to sound OK on the TI. Edited January 16, 2022 by oddemann Challange to SteveB... 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted January 16, 2022 Share Posted January 16, 2022 Well this is very cool! I have very little musical inclinations unfortunately, but there are lots of MIDI files out there ripe for conversion. As an exercise, I converted the score for Pirates of the Caribbean to the TI format mp3 and it actually sounds pretty darn good! I'll have to see if I can find a suitable cover for my current project. By the way, all of this is working fine under Linux. Musescore is available natively for Linux and musescore4a runs perfectly fine under Wine. Well done. EDIT: I converted the mp3 file to xml per the instructions then used musecore4a to convert it to a DATA file with left and right piano and note duration, but the resulting program does not sound quite right. I tried it with Classic 99 and js99er with similar results. Could someone double check me here? Perhaps I am doing something wrong... Pirates of the Caribbean - He's a Pirate (3).mid Pirates of the Caribbean - He's a Pirate (3).mp3 Pirates of the Caribbean - He's a Pirate (3).musicxml PIRATES 3 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted January 16, 2022 Share Posted January 16, 2022 One request for a future release: would it be possible to have a button in musescore4a which copies the contents of the conversion window to the clipboard? This would be more convenient than selecting and copying. 2 Quote Link to comment Share on other sites More sharing options...
oddemann Posted January 16, 2022 Share Posted January 16, 2022 One of my fav classical music... Toccata & Fuge Not VERY good but it is OK. Spoiler 100 DATA 180,880,440,0,540,783,880,0,1440,880,440,0,360,220,0,0,180,783,391,0,180,698,349,0 110 DATA 180,659,329,0,180,587,293,0,360,554,277,0,2160,587,293,0,1680,220,0,0,120,440,220,0 120 DATA 1080,391,440,0,720,440,220,0,360,220,0,0,360,329,164,0,360,349,174,0,360,277,138,0 130 DATA 720,293,146,0,2520,220,0,0,180,220,110,0,180,220,195,0,360,220,220,0,1800,220,110,0 140 DATA 180,220,195,0,180,220,174,0,180,220,164,0,180,220,146,0,360,138,138,0,720,146,146,0 150 DATA 3240,220,0,0,1440,146,0,0,540,130,146,0,900,164,130,146,540,277,164,146 160 DATA 4250,329,277,146,2160,293,146,146,720,174,146,0,4250,146,0,0,720,277,138,0 170 DATA 480,293,146,0,480,329,164,0,480,261,130,0,480,293,146,0,480,329,164,0,480,261,130,0 180 DATA 480,293,146,0,414,329,164,0,414,261,130,0,822,293,146,0,618,329,164,0,618,349,174,0 190 DATA 480,391,195,0,480,329,164,0,480,349,174,0,480,391,195,0,480,329,164,0,480,349,174,0 200 DATA 360,391,195,0,360,329,164,0,720,349,174,0,720,391,195,0,720,440,220,0,360,493,246,0 210 DATA 360,391,195,0,720,440,220,0,360,493,246,0,360,391,195,0,720,440,220,0,360,493,246,0 220 DATA 360,391,195,0,720,440,220,0,4250,146,0,0,720,554,277,0,480,587,293,0,480,659,329,0 230 DATA 480,523,261,0,480,587,293,0,480,659,329,0,480,523,261,0,480,587,293,0,414,659,329,0 240 DATA 414,523,261,0,822,587,293,0,618,659,329,0,618,698,349,0,480,783,391,0,480,659,329,0 250 DATA 480,698,349,0,480,783,391,0,480,659,329,0,480,698,349,0,360,783,391,0,360,659,329,0 260 DATA 720,659,698,0,360,783,698,0,360,783,391,0,360,880,783,0,360,880,440,0,360,987,493,0 270 DATA 360,783,391,0,720,880,440,0,360,987,493,0,360,783,391,0,720,880,440,0,360,987,493,0 280 DATA 360,783,391,0,1080,880,440,0,4250,146,0,0,720,880,440,0,480,783,391,0,480,987,493,0 290 DATA 480,659,329,0,480,783,391,0,480,987,493,0,480,659,329,0,480,698,349,0,480,880,440,0 300 DATA 480,587,293,0,480,698,349,0,480,880,440,0,480,587,293,0,480,659,329,0,480,783,391,0 310 DATA 480,523,261,0,480,659,329,0,480,783,391,0,480,523,261,0,480,587,293,0,480,698,349,0 320 DATA 480,698,493,0,480,698,587,0,480,698,698,0,480,698,493,0,480,698,523,0,216,659,261,0 330 DATA 198,659,329,0,414,440,329,0,6,523,329,0,408,523,220,0,6,659,220,0,612,659,246,0 340 DATA 6,440,246,0,318,440,293,0,90,440,195,0,552,493,195,0,66,493,246,0,252,587,246,0 350 DATA 66,587,293,0,576,391,293,0,66,391,195,0,252,493,195,0,66,493,220,0,564,587,220,0 360 DATA 78,587,261,0,318,391,261,0,630,440,261,0,12,523,440,0,318,523,261,0,642,523,349,0 370 DATA 642,523,440,0,240,523,261,0,12,523,195,0,66,523,246,0,318,523,349,0,630,523,391,0 380 DATA 12,391,246,0,480,493,246,0,480,493,329,0,480,493,391,0,480,493,493,0,480,493,329,0 390 DATA 480,493,349,0,216,440,174,0,264,440,220,0,354,293,220,0,126,293,146,0,288,349,146,0 400 DATA 192,349,164,0,426,440,164,0,54,440,195,0,264,293,195,0,216,293,138,0,426,329,138,0 410 DATA 54,329,164,0,264,391,164,0,216,391,195,0,426,277,195,0,54,277,130,0,480,329,130,0 420 DATA 108,391,130,0,252,391,0,0,336,261,0,0,690,261,146,0,54,261,130,146,264,130,146,0 430 DATA 1896,130,164,146,720,261,130,146,540,391,261,146,4250,493,391,146,156,493,440,146 440 DATA 204,493,440,0,360,493,391,0,180,493,349,0,180,349,261,0,360,329,261,0,360,293,261,0 450 DATA 288,277,261,0,252,277,246,0,120,246,246,0,840,261,246,0,228,220,246,0,216,220,220,0 460 DATA 276,220,220,195,480,261,220,195,180,220,174,195,288,329,220,195,72,329,246,195 470 DATA 540,391,246,195,120,349,246,195,120,391,246,195,30,246,174,195,180,349,246,195 480 DATA 198,391,246,195,36,349,391,195,36,349,391,0,72,349,246,0,36,391,246,0,108,391,261,0 490 DATA 120,349,261,0,24,349,587,0,144,391,587,0,144,349,587,0,144,391,587,0,144,349,587,0 500 DATA 144,587,329,0,144,391,587,0,72,329,587,0,504,329,523,0,144,329,293,0,3432,349,293,0 510 DATA 1800,349,329,0,1104,261,329,0,540,440,261,0,156,440,523,0,24,659,440,0 520 DATA 180,659,349,0,876,659,587,0,360,587,659,0,360,659,587,0,360,659,698,0,360,349,659,0 530 DATA 360,349,783,0,708,349,659,0,372,349,659,146,360,587,698,146,360,659,587,146 540 DATA 360,659,783,146,78,659,659,146,630,698,659,146,12,698,659,0 550 ! Player code 560 FOR I=1 to 261 570 READ DUR,F1,F2,F3 580 IF F2=0 THEN CALL SOUND(DUR,F1,0 ) ELSE IF F3=0 THEN CALL SOUND(DUR,F1,0 ,F2,0 ) ELSE CALL SOUND(DUR,F1,0 ,F2,0 ,F3,0 ) 590 NEXT I Quote Link to comment Share on other sites More sharing options...
SteveB Posted January 16, 2022 Author Share Posted January 16, 2022 (edited) 1 hour ago, Vorticon said: One request for a future release: would it be possible to have a button in musescore4a which copies the contents of the conversion window to the clipboard? This would be more convenient than selecting and copying. Will have a look, I never programmed the clipboard in Lazarus before ... PS: I save in FIAD and load in Classic99, which is faster than Paste XB for larger programs. Edited January 16, 2022 by SteveB Added PS 1 1 Quote Link to comment Share on other sites More sharing options...
oddemann Posted January 16, 2022 Share Posted January 16, 2022 (edited) LOL - TOTO - Africa!!! (Have to play around to find the best combo of instruments) Spoiler 100 DATA 4250,1318,0,0,240,164,220,0,120,1318,0,0,120,164,220,0,120,1318,0,0,600,164,220,0 110 DATA 240,146,195,0,2400,195,261,0,240,164,220,0,120,1318,0,0,120,164,220,0,120,1318,0,0 120 DATA 600,164,220,0,240,146,195,0,2400,195,261,0,240,164,220,0,120,1318,0,0,120,164,220,0 130 DATA 120,1318,0,0,600,164,220,0,240,146,195,0,2400,195,261,0,240,164,220,0,120,1318,0,0 140 DATA 120,164,220,0,120,1318,0,0,600,164,220,0,240,146,195,0,2400,195,261,0,960,246,293,0 150 DATA 480,233,261,0,480,220,261,0,1920,195,246,0,480,220,261,0,480,195,220,0 160 DATA 960,195,246,0,960,174,246,0,240,164,220,0,120,261,0,0,120,164,220,0,120,261,0,0 170 DATA 600,164,220,0,240,146,195,0,480,195,261,0,960,246,293,0,480,233,261,0,480,220,261,0 180 DATA 1920,195,246,0,480,220,261,0,480,195,220,0,960,195,246,0,960,174,246,0 190 DATA 240,164,220,0,120,261,0,0,120,164,220,0,120,261,0,0,600,164,220,0,240,146,195,0 200 DATA 480,195,261,0,960,246,293,0,480,233,261,0,480,220,261,0,1920,195,246,0 210 DATA 480,220,261,0,480,195,220,0,960,195,246,0,960,174,246,0,240,164,220,0,120,261,0,0 220 DATA 120,164,220,0,120,261,0,0,600,164,220,0,240,146,195,0,480,195,261,0,960,246,293,0 230 DATA 480,233,261,0,480,220,261,0,1920,195,246,0,240,164,220,0,120,523,659,0 240 DATA 120,164,220,0,120,493,523,0,240,164,220,0,15,493,587,0,45,164,220,0,60,110,493,0 250 DATA 240,164,220,0,240,146,195,0,2400,195,261,0,960,261,349,0,960,349,220,0 260 DATA 960,329,220,0,720,329,195,0,240,329,246,0,960,261,349,0,960,349,220,0,960,329,220,0 270 DATA 720,329,195,0,240,329,246,0,1920,220,349,0,960,220,440,0,960,195,246,0 280 DATA 960,261,349,0,960,349,220,0,1920,261,329,0,960,164,195,0,45,174,174,0,195,246,174,0 290 DATA 240,174,220,0,480,195,329,0,240,164,220,0,120,246,220,0,120,164,220,0,120,246,220,0 300 DATA 600,164,220,0,240,246,146,0,1440,246,195,0,960,195,261,0,240,164,220,0 310 DATA 120,1318,0,0,120,164,220,0,120,1318,0,0,600,164,220,0,240,146,195,0,2400,195,261,0 320 DATA 960,246,293,0,960,233,261,0,1920,195,246,0,960,220,261,0,960,195,246,0 330 DATA 960,174,246,0,240,164,220,0,120,261,1174,0,120,164,220,0,120,261,1174,0 340 DATA 600,164,220,0,240,146,195,0,480,195,261,0,960,246,293,0,960,233,261,0,1920,195,246,0 350 DATA 960,220,261,0,960,195,246,0,960,174,246,0,240,164,220,0,120,261,1174,0 360 DATA 120,164,220,0,120,261,1174,0,600,164,220,0,240,146,195,0,480,195,261,0 370 DATA 960,246,293,0,960,233,261,0,1920,195,246,0,240,164,220,0,120,659,1174,0 380 DATA 120,164,220,0,120,659,1174,0,240,164,220,0,15,659,1174,0,45,164,220,0,60,110,659,0 390 DATA 240,164,220,0,240,146,195,0,2400,195,261,0,960,220,440,0,960,220,293,0 400 DATA 960,220,261,0,720,195,246,0,240,246,391,0,960,261,220,0,960,293,220,0,960,261,329,0 410 DATA 480,329,391,0,240,329,440,0,240,329,391,0,960,220,440,0,960,220,293,0,960,220,261,0 420 DATA 720,195,246,0,240,246,391,0,480,261,349,0,480,261,349,293,480,349,220,293 430 DATA 480,349,329,1318 440 ! Player code 450 FOR I=1 to 185 460 READ DUR,F1,F2,F3 470 IF F2=0 THEN CALL SOUND(DUR,F1,0 ) ELSE IF F3=0 THEN CALL SOUND(DUR,F1,0 ,F2,0 ) ELSE CALL SOUND(DUR,F1,0 ,F2,0 ,F3,0 ) 480 NEXT I Ver. 2 Spoiler 100 DATA 4250,174,0,0,240,164,220,0,120,174,0,0,120,164,220,0,120,174,0,0,600,164,220,0 110 DATA 240,146,195,0,240,195,261,0,120,195,261,698,120,195,261,659,120,195,261,523 120 DATA 120,195,261,659,120,195,261,698,120,195,261,659,120,195,261,523,120,195,261,659 130 DATA 120,195,261,523,120,195,261,659,120,195,261,523,120,195,261,493,120,195,261,523 140 DATA 120,195,261,493,120,195,261,391,120,195,261,698,240,195,261,659,240,164,220,0 150 DATA 120,659,0,0,120,164,220,0,120,659,0,0,600,164,220,0,240,146,195,0,240,195,261,0 160 DATA 240,195,261,523,720,195,261,0,360,195,261,523,120,195,261,493,120,195,261,523 170 DATA 120,195,261,493,120,195,261,391,120,195,261,698,240,195,261,659,240,164,220,0 180 DATA 120,659,0,0,120,164,220,0,120,659,0,0,600,164,220,0,240,146,195,0,240,195,261,0 190 DATA 120,195,261,698,120,195,261,659,120,195,261,523,120,195,261,659,120,195,261,698 200 DATA 120,195,261,659,120,195,261,523,120,195,261,659,240,195,261,698,120,195,261,523 210 DATA 120,195,261,493,120,195,261,523,120,195,261,493,480,195,261,523,240,164,220,0 220 DATA 120,523,0,0,120,164,220,0,120,523,0,0,600,164,220,0,240,146,195,0,240,195,261,0 230 DATA 120,195,261,698,120,195,261,659,120,195,261,523,120,195,261,659,120,195,261,698 240 DATA 120,195,261,659,120,195,261,523,120,195,261,659,240,195,261,698,120,195,261,523 250 DATA 120,195,261,493,120,195,261,523,120,195,261,493,120,195,261,523,120,195,261,659 260 DATA 240,195,261,698,120,246,293,523,120,246,293,493,120,246,293,523,120,246,293,493 270 DATA 120,246,293,391,120,246,293,698,240,246,293,659 280 ! Player code 290 FOR I=1 to 92 300 READ DUR,F1,F2,F3 310 IF F2=0 THEN CALL SOUND(DUR,F1,0 ) ELSE IF F3=0 THEN CALL SOUND(DUR,F1,0 ,F2,0 ) ELSE CALL SOUND(DUR,F1,0 ,F2,0 ,F3,0 ) 320 NEXT I Edited January 16, 2022 by oddemann New ver. 1 Quote Link to comment Share on other sites More sharing options...
SteveB Posted January 16, 2022 Author Share Posted January 16, 2022 1 hour ago, Vorticon said: EDIT: I converted the mp3 file to xml per the instructions then used musecore4a to convert it to a DATA file with left and right piano and note duration, but the resulting program does not sound quite right. I tried it with Classic 99 and js99er with similar results. Could someone double check me here? Perhaps I am doing something wrong... There are three problems with this score ... The Piano has an attack and a reverb, while the TI as just a steady, constant sound, which is a big difference. You play 5 notes at a time (one column) ... two of them will be ommitted The TI can only play sounds of 110Hz or higher, the 2A is the lowes possible note. Your score goes lower. For the last problem you have the option to transpose the score one or two octaves. But piano tunes with cords regulary go beyond the three sound limit... 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted January 16, 2022 Share Posted January 16, 2022 Ah I see. Thanks for looking into it. Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 16, 2022 Share Posted January 16, 2022 1 hour ago, SteveB said: There are three problems with this score ... The TI can only play sounds of 110Hz or higher, the 2A is the lowes possible note. Your score goes lower. What about the noise generator? Could this be used for lower frequencies? 1 Quote Link to comment Share on other sites More sharing options...
SteveB Posted January 16, 2022 Author Share Posted January 16, 2022 36 minutes ago, mizapf said: What about the noise generator? Could this be used for lower frequencies? I played around a little to use it as a drum substitute, but they are not very flexible. The shortest sound in normal speed is about 77ms, otherwise you get gaps between the notes. Listen yourself: 10 for i=1 to 8 20 print i 30 for j=1 to 8 40 call sound(75,-i,0) 50 call sound(425,220,30) 60 next j 70 next i Only 5 as a high-hat and 7 as some drum have some potential in some tunes, but nothing I could generalize enough. As a "Bass" they are just some disharminic low frequencies. Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 16, 2022 Share Posted January 16, 2022 You can influence the noise generator for settings -4 and -8 by sound generator 3. 10 FOR I=400 TO 1000 STEP 10 20 CALL SOUND(-100,110,30,110,30,I,30,-4,0) 30 NEXT I Quote Link to comment Share on other sites More sharing options...
SteveB Posted January 16, 2022 Author Share Posted January 16, 2022 6 minutes ago, mizapf said: You can influence them by sound generator 3. 10 FOR I=400 TO 1000 STEP 10 20 CALL SOUND(-100,110,30,110,30,I,30,-4,0) 30 NEXT I This I didn't know! I always shrugged on "Periodic Noise that varies with the frequency of the third tone specified." But anyway, there is no way to get the third tone below 110Hz. Or do you have any documentation on how exactly the noise is based on the third tone? Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted January 16, 2022 Share Posted January 16, 2022 If this works by constantly sending new commands, then you will run into the problem that the noise generator resets every time it gets a command. For instance, if you send >65 to the sound chip repeatedly, the noise generator will restart the white noise bit-stream. This makes for some neat effects if you mean to do so, but if you are just adjusting volume then it can have an undesired effect. Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted January 16, 2022 Share Posted January 16, 2022 Just now, SteveB said: This I didn't know! I always shrugged on "Periodic Noise that varies with the frequency of the third tone specified." But anyway, there is no way to get the third tone below 110Hz. Or do you have any documentation on how exactly the noise is based on the third tone? The periodic noise channel produces a frequency which is roughly three octaves minus one semi-tone, 35 semi-tone steps, lower than the frequency of generator 3. Quote Link to comment Share on other sites More sharing options...
SteveB Posted January 16, 2022 Author Share Posted January 16, 2022 7 minutes ago, OLD CS1 said: The periodic noise channel produces a frequency which is roughly three octaves minus one semi-tone, 35 semi-tone steps, lower than the frequency of generator 3. So to play a G in Octave 0 with 24.5 Hz I would set the Tone Three to G sharp in Ocatve 3 with 207 Hz? Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted January 16, 2022 Share Posted January 16, 2022 4 minutes ago, SteveB said: So to play a G in Octave 0 with 24.5 Hz I would set the Tone Three to G sharp in Ocatve 3 with 207 Hz? F#3. Sorry, I read my notes backward. /* increase tone 3 by 35 semitones (three octaves, minus one) */ call transform_value 'v3+35' Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 16, 2022 Share Posted January 16, 2022 Remember that the sound of the noise generator is no clean square wave; you know the sound from Car Wars. But it may be suited for the bass voice - if you can live without the third generator (at least for the time when you produce the bass voice). Try to produce a sound of 55 Hz with the CALL SOUND statement, add generator one with 110 Hz, and check whether it sounds like an octave below it. 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.