npm 包 emu 使用教程

什么是 emu?

emu 是一个轻量级的 JavaScript 库,它提供了一种简单的方法来处理 Web Midi API 中的合成器和控制器消息。我们可以很容易地使用它来创建和修改 MIDI 消息,播放 MIDI 数据,以及添加 MIDI 控制和音符等等。

安装和使用 emu

emu 可以通过 npm 来安装,我们可以在终端中输入以下命令进行安装:

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

安装完成后,我们就可以直接在代码中进行使用,以下是一个简单的示例代码:

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

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

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

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

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

上例代码中,我们首先引入 emu 库和 Web Midi API 库,然后使用 emu.init() 方法将 MIDI 输出设备传递给 emu,接着点击设备监听 MIDIMessage 事件,最后使用 emu.noteNumber() 方法创建一个 C4 音符实例,每 500ms 播放一次。

emu API

以下是 emu API 的详细介绍。

emu.init(device)

用于初始化 emu,需要传入 WebMidi 输出设备实例作为参数。

emu.noteOn(note, velocity)

用于播放按键按下的音符。note 是音符的名字,如 "C4",velocity 是音符力度,范围为 0-127。

emu.noteOff(note, velocity)

用于播放按键松开时的音符。note 是音符的名字,如 "C4",velocity 是音符力度,范围为 0-127。

emu.allNotesOff()

用于停止所有正在播放的音符。

emu.controlChange(controllerNumber, value)

用于修改控制器的值。controllerNumber 是控制器的编号,value 是控制器的值,范围为 0-127。

emu.pitchBend(value)

用于修改音高。value 是音高的值,范围为 -8192-8191,中间值为 0。

emu.allSoundOff()

用于停止所有正在播放的声音,并重置所有控制器的值。

结语

emu 是一个非常好用的 JavaScript 库,它简化了处理 MIDI 消息的过程,有助于提高 Web Midi 应用的开发效率。希望这篇教程能对大家学习和使用 emu 有所帮助!

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/62265


猜你喜欢

  • npm 包 grunt-transport-seajs 使用教程

    前言 在前端开发中,我们经常需要使用到一些前端框架和工具库,而这些库中的 js 文件可能会按照不同的需求分割成多个小文件,这样可以帮助我们更好地维护和管理代码。但是,在实际应用中,我们可能需要把这些小...

    6 年前
  • npm 包 brotli-webpack-plugin 使用教程

    什么是 brotli-webpack-plugin? brotli-webpack-plugin 是一个用于 Webpack 构建的插件,用于将资源进行 Brotli 压缩。

    6 年前
  • npm 包 babel-plugin-date-fns 使用教程

    前言 babel-plugin-date-fns 是一个可以帮助开发者使用 date-fns 库的 babel 插件。date-fns 是一个专门处理日期和时间问题的 JavaScript 库,比原生...

    6 年前
  • npm 包 source-map-explorer 使用教程

    简介 在开发前端项目时,我们通常需要将代码打包成压缩文件以便于传输和加载,同时也可以提高网站的加载速度。在此过程中,source map 技术则可以将压缩后的代码还原成开发阶段的源代码,以便于调试和快...

    6 年前
  • npm 包 dev-deps 使用教程

    在前端开发中,我们经常会使用各种 npm 包来帮助我们实现代码的功能和复用。而在使用这些 npm 包的过程中,我们可能会遇到一些依赖项的问题。例如,我们需要在开发 npm 包时引用一些用于测试和打包的...

    6 年前
  • npm 包 gulp-uglify-chylvina 使用教程

    入门 如果您正在学习前端开发,您可能已经听说过 npm。它是一个 Node.js 包管理器,允许您安装和管理开源软件包。 其中一个常见的任务是压缩 JavaScript 代码。

    6 年前
  • npm 包 showcar-storage 使用教程

    在前端开发中,常常需要使用到本地存储来存储用户信息或者其他数据。而 npm 包 showcar-storage 就是一个方便实用的本地 存储包。本文将详细介绍 showcar-storage 的使用教...

    6 年前
  • npm 包 showcar-pictures 使用教程

    在 Web 开发中,图片展示是非常常见的需求,我们通常需要使用一些库或者工具来实现图片的展示效果。showcar-pictures 就是一个非常优秀的图片展示库,它提供了丰富的功能和自定义选项,可以帮...

    6 年前
  • npm 包 showcar-icons 使用教程

    介绍 在前端开发中,图标是很重要的一个元素。showcar-icons 是一个非常方便的 npm 包,可以轻松地使用各种图标。 本文将介绍如何使用 showcar-icons,有关的代码示例。

    6 年前
  • npm 包 showcar-carousel 使用教程

    showcar-carousel 是一个非常强大的前端组件,支持多种轮播方式,并提供了很多扩展功能,非常适合用于开发网站的轮播组件。在这篇文章中,我们将为大家介绍 showcar-carousel 的...

    6 年前
  • npm 包 zepto-modules 使用教程

    zepto-modules 是一个轻量级的 JavaScript 库,它是针对移动设备优化的 jQuery 替代品。该库提供了丰富的 DOM 操作接口、事件处理、ajax 请求、动画和特效等功能,且可...

    6 年前
  • npm 包 susy 使用教程

    前言 在前端开发中,栅格系统是非常重要的一个概念,它可以帮助我们快速进行页面布局,而不必自己手动计算每个元素的宽度。Susy 就是一个非常好用的栅格系统框架,它提供了易于使用的 mixin,可以帮助我...

    6 年前
  • npm 包 recursive-readdir-sync 使用教程

    在前端开发中,我们经常需要读取和处理文件。而 recursive-readdir-sync 就是一个可以递归读取文件并返回文件名列表的 npm 包。本文将介绍如何使用 recursive-readdi...

    6 年前
  • npm 包 gulp-string-replace 使用教程

    在前端开发中,我们经常会遇到字符串的替换或者添加操作,比如我们需要将一个字符串中的所有 'http' 替换为 'https',或者在一段 HTML 中的所有 img 标签中添加一些自定义属性等等。

    6 年前
  • npm 包 git-pre-hooks 使用教程

    Git 是现代软件开发中使用最广泛的版本控制系统之一,随着 Git 的普及,越来越多的开发者开始寻求将 Git 集成到他们的开发流程中。一个常见的需求就是在 Git 的 hooks 中添加 pre-c...

    6 年前
  • npm 包 karma-ios-simulator-launcher 使用教程

    karma-ios-simulator-launcher 是一个 npm 包,可以用于在 iOS 模拟器上运行 JavaScript 单元测试。这个包可以在 karma 测试框架中使用,可以方便地进行...

    6 年前
  • npm 包 karma-electron 使用教程

    在前端开发中,测试技术非常重要。其中,单元测试和端到端测试是两种常用的测试方式。而 karma 是一款非常流行的、跨浏览器的 JavaScript 测试运行器,它可以方便地在多个浏览器中执行测试代码,...

    6 年前
  • npm包ensure-symlink使用教程

    简介 npm是现代JavaScript世界中广受欢迎的包管理工具,它可以为我们提供各种有用的工具和库,以提高我们的开发效率。其中,ensure-symlink是一种非常有用的npm包,可以使我们在开发...

    6 年前
  • npm 包 eyeglass-dev-eslint 使用教程

    简介 eyeglass-dev-eslint 是一个基于 ESLint 的 eyeglass 开发工具包,可以帮助开发者检查代码风格、发现代码错误,并规范代码编写。

    6 年前
  • npm 包 node-sass-utils 使用教程

    前言 在前端开发中,我们常常需要使用 Sass 去写样式,而对于一些常用的函数和 Sass 内置函数中没有的功能,我们可以使用 npm 包 node-sass-utils 来扩展 Sass 函数库,使...

    6 年前

相关推荐

    暂无文章