Question
Chords.txt 1.0 350.0 440.0 2.0 440 480 4.0 0 0 2.0 440 480 4.0 0 0...
Chords.txt
1.0 350.0 440.0
2.0 440 480
4.0 0 0
2.0 440 480
4.0 0 0
2.0 440 480
4.0 0 0
0.5 480 620
0.5 0 0
0.5 480 620
0.5 0 0
0.5 480 620
0.5 0 0
Answers
// Play.java
package chord; //Please give name of your package
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;public class Play {
private static final String FILENAME="D:\\WS17.2\\Sample\\src\\chord\\Chords.txt"; //give the absulate path of //file
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++)
{
double chord=0.0;
for(double frequency:frequencies)
{
chord += Math.sin(2*Math.PI*i*frequency/StdAudio.SAMPLE_RATE);
}
slices[i] = chord/frequencies.length;
}
StdAudio.play(slices);
}
public static void main(String[] args)
{
BufferedReader br = null;
FileReader fr = null;try {
fr = new FileReader(FILENAME);
br = new BufferedReader(fr);String sCurrentLine;
br = new BufferedReader(new FileReader(FILENAME));
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
StringTokenizer st = new StringTokenizer(sCurrentLine, " ");
double []freq = new double[2];
double duration = Double.parseDouble(st.nextToken());
int i=0;
while(st.hasMoreTokens())
{
freq[i] = Double.parseDouble(st.nextToken());
i++;
}
playChord(duration,freq);
}
} catch (IOException e) {e.printStackTrace();
} finally {
try {
if (br != null)
br.close();if (fr != null)
fr.close();} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}//I am assuing you have StdAudio class with you, If you do not have this class please let me know.
//output:
D Play,java Chors.bt StdAudio.java ー ロ| |BE Outline X |围Task List 1 package chord; chord 3e import java.io.BufferedReader: 4 import Java.io.FileReader; 5 import java.io.IOException; 6 import java.util.StringTokenizer; SF FILENAME: String playChord(double, double[I): void main(String[]): void 8 public class Play f 10 private static final String FILENAME. "D : \\ws 17.2\\Sample\\src\\chord\\Chords.txt 12 public static void playChord (double duration, double 13 14 15 frequencies) final int sliceCount-(int) (StdAudio.SAMPLE RATE duration) final double slices-new double[sliceCount +11: R Markers 啿Properties 鼎Servers Data Source Explorer Snippets亄Problems A Search Console X Debug Palette Progress terminated> Play Java Application] C:IProgram FilesJavaljdk1.8.0_111\binljavaw.exe(Jun 9, 2017, 11:59:41 AM) 4.000 2.0 440 480 4.0 0o 2.0 440 480 4.0 0o 0.5 480 620 0.5 0 0 0.5 480 620 0.5 00 0.5 480 620 0.5 0o Writable Smart Insert 10:32