Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab中录制声音的协和(叠加)_Matlab_Matlab Guide - Fatal编程技术网

Matlab中录制声音的协和(叠加)

Matlab中录制声音的协和(叠加),matlab,matlab-guide,Matlab,Matlab Guide,我用Matlab做了一个项目——钢琴模拟器。我能够同时播放多种声音: M=length(number); freq_sampling = handles.freq_sampling; for i=1:M filename_in=['audio/' num2str(number(i)) '.mat']; load(filename_in) try %just for safety y_sound=y_sound+y; cat

我用Matlab做了一个项目——钢琴模拟器。我能够同时播放多种声音:

M=length(number);
freq_sampling = handles.freq_sampling;

for i=1:M
    filename_in=['audio/' num2str(number(i)) '.mat'];
    load(filename_in)
        try %just for safety
            y_sound=y_sound+y;
        catch
            y_sound=y;
        end
end

sound(y_sound,freq_sampling)
问题在于以后录制和播放-下面的代码将所有按下的按钮连接成一个声音向量:

if record_on == 1
  sound_vector_long = handles.sound_vector;
  mono = (y_sound(:,1)+y_sound(:,2))/2; %mono is needed cuz .mat files are 2ch
  if sound_vector_long == 0
    sound_vector_long = transpose(mono);
  else
    sound_vector_long = cat(2, sound_vector_long, transpose(mono));
  end
  handles.sound_vector = sound_vector_long;

  guidata(handles.figure1, handles);
end
但我想在按下多个按钮时实时播放音乐,这可能吗?有人吗

当然,最终的声矢量长度不同(更短),其中一些值是两个(或更多)矢量值的叠加。我只是不知道如何做这个叠加(在结果中做一个协和)