受到其他便携式音乐制作机器的启发,我阅读了优秀的 Mozzi 图书馆。能够制作许多合成器和鼓机并能够同步它们的速度不是很有用吗?OscPocketO 诞生了——一个仅使用 Arduino 和 LCD 键盘的便携式音乐工作室!
通过使用 SELECT 按钮切换到不同的模式来控制 OscPocketO。使用 UP 按钮增加一个值,DOWN 减少一个值,使用 LEFT 和 RIGHT 移动光标。
每次 OscPocketO 播放音符时,Arduino 内置 LED 闪烁。
请注意,将 OscPocketO 直接连接到您的家庭立体声音响可能会使它过载!使用耳机或混音器。
如果 LCD 显示屏出现故障重复按下,以便您通过工具菜单 - LCD 将被重置。
演示:
模式:
开始。启动和停止音序器。
同步。设置同步模式。NONE = 不接收或发送同步信号。INT = 内部,使用 OscPocketO 的内置时钟并发送同步信号(导体模式)。EXT = external,OscPocketO 音序器由外部信号控制,但仍会发送同步信号(播放器模式)。
图案。选择当前模式。
编辑。编辑当前模式。音符存储为 1 小节(16 x 1/16 音符)中的 MIDI 值。
状态。编辑音符的状态:X = on,O = off。
节奏。设置音序器的速度。
门。设置演奏的音符门。门以 1/16 的百分比表示。
换档。转置(上/下)和移动序列(左/右)。
波形。设置(第一个)振荡器的波形:SIN(正弦)、TRI(三角)、SAW(锯齿)和 SQUARE(方)。
攻击。以毫秒为单位设置起音时间。
释放。以毫秒为单位设置释放时间。
过滤模式。OscPocketO 有一个低通滤波器。可以调制截止:
截止。设置滤波器的截止频率(从 0 到 255 的数字)。
共振。设置滤波器的共振(作为一个从 0 到 255 的数字)。
波形2 。激活和设置第二个振荡器的波形:NONE(关闭)、SIN(正弦波)、TRI(三角波)、SAW(锯齿波)和 SQUARE(方波)。
失谐2 。第二个振荡器相对于第一个振荡器失谐。该值以 Hz 为单位,并与第一个振荡器的频率相加。
播放。键盘模式。音序器停止(如果正在运行),当前模式的 4 个第一个音符映射到 LEFT、UP、DOWN 和 RIGHT。
工具。实用程序。用 UP 激活。
OscPocketO Drumscan 可同时播放 5 种声音,全部由虚拟模拟合成器创建,感谢 Mozzi 库:Kick、Snare、Hihat、Clap 和 Crash。
模式:
开始。启动和停止音序器。
同步。设置同步模式。NONE = 不接收或发送同步信号。INT = 内部,使用 OscPocketO 的内置时钟并发送同步信号(导体模式)。EXT = external,OscPocketO 音序器由外部信号控制,但仍会发送同步信号(播放器模式)。
图案。选择当前模式。
编辑。编辑当前模式。音符值是通过添加对应于不同声音的值来构建的:
示例:值为 17 表示此步骤将播放 Kick (1) 和 Crash (16),1 + 16 = 17。
节奏。设置音序器的速度。
门。设置 SYNC OUT 信号的门限。门以 1/16 的百分比表示。
编辑踢。设置底鼓频率、释放时间和斜率(声音频率下降的速度),其中值越大 = 下降速度越快。
编辑网。设置军鼓频率、释放时间和斜率(声音频率下降的速度),其中值越大 = 下降越快。
编辑_ 在一些有趣的步进值和释放时间中设置频率。
编辑拍手。设置发布时间。
编辑崩溃。设置发布时间。
编辑。设置 tom 的频率、释放时间和斜率(声音在频率上下降的速度),其中较大的值 = 更快的下降。
播放。单人模式。LEFT = Kick,UP = Snare,DOWN = Tom 和RIGHT = Crash。
工具。实用程序。用 UP 激活。
一个 OscPocketO 必须是导体。这是将同步数据发送到另一个称为 Players 的 OscPocketO:s 的机器。
连接所有连接的 OscPocketO:s 的 GND(地)。有关如何制作合适电缆的信息,请参阅构建说明。
导体。开始:停止。同步:内部。
玩家。开始:停止。同步:外部。开始:播放。(顺序很重要。)
将 SYNC OUT 从导体连接到第一个播放器的 SYNC IN。
如果您有多个播放器,请将第一个播放器的 SYNC OUT 连接到第二个播放器的 SYNC IN。对每个玩家重复。
导体。开始:播放。
您可以在所有 OPO 上调整声音和切换模式。您在指挥器上更改速度(仅)。
在连接 LCD 键盘防护罩之前,我们必须确保它没有连接到 Arduino 上的引脚 10 (D10)。D10 通常用于控制 LCD 上的背光(亮度)。但我们将使用 D10 来处理音频。
要完成这项工作,您必须弯曲进入 Arduino 上 D10 的屏蔽上的引脚。弯曲 90 度。
这张 Arduino 背面的图像显示了屏蔽 (1) 的弯曲引脚和来自 Arduino (2) 的音频连接,我们将在下一步中修复它们。
现在连接 LCD 键盘护罩。
LCD 和按钮通过 Shield 连接到 Arduino:
RST(重置)按钮重置(重新启动)Arduino,软件不使用。
音频插孔连接到 Arduino 上的 D10 和 GND。Mozzi 库通常与 D9 一起使用,但由于 LCD Keypad shield 使用此连接,我们必须对 Mozzi 库进行一些更改。这将在稍后的软件部分中描述。
将彩色线焊接到音频插孔(信号)的“尖端”,并将黑色线焊接到套管(GND = 接地)。
将彩色电线焊接到 Arduino 的 D10 上。因为我们已经连接了屏蔽,所以使用 Arduino 背面的 D10 焊点。将黑线焊接到屏蔽顶部的 Arduino GND。
将母-母跳线切成两半,将一部分焊接到 D11(SYNC IN),一部分焊接到 D12(SYNC OUT),一部分焊接到 GND。
为了耐用,您应该将 OscPocketO 放入一个盒子中并固定电缆和音频插孔。
取一根长的公-公跳线,去除中间的一些隔离物,然后焊接一根切断的公线。现在所有三个(或更多)端销连接。
将您的 Arduino 连接到运行 Arduino IDE 的计算机。
使用 Mozzisite 上的说明下载并安装
如果需要,请阅读有关安装 Arduino 库的更多信息:
默认情况下,Mozzi 输出到 D9,但由于 LCDKeypad Shield 使用此引脚,我们必须将其更改为 D10。
在 Mozzi 库文件夹中,找到并在文本编辑器中打开 AudioConfigStandardPlus.h。
在以下四行中将 A 更改为 B 并将 B 更改为 A,使它们看起来像这样:
// Used internally. If there was a channel2, it would be OCR1B.
#define AUDIO_CHANNEL_1_OUTPUT_REGISTER OCR1B
#define AUDIO_CHANNEL_2_OUTPUT_REGISTER OCR1A
(...)
#define AUDIO_CHANNEL_1_PIN TIMER1_B_PIN //defined in TimerOne/config/known_16bit_timers.h
#define AUDIO_CHANNEL_2_PIN TIMER1_A_PIN
选择您想尝试的 OscPocketO:Synth 或 Drums。在 Arduino IDE 中打开 code_synth/code_synth.ino och code_drums/code_drums.ino 并将它们上传到您的 Arduino。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !