<< Chapter < Page Chapter >> Page >

The difference explained

Depending on the quality of your speakers and the sensitivity of your ears, you may be able to hear a hint of higher frequency components in the square wavesound. A sinusoid represents a single frequency. A square wave with the same fundamental frequency contains a component with the same frequency as thesinusoid. However, it also contains some higher-frequency harmonics at lower intensity levels. In other words, the spectrum of a square wave is not a single frequency. Instead,it has a large peak at the fundamental frequency plus smaller peaks at higher frequencies that are harmonically related to the fundamental frequency.

An audio graph of a sinusoid

Click AudioGraphSinusoidal to hear an audio representation of the graph of a sinusoid. Compare this with AudioGraphSquareWave , which is an audio representation of the graph of a square wave.

I will explain the code that I wrote to create these audio graphs in a future module. Once you understand that code, you should be able to write the code tocreate audio graphs of many different mathematical functions, such as sine, cosine, tangent, cotangent, secant, cosecant, parabola, hyperbola, exponentials,half circle, half ellipse, and many others. (See functions.wolfram.com for thousands of formulas of hundreds of functions.)

Discussion and sample code

This program requires the following five classes:

Three classes are unchanged

I won't bore you by repeating the discussion from earlier modules. The first three classes in the above list are completely unchanged from the module titled Jbs2010-Your First Sound Program . Therefore, I won't discuss them further in this module.

The class named MusicComposer06

The class named MusicComposer06 differs from the previous version only in the following respects:

  • Changes in the explanatory comments.
  • Replacement of the term WhiteNoise with the term ToneMono .
  • Replacement of the term whiteNoise with the term toneMono .

Therefore, I also won't discuss this class further in this module.

The class named ToneMono

A complete listing of the class named ToneMono is provided in Listing 9 . I will break this class down and explain it in fragments.

Beginning of the class named ToneMono

The sound that you heard when you listened to the audio file named ToneMono was produced by the getMelody method of the ToneMono class. The ToneMono class begins in Listing 1 and the getMelody method begins in Listing 2 .

The code in Listing 1 differs from the corresponding WhiteNoise code from the earlier module only with respect to the name of the class. Therefore, Iwon't discuss it further.

Listing 1 . Beginning of the class named ToneMono.
import java.io.*; import java.nio.*;import java.util.*; public class ToneMono extends AudioSignalGenerator02{public ToneMono(AudioFormatParameters01 audioParams,String[] args,byte[] melody){super(audioParams,args,melody); }//end constructor

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