听写版《欢乐颂》整个乐曲可以分解成139个时段。这139个时段各自所对应的音符(在同一时段内可以有多个不同“音高”同时作响)的“空间数据”和“时间数据”相结合组成139组“二维数据”。
这个版本的《欢乐颂》共计要用25个不同“音高”,所以我用25个bit来分别与它们对应。1个单字的数据寄存器存放不下25个bit 。故,存放1个“空间数据”需要占用两个数据寄存器,再加上“时间数据”占用1个数据寄存器,合起来1组“二维数据”共占用3个数据寄存器。
如下图所示,我用竖直红线标注出曲谱中的14个需要加入短暂间隔(也是14个“时段”)的地方。在程序处理中与其它“时段”相同对待。