Question: Java Write a program called Play3NoteChords to play a sequence of chords each consisting of 3 notes. Write the program so that it: Declares and

Java

Write a program called Play3NoteChords to play a sequence of chords each consisting of 3 notes.

Write the program so that it:

Declares and creates a symbol table using the week1examples.SimplerBST class, similarly to what you did in assignment 1;

Reads in the file notes_frequencies.txt previously provided and, as in assignment 1, as each line is read, an entry is made in the symbol table where the note name is the key and the frequency is the value.

Reads in a chords file, where each line contains a duration in seconds (floating point) and three note names. The values are separated by whitespace. A sample file is 3_note_chords.txt.

Both the notes and frequencies file and the chords file should be placed into the Eclipse data directory and read in using StdIn and the fromFile method.

To process a text file where each line contains a fixed set of data fields:

Use the method readLine in the StdIn class, which returns a string;

Split the string into an array of strings using the instance method split in the String class;

Convert the numeric strings into numeric values using the method parseDouble in the Double class.

To play each chord, place into your program and call this method:

 public static void playChord(double duration, double... frequencies) { final int sliceCount = (int) (StdAudio.SAMPLE_RATE * duration); final double[] slices = new double[sliceCount+1]; for (int i = 0; i <= sliceCount; i++) { for (double frequency: frequencies) { slices[i] += Math.sin(2 * Math.PI * i * frequency / StdAudio.SAMPLE_RATE); } slices[i] /= frequencies.length; } StdAudio.play(slices); }

To call the method with three frequencies, use something like this: playChord(duration, frequency1, frequency2, frequency3).

You will also have to import stdlib.StdAudio.

notes_frequencies.txt

A0 27.5

A#0 29.1353

B0 30.8677

C1 32.7032

C#1 34.6479

D1 36.7081

D#1 38.8909

E1 41.2035

F1 43.6536

F#1 46.2493

G1 48.9995

G#1 51.913

A1 55

A#1 58.2705

B1 61.7354

C2 65.4064

C#2 69.2957

D2 73.4162

D#2 77.7817

E2 82.4069

F2 87.3071

F#2 92.4986

G2 97.9989

G#2 103.826

A2 110

A#2 116.541

B2 123.471

C3 130.813

C#3 138.591

D3 146.832

D#3 155.563

E3 164.814

F3 174.614

F#3 184.997

G3 195.998

G#3 207.652

A3 220

A#3 233.082

B3 246.942

C4 261.626

C#4 277.183

D4 293.665

D#4 311.127

E4 329.628

F4 349.228

F#4 369.994

G4 391.995

G#4 415.305

A4 440

A#4 466.164

B4 493.883

C5 523.251

C#5 554.365

D5 587.33

D#5 622.254

E5 659.255

F5 698.456

F#5 739.989

G5 783.991

G#5 830.609

A5 880

A#5 932.328

B5 987.767

C6 1046.5

C#6 1108.73

D6 1174.66

D#6 1244.51

E6 1318.51

F6 1396.91

F#6 1479.98

G6 1567.98

G#6 1661.22

A6 1760

A#6 1864.66

B6 1975.53

C7 2093

C#7 2217.46

D7 2349.32

D#7 2489.02

E7 2637.02

F7 2793.83

F#7 2959.96

G7 3135.96

G#7 3322.44

A7 3520

A#7 3729.31

B7 3951.07

C8 4186.01

3_note_chords.txt

0.5 C4 C5 C6

0.5 E4 E5 E6

0.5 C#4 F#4 G#4

0.5 D#4 F#4 A#5

0.75 F#5 A#6 C#6

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!