如何制作和播放程序生成的线性调频声音

2024-04-19

我的目标是创建一个“Chirper”课程。鸣叫器应该能够发出按程序生成的鸣叫声。具体想法是,鸣叫声必须按程序生成,而不是回放预先录制的声音。

在 iPhone 上实现程序生成的鸣叫声的最简单方法是什么?


正如您所说,您可以使用正弦波来做到这一点,您可以使用 sin 函数来定义它。只要您想要样本中的声音,就创建一个缓冲区,例如:

// 1 second chirp
float samples[44100];

然后选择开始频率和结束频率,您可能希望开始频率高于结束频率,例如:

float startFreq = 1400;
float endFreq = 1100;

float thisFreq;
int x;
for(x = 0; x < 44100; x++)
{
    float lerp = float(float(x) / 44100.0);

    thisFreq = (lerp * endFreq) + ((1 - lerp) * startFreq);
    samples[x] = sin(thisFreq * x);
}

无论如何,类似的事情。

如果您想要嗡嗡声或其他声音,请使用不同的波形 - 创建它们以与 sin 非常相似的方式工作,并且您可以互换使用它们。这样你就可以创建 saw() sqr() tri(),并且你可以做一些事情,比如将它们组合起来形成更复杂或更多样化的声音

=======================

Edit -

如果您想玩,您应该能够使用 OpenAL 做一些类似的事情。重要的是使用 OpenAL 或类似的 iOS API 来播放原始缓冲区。

    alGenBuffers (1, &buffer); 
    alBufferData (buffer, AL_FORMAT_MONO16, buf, size, 8000); 
    alGenSources (1, &source); 

    ALint state; 

    // attach buffer and play 
    alSourcei (source, AL_BUFFER, buffer); 
    alSourcePlay (source); 

    do 
    { 
        wait (200); 
        alGetSourcei (source, AL_SOURCE_STATE, &state); 
    } 
    while ((state == AL_PLAYING) && play); 

    alSourceStop(source); 
    alDeleteSources (1, &source); 

    delete (buf) 
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何制作和播放程序生成的线性调频声音 的相关文章

  • 对 UIImage 进行方形裁剪,导致图像拉伸

    当尝试执行 UIImage 的中心裁剪时 我得到以下结果 左侧是原始图像640 1136 右边是适合正方形的裁剪图像UIImageView at 320 320 turns to 我对比率元素进行了相当多的修改 以便它可以正确检测要修剪的量
  • 在 iOS 中录制音频并永久保存

    我制作了 2 个 iPhone 应用程序 可以录制音频并将其保存到文件中并再次播放 其中之一使用 AVAudiorecorder 和 AVAudioplayer 第二个是苹果的在这里说话 http developer apple com l
  • 更改 UITextField 辅助功能描述

    有没有办法将 UITextField 的辅助功能标签设置为 文本字段 之外的其他内容 因此 我不想将其称为 文本字段 而是将其命名为 代码验证字段 我的建议是不要试图在内置语音输出上智取系统 对于盲人用户来说 文本字段正在编辑 相当于 该项
  • 如何在 Xcode 4 中通过一个操作归档多个目标

    我有一个包含多个目标的项目 这些目标都适用于不同的 iOS 应用程序 例如 一个用于精简版的目标 另一个用于专业版的目标 我想立即构建并归档我的所有应用程序 目前 我对每个目标都有一个方案 我用它来独立归档每个应用程序 但现在我必须开始归档
  • 通过 iPhone 连接到 AT&T 无线网络的谷歌静态地图无法工作 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 最近 当我的 iPhone 连接到 AT T 无线网络时 我在检索静态地图时遇到了问题 但是 当我连接到本地 WiFi 时工作正常 上周日停止工作了几
  • 增加 NSData 的长度

    基本上 我有一个 46 个字符的 NSString 我将其转换为 NSData 我需要将字符串填充到 48 个字符 仅在 NSString 末尾添加 是行不通的 所以 我只是使用以下方法增加了 NSData 的长度 NSString str
  • 为什么 GDB 调试器不断冻结 Xcode 4?

    这真是一个奇怪的错误 我正在开发一个使用相机源的 iPhone 项目 并通过 OpenGL 着色器运行它以对其应用效果 然而 每次我在代码中简单地创建一个新的 GLfloat 时 调试器都会在启动时冻结 我无法复制和粘贴文本 因为整个 XC
  • 如何使导航栏透明并淡出,就像 iPhone 中的照片应用程序一样

    我是 iPhone 编程新手 有人可以帮我吗 我想在iPhone中开发一个类似照片应用程序的应用程序 如何使导航栏和工具栏透明并淡出 就像 iPhone 中的照片应用程序一样 感谢你 UINavigationBar继承自UIView 所以你
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • Xcode MyProjectName-Bridging-Header.h 不存在

    我想开始在我的 Objective C 项目中使用 Swift 所以我添加了一个快速类 import Foundation objc class System NSObject objc func printSome println Pri
  • 以编程方式更改 iPhone 背景

    是否可以通过代码更改 iPhone 背景 如果你写一个新的png到 User Library LockBackground png然后打电话notify post com apple language changed 设备将重新启动 并且您
  • 在两个数字之间设置 UILabel 文本动画?

    我是 iPhone 和 Mac 编程新手 之前为 Windows 开发过 我有一个问题 我如何制作动画text的财产UILabel两个数字之间 例如从5 to 80以 Ease Out 风格 是否可以与CoreAnimation 我已经在谷
  • Apple 帮助创作

    我正在跟进本指南 http developer apple com library mac documentation Carbon Conceptual ProvidingUserAssitAppleHelp authoring help
  • CocoaPods 生成无效的项目文件(未找到标头)

    我有一个带有 Podfile 的项目文件 如下所示 platform ios 7 0 def import pods pod Specta 0 1 8 pod Expecta 0 2 1 pod RestKit 0 20 3 pod Mag
  • ObjC <-> Swift 桥接和工厂方法

    我想从 Swift 使用一些 Objective C 类 由于超出了这个问题范围的原因 我的班级init方法被标记为不可用 相反 有一个工厂方法 这是我的班级的简化形式 interface MyClass NSObject instance
  • iPhone ImageView序列动画

    嘿 尝试将一个简单的 png 序列动画放入我的应用程序中 我在 IB 中放置了第一个框架 并将图形动画出口连接到它 序列中有 54 个 png 名称为 Comp 1 0000 png 到 Comp 1 00053 png 这是我的代码 vo
  • 有没有办法在 xcode 上使用 c++0x ?我想使用 gcc 4.4 或更高版本

    我想使用 gcc 4 4 或更高版本进行 iphone 开发 有人知道怎么做吗 不 你不知道 相信我 你不会 Apple 仍保留 gcc 4 2 1 因为 4 2 2 及更高版本使用 GPLv3 这意味着他们必须放弃对其平台的控制 对于 i
  • 如何将 Cocoa 应用程序移植到 iPhone-OS?

    我即将创建一个 Cocoa 应用程序 我想确保有一天我可以轻松地将它移植到 iPad 甚至 iPhone 我该如何提前计划 我知道我将不得不重做所有 NIB 并可能设计一个不同的工作流程 但是代码呢 仅仅用 UIsomething 替换每个
  • iOS 4.0 中的应用程序将终止

    iOS 4 0 中未调用 applicationWillTerminate 委托方法 当我点击 主页 按钮时 我看到 applicationWillResignActive 和 applicationDidEnterBackground 委
  • iPhone UIViewController 中的 UIPickerView

    我有一个 xib 其中添加了一个UIViewController名为德尔塔 delta 下的视图由 delta viewcontroller 控制 而不是由文件所有者控制 在三角洲视图中 我有一个UIViewPicker 我的问题是我正在编

随机推荐

  • Vim 滚动时保持光标位置

    有没有办法在滚动时使 Vim gVim 中的 cusror 位置保持在屏幕外 与许多 Windows 编辑器类似 我了解标记 并且确实使用它们 我也知道 标记 最后编辑位置 但正在寻找其他想法 我问这个问题是因为有时我想将光标保留在某个位置
  • Symfony2:--重新安装问题

    我一直在尝试为 Symfony2 安装 Buzz 我将其添加到 deps 文件中 并尝试更新我的供应商 php bin vendors update 该命令只是告诉我我已经安装了标准版本 并且我应该尝试使用 php bin vendors
  • 使用三个 JS 和 React JS 加载 GLTF 模型

    我使用 React JS 加载从 sketchfab 下载的 GLTF 文件时遇到问题 当我尝试在不使用React 使用常规index html和index js 的情况下执行此操作时 它可以工作 但是当我将代码带入React应用程序时 它
  • 使用 Ember.js 为每个模型添加额外的 url 参数

    我有两个模型 App Providers DS Model extend name DS attr string description DS attr string logo DS attr string products DS hasM
  • Get-AzureWebsite:找不到请求的值“动态”

    我们有一组使用 Azure powershell cmdlet 的自定义 powershell 模块 它们已经正常工作一年多了 我刚刚设置了一台新计算机 每当我尝试运行 Get AzureWebsite 时 我都会收到以下错误 PS C W
  • 使用 Hadoop MapReduce 的计算语言学项目构想

    我需要做一个关于计算语言学课程的项目 是否有任何有趣的 语言 问题 其数据密集程度足以使用 Hadoop MapReduce 来解决 解决方案或算法应尝试分析并提供 语言 领域的一些见解 但是它应该适用于大型数据集 以便我可以使用 hado
  • 如何在 Xamarin 上仅查看我的解决方案的调试输出?

    我正在使用 XF pcl 制作应用程序 Mac 上的 Xamarin 工作室 我正在使用 Debug WriteLine 进行调试 我想避免看到其他 nuget 的控制台日志 我可以看到控制台以蓝色显示我的日志 如何只看到蓝色日志 Than
  • 无法在“节点”上执行“removeChild”

    我在用着http alexgorbatchev com SyntaxHighlighter http alexgorbatchev com SyntaxHighlighter 突出显示我网站上的代码 但有时在我的日志中我会收到如下 Java
  • 如何获取相机相对于其方向的 SCNVector3 位置 ARKit Swift

    我试图在相机前面附加一个对象 但问题是它始终与初始相机方向相关 我如何调整 获取SCNVector3即使相机的方向是向上还是向下 将物体放在前面的位置 我现在就是这样做的 let ballShape SCNSphere radius 0 0
  • 如何使用 Powershell 将 XML 正确导出到文件

    使用以下命令导入任何有效的 XML 文件作为源 XML Var Get Content Path PathToAnyValidXML我无法正确导出其内容 Using Set Content SomePath Var 文件以 System X
  • 如何使 JButton 在同一目录中运行可执行文件?

    好的 我正在尝试让我的 JButton 在不同的目录中运行可执行文件 这是我以前编写的控制台应用程序 我希望此按钮运行可执行文件 我对 Java 编程语言相当陌生 但这是我的代码 import java util import javax
  • ASP.NET MVC 4 Visual Studio 2010 项目模板不存在

    我已经下载并安装了在 VS2010 中使用 MVC 4 的所有先决条件 VS2010 SP1 更新 VS2010 的 ASP NET MVC 4 VS2010 的 SSDT 和 LocalDB 当我去VS2010中创建一个新网站时 应该有一
  • 使用 Karma + Jasmine 测试 AngularJS 指令的 CSS 问题

    我正在使用 Karma Jasmine 来测试我的 AngularJS 指令 我编写了 300 多个测试 我非常高兴 直到我发现一个问题将我带到这里 因为我陷入了困境 一些测试失败了 因为它们需要一个CSS 应用于某些元素 我的指令中的一段
  • 0 在 switch 情况下?

    抱歉 我的问题可能很愚蠢 但是当我有一些值为 0 零 的 int 变量时 我遇到了一个巨大的问题 switch starost vozila case 0 switch podaci tip motora case motor1 eko t
  • 在 ggplot2 中创建填充有标志(或图像)的条形图[重复]

    这个问题在这里已经有答案了 我正在使用创建条形图ggplot2其中每个条代表一个国家 我希望每个条形的填充都是该国的国旗 以便于识别 这是一个简单的例子 library ggplot2 DF lt data frame country c
  • 在 ios 的 ionic/cordova 中使用视频作为背景

    我需要在 IOS 和 ANDROID 平台上同时在不同的 div 中播放 6 个视频作为背景 我正在开发一个离子应用程序 我找到了一个solution https stackoverflow com a 31060664 1678851它与
  • Selenium Click 不起作用 - Chrome 驱动程序 - 版本 73.0.3683.68

    我刚刚将我的 Chrome 驱动程序更新到最新版本 73 0 3683 68 自从我的 点击 功能无法正常工作 它有时会工作 但不是每次都工作 Chrome版本 版本73 0 3683 75 官方版本 64位 我用 C 编码 最大的问题是
  • 仅允许在 blazor 中上传特定文件类型

    我在用BlazorInputFile用于在 Blazor 中上传文件的包 Problem 这段代码不起作用
  • Fortran:向文件添加列(即跳过不同数量的水平空格)

    我是 Fortran f90 的初学者 一些看似简单的问题结果却导致严重头痛 感谢您帮助我解决这个问题 我的代码运行一个循环 处理数据并将它们写入文件 我希望将这些数据写入同一文件的列中 直到循环完成 OPEN unit 11 file f
  • 如何制作和播放程序生成的线性调频声音

    我的目标是创建一个 Chirper 课程 鸣叫器应该能够发出按程序生成的鸣叫声 具体想法是 鸣叫声必须按程序生成 而不是回放预先录制的声音 在 iPhone 上实现程序生成的鸣叫声的最简单方法是什么 正如您所说 您可以使用正弦波来做到这一点