// FIXME: we don't use the pitch setting in the time stretcher (not working); // instead we emulate it using our sample rate converter. static const bool kFixPitch = true; // enable pitch fix static inline uint32_t adjustSampleRate(uint32_t sampleRate, float pitch) { return kFixPitch ? (sampleRate * pitch + 0.5) : sampleRate; } static inline float adjustSpeed(float speed, float pitch) { return kFixPitch ? speed / max(pitch, AUDIO_TIMESTRETCH_PITCH_MIN_DELTA) : speed; } static inline float adjustPitch(float pitch) { return kFixPitch ? AUDIO_TIMESTRETCH_PITCH_NORMAL : pitch; }
时间: 2024-04-05 08:34:23 浏览: 26
这段代码中有三个函数,用于调整音频时间拉伸的采样率、速度和音高。其中,kFixPitch 是一个布尔值,用于控制是否启用音高调整。如果启用了,采样率会根据 pitch 值进行调整,速度也会进行相应的调整,而音高则会被固定为 AUDIO_TIMESTRETCH_PITCH_NORMAL。如果没有启用音高调整,采样率则不会进行调整,速度也不会受到影响,而音高则会根据 pitch 值进行调整。这些函数可能会在音频时间拉伸算法中使用,用于调整音频采样率、速度和音高以实现时间拉伸效果。
相关问题
fixme:file:ReplaceFileW Ignoring flags 2 02b4:fixme:tasklist:wmain stub: L"tasklist" L"/FI" L"imagename eq StarRail.exe"
这是一个来自于 Wine 应用程序的消息,通常是在 Linux 上运行 Windows 程序时出现的。这个消息表明 Wine 模拟了 Windows API 的 ReplaceFileW 函数,但是忽略了某些标志位。这个消息通常不会影响程序的运行,因此可以忽略它。如果你想防止这个消息出现,可以尝试升级 Wine 的版本或者在运行程序时添加一些参数。
sed -i "s/FIXME_${key}/${val}/g" ${file}
这是一个使用 sed 命令的命令行,其作用是在 `${file}` 文件中将所有的 `FIXME_${key}` 替换为 `${val}`,并将替换后的结果直接写回到 `${file}` 文件中,而不是输出到终端或者写入到另一个文件中。
其中,`${key}` 是脚本中定义的变量,`${file}` 是需要进行替换操作的文件名,`${val}` 是前一个命令中获取的值。
该命令中的选项 `-i` 表示直接修改文件,而不是输出到终端或者写入到另一个文件中。选项 `g` 表示全局替换,即将文件中所有匹配的字符串都进行替换,而不是只替换第一个。