用Python代码生成红石音乐

红石音乐是《Minecraft》中的一种非常特殊的演奏音乐的方法,但一般好的作品都要设计者一个一个方块搭建并修改,比较耗费时间精力……

这本来是我三位室友与其他几位同学一起完成的Python课程大作业中的其中一项(我并没有选择该门课程),但是最后该部分效果实在是差强人意,于是我暑假时便把红石音乐部分全部推倒重写。

如果想要了解红石音乐原理以及红石音乐的制作,可以看一下这个视频:手把手教你做红石音乐,红石音乐的原理并不十分复杂,主体思想是使用音符盒发声,使用红石中继器调节两个音符之间的间隔以演奏出一首歌曲。

项目已开源:https://github.com/zizhizhou/RedstoneMusic,可以将标准的midi文件转换为对应的红石音乐,并且支持多音轨。目前仅支持MC1.2版本,并且需要运行在本地服务器上。使用了piano+材质包解决音色的问题,但是也因此只能演奏钢琴或者类似钢琴的曲子。此外由于Minecraft中一个红石刻为0.1秒,在没有变速的情况下,只能获得红石刻整数倍的音符间隔,部分曲子(应该说大部分曲子)都不能完美的还原。还有很多很多存在的问题,有继续改进的计划,如果感兴趣也欢迎一起探讨。

关于该项目的企划以及其他几个优秀的Minecraft项目,欢迎访问:https://github.com/ArkciaDragone/Raspy

点赞
  1. CrzyPaean说道:
    Microsoft Edge Windows 10

    原版MC在音符盒下放置不同方块可以改变音色(只有有限的几种,不过大概也充足了)。活塞推动是1.5 redstone tick,另外我似乎见过改变游戏刻速度的指令,可以找一找。

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

Title - Artist
0:00