Skip to content

Commit

Permalink
add docs on features and functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
hall committed Jun 15, 2023
1 parent a6aec26 commit d7b2f7e
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,59 @@ Interactively play along with a MusicXML score using a MIDI instrument.

![screenshot](screenshot.png)

The core features are

- **visual hints**: the onscreen keyboard highlights which notes should currently be performed
- **follows you**: playback will not continue until the correct notes are performed
- **audio feedback**: when an incorrect note is performed, output will use the harpsichord sound bank

Some additional functionality includes:

- start and end measures
- repetition count
- tempo selection
- left and right hand toggles
- page zoom
- background color theming


## lighted keys

There is support for sending data over a serial port (e.g., USB).
This can be used to light an LED strip above the physical keyboard, replacing the functionality of the onscreen keyboard.

The API conforms to the following interface

- 0-87: toggle respective note
- 88: reset (i.e., turn off all notes)

Each command is terminated with a newline character (`\n`).

### example

There's a lot a leeway here but, as a concrete example, the author uses/recommends the following setup:

```
computer -usb-> microcontroller -wires-> LEDs
```

The main advantage here is that data and power share this single chain.

Specifically,

- a 60 LED/meter WS8212 strip (~4 meters worth)

> **NOTE**: this requires putting slight folds in the strip between LEDs to match the keyboard spacing
- a NodeMCU microcontroller (flashed with ESPHome; see [my config](https://gitlab.com/hall/hall/-/blob/25ca6f24ce4ebda511110a3dbfb01665a5a79d46/cluster/esphome/livingroom.nix#L35-69) for inspiration)

- connect the wires from the LED strip to the microcontroller

- red -> VIN (for 5v power)
- white -> GND (ground)
- green -> GPIO12 (data)

- select "Connect" in the sidebar and choose your device

## attribution

Expand Down
Binary file modified screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit d7b2f7e

Please sign in to comment.