cljs karaoke client
1.0.0
在Clojurescript中实现的Web卡拉OK播放器
滚石 - 现在到处
我尝试制作一个不错的卡拉OK播放器。多年来,我一直在尝试使用一个好的软件卡拉OK解决方案,但几乎没有成功,主要替代方案是Ultrastar,Frets Fire等游戏,或者将YouTube Karaoke视频的播放列表放在一起。
这两种替代方案都提供广泛的歌曲目录,您可以通过互联网自由访问,但有一些缺点:
主要困难是获得带有同步信息的歌词,我在网络上发现了许多MIDI文件,显然是用于卡拉OK机器的。这些文件包含的歌词一直同步到音节级别。由于如何在Karaoke机器上存储歌词在Karaoke机器上存储歌词确实没有标准,因此许多人在存储的方式上存在微妙的差异,因此在解析这些文件时,我做了一堆总假设,并提取了歌词以与定时数据一起分开文件。大多数还可以,但是许多人都会有些偏移
MIDI解析器是一个单独的项目:CLJ-KARAOKE。
另一个困难是获得歌曲音轨,因为歌词已同步到MIDI音频曲目,因此要做的是使用它。最初,我打算将MIDI文件直接用于音频轨道,但是在播放音频时,质量极大地取决于您已安装的声音字体,并为不错的结果设置了一个好的ENV并不是一项琐碎的任务。另外,如果我想在Web客户端上播放这些文件,请考虑所有这些文件,只是使事情变得更加复杂。因此,我解决了提取歌词以分离文件并使用胆怯将MIDIS渲染到MP3文件的,这很棒,我能够尝试使用不同的声音字体集合。

先决条件:
$ npm i -g shadow-cljs
$ npm install
$ shadow-cljs watch app如果要编译发布版本,则可以运行以下内容:
$ shadow-cljs release app该构建将位于/public目录中。