- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
歌曲的音阶 - 歌曲的音阶由信号中存在的给定和弦组确定。
引用http://songkeyfinder.com/找出不同音阶的和弦组。
歌曲的音阶也可以根据信号中最常出现的给定频率集来确定。
我在 MATLAB 中编写了这段代码,它显示了频率及其出现次数的图。
[wave,freq] = audioread('Our_song.wav');
dt = 1/ freq;
Stoptime = 1;
t = (0:dt:Stoptime-dt);
n = length(wave)-1;
df = freq/n;
figure;
f = 0:freq/n:99999*freq/n;
ff=abs(fft(wave))/n;
fflength= length(ff);
ffpart=ff(1:100000);
plot(f,ffpart);
如何存储信号的前 n 个最常出现的频率?
最佳答案
通过对整个信号应用 fft,您会丢失时间信息。您可能对音频处理不太熟悉,但如果您对此感到好奇,那么学习一些基础知识似乎是很有趣的。信号的常见时频表示是 STFT ,查看 Matlab 关于频谱图的帮助。
但是,STFT 并不是突出音乐结构的最佳选择,您可能希望使用色度特征来表示音频信号。它将产生一个包含 12 个“bin”的矩阵,对应于半音阶的 12 个音符。
描述了如何实现此色度分析的示例 here 。从色度表示中,您可以尝试识别随时间演奏的音符。
然而,这并不是一件简单的任务。我强烈建议开始使用仅包含一种乐器的录音。首先,在没有任何和弦的情况下(例如钢琴上的旋律),如果您设法正确地获得音符顺序,请尝试使用带有和弦的相同乐器。不同工具的混合会更具挑战性。
关于python - 如何找到歌曲的音阶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24218103/
我最近使用Homebrew在Mac上输入了GNU Octave, 将octave放入bash中,它打开了octave-gui窗口。 Octave GUI看起来很吸引人(至少在Mac上是这样),所以我想
我正在尝试使用 Octave 音程中的 invfreqs 从频率响应数据中找到传递函数。原则上它是有效的,问题是生成的传递函数总是拟合最高频率,低频匹配得很差。 尝试权衡拟合误差与频率的关系是行不通的
如何在音频缓冲区级别上向上或向下移动 Octave?或者有这个库函数吗?是否有用于确定音频文件某些属性的库或可能允许的(iOS)第 3 方库?例如 BPM、Key 等。或者如何确定这些东西?如何区分音
在 GNU Octave 版本 3.4.3 中,我无法应用自定义函数来操作矩阵中的每个项目/元素。 我有一个 (2,3) 矩阵,如下所示: mymatrix = [1,2,3;4,5,6]; myma
我是一名优秀的程序员,十分优秀!