diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/images/instruments/voicing.png b/images/instruments/voicing.png
new file mode 100644
index 0000000..c5f4146
--- /dev/null
+++ b/images/instruments/voicing.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/images/instruments/voicing.png b/images/instruments/voicing.png
new file mode 100644
index 0000000..c5f4146
--- /dev/null
+++ b/images/instruments/voicing.png
Binary files differ
diff --git a/images/instruments/volume.png b/images/instruments/volume.png
new file mode 100644
index 0000000..18b6c0e
--- /dev/null
+++ b/images/instruments/volume.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/images/instruments/voicing.png b/images/instruments/voicing.png
new file mode 100644
index 0000000..c5f4146
--- /dev/null
+++ b/images/instruments/voicing.png
Binary files differ
diff --git a/images/instruments/volume.png b/images/instruments/volume.png
new file mode 100644
index 0000000..18b6c0e
--- /dev/null
+++ b/images/instruments/volume.png
Binary files differ
diff --git a/images/instruments/waveform.png b/images/instruments/waveform.png
new file mode 100644
index 0000000..77a8f82
--- /dev/null
+++ b/images/instruments/waveform.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/images/instruments/voicing.png b/images/instruments/voicing.png
new file mode 100644
index 0000000..c5f4146
--- /dev/null
+++ b/images/instruments/voicing.png
Binary files differ
diff --git a/images/instruments/volume.png b/images/instruments/volume.png
new file mode 100644
index 0000000..18b6c0e
--- /dev/null
+++ b/images/instruments/volume.png
Binary files differ
diff --git a/images/instruments/waveform.png b/images/instruments/waveform.png
new file mode 100644
index 0000000..77a8f82
--- /dev/null
+++ b/images/instruments/waveform.png
Binary files differ
diff --git a/images/play/beat.png b/images/play/beat.png
new file mode 100644
index 0000000..beed869
--- /dev/null
+++ b/images/play/beat.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/images/instruments/voicing.png b/images/instruments/voicing.png
new file mode 100644
index 0000000..c5f4146
--- /dev/null
+++ b/images/instruments/voicing.png
Binary files differ
diff --git a/images/instruments/volume.png b/images/instruments/volume.png
new file mode 100644
index 0000000..18b6c0e
--- /dev/null
+++ b/images/instruments/volume.png
Binary files differ
diff --git a/images/instruments/waveform.png b/images/instruments/waveform.png
new file mode 100644
index 0000000..77a8f82
--- /dev/null
+++ b/images/instruments/waveform.png
Binary files differ
diff --git a/images/play/beat.png b/images/play/beat.png
new file mode 100644
index 0000000..beed869
--- /dev/null
+++ b/images/play/beat.png
Binary files differ
diff --git a/images/play/chords.png b/images/play/chords.png
new file mode 100644
index 0000000..c998766
--- /dev/null
+++ b/images/play/chords.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/images/instruments/voicing.png b/images/instruments/voicing.png
new file mode 100644
index 0000000..c5f4146
--- /dev/null
+++ b/images/instruments/voicing.png
Binary files differ
diff --git a/images/instruments/volume.png b/images/instruments/volume.png
new file mode 100644
index 0000000..18b6c0e
--- /dev/null
+++ b/images/instruments/volume.png
Binary files differ
diff --git a/images/instruments/waveform.png b/images/instruments/waveform.png
new file mode 100644
index 0000000..77a8f82
--- /dev/null
+++ b/images/instruments/waveform.png
Binary files differ
diff --git a/images/play/beat.png b/images/play/beat.png
new file mode 100644
index 0000000..beed869
--- /dev/null
+++ b/images/play/beat.png
Binary files differ
diff --git a/images/play/chords.png b/images/play/chords.png
new file mode 100644
index 0000000..c998766
--- /dev/null
+++ b/images/play/chords.png
Binary files differ
diff --git a/images/play/navigation.png b/images/play/navigation.png
new file mode 100644
index 0000000..de929a4
--- /dev/null
+++ b/images/play/navigation.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/images/instruments/voicing.png b/images/instruments/voicing.png
new file mode 100644
index 0000000..c5f4146
--- /dev/null
+++ b/images/instruments/voicing.png
Binary files differ
diff --git a/images/instruments/volume.png b/images/instruments/volume.png
new file mode 100644
index 0000000..18b6c0e
--- /dev/null
+++ b/images/instruments/volume.png
Binary files differ
diff --git a/images/instruments/waveform.png b/images/instruments/waveform.png
new file mode 100644
index 0000000..77a8f82
--- /dev/null
+++ b/images/instruments/waveform.png
Binary files differ
diff --git a/images/play/beat.png b/images/play/beat.png
new file mode 100644
index 0000000..beed869
--- /dev/null
+++ b/images/play/beat.png
Binary files differ
diff --git a/images/play/chords.png b/images/play/chords.png
new file mode 100644
index 0000000..c998766
--- /dev/null
+++ b/images/play/chords.png
Binary files differ
diff --git a/images/play/navigation.png b/images/play/navigation.png
new file mode 100644
index 0000000..de929a4
--- /dev/null
+++ b/images/play/navigation.png
Binary files differ
diff --git a/images/play/volume-tempo.png b/images/play/volume-tempo.png
new file mode 100644
index 0000000..de3f6da
--- /dev/null
+++ b/images/play/volume-tempo.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/images/instruments/voicing.png b/images/instruments/voicing.png
new file mode 100644
index 0000000..c5f4146
--- /dev/null
+++ b/images/instruments/voicing.png
Binary files differ
diff --git a/images/instruments/volume.png b/images/instruments/volume.png
new file mode 100644
index 0000000..18b6c0e
--- /dev/null
+++ b/images/instruments/volume.png
Binary files differ
diff --git a/images/instruments/waveform.png b/images/instruments/waveform.png
new file mode 100644
index 0000000..77a8f82
--- /dev/null
+++ b/images/instruments/waveform.png
Binary files differ
diff --git a/images/play/beat.png b/images/play/beat.png
new file mode 100644
index 0000000..beed869
--- /dev/null
+++ b/images/play/beat.png
Binary files differ
diff --git a/images/play/chords.png b/images/play/chords.png
new file mode 100644
index 0000000..c998766
--- /dev/null
+++ b/images/play/chords.png
Binary files differ
diff --git a/images/play/navigation.png b/images/play/navigation.png
new file mode 100644
index 0000000..de929a4
--- /dev/null
+++ b/images/play/navigation.png
Binary files differ
diff --git a/images/play/volume-tempo.png b/images/play/volume-tempo.png
new file mode 100644
index 0000000..de3f6da
--- /dev/null
+++ b/images/play/volume-tempo.png
Binary files differ
diff --git a/images/song/chord-notes.png b/images/song/chord-notes.png
new file mode 100644
index 0000000..db122e9
--- /dev/null
+++ b/images/song/chord-notes.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/images/instruments/voicing.png b/images/instruments/voicing.png
new file mode 100644
index 0000000..c5f4146
--- /dev/null
+++ b/images/instruments/voicing.png
Binary files differ
diff --git a/images/instruments/volume.png b/images/instruments/volume.png
new file mode 100644
index 0000000..18b6c0e
--- /dev/null
+++ b/images/instruments/volume.png
Binary files differ
diff --git a/images/instruments/waveform.png b/images/instruments/waveform.png
new file mode 100644
index 0000000..77a8f82
--- /dev/null
+++ b/images/instruments/waveform.png
Binary files differ
diff --git a/images/play/beat.png b/images/play/beat.png
new file mode 100644
index 0000000..beed869
--- /dev/null
+++ b/images/play/beat.png
Binary files differ
diff --git a/images/play/chords.png b/images/play/chords.png
new file mode 100644
index 0000000..c998766
--- /dev/null
+++ b/images/play/chords.png
Binary files differ
diff --git a/images/play/navigation.png b/images/play/navigation.png
new file mode 100644
index 0000000..de929a4
--- /dev/null
+++ b/images/play/navigation.png
Binary files differ
diff --git a/images/play/volume-tempo.png b/images/play/volume-tempo.png
new file mode 100644
index 0000000..de3f6da
--- /dev/null
+++ b/images/play/volume-tempo.png
Binary files differ
diff --git a/images/song/chord-notes.png b/images/song/chord-notes.png
new file mode 100644
index 0000000..db122e9
--- /dev/null
+++ b/images/song/chord-notes.png
Binary files differ
diff --git a/images/song/chord-pitch.png b/images/song/chord-pitch.png
new file mode 100644
index 0000000..d2ddf15
--- /dev/null
+++ b/images/song/chord-pitch.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/images/instruments/voicing.png b/images/instruments/voicing.png
new file mode 100644
index 0000000..c5f4146
--- /dev/null
+++ b/images/instruments/voicing.png
Binary files differ
diff --git a/images/instruments/volume.png b/images/instruments/volume.png
new file mode 100644
index 0000000..18b6c0e
--- /dev/null
+++ b/images/instruments/volume.png
Binary files differ
diff --git a/images/instruments/waveform.png b/images/instruments/waveform.png
new file mode 100644
index 0000000..77a8f82
--- /dev/null
+++ b/images/instruments/waveform.png
Binary files differ
diff --git a/images/play/beat.png b/images/play/beat.png
new file mode 100644
index 0000000..beed869
--- /dev/null
+++ b/images/play/beat.png
Binary files differ
diff --git a/images/play/chords.png b/images/play/chords.png
new file mode 100644
index 0000000..c998766
--- /dev/null
+++ b/images/play/chords.png
Binary files differ
diff --git a/images/play/navigation.png b/images/play/navigation.png
new file mode 100644
index 0000000..de929a4
--- /dev/null
+++ b/images/play/navigation.png
Binary files differ
diff --git a/images/play/volume-tempo.png b/images/play/volume-tempo.png
new file mode 100644
index 0000000..de3f6da
--- /dev/null
+++ b/images/play/volume-tempo.png
Binary files differ
diff --git a/images/song/chord-notes.png b/images/song/chord-notes.png
new file mode 100644
index 0000000..db122e9
--- /dev/null
+++ b/images/song/chord-notes.png
Binary files differ
diff --git a/images/song/chord-pitch.png b/images/song/chord-pitch.png
new file mode 100644
index 0000000..d2ddf15
--- /dev/null
+++ b/images/song/chord-pitch.png
Binary files differ
diff --git a/images/song/chords.png b/images/song/chords.png
new file mode 100644
index 0000000..13adc1d
--- /dev/null
+++ b/images/song/chords.png
Binary files differ
diff --git a/README.md b/README.md
index 309dd10..01bbf3c 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,190 @@
# Tiny Music app
-This is an app to easily create backing tracks to play along to certain chords.
+This is an app to play live backing tracks to play along to.
-Features:
+## Building and installation
-- Enter an arbitrary chord progression
-- Synthesize sounds on the go
-- Preview which chords will be played soon
-- Use effects on instruments
+This is a gradle android project written in kotlin. You will need to install Android studio and
+setup your build environment. Then, you can install the app on your phone.
-Gplv3+ Licensed
\ No newline at end of file
+## APK build: TODO
+
+## Usage
+
+Important note: To hear anything, make sure you have started the song on the play tab,
+added at least one instrument which plays at least one note per measure and isn't muted
+and have at least one line inserted into your song.
+
+### The play view
+
+This is the default view. Here, you can start or stop playing.
+
+#### Beat indicator
+
+![](images/play/beat.png)
+
+This shows you which beat is currently played.
+
+#### Volume and speed controls
+
+![](images/play/volume-tempo.png)
+
+Adjust your volume between 0% and 100%. This will apply to all instruments.
+
+The tempo is adjusted in beats per minute (BPM).
+
+#### Chord preview
+
+![](images/play/chords.png)
+
+Here, you can see which chords will be played next. Underneath the current line, you can also see
+a preview of the first chord in the next line to be prepared.
+
+#### Song navigation
+
+![](images/play/navigation.png)
+
+For all song navigation, the song will not change its current beat. This means that if you
+
+Use the simple fast-forward buttons to skip to the next measure and advance to the next chord.
+
+The skip-to end and beginning buttons will skip to the next or previous line of chords.
+
+### The song view
+
+![](images/song/chords.png)
+
+In the song view, you can edit the chords that will be played in your song. After finishing the
+chord progression, the song will start from the beginning once again.
+
+Use the (+) Button to add a new line to the song. All chords in the new line will be the (I) chord.
+
+Use the (x) Button next to a line to purge it from the song.
+
+#### Absolute vs. relative notation
+
+![](images/song/key.png)
+
+The song view supports two different notation views. You can change the key of the song at any time.
+
+By default, normal chord names are displayed. Turning this option off allows you to see the chords
+written in roman numerals, without any reference to a specific key.
+
+#### Chord editing
+
+![](images/song/chord-pitch.png)
+
+After clicking on one chord, you will open a modal window to edit one chord.
+
+The chord pitch selects which degree the chord will be. You can also shift the degree of the chord
+up or down one semitone with the top selector. Keep in mind that the accidentals in this view are
+always in reference to your selected key, meaning that in G major, a F# will be selected as the 7th
+degree without an accidental, while F flat will be the 7th degree with a flat in front.
+
+![](images/song/chord-notes.png)
+
+You can also modify the other chord notes which will be referenced in relation to your root note.
+A chord must always contain a 3rd and 5th degree and can optionally have 7th and 9th degrees.
+All of the degrees can be modified flat or sharp and will influence the notated chord.
+
+Sometimes, the function of a note can change when pitched up or down. For example, a flat 7th degree
+will become the added 6th of the chord.
+
+### The Instruments view
+
+![](images/instruments/overview.png)
+
+In the instruments tab, you can configure the instruments that play.
+
+Use the button in the bottom-right corner of your screen to add a new instrument.
+
+Mono instruments can only play one note, while poly instruments can play up to five notes
+at a time.
+
+You can remove an instrument from the list using the trash icon.
+
+The (M) button will mute an instrument. If it is red, the instrument will no longer be playing any
+more music.
+
+The (S) button will solo an instrument. If it is blue, only sound from this instrument will be played.
+This mode can be used to inspect and "debug" just one voice at a time.
+
+#### The instrument editor
+
+![](images/instruments/name.png)
+
+Use the pencil icon on a instrument to open its settings window.
+
+Near the top, there is a text field where a name can be given to an instrument to easily distinguish
+it amongst all other instruments.
+
+![](images/instruments/waveform.png)
+
+You can select between 4 different base oscillator waveforms: sine, sawtooth, square and triangle.
+
+![](images/instruments/volume.png)
+
+The volume slider changes the volume of just this instrument and is applied after all effects.
+
+##### Instrument voicing
+
+![](images/instruments/voicing-type.png)
+
+There are 5 different voicing types:
+
+- Chord root note: play the root note of the chord
+- Chord notes: play notes from the current chord
+- Scale notes: play notes from a major scale relative to the current chord's root note
+- Root note: only play the song's key note
+- Song root relative: play chromatic notes always relative to the song's key
+
+Pressing the pencil button will show you the instrument voicing window:
+
+![](images/instruments/voicing.png)
+
+You can select the octave of the voice to transpose it by up to 4 octaves up or down.
+
+If restriking is enabled (the restrike button is green), notes will be played again when a new (sub)-
+beat is reached (The envelope is triggered again). If it is off, a note will be held for longer if
+multiple active notes connect on the grid.
+
+One button in the grid represents one note. The vertical axis is the tone pitch and selects from
+the notes provided by the voicing type. On the horizontal axis is time. The main beats are
+colored differently to allow for easy navigation.
+
+#### Envelope settings
+
+![](images/instruments/envelope.png)
+
+The envelope settings allow you to select an attack time, delay time, sustain level and release time.
+
+Times are configurable between 5ms and 200ms.
+
+Tip: Use a sustain level of 0% to emulate a plucked or struck instrument.
+
+#### Effects settings
+
+There are currently 3 effects implemented:
+
+- Low pass filter: remove high frequencies. This filter tracks along with the played note to provide a consistent timbre through all notes.
+- Noise: This filter mixes the input signal with white noise.
+- Distortion: Scale up and clip the signal back to a valid range.
+
+![](images/instruments/effects.png)
+
+Each effect can be turned on or off. By default, all effects are turned off.
+
+There is also an "influence" setting for each effect. After calculating the signal after the effect,
+The resulting signal is interpolated with the input signal using the influence setting. This allows effects to be partially faded out.
+
+By holding on and dragging an effect, the order of the effects can be manipulated to suit the user's needs.
+
+# License
+
+This project is published under a GPLv3+ license.
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
\ No newline at end of file
diff --git a/images/instruments/effects.png b/images/instruments/effects.png
new file mode 100644
index 0000000..b164d1f
--- /dev/null
+++ b/images/instruments/effects.png
Binary files differ
diff --git a/images/instruments/envelope.png b/images/instruments/envelope.png
new file mode 100644
index 0000000..841b7e9
--- /dev/null
+++ b/images/instruments/envelope.png
Binary files differ
diff --git a/images/instruments/name.png b/images/instruments/name.png
new file mode 100644
index 0000000..78cf5e2
--- /dev/null
+++ b/images/instruments/name.png
Binary files differ
diff --git a/images/instruments/overview.png b/images/instruments/overview.png
new file mode 100644
index 0000000..07a7097
--- /dev/null
+++ b/images/instruments/overview.png
Binary files differ
diff --git a/images/instruments/voicing-type.png b/images/instruments/voicing-type.png
new file mode 100644
index 0000000..ea62d49
--- /dev/null
+++ b/images/instruments/voicing-type.png
Binary files differ
diff --git a/images/instruments/voicing.png b/images/instruments/voicing.png
new file mode 100644
index 0000000..c5f4146
--- /dev/null
+++ b/images/instruments/voicing.png
Binary files differ
diff --git a/images/instruments/volume.png b/images/instruments/volume.png
new file mode 100644
index 0000000..18b6c0e
--- /dev/null
+++ b/images/instruments/volume.png
Binary files differ
diff --git a/images/instruments/waveform.png b/images/instruments/waveform.png
new file mode 100644
index 0000000..77a8f82
--- /dev/null
+++ b/images/instruments/waveform.png
Binary files differ
diff --git a/images/play/beat.png b/images/play/beat.png
new file mode 100644
index 0000000..beed869
--- /dev/null
+++ b/images/play/beat.png
Binary files differ
diff --git a/images/play/chords.png b/images/play/chords.png
new file mode 100644
index 0000000..c998766
--- /dev/null
+++ b/images/play/chords.png
Binary files differ
diff --git a/images/play/navigation.png b/images/play/navigation.png
new file mode 100644
index 0000000..de929a4
--- /dev/null
+++ b/images/play/navigation.png
Binary files differ
diff --git a/images/play/volume-tempo.png b/images/play/volume-tempo.png
new file mode 100644
index 0000000..de3f6da
--- /dev/null
+++ b/images/play/volume-tempo.png
Binary files differ
diff --git a/images/song/chord-notes.png b/images/song/chord-notes.png
new file mode 100644
index 0000000..db122e9
--- /dev/null
+++ b/images/song/chord-notes.png
Binary files differ
diff --git a/images/song/chord-pitch.png b/images/song/chord-pitch.png
new file mode 100644
index 0000000..d2ddf15
--- /dev/null
+++ b/images/song/chord-pitch.png
Binary files differ
diff --git a/images/song/chords.png b/images/song/chords.png
new file mode 100644
index 0000000..13adc1d
--- /dev/null
+++ b/images/song/chords.png
Binary files differ
diff --git a/images/song/key.png b/images/song/key.png
new file mode 100644
index 0000000..e908677
--- /dev/null
+++ b/images/song/key.png
Binary files differ