(* iPod Circuit Run Sound Generator ----------------------------------------- The first thing you should do is walk your complete circuit and record the times as you pass specific landmarks along the way. *) property wayPoints : {} -- sets up empty array (* Copy and paste as many new waypoints as you like recording the nearest whole second time next to each description *) set wayPoints to wayPoints & {{"Park gates", 24}} set wayPoints to wayPoints & {{"Bandstand", 50}} set wayPoints to wayPoints & {{"Memorial", 65}} set wayPoints to wayPoints & {{"Bridge", 94}} set wayPoints to wayPoints & {{"Jetty", 113}} set wayPoints to wayPoints & {{"Minigolf", 149}} set wayPoints to wayPoints & {{"Park gates", 185}} set wayPoints to wayPoints & {{"Finish", 225}} set saveLocation to (choose folder with prompt "Select a folder to save the circuit run sound files") as string set theVoice to "Vicki" set theBeepVoice to "Zarvox" -- Stick to the odd ones "Trinoids", "Boing" or "Zarvox" work best (* The following are phonetic speech commands. They're used to simulate beeps. If you know a way to get system beeps or sounds into these sound files then please say so in the comments. *) set startSequenceSound to "[[inpt PHON]]bUX[[pbas +]]bUX[[pbas +]]bAO[[xtnd ]][[inpt TEXT]]" set midSequenceSound to "[[inpt PHON]][[rate 180]]bAO[[slnc 1000]]bAO[[slnc 1000]]bAO[[slnc 1000]]bAO[[slnc 1000]]bAO[[slnc 1000]][[rate 60]][[emph +]]bUX[[rate[180][[inpt TEXT]]" set endSequenceSound to "[[inpt PHON]]bAO%bAO%bAO@[[rate 180]]bUX[[pbas +]]bUX[[pbas +]]bAO[[xtnd ]][[inpt TEXT]]" (* This is the technical gubbins. Run the script and you'll find your Circuit Run sounds in your chosen folder. Load each level as a separate playlist or make them into individual albums. Unlike Shuttle sounds you only need to play one level at a time, gradually increasing the level over a number of weeks or months. If you make different circuits so you're not always running the same one then the level of difficulty should remain the same, so level 12 should be equally as difficult as level 12 on another circuit since the percentage reduction in time allowed will be the same *) set theLevel to 1 set factor to 1 repeat while factor > 0.3 -- you can adjust this figure if you like. The lower the number the more hard levels will be created set trackNo to 1 tell application "Finder" make new folder in folder (saveLocation) with properties {name:"Level " & theLevel} end tell set newSaveLocation to (saveLocation & "Level " & theLevel & ":") say ("Level " & (theLevel as string) & "[[slnc 2000]]") using theVoice saving to (newSaveLocation & trackNo & ".aif") set trackNo to trackNo + 1 say startSequenceSound using theBeepVoice saving to (newSaveLocation & trackNo & ".aif") set trackNo to trackNo + 1 repeat with i from 1 to (count of wayPoints) if i is equal to 1 then set timeToNextWayPoint to (item 2 of item i of wayPoints) else set timeToNextWayPoint to (item 2 of item i of wayPoints) - (item 2 of item (i - 1) of wayPoints) end if set timeToNextWayPoint to round (timeToNextWayPoint * factor) rounding as taught in school set nameOfNextWayPoint to item 1 of item i of wayPoints if timeToNextWayPoint > 7 then say "[[slnc " & ((timeToNextWayPoint - 6) * 1000) & "]] " & nameOfNextWayPoint using theVoice saving to (newSaveLocation & trackNo & ".aif") set trackNo to trackNo + 1 if i is equal to (count of wayPoints) then set theBleeps to endSequenceSound else set theBleeps to midSequenceSound end if say theBleeps using theBeepVoice saving to (newSaveLocation & trackNo & ".aif") set trackNo to trackNo + 1 set theBleeps to midSequenceSound else say nameOfNextWayPoint using theVoice saving to (newSaveLocation & trackNo & ".aif") set trackNo to trackNo + 1 say "[[slnc " & ((timeToNextWayPoint - 1) * 1000) & "]] " & "[[inpt PHON]][[rate 60]]bUX[[rate 180]][[inpt TEXT]]" using theBeepVoice saving to (newSaveLocation & trackNo & ".aif") set trackNo to trackNo + 1 end if end repeat set theLevel to (theLevel + 1) set factor to (0.95 ^ theLevel) -- each level will knock 5% from the time allowed, adjust it if you like end repeat