Simon Fang


What a man can be, he must be

音乐与数学 (3) 音律和基本音级

音律——为什么是do,re,mi,fa,sol,la,si? 音律(Musical temperament) 是制定音高的标准,只有音高确定了,才能准确地记录旋律。为了方便理解,我们先从 十二平均律(Twelve-tone equal temperament,12 equal temperam...

音乐与数学 (2) 音色、和声

乐音的音色 我们听到的乐音都是有一个能量最高的基频和一系列泛音组成的,这在前文已经解释过了。人耳对4000Hz左右的声音最敏感,绝大多数乐音的泛音列正处在这个频段,因此,泛音的成分决定了音色的不同。 同一音高的乐音,在不同乐器上的音色不同,这是因为发声构造的差异导致的泛音比例差异。同一乐器...

音乐与数学 (1) 纯音,泛音和拍音

纯音 从信号分解的角度看,最基本的声波也是正弦波,任何声波可以被分解成频域空间,连续频率的正弦信号的线性组合。正弦波的声音就是纯音(Pure tone),但是可以被人耳听到的纯音在自然界中几乎不存在,因为简单的机械运动频率太低。我们可以用计算机人工合成一个纯音(实验1.1),它的频率为$\o...

音乐与数学 (0) 前言

学习音乐可以培养自己的艺术鉴赏水平,陶冶情操,也可以提升个人的气质和修养。演奏乐器或者唱歌,都是居家旅行、交友聊天、装酷耍帅之必备技能。在学习音乐的过程中,或多或少会接触一些乐理知识。现代乐理理论主要建立在十二平均律和西洋大小调的基础上,主流的乐理教程都特地隐去了背后的数学原理,略去了对律制的...

Config and test CUDA on Ubuntu

Install NVIDIA driver Check recommended driver for graphic card ubuntu-drivers devices Install driver sudo apt install nvidia-xxx #i.e. nvidia-...

自顶向下逆向理解C++虚表

C++的多态作为面试必考题,必然会问及实现方式,也就是虚表.为了更好地理解虚表,利用C/C++灵活访问内存的特性,可以显式地通过虚表调用虚函数,并观察虚表内虚函数的分布顺序. Q1 虚表何时创建,不同的实例共享虚表吗? #include <iostream> using n...

C++11智能指针的简单对比

为什么使用智能指针 C++继承自C语言,在管理堆上的内存方面,赋予了程序员很大的灵活性。但繁琐内存管理的问题经常容易出错,稍不小心就会有内存泄露或段错误等问题。在C++中动态管理内存往往遵循申请内存和释放内存成对的原则,但是由于异常处理机制可能会增加函数的出口,因此程序员在异常发生后忘记释放内...

平方根倒数速算法

计算平方根倒数有许多应用,比如在3D游戏中求单位向量.在实时性要求比较高的场景中,计算速度比计算精度重要的多,因此一般不用标准的浮点函数库. 源代码里的神秘数字0x5f3759df 著名游戏《雷神之锤III》的代码在2002年左右被披露,人们发现了一段用于快速计算平方根倒数的代码. floa...