前言
在音乐学习或创作过程中,经常需要对吉他或其他乐器的和弦进行识别和转换,以方便进行流畅的编曲或演奏。现今,有许多和弦识别和转换工具,其中npm上的guitarics-chordify是一款功能丰富,易用性强的工具库,本文将为大家介绍如何使用该工具库。
安装npm包
在使用npm包之前,需要先在本地安装guitarics-chordify。可以通过以下命令进行安装:
--- ------- ------------------
使用方法
安装完成后即可在代码中引入guitarics-chordify:
----- -------- - ------------------------------
使用chordify库提供的API,即可实现和弦的各种操作。
和弦识别
guitarics-chordify提供了chordify.identify
方法用于对音频信号进行和弦识别。具体调用方法如下:
----- ----------- - ------------------------------ ----- - ------ - - ----- ------------------------------- --------------------
其中audioBuffer
是包含音频数据的缓冲区,chords
是识别出的和弦数组,数组中每个元素都表示其中的一个和弦。不过请注意,如果音频数据过于复杂,识别出的和弦可能不准确,需要进行优化。
和弦转换
guitarics-chordify提供了chordify.transpose
方法用于对和弦进行转换。调用方法如下:
----- ------------- - ----- ----- -------- - --------------------------------- --- ----------------------
其中originalChord
是原始和弦,2
表示需要向高音移动的半音数,newChord
表示转换后的新和弦。若想要向低音移动,将2
改为负数即可。
和弦检验
guitarics-chordify提供了chordify.isValid
方法用于检验和弦是否合法。调用方法如下:
----- ------- - ----------------------- ---------------------
其中G7
为需要检验的和弦,isValid
为返回值,表示和弦是否合法。如果和弦合法,则返回true
,否则返回false
。
实例分析
以识别和弦为例,假设我们需要将一段吉他演奏的音频文件进行和弦识别,并根据识别出的和弦进行创作,步骤如下:
- 使用Web Audio API将音频文件解码为
AudioBuffer
; - 引入
chordify
库,并调用chordify.identify
方法获取识别出的和弦数据; - 根据和弦数据进行创作。
示例代码:
-- -------------------- ----- -------- ------------------- - ----- --- - ----- ----------- ----- ----------- - ----- ------------------ ----- -------- - --- --------------- ----- ----------- - ----- -------------------------------------- ------ ------------ - -- ------- ----- -------- ----------------- - ----- ----------- - ----- -------------------- ----- - ------ - - ----- ------------------------------- -- --------------------- -------------------- - ----------------------------------------------
结语
本文详细介绍了npm包guitarics-chordify的使用方法,希望读者可以使用该工具库使自己的音乐学习和创作更加流畅。
参考及感谢
- npm官网:https://www.npmjs.com/
- guitarics-chordify官网:https://github.com/Guitarics/chordify
- Web Audio API文档:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API
- 示例代码引用自:https://github.com/Guitarics/chordify/blob/main/examples/simple-transposition?action=copy
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60065b44c6eb7e50355dbe4c