Besides just sounding cool, this is an in-development plugin intended to add more control granularity to Obsidian's recording capabilities and provide access to external MIDI signals.
This plugin is in heavy development and could change at any moment. Here's the current draft of how I imagine the code will be structured:
src/midimap
- MIDI mapping capabilities.src/midimap/midimap
- Render a keymap UI in settings that allows users to bind key codes and gestures to internal commands. Might include some defaults.src/midimap/device-picker
- UI for choosing which MIDI device to listen to for MIDI signals.
src/recorder/recorder
- UI for advanced recorder features.
MIDI input is fuzzy. Some qualities of the input are hard for a user to control with precision (velocity of a key press) and can't be relied on for command activation, but there are some potential uses for being able to sense and record such things.
- Clone this repo.
npm i
oryarn
to install dependenciesnpm run dev
to start compilation in watch mode.
- Copy over
main.js
,styles.css
,manifest.json
to your vaultVaultFolder/.obsidian/plugins/your-plugin-id/
.
- ESLint is a tool that analyzes your code to quickly find problems. You can run ESLint against your plugin to find common bugs and ways to improve your code.
- To use eslint with this project, make sure to install eslint from terminal:
npm install -g eslint
- To use eslint to analyze this project use this command:
eslint main.ts
- eslint will then create a report with suggestions for code improvement by file and line number.
s- If your source code is in a folder, such as
src
, you can use eslint with this command to analyze all files in that folder: eslint .\src\