We start with a simple S-O-S distress call in Morse Code. Details on Morse Code can be found on amateur radio sites and Wikipedia.
//Sending out an SOS //slow deliberate message define dotTime 120ms loop //S: @+dotTime chn1 = 100% @+dotTime chn1 = 0% @+dotTime chn1 = 100% @+dotTime chn1 = 0% @+dotTime chn1 = 100% @+dotTime chn1 = 0% @+dotTime @+dotTime @+dotTime @+dotTime //time between letters //O: @+dotTime chn1 = 100% @+dotTime @+dotTime @+dotTime chn1 = 0% @+dotTime chn1 = 100% @+dotTime @+dotTime @+dotTime chn1 = 0% @+dotTime chn1 = 100% @+dotTime @+dotTime @+dotTime chn1 = 0% @+dotTime @+dotTime @+dotTime @+dotTime //time between letters //S: @+dotTime chn1 = 100% @+dotTime chn1 = 0% @+dotTime chn1 = 100% @+dotTime chn1 = 0% @+dotTime chn1 = 100% @+dotTime chn1 = 0% repeatDelays @+500ms //min delay between repeats go to repeatDelays with 50% chance //more delay //falls through and repeats
We create random but fake Morse Code messages with dots, dashes and pauses. Better than a roomful of monkeys with typewriters, this will spell something sometime somehow maybe. Since it’s random, you can have two telegraph offices talking to each other on the same Morsel.
Two variations possible. One is on/off instantly. The other has incandescent fading on/off. For incandescent, replace all chn1 = … as follows:
chn1 = fade from 0% to 100% for 40ms //replaces chn1=100% chn1 = fade from 100% to 0% for 80ms //replaces chn1=0%
//Simplest Morse Code keyer define dotTime 75ms makeDotOrDash chn1=100% //begin another symbol @+dotTime //dot lighted for dotTime //the dot may become a dash... go to isDashDone with 50% chance //stretch dot into dash? @+dotTime @+dotTime //yes, stretched to 3x isDashDone //done with dot or dash //the dot or dash turns off 1 dotTime chn1 = 0% //turn off light @+dotTime //for dotTime //the dot or dash could turn of 2 more dotTimes go to isLetterDone with 80% chance //end of a letter? @+dotTime @+dotTime //yes, "off" stretched 3x isLetterDone //the letter may be the end of a word go to wordIsNotDone with 80% chance //end of a word? @+100ms //yes, "off" stretched more wordIsNotDone //the word may be the end of a message: Operator takes break go to didNotScratchItch with 98% chance //unlikely operator pause? @+1s //yes, operator paused dayDream @+0.225s //add dream time go to daydream with 80% chance //operator still daydreaming? didNotScratchItch go to makeDotOrDash
Two Telegraph Offices Talking
We originally wrote, “Maybe we need to make a version where one office talks while the other listens.” But the thought nagged us until we had to do it. It’ wasn’t hard. We found a spot where the telegraph keyer daydreams. That’s where the other office starts.
We copied and pasted the first office, changed the Go To labels and changed chn1 to chn2. It took a few minutes to fix it up and check it out.
//Simplest Morse Code //FIRST TELEGRAPH OFFICE define dotTime 75ms firstOffice makeDotOrDash chn1=100% //begin another symbol @+dotTime //dot lighted for dotTime //the dot may become a dash... go to isDashDone with 50% chance //stretch dot into dash? @+dotTime @+dotTime //yes, stretched to 3x isDashDone //done with dot or dash //the dot or dash turns off 1 dotTime chn1 = 0% //turn off light @+dotTime //for dotTime //the dot or dash could turn of 2 more dotTimes go to isLetterDone with 80% chance //end of a letter? @+dotTime @+dotTime //yes, "off" stretched 3x isLetterDone //the letter may be the end of a word go to wordIsNotDone with 80% chance //end of a word? @+100ms //yes, "off" stretched more wordIsNotDone //the word may be the end of a message: Operator takes break go to didNotScratchItch with 98% chance //unlikely operator pause? @+1s //yes, operator paused dayDream @+0.225s //add dream time go to daydream with 80% chance //operator still daydreaming? //LONG DAYDREAM SAME AS WAITING FOR OTHER OPERATOR GO TO SECONDOFFICE didNotScratchItch go to makeDotOrDash //SECOND TELEGRAPH OFFICE ON CHANNEL 2 secondOffice makeDotOrDash2 chn2=100% //begin another symbol @+dotTime //dot lighted for dotTime //the dot may become a dash... go to isDashDone2 with 50% chance //stretch dot into dash? @+dotTime @+dotTime //yes, stretched to 3x isDashDone2 //done with dot or dash //the dot or dash turns off 1 dotTime chn2 = 0% //turn off light @+dotTime //for dotTime //the dot or dash could turn of 2 more dotTimes go to isLetterDone2 with 80% chance //end of a letter? @+dotTime @+dotTime //yes, "off" stretched 3x isLetterDone2 //the letter may be the end of a word go to wordIsNotDone2 with 80% chance //end of a word? @+100ms //yes, "off" stretched more wordIsNotDone2 //the word may be the end of a message: Operator takes break go to didNotScratchItch2 with 98% chance //unlikely operator pause? @+1s //yes, operator paused dayDream2 @+0.225s //add dream time go to daydream2 with 80% chance //operator still daydreaming? //LONG DAYDREAM SAME AS WAITING FOR OTHER OPERATOR GO TO FIRSTOFFICE didNotScratchItch2 go to makeDotOrDash2
The Go To the other office changes are in upper case. Note that case is ignored by Sequence Composer.