- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 AKFrequencyTracker 时遇到一个问题,当连接到音频接口(interface)时,我在弹奏连接的吉他时看到 47kHz 左右的错误高频读数。我不需要演奏任何东西,我可以看到高频。幅度似乎根据来自接口(interface)的输入跟踪到它应该是什么。
我也能够在麦克风输入操场上重现这一点。这是稍作修改的版本。
//: ## Tracking Microphone Input
//:
import AudioKitPlaygrounds
import AudioKit
// 0 is mic
// 1 is focusrite
let selectedInput = 1
if let inputs = AudioKit.inputDevices {
print("\(inputs.count) inputs found")
for input in inputs {
print("\(input.name): \(input.description)")
}
print("Chosen Input: \(inputs[selectedInput].name): \(inputs[selectedInput].description)")
try AudioKit.setInputDevice(inputs[selectedInput])
}
print("Sample Rate Before: \(AKSettings.sampleRate)")
let sampleRate = AudioKit.engine.inputNode.inputFormat(forBus: selectedInput).sampleRate
print("Changing Sample Rate to \(sampleRate)")
AKSettings.sampleRate = sampleRate
let mic = AKMicrophone()
let micCopy1 = AKBooster(mic)
let micCopy2 = AKBooster(mic)
let micCopy3 = AKBooster(mic)
let tracker = AKFrequencyTracker(micCopy2, hopSize: 4096, peakCount: 20)
let silence = AKBooster(tracker, gain: 0)
//: The frequency tracker passes its input to the output,
//: so we can insert into the signal chain at the bottom
AudioKit.output = silence
try AudioKit.start()
//: User Interface
import AudioKitUI
class LiveView: AKLiveViewController {
var trackedAmplitudeSlider = AKSlider(property: "Tracked Amplitude", range: 0 ... 0.8) { _ in
// Do nothing, just for display
}
var trackedFrequencySlider = AKSlider(property: "Tracked Frequency",
range: 0 ... 2_400,
format: "%0.3f Hz"
) { _ in
// Do nothing, just for display
}
override func viewDidLoad() {
addTitle("Tracking Microphone Input")
addView(trackedAmplitudeSlider)
addView(trackedFrequencySlider)
AKPlaygroundLoop(every: 0.1) {
self.trackedAmplitudeSlider.value = tracker.amplitude
self.trackedFrequencySlider.value = tracker.frequency
if tracker.amplitude > 0.01 {
print("Frequency: \(tracker.frequency)\tAmplitude: \(tracker.amplitude)")
}
}
let fftPlot = AKNodeFFTPlot(micCopy1, frame: CGRect(x: 0, y: 0, width: 500, height: 200))
fftPlot.shouldFill = true
fftPlot.shouldMirror = false
fftPlot.shouldCenterYAxis = false
fftPlot.color = AKColor.purple
fftPlot.gain = 100
addView(fftPlot)
let rollingPlot = AKNodeOutputPlot(micCopy2, frame: CGRect(x: 0, y: 0, width: 440, height: 200))
rollingPlot.plotType = .rolling
rollingPlot.shouldFill = true
rollingPlot.shouldMirror = true
rollingPlot.color = AKColor.red
rollingPlot.gain = 2
addView(rollingPlot)
let plot = AKNodeOutputPlot(micCopy3, frame: CGRect(x: 0, y: 0, width: 440, height: 200))
plot.plotType = .buffer
plot.shouldFill = true
plot.shouldMirror = true
plot.color = AKColor.blue
plot.gain = 2
addView(plot)
}
}
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
PlaygroundPage.current.liveView = LiveView()
播放单个 A 音符的输出如下所示。
2 inputs found
Built-in Microphone: <Device: Built-in Microphone (45)>
Scarlett 2i2 USB: <Device: Scarlett 2i2 USB (41)>
Chosen Input: Scarlett 2i2 USB: <Device: Scarlett 2i2 USB (41)>
Sample Rate Before: 44100.0
Changing Sample Rate to 48000.0
Frequency: 0.0 Amplitude: 0.0
Frequency: 0.0 Amplitude: 0.0
Frequency: 200.0 Amplitude: 0.0010132051538676023
Frequency: 200.0 Amplitude: 0.0009377096430398524
Frequency: 23873.810546875 Amplitude: 0.0011335075832903385
Frequency: 23960.720703125 Amplitude: 0.0020712288096547127
Frequency: 11976.5791015625 Amplitude: 0.0018204051302745938
Frequency: 23956.021484375 Amplitude: 0.001121549867093563
Frequency: 23812.46484375 Amplitude: 0.0011597403790801764
Frequency: 23812.46484375 Amplitude: 0.0010917051695287228
Frequency: 23812.46484375 Amplitude: 0.0010660385014489293
Frequency: 23812.46484375 Amplitude: 0.001134994556196034
Frequency: 23812.46484375 Amplitude: 0.001019841991364956
Frequency: 23812.46484375 Amplitude: 0.0009903700556606054
Frequency: 23812.46484375 Amplitude: 0.0009054119000211358
Frequency: 23812.46484375 Amplitude: 0.0009549797978252172
Frequency: 23812.46484375 Amplitude: 0.0009998299647122622
Frequency: 23812.46484375 Amplitude: 0.0009498257422819734
Frequency: 23812.46484375 Amplitude: 0.0009073034743778408
Frequency: 23812.46484375 Amplitude: 0.0009004760067909956
Frequency: 23812.46484375 Amplitude: 0.0009699893998913467
Frequency: 23812.46484375 Amplitude: 0.0010407709050923586
Frequency: 23812.46484375 Amplitude: 0.0010262386640533805
Frequency: 23812.46484375 Amplitude: 0.0009718178189359605
Frequency: 23812.46484375 Amplitude: 0.009978151880204678
Frequency: 47177.0234375 Amplitude: 0.003072592196986079
Frequency: 47127.61328125 Amplitude: 0.0013660960830748081
Frequency: 47735.60546875 Amplitude: 0.001907210098579526
Frequency: 46763.9609375 Amplitude: 0.0021022947039455175
Frequency: 47023.5390625 Amplitude: 0.0015598429599776864
Frequency: 47597.9140625 Amplitude: 0.0015960222808644176
Frequency: 47480.890625 Amplitude: 0.0016460377955809236
Frequency: 47610.85546875 Amplitude: 0.002251675818115473
Frequency: 23986.009765625 Amplitude: 0.0037994058802723885
Frequency: 47241.359375 Amplitude: 0.0015401218552142382
Frequency: 81.2586898803711 Amplitude: 0.0019702680874615908
Frequency: 47823.76171875 Amplitude: 0.0017958006355911493
Frequency: 47340.4140625 Amplitude: 0.2594001889228821
Frequency: 46485.42578125 Amplitude: 0.2443418949842453
Frequency: 439.1202697753906 Amplitude: 0.1977834701538086
Frequency: 438.7035827636719 Amplitude: 0.178997203707695
Frequency: 438.89056396484375 Amplitude: 0.14854535460472107
Frequency: 439.0594177246094 Amplitude: 0.13751377165317535
Frequency: 438.93438720703125 Amplitude: 0.11730749160051346
Frequency: 439.00408935546875 Amplitude: 0.1075168028473854
Frequency: 439.0429382324219 Amplitude: 0.09269371628761292
Frequency: 438.9091796875 Amplitude: 0.08598381280899048
Frequency: 439.02099609375 Amplitude: 0.08173725008964539
Frequency: 438.84759521484375 Amplitude: 0.07284277677536011
Frequency: 439.15087890625 Amplitude: 0.06797594577074051
Frequency: 438.9859619140625 Amplitude: 0.06045695021748543
Frequency: 439.0673828125 Amplitude: 0.05586790665984154
Frequency: 438.60552978515625 Amplitude: 0.051378797739744186
Frequency: 438.995361328125 Amplitude: 0.048340748995542526
Frequency: 438.2513732910156 Amplitude: 0.046707604080438614
Frequency: 438.7973327636719 Amplitude: 0.04262331500649452
Frequency: 46400.02734375 Amplitude: 0.03838739171624184
Frequency: 438.7486572265625 Amplitude: 0.03510402515530586
Frequency: 46454.44140625 Amplitude: 0.033189449459314346
Frequency: 438.2769470214844 Amplitude: 0.031524695456027985
Frequency: 438.5264587402344 Amplitude: 0.02920457161962986
Frequency: 46384.69140625 Amplitude: 0.026590649038553238
Frequency: 438.8437805175781 Amplitude: 0.022203370928764343
Frequency: 46476.07421875 Amplitude: 0.021149421110749245
Frequency: 438.9068603515625 Amplitude: 0.01986468769609928
Frequency: 46408.11328125 Amplitude: 0.011579773388803005
Frequency: 47087.5 Amplitude: 0.003355375723913312
Frequency: 438.4395751953125 Amplitude: 0.0027760120574384928
Frequency: 47169.25 Amplitude: 0.0029691671952605247
Frequency: 47137.53515625 Amplitude: 0.0037814872339367867
Frequency: 47239.609375 Amplitude: 0.0036421294789761305
Frequency: 47280.1875 Amplitude: 0.00348213710822165
Frequency: 47243.96484375 Amplitude: 0.00349710276350379
Frequency: 47200.53515625 Amplitude: 0.003506213193759322
Frequency: 47199.453125 Amplitude: 0.0034976035822182894
Frequency: 47144.86328125 Amplitude: 0.0033620402682572603
Frequency: 47194.66796875 Amplitude: 0.003223164239898324
Frequency: 47233.7734375 Amplitude: 0.0029081928078085184
Frequency: 47167.11328125 Amplitude: 0.002717009512707591
Frequency: 47226.33984375 Amplitude: 0.0026167919859290123
Frequency: 47141.22265625 Amplitude: 0.00268756877630949
Frequency: 47199.5546875 Amplitude: 0.0027781547978520393
Frequency: 47346.63671875 Amplitude: 0.0027468751650303602
Frequency: 47168.578125 Amplitude: 0.0026313727721571922
Frequency: 47183.4921875 Amplitude: 0.0024406039156019688
Frequency: 47240.8984375 Amplitude: 0.0022249151952564716
Frequency: 47455.91796875 Amplitude: 0.0021174440626055002
Frequency: 47284.98046875 Amplitude: 0.002093059942126274
Frequency: 47233.26953125 Amplitude: 0.002134564332664013
Frequency: 47414.72265625 Amplitude: 0.0021047494374215603
Frequency: 47152.109375 Amplitude: 0.002083567436784506
Frequency: 47366.0703125 Amplitude: 0.002048497786745429
您可以看到它以非常小的幅度的“噪声”开始,然后它检测到适当的频率 ~440 Hz,并具有适当的幅度,但也有很多 ~47 kHz 的“噪声”读数。
最佳答案
我对 AudioKit 不是特别熟悉,但根据您的输出,采样率为 48kHz。您可以正确采样的最高频率是奈奎斯特频率 f/2。您读取的任何高于 24kHz 的值都没有意义。
在 f/2 (24kHz) 以上,您将开始看到别名。这些是您之前看到的值的镜像副本。它们没有任何实际意义。 FFT 生成它们是因为它的计算方式。
当您接近 20kHz 时,人类的听力会迅速下降。如果目标是人类听觉,那么记录高于该频率的频率就没有多大值(value)。这就是我们使用常见采样频率 44.1kHz 和 48kHz 的原因。它们的奈奎斯特频率为 22.05kHz(高于大多数人的范围)和 24kHz(除了人类最好的范围之外)。 16kHz 也很受欢迎,因为它的奈奎斯特频率 (8kHz) 舒适地保持了人类语音的范围和人类听觉最敏感的范围。
顺便说一句,我自己有一个 2i2。不错的小盒子,它允许采样高达 192kHz(96kHz 奈奎斯特),这超出了人类的听觉范围,没有理由与 IMO 进行最终混音。但我听说它可以作为混合的起点,以避免在周期早期丢失数据,即使您稍后将采样率降低到 44.1。我不知道这是真的还是只是营销,但只是当您看到远高于 48kHz 的数字时的注释。
关于ios - 在连接到 Focusrite 2i2 的 AKFrequencyTracker 上获得奇怪的频率读数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63541819/
我正在为我的雇主编写脚本,以从他们自己的站点获取某些数据。出于一长串原因,我需要从网站上获取数据,如图所示。我发现,其中一些数据是通过 js 调用检索的... 回想起来,我应该选择 Mechanize
我正在使用 python 和 cryptography.io 来签署和验证消息。我可以通过以下方式获得签名的 DER 编码字节表示: cryptography_priv_key.sign(messag
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
是否可以区分 ECDF?以下面得到的为例。 set.seed(1) a <- sort(rnorm(100)) b <- ecdf(a) plot(b) 我想对 b 求导以获得它的概率密度函数 (PD
我找到了如何从 navigator.mimeTypes 获取 mimetypes: function GetMimeTypes() { var message = ""; var mi
我在表单中使用单选按钮来隐藏/显示联系人表单中的成员 ID 字段。问题是,当 javascript 更改 html 中包含的隐藏 id 字段(该字段设置为“无”值)时,该字段将不再通过 post 可用
我正在做单元测试。我必须测试所有可能的if..else情况。但是在此if语句中: int32_t i32Res = snprintf(buffer, len, "The%d_String_%d", 0
我有一个 Facebook 应用程序,我想从中获取“喜欢”的总数。我想知道这是否可能。 其中 ID 是应用程序的 ID,ACCESS_TOKEN 是我尝试过的应用程序的当前访问 token : gra
如果我有多个计算实例尝试同时获取同一个 blob 的租约,则似乎经常会成功。我的印象是,一旦租约发出(并因此被客户获得),就不可能同时发出另一个租约? 我希望情况确实如此,我一直在 Azure 中使用
这是我的索引 POST /blogs/1 { "name" : "learn java", "popularity" : 100 } POST /blogs/2 { "name" : "l
我正在将 Symfony2 与 FOSUserBundle 一起使用。我需要为用户获得最高角色。 role_hierarchy: ROLE_CONTRIBUTOR: ROLE_USER
我正在向服务器发送基于 REST 的请求。我希望尽快得到答复,并希望了解可以进行的各种优化。 一种方法当然是在线程中并行发送这些请求。还有哪些其他选项可用于优化此功能? 在服务器上,可以添加哪些配置?
这可能是某种重复的问题,但我似乎找不到合适的解决方案。我正在使用 git4idea.history.GitHistoryUtils.history() 获取提交列表。如果 checkout 其中一个较
我正在做一个程序,可以输入每周的工资和那一周的总工作时间。它应该以小时工资率显示答案。但是我无法显示正确的“centavos/2 decimal places”公式并且它不想使用 float % fl
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我已经尝试了 mContext.getMainLooper() 和 Looper.getMainLooper()。两者都返回相同的结果,但我想知道哪种方法正确? 我还从 Android 开发人员链接中
我有一个“affiliates”表,其中包含“user”和“referredBy”列。 给定一个用户,我希望获得该用户推荐的所有“n 级”玩家。对于 n=1,我们只关心您直接推荐的玩家数量: SELE
我在 PostgreSQL 9.5 数据库中有两个表: project - id - name task - id - project_id - name - updated_
请帮助我怎样才能得到我预期的结果,在此先感谢并抱歉我的英语不好。 PHP: $dog = implode(',', $data['dogbreed']); $query .= "AND `do
我有 let impulse = CGVectorMake(CGFloat(Constants.impulse), 0) 如何在不创建另一个 CGVector 的情况下得到它的负值? 我正在考虑在 C
我是一名优秀的程序员,十分优秀!