Matlab

时间:2017-03-25 13:00:36

标签: 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;
        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

但是当我按下多个按钮时,我想实时播放音乐 - 是否可以这样做?任何人??

P.S。当然,最终声音矢量将具有不同(较短)的长度,并且一些值将是两个(或更多)矢量值的叠加。我只是不知道如何进行这种叠加(在结果中做一个和谐)。

0 个答案:

没有答案