npm 包 melody 使用教程

阅读时长 5 分钟读完

Melody 是一个基于 Web Audio API 实现的用于音频合成的 npm 包。它提供了一种方便的方式用 JavaScript 代码创建音乐和声音效果,且能够兼容绝大部分现代浏览器。

在本文中,我们会介绍 Melody 的基本用法和一些常见的应用场景,并通过示例代码详细展示它的使用方法。

安装

使用 npm 族指令安装 Melody 十分简单。

打开终端(或命令行工具)并输入:

基本用法

Melody 提供了三个主要的音频实体类:Melody, TrackEffect。在使用 Melody 时,我们通常先要创建一个 Melody 实例,然后向它添加一个或多个 Track,最后再增加一些 Effect 以调节音效。

首先,我们来创建一个 Melody 实例。在代码中输入:

现在我们已经创建了一个名为 melody 的 Melody 实例。接下来,我们需要向它添加一个 Track 实体来生成音频。

在 Melody 实例中, createTrack() 方法接受一个可选的参数来指定音频实体的类型。在上述代码中,我们通过 { sound: "sine" } 参数来告诉 Melody ,我们将使用“正弦”音色来生成音频。

这里的 track.addEvent() 方法可用于向音频轨道中添加音频事件。在代码中,我们通过添加 { time: 0, duration: 1, note: "C4", velocity: 128 } 参数来指定我们的音频事件,它将在 time(0 秒)开始播放,并持续 duration(1 秒)。

最后,在调用 melody.play() 方法后,将开始播放生成的音乐。

应用场景

创建节奏

我们可以使用 Melody 来生成令人兴奋的节奏。下面的代码通过添加多个音频事件来构建一个四分音符。

-- -------------------- ---- -------
----- ----- - -------------------- ------ ------ ---
----- ------ - -
  - ----- -- --------- ---- ----- ----- --------- --- --
  - ----- ---- --------- ---- ----- ----- --------- --- --
  - ----- -- --------- ---- ----- ----- --------- --- --
  - ----- ---- --------- ---- ----- ----- --------- --- --
--

---------------------- -- -----------------------

在这个例子中,我们根据时长(0.5 秒)和音符(C5、G5、A5)设置了一个时间表,以创建一个有趣的节奏。

创建和弦

我们也可以使用 Melody 来生成和弦,比如 C 大调的和弦:

-- -------------------- ---- -------
----- ------ - -------------------- ------ ------ ---
----- ------ - -------------------- ------ ------ ---

-- ---------
----------------- ----- -- --------- -- ----- ----- --------- --- ---
----------------- ----- -- --------- -- ----- ----- --------- --- ---
----------------- ----- -- --------- -- ----- ----- --------- --- ---

----------------- ----- -- --------- -- ----- ----- --------- --- ---
----------------- ----- -- --------- -- ----- ----- --------- --- ---
----------------- ----- -- --------- -- ----- ----- --------- --- ---

-- ---------
----- ---------- - ------------------- ---------
------------------------

在这里,我们在两个不同的音频轨道上创建了两个 C 大调的和弦。然后,我们使用 melody.mix() 方法混合它们,以便它们一起播放。

添加音效

Melody 可以添加音效来增强音频的魅力。下面我们用 Phaser 效果添加光滑效果:

-- -------------------- ---- -------
------ - ------------ - ---- ---------

----- ----- - -------------------- ------ ------ ---
---------------- ----- -- --------- -- ----- ----- --------- --- ---

-- -- ------ --
----- ------ - --- ---------------
------------------------

--------------

在上述代码中,我们通过使用 import { PhaserEffect } from "melody" 引入了 Phaser 特效库的模块。然后,我们在音频轨道中添加了 PhaserEffect 特效实例,并将其作用于音频轨道。

总结

Melody 是一个极其强大又易于使用的 npm 包。它底层使用 Web Audio API,以方便地从 JavaScript 代码中生成音频和添加效果。希望本文对您有所帮助,您可以通过参考本文示例代码来快速上手开始使用 Melody。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f3e1d8e776d08040aef

纠错
反馈