@lainnao/chord-progression-parser-bundler
v0.6.2
Published
a converter from chord progression strings to AST
Downloads
16
Maintainers
Readme
chord-progression-parser
A converter from chord progression strings to AST built in Rust that outputs wasm, so it can be used from JavaScript too.
NOTE: This library releases multiple packages.
- Rust: https://crates.io/crates/chord-progression-parser
- JS/TS(bundler): https://www.npmjs.com/package/@lainnao/chord-progression-parser-bundler
- JS/TS(server): https://www.npmjs.com/package/@lainnao/chord-progression-parser-node
- JS(CDN): https://www.npmjs.com/package/@lainnao/chord-progression-parser-web
Example
You can try it on CodeSandbox
Documents
How to use
Rust
Install
cargo add chord-progression-parser
And use
use chord_progression_parser::parse_chord_progression_string; fn main() { let input: &str = " @section=Intro [key=E]E - C#m(7) - Bm(7) - C#(7) F#m(7) - Am(7) - F#(7) - B @section=Verse E - C#m(7) - Bm(7) - C#(7) F#m(7) - Am(7) - F#(7) - B "; let result = parse_chord_progression_string(input); println!("{:#?}", result); }
JavaScript/TypeScript (using bundler, like Vite, or If you are using Next.js)
Install (example, use with
Vite
)npm install @lainnao/chord-progression-parser-bundler npm install -D vite-plugin-wasm
Edit
vite.config.js
import { defineConfig } from "vite"; import wasm from "vite-plugin-wasm"; export default defineConfig({ plugins: [wasm()], });
And use
import { parseChordProgressionString } from "@lainnao/chord-progression-parser-bundler/chord_progression_parser"; const result = parseChordProgressionString("C"); console.log(result);
JavaScript/TypeScript (server like Node.js, Bun)
Install
npm install @lainnao/chord-progression-parser-node
And use
import { parseChordProgressionString } from "@lainnao/chord-progression-parser-node/chord_progression_parser"; const result = parseChordProgressionString("C"); console.log(result);
JavaScript(CDN)
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <h1>load wasm directly example</h1> <h2>parse C</h2> <pre id="result"></pre> <script type="module"> import * as mod from "https://cdn.jsdelivr.net/npm/@lainnao/[email protected]/chord_progression_parser.js"; (async () => { // initialize wasm await mod.default(); // use const result = mod.parseChordProgressionString("C"); console.log(result); document.querySelector("#result").innerHTML = JSON.stringify( result, null, 2 ); })(); </script> </body> </html>