标签: waveform

在iOS中从音频中提取高音和低音

我正在寻找一种方法来获取歌曲中的高音和低音数据,增加一些时间(例如0.1秒),范围为0.0到1.0.我已经google了一下,但是找不到任何与我正在寻找的东西相近的东西.最终我希望能够在播放歌曲时表现高音和低音水平.

谢谢!

audio waveform extract ios

9
推荐指数
2
解决办法
1314
查看次数

确定数据集是否接近正弦波

是否有一种算法可用于确定以固定时间间隔采集的数据样本是否接近正弦波?

algorithm math waveform

8
推荐指数
2
解决办法
2857
查看次数

C#中的高质量图形/波形显示组件

我正在寻找一种C#中快速,专业外观和可定制的波形显示组件.

我想在时域和频域主要显示实时音频波形(快!).我希望能够缩放,更改轴设置,显示多个通道,自定义手感和颜色等...

任何人都知道什么,无论是否商业?

谢谢!

迭戈

c# waveform

8
推荐指数
1
解决办法
2万
查看次数

读取WAV文件并将其转换为Swift中的振幅数组

我在udacity.com上关注了一个非常好的教程,用Swift探索音频应用程序的基础.我想扩展其当前的功能,从显示WAV文件的波形开始.为此,我需要从WAV文件中检索幅度与样本.考虑到我已经录制了文件,我怎么能快速进行?

谢谢!

audio waveform swift

8
推荐指数
1
解决办法
599
查看次数

在时间戳数组上使用互相关是否有意义?

我想找到两个时间戳数组之间的偏移量.它们可以代表两个音轨中的哔哔声.

注意:两个轨道中可能有额外或缺少的开始.

我找到了一些关于互相关的信息(例如https://dsp.stackexchange.com/questions/736/how-do-i-implement-cross-correlation-to-prove-two-audio-files-are-similar)看起来很有希望.

我假设每个音轨的持续时间为10秒,并将哔哔声表示为"方波"的峰值,采样率为44.1 kHz:

import numpy as np

rfft = np.fft.rfft
irfft = np.fft.irfft

track_1 = np.array([..., 5.2, 5.5, 7.0, ...])
# The onset in track_2 at 8.0 is "extra," it has no
# corresponding onset in track_1
track_2 = np.array([..., 7.2, 7.45, 8.0, 9.0, ...])
frequency = 44100
num_samples = 10 * frequency
wave_1 = np.zeros(num_samples)
wave_1[(track_1 * frequency).astype(int)] = 1
wave_2 = np.zeros(num_samples)
wave_2[(track_2 * frequency).astype(int)] = 1
xcor = irfft(rfft(wave_1) * np.conj(rfft(wave_2)))
offset …
Run Code Online (Sandbox Code Playgroud)

python waveform fft cross-correlation

8
推荐指数
1
解决办法
449
查看次数

编程自学音乐制作者

我想学习如何编写将分析歌曲的音乐应用程序.

我将如何开始这个,是否有一个分析声波的库?

我知道C,C++,Java,Python,一些程序集和一些Perl.

相关问题: 音乐模仿算法

python perl waveform

7
推荐指数
2
解决办法
2004
查看次数

在SDL回调函数中以特定频率播放波形

我有一个长64个样本的波形.如果采样率为44100 hz,我该如何播放(循环)此波形以使其播放任意频率?

频率=样本中的采样率/波形持续时间

因此频率应为689hz(44100/64).如果我想要它,65.41hz(C-2),我必须这样做:

65.41 = 44100/x

求解x得到aprox.674.208.因此,我需要弄清楚播放波形的速度,以获得此频率.所以我们可以解决这个等式:

64*x = 674.208

得到大约10.5.因此波形需要以其原始速度的10.5%播放.

这是我的代码:

double smp_index = 0;
double freq = .105;

void callback(void *data, Uint8 *buf, int len){
    int i;
    s8 *out;
    out = (s8*) buf;
    if(smp_index < waveform_length){
        for(i = 0; i < len; i ++){
            out[i] = smpdata[(int)smp_index];
            smp_index +=freq;
            if(smp_index >= waveform_length)
                smp_index = 0;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

因此产生的音频应该是关于音符C-2,但它更多的是D-2.是演员

(int)smp_index
Run Code Online (Sandbox Code Playgroud)

造成这个问题?我看不到任何其他方法来实现这个目标......

c audio sdl waveform callback

7
推荐指数
1
解决办法
1482
查看次数

在ios上的录音和波形图画

我正在使用AVAudioRecorder录制音频,录制后我想绘制录制音频的波形.我发现了一篇关于波形绘制好文章,但首先我需要以特定采样率的频率作为浮点数,对吗?

我是否需要对音频进行FFT以及如何进行此操作?*AVAudioRecorder**甚至是用于此目的的API吗?或者我是否需要使用较低的API来录制音频?希望可以有人帮帮我.

iphone waveform fft avaudiorecorder ios

7
推荐指数
1
解决办法
3397
查看次数

减少谐波,在Java中产生纯音

我正在尝试用Java开发一个静态方法来生成纯音.

在开始时它似乎很容易,但是当我尝试将双阵列写入扬声器时,我欣赏太多的谐波.

我用频谱分析仪(声压计)测试它,然后我也在图形中绘制了数组结果.当我完成它时,我已经看到了问题:

这是波形,它已经中断了.我想平滑这个数组,但我不知道该怎么做.

这是代码:

/**
 * Genera un tono puro.
 * @param bufferSize Tamaño del buffer.
 * @param fs Frecuencia de muestreo.
 * @param f0 Frecuencia central. 
 * @return El tono puro.
 */
public static double[] generateTone(int bufferSize, int fs, int f0) {
    double[] tone = new double[bufferSize]; // Tono
    double angle; // Ángulo del tono

    // Sólo hace falta recorrer la mitad del array, ya que hay simetría:
    for (int i = 0; i < tone.length / 2; …
Run Code Online (Sandbox Code Playgroud)

java waveform sound-synthesis

7
推荐指数
1
解决办法
273
查看次数

如何找到信号周期(自相关 vs 快速傅立叶变换 vs 功率谱密度)?

假设有人想找出给定正弦波信号的周期。从我在网上阅读的内容来看,这两种主要方法似乎采用了傅立叶分析或自相关。我正在尝试使用 python 自动化该过程,我的用例是将此概念应用于来自围绕恒星运行的模拟物体的位置(或速度或加速度)时间序列的类似信号。

为了简单的例子,考虑x = sin(t)for 0 ? t ? 10 pi

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

## sample data
t = np.linspace(0, 10 * np.pi, 100)
x = np.sin(t)
fig, ax = plt.subplots()
ax.plot(t, x, color='b', marker='o')
ax.grid(color='k', alpha=0.3, linestyle=':')
plt.show()
plt.close(fig)
Run Code Online (Sandbox Code Playgroud)

示例正弦波

给定形式x = a sin(b(t+c)) + d为 的正弦波,正弦波的周期为2 * pi / b。由于b=1(或通过目视检查),我们的正弦波的周期是2 * pi。我可以根据此基线检查从其他方法获得的结果。

尝试 1:自相关

据我了解(如果我错了,请纠正我),相关性可用于查看一个信号是否是另一个信号的时间滞后副本(类似于余弦和正弦因相位差而不同)。因此,自相关是针对自身测试信号,以测量时滞重复所述信号的时间。使用此处发布示例 …

python signals waveform fft time-series

7
推荐指数
1
解决办法
3583
查看次数