教程:制作tracker音乐的波形可视化视频 Oscilloscope view(使用Sidwizplusgui)

波形可视化视频(Oscilloscope view,下简称ov)是什么?
就是将音乐中的声音波形制作成示波器的形式,使音乐中的声波可以被“看到”,是了解与欣赏一首音乐的一种奇怪方法。 B站搜索“波形可视化”,可以看到不少示例。
然而,是所有音乐都可以制成ov吗?
还真不是!
我们通常听的mp3,wav,flac等格式,都是各个乐器混合之后的声音,这样的波形看起来比较混乱,没有什么制作的意义。只有“能分出通道的音乐”才可以制成ov,这也是为什么通常的ov中有许多不同的波同时被显示,其实是对应不同的通道。
常见的有通道的音乐有:
midi音乐·(理论上可行,但我不会做,所以出不了教程)
tracker音乐·(即mod音乐,.it .mod .xm .s3m格式之类)
芯片音乐(狭义,就是指为音效芯片psg写成的音乐·.sid .vgm之类)。
其中,最常见的还是后两者。这次先介绍tracker音乐的OV制作法。
用到的工具
OpenMPT(openmpt.org)
——查看mod音乐的内容,试听,输出分通道wav文件
sidwizplusgui(https://github.com/maxim-zhao/SidWizPlus)
——用分通道wav生成ov
ffmpeg(ffmpeg.org/download.html)
——sidwizplusgui依赖它生成视频
准备工作
下载openmpt并安装。
下载sidwizplusgui并解压


3.下载ffmpeg并解压,可以用essential build,也可以用full build,它只支持64位系统!
4.打开sidwizplusgui包里的sidwizplusgui.exe

点击右侧Programs选项卡,出现FFMPEG,Multidumper,sidplay三栏,后两个暂时用不到,单击FFMPEG下的Path,右侧出现"...",单击它,提示选择ffmpeg.exe的位置。它在你下载的ffmpeg包目录下的bin文件夹里。

那么,怎么制作呢?
试试一个小例子,你就什么都知道了。
我们这次以这首Surfing on a Sine Wave( http://modarchive.org/index.php?request=view_by_moduleid&query=169104)为例。下载下来,用OpenMPT打开。试听一遍以防里面有bug要改。
试听的同时,调一下歌曲的音量,如下图的Sample Volume(这一步可以不做

我们把音量尽量调大,但是不能无限调大,否则输出的音频文件可能出现削顶失真。
怎么判断削顶的发生?注意看MPT最上面的工具栏右侧有一个音量条


“UP,你骗我,什么都没多呀!”不对!看到下面图的右声道的最右面是不是有个小红点常亮?
它代表在这次播放(从你点下播放键到再次点下暂停键的一段时间)右声道的振幅达到过最大值,即有削顶的风险。我们试听的时候先把音量设到一个较小值,然后慢慢升高,直到出现红点。着重看曲子中音量比较大的部分。
不过,有时这样做之后,感觉音量太小了。这时候可以放宽条件,只要让音量条不要总是顶到头即可。当然如果你听不懂(),也可以不做这一步。毕竟作曲家在发布这个文件时,已经把音量调得比较合适了。
接下来,就到了重头戏:输出分通道的wav。点击最上面的File ->->->Stream Export,出现如下窗格。

Limit栏:大家都能看懂是吧?:)总之不用动任何东西。
Format 栏:指定输出格式。采样率看个人喜好。我填44100。
声道一栏,一般填stereo,但经过试听,surfingonasinewave 这首竟然全曲两通道的电平都一样,也就是两个通道没区别。所以对于这曲可以填mono。
位深越高越好,但是我们只是要分通道的音频,所以一般填16bit。
Render一栏,注意勾选Channel Mode,才能得到每个通道的声音。
设置完后,就可以点OK保存文件了。注意起个好辩认的名字,保存在好找到的目录!
等待走完21个条后,我们在设定的目录就得到了各个通道的音频文件了。
格式是 名称-通道序号,如surfingonasinewave-11.wav
这时打开sidwizplusgui,选中channel选项卡,点黄色的文件夹打开音频文件。选中刚生成的21个音频。确认后发现,左面黑色窗口中出现21行“Loading File”,它们很快消失,变成·水平白线。这便是我们想要的OV了。

不想让他们挤在一列怎么办?点击Layout选项卡,有个“Columns",是列数。因为3*7=21,所以设成三列。列数的选择有些需要注意的地方,回头再说。
再看Width Height 指定视频的长宽高。常见的视频有16:9,4:3.但是据我观察,我发出去的视频大多是手机端观看,所以大家设个16:9更好。分辨率看你电脑性能,电脑快的设个1920*1080,是1080P。我就保持原样了。
重点来了!拖动预览窗底下的滑块(这时不要窗口最大化,小窗口拖动反应更快),看一看波形的大概预览,有没有发现显示出来的振幅太小,看不清楚呢?这时调节 Vertical Scaling 直到显示出来的波形清晰可见。我一般设到150%左右,再慢慢调小。

这里数值的意义是文件最大电平对应的显示出来的振幅占窗格的高度大小。如图,黄色线显示窗格的边界。窗格的上边界是通道的题目(label)所在的地方。但是sidwizplusgui中,窗格的边界并不会分隔开不同的波形,也就是说,一个波形可如果振幅大,可以越界到上面或下面的窗格!因此,Vertical Scaling值可以调得比100%大。

我最后填了100%。其实100%对大部分曲目的效果就已经很好了,如果不会填都可以填100%。Margins不用管。
我们最后来到Video选项卡。这里指定视频帧率。如果电脑性能好可以填个60,电脑性能差的话可以填30,亲测对效果影响不大。再下面,要勾选Encode to file 。Preview 中的 enabled 如果勾选的话,会在生成视频的同时显示预览。我一般取消。(会不会使生成视频变慢呢?)

点击render按钮就可以得到想要的视频了!是不是很激动呢~~
(p.s. 不想要channel 上的labels 怎么办?点channel选项卡里最上面一列倒数第2个按钮,带个红杠的,它是remove labels 。做完一首歌的OV后想换首其他的歌?点最右面的垃圾桶里的remove all (删掉所有通道·)
更多的技巧以及芯片音乐OV的做法,下周再说。bye~~