MIDI Jar是一个工具箱,适用于音乐家、学习者、流媒体,他们希望在设备之间路由MIDI消息,并在演奏时显示钢琴或监视器和弦,并将其集成到视频或带有OBS的Twitch流中。
出版
在Github上查看发布:
由于代码签名证书有点昂贵,MIDI Jar没有签名(还没有?)。如果您愿意在经济上帮助我签署这个应用程序,请随时与我联系。
因此,要在Windows上安装它,Windows Defender可能会阻止它,并警告您这可能很危险。无论如何,你仍然可以执行它。
然而,在MacOS上,.dmg或任何下载的未签名文件将被阻止,就像“应用程序已损坏且无法打开”一样。
下载后,您需要通过在终端中执行来取消对文件的隔离:
xattr -dr com.apple.quarantine <Your Downloaded File Name>
为什么是这个应用程序?
当我演奏时,我需要一种方法来显示钢琴和监控和弦,但没有找到正确操作的解决方案。因此,我创建了一个名为和弦显示的先前工具,在Web浏览器中进行操作,但由于Windows具有独家MIDI(一次只有一个软件可以使用相同的MIDI设备),我需要一个新的解决方案。此外,OBS BrowserSource无法使用MIDI设备,因此无法将其集成到Twitch流中。
MIDI Jar作为使用Electron制作的独立桌面应用程序修复了所有这些问题。
精选
MIDI Jar包括:
- 设备和内部模块之间的MIDI路由
- 和弦显示模块,用于显示钢琴和监看正在演奏的和弦
- 高度可定制的五分之一
- 和弦测验模块,具有不同的模式和设置进行训练
- 外部包含模块的HTTP/Websocket服务器(例如在OBS浏览器源中)
- 在启动时运行
- 在后台运行(没有窗口,只有托盘图标)
路由
您可以在设备之间或MIDI Jar的内部和外部模块之间路由MIDI,MIDI消息将在应用程序运行时被路由。
如果您只是想将消息从一个设备路由到另一个设备,这可以成为取代MIDI-OX等复杂软件的简单替代方案。
WINDOWS用户的注意事项:
Windows标准MIDI驱动程序是独一无二的,只能同时将一个软件连接到设备。
如果您想将MIDI Jar与DAW等其他软件或独立VST一起使用,您应该安装Tobias Erichsen的loopMIDI。
您将能够创建多个虚拟MIDI设备(环回)并将MIDI消息路由到它。此外,这些虚拟设备是非独家的,因此多个软件可以使用它们。
潜伏期
MIDI Jar可能会引入MIDI消息的延迟。我尽了最大努力将其保持在尽可能低的水平,在路由设置页面中,您可以看到配置引入的延迟:这只是添加到现有延迟的延迟,从MIDI Jar收到消息并将其转发到其他设备和模块时。
任何其他延迟(由于USB、您的设备驱动程序或LoopMidi环回)都不会被考虑在内。
我的测试average additional latency < 0.2ms
,但这可能因PC配置、路由和CPU使用率而有很大差异,并且可能会发生一些冻结。
和弦显示
和弦显示是MIDI Jar的一个模块,用于显示钢琴键盘和演奏的和弦。
它基于音调,但具有自定义和弦字典和修改后的和弦检测功能,允许省略间隔(取决于字典)。
要使用它,请将您的MIDI设备路由到内部chord-display
输出。
音乐符号
您可以在和弦显示中启用标准乐谱显示。
它使用VexFlow实现,并支持在任何主要键中显示注释。
注意:具有7次以上更改的密钥签名将自动更改为等效的主要密钥(例如G#
将产生Ab
的关键签名)。
免责声明:由于我不太喜欢阅读和写音乐,和弦显示符号可能是错误的……如果是这样,请毫不犹豫地发布问题。
在设置中自定义
和弦显示渲染可在设置中自定义:
- 键盘:
- 键盘长度:开始和结束音符
- 包装:用不同的颜色在键盘外显示笔记
- 主题:
classic
– 一架看起来很古典的钢琴flat
– 单行上的简化版本
- 尺寸:更改特定皮肤的显示尺寸。
- 颜色:黑色和白色,播放&持续&包装音符。
- 启用钢琴上的一些信息:
key names
– 键上显示的名称(无,只有C,音高类或音符)key info
-键上的附加信息显示(无,音点,和弦间隔)label
-播放键上方的附加信息显示(无,音高类,音符,和弦间隔)
- 淡出持续时间:密钥在发布时延迟消失
- 持续笔记:可以在展示中禁用
- 自定义元素:
chord
– 检测到的和弦alternative chords
-其他检测到的和弦名称列表(如果有的话)chord name
-和弦的全名chord notation
– 选择和弦的标注方式long
– maj, min, dom, dim, augshort
– M,m,昏暗,8月symbol
– Δ,-,°,+
allow omissions
-检测省略间隔的和弦(如5P、9M和11P)use sustain
-是否应该使用持续音符进行检测(也禁用持续音符的显示)highlight chord alterations
-更清晰地显示和弦部分notation
– 演奏笔记的五线谱符号piano
– 显示你播放的音符的键盘intervals
– 构成和弦的间隔列表
通过CSS自定义
OBS浏览器源允许您在页面中注入任何CSS,因此您可以向现有布局添加任何样式,例如:
禁用背景图像:
body { background: none !important; color: white; }
删除检测到的和弦:
#chord {
display: none;
}
删除低音音符/斜线和弦符号:
.chord-root {
display: none;
}
删除播放的笔记:
#notes {
display: none;
}
移除钢琴键盘:
#keyboard {
display: none;
}
更改显示顺序:
#keyboard {
order: 1;
}
#container {
order: 2;
}
#notes {
order: 3;
}
#intervals {
order: 4;
}
更改文本颜色:
body {
color: #fff;
background: transparent;
}
更改和弦大小和位置:
#chordDisplay {
align-items: flex-end;
justify-content: flex-end;
padding: 2vh;
flex-direction: column-reverse;
}
#container {
align-items: flex-start;
justify-content: space-between;
}
#chord {
flex-grow: 0;
font-size: 10vh;
}
#notes {
display: none;
}
#alternativeChords {
display: none;
}
#intervals {
font-size: 2vh;
}
#notation {
color: black;
width: 300px;
height: 300px;
background: rgba(255, 255, 255, 0.3);
border-radius: 32px;
margin-top: 16px;
}
和弦词典
Chord Dictionary是MIDI Jar的一个模块,用于浏览软件中所有可用的和弦,这是一个定制的词典。
您可以从MIDI Jar的主视图访问它,或通过单击chord-display
模块中的和弦名称来访问它。
它还允许您自定义和使用preferred
和弦符号的所有其他模块中的和弦显示方式:
- 您可以选择要显示的和弦别名(而不仅仅是
long
、short
或symbol
味道) - 您可以禁用
chord-display
模块检测到的和弦类型。
此模块也可以是交互式的,因此您需要将MIDI设备路由到chord-dictionary
输出,以使字典在两种可能的模式下工作:
- 检测:播放时自动浏览检测到的和弦页面。不是检测到的和弦部分的音符将以红色显示,正确的间隔将以绿色显示。
- 播放:禁用自动浏览,但仍对当前显示的和弦显示正确和不正确的间隔。
第五圈
The Circle of Fifths是一个音乐理论工具,可以帮助理解和写作音乐。
此模块允许您轻松选择正在播放的密钥签名,并显示音符。
它将根据您的选择做出反应(绿色):
on Chords
:与当前播放的和弦最对应的圆区将被突出显示on Notes
:代表演奏音符的所有扇区都将突出显示
您可以通过添加/删除车轮的部分来自定义其渲染:
Display Major
:显示大五度的圆圈Display Minor
:显示小五度的圆圈Display Diminished
:显示减小五分之一的圆圈Main Scale
:选择大调或小调中哪个在圆圈中首先显示Display Dominant Chords
:为每个键添加一个包含相应主和弦(和替换)的部分-V7、bVII7、bII7和III7Display Suspended Chords
:在暂停的每个次要键和主要键周围添加扇区。它们的位置对应于它们在相邻五度中的反转(例如:Csus2可以反转为Gsus4,因此它位于C和G之间)。Display Alterations
:显示相应密钥签名的♭或♯的数量Display Modes
:在相应键上方显示谐波模式(例如,当在C离子时,下一个第五个谐波模式是G mixolydian)Display Degree
:为每五分之一添加带有学位和名称的标签Display Degree Label
:在关键部门内增加学位。左边是大学位,右边是小学位。Highlight Sectors in the key
:以蓝色显示当前选定的关键刻度中的扇区
注意:五度圈通常用于显示音符,而不是和弦。但我发现它也适合和弦,特别是可视化度数之间的分辨率。圆圈中同一角部分的任何和弦都倾向于在音阶中达到第一度。这个模块更像是个人愿景,而不是标准表示。不要犹豫,禁用您不需要的部分。
HTTP/WS服务器-叠加
它允许在外部Web浏览器或OBS浏览器源中集成模块。例如,您可以将MIDI Jar集成到Twitch流中,或将其加载到其他计算机或手机上,以便在干扰时显示和弦,甚至使用Lively Wallpaper将其用作桌面壁纸。
所有MIDI Jar模块都可以从外部访问,例如,如果您想要多个键盘,或在OBS中自定义其排列,您可以创建任意数量的chord-display
模块。
目前,不支持外部更新设置,但这是计划好的。
音乐符号
音乐符号可以在和弦显示模块中显示,并通过五度圈进行更改。
您可以在设置中自定义它,这将影响所有模块(包括叠加):
Key Signature
:用于显示注释的密钥签名,以及用于在五线谱符号中选择密钥。Accidentals (when in C Key)
:显示flats
或sharps
Staff Clef
:用五线谱表示法显示的谱号Staff Transpose (in semitones)
:转录转放乐器的笔记
和弦测验
您可以使用和弦测验模块来训练钢琴。
每轮游戏,您都会收到一个您必须演奏的和弦,还将看到要演奏的下一个和弦(以预测您的手指动作)。
当您释放所有密钥时,您的答案将承诺,并可能导致本轮的不同分数:
different
:你没有演奏正确的和弦-你会失去分数subset
:你演奏了一些和弦的间隔-你不会获得所有的分数exact
:你演奏了被问到的和弦superset
:你玩了没有被要求的额外间隔(这被认为是奖金)
和弦的任何添加、重复或反转都会给你额外的分数。
您可以选择要玩的模式(算法):
random
:所有和弦都将在随机键签名中随机选择random in key
:所有和弦将从当前键签名(在符号设置中)中选择,在主要音阶+添加(旋律和和声更改)中。
最后,为了适应你的训练,你可以选择难度,每个级别都会在可能的列表中添加新的和弦:
Very Easy
:maj,minEasy
: maj7, majadd2, majadd4, maj6, min7, min6, minadd9, minadd4, minmaj7, dom7, sus4, sus2Medium
: maj9, maj11, maj13, majaddb2, majadd#4, majaddb6, maj6/9, maj6add11, maj6/11, maj7add11, maj7add13, majb5, majb9, min9, min11, min13, minaddb2, min6/9, min7add11, minaddb6, min#5, minb9, minmaj9, minmaj11, minmaj13, minmaj7b9, minmaj7add11, dim, dom9, dom11, dom13, dom7add6, dom7add11, dom7b9, sus2sus4, sus2maj7, sus4m7, dom7sus2, dom7sus4, domHard
: maj6#11, maj7add#11, maj7addb13, maj7b5, maj#9, maj#11, maj11b9, minaddb6addb9, min7#5, minb11, min#11, min7#11, min11b13, minmaj7#5, minmaj7addb13, minmaj7b11, minmaj7#11, dimmmaj7, dim7maj7, min7b5, dom7b5, dom7add#11, dom7addb13, dom7#9, dom11b9, dom13b9, sus2maj11, sus2maj7add13, sus4m13, dom7sus4b9, dom13sus4, augmaj7Very Hard
: maj6/9add#11, maj9b5, maj9#9, majb9, maj9#9, maj#11b9, maj11#9, maj13#5, min9#5, min11#5, min13#5, min11b11, minmaj9addb13, minmaj9addb13, minmaj9#11, minmaj11, minmaj11b11, min9b5, min7b5b5, dom9b5, dom11b5, dom13b5, dom9b5, dom9, dom9addb13, dom7b9#9#9, dom7b9#11, dom7b9b13, dom11, dom11, dom11susb2, dom7susAll Chords
:字典的其余部分
如果游戏模式太烦人,您可以关闭评分、反应,并选择显示或不显示要求的间隔,但请记住,游戏化只是为了好玩,没有持续的记分牌或高分,它只是一个帮助探索的工具。
希望将来,这个模块将能够有一个“智能”模式,能够生成具有关键变化的随机和弦进行。
然后呢?
建筑
该项目使用Electron & Webpack构建:
npm install
npm run start
-or-
npm run package
计划的功能/想法
- 简单路由(v1)
- 和弦显示(v1)
- OBS的HTTP/WS叠加(v1)
- 显示标准符号
- 第五圈
- 和弦测验
- 和弦词典
- Tonnetz图表
- 更多键盘主题
- 虚拟键盘(使用PC键盘作为MIDI设备)
- 可视化/垂直滚动笔记
- 音板
- MIDI录音(播放/备份)
- 铬麻醉
- 高级路由(拆分键盘、过滤器、速度/值重新映射)
- 外部更新设置(HTTP/WS)
贡献/错误
该项目完全开放,希望得到一些反馈和新想法。请随时打开问题或打开合并请求。
对于任何UI或UX错误,请打开一个问题。
如果您发现意外的和弦检测,请参阅音调/音调问题,并使其完美工作。
信用
- 音调:Javascript的功能性音乐理论库,用于检测和弦并处理MIDI音符
- VexFlow:用于渲染乐谱和吉他曲谱的JavaScript库。
- node-midi / @julusian/midi:提供实时MIDI I/O的RtMidi C++库的node.js包装器。
- React Flow:高度可定制的库,用于构建基于交互式节点的UI、编辑器、流程图和图表。它允许MIDI Jar具有带有节点和可拖动边缘的可理解的MIDI路由。
- 反应电子锅炉板:电子中可扩展跨平台应用程序的基础,MIDI Jar的基础锅炉板。
这个网站是开源的。改进此页面。
转载请注明:Audioba-音频吧编曲混音资源网 » MIDI Jar和弦显示软件 MIDI键盘链接显示音符和弦 和弦五度圈工具