当前课程知识点:计算机音乐 > 第一章 基本概念 > 1.3计算机音乐课程资源 > 计算机音乐课程资源
同学们大家好
欢迎回到计算机音乐的课堂
这节课我们将会对后续课程中
所使用的课程资源做简要的介绍
首先我们使用的课本是Meinard Muller的
Fundamentals of Music Processing
音乐处理导论
这本课本是斯坦福
哥伦比亚大学等等的
计算机音乐暑期公开课指定课本
我们可以在亚马逊上买到这本课本的原版
当然还有一种方式是在它官网上买到电子版本
尽管在我们课程当中
课本并不是必须的
但我还是强烈建议大家拥有一本课本
这样的话在课下就可以进行扩展阅读
有了这本课本之后
我们可以去在这本课本的官网上去下载
这本课本的代码以及演示
接下来
我们会介绍课程中所使用的软件和编程工具
首先我们的课程需要频繁地进行录音
以及进行简单的剪辑和处理
因此我们会使用一款叫做audacity的音频软件
这款软件是跨平台的
目前它可以运行在
Windows mac还有linux上面
它也是免费的 符合开源标准
是由一帮志愿者在维护
至今还是在以较高的频率更新
尽管它的功能不如商业的音频软件强大
但对于我们的课程来说
只需进行简单的录音和剪辑
或者显示简单的图形信息
重要的处理我们都会自己编程完成
所以Audacity是完全足够了
下面我们就来安装它
首先我们打开浏览器
用Google来搜索audacity
这样的话
我们就可以搜到audacity的官方网址
当然我们也可以用百度去搜索
但是如果百度搜到的第一条词条
不是官方网址的话
请同学们认真的去甄别
我们就可以通过这个官方网址去找到
audacity的下载地址
如前面所说
Audacity是开源的软件
所以它可以在Windows
可以在mac
在linux下面去使用
同学们根据自己的平台去下载相应的版本
就可以了
我们点下载之后
我们会看到有不同平台的版本
因为我们现在演示的是Windows版本
所以我们就去下载
Windows版本的audacity
对于Windows版本来说
最方便的安装方法是去下载它的安装器
Installer
我们就需要去下载它的最新版本就可以了
点击之后它就会自动的进行下载
整个软件比较小只有19M
下载完之后我们就可以点击运行它了
点击已经下载好的安装文件
会有一个安装程序引导你
一步一步的进行安装
比如说我们可以进行一些简单的选择
剩下的步骤只要点下一步就可以了
安装路径我们也是安装在默认的路径
其它的部分我们也可以
按照默认的方式进行安装
经过比较短的时间软件就安装完了
安装完之后我们就可以来打开audacity
我们可以选择不同样式的界面
因为我们现在演示的界面
是深色主题的
如果你不喜欢这种主题
可以在编辑
偏好设置里面的界面这个选项框里面
来修改这个主题
在我手中是件来自中国云南的乐器
巴乌
接下来我们将使用audacity
来录制巴乌的演奏
我们在audacity里面先选择单声道
并且选择合适的录音设备
然后我们点击录音按钮
这样的话呢
我们就获得刚才这段音乐的波形
audacity的软件操作十分友好
它跟一般的软件有很多相似之处
比如说有简单的用户的交互
它在做剪辑的时候
默认是选择的形式
你可以在上面的按钮上面
去选择这个选择工具
在选择工具下面
我们可以去选择不同的声音片段
比如说后面我们的空白片段是不要的
我们可以把它全部选上
然后
按键盘上的delete键
来进行删除
比如说前面的空白部分
我们也可以进行相应的操作
从时域的波形里面
我们基本上就能看出
刚才这段音乐的强度的整体变化
那么除了通过波形的形式之外
我们还可以去切换一下这个视图
比如说切换到频谱图
这样的话我们就可以
从频谱上去观察刚才的这段声音
那么如果进行一个放大
我们可以看到主要的频谱图集中在
2000HZ以下
因此我们可以在偏好设置里面
把频谱图的范围进行修改
那么在这个轨道频谱图里面
我们可以把最高的频率
比如说设置成4000
这样的话
我们可以更清楚地看到
整个频谱的一个分布
并且从最深色的地方可以看出
声音的音高的走向
这就是我们在后续的课程中
常使用到两种观点中
是波形的观点
那么是频谱的观点
除此之外我们还可以在效果里面
使用一些基本的处理效果
比如说
反向
比如说做回声
比如说进行去噪等等
甚至我们还可以去下载一些第三方的处理模块
来进行一些更复杂的功能的处理
但是我们课上主要的处理
都会使用程序自己来实现
所以我们这一块用的会比较少
之后我们可以通过文件
导出音频的形式
把刚才录制到的这段音频
导出成wav mp3等等的格式
这就是有关audacity的下载和安装
以及简单的使用
接下来我们要介绍的音频软件是
sonic visualizer
是一款更面向研究者的软件
特别是用于音频的分析和可视化
Sonic visualizer是由
英国玛丽女王大学开发的
同样是免费 开源 跨平台的音频软件
尽管它的
一部分功能
是跟audacity是 重叠的
但是 它在可视化方面的特性可以与audacity
形成很好的互补
我非常推荐大家使用它
下面我们就来下载和安装sonic visualizer
接下来我们就来下载sonic visualizer
那我们可以同样在Google上
来找到这个软件的官网地址
并且打开这个官网
它同样是跨平台的一款软件
所以在下载时我们点进这个下载链接
它会有linux mac跟Windows 版本
注意这里面Windows分为64位和32位版本
我比较建议大家无论是64位的
还是32位系统呢
都去下载32位的版本
因为有很多插件它只能在32位的版本去工作
那么我们来下载这个32位的版本
它同样是比较小的一个软件
我们来等待它下载完成
在完成之后我们同样是点击安装的程序
它就会引导你一步一步的进行安装
因为我们已经装过这款软件
所以这里会显示
Change repair remove
如果你是第一次安装的话
你只需要根据提示
选择默认目录进行安装就可以了
打开sonic visualizer之后我们可以看到
这是一个非常朴素的一个界面
当然它的功能也是十分齐备的
比如说简单的录音和剪辑功能也都是有的
我们主要是来看一些它的可视化的一些功能
我们主要是来打开刚才录制好的这段音频
同样我们可以看到时域的波形
我们可以在Layer这个选项卡里面找到
增加图层的办法
比如说我们增加一个spectropram
视频图这样的一个图层
这样的话我们会看到
在sonic visualizer里面的视频图
会显示的更加的详细
甚至我们可以把鼠标移到视频图上面
我们可以看到在右上方会显示
某一个点它所在的频率
并且它的强度都是可以进行显示的
在sonic visualizer的官网上面
它提供了非常多的有用的插件
我们在官网上只要点进
VAMP PLUGINS
就能够进入插件的下载的页面
它会有一个简单的说明
告诉你这个插件是怎样的一种原理
我们点下面的这个链接
就可以去到下载的界面
在下面的列表下面有很多的插件
我们尝试着下载其中的一些
比如说
我们找到
Aubio下面的一些插件
Aubio的插件非常常用
因为它是由Aubio
这个开源的工程来支持的
那么我们可以点进这个下载的界面
来下载这个插件
那么我们只要去点击这个
vamp aubio plugins
就能进行下载了
那么具体的安装方法
我们需要参与sonic visualizer
官网上的一个指示
它会告诉你
如果是windows32位系统
你需要把下载的文件放到
Progren Files
vamp plugins这个目录下面
但是因为我们是64位的系统
所以的我们需要放到
Progren Files
X86下面的
Progren Files目录下面
对于其它系统
需要按照指示放到相应的地方
那么下载好之后
那么下载好之后
我们就可以来使用这些插件了
比如说我们就来使用刚才下载到的
Aubio
我们通过这个Plugin Name
Aubio下面的一些插件
比如说我们选择这个Pitch Detector
音高跟踪的这个插件
使用默认的设置
这样的话我们可以看到
系统能自动帮你计算出来一条音高的曲线
然后我们可以设置一下纵向的滚轮
我们可以在上一个图层里面
选择一下这个纵向的滚轮
把它稍微的放大一点
并且拉到最下面
然后再切回这个图层
我们就可以看到这个音高的
曲线的一个变化
通过这种方式我们就可以
对这个音高进行一定程度的可视化
接下来我们要安装的就是这门课程
主要编程语言Python
Python是非常高级别的脚本解释语言
我们在课程当中会很高频率的使用它
没有任何编程基础的同学请不用担心
我们不是专门的编程语言课
因此不会涉及到太复杂的编程技术
但是我们依然推荐同学们在学习的过程中
手上应该有一本到两本的
基础的python语言手册
以便随时可以翻阅
接下来我们就来下载以及安装python
接下来我们就来安装python
我们可以直接在Google里面
去搜索python
进入到python的官网去下载相应的版本
Python有两个主要版本
一个是python2
一个是python3
在我们课程中主要用的是python3
所以需要去下载最新的版本
比如说3.6.5
但只要是python3版本
应该都是通用的
下载完python3之后
我们还需要一些更多的第三方的模块
所以这里面我比较推荐的是
并不是去官网直接下载python
而是去下载python的发行版本
比如说去下载anaconda
这样的python的发行版本
我们去忽略掉其它的一些结果
我们直接进入到anaconda的主页
进入anaconda的主页之后
我们应该是可以找到
Download anaconda这样的一个按钮
Anaconda是一个python的发行版本
它包含了我们在课程
里面常用的一些模块
所以我们比较推荐下载它
它还是开源免费的
而且是跨平台的
这时候我们先下载windows的版本
而且要下载3.6的版本
点击下载它就会自动的进行下载
因为它是个发行版本所以它的
容量占用就会比较多一点
会占用600多M
让我们等待下载并且安装
在安装完之后我们就需要使用编译器
来执行python的一些程序了
在anaconda里面提供了若干个编译器
我们在课程里面会使用
一个非常古老的编译器
就是在idlelib里面的Idle.bit
你可以像我一样创建一个快捷方式
放在桌面上
这样就不用每次都进到
比较深层的目录去打开它了
打开idle我们会看到一个
非常简洁明了的一个界面
在这个页面里面我们就可以去
运行一些简单的python的指令
比如说我们可以去定义简单的变量
在python里面
我们并不需要声明变量形式就可以
对一些变量进行赋值
这样我们就可以看到
这个变量其实已经是放在内存里面了
比如说我们再定义一个变量
之后就可以对这个变量进行一个简单的
四则运算
除此之外我们可以用同样的方式来
定义在python下面的数据结构
比如说列表的这种形式
列表的形式对应很多其它语言
就是数组的一种形式
Python本身自带的列表的形式
它的功能是比较弱的
而一般来说呢我们会使用
这样的第三方模块
要使用第三方模块
我们就需要去下载第三方模块
一般我们都会使用type这样的指令去下载
我们在搜索框中去搜索cmd
这个命名行提示符
打开之后我们就可以在
命名行里面输入pip这个指令了
在python里面
pip是一个很常用的第三方
模块的安装的指令
我们输pip install nump
这样就可以去安装
Nump这样一个第三方的模块了
因为我已经装过了
而且安了command
下面本身就是自带
这样nump的模块了
所以这里面就不需要安装
除此之外我们还会
很常用的使用到scipy这个模块
同样这个模块是在包含在anaconda里面的
所以不需要去额外的下载
一般来说要去安装numpy或者scipy
其实在window下面是不太容易的
因此我们直接推荐大家
直接安装anaconda3
它已经内置的这些模块
有了numpy 第三方模块之后
我们就可以去
把这个第三方模块
也加到我们程序里面
使用import numpy
来加到我们的程序里面
这样的话我们就可以定义
Numpy下面的数组的形式了
比如说我们让a等于
Numpy.array
然后我们把这样的数组
作为一个输入
这样的话a就是一个数组形式的
数据格式
那么它就具有很多很有用的功能
比如说它可以去乘一些常数
做这个相乘之后
相当于对里面的每个元素进行相乘
比如说它可以去加一个常数
那么相当于对里面的每个元素进行相加
甚至我们可以实现
矩阵的的一些乘法的等等一些操作
在后学课程我们都可以接触到
我们用这样的命名行的形式
来进行程序输入的话
一旦中间输错了几步
就需要从头开始
一般来说我们会通过
New file创建一个新的
Python文件
在这里面我们可以进行程序的编辑
并且运行它
接下来我们就来演示一下打开我们刚才
录制好的巴乌的音频
首先我们要把这个文件保存成
跟刚才的巴乌音频
在同样的一个目录下面
比如说我们起名叫做readaudio
并且进行保存
保存好之后我们就可以读取这个音频了
首先我们要去把Numpy
进行import
并且给它起名叫做NP
并且我们把scipy
也进行import
这时我们需要使用from scipy import
from scipy.io.wavfile
这是专门处理音频输入输出的模块
取improt read write两个函数
最后因为我们需要画图
所以我们需要
import matplotlib pyplot as plt
也是需要去用pip进行安装的
它已经包括在anaconda里面
所以我们就不去再做演示了
有了这三个模块以后
我们就可以读取音频
这时候我们需要指定一个采样率
并且把音频读入到X里面
关于采样率的定义我们在后面的
时域的音频处理里面
会详细的来说明
去读取这个音频叫做bawu.wav
读取完之后我们就可以
把这个音频显示出来了
我们使用plt.piotx
并且plt.show
这样的话就可以显示这段音频
它会打开一个图形界面
并且在这个图形界面里面
可以进行通过
放大缩小的左右键进行放大缩小
放到最大你可以看到它的最细的波形
除此之外
你在程序里面就可以把X
当做一个numpy下面的列表来看待
比如说我们输X
它会告诉你这是一个列表
你就可以对
这个列表进行各种各样的处理
有关Python的使用
我们在后续的课程里面
还会陆续的来介绍
这里面我们只是来介绍一个简单的安装
和使用
最后我们要安装的是puredata
你可以认为它是一个脚本语言
也可以认为它是一个音频软件
跟传统的编程语言不同
在puredata下面的所有程序代码
都是以图形化的形式来展示的
Puredata是由另一个款著名的软件
max/msp的发明者
Miller Puckette发明的
它可以看作是max的开源
免费 跨平台的版本
目前在计算机音乐制作方面
有很大的受众
我们在课程当中使用它的原因
是因为在puredata里面
我们可以更直观地
看到音频处理的整体的流程
让我们赶紧来下载安装puredata吧
最后我们演示puredata的安装
同样我们在Google上面搜索puredata
之后就可以搜索到puredata的官网
Puredata同样也是
开源 免费 跨平台的程序
同样它是需要一些第三方模块的支持的
所以这里面我们也是推荐大家
不是去下载原始的puredata的版本
而是去下载一个扩展文本
叫做Pd L2ork这个版本
也叫作Purr Data这个版本
我们点进去之后
会有一个下载的界面
那么我们只需要根据它的提示
要去它的github的页面去下载
我们直接去到它的github的页面
会看到有很多发行的版本
这里面因为我们是Window版本
所以我们直接去下载这个
Pd L2ork这个版本就可以了
下载好了它是一个打包的压缩文件
我们也是根据它的提示进行安装就可以了
安装好之后我们会看到一个命令行的界面
它会自动的加载内置的所有的模块
我们需要在使用之前做一些简单的设置
比如说在Edit preferences里面
去设置一下你使用的输入和输出设备
那么因为我们使用的输入输出设备
都是steinberg的声卡
所以我们就按照默认设置
如果你发现出不来声音
那么你需要调整一下
输入和输出的设备
选择好这些设备之后
我们可以在Media里面去
进行Test Audio and Midi
那么这是一个最简单的puredata的程序
我们通过选择播放声音的大小
可以听到有正弦波的生成
那么这是60db的正弦波
除此之外
麦克风在工作的时候
你会看到在这边会有一个数值的显示
这是最重要的两个参数
确定它们没问题之后我们就可以去
创建一个新的程序
我们看到puredata非常的朴素
在程序界面里面一片空白什么都没有
所有的元素都需要通过put来放上去的
比如说我们往上面放一个Object
比如说我们要放一个正弦波的Object
正弦波的模块在puredata里面
叫做osc
这样的模块它会产生一个正弦波
并且我们如果加上一个弯弯这个符号的话
它产生的正弦波就会以信号的形式
进行输出
我们产生的是440hz的一个正弦波
这就是一个程序的基本的模块
Object这样的模块
它其实如果我们在media里面
选择Audio on
它其实已经在工作了
不断的产生正弦波
我们可以把正弦波进行输出
通过加入另一个模块
叫做dac这样的模块
Dac模块是实现数字音频到模拟音频的转换
我们先不用管这些概念
在puredata里面非常直观的一点是
一个模块的信号可以通过
连线的方式传递到另外一个模块
比如说我们想把这个正弦波信号
传递到输出的模块
这是左声道 这是右声道
打开这个Audio之后
我们就能听到正弦波的声音
后续的课程里面
我们会陆续的使用各种各样的模块
来进行更直观的展示
在我们的课程当中
我们会尽可能避免使用编程语言的特性
而是把精力尽可能集中在
算法的编程实现上面
因此如果你精通java,c++甚至matab
相信通过本门课程的学习
相信通过本门课程的学习
你也可以写一个对应的版本
以上就是有关课程资源的介绍
下节课我们将会进入到
本轮课程的第一个课题
音乐的表达
-欢迎辞
-1.1 计算机音乐导言
--计算机音乐导言
-1.2 计算机音乐课程主要内容
-1.3计算机音乐课程资源
-1.4 音乐的基本表达
--音乐的基本表达
-第一章作业
-2.1时域音频处理概述
--时域音频处理概述
-2.2 分窗处理1:OLA叠放
-2.3 分窗处理2:音量计算
-2.4 端点检测
--端点检测
-2.5 振幅包络
--振幅包络
-2.6 音频信号相乘
--音频信号相乘
-2.7 环形调制
--环形调制
-2.8 频率调制
--频率调制
-2.9 频率调制在音乐上的应用
-第二章作业
-3.1 频谱概述
--频谱概述
-3.2 傅里叶变换
--傅里叶变换
-3.3 短时傅里叶变换
--短时傅里叶变换
-3.4 加法合成
--加法合成
-3.5 线性滤波器
--线性滤波器
-3.6 京剧锣鼓经分析
--京剧锣鼓经分析
-第三章作业
-4.1 音色合成概述
--音色合成概述
-4.2 质点弹簧阻尼模型
--质点弹簧阻尼模型
-4.3 双线性滤波器
--双线性滤波器
-4.4 Modal合成
--Modal合成
-第四章测试
-5.1 一维振动模型概述
--一维振动模型概述
-5.2 弦振动模型
--弦振动模型
-5.3 达朗贝尔的行波解
--达朗贝尔的行波解
-5.4 梳状滤波器
--梳状滤波器
-5.5 Karplus Strong算法
-5.6 管状气鸣乐器模型
--管状气鸣乐器模型
-第五章作业
-6.1 音高跟踪概述
--音高跟踪
-6.2 时域音高跟踪
--时域音高跟踪
-6.3 频域音高跟踪
--频域音高跟踪
-6.4 K歌评分
--K歌评分
-第六章作业
-7.1 音频同步概述
--音频同步概述
-7.2 音乐特征提取 CQT
-7.3 音乐特征提取 Chroma
-7.4 动态时间规划概述
--动态时间规划概述
-7.5 动态时间规划实现
--动态时间规划实现
-第七章作业