180221 Learning Log | 00 的学习记录

in #cn8 years ago (edited)

Summary

  • 基于例子学习 p5.sound 库的几类对象和方法
  • 经过一周练习,treble clef 高音谱号的识谱练习准确率可达 95% 以上,开始 bass clef 低音谱号识谱练习(工具 Music Tutor App)
  • Music Theory 101 的 Model 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() 方法可以获取某个范围内的频率。

noise

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

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 ).

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 的子类。

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

Ref

Bass clef 识谱练习

熟练掌握 Treble clef 后,Bass clef 整体下移三度,另外加上快捷位置记忆:

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

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

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

Music Theory 101 的 Model 3 练习

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

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

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

明日 To do

  • p5.sound 的例子
  • Treble + Bass clef 组合练习
  • Music Theory 101 Model 4
  • 知识大融通 ch12
Sort:  

@kidult00, 伦家就觉得你写得不错嘛~~~ img

过年好!cn区点赞机器人 @cnbuddy 感谢你对cn区作出成长的贡献。如果不想再收到我的留言,请回复“取消”。

Coin Marketplace

STEEM 0.05
TRX 0.33
JST 0.080
BTC 63445.51
ETH 1688.58
USDT 1.00
SBD 0.42