All The Words In Music
All possible words in the English language that can be formed by Western musical notes (A-G):
A: aa, ab, aba, abaca, abba, abbe, abed, accede, acceded, ace, aced, ad, adage, add, added, ae, aga, age, aged, agee
B: ba, baa, baaed, baba, babe, bacca, bad, bade, badge, baff, baffed, bag, baggage, bagged, be, bead, beaded, bed, bedad, bedded, bede, bee, beef, beefed, beg, begad, begged
C: cab, cabbage, cad, cade, cadee, cadge, cadged, caeca, cafe, caff, cage, caged, ceca, cede, ceded, cee
D: da, dab, dabbed, dace, dad, dae, daff, dag, dagaba, dagga, dagged, dead, deaf, deb, debag, debagged, decad, decade, decaff, dee, deed, deeded, def, deface, defaced, degage
E: ebb, ebbed, ecad, ecce, edge, edged, ef, eff, efface, effaced, effed, egad, egg, egged
F: fa, fab, facade, face, faced, fad, fade, faded, fadge, fadged, faff, faffed, fag, fagged, fed, fee, feed
G: gab, gabbed, gad, gadded, gade, gadge, gae, gaed, gaff, gaffe, gaffed, gag, gaga, gage, gaged, gagged, ged, gee, geed
Created using this word list (not comprehensive, but easy to find and free):
http://dreamsteep.com/projects/the-english-open-word-list.html
And with a rather simple Processing sketch:
/*
EVERY WORD FROM MUSICAL NOTES
Jeff Thompson | 2012 | www.jeffreythompson.org
A list of every word that contains letters from the musical notes (A,B,C,D,E,F,G)
and not any of the others. Repeats allowed, as are ommissions.
Source file is the English Open Word List:
http://dreamsteep.com/projects/the-english-open-word-list.html
*/
boolean printWords = false;
void setup() {
String[] ignore = {
"h", "i", "j", "k", "l", "m", "n", "o", "p", "q",
"r", "s", "t", "u", "v", "w", "x", "y", "z"
};
boolean store;
// read each file one by one
// capital A (65) to capital G (72) in ASCII - no point in reading the other letters!
for (int i=65; i<72; i++) {
try {
// variables to read the file
String filename = char(i) + " Words.csv";
BufferedReader reader = createReader(filename);
println(filename + "...");
PrintWriter writer = createWriter("words_" + char(i) + ".txt");
String word;
// go through all lines
while ( (word = reader.readLine ()) != null) {
// reset variable for next word
store = true;
// check against blacklist of letters to ignore
for (String s : ignore) {
if (word.contains(s)) {
store = false;
}
continue; // stop looking (faster though not necessary)
}
// if we've passed unscathed, store the word and continue
if (store) {
if (printWords) {
println(word);
}
writer.println(word);
}
} // end read file while loop
// close PrintWriter
writer.flush();
writer.close();
} // end read file try
catch (Exception e) {
println("Error reading file: " + e);
}
} // end letter-file loop
exit();
}
