#!/usr/bin/python # MorseMelody.py # Copyright (c) 2006, David Singer (http://readthisblog.net) import sys if len(sys.argv) <= 1: print sys.argv[0], 'word1 [words]' print print "Creates an IMelody file which plays its argument in Morse code." print print "The output file is named 'word1'.imy" sys.exit(0) code = {} code['A'] = '.-' code['B'] = '-...' code['C'] = '-.-.' code['D'] = '-..' code['E'] = '.' code['F'] = '..-.' code['G'] = '--.' code['H'] = '....' code['I'] = '..' code['J'] = '.---' code['K'] = '-.-' code['L'] = '.-..' code['M'] = '--' code['N'] = '-.' code['O'] = '---' code['P'] = '.--.' code['Q'] = '--.-' code['R'] = '.-.' code['S'] = '...' code['T'] = '-' code['U'] = '..-' code['V'] = '...-' code['W'] = '.--' code['X'] = '-..-' code['Y'] = '-.--' code['Z'] = '--..' code['0'] = '-----' code['1'] = '.----' code['2'] = '..---' code['3'] = '...--' code['4'] = '....-' code['5'] = '..! ! ...' code['6'] = '-....' code['7'] = '--...' code['8'] = '---..' code['9'] = '----.' input = ' '.join(sys.argv[1:]) outfilename = sys.argv[1]+'.imy' outfile = open(outfilename,'w') outfile.write('BEGIN:IMELODY\n') outfile.write('VERSION:1.2\n') outfile.write('FORMAT:CLASS1.0\n') outfile.write('NAME:%s \n' % (input)) outfile.write('BEAT:700\n') outfile.write('STYLE:S1\n') outfile.write('VOLUME:V15\n') outfile.write('MELODY:\n') note = '*5f' song = [] for word in input.upper().split(): for letter in word: if letter in code.keys(): char = code[letter] for element in char: if element == '.': song.append(note+'3;') song.append('r3;') else: song.append(note+'1') song.append('r3;') song[-1] = 'r1' outfile.write(' ') outfile.write(''.join(song)) outfile.write('\n') song = [] song.append('r3;r1') # We'll be left with an unwritten wordspace, but no harm done. outfile.write('END:IMELODY\n') outfile.close() print outfilename, "created successfully."