etude is a music theory library focused on the fundamentals of music.
- Deterministic: All concepts covered by etude are outlined by nonrandom rules. This means etude cannot analyze a chord progression or develop a complex melody. However, it can tell you the pitches for a chord or the intervals between the notes of a melody.
- Immutable: etude objects are not only immutable but also strongly immutable to enforce immutability with inheritance. You can learn about the benefits of immutability here.
- MIDI-compatible: etude follows the MIDI standards.
Requires Java 1.8.
All official ports will follow the same major and minor version increments.
JavaScript (TypeScript): etude.js.
dependencies {
compile "com.github.andrewthehan:etude:3.0.0"
}
<dependency>
<groupId>com.github.andrewthehan</groupId>
<artifactId>etude</artifactId>
<version>3.0.0</version>
</dependency>
Download the jar.
dependencies {
compile files("path/to/file/etude-3.0.0.jar")
}
<dependency>
<groupId>com.github.andrewthehan</groupId>
<artifactId>etude</artifactId>
<version>3.0.0</version>
<scope>system</scope>
<systemPath>path/to/file/etude-3.0.0.jar</systemPath>
</dependency>
Add the file to the class path. (See Setting the Class Path)
- Java 1.8
- Gradle 4.2
Clone the repo.
git clone https://github.com/andrewthehan/etude.git
Build and run tests.
gradle build
Any contributions towards documentation, bug fixes, TODO features are welcome. If you wish to implement a feature that is not listed in the TODO section, please submit an issue first.
When fixing bugs or implementing new features, please add accompanying tests.
- Articulation
- Cadences
- Chord Progression
- More dynamics
- More scale qualities
- Phrase
- Phrase manipulations
- Rests
If you made something cool with etude, feel free to add your project here.