Music Saga

Jan 11 2009 I am involved in a quest again.

This reminds me of the earlier quest which I documented in Print Saga. Looking over Print Saga, I see that I never got to the rest of the story. My best results were achieved when I prepared PDF files in PHP scripts. However, since the package I used was FPDF, I had to prepare the PDF's offline on my own computer. The shared server I use on PAIR Networks does not allow me to add PHP modules.

I was able to get legible, attractive one-page PDF's for nearly every puzzle. I posted an individual file for each puzzle on my website. This proved to be unwieldy, so I removed the links. Nobody has complained, even though the alternative PNG files are sometimes illegible.

Other failed quests include a simple way to handle converting computer documents in general - e.g. switching email or word processing formats as far as spacing and long lines. Also, the desire to make my own fonts - namely a really good one for my puzzles, and also one for Sadia's handwriting. Of course, early on I wanted to use printed or microfiche puzzles from old Saturday Reviews to transform into puzzles playable online. But I did some of that manually - and Norman raised the copyright issue so I switched my direction to newly constructed puzzles. The most interesting generalized conversion program I ran into in earlier days online was ImageMagick - also introduced by Gene. This allowed me to operate on images from cameras myself - making file sizes or their image sizes reasonable.


Now I am involved in a music related quest. I love to sing even though I do not have much of a voice. I own a lot of sheet music. I can play the piano, but quite poorly. I find it easier to play songs in fake-book style. I do not know why I cannot sight read better....well I have some clues. I do not keep time accurately, I do not see phrases or intervals but only individual notes.

Because my voice is limited, I would like to be able to transpose songs easily. Of course, if I could play or sing accurately by ear, that would often be sufficient. Sight Singing and Ear Training would help with both.

I ran into good free software online for this type of training. One program is interval-related. Jimmy Ruska's identifies each interval with a the start of a familiar song. Since he has chosen the songs and he has a younger audience in mind, they are not all familiar and/or pleasing to me. So I had to look at his video on YouTube to try to figure out how to substitute my own song choices. The video was great ! (although I never accomplished my goal actually) .


Instead, my immediate goal changed. Now I wanted to produce how-to videos on YouTube for the puzzles on my website. Somebody had already done so - about my own website: Nate Chang at eHow.com . And I read that people were making money as YouTube partners. So learning to make instructional videos seemed like a good idea, in that it might bring in new doublecrostic members, or actual revenues.

I wanted Pat to help me make a video with our camera, but we never did. Then when Gene was here at Christmas we worked on segments with the camera and others with a screen capture program (SnagIt). Gene was downloading things like crazy - partly because at first I could not find the software for the camera. And then the resulting files we created were huge, and looked smudgy, and the audio from the capture was very dirty. Gene suggested I get a microphone.

I futzed around a lot to almost no avail, till I went back to researching JiimyR's tutorials. He explained how to use CamStudio and VirtualDub and make smaller files. I have now uploaded several fairly decent HowTo tutorials.

While reading Typke I realized that everything is online and you can organize it by Parsons Code and/or Lilypond/Midi/ etc and have the whole universe of song literature organized and available. How can it be organized so that similarities are revealed? When I switch from one song to another is it because parts of the same melody are in both songs? Or is it just that the key and the timing are the same? Which songs are more memorable? What conditions in the melody make me tend to be off-key? Does transposing invalidate some of the recognition cues because the resonance occurs in a different place in one's body? Does weight loss or gain move the resonating place?

When I am trying to play by ear and I can't find the right note, probably I need to transpose. I tend to want it to work in C. (or maybe F or G).

Both Typke and Jimmy have links and explanations about other people's related (or even competing) stuff, as well as what they produced themselves.

I am also working on sight-singing with a music-theory based book which comes at it from scales and the history of Western music.

covering the universe of melody - Parsons code; Bernstein; Jimmy Ruska; Rainer Typke (Melody Hound, Musipedia) (similar to my desire to cover the universe of words by using all the "good" ones as answers in a single double crostic).


Georgia's Quest: -- She had heard a Bach piece on viola and piano that she wanted to play on the violin. We figured out that it was Bach BWV 1029 (for Viola DeGamba and Harpsichord) kunstderfuge.com has the sheet music and midi. The viola part is written out primarily in tenor clef (i.e. with lines on D F A C E), and partly in treble clef. Supposedly I can transpose the midi in NotationPlayer (for free says Jimmy Ruska). But actually I need their Musician package (will try with free trial).

Jan 11 - I have done it! It was really quite easy. I selected the melody part. I think I transposed it up an octave. The only problem was it used both G clef and F clef with notes really in G range. I could not find a totally automatic way to change all the F sections to G. But it turned out I could just go through the music and when I saw an F clef symbol, click G clef - and it shifted the notes properly. Unreal! Notation Player pays royalties to affiliates.


I have long felt that the essential computer problem is converting data from one format to another, and that still seems to be the case. And it seems to me that it is easier, surprisingly, to do what you want when working with music than it was when I was working with visual materials, moving double crostic puzzles between paper, screen, printer and microfiche.

This week, I was taking a break from the quest, because I decided that I had been trying to use sight-singing and software to compensate for my inability to sight-transpose when I have music available. After all, I do own a lot if sheet music, and this is what my husband had always requested that I learn to do. And then I would be working at the piano and singing, instead of at the computer with pingy noises.

So I decided to work at the piano. When I look at notes on a page, I can name them and play them. But not necessarily in tempo, and not always accurately. It seems that one should also be aware of both the intervals between successive notes and the position of the note in the scale . In fact, of the position of the note within a triad based on a scale tone.

So I started sight-transposing song melodies, generally down a fourth or so, preferably into C. My errors were related to my inability to see the intervals; this particularly occurred between two notes that switched from stems down to stems up - i.e. across the midline of the staff.

I cry; I mourn; how could no one ever have helped me sight read better? I had several piano teachers, friends and family I sang and played with. Did they all do this so automatically that they did not see that I did not get it?


Two days ago I became involved in another step of the quest. Somehow I happened upon a blog in which "Robert Wayne Padgett presents his novel solution to Edward Elgar's Enigma Theme: Ein feste Burg ist unser Gott (A Mighty Fortress is our God)." He shows the composite sheet music, but not an audio of the result.

Well, I knew nothing about the value or significance of this claim, but I figured that my quest so far had brought me to a point where I could post an audio file of the result. I wonder whether superimposing any random two melodies on each other, provided the time signatures match and they have been put into the same key, would sound good. Or if not any two, what proportion? Think Moonglow and Theme from Picnic. Did Bach do this all the time? Or later composers?

When I sing with my Toning Group, sometimes Senga and Eileen stay on one melody and I take off on another one which seems to go well with their original. 'When the Saints go Marching in' and 'Louise' ('Every little breeze seems to whisper Louise') both seem particularly suitable as descants. Danny Boy and Scarlet Ribbons have always seemed like a pair to me; also Summertime and Fish Gotta Swim. For some reason I have a desire whether this type of correspondence can be recognized. Why would it matter? Only if in some sense only one song of a certain archetype could be memorable - if I cound find an archetype not yet used I could write a memorable song. Yet both in my original examples, I retain an interest in both songs. Does this have anything to do with what makes a medley? String together sequences of notes or words that are used in different songs to make medlies. Muzak?

The Padgett problem was actually a different variation on file conversion, since what he had posted was an image file, whereas previously I had worked with a midi directly. So I downloaded a free trial of SmartScore. But I did not have an image file. I printed the image of the music and scanned the paper back in; then Smart Score could interpret it, and I played it. But the free version did not allow me to save the resulting midi file. However, I ran CamStudio simultaneously and recorded SmartScore playing the music, and I saved the performance as an avi (video) file. Which I am currently trying to update to YouTube.

Feb 9 - I could not get YouTube to upload the video - it kept getting errors. But of course, I really did not need a video. So I used AoA Audio Extract to make an MP3 out of the audio alone, and I easily uploaded that to my website. You can hear it here.

Now I can make a DC with audio clues, and specifically perhaps my own songs to use for interval recognition.

February 12 -- Recently I found scribd.com,a website which contained full text of all the Georgette Heyers - a genre of a faux-Austen, innocent romance novels that I love. Plus I wondered about harnessing databases with large amounts of music. (Later I went back and found out that members snail-mail books to scribd, and then scribd uses a fancy scanner to upload the books. And I presume, then returns them.) What is the physical mechanism whereby people do these bulk uploads? Let alone the copyright situation? - (That turns out to be a creative commons license). Yesterday at the Music Library I finally saw the Denys Parson's theme book (UDR).

Musipedia MelodyHound shows a contour - linegraph picture of the Parsons Code for its music. It uses dots for notes and connects them with lines; it does not distinguish different timings, and UDU will show both U's at the same level.

I need to practice naming notes by Do Re Me, scale numbers, and letters - when I sing songs I know. Perhaps this will make it easier to carry to the SSET. Actually, I want to devise a more evocative notation than the contour or standard music notation. I will use colored line segments as notes; the colors will be like my sudoku with one attached to each of Do Re Mi etc; the staff will be in DoReMi and the lines will be the proper distance apart, i.e. Mi-Fa and Ti-Do are one unit for a half step, but all the other scale intervals are two units, for a whole step. The X axis should be about 25 units high (2 octaves), and the y axis 32 unit, for 8 bars of 4 units each. Distinguish between repeated rather than held notes by black or white bars. Write the lyrics in test messaging style so that a whole line of them fits in a row.

I keep coming back to the question of how to find the data - type it in somehow or use extant resources in MIDI or lilypond. I realized that my new sheet music PHP program cnote is not good because I cannot make sound. So I downloaded the java sound demo - I will need to adapt that I ran in with c:\Users\Sue\Downloads\JavaSoundDemo\JavaSoundDemo\java -jar JavaSoundDemo.jar Always use data in the original form. Maybe the absolute keys matter, as well as movable Do. Where you feel the sound in your body may be absolute not relative fequency. (when Laura and I heard a concert at Curtis, at some pitches the floor vibrations from the organ were distressing to me).

For my notation - show characteristic tones - tonic, subdom, and dominant, and starting note. Then show patterns - walking scaletones, triads of alternating scaletones optionally others - trills, arpeggio. describe a sequence of small sequences - (start note, step size, count, direction). (this needs to be in scale steps-- 7 tones -- not 12-tone halfsteps). Do we ever land on a non-characteristic note using a fourth fifth or sixth? Should I allow ad-hoc definition of a sequence for a particular piece?

Need to show that scale steps are both the same as each other, and different in terms of half steps. Maybe use the same distance but different colors? I started this in a php script called cnote.php

I finally played some real music on the piano - Schirmer edition of Beethoven Sonatas. This is in some ways easier to read than computer-generated and fakebook style sheet music - because a sequence of notes will have all the lines in the same direction. In fakebook style, the lines switch from up to down on the center line of the staff, even where it makes no sense musically.

Feb 28 - Lots of progress. I have found a database of 4500 folk songs in a good format. Users/sue/desktop/digtrad has a file for each in a very simple and compact notation called abc, which is similar to lilypond. I should be able to read, play and analyze them with java programs. But I have been floundering. A reasonable first goal is to produce a Barlow-Morgenstern table for the songs in my head, plus the folk ones I already have.

I have been trying to look at song pairs directly offline. Summertime and Fish Gotta Swim do not have the same key or note pattern. They both have ony a few non-step non-triad intervals; 1-5 and 5-1 are used a lot. They also both have 2-5 separating lines. And one has also got 3-6. How to look at songs together? I can put them into a program like my cnote and then draw contours for multiple songs on the same graph, superimposed. Use a different color for each song. Let the colors for each note be in the background and let the notes be black spots of time-varying width. A scale has 7*6 intervals, based on note pairs.

I was trying to write my own program in php with mty own input language and visual output; but I need playable output too. I am now using lilypond instead.

I can write up a song in ly. Then lilypond creates both sheet music and a midi file. My own php creates a visual color block notation. It is not showing more than one song on the page. Also I do not like my colors - contrast for nearby ones would be better than rainbow. And my code is right now just for converting eflat major to c. I should look at the lilypond source to see what they do.

Now I have a loop working in lilydo. When I show a jump of an octave up with a ', my version works but lilypond itself fails (so I used ='' which converts to an absolute temporarily, in the desktop equivalent) But I do not have that code. Also the pdf does not show the rests. and summertime notes are wrong in lilydo (because it is a minor not e flat major). Everything is working now through a fourth song HeyJude. The sixteenth note is only width of 3 - with 2 blanks actually just 1 which is virtually unseeable. Especially the yellow high e "livin" in Summertime. So change colors; widen; show the rest of the melody and the lyrics. Put in code for other keys.

The real goal here is to have a tablet PC (or screen) that sits on a music stand, piano, lap - or projects onto a wall. The only necessary interface is - pick the song; volume; speed; key. Also ability to program in the range of the singers so everything will go into their best range - need high and low notes and tessitura? I can work from a database in my intermediate notation.

I keep trying to track back to code that actually does the playing of the tones. Maybe what I need is just something simple. I am not sequencing - just want one melody note at a time. Ringtones? ToneControl in javax microedition seems sufficient. So I am downloading that. Yes - C:\Java_ME_platform_SDK_3.0_EA\apps\AudioDemo\Src actually calls Manager.playTone(60, 200, 90) directly - note,time volume - as well as files.

This is a real record of how I change my mind back and forth between PHP and java all the time. After my initial java success, a build error of some sort appeared, and I could no longer use the sample midlets or my own. Pat tried to make the jar files accessible but there were lots of them and the process is non productive and annoying. So I went back to PHP again. I found a nice program (Piet Van OOstrum 1995) for converting a readable music file to midi in a Dos window. Then I can use that with the PHP midi library, I hope.

What is my goal here? I want to enter songs (melody and lyrics) from my own songbooks in the easiest form (something like abc) - and save the data in a playtone text file. At some point, I want to transpose into my best possible key choice. Finally, convert the playtone to midi (this can be done by Piet's t2mf.exe or by my own PHP program?).

Back to java again. (but I must remember the idea of putting the files onto my cell phone - it would be better than a pitchpipe for singing in the park). Pat found simpleMidiPlayer, CreateSequence and DumpSequence. Create sequence makes a midi file. I can modify it to use a text file input. I will use two octaves of data (upper and lower case) and key (determines sharps and flats automatically) (e0 f0 G A B c d e f g a b C D E f2 g2 r ) and accidentals (f,s,n) length ( whqestx) modifier (.~p). Modify the sequence to take a file in that format. Produce an exact midi file and also one transposed to my best range (center on F 65?).

SynthNote is a java class that just plays a note with channel, tone,velocity, duration - where we seem to need 500 for a reasonable duration. So I can use legible numeric input instead of midi files. It is working and playing the file. Plus Pat made a program that pipes from a sequence through to a regular midi player. I want my player to accept variable keys - explicit; find vs range; from the file; and similarly for variable speeds.

But what about feeding the database? (A) manually enter my own songs. (it is legal). (B) use scanned input- my own or from libraries (pdf) (C) use other files out there - midi, abc, lily. It just occurred to me that I would like a grid-like tool like my acrostic player for entering music. Type the notes into the cells- their placement indicates the timings. Split a cell in 2 or 3 parts. Type in the lyrics. Display my own color block sheet music and play it with highlighting active cell.

I will need this when I am in the country without a piano. It will allow me to practice songs in the correct rhythm and with a key I can manage. Or I could use the given key, and move just the phrases with high notes.

I am beginning with program MM. I read the lyrics from a parameter and each syllable gets a cell. The user manually fills in the note and the count above each cell. The counts in each measure must add to a multiple of the beats per measure (thus, 1,2,4 or 8). Counts are usually numeric, but a t may be used for triplets. The note is just entered with a single letter - use a capital if outside the central octave. Choose a color for each pitch. 2) Color each count according to length - at the end of a measure. use grey strips across, with height corresp to time. 2) Need a way to add a rest at a given place (now just put RR in the lyrics). Auto processing 1) copy notes and timing where omitted; duplicate if lyrics and beat count are the same for a measure; or even just beat count. 2) Play the result, using a colored ball for each note. (later modify to half a ball for an eighth note and a tail of greyed images for the number of additional beats the note is held). 3) allow corrections. (move a pitch - 12 tones U D; 1 tone SF) (Do I want to allow more space for the key input? or direct number change?)

Now I have MM.java which runs ok as an application. Next steps 1) I am still not adjusting the time of the notes (it uses a fixed velocity of 75). 2) Save the notes and use a button to play the whole sequence. 3) Save the result. Maybe to the database? 4) Can I jar it to use as an Applet?

Home Page

Page copyright by Sue Gleason, February 9, 2009;      Last updated: April 20, 2009