gpt4 book ai didi

matlab - 尝试在MATLAB中编写一个函数,以给定音符(频率)和长度的向量来播放歌曲

转载 作者:行者123 更新时间:2023-12-02 22:21:23 25 4
gpt4 key购买 nike

我希望能够将两个 vector 作为MATLAB中函数的输入,以便第一个具有我要演奏的所有频率,第二个具有每个音符的对应持续时间。到目前为止,我有:

%% Initialize
clear; format short e;

%% Possible Notes
octave = [55 110 220 440 880];
for k = 1:length(octave)
pause = 0;
A(k) = octave(k);
As(k) = octave(k).*2^(1/12);
B(k) = octave(k).*2^(2/12);
C(k) = octave(k).*2^(3/12);
Cs(k) = octave(k).*2^(4/12);
D(k) = octave(k).*2^(5/12);
Ds(k) = octave(k).*2^(6/12);
E(k) = octave(k).*2^(7/12);
F(k) = octave(k).*2^(8/12);
Fs(k) = octave(k).*2^(9/12);
G(k) = octave(k).*2^(10/12);
Gs(k) = octave(k).*2^(11/12);
end

%% Notes and Durations
Notes = [D(2) D(3) D(2) D(2) C(3) D(2) D(2) A(3) A(2) ...
A(2) G(2) A(2) A(2) F(3) Fs(3) D(2)];
Times = [1/4 1/4 1/5 1/5 1/4 1/5 1/5 1/4 1/5 ...
1/5 1/4 1/5 1/5 1/4 1/8 1/4];

%% Play the Song
playSong(Notes, Times);

我的“playSong”功能中包含以下内容:
function [song] = playSong(freqs, times)
fs = 44600;
makeNote = @(freq, time) cos(2*pi*[1:time]/fs * freq);
song = []

%% For Loop
for k = 1:length(freqs)
% make the song somehow
end

sound(song, fs)
end

我一直在研究如何创建要播放的声音 vector ,但似乎还不知道该怎么做。有人知道我该怎么做吗?

最佳答案

(a)您可以使用 sound soundsc 将信号数据的 vector \矩阵转换为声音。

(b)如果要使用声卡生成音频,则您具有32位版本的MATLAB和数据采集工具箱,请参见here示例如何使用它。

(c)您可以使用 audiorecorder 将音频录制到音频对象,然后使用'audioplayer'播放音频

您在所有这些选项中都有几个有关如何实现和演奏笔记的示例。

关于matlab - 尝试在MATLAB中编写一个函数,以给定音符(频率)和长度的向量来播放歌曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14867339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com