# @a2f0/dnbm 中文文档

规范地址：https://npmcn.com/package/%40a2f0/dnbm/

版本：0\.4\.34
npm 元数据更新时间：2026-11-06T20:50:44.270Z
中文译文更新时间：2026-11-06T03:34:57.759Z
软件包许可：UNLICENSED

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40a2f0/dnbm
原文对照：https://npmcn.com/package/%40a2f0/dnbm/?lang=original
项目主页：https://dnbm.a2f0.net/
源码仓库：https://github.com/a2f0/dnbm

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.1 MB，47 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- 首次发布：2026-10-06T16:07:08.669Z
- 最新版本发布：2026-11-06T20:50:43.910Z
- 近 30 天下载量：5488（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：45（近 12 个月 45 个）

## 中文简介

一个深色鼓和低音序列器、混音器和播放器,带有WebAssembly音频引擎,准备嵌入一页

## 安装

```sh
npm install @a2f0/dnbm
```

也可以使用：`pnpm add @a2f0/dnbm`、`yarn add @a2f0/dnbm`、`bun add @a2f0/dnbm`

## README

# 数字

浏览器中的暗鼓和低音序列和混音器. 步骤上的程序模式 网格,将其安排成一首歌曲,与每道过滤器相混合,驱动和发送,以及 将歌曲保存为纯文本, 在 Git 中清晰地 diff 并合并 . 此回波可在网络上获取 [https://dnbm.a2f0.net (中文(简体) )](https://dnbm.a2f0.net/)。它的玩家,在 [https://dnbm.a2f0.net/ player/ (中文(简体) )](https://dnbm.a2f0.net/player/),作为播放列表播放示例歌曲.

声音来自编译为Web Assembly的Rust引擎并运行在AudioWorklet上. 每个鼓和贝斯的声音都是被合成的,而不是被采样的;步骤落在确切的样品上 同一引擎使WAV文件脱机。 一首歌听起来一样 浏览器,在导出和命令行中.

独立网站使用 [CT 点击跟踪](https://npmcn.com/package/%40a2f0/dnbm/docs/click-tracking.md)。嵌入式应用程序 离开追踪他们的宿主.

## 快开始

安装 [爱](https://mise.jdx.dev/) 财务报告和审定财务报表 [生锈](https://rustup.rs/); 锈蚀安装 工具链和WebAssembly目标 `rust-toolchain.toml` 开始使用.

```sh
mise install                      # Bun, Node, ShellCheck and wasm-opt (see .mise.toml)
bun install
bun run hooks:install             # once per clone
bun run dev                       # http://localhost:8174 (player: /player/)
```

编辑器打开了示例歌曲"下道";按下空间播放.

## 版式

| 路径 | 什麽 |
| --- | --- |
| `packages/sequencer/` | [编辑和混音器](https://npmcn.com/package/%40a2f0/dnbm/packages/sequencer/README.md),在现场的根 |
| `packages/player/` | [播放列表播放器](https://npmcn.com/package/%40a2f0/dnbm/packages/player/README.md),服务于 `/player/` |
| `packages/synth/` | 共享合成器: Rust 引擎,其 AudioWorklet 主机和歌曲格式 |
| `src/` | 联合国 `@a2f0/dnbm` 软件包 |
| `songs/` | 举个例子 |

[建筑](https://npmcn.com/package/%40a2f0/dnbm/docs/architecture.md) 描述套件如何组合在一起.

## 歌声

歌声是 `.dnbm.json` 文档。 每个图案行是一行,所以改变一个步骤 文件的一行 :

```json
"rows": {
  "kick": "X... .... ..X. .... | ..X. .... ..X. ....",
  "snare": ".... X... .... X... | .... X... .... X...",
  "reese": "F-1 --- --- ---  --- --- ... F-1  --- ... F-1 ---  F#1 --- --- ... | ..."
}
```

在Chrimium中,Save会写回您打开的文件,所以在 Git 检查出单中的一首歌可以 编辑、保存和投入到位. [歌曲格式](https://npmcn.com/package/%40a2f0/dnbm/docs/song-format.md) 描述每个字段.

```sh
bun run render songs/undertow.dnbm.json   # render to undertow.wav (24-bit, 48 kHz)
bun run songs:fmt                         # rewrite songs/ canonically
bun run songs:check                       # fail on an invalid or non-canonical song
```

举个例子 `songs/` 从编辑器打开 **实例** 菜单,以及播放器 全部弹出. **低调** f小调为172 BPM 滚筒:同步子和 Reese 低音,干后拍,鬼叫和稀有,被过滤的哑巴回声. 它的36个酒吧从 通过四巴变体进行简短的介绍,半场休息和较重的回报. 十个 更黑暗的歌曲,从巴斯耶尔的慢压和乌布丽特的裸细胞到腐蚀 工业研磨和Sever的技术步骤削减, 每一个比Undertow更长,所有建造 无人机和刺伤来自 `pad` 调试器 在缓慢的共振式滤波器下,锯成相隔一对.

## 软件包

dnbm 也作为 npm 发布 [`@a2f0/dnbm`](https://www.npmjs.com/package/@a2f0/dnbm), (中文(简体) ), 将整个应用程序嵌入到另一页或应用程序中,例如微型应用程序窗口:

```ts
import { copyDnbmAssets } from "@a2f0/dnbm/build"; // in a build script
await copyDnbmAssets("./public/dnbm");

import { mountDnbm } from "@a2f0/dnbm"; // in the browser
const dnbm = mountDnbm(container, { assetsUrl: "/dnbm/" });
await dnbm.ready; // it shows

import { mountDnbmPlayer } from "@a2f0/dnbm"; // or just the player
const player = mountDnbmPlayer(container, { assetsUrl: "/dnbm/", songs });
```

该应用程序在主机自己的文档中, 在保留其样式的阴影根中制作 和主机分开, 并且只取按在它里面的密钥。 一个主机自己 控件,例如窗口的菜单和工具栏,可以驱动它:每个实例运行 命令 (`dnbm.run("save")`),报告其状态(演奏,歌曲的标题,未保存) 更改,哪些命令可供使用),并在更改时告知订阅者,以及 `actions: false` 为这些命令留下应用程序自己的按钮. [软件包指南](https://npmcn.com/package/%40a2f0/dnbm/docs/package.md) 覆盖嵌入和释放.

## 发展

```sh
bun run check   # everything CI checks; the pre-push hook runs it too; needs Google Chrome
bun run test    # build the engine, then the TypeScript tests
bun run engine:check   # rustfmt, clippy and cargo test
bun run fix     # format TypeScript, Rust and songs
```

见 [发展](https://npmcn.com/package/%40a2f0/dnbm/docs/development.md) 用于布局、脚本所有权和验证, [软件包发布](https://npmcn.com/package/%40a2f0/dnbm/docs/package.md#releases) 用于出版,以及 [扶养费](https://npmcn.com/package/%40a2f0/dnbm/docs/dependency-upgrades.md) 升级程序 和积极的制约因素.

## 常见问题

### @a2f0/dnbm 是什么？

一个深色鼓和低音序列器、混音器和播放器,带有WebAssembly音频引擎,准备嵌入一页

### 如何安装 @a2f0/dnbm？

在项目目录运行 npm install @a2f0/dnbm，或使用 pnpm add / yarn add / bun add。

### @a2f0/dnbm 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @a2f0/dnbm 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @a2f0/dnbm 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @a2f0/dnbm 可以商用吗？

@a2f0/dnbm 使用 UNLICENSED 许可。作者声明为 UNLICENSED，即不授予公开使用许可（与公共领域的 Unlicense 不同）。使用前需获得作者授权。以上为概括，不构成法律意见，请以许可原文为准。

### @a2f0/dnbm 的下载量有多少？

根据 npm 官方下载统计，@a2f0/dnbm 在 2026/10/05 – 2026/11/03 这 30 天内被下载 5,488 次，日均约 183 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @a2f0/dnbm 还在维护吗？

最新版本 0\.4\.34 发布于 2026/11/07（今天）；至今共发布 45 个版本，其中过去 12 个月发布了 45 个；首次发布于 2026/10/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

