Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Fs = 44100; // กำหนดค่า ความถี่ของเสียงเป็น 44100 Hz
- t = 0:1/Fs:0.2-1/Fs; // กำหนด เวลา(t) ตั้งแต่ 0 ถึง 0.2-1/Fs โดยขึ้นทีละคาบ(1/Fs)
- // กำหนด amplitude ของ harmonics แต่ละ component
- harmonics = [1.0, 0.399064778, 0.229404484, 0.151836061,0.196754229, 0.093742264, 0.060871957,0.138605419, 0.010535002, 0.071021868,0.029954614, 0.051299684, 0.055948288,0.066208224, 0.010067391, 0.00753679,0.008196947, 0.012955577, 0.007316738,0.006216476, 0.005116215, 0.006243983,0.002860679, 0.002558108, 0.0, 0.001650392];
- pitches = [261.63;293.66;329.63;349.23;392.00;440.00;493.88;523.25]; // กำหนดความถี่ของแต่ละเสียง
- notes = []; // ประกาศ array ที่ไว้เก็บ note แต่ละ note
- composite_inc = []; // ประกาศ array ที่เก็บเพลงจากหน้าไปหลัง
- composite_dec = []; // ประกาศ array ที่เก็บเพลงจากหลังไปหน้า
- for(i=1:length(pitches)) // วนความถี่แต่ละตัวในตัวแปร pitches
- // กำหนดตัวแปร wav เป็น array เท่ากับขนาดของ t โดยให้ทุกช่องเป็น 0 ไว้เก็บ wave ของเสียงนี้
- wav = zeros(1:length(t));
- for(h=1:length(harmonics)) // วน harmonics แต่ละตัว
- // นำ harmonic มาคิดกราฟจากสมการ h*sin(2*PI*h*f*t) และเพิ่มลงไปในตัวแปร wav
- wav = wav + harmonics(h)*sin(2*%pi*h*pitches(i)*t);
- end;
- notes(i,:) = wav; // เก็บ wave ที่สร้างได้ในตัวแปร notes ที่ i
- // เพิ่ม note ที่สร้างได้ต่อด้านหลังของ เสียงที่เอาไว้เล่นจากหน้าไปหลัง
- composite_inc = [composite_inc,notes(i,:)];
- // เพิ่ม note ที่สร้างได้ต่อด้านหน้าของ เสียงที่จะเอาไว้เล่นจากหลังไปหน้า
- composite_dec = [notes(i,:),composite_dec];
- end;
- sound([composite_inc,composite_dec],Fs); // เล่นเสียงที่สร้างได้ ด้วยความถี่ Fs(44100)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement