了解音乐追踪器的歌曲

我是电子音乐制作人Bogdan Racczynski的忠实粉丝。 他从他在Ulver的1993–2003年:Machines CD 中的第一个十年创作的Bog’s Basil&Curry Powder Potatoes Recipe中获得了我的电子音乐,您可以在这里收听。

当我上大学时,我一直在疯狂地寻找购买他的音乐的方法,当时那被证明非常困难(现在他在乐队训练营中……),我想要原始的物理东西,而不是某个地方的mp3剥夺……所以我最终在ebay上购买黑胶唱片,从discogs购买CD或在任何我能找到的东西中都找不到自己的东西。 我以为我已经收藏了完整的作品,但是后来我偶然发现了网上的一个档案,其中包含他的大约一百种原始格式的作品。 当我使用跟踪器音乐时,这个档案库对我来说是一个金矿,它使我对他的曲目的制作方式有了深刻的了解。

什么是追踪器?

在这里为可能不知道什么是追踪器的人插曲,这是Wikipedia的第一段:

音乐跟踪器 (简称跟踪器 )是一种用于创建音乐的音乐定序器软件。 音乐表示为离散音符,这些音符位于垂直时间线上离散时间顺序的几个通道中。 用于保存歌曲的文件格式称为模块文件。

理解一切

所以我坐在一堆模块文件上,但它们不是我的音乐库的一部分,这很遗憾,因为有一些非常不错的歌曲,我决定尝试使用Golang解析它们以提取一些我认为有用的元数据查看该集合时,我们可以从二进制文件中获得一些常见的东西:

这是我的设置,建议您解析二进制文件

  • 左上:打开规格的铬合金(最好打印出来,但我很懒,不想浪费纸张……)
  • 右上角:安装了go-plus插件的Atom编辑器(在保存,自动格式,自动导入等方面运行测试)
  • 左下:终端
  • 右下:HexFriend,我非常喜欢的免费十六进制编辑器

看看如何调整HexFriend的大小以很好地映射到规范的txt格式? 这使我对.IT文件的第一次解析变得非常顺利,我可以查看一下规格,在HexFriend中选择几个字节,然后检查值是否有意义(始终信任但要验证,每次体验规格都不会100%准确……)。

在Go中解析二进制数据

那么,如何解决像上面Go中那样的简单标头呢? 起初我以为binary.Read函数不适用于结构,所以我开始编写自己的版本,实现了我知道自己需要的几种类型,但事实证明我只是在使用未导出的结构字段(小写的) …)🤦,整理出您需要做的是定义一个结构,该结构使用适当的长度和符号来映射到二进制数据,然后仅使用binary.Read将数据解压缩到该结构中:

  • 再次制作追踪器音乐!

在Tracker中创建歌曲的流程与(现在已被越来越多地使用)DAW完全不同,但是由于它最终会产生完全不同的歌曲,并且使得一些故障和效果更易于使用,因此非常适合Drum’n例如,低音,IDM或丛林。 我像往常一样将所有代码放在github中,可以随意查看它们,发送PR或如果要查看模块集合就简单地使用它!

attwad / trackermeta

trackermeta –(音乐)Trackers二进制文件格式元数据提取实用程序

github.com


附录

您要开始制作跟踪器音乐吗? 我最近推荐Renoise,该界面最漂亮并且正在积极开发中。

您只想听这样的音乐? 在Windows上,我将foobar2000用作播放器,否则VLC也可以读取它们。

您想观看Tracker的不可思议的用途吗? 观看威尼斯小军团制作的Vache并哭泣。