在与Focusrite 2i2相连的AKFrequencyTracker上获得奇怪的频率读数

如何解决在与Focusrite 2i2相连的AKFrequencyTracker上获得奇怪的频率读数

我在使用AKFrequencyTracker时遇到问题,当连接到音频接口时,在弹奏连接的吉他时,我看到47kHz附近的错误高频读数。我不需要玩任何东西,我会看到高频。幅度似乎根据接口的输入来跟踪它应该是什么。

我也已经能够在麦克风输入环境中重现此内容。这是稍作修改的版本。

//: ## 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,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,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的许多信息。我已经在iMac,iOS Simulator和iPad Pro上重现了此问题。

不确定是否为此添加了任何有价值的信息,但是当仅使用模拟器或iPhone或iPad对iMac的内置麦克风进行类似测试时,它会按预期工作,并在整个时间内给出有效的频率读数。

我真的不认为这是2i2接口的问题,就像我在使用Tascam甚至Fractal AxeFx 3的其他音频接口时看到的一样。

非常感谢您的帮助。

解决方法

我对AudioKit并不是特别熟悉,但是根据您的输出,采样率为48kHz。可以正确采样的最高频率是奈奎斯特频率f / 2。您读取的任何高于24kHz的值都没有意义。

在f / 2(24kHz)以上,您将开始看到别名。这些是您之前看到的值的镜像副本。他们没有任何真正的意义。 FFT由于其计算方式而生成它们。

当您接近20kHz时,人的听力会迅速下降。如果目标是人类的听力,那么记录频率的价值就没有太大价值。这就是导致我们获得常见采样频率44.1kHz和48kHz的原因。他们的奈奎斯特频率为22.05kHz(高于大多数人的范围)和24kHz(除人类最佳范围外的所有频率)。 16kHz也很受欢迎,因为它的奈奎斯特频率(8kHz)可以舒适地保持人类语音范围和人类听觉最敏感的范围。

顺便说一句,我自己有2i2。漂亮的小盒子,它允许采样高达192kHz(96kHz奈奎斯特),这是人类听觉范围之外的,而且没有理由与IMO进行最终混音。但是我听说它作为混合的起点非常有用,这样可以避免在周期的早期丢失数据,即使您以后将采样降低到44.1。我不知道这真的是真的,还是营销,只是当您看到数字远高于48kHz时的注释。

,

弄清楚是否有其他人遇到。长话短说,界面正在报告两个信息通道,而吉他只插入一个通道,所以另一个通道正在报告假信息。将频道数更改为一个可以完全解决此问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-