<< Chapter < Page Chapter >> Page >

.....

Listing 7 . The class named FMSweep.
/*File FMSweep.java Copyright 2014, R.G.BaldwinRevised 08/19/14 This class can be used to create an 8-second stereo melody consisting of alinear frequency sweep with a linear pan between speakers. ******************************************************************************/import java.io.*; import java.nio.*;import java.util.*; public class FMSweep extends AudioSignalGenerator02{public FMSweep(AudioFormatParameters01 audioParams,String[] args,byte[] melody){super(audioParams,args,melody); }//end constructor//-------------------------------------------------------------------------////This method returns an array that will play an 8-second melody consisting // of a linear frequency-modulated sweep from a low frequency of middle-C// to a high frequency that is one octave above middle-C. During the // frequency sweep, the sound pans linearly from the left speaker to the// right speaker. //byte[] getMelody(){//Set channels to 2 for stereo overriding the default value of 1. audioParams.channels = 2;System.out.println("audioParams.channels = " + audioParams.channels); //Each channel requires two 8-bit bytes per 16-bit sample.int bytesPerSampPerChan = 2;//Override the default sampleRate of 16000.0F. Allowable sample rates // are 8000,11025,16000,22050, and 44100 samples per second.audioParams.sampleRate = 8000.0F;// Specify the length of the melody in seconds. double lengthInSeconds = 8.0;//Set the low and high frequencies to cause the sweep to cover one full// octave. double lowFreq = 261.63;//middle Cdouble highFreq = 2*lowFreq; //Create an output data array of sufficient size to contain the melody at// "sampleRate" samples per second, "bytesPerSampPerChan" bytes per // sample per channel and "channels" channels.melody = new byte[(int)(lengthInSeconds*audioParams.sampleRate* bytesPerSampPerChan*audioParams.channels)]; System.out.println("melody.length = " + melody.length);//Set the overall gain to a value that is compatible with 16-bit audio// data. double gain = 8000.0;//Declare variables used to control the output volume on the left and // right speaker channels.double leftGain = 0.0; double rightGain = 0.0;//Declare a variable that is used to control the frequency. double freq = 0.0;//Prepare a ByteBuffer for use byteBuffer = ByteBuffer.wrap(melody);//Compute the number of audio samples in the melody. int sampLength = (int)(lengthInSeconds*audioParams.sampleRate);//Compute the audio sample values and deposit them in the output melody // array.for(int cnt = 0; cnt<sampLength; cnt++){ //Compute the time in seconds for this sample.double time = cnt/audioParams.sampleRate;//Compute the frequency for this iteration freq = lowFreq + (highFreq - lowFreq)*cnt/sampLength;//Adjust the left and right gain values to cause the sound to pan // linearly from the left speaker to the right speaker.rightGain = gain*1.0*cnt/sampLength; leftGain = gain*1.0-rightGain;//Compute scaled values and deposit them into the melody. byteBuffer.putShort((short)(leftGain*Math.sin(2*Math.PI*freq*time)));byteBuffer.putShort((short)(rightGain*Math.sin(2*Math.PI*freq*time))); }//end for loopreturn melody;}//end method getMelody //-------------------------------------------------------------------------//}//end class FMSweep //===========================================================================//

Questions & Answers

discuss how the following factors such as predation risk, competition and habitat structure influence animal's foraging behavior in essay form
Burnet Reply
location of cervical vertebra
KENNEDY Reply
What are acid
Sheriff Reply
define biology infour way
Happiness Reply
What are types of cell
Nansoh Reply
how can I get this book
Gatyin Reply
what is lump
Chineye Reply
what is cell
Maluak Reply
what is biology
Maluak
what's cornea?
Majak Reply
what are cell
Achol
Explain the following terms . (1) Abiotic factors in an ecosystem
Nomai Reply
Abiotic factors are non living components of ecosystem.These include physical and chemical elements like temperature,light,water,soil,air quality and oxygen etc
Qasim
Define the term Abiotic
Marial
what is biology
daniel Reply
what is diffusion
Emmanuel Reply
passive process of transport of low-molecular weight material according to its concentration gradient
AI-Robot
what is production?
Catherine
hello
Marial
Pathogens and diseases
how did the oxygen help a human being
Achol Reply
how did the nutrition help the plants
Achol Reply
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

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