本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于 Arduino Nano R3 的 琶音器

发布时间:2021-11-23
分享到:

基于 Arduino Nano R3 的 琶音器

发布时间:2021-11-23
分享到:

本方案是根据音乐理论创建优美的琶音序列的设备。

电子音乐是我的爱好,我用我的 Korg Volca Keys 玩得很开心。前段时间我遇到了一个名为“ Chord Progression Arpeggiator”的网络应用程序,音乐算法的强大和简单给我留下了深刻的印象。在应用程序上花几分钟时间,您就会明白为什么我会受到在我的 Korg 上生成琶音的想法的启发。

作为一名软件开发人员,我决定创建基于 Arduino 的设备,该设备以 MIDI 消息的形式生成琶音并通过 DIN (MIDI) 端口发送消息。琶音器当然可以与其他硬件或软件合成器一起使用,但我没有另一个。

基本乐理

事实证明,这些噪音中的每一种都有一个基本频率,即空气摆动的速度。较低的频率听起来,好吧,较低,而较高的频率我们将其视为较高的音调。两种不同的乐器同时演奏可能听起来非常不同,但在我们看来它们仍然是同一个音符。这种差异称为音色,它是您如何区分演奏相同音符的长笛和大提琴的方法。这允许非常不同的乐器和谐地一起演奏。

在最高级别,此频谱分为八度音程。八度音程是一个音符与另一个频率两倍的音程。这是音乐中最基本的细分。不同八度的音符(即频率彼此相关的 2 的幂)具有相同的名称:钢琴和小提琴可能都演奏 C,但一个比另一个低很多。我们为什么要做这个?嗯,因为它们听起来很和谐,即使是最聋哑的人也能听到。

八度音程本身被细分为 12 个音符,我们将其命名为:

[A、A#、B、C、C#、D、D#、E、F、F#、G、G#]

这些是西方音乐中最基本的音符,它们对应着钢琴上的白键和黑键。您可以看到每 12 个键后,模式就会重复一次。为什么是12?它很复杂,历史悠久,但要点是它听起来是最好的。最令人愉悦的音程由 12 键系统很好地代表,在某种程度上他们不会使用更多或更少的键(尽管人们确实尝试过)。

从这 12 个音符形成音阶。音阶是一组音符,嗯……听起来很好。我的琶音器只有七声全音阶,称为模式。Heptatonic 意味着每个音阶有 7 个音符,几乎所有西方音乐都建立在此基础上。全音阶与音符之间的音程顺序有关。例如,C 大调音阶只是从 C 开始的没有尖锐符号的音符:[ CDEFGAB ]。每个音阶都从一个根音开始。还有一个以 D 为基础的主要音阶:[ DEF# GABC# ]。音阶由要跳过的音符模式定义。主要音阶是 [ WWHWWWH ],其中 W 表示“记笔记并跳过一个”,H 表示“记笔记”。其他模式有其他记录和跳过笔记的模式。

对于这七个音符中的每一个,都有一堆和弦。这里使用的和弦很简单:从一个音符开始,记三个音符,每次跳过我们使用的音阶中的一个。所以在我们简单的 C 大调音阶 (CDEFGAB) 中,V 和弦 (V = 5,所以在第五个音符上) 将是 G (跳过 A) B (循环,跳过 C) D,所以 GBD。这种模式可以重复,上升一个八度(6 个音符:GBDGBD)。琶音(意大利语中的“broken”)只是一个一个地演奏这些音符,而不是一起演奏。

定义一首歌的主要是和弦进行。作曲家选择一种模式,选择一个根音,然后从该根音定义的键中选择 8 个(或更多或更少)和弦。当然,选择和弦有一些规则,但这仍然是一门艺术。在一首真正的歌曲中,其余部分都建立在这个和弦上,当然,这个结构可能会有各种偏差,各种装饰,但通常你仍然能够按照这个顺序识别和弦。

示意图
我的琶音器的原理图非常简单,它由 7 个电位器、7 个按钮、MIDI 端口、2 个 LED 和 4 个电阻器组成。它可以很容易地组装在面包板上,如下所示,但如果您是 arduino 世界的新手,如果您首先从以下教程开始,那会好得多:

控件
电位器:

主音的八度 (0..7)
和弦的八度 (0..7)
进程中音符之间的延迟(每分钟节拍)
补品/根音 (C...B)
琶音步骤 (1...5)
音乐模式(爱奥尼亚人、多利安人...)
琶音风格(上升、下降、上升+下降、随机)
按钮:通过按下按钮播放相应的和弦进行。

同步
您可以将琶音的速度与 Korg Volca 同步:将琶音器的音频插孔连接到合成器的“SYNC OUT”。确保在arpeggiator.ino中以正确的方式配置源代码:

// Synchronization: choose one of two possible options:

#define EXT_SYNC

//#define INT_SYNC

取消EXT_SYNC对通过 SYNC IN 进行同步或通过 Poti 进行速度控制的注释INT_SYNC。

如果您对此项目有任何想法、意见或问题,请在下方留言。

原文链接丨以上内容来源网络,如涉及侵权可联系删除。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论