NES音乐数据库:开启复古音乐创作的新纪元
项目介绍
NES音乐数据库(NES-MDB)是一个专为构建自动音乐创作系统而设计的数据集,特别针对任天堂娱乐系统(NES)的音频合成器。NES合成器具有高度受限的作曲参数,非常适合当前多种机器学习技术。该合成器通常使用汇编语言编程,但我们将汇编代码解析为更适合机器学习的格式。
本项目不仅提供了数据集信息,还包含了一个名为nesmdb
的Python包,用户可以使用该包通过NES合成器渲染生成的音乐。如果你只想下载数据集而不需要渲染音乐,可以直接下载相应格式的数据集。
项目技术分析
NES-MDB数据集包含了来自397款NES游戏的5278首歌曲,代表了296位独特的作曲家,总共有超过两百万个音符。数据集从NES游戏的汇编代码开始构建,包含了精确的时间和参数值,以确保准确的芯片音乐渲染。数据集被分为训练、验证和测试集,确保每位作曲家不会出现在多个分集中。
NES合成器有五个乐器声道:两个脉冲波生成器(P1
、P2
)、一个三角波生成器(TR
)、一个打击乐噪声生成器(NO
)和一个音频样本播放通道(为了简化,未包含在内)。每个声道通过修改四个8位寄存器来更新音频合成状态。
项目及技术应用场景
NES-MDB数据集适用于多种应用场景,特别是算法作曲和语言建模。对于算法作曲背景的用户,推荐使用MIDI或乐谱格式;对于语言建模背景的用户,推荐使用NES语言建模(NLM)格式。
算法作曲
- MIDI格式:存储离散的音乐事件,描述乐曲的音符、速度和音色信息,具有44.1 kHz的时间分辨率,允许通过NES合成器进行样本精确的重建。
- 乐谱格式:包括表现力乐谱、分离乐谱和混合乐谱,这些格式以固定速率(24 Hz)采样,更紧凑但有损。
语言建模
- NES语言建模(NLM)格式:包含控制合成器状态机的指令列表,虽然音乐结构较少,但可能适合训练强大的序列模型来学习其语义。
项目特点
- 丰富的数据集:包含5278首歌曲,来自397款NES游戏,代表了296位作曲家。
- 多格式支持:提供MIDI、乐谱和语言建模等多种格式,满足不同用户的需求。
- 精确的音符信息:从汇编代码中提取精确的时间和参数值,确保音乐的准确渲染。
- 开源工具包:提供
nesmdb
Python包,方便用户渲染生成的音乐。 - 数据集分割:数据集被分为训练、验证和测试集,确保每位作曲家不会出现在多个分集中,适合机器学习模型的训练和评估。
NES音乐数据库不仅为复古音乐爱好者提供了一个丰富的资源库,也为机器学习和音乐创作领域的研究人员提供了一个独特的平台,帮助他们探索和创新NES音乐的自动生成技术。无论你是音乐爱好者还是技术研究人员,NES-MDB都将成为你不可或缺的工具。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考