<< Chapter < Page
  Accessible objected-oriented     Page 16 / 17
Chapter >> Page >

...

Listing 26 . The class named AudioSignalGenerator02.
/*File AudioSignalGenerator02.java Copyright 2014, R.G.BaldwinRevised 08/19/14 This is an abstract class that serves as the base class for several otherclasses that can be used to create melodies of different types. ******************************************************************************/import java.io.*; import java.nio.*;import java.util.*; public abstract class AudioSignalGenerator02{//Note: This class can only be used to generate signed 16-bit data.ByteBuffer byteBuffer; String[]args; byte[]melody; AudioFormatParameters01 audioParams;//-------------------------------------------------------------------------////Constructor public AudioSignalGenerator02(AudioFormatParameters01 audioParams,String[] args,byte[] melody){this.audioParams = audioParams; this.args = args;this.melody = melody; }//end constructor//-------------------------------------------------------------------------// //The following abstract method must be overridden in a subclass for this// class to be of any value. abstract byte[]getMelody(); }//end AudioSignalGenerator02//===========================================================================//

...

Listing 27 . The class named MusicComposer09.
/*File MusicComposer09.java Copyright 2014, R.G.BaldwinRevised 08/27/14 This is a driver class for playing piano melodies. It works inconjunction with the following classes: AudioSignalGenerator02AudioPlayOrFile01 AudioFormatParameters01PlayerPiano01 The melody to be played is defined in one and optionally two text files. Therequired text file defines the notes and the duration of those notes on the treble clef. The optional text file defines the notes and the durations ofthose notes on the bass clef. Those text files must exist in a subfolder named Music.The melody can be played immediately or can be saved in an audio file of type AU for playback later. You should be able to play the audio file withany standard media player that can handle the AU file type Tested using JDK 1.8 under Win 7.******************************************************************************/ public class MusicComposer09{//Instantiate an object containing audio format parameters with predefined // values. They may be modified by the signal generator at runtime. Values// allowed by Java SDK 1.4.1 are shown in comments in the class definition. AudioFormatParameters01 audioParams = new AudioFormatParameters01();//A buffer to hold the data for the melody that will be played or filed.byte[] melody;//A place to store the incoming args array.String[] args;//-------------------------------------------------------------------------//public static void main(String[] args){/*Command-line parameters 0: "play" to play immediately, fileName to create an AU file. Note thatthe output filename cannot be named play.au. 1: Beats per second.2: Name of file containing treble clef data (required). 3: Name of file containing bass clef data (optional).*///Instantiate a new object of this class. new MusicComposer09(args);}//end main //-------------------------------------------------------------------------//public MusicComposer09(String[]args){//constructor //Save the args array.this.args = args;//Create default args data if no args data is provided on the command // line. Requires that the files named GreensleevesTreble.txt and// GreensleevesBass.txt exist in a subfolder named Music. if(args.length == 0){this.args = new String[4]; this.args[0]= "play";//Play the melody immediately this.args[1]= "16";//beats per second this.args[2]= "GreensleevesTreble.txt"; this.args[3]= "GreensleevesBass.txt"; }//end if//Requires a file containing treble clef data and optionally a file // containing bass clef data in a subfolder named Music.AudioSignalGenerator02 sigGen = new PlayerPiano01(audioParams,this.args,melody);melody = sigGen.getMelody(); //Play or file the audio datanew AudioPlayOrFile01(audioParams,melody,this.args[0]).playOrFileData();}//end constructor //-------------------------------------------------------------------------//}//end class MusicComposer09.java //===========================================================================//

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