Guix系统上的音乐制作

2020-11-27 00:05:03

Guix 1.2.0的最新版本随附了releasesong(歌词)。让metell您了解这是如何发生的,以及如何将Guix System用于自己的音乐作品!

一切始于1.2.0版本的三天前,当时#guix IRC频道上的某个人提出了OpenBSD人们在他们的系统版本旁边编写,录制和发布至少一首歌曲的传统。

后来,我对被忽视的乐器进行了仔细的观察,以至于我被迫接受这一挑战:尽管周末排挤,但不到三天的时间,我们可以免费使用免费软件来创作,录制和发行歌曲吗?我想找出答案。

作品名称“一两下颂”是一个明显的选择,即准回文,其五个音节的时标为5/4。从这里到哪里?

当我盯着我的Emacs会话使用Guile REPL(读取,评估,打印,循环)缓冲区时,我试图回想字母“ REPL”代表的含义。别人呢?我偶然发现了合唱:对Guixdevelopment过程的描述。在我们分享他们的贡献(互惠),查看补丁并讨论(评估),黑客入侵其他东西(拖延)和重复(循环)之前,先与他人共同贡献。

这些单词暗示了一个简单的降序旋律,这需要通过稍微不那么简单的和弦进行来提升。在大棒上尝试了几种和声之后,我记得记忆是多么可怕,并决定我需要将和声散布到画布上,聆听整个进程,并调整所需的线条-所有这些都无需建立肌肉记忆的和声。我很可能最终会放弃该过程。

这是我的作曲工作流程可能与大多数人不同的地方。许多人会使用MIDI音序器来实现这种方法,而我决定使用一种不太可能的工具:无与伦比的音乐雕刻应用程序Lilypond来实现精确的和声。 Lilypond提供了一种通用语言,涵盖原始音符输入,将其组合为较大的短语和音乐构想以及抽象的手段-它允许对音乐构想进行命名和重新组合为不同的形状。对于所有语言,该语言都无法使用专门的语法,我可以简单地切换到Guile Scheme。没有其他注释软件像Lilypond一样灵活和可扩展。我让它同时生成乐谱和MIDI文件-乐谱显示在Emacs的PDF查看器中,并将MIDI文件发送到Fluidsynth(因为我将耳朵放在眼睛上)。

我始终尽量减少在MIDI世界中的停留时间,因为牢固扎根于MIDItends的合成工作流程会导致音乐听起来像是无菌的或机械的,令人讨厌的音质随后很难根除。所以我把它们放在一边,专注于歌曲的另一部分。反映标题的准回文,歌曲的结构应为A B C BA。在B部分的平滑弦被锁定的情况下,我走到大棒上(我将其安装在经过改进的麦克风支架上以提高灵活性),并用节拍器的拍子拍出了对比鲜明的双手低音。

弦乐器的信号如何将其变成计算机磁盘上的文件? Stick的立体声信号馈入两个菊花链式Axoloti板,并通过手工处理的信号处理调整到我的乐器的特性。 DSP板的立体声输出连接到我的USBaudio接口上的两个输入(Tascam US16x08,尽管任何与类兼容的音频接口都可以正常工作),并将其作为16通道输入声卡呈现给系统。

计算机运行JACK1,将所有通道上的传入信号随机传送到其他JACK客户端(音频应用程序和插件)。我使用修补程序方便地在交互式图形信号流程图中连接输入和输出。

我录制会议的中心部分是古老的Ardour,这是一个极其灵活,精致的数字音频工作站(DAW),它本身支持JACK,还可以用作LV2音频插件主机。

好的,Stick已经可以录制了,但是我更喜欢先录制一个鼓声,而不是演奏节拍器的咔嗒声。但是,等等,我现在真的无法录制鼓了!这是一间公寓,然后邻居睡着了。哦,我是个糟糕的放克鼓手。让我们作弊吧!

我选择的鼓机是氢气。它使我可以创建任意数量的任意长模式,将它们组合在一起,并且(与至关重要的一样)与其他JACK应用程序(例如Ardour)同步。我在Ardor中切换了一个按钮,以控制JACK传输,这意味着当我在Ardor中开始录制时,鼓机开始同步播放-完美!来吧!

令人沮丧的几分钟变成了费力的录制贝斯行的时间(最终诉诸于打击,而不是每当我犯错误时重新录制所有内容),我戴上了编曲手的帽子,试图对仍然可能缺少的东西有所了解。录制的轨道听起来很“平坦”;毕竟这是来自乐器前置放大器的直接“原始”信号。是时候整理一下并近似最终的声音了!

多年来,我用来处理录音的音频插件的选择范围已缩小到比LV2插件的Calfsuite少得多。 ,它们呈现的非常漂亮且直观的用户界面。但是,让我坚持使用Calfplugins的原因在于它们听起来也非常好。此外,它们使调整许多参数变得容易,并提供了有用的诊断功能(例如仅侦听更改的频率,频谱可视化等)。

我要做的第一件事是使用光压缩来使动态变化很小。小牛单声道压缩机在这里完成工作。原理很简单:当声音变大时,压缩器会降低音量,并根据拨入的化妆增益来提高结果信号的音量。它具有许多其他旋钮,可用来控制将要注意多大的声音,以防止发出“抽气”(过快激活和停用),另一种用于平滑阈值曲线的“拐点”,等等—但是真正的结果是:应该将信号降低到什么水平,降低多少,以及从整体上弥补体积损失的收益是什么。

一条建议:抵制过度这样做的诱惑!压缩可能会使声音更加震撼,但请不要在这里抛弃所有动力,否则您将冒着从来之不易的波形中抽走生命的风险。因此,我坚持不超过2的比率,使化妆增益保持较低,并且将阈值保持较高,以便仅在动态范围的高五分之一处触发压缩机。

下一步:均衡。这是通过衰减某些频率范围来找出不愉快的字符。再次,小牛套房得到了覆盖。五频段均衡器就足够了,因为我不想在信号的频谱上进行大幅削减,一般来说,我不增强任何频率但主要是削减频率,这里的关键是温和。不要剪切超过两个或三个分贝,否则最终会得到可笑的声音过滤效果。(鼓录音例外,但幸运的是,我们使用Hydrogen避开了那个子弹。)如果您发现需要剪切或增强多个,很可能是您的录音有问题。不要试图通过改善记录质量来弥补后期处理中的问题。 Iscoop将中音一点一点地切掉,并切掉非常低的低音频率,这些声音除了隆隆声外没有其他作用。

有了低音线和架子鼓,是时候重新审视B部分的和声了。我确实很想用我的红色虚拟模拟硬件合成器录制它们,但是当我将它带入神秘的工作室时,我意识到我已经用光了。膝上的空间不足—几个月前,我的办公桌上的空间已用完,所有那些音频电缆都堆积在地板上,即使那是没有选择的。

Lilypond较早地生成了MIDI文件,所以我叹了口气,告诉Ardor导入它。我将古老的电子钢琴插件mdaEPiano作为合成器分配给了音轨,并垂直扩展音轨以手动拖移每个MIDI音符事件,完善音符并添加了微小的时间和力度缺陷,使其看起来像是在人工演奏它们。为了解决插件声音产生的明显可听见的不完善之处,我添加了一些CalfReverb(对于图形用户:添加混响大致等同于在图形应用程序中使用模糊工具)。我本可以选择许多更好的合成器和仿真器之一,但是我们回头了,这个插件和我一样。

在Ardor中,对MIDI的支持确实经过深思熟虑,因为您不需要永远离开主窗口,因此您始终被音频上下文所包围。您只需垂直扩展轨道,即可随意访问事件。这种方法对于惯用MIDI音序器的人来说可能有点不寻常,但就我的目的而言,它已接近完美。

在这一点上,事情进展得很顺利,但是我们只有合唱的歌词(确实只有少数几个词)。一首歌不够,但是对于洗衣单来说只是太多了。因此,我再次转向IRC,在那里,我们的常驻Debian大使和无疑的人流浪者卡斯卡迪安(Vagrant Cascadian)偶然地招来了一个天才:如果歌词完全由错别字组成,而包装说明自上次发行以来就已修复? Vagrant仔细地将单词重新排列成一首凄美的诗,使它们成为对抗机器的声音,使它们栩栩如生,这标志着错误和错误在我们下一个发行版本中不断减少的象征。还有什么比让机器在发行歌曲中嘶哑这些词更合适?

我启动了Festival语音合成软件,然后启动了一些Schemeexpressions,这就是仅以cmu_us_fem_cg开头的实体的独特单调,将这些单词驱动到一个音频文件中,然后立即将其导入到Ardour中,并使用GxDetune插件,Calf Vintage Delay和一些混响。

在周一的预发布午餐会中,我竭尽所能,通过录制合唱团的三条声带(两声低,一声高)来发挥人类的作用,通过黑客考虑这一创造周期。

在发布公告之前还剩半个小时左右,很明显,传统意义上将没有“音频母带”。我戴上监听耳机(平坦的频率响应以获得“客观”的混音体验),并调整了音量,插件设置,并淡化了每次录音的嘈杂边缘。我还添加了一些其他效果:Chapman Sticktrack上的移相器,以强调这应该很有趣;分频器(CalfX-Over 2 Band)和三个音频总线,首先将低频低音与高频分开处理(例如,使用不同的放大器模拟),然后重新加入它们;主总线上的限幅器可避免任何高于0dB的音量尖峰并压缩混音。

我将最终的混音导出为Vorbis OGG音频文件,然后将其发送给Ludovic,以将其包含在发行公告中。

那么判决是什么?结果完美吗?绝对不!但是Ido想要指出,所有和所有的错误和缺陷都是由于我自身缺乏技能和时间而造成的-它们并不是自由软件的局限性。更加熟练的音频工程师肯定不会受到像Iused这样的系统的限制,该系统完全由尊重自由的软件组成,而Guix System的用户赋权和解放功能使其更加可靠。

GNU Guix是一个事务性软件包管理器,是GNU系统的高级发行版,它尊重用户的自由。Guix可以在运行Hurd或Linuxkernel的任何系统之上使用,也可以用作i686,x86_64,ARMv7,和AArch64机器。

除了标准的程序包管理功能外,Guix还支持事务性升级和回滚,无特权的程序包管理,每个用户的配置文件以及垃圾回收。当用作独立的GNU / Linux发行版时,Guix提供了一种声明性的,无状态的方法来进行操作系统配置管理。 Guix可通过Guile编程接口和Scheme语言的扩展进行高度自定义和破解。