<< Chapter < Page Chapter >> Page >

The embedded comments in Listing 10 should be sufficient to explain the code.

Listing 10 . Read the input text file.
String fileName = args[2];try{ ArrayList dataList = new ArrayList();BufferedReader in = new BufferedReader( new FileReader("Data/" + fileName));String str; while ((str = in.readLine()) != null) {//Split the input string into multiple substrings using the comma as // the delimiter and save them in an array object.String[] strArr = str.split(",");//Ignore: // Blank lines that result in a string with a zero length// Comments that begin with a / // Lines that begin with a spaceif(strArr[0].length() == 0){System.out.println("Blank line will be ignored"); }else if(strArr[0].substring(0,1).equals("/")){ System.out.println("Comment: " + Arrays.toString(strArr));}else if(strArr[0].substring(0,1).equals(" ")){System.out.println("Ignore line that begins with space: " + Arrays.toString(strArr));}else{ //Apparently good data. Add the contents of the array to the end of// the ArrayList object, one substring (element) at a time. for(int cnt = 0;cnt<strArr.length;cnt++){ dataList.add(Double.parseDouble(strArr[cnt])); }//end for loop}//end else }//end whilein.close();//close the input file

The remainder of the constructor for the class named AudioGraph01

The remainder of the constructor for the class named AudioGraph01 is shown in Listing 11 . Once again, the embedded comments should be sufficient to explain the code.

Listing 11 . The remainder of the constructor for the class named AudioGraph01.
//Move the contents of dataList from the ArrayList object to the // inputData array. Make the array three elements longer than the size// of the ArrayList object to accommodate prepending three elements with // a value of zero.inputData = new double[dataList.size()+3];int count = 0;//Prepend three data items with a value of zero to the array. They will // be used to establish the audio pitch for a value of zero.inputData[count++] = 0;inputData[count++] = 0;inputData[count++] = 0;Iterator iter = dataList.iterator();while(iter.hasNext()){ double value = (double)iter.next();inputData[count++] = value;}//end while loop }catch(Exception ex){ex.printStackTrace(); }//end catch}//end constructor

Beginning of the method named getMelody

Listing 8 instantiates a new object of the class named AudioGraph01 and then calls the getMelody method on a reference to that object.

The getMelody method reads an array containing data values and returns an array ofaudio data that relates the data values to frequency or pitch. One output pulse at the correct pitch is produced for each data value. Outpulses representing a data value of zero are constructed from three frequencies to make them sound different.

The output rate in pulses per second is provided by the user as a command-line parameter.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Accessible objected-oriented programming concepts for blind students using java. OpenStax CNX. Sep 01, 2014 Download for free at https://legacy.cnx.org/content/col11349/1.17
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Accessible objected-oriented programming concepts for blind students using java' conversation and receive update notifications?

Ask