Skip to content

Commit 7316cc7

Browse files
committed
update README
1 parent 9bce2e8 commit 7316cc7

File tree

4 files changed

+72
-12
lines changed

4 files changed

+72
-12
lines changed

README.md

Lines changed: 72 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,80 @@
1-
# notation
1+
# Fun Notation
22

3-
## DSL for notation writing, using proc-macro to write tabs easily
3+
## What's the idea?
44

5-
- https://github.com/dtolnay/syn
6-
- https://github.com/dtolnay/proc-macro-workshop
7-
- https://github.com/korken89/smlang-rs
8-
- https://blog.logrocket.com/macros-in-rust-a-tutorial-with-examples/
5+
This is my experimentation on musical notations.
96

7+
Want to create some applications to help me to visualize music, practice easier, and provide nicer way to show scores or tabs.
108

11-
# project template for web and native
9+
Some of current tried ideas:
1210

13-
- https://bevy-cheatbook.github.io/platforms/wasm/cargo-make.html
14-
- https://github.com/mrk-its/bevy_webgl2_app_template
11+
### Colors for notes
1512

16-
# Todo
13+
Colors are based on the relative notation.
1714

18-
proc_macro performance issue
15+
(TODO: need more explanation and an image here)
16+
17+
### Color and shapes for chords
18+
19+
![Chords](docs/images/chords.png?raw=true)
20+
21+
(TODO: need more explanation)
22+
23+
### Guitar tabs to show both pitch and durations for notes
24+
25+
![Guitar Tab](docs/images/guitar_tab.png?raw=true)
26+
27+
(TODO: need more explanation)
28+
29+
## What's implemented?
30+
31+
### Guitar Tab + Melody + Lyrics
32+
33+
Features:
34+
35+
- audio for each notes, sound quality not good enough (esp. in browser)
36+
- guitar fretboard synced with current played notes
37+
- A/B repeat for selected bars
38+
39+
40+
![Notation Viewer](docs/images/notation_viewer.gif?raw=true)
41+
42+
[Watch on Youtube](https://youtu.be/vxXcNSpCZ5Y)
43+
44+
[Try in browser](https://www.amateurguitar.com/songs/scarborough-fair/)
45+
Note that the web version is only working in desktop browser, the touch input is not working on mobile browsers yet.
46+
47+
Desktop versions will be released later.
48+
49+
You can also build it by yourself, make sure follow the [Bevy Engine Setup](https://bevyengine.org/learn/book/getting-started/setup/) first.
50+
```
51+
cd app/notation_viewer
52+
cargo run --features native
53+
```
54+
55+
## How it's built?
56+
57+
The current version is writted in [Rust](https://www.rust-lang.org), on top of [Bevy Engine](https://bevyengine.org), started as a demo to learn both the language and the game engine, but got much progress and show some potentials quickly.
58+
59+
At this moment, there is no visual editor yet, instead a DSL in Rust is created to write tabs (also serving learning purpose at the first place), it's far from perfect, and got me quite some headaches some time, but did learned a lot, and some part of it is really nice. Plan to write some blogposts later on this topic.
60+
61+
## What's the plan?
62+
63+
Will try to make the guitar tab part useful for myself first, do more experiments on visual representation for music, then maybe release some applications or maybe games in the future.
64+
65+
----
66+
## Some Inspirations
67+
68+
### [Chromesthesia Color for Notes](https://en.wikipedia.org/wiki/Chromesthesia)
69+
70+
Most colorful notation systems using rainbow colors for notes, but I found this chromesthesia system is much better for me to feel the music, especially when apply the colors to chords.
71+
72+
73+
### [Hook Theory](https://www.hooktheory.com/)
74+
75+
This is really awesome, have tons of materials for music learning, also has a very powerful web application.
76+
77+
### [Groove Pizza](https://apps.musedlab.org/groovepizza/?museid=qD-Y91QD3&)
78+
79+
Very nice web application to visualize rhythm.
1980

20-
- https://github.com/rust-lang/rust/issues/65080

docs/images/chords.png

20.1 KB
Loading

docs/images/guitar_tab.png

207 KB
Loading

docs/images/notation_viewer.gif

1.58 MB
Loading

0 commit comments

Comments
 (0)