00's Learning Log 180221

Summary

  • 基于例子学习 p5.sound 库的几类对象和方法
  • 开始 Bass clef 低音谱号识谱练习(工具 Music Tutor App)
  • Music Theory 101 的 Module 3 练习
  • 开始使用 workflowy 写学习 log (工具 WorkFlowy Panel)
  • 知识大融通 ch11

p5.sound 对象和方法学习

fft

FFT (Fast Fourier Transform 快速傅里叶变换) 是一种分离声音频率波形的分析算法。p5 里面的 FFP 对象可以分析声音的频率,返回两种数组:

  • FFT.waveform() : 计算时间振幅。数组内每一个值代表取样时间内的波形振幅。返回值在 -1 到 1 之间。可用来绘制声音的波形

  • FFT.analyze() : 计算频率振幅。数组内每一个值代表频谱(frequency spectrum, i.e. pitches)振幅。用 getEnergy() 方法可以获取某个范围内的频率。

17.11: Sound Visualization: Frequency Analysis with FFT - p5.js Sound Tutorial

noise

Noise 对象是生成随机 buffer 的振荡器(oscillator)。

1
new p5.Noise(type) //String: Type of noise can be 'white' (default), 'brown' or 'pink'.

delay

Delay 生成回声效果. 参数包括 delay time, feedback, filter, and type.

env

Envelopes (中文术语是什么?)是预先定义时间内的振幅分布,常用于控制输出音量和 a series of fades referred to as Attack, Decay, Sustain and Release (ADSR).
ADSR

SawOsc/TriOsc

创建 SawTooth Wave Oscillator / Triangle Wave Oscillator (相当于 new p5.Oscillator('sawtooth')/ p5.Oscillator('triangle') 或者创建 p5.Oscillator 然后调用 setType('sawtooth') / setType('triangle') )

distortion

生成 Waveshaper Node,是 p5.Effect 的子类。

1
new p5.Distortion([amount=0.25],[oversample='none'])

Ref

Bass clef 识谱练习

经过一周练习,Treble clef 高音谱号的识谱练习准确率可达 95% 以上。熟练掌握 Treble clef 后,Bass clef 整体下移三度,另外加上快捷位置记忆:

  • 下加二线:C
  • 0-3间:FACE 🙂
  • 5线:A
  • 上加一线:C

继续用 Music Tutor 练习,吸取 Treble clef 的经验,开始时的练习可以设置为:

  • 练习时长 1 分钟(便于总结规律)
  • 识别区间B1-E4 (强化记忆中间区域的 notes)
  • 去掉升降号识别
  • 熟悉自己的 base notes 以后,增加练习时长,并且加入升降号识别

Music Theory 101 的 Module 3 练习

Juilliard 的这门课 Music Theory 101 的练习都很走心。今天做到 Module 3 练习,主要针对音符/休止符和拍子。

为了在电脑上写作业,找了一款音乐符号的字体:MusiSync font - FontSpace

Meter 的遗留问题:如何确定以什么音符为一拍?

明日 To do

  • p5.sound 的例子
  • Treble + Bass clef 组合练习
  • Music Theory 101 Module 4
  • 知识大融通 ch12
kidult00 wechat
扫码关注 00 的公众号
如果文章帮您节省时间或者解答疑问,不妨打个赏 :)