掌握声音编辑:使用循环和数组操纵音频片段
背景简介
在数字音乐和声音艺术领域,编辑和操纵音频片段是创作的核心环节。本章节提供了一系列函数和方法,用于在程序中进行声音的剪辑、播放、修改和保存。我们将详细介绍这些函数,以及如何通过循环和数组来实现音频数据的精确控制。
音频文件功能和片段
pickAFile
- 允许用户选择一个文件并返回完整路径的字符串。此函数没有输入参数。
makeSound
- 读取文件并创建声音对象。它接受一个文件名作为输入,并返回声音对象。
音频对象功能和片段
play
- 播放提供的声音对象。无返回值。
getLength
- 返回声音对象中的样本数量。
getSamples
- 返回声音对象中的样本数组。
blockingPlay
- 确保在播放另一个声音前,当前声音完全播放完毕。
playAtRate
- 按给定的速率播放声音,速率大于1会使声音加速,小于1则减速。
playAtRateDur
- 按给定速率播放声音,并指定播放时长。
writeSoundTo
- 将声音对象写入文件,生成WAV文件。
样本导向函数与片段
getSampleValueAt
- 返回给定索引处样本的值。
setSampleValueAt
- 设置给定索引处样本的值。
深入声音编辑
修改声音使用循环
getSampleObjectAt
- 返回给定索引处的样本对象。
getSampleValue
- 返回样本对象的值。
setSampleValue
- 设置样本对象的值。
getSound
- 返回样本对象所属的声音。
探索声音编辑的问题
通过一系列问题,本章引导读者思考如何处理剪切、归一化、振幅、频率等概念,并通过实验来观察不同乐器在同一音符下的差异,以及不同人发出的同一元音的声音模式是否相同。
问题的深入探究
本节提供了编写特定函数的练习,例如
invertSound
函数用于将声音中的每个值取反,以及调整音量的函数来增强或减弱声音中正负值的音量。
总结与启发
通过本章的学习,我们可以看到如何通过编程来操控音频数据。编程不仅仅是构建应用程序,它还可以成为创造性的表达工具。通过这些函数和方法,我们能够实现对声音的精确控制,从而创造出独特的音频作品。这些技能在音乐制作、声音设计和音频分析等领域有着广泛的应用。
此外,本章也强调了编写注释的重要性,帮助我们理解代码的逻辑和目的。通过不断实践和探索,我们能逐渐掌握声音编程的复杂性,不断拓展我们对声音世界的理解。
进一步阅读推荐
为了进一步提升声音编辑的技能,可以参考《Computer Music: Synthesis, Composition, and Performance》一书,以及Squeak编程语言及其声音处理功能的相关书籍。这些资源将为你提供更深层次的理论知识和实践指导。
本文的结构和内容清晰地展现了声音编辑的基本技术点和实践方法。通过这些示例,我们不仅能够学习到如何操作音频文件和对象,还能够通过编程来创造和修改声音,最终实现我们的创意。

被折叠的 条评论
为什么被折叠?



