FileIO config; config.open( "GoogleStockHistory.txt", FileIO.READ ); string temp[32]; float openPrice, highPrice, lowPrice, closePrice, adjPrice; int volume; if (config.good()) { StringTokenizer tok; // substring parser string myLine, temp; Mandolin m => dac; config.readLine() => myLine; // read first line, column headings <<< myLine >>>; config.readLine() => myLine; // read first line of actual data <<< myLine >>>; 1 => int notDone; while (notDone) { myLine => tok.set; tok.next(temp); // date, throw this away tok.next(temp); Std.atof(temp) => openPrice; // opening Price tok.next(temp); Std.atof(temp) => highPrice; // high Price tok.next(temp); Std.atof(temp) => lowPrice; // low Price tok.next(temp); Std.atof(temp) => closePrice; // closing Price tok.next(temp); Std.atoi(temp) => volume; // trading volume tok.next(temp); Std.atof(temp) => adjPrice; // adjusted closing Price closePrice => m.freq; 0.5 * ((highPrice - lowPrice) / closePrice) => m.stringDetune; 0.99 * (44703800 - volume)/44703800 => m.pluckPos; 1 => m.noteOn; 0.03 :: second => now; config.readLine() => myLine; // read next line of data <<< myLine >>>; if (myLine == "EXIT") 0 => notDone; // check for EOF } } config.close();