小插曲 - MATLAB 代码格式化
MBeautifier 是一个基于 MATLAB 源代码的开源一键美化m代码的格式器。它可以直接在MATLAB编辑器中使用,并且可按照使用者习惯进行配置的。MBeautifier支持的 Matlab 最低版本是 R2013b。
audioread,sound 函数
filename:文件的位置加名字,常用的在桌面的文件,音频格式为WAV,注意文件名带引号。
特别注意的是,如果文件是在MATLAB菜单栏下的当前文件路径下,可以只写文件名,如果不在这个路径里面调用,需要把完整的全部地址写进去,程序如下:
[y,Fs]=audioread('C:\Users\Administrator\Desktop\1.wav');
Fs:采样频率,1秒内对连续的音频信号取的点的个数。
y:输出的音频数字信号,默认是 n 行 2 列,其中2的意思是,这个音频信号是两个声道的,n 的值等于该音频信号的时长乘采样频率 Fs。
钢琴键 - 详细介绍
找到两个黑键三个白键这样的一组,左起第一白键都是c,C调就说的键盘中间的那一组的白键为1,依次后面白键为234567。
关于 钢琴 的 A 大调
案例测试
m 能够传数组,进行和弦的发音
function tunes2pianosound(m, time)% m : a vector with tunes from pianonotes 1 to 88 played at the same time.
% time : change this for longer or shorter pianosound (rhythm)len = length(m);
max_len = 0;for i = 1:lennote = ['all_notes\', num2str(m(i)), '.wav';][y{i}, Fs] = audioread(note);plot(y{i})y{i} = y{i}(1:round(length(y{i})/time), :);if length(y{i}) > max_lenmax_len = length(y{i});endend
y_sound = zeros(max_len, 2);
for i = 1:leny_sound = y_sound + y{i};
end
soundsc(y_sound, Fs)
1、size 获取数组的行数和列数
2、length 数组长度,即行数和列数中的较大值,相当于max(size(a))