我使用assetUrl从iPod库中读取歌曲(在代码中命名为audioUrl)我可以用很多方式播放,我可以剪掉它,我可以用它来做一些但是......我真的不明白我要用这个做什么CMSampleBufferRef获取绘制波形的数据!我需要有关峰值的信息,我怎么能得到这个(也许是另一种)方式?
AVAssetTrack * songTrack = [audioUrl.tracks objectAtIndex:0];
AVAssetReaderTrackOutput * output = [[AVAssetReaderTrackOutput alloc] initWithTrack:songTrack outputSettings:nil];
[reader addOutput:output];
[output release];
NSMutableData * fullSongData = [[NSMutableData alloc] init];
[reader startReading];
while (reader.status == AVAssetReaderStatusReading){
AVAssetReaderTrackOutput * trackOutput =
(AVAssetReaderTrackOutput *)[reader.outputs objectAtIndex:0];
CMSampleBufferRef sampleBufferRef = [trackOutput copyNextSampleBuffer];
if (sampleBufferRef){/* what I gonna do with this? */}
Run Code Online (Sandbox Code Playgroud)
请帮我!
使用我的iPhone,我想测量人体肠胃胀气,以便根据整体事件质量的各种属性来衡量,量化和提供统计报告.也许是令人发指的.好玩,绝对.如果我要"发布"一款iPhone应用程序,我想以时尚的方式进行.没错,我想测量屁/ st//嘟嘟.
所以这让我想到了我的问题,
为了提供极其精确的分析,我至少需要能够测量传播波包,特别是测量脉冲包络,相邻峰之间的距离,动量和速度的波包.
传播波包

由于我不是声音分析的专家,我想知道是否有可用于声音分析的开发库,它们可以提供一套具有上述资格的强大工具?
对于那些范围爬行者,欢迎您的想法,但是,只留下想法作为评论,因为我正在认真寻找我的问题的答案.
注意我知道其他胀气测量应用,它们仅仅根据事件的体积和长度来衡量,但没有一个可以提供我在这个地面/破风应用中寻找的质量水平.
注2 我绝对,100%,严肃.
我试图在Java中实现低通滤波器.我的要求非常简单,我必须消除特定频率以外的信号(单维).看起来Butterworth过滤器可以满足我的需要.
现在重要的是CPU时间应该尽可能低.过滤器必须处理近百万个样本,我们的用户不喜欢等待太久.是否有任何现成的Butterworth滤波器实现,它具有最佳的滤波算法.
我正在寻找如何根据音乐绘制声波.
我想要像这张图片一样的波浪

这里有一些关于从音乐中显示Waves的讨论
Github示例链接
但是对于这种类型的波浪没有任何了解,是否可以像这张图像一样画出波浪?
我的手机附带的默认动态壁纸之一是一个壁纸,显示在后台实时播放音乐的波形.我想知道如何做到这一点.我似乎应该以某种方式访问背景音乐的流数据并实时计算样本,但我不知道如何获取流数据.我想我可以按照本教程http://codeidol.com/java/swing/Audio/Build-an-Audio-Waveform-Display/显示波形,但我不确定如何做到这一点.非常感谢帮助/
我正在Cocoa中编写一个带有各种缩放选项的音频波形编辑器.在最宽的时候,它显示了整首歌曲的波形(视野中约1000万个样本).在最窄处,它显示了声波的像素精确表示(视图中约1千个样本).我希望能够在这些缩放级别之间平滑过渡.像Ableton Live这样的商业编辑似乎以非常便宜的方式做到这一点.
我当前的实现满足我想要的缩放范围,但效率低且不连贯.该设计很大程度上受到这篇关于使用石英绘制波形的优秀文章的启发
http://supermegaultragroovy.com/blog/2009/10/06/drawing-waveforms/
我为各种缩小级别的音频文件创建了多个CGMutablePathRef.当我完全缩小时,我使用的路径已经减少到每x千个样本一个点.当我一直放大时,我会使用包含每个样本点的路径.当我处于缩小级别之间时,我会水平缩放路径.这使它具有功能性,但仍然非常昂贵,并且在减少级别之间转换时会出现伪像.
关于我如何降低成本的一个想法是取消抗锯齿.我的编辑器中的波形是消除锯齿的,而Ableton中的波形则没有(参见下面的比较).

我没有看到关闭CGMutablePathRef的抗锯齿的方法.在Cocoa世界中,CGMutablePathRef是否有一个非抗锯齿的替代品?如果没有,有没有人知道一些OpenGL类或示例代码可能会让我更有效地绘制我的大线?
更新1-21-2014:现在有一个很棒的库可以完全满足我的需求:https://github.com/syedhali/EZAudio
我想知道是否有人对如何渲染音频文件的波形有任何建议.我想让用户设置音轨的入点和出点,我需要有一个波形,这样你就可以看到放点的位置.
是否有可用于此的库或是否需要完全自定义的解决方案?
它甚至被称为波形?也许有一个更好的词,所以我可以做更多的搜索.
TIA!
我写了一个波形渲染器,它接受一个音频文件并创建如下内容:

逻辑非常简单.我计算每个像素所需的音频样本数,读取这些样本,平均它们并根据结果值绘制一列像素.
通常情况下,我会在大约600-800像素上渲染一首完整的歌曲,因此波浪非常紧凑.不幸的是,这通常会导致视觉效果不佳,因为几乎整首歌都是以几乎相同的高度呈现的.没有变化.
有趣的是,如果你看一下SoundCloud上的波形,几乎没有一个像我的结果一样无聊.他们都有一些变化.这可能是什么诀窍?我不认为他们只是添加随机噪音.
我发现我的智能手机(android 4.2.2)无法生成方波(我需要它将音频输出用作数据传输的串行线).一开始我认为这是我的应用程序,但后来我做了很多重要的测试.这些是最新的测试.我希望你能找到这种现象的解释.
我生成了一个wav文件,里面有500Hz的方波.我在Android手机和苹果iphone上播放wav文件.我用笔记本录制并分析了信号(连接到笔记本音频输入的音频线).
然后我重复测试,连接蓝牙收发器设备和笔记本音频输入之间的音频线.智能手机通过蓝牙(一次一个)连接到蓝牙收发器设备.
注意:蓝牙收发器设备是通过蓝牙接收音频数据并使用标准音频插孔提供音频输出的设备.
这是直接连接在音频插孔上的iphone产生的信号:

这是蓝牙设备从iphone接收数据产生的信号:

这是Android设备直接与音频插孔连接产生的信号:

这是蓝牙设备从Android智能手机接收数据生成的信号:

Analisys:
- 蓝牙设备引入了信号带宽的削减(在我看来似乎可以接受).
- iphone具有非常好的模拟部分(输出非常好的方波)
- Android设备有非常糟糕的模拟部分(即使它非常适合音乐播放)
- Android手机发送到蓝牙设备的数据不正确,实际上获取的信号与来自iphone的数据获取的信号不同.
我将智能手机恢复为出厂默认设置,但问题仍未解决.我也尝试安装kitkat自定义ROM但问题仍然存在.我也尝试过使用Nexus 5(android 5)和三星S4 mini(像我这样的android 4.2.2),它们就像iphone一样.
我怀疑这个问题与DTS录音室声音有关(我试图解除它并以不同的方式设置它而没有成功).DTS似乎是我的手机和三星s4 mini之间唯一的软件差异.
问题:我可以理解我的Android设备的模拟端不如iphone,我还可以假设我的Android设备的模拟部分坏了...但我不明白为什么我没有获得当我插入蓝牙收发器设备时,结果相同.