{"id":51463134,"url":"https://github.com/vkamolov/obsidian-drum-notation","last_synced_at":"2026-07-06T08:00:26.633Z","repository":{"id":368855839,"uuid":"1259869453","full_name":"vkamolov/obsidian-drum-notation","owner":"vkamolov","description":"Render and play drum kit notation blocks in Obsidian notes.","archived":false,"fork":false,"pushed_at":"2026-07-02T12:55:25.000Z","size":855,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-02T14:33:07.082Z","etag":null,"topics":["drums","music","notation","obsidian","obsidian-plugin"],"latest_commit_sha":null,"homepage":"https://vkamolov.github.io/obsidian-drum-notation/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vkamolov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-05T00:12:28.000Z","updated_at":"2026-07-02T12:55:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vkamolov/obsidian-drum-notation","commit_stats":null,"previous_names":["vkamolov/obsidian-drum-notation"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/vkamolov/obsidian-drum-notation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vkamolov%2Fobsidian-drum-notation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vkamolov%2Fobsidian-drum-notation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vkamolov%2Fobsidian-drum-notation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vkamolov%2Fobsidian-drum-notation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vkamolov","download_url":"https://codeload.github.com/vkamolov/obsidian-drum-notation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vkamolov%2Fobsidian-drum-notation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35182322,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drums","music","notation","obsidian","obsidian-plugin"],"created_at":"2026-07-06T08:00:19.907Z","updated_at":"2026-07-06T08:00:26.625Z","avatar_url":"https://github.com/vkamolov.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Obsidian Drum Notation\n\n[![CI](https://github.com/vkamolov/obsidian-drum-notation/actions/workflows/ci.yml/badge.svg)](https://github.com/vkamolov/obsidian-drum-notation/actions/workflows/ci.yml)\n\nRender drum kit patterns as graphical SVG percussion staff notation in Obsidian, with playback.\n\nSee [docs/notation-format.md](docs/notation-format.md) for the full notation format reference.\n\n## Beta Notes\n\n- `0.9.4` adds low-noise row-length warnings for likely accidental bar-length\n  mismatches, such as a 17-slot row in 4/4 Grid 16. Short shorthand examples\n  like `HH | x---` remain warning-free.\n- `0.9.3` adds advisory parser warnings in Obsidian and the playground for\n  ignored rows, fallback settings, unsupported characters, and removed settings.\n  Warnings do not block rendering, playback, or visual editing.\n- `0.9.2` corrects Grid-16 engraving and buzz/legend durations to follow the\n  written distance to the next hit. Three hits in one Grid-16 count no longer\n  imply a triplet; use compound meters such as 6/8 or 12/8 for triplet-feel\n  practice until explicit triplet syntax is added.\n\n## Create A Notation\n\nYou can start without writing drum rows manually:\n\n- In an open Markdown editor, run **Drum Notation: Insert notation block** from\n  the Command palette. Choose the title, tempo, time signature, and grid, then\n  the plugin inserts a complete fenced `drums` block with one empty HH/SD/BD\n  bar at the cursor.\n- If you already created an empty top-level `drums` block, switch to Reading\n  view and press **Create first bar** in the rendered block. Existing Title,\n  Tempo, Time, and Grid values prefill the setup window.\n\nThe setup window shows the calculated bar length before creating it, such as\n`7/8 · Grid 16 · 14 slots`. When visual edit mode is enabled, creating the\nfirst bar opens it immediately for editing.\n\n## Basic Example\n\nCreate a fenced code block with the language `drums`:\n\n````\n```drums\nTitle: Basic rock groove\nTempo: 100\nTime: 4/4\nCount: 1 e \u0026 a 2 e \u0026 a 3 e \u0026 a 4 e \u0026 a\nHH | x-x-x-x-x-x-x-x-\nSD | ----o-------o---\nBD | o-------o-o-----\n```\n````\n\nIn reading view, the plugin renders the block as page-width percussion staff notation and adds **Play**, **Stop**, **Loop Bar**, **Loop All**, playback-speed, metronome, instrument-mute, and **Edit** controls. For training, playback speed offers 25%, 50%, 75%, and 100% of the written tempo. The metronome menu offers **Off**, **With drums**, and **Metronome only**; the first pulse of each bar is accented. Compound meters use grouped pulses, such as two clicks per bar in 6/8 and four in 12/8. The mute menu lists only instruments used in the current notation and mutes each canonical voice independently.\n\nSpeed, metronome, and mute choices are playback-only: they do not change the fenced notation text. Obsidian resets them when the rendered block is recreated; the playground keeps them for the current page session. Changing any of these controls during playback restarts from the current slot while preserving the active Play/Loop mode. Instrument mutes do not silence the metronome. Muting affects transport playback only, so clicking a rendered note or previewing an editor cell remains audible.\n\nOn mobile, if playback becomes silent after Obsidian was backgrounded or another audio app was used, tap **Play** again. If sound does not recover, relaunch Obsidian. This can happen when the mobile WebView audio session is interrupted.\n\nAdd `Cursor: on` if you want a blinking cursor to follow playback. Click a rendered note to preview that hit or stacked chord.\n\n## Visual Edit Mode\n\nVisual edit mode is opt-in because it writes changes back to your notes. Enable **Drum Notation → Enable visual edit mode** in the plugin settings first. Then, in Obsidian reading view, press **Edit** to open a selected-bar grid below the rendered score. Click or tap a rendered bar to choose which bar the grid edits. Empty cells add a normal hit; filled cells select the hit and show the articulation tool strip. Edits apply immediately to the rendered notation and are saved back into the fenced `drums` block when you close visual edit mode or when Obsidian unloads the rendered block.\n\nVisual edit mode is intentionally limited in v1:\n\n- It is available in reading view only. Live Preview/source-mode visual editing is planned, but remains read-only for now to avoid conflicts with Obsidian's active editor buffer.\n- It edits only top-level `drums` fences. Blocks nested inside callouts, lists, or indented Markdown are rendered and playable, but visual editing is disabled.\n- The first visual edit serializes the whole block in the plugin's canonical authoring form. This keeps the model safe and deterministic, but it may normalize spacing, labels, header order, and equivalent hit characters.\n- One-bar repeat bars are selectable and can be marked/unmarked with the grid controls, but the repeated bar body itself remains read-only.\n\n## Settings\n\nPut settings at the top of the block:\n\n```drums\nTitle: Groove title\nAuthor: Your name\nComment: Practice slowly, then loop it.\nTempo: 120\nTime: 7/8\nSubtitle: Verse\nRepeat: 4\nCursor: on\nHighlight: on\nLegend: off\nGrid: 16\n```\n\nSupported settings:\n\n| Setting | Example | Notes |\n| --- | --- | --- |\n| `Title:` | `Title: Linear fill` | Shown above the rendered score. |\n| `Subtitle:` | `Subtitle: Verse` | Labels the current rendered staff line and all inline bars on it. |\n| `Tempo:` or `BPM:` | `Tempo: 96` | Playback tempo, clamped between 30 and 260 BPM. |\n| `Time:`, `Meter:`, or `Time Signature:` | `Time: 6/8` | Drawn on the staff. |\n| `Repeat:` or `Repeats:` | `Repeat: 4` | Plays the whole block this many times when pressing **Play**. |\n| `Cursor:` or `Playback Cursor:` | `Cursor: on` | Shows or hides the blinking playback cursor. Defaults to `off`. |\n| `Highlight:`, `Note Highlight:`, or `Playback Highlight:` | `Highlight: off` | Highlights the note/chord that is currently sounding. Defaults to `on`. |\n| `Legend:`, `Instrument Legend:`, or `Kit Legend:` | `Legend: all` | Shows a compact color key. Use `on`/`used` for instruments in the current block, `all` for the full supported kit, or `off` to hide it. Defaults to `off`. |\n| `Grid:`, `Subdivision:`, or `Resolution:` | `Grid: 32` | Sets one source character to a sixteenth note (`16`, default) or thirty-second note (`32`). |\n| `Author:` | `Author: Test Author` | Stored as metadata. |\n| `Comment:` | `Comment: Test Comment` | Stored as metadata. |\n| `Count:` | `Count: 1 e \u0026 a 2 e \u0026 a` | Useful source-code guide while editing. |\n\n`Title:` names the complete notation block. `Subtitle:` is optional and belongs\nto one rendered staff line. Put another `Subtitle:` after a `Bar` separator to\nlabel the next line. Long subtitles wrap above the staff on narrow screens.\n\n## Instrument Rows\n\nEach instrument row is:\n\n```text\nLABEL | pattern\n```\n\nThe pattern is one character per grid slot. By default one character is a sixteenth note. Use `Grid: 32` when one character should be a thirty-second note. Put hits in the same column to stack them, such as kick plus hi-hat foot.\n\n| Labels | Instrument |\n| --- | --- |\n| `BD`, `KD`, `Kick` | Kick |\n| `BD2`, `KD2`, `Kick2`, `Bass Drum 2` | Second kick / second bass drum |\n| `HF`, `HHF`, `Foot Hat`, `Hi-hat Foot` | Hi-hat foot |\n| `HFS`, `HHFS`, `Foot Splash`, `Hi-hat Splash` | Hi-hat foot splash |\n| `SD`, `SN`, `Snare` | Snare |\n| `RS`, `Rim`, `Cross`, `Cross-stick` | Rim/cross-stick |\n| `HH`, `CH`, `Close`, `Hat`, `Hi-hat` | Closed hi-hat |\n| `OH`, `Open Hat` | Open hi-hat |\n| `HO`, `HHO`, `Half-open Hat`, `Half-open Hi-hat` | Half-open hi-hat |\n| `RD`, `Ride` | Ride |\n| `RB`, `Ride Bell`, `Bell` | Ride bell |\n| `CR`, `Crash` | Crash |\n| `SP`, `Splash` | Splash cymbal |\n| `China` | China cymbal |\n| `Stack` | Stack cymbal |\n| `HT`, `RT`, `T1`, `Rack Tom` | High rack tom |\n| `MT`, `T2` | Mid rack tom |\n| `LT`, `T3` | Low rack tom |\n| `FT`, `Floor Tom` | Floor tom |\n| `LFT`, `Low Floor Tom` | Low floor tom |\n| `CB`, `Cowbell` | Cowbell |\n\n`SD` uses a fuller synthesized snare sound. `RS` / cross-stick stays shorter and clickier. `BD2` / second kick is for double-bass-pedal notation and renders below the main kick while using the same synthesized kick voice. `RD`, `RB`, `CR`, `SP`, `China`, and `Stack` use separate synthesized cymbal voices so their playback is distinguishable; ride bell is distinct from cowbell and renders as a diamond notehead on the ride line. `OH` / open hi-hat renders with the standard open-circle mark above the note. `HO` / half-open hi-hat renders the open circle with a vertical line through it. `HFS` / hi-hat foot splash renders as a circled x on the foot-hat line.\n\n## Sticking\n\nAdd a global right/left/both-hands sticking lane with `ST`, `Stick`, `Sticking`,\nor `Hands`. It is slot-aligned with the drum rows and display-only, so it does\nnot affect playback.\n\n````\n```drums\nTitle: Sticking example\nST | R-L-B-L-R-L-B-L-\nHH | x-x-x-x-x-x-x-x-\nSD | ----o-------o---\nBD | o-------o-------\n```\n````\n\n## Color Legend\n\nThe legend is hidden by default. Add `Legend: on` to show a color key for only the instruments used in the block, or `Legend: all` to show every supported instrument. When the legend is visible, noteheads are colored to match the legend while staff lines, stems, beams, and notation marks keep the notation color scheme. During playback and clicked-note previews, the active instrument symbols in the legend briefly pulse when note highlighting is enabled.\n\n````\n```drums\nTitle: Full Supported Kit - Separate Sounds Test\nTempo: 80\nTime: 4/4\nGrid: 16\nLegend: all\n\nCR    | x--------------- | ----------------\nSP    | -x-------------- | ----------------\nChina | --x------------- | ----------------\nStack | ---x------------ | ----------------\nRD    | ----x----------- | ----------------\nRB    | -----x---------- | ----------------\nOH    | ------x--------- | ----------------\nHO    | -------x-------- | ----------------\nHH    | --------x------- | ----------------\nHF    | ---------x------ | ----------------\nSD    | ----------o----- | ----------------\nRS    | -----------x---- | ----------------\nHT    | ------------o--- | ----------------\nMT    | -------------o-- | ----------------\nLT    | --------------o- | ----------------\nFT    | ---------------o | ----------------\nLFT   | ---------------- | x---------------\nCB    | ---------------- | -x--------------\nBD    | ---------------- | --o-------------\nBD2   | ---------------- | ----o-----------\n```\n````\n\n## Starting A New Bar\n\nUse `|` inside an instrument row to split measures. Inline measures stay on the same rendered staff line with a visual bar divider:\n\n````\n```drums\nTitle: Two-bar groove\nTempo: 104\nTime: 4/4\nHH | x-x-x-x-x-x-x-x- | x-x-x-x-x-x-x-x-\nSD | ----o-------o--- | ----o---o---o---\nBD | o-------o-o----- | o-o-----o-------\n```\n````\n\nUse `Bar:` to force a new rendered staff line. This is useful when the next bar uses a different set of instruments.\n\n````\n```drums\nTitle: Groove then fill\nTempo: 104\nTime: 4/4\n\nSubtitle: Main groove\nHH | x-x-x-x-x-x-x-x-\nSD | ----o-------o---\nBD | o-------o-o-----\n\nBar:\nSubtitle: Fill\nRD | x-x-x-x---------\nHT | --------o-o-----\nMT | ------------o-o-\nFT | --------------oo\nBD | o---o---o---o---\n```\n````\n\n`Bar:`, `Bar 2:`, `Measure:`, and `New Bar:` all work as separators. A\n`Subtitle:` before or among a system's rows labels that complete rendered line,\nincluding multiple inline bars. Normal **Play** runs through all bars in order.\n**Loop Bar** loops the declared bar containing the current cursor or last\nclicked note.\n\n## Subdivisions And Beams\n\nThe notation is a literal grid: `Grid: 16` means each character is a sixteenth\nslot, and `Grid: 32` means each character is a thirty-second slot. The renderer\nderives note values from the distance to the next hit inside each beat:\n\n| Pattern inside one 4/4 count | Rendered as |\n| --- | --- |\n| `x---` | Quarter note |\n| `x-x-` | Two eighth notes |\n| `x--x` | Dotted eighth plus sixteenth |\n| `xxxx` | Four sixteenth notes |\n| `xxxxxxxx` in `Grid: 32` | Eight thirty-second notes |\n\nHidden rests keep spacing exact when a gap cannot be represented by one simple\nor dotted note value. Three hits in a Grid-16 count are not treated as an\nimplicit triplet; use meters such as 6/8 or 12/8 for triplet-feel notation until\nexplicit triplet syntax exists.\n\n## Hit Characters\n\n| Character | Meaning |\n| --- | --- |\n| `x`, `o` | Normal hit |\n| `X`, `O`, `\u003e`, `!`, `#` | Accent |\n| `g` | Ghost note, drawn in parentheses with quieter playback |\n| `f` | Flam, drawn as a small grace note with connector and played as a soft grace hit |\n| `r` | Drag / ruff, drawn as two beamed grace notes with connector and played as two soft grace hits |\n| `d` | Diddle, drawn as a mid-stem slash and played as two hits inside the current grid slot |\n| `z`, `Z` | Buzz roll, drawn as a custom line-drawn `Z` through the note stem and played as a closed snare-roll texture |\n| `c` | Choked cymbal, drawn with a small plus mark and played with a short muted decay |\n| `-`, `.`, `_` | Rest |\n\nUse `c` on a cymbal row for a choked cymbal:\n\n````\n```drums\nTitle: Choked crash\nCC | c---------------\nBD | o---------------\n```\n````\n\n## Buzz Rolls\n\nUse `z` or `Z` on the snare row for a closed buzz roll / press roll. The rendered note shows a modern drumline-style custom line-drawn `Z` through the stem. During playback, snare buzz rolls use a continuous noise texture for the rendered note value, so a single buzz note on one beat sustains through that beat instead of sounding like one short tap.\n\n````\n```drums\nTitle: Buzz roll with release\nTempo: 84\nTime: 4/4\nSD | z-------z-----o-\nBD | o-------o-------\n```\n````\n\nFor long rolls, write consecutive buzz notes and end with a normal snare release note:\n\n````\n```drums\nTitle: Two-beat buzz roll\nTempo: 76\nTime: 4/4\nSD | z---z---o-------\nBD | o-------o-------\n```\n````\n\nBuzz-roll combinations:\n\n| Source | Result |\n| --- | --- |\n| `SD | z---` in `Grid: 16` | One buzz-roll note on the snare. If it is the only hit in that beat, it renders and plays for the beat value. |\n| `SD | z-z-` in `Grid: 16` | Two beamed buzz-roll notes inside the beat. |\n| `SD | zzzzzzzz` in `Grid: 32` | Written-out thirty-second buzz strokes, useful for very dense roll notation. |\n| `z` stacked with another row in the same column | Snare plays a buzz texture while the other instrument plays its normal hit. |\n| `z` followed by `o` | Buzz roll followed by a clean release note. |\n| `z` with `d`, `r`, `g`, `f`, `c`, or accent in the same snare cell | Not supported because each instrument row uses one character per slot. Use adjacent slots or written-out `Grid: 32` notes when you need more detail. |\n\n## Thirty-Second Notes And Diddles\n\nUse `Grid: 32` when you want to write every thirty-second-note slot directly:\n\n````\n```drums\nTitle: Written 32nd fill\nTempo: 96\nTime: 4/4\nGrid: 32\nSD | oooooooo------------------------\nHT | --------oooooooo----------------\nFT | ----------------oooooooo--------\nBD | o---------------o---------------\n```\n````\n\nUse `d` when you want compact drummer-style diddle notation:\n\n````\n```drums\nTitle: Diddle groove\nTempo: 100\nTime: 4/4\nGrid: 16\nHH | x-x-x-x-x-x-x-x-\nSD | d-------d-------\nBD | o---o---o---o---\n```\n````\n\nCombinations:\n\n| Source | Result |\n| --- | --- |\n| `Grid: 16` + `d` | One visible diddled note, played as two thirty-second-note hits. |\n| `Grid: 32` + `d` | One visible diddled thirty-second note, played as two faster hits inside that thirty-second slot. |\n| `Grid: 32` + written hits like `oooo` | Four explicit thirty-second notes. |\n| `d` stacked with another row in the same column | The diddled instrument plays twice; the other stacked instrument plays once. |\n| `d` with `X`, `g`, `f`, `r`, or `c` in the same cell | Not supported because each instrument row uses one character per slot. Use written-out `Grid: 32` notes when you need an accented, ghosted, flammed, dragged, or choked double. |\n\n## Full Kit Example\n\nThis example is inspired by the reference image and includes every supported row: cymbals, hi-hats, ride bell, cowbell, snare, cross-stick, ghost/flam/drag/choke strokes, rack toms, floor toms, kick, second kick, foot hi-hat, foot splash, and a stacked kick plus foot-hat hit.\n\n````\n```drums\nTitle: Full kit notation map\nAuthor: Test Author\nComment: Test Comment\nTempo: 92\nTime: 4/4\nCount: 1 e \u0026 a 2 e \u0026 a 3 e \u0026 a 4 e \u0026 a 5 e \u0026 a 6 e \u0026 a 7 e \u0026 a 8 e \u0026 a\nHH    | x-------------------------------\nOH    | -o------------------------------\nHO    | --x-----------------------------\nCR    | ---\u003e----c-----------------------\nSP    | ----x---------------------------\nChina | -----x--------------------------\nStack | ------x-------------------------\nRD    | -------x------------------------\nRB    | --------x-----------------------\nCB    | ---------x----------------------\nSD    | ----------g-----------f---------\nRS    | -----------\u003e--------------------\nHT    | ------------o-------------------\nMT    | -------------o------------------\nLT    | --------------o-----------------\nFT    | ---------------o----------------\nLFT   | ----------------o---------------\nBD    | -----------------o-------------X\nBD2   | --------------------o-----------\nHF    | ------------------x------------X\nHFS   | -------------------x------------\n```\n````\n\nBecause rows share the same grid, the final `X` on `BD` and `HF` creates a kick plus hi-hat-foot stack.\n\n## Odd Time Example\n\n````\n```drums\nTitle: Seven-eight groove\nTempo: 132\nTime: 7/8\nCount: 1 \u0026 2 \u0026 3 \u0026 4 \u0026 5 \u0026 6 \u0026 7 \u0026\nHH | x-x-x-x-x-x-x-\nSD | ----o-----o---\nBD | o-----o-o-----\n```\n````\n\nThe plugin currently treats each pattern character as a sixteenth-note slot for spacing and playback. The time signature controls the displayed meter.\n\nRest slots keep the rhythm spaced correctly, but rest symbols are hidden in the rendered score.\n\n## Repetition And Looping\n\nUse `Repeat:` to repeat the full block during normal playback:\n\n````\n```drums\nTitle: Repeated groove\nTempo: 108\nTime: 4/4\nRepeat: 4\nHH | x-x-x-x-x-x-x-x-\nSD | ----o-------o---\nBD | o-------o-o-----\n```\n````\n\nUse `%` on its own line for a one-bar measure repeat. Add a count suffix such\nas `%x3` to repeat the previous bar three times:\n\n````\n```drums\nTitle: Repeated bar\nHH | x-x-x-x-x-x-x-x-\nSD | ----o-------o---\nBD | o-------o-o-----\n%x3\n```\n````\n\nDuring **Play** and **Loop All**, the compact `x3` marker shows repeat progress\nas `1/3`, `2/3`, and `3/3`, then returns to `x3` outside playback. **Loop Bar**\nkeeps the static count because it loops only one expanded bar.\n\nUse **Loop Bar** in the rendered view to loop the bar containing the current cursor position. Click a note in another bar first, then press **Loop Bar** to loop that bar.\n\n## Development\n\nInstall dependencies:\n\n```bash\nnpm install\n```\n\nBuild once:\n\n```bash\nnpm run build\n```\n\nWatch during development:\n\n```bash\nnpm run dev\n```\n\nTo test in Obsidian, copy or symlink this folder into:\n\n```text\n\u003cvault\u003e/.obsidian/plugins/drum-notation\n```\n\nThen enable **Drum Notation** in Obsidian's community plugins settings.\n\n## Installation And Beta Testing\n\nAfter Community directory approval, install **Drum Notation** from Obsidian's\nCommunity plugins browser.\n\nBefore approval, beta testers can install GitHub releases with\n[BRAT](https://github.com/TfTHacker/obsidian42-brat), or install manually:\n\n1. Download `main.js`, `manifest.json`, and `styles.css` from a release.\n2. Create this folder in your vault:\n   ```text\n   \u003cvault\u003e/.obsidian/plugins/drum-notation\n   ```\n3. Copy those three files into that folder.\n4. Reload Obsidian and enable **Drum Notation**.\n\n## Privacy\n\nThe Obsidian plugin makes no network requests and includes no telemetry. Notes,\nsettings, and generated notation stay in your vault.\n\nThe web playground runs entirely in the browser. It uses `localStorage` to keep\nthe current playground notation and light/dark preference for the current\nbrowser profile. It does not send notation to a server.\n\n## License And Third-Party Notices\n\nDrum Notation is released under the MIT License. Production builds include\n[VexFlow](https://www.vexflow.com/) 5.0.0 for music engraving, also under the\nMIT License. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for the full\nVexFlow notice.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvkamolov%2Fobsidian-drum-notation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvkamolov%2Fobsidian-drum-notation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvkamolov%2Fobsidian-drum-notation/lists"}