pointvec/README.md

252 lines
6.3 KiB
Markdown
Raw Normal View History

2017-11-04 20:52:05 -04:00
# Marabu
2016-12-31 16:16:25 -05:00
2017-11-04 20:52:05 -04:00
Marabu is a simple open-source music tracker built from Soundbox.
2016-12-31 16:16:25 -05:00
2017-11-04 20:52:05 -04:00
<img src='https://raw.githubusercontent.com/hundredrabbits/Marabu/master/PREVIEW.jpg' width="600"/>
2016-12-31 16:18:41 -05:00
2017-11-04 20:52:05 -04:00
## Guide
If this is your first time using a tracker, don't worry this quick introduction will cover the basics of writing a little track, and exporting it to an audio file.
The interface is divided into 3 columns, the *sequencer*, the *pattern editor* and the *instrument*. By default, the application launches with an active pattern, in the first instrument. There is a maximum of 16 instruments that can play at the same time.
To move the **pattern cursor**, use the arrow keys. Pressing the keyboard keys a,s,d,f,g,h & j will record a note in the first row of the first column. Pressing the ArrowDown and ArrowUp keys, will move the *cursor* up/down in the sequencer. Allowing you to fill `pattern #1` with notes. Pressing `space` will play the pattern, pressing `esc` will stop.
To change the **sequencer patterns**, use the arrow keys while `holding alt`. To add notes to a second instrument, move to the second column and press `alt ArrowRight`, this will set the first row of the second instrument to 1, and allow you to record notes. Press `alt ArrowDown` to move to the second row, and press `alt ArrowRight` again twice, to extend the track to 2 rows, and begin adding notes to the second row of the second instrument.
To change the **instrument controls**, use the arrow keys while `holding shift`. To save your song, press `ctrl s`, to render an audio file(.wav) press `ctrl r`.
## Controls
### Basics
- `space` Play.
- `esc` Stop.
### General
- `ctrl n` New.
- `ctrl s` Save.
- `ctrl S` Save as.
- `ctrl o` Open.
- `ctrl r` Export .wav.
- `ctrl i` Export .ins(instrument).
- `ctrl t` Export .thm(instrument).
### Sequencer
#### Arrows
- `alt ArrowDown` Next Sequence.
- `alt ArrowUp` Previous Sequence.
- `alt ArrowRight` Increment Pattern Id +1.
- `alt ArrowLeft` Decrement Pattern Id -1.
#### Keys
- `ctrl l` Loopmode, see below.
### Editor
#### Arrows
- `ArrowRight` Next Instrument.
- `ArrowLeft` Previous Instrument.
- `ArrowDown` Next Row.
- `ArrowUp` Previous Row.
#### Keys
- `)` Increment Note Value +12.
- `(` Decrement Note Value -12.
- `0` Increment Note Value +1.
- `9` Decrement Note Value -1.
- `Backspace` Erase Note in Row.
- `/` Add a Control Keyframe.
- `Tab` Toggle **Composition Mode**.
### Instrument
#### Arrows
- `shift ArrowDown` Next Control.
- `shift ArrowUp` Previous Control.
- `shift ArrowRight` Increment Control Value +1.
- `shift ArrowLeft` Decrement Control Value -1.
#### Keys
- `]` Increment Control Value +10.
- `[` Decrement Control Value -10.
- `}` Increment Control Value +1.
- `{` Decrement Control Value -1.
- `x` Next Octave.
- `z` Previous Octave.
### Keyboard
Hold `shift`, while pressing a note, to make chords.
- `a` Play/Record C.
- `s` Play/Record D.
- `d` Play/Record E.
- `f` Play/Record F.
- `g` Play/Record G.
- `h` Play/Record A.
- `j` Play/Record B.
- `w` Play/Record C#.
- `e` Play/Record D#.
- `t` Play/Record F#.
- `y` Play/Record G#.
- `u` Play/Record A#.
## Effects
### Envelope
- `ATK` Attack
- `SUS` Sustain
- `REL` Release
- `POW` Attack/Release curve
### Osc
- `MOD` --
- `MIX` Dry/Wet between the 2 osc
- `FRQ` Frequency
- `DET` Detune, frequency offset between the 2 osc.
### LFO
- `AMT` Amount
- `FRQ` Frequency
### Efx
- `LP` Low-pass
- `HP` High-pass
- `BP` Band-pass
- `FRQ` Filter Frequency
- `RES` Resonance
2016-12-31 16:18:41 -05:00
2017-11-04 20:52:05 -04:00
### Delay
- `DLY` Delay Rate
- `VOL` Delay Volume
### Shapers
- `NOI` Noise Volume
- `BIT` Bitcrusher
- `DIS` Distortion
- `PIN` Pinking
- `CMP` Compressor
- `DRV` Drive
- `PAN` Pan
### UV
- `VOL` UV Volume/Envelope
- `WAV` UV Wave shape
## Cheatmode
Press `ctrl k` to activate cheatmode. Press `esc` to exit cheatmode.
### Selection
The cheatmode will catch 3 keys, corresponding to int/hex of `rate`, `length` & `offset` of the selection. The `/` key indicates that it does not loop through the whole pattern.
- `4` Every 4th note.
- `42` Every 4th note, and the following one.
- `422` Every 4th note, and the following one, starting from the second.
- `/` Only the first note.
- `/ 44` Only the 5th, 6th, 7th and 8th first notes.
### Copy/Paste
- `c` To copy the entire pattern.
- `v` To paste copied notes.
- `4 c` To copy every 4th note.
### Insert Multiple
- `8 as` This will add C5 and D5 to the 1st and 9th note.
### Erase Multiple
- `backspace` To clear a whole column.
- `4 backspace` To clear every 4th bar.
- `42 backspace` To clear every 4th bar, starting at the second bar.
### Modify Multiple
- `+` Increment each note of the pattern.
- `-` Decrement each note of the pattern.
### Use case
To copy the first 16 bars, into the 16 following bars and play the following note.
- `/ F c` Copy the first 16 bars.
- `/ F F v` Paste the first 16 bars from the the 16th bar.
## Loopmode
Press `ctrl l` to activate loopmode.
### Selective play
- `enter` Will play from current sequencer row, for 1 track.
- `/ enter` Will play from current sequencer row, only active instrument, for 1 track.
- `4 enter` Will play from the current sequencer row, for 4 tracks.
- `/ 4 enter` Will play from the current sequencer row, only active instrument, for 4 tracks.
### Copy/Paste
- `c` To copy the selected sequence.
- `v` To **insert** the selected sequence.
## Notes
During render, the track time is displayed in the before-last row of the Editor in the `0252` format, or 2:52.
## Themes
You can customize the look of your tracks by editing the .mar file and replacing the attributes' colors.
2016-12-31 16:18:41 -05:00
```
2017-11-04 20:52:05 -04:00
theme: {
background:"#fff",
f_high:"#f00",
f_med:"#0f0",
f_low:"#00f",
f_inv:"#00f",
b_high:"#ff0",
b_med:"#f0f",
b_low:"#0ff",
b_inv:"#00f"
}
2017-01-04 13:25:40 -05:00
```
2017-11-04 20:52:05 -04:00
## Development
2017-01-04 13:25:40 -05:00
2017-11-04 20:52:05 -04:00
There are currently no means to change the `bpm`, to do so, update the `bpm` value from the exported `.mar` file to an int between 50 and 450. Use `npm start` to develop locally.
### TODOs
#### Optimisation
- Trim tracks on export.
- Load trimmed track.
#### Feature
- Continuous follow instead of pageview.
- Template file of just sequencer sequences.
#### Misc
- Cancel render with escape.
#### Bug
- add .wav to export(cannot replicate?)
- Clicking icon on dock, shows the application. Replicate on Left.
## License
See the [LICENSE](LICENSE.md) file for license rights and limitations (CC).