Ludwig van Beethoven - Moonlight Sonata - in Small Basic RRS feed

  • General discussion

  • May 03, 2016

    third phase of the project:  Measure 1 to 22 complete : program no. WTT892

    some notes has been modified, and some bugs fixed.

    April 26, 2016

    second phase of the project:    Measure 1 to 15 complete  :    program no.GJM514

    This is a taste of the project in which I immersed myself, translate notes by notes, for listening with Small Basic sound. PlayMusic, the grandiose musical piece by Beethoven, Moonlight Sonata.

    If you have a bluetooth audio system, listen fromr laptop to your home system

    as the richness of the piano sound is excellent, especially for piano bass notes.

    I used the technique "how to make full CHORDS music with Small Basic ''sound. PlayMusic " in this forum that I had posted previously and which is also part of an article on the Technet Wiki last March.

    Your comments would be much appreciated!

    Moonlight Sonata full score PDF clic here

    • Edited by YLedEditor Tuesday, May 3, 2016 6:36 PM
    Sunday, April 24, 2016 3:13 PM

All replies

  • Great sounding!
    Sunday, April 24, 2016 4:30 PM
  • That's really good.
    Sunday, April 24, 2016 5:33 PM
  •  Good old 'Ludwig van'.   (Alex)
    Sunday, April 24, 2016 7:34 PM
  • Nice use of an obscure reference.  :-)
    Monday, April 25, 2016 8:06 PM
  • Cult, that gets better&better every time watching. Perhaps not suitable 4 ur students (here: 16+ yrs, former even 18+ yrs).

    Quick sample @dayend: ID: GMC157-0  (needs some secs to process pixels)

    Ludwig van

    Monday, April 25, 2016 10:19 PM
  • @papa

    Wow !!!   really amazing program ! thanks !!!

    Monday, April 25, 2016 11:28 PM
  • Yvan  Nice program.

    a little shortened .    QDS394

    Tuesday, April 26, 2016 2:58 AM
  • nice work, but a bit obsolette approach to "sub" use Yvan

    here's a modern approach, instead of many subs is used a 2d array: XJN651

    also added graphic representation of tones, but still not accurate yet

    Tuesday, April 26, 2016 4:00 AM
  • @ Tryhest: Nice method ! nice work ! great programming, shorter yes ! thanks :) i'll keep it and study it ! i have tried it it work perfectly well.

    @NaochanON: really great programming, shorter yes. ! thanks:) i'll keep it and study it. i have tried it it work perfectly well.

    but il will explain for everybody why i still prefer my method:

    because :

    I get easily if I made a mistake by entering the musical notes: for example measure no. 12 of this piece (go see the original score, you'll understand) there are notes which sharps are cancelled by a natural, and it is easy to be mistaken by transposing this measure in Small Basic language. So my approach to programming for music is not an approach of having the shortest program possible, but indeed to have a program with a clear listing and easy to read, and easy to identify a false note if entered by mistake.

    So if take a look at the listing of the program , each measures or bars of this music sheet is represented by a SUB. And the layout of the notes inside this SUB is very important. In the case of Moonlight Sonata, there are 4 groups of 3 black (triolet) and in each SUB have it found these 4 groups easily. For example if there were a false note in measure 12 in the triplet 3, then I'm in my listing, i'll go to  SUB_Measure_12, on line n (7) n (8) and (9) n and identifies the note in error.

    Do not, I repeat, do not combine identical notes saying that we have to save memory or shorten program lenght (like compression) , this is not the purpose of the exercise here. So this is why I prefer my method, somewhat archaic on the side of programming, but easy to work and and easy to put the finger on a false note who was reportedly enter by mistake. Yes that happened to me and even with this method, before returning the wrong note it is not so easy as it look. You've got first to listen the song , listen and listen, find the false note, pin point the measure, and so on, a time consuming process.

    In Music there is no room for error, the human ear will detect without a doubt if there is a false note in a song, a piece of music, or a Symphony. In this piece of music (Moonlight Sonata) there are 69 measures of 12 notes each , apart from low notes, thus 828 notes + a low hundred and fifty chords, so around 1000 notes, I have entered individually and translate in a code readable by SB, and it have no room for error. Try it it is understand it!

    Thank you everyone who is trying to improve my program, may be that someday I will find a better solution but for now I am satisfied with this method. :) cheers !

    • Edited by YLedEditor Tuesday, April 26, 2016 4:27 PM some thanks forgot
    Tuesday, April 26, 2016 3:12 PM
  • u should also consider the use of ldtext.replace method in order to shorten ur music notation, as u often use same or similar commands as O4 O5 u can write e.g.: * instead of O4 and $ instead of O5 then ur notation is like $C4*D4 instead of O5C4 and O4D4. then before playing u just use playstr=Ldtext.replace(playstr,"*","O4") and playstr=Ldtext.replace(playstr,"$","O5") and then u can play it as normal music commands.
    Thursday, April 28, 2016 5:30 AM
  • How about an approach where the program reads from a file.

    The program can be compact, efficient, general etc - it knows nothing about what music it is playing.

    The file that is read can be nice and verbose (human readable) and you can then create many musical pieces just by changing the file.

    A good format for the file would be critical.

    Thursday, April 28, 2016 9:18 AM
  • I love the Moonlights Sonata and your program!

    Nonki Takahashi

    Friday, April 29, 2016 10:44 AM