我必须创建不同数量的蜂鸣声阵列。我确定会播放多少个哔哔声,每个嘟嘟声的持续时间和在线哔哔声持续时间。然而,这些都必须非常快地播放,间隔和持续时间都在0.01秒-2秒之间。 matlab的声音功能不允许你在两者之间进行非常小的中断,即使你连续播放两个声音函数而没有通过定时器进行小的中断,它也会比我需要的时间更长。有任何想法吗?我真的很感激任何帮助......在matlab/psychtoolbox中创建快速连续的蜂鸣声
1
A
回答
2
为了保证给定的间距,我认为你需要组装波形。我怀疑启动sound
函数需要很多时间。
作为一个例子,下面的功能应该给你一个良好的开端:
function beep_series(specs)
%BEEP_SERIES Create a series of beeps
% BEEP_SERIES([FREQ_HZ, VOL, DUR_SEC, PAUSE_SEC]) creates a series of
% beeps from an N-by-4 spec matrix, where the colums represent:
% frequency
% volumne (0-1)
% beep duration
% pause duration,
freq = specs(:,1);
volume = specs(:,2);
duration = specs(:,3);
trailingGap = specs(:,4);
SAMPLE_FREQ = 8192;
totalTime = sum(duration) + sum(trailingGap);
x = zeros(ceil(totalTime*SAMPLE_FREQ),1);
curBeepStartTime = 0;
for ix = 1:length(freq)
numSamples = round(duration(ix)*SAMPLE_FREQ);
x(round(curBeepStartTime*SAMPLE_FREQ + (1:numSamples)) ) = ...
volume(ix) * sin( (1:numSamples) * (2*pi*freq(ix)/SAMPLE_FREQ) );
curBeepStartTime = curBeepStartTime + duration(ix) + trailingGap(ix);
end
sound(x, SAMPLE_FREQ)
+0
非常感谢!这解决了我的问题,现在我正在为每个嘟嘟声系列创建一个大的声音阵列。 – user2623446
相关问题
- 1. 有没有不错的kernel32蜂鸣声(板载蜂鸣声)?
- 2. Ionic $ cordovaDialogs蜂鸣声
- 3. Mac上的Python蜂鸣声
- 4. 停止Netbeans蜂鸣声
- 5. java.awt.Toolkit蜂鸣声()错误
- 6. vb.net服务蜂鸣声
- 7. WinForms ALT键蜂鸣声
- 8. Lazarus Pascal蜂鸣声命令
- 9. 简单的蜂鸣声扬声器
- 10. python库蜂鸣声主板扬声器
- 11. 在可可调试蜂鸣声
- 12. 如何在Java中快速连续发声?
- 13. Android:当我关闭应用程序时蜂鸣声继续
- 14. 提高不同的蜂鸣声
- 15. Windows CE上的主板蜂鸣声
- 16. 快速连续按下WP7
- 17. 如何在cygwin中关闭蜂鸣声铃声?
- 18. keyDown工作,但我得到蜂鸣声
- 19. 让蜂鸣声收到推送通知
- 20. 如何在Alt + [Key]中禁用Chrome中的蜂鸣声?
- 21. 快速创建图像阵列并连接声音
- 22. 如何防止快速连续在数据库中创建重复条目? (JPA)
- 23. 如何在Windows上禁用emacs中的蜂鸣声
- 24. 在iPad中发出蜂鸣声的问题?
- 25. 快速连续点击不同的NSButton
- 26. WPF Image的连续(快速)更新
- 27. 在窗口git diff中禁用蜂鸣声
- 28. 我想在终端中禁用蜂鸣声 - Mac OSX
- 29. 在java中,使得选择性蜂鸣声
- 30. 快速创建data.frame
我以前做过,是而不是试图产生不同频率,不同持续时间的声音,并分别等待时间,将它们组合成一个阵列(这对制作随机游戏音乐来说很好)。这是一个选项吗? – voxeloctree