音乐作品是一种奇怪的野兽。 一方面,您当然是各种各样的音乐家,并且绝大多数制作人都开始演奏某些东西,但另一方面,您的音乐环境通常坐在计算机和硬件机架的前面,单击VST,然后转向旋钮和微调的声音不断,直到您获得所需的声音为止。
在开始制作之前,我演奏了各种乐器。 虽然我从来都不是一个像样的独奏者或即兴演奏者,但我一直喜欢只是卡住的即时反馈和释放体验。 毫无计划地进来,舔一下,看看它会带你到哪里。 当我开始学习时,就像我热爱音乐制作一样,我一直在寻求对音乐的沉浸感。
输入Ableton Live。 Ableton是围绕老式采样器和音序器的工作流程而建立的DAW(数字音频工作站)。 与其以Pro Tools,Logic或Reaper之类的线性方式布置文件或MIDI片段,不如构造一个Midi或音频循环网格,这样可以使自己始终处于时间和火力之上,因此,自己可以实时协调和启动整首歌曲。 这个工作流程对我来说很有意义。 突然间,我可以打鼓循环,在即兴演奏一些吉他,立即循环,在相邻音轨中放下另一个背景声,循环播放,杀死鼓并开始新的节拍等等,等等……几乎都是实时的。
因此,当我最终启动并运行我的LED矩阵并可以随意虹吸视频时,我的第一个直觉是找到一种使视觉效果设计像在Ableton中构建音乐一样直观的方法,这是比利用杠杆效应更好的方法亚伯顿本身?
如今,所有主要的音乐软件和硬件都通过MIDI进行通信。 MIDI是一种用于传达音乐信息的协议-通道可以传输127个音符,每个音符的速度 (击键的力度 )为0–127。 它还可以发送CC(连续控制器)信息(如旋钮和推子),其值为-您猜到了-0–127。 由于这是几乎通用的标准,因此利用MIDI找到各种有趣的项目并不少见。 那么,将MIDI连接到处理中到底有多难?
事实证明,一点都不难。 MIDIBus是处理库,它为处理中的MIDI通信打开了大门。 通过将MIDI路由到计算机中的虚拟总线(Mac具有内置的实用程序),MIDIBus可以获取信息并将其作为一系列整数值传递,然后我们可以将其用于Processing中。
我的首要任务是在屏幕上显示一些内容。 我设置了一个数组来存储所有传入的数据。 索引将参考音符编号,而存储的整数将参考传入的速度。 在我的绘制函数中,我只是简单地遍历要渲染图像的所有注释,并将RGBA的alpha设置为传入的速度。 此外,一些时髦的映射和数学运算将我想要显示的64个音符中的每一个音符显示在整个屏幕上的8 x 8网格上。 不过,明显的问题是,一旦音符调高,便会留下来。
因此,我为每个音符都包含了一个衰减值-每帧,它的值都会减小一个设定值,直到达到零为止。 凉。 现在我们到了某个地方。 接下来,我为CC值设置了更多存储空间。 由于Ableton通常以8个旋钮为一组进行操作,就像我更喜欢MIDI硬件一样,因此我可以将其制作成更小的阵列。 为了获得更多的动手控制,我映射了一个旋钮来控制衰减率,并映射三个旋钮来控制球体颜色的R,G和B值。 现在我们有了一些灵活性。 击打记录并使用按钮和旋钮进行播放,使我们可以实时流畅地循环和修改我们的球体视觉效果。
按照这种逻辑,我继续构建大量的处理草图,使用Ableton中的MIDI滚轴和鼓架来控制一切,从简单的全屏色彩猝发效果到启用/禁用音频反应性编程元素。 经过一些练习,希望我能够将Ableton带到DJ装置中,并现场播放视频和音乐。 和美丽吗? 由于Ableton的模块化性质,如果我愿意,我可以保存特定歌曲的Midi片段,如果我想要的东西比我用两只手实际可以做的更复杂,可以按我想要的顺序解雇。
因此,总结一下这个由四部分组成的冒险之旅,进入将处理与所有事物在阳光下混合的怪异世界,我想说一下:代码是一种工具。 一个了不起的工具。 归根结底,您所需要的只是一个好主意,朝着正确的方向迈出一些婴儿的脚步,并且有一些途径可以实现。 在开始这个项目之前,我从未接触过Java。 在Processing的上下文之外,我从未接触过它。 尽管如此,我还是能够将它纠缠成三个月前我梦dream以求的程序的粗糙形式。
出去那里做点什么。