Jeff Thompson | Blog

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();
}

September 25th, 2012 at 2:52 pm