Skip to content

Commit 156a178

Browse files
committed
automatic setup
1 parent 23c836f commit 156a178

File tree

3 files changed

+262
-159
lines changed

3 files changed

+262
-159
lines changed

README.md

Lines changed: 68 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,18 @@
44

55
**IN DEVELOPMENT**
66

7-
This program maps the LinnStrument, LaunchPad X, and your computer keyboard to use an isomorphic wholetone layout that I discovered years ago. I was surprised to find out this layout and its variants were not in common usage, despite being incredibly easy to play. I used to map this layout to my mechanical keyboard and just play it like that. Because of this, my friends and I referred to it as "playing the mech", but
7+
Midimech is an alternative musical note layout system for next-gen grid controllers like the LinnStrument and LaunchPad X (and your computer keyboard). It uses an isomorphic layout that I discovered years ago. I was surprised to find out this layout and its variants were not in common usage, despite being incredibly easy to play. I used to map this layout to my mechanical keyboard and just play it like that. Because of this, my friends and I referred to it as "playing the mech", but
88
you could also call the layout Diagonal Wicki-Hayden, Wholetone, or whatever you like. I prefer mech. 😎
9-
This project intends to bring the layout to more people and I consider it a good proposal for next-gen instruments.
9+
10+
**Unlike the layout of other instruments, notes that sound good together are closer together, and notes that sound worse are furthest apart.**
11+
12+
This project intends to bring the layout to more people and since it appears to have many advantages, I consider it a good proposal for next-gen musical instruments.
1013

1114
Midimech supports:
15+
- Usage as a MIDI controller in your DAW of choice
1216
- Bigger range than the default LinnStrument layout
1317
- Synthesia/DAW visualization for learning songs
14-
- Diagonal split, which fits great even on the 128
18+
- Diagonal split, which fits great even on the LinnStrument 128
1519
- Transposing and Octave shifting
1620
- LaunchPad X support (more devices coming in the future)
1721
- And it's great for playing piano runs ;)
@@ -34,19 +38,39 @@ Launchpad Support powered by: [Launchpad-Py](https://github.com/FMMT666/launchpa
3438

3539
[![Video](https://img.youtube.com/vi/GbkhwpPsbPo/0.jpg)](https://www.youtube.com/watch?v=GbkhwpPsbPo)
3640

41+
## Advantages
42+
43+
- Notes that sound good together are closer together. Notes that sound worse are furthest apart. Mistakes will be less likely and less obvious!
44+
- Like the LinnStrument's layout, it is also isomorphic (the same chord and scale shapes can be played anywhere)
45+
- Chords and scales are far easier to play than other layouts.
46+
- Extended range compared to standard +5 tuning, making room for using a split.
47+
- Unlike piano, instrument splits can overlap.
48+
- Less finger stretching than other layouts when playing chords, which may help ergonomically.
49+
- Piano runs are quite smooth, as you're simply walking stacked shapes.
50+
51+
## Chord Shapes
52+
53+
![Chord Shapes](https://i.imgur.com/DaqVFqP.png)
54+
3755
## Important Notes
3856

39-
So far, this has been mostly tested on the LinnStrument 128 version. If you own the 200-note version, it's harder to set up, but please feel free to test it and let me know how this works for you.
57+
So far, this has mostly been tested on the LinnStrument 128 version. If you own the 200-note version, please feel free to test it and let me know how this works for you.
4058

41-
This program is *experimental*, so some things will be buggy and tricky to get working. Let me know if you run into any issues and follow the directions carefully. If the wrong notes are playing, there's probably something wrong with the way you've set up the linnstrument during the instructions. If a device persists in a different state after ending the program (such as if a crash occurs), simply reconnect it. The LinnStrument also has a reset feature you may find useful.
59+
This program is *in development*, so some things may be buggy. If a device persists in a different state after ending the program (such as if a crash occurs), simply reconnect it. The LinnStrument also has a reset feature you may find useful.
4260

43-
And since this is experimental, please use it at your own risk and prepare to do basic troubleshooting to get it working.
61+
And since this is experimental, as with anything that sends commands to hardware, please use it at your own risk and prepare to do basic troubleshooting if something goes wrong.
4462

45-
## Setup
63+
That being said, I hope you enjoy it and have fun!
4664

47-
- First create a midi loopback device. You can do this easily with LoopMidi on Windows or using "Audio MIDI Setup / MIDI Studio" on Mac. Then set your DAW to use this device instead of the linnstrument. Make sure the virtual device you set up has "midimech" in its device name, since this is how its detected by the program.
65+
## Getting Started
66+
67+
### Latest Builds
68+
69+
- [Download (Win)](https://github.com/flipcoder/midimech/releases)
70+
71+
Alternatively, you can use the process below to run it from the repository.
4872

49-
- Set your LinnStrument to use ChPerRow mode. (Or alternatively, see the section *MPE* for getting the full MPE mode working).
73+
### Running from Git (for Mac/Linux)
5074

5175
- Download the project by typing the following commands in terminal:
5276
```
@@ -63,19 +87,28 @@ cd midimech
6387
pip install -r requirements.txt
6488
```
6589

66-
- Run midimech.py. You should see a window pop up with the layout.
90+
- Run the program
91+
```
92+
python midimech.py
93+
```
94+
95+
### Setup
96+
97+
- First create a midi loopback device. You can do this easily with LoopMidi on Windows or using "Audio MIDI Setup / MIDI Studio" on Mac. Then set your DAW to use this device instead of the linnstrument. Make sure the virtual device you set up has "midimech" in its device name, since this is how its detected by the program.
6798

68-
- If this works, your linnstrument will show the colors of the layout and be playable in your DAW.
99+
- If you're using the LinnStrument 200, set `size=200` in your settings.ini. If you don't have one, copy it from settings.ini.example.
69100

70-
- If you're using the larger (200-note) version of the LinnStrument, click "SIZE" to use the full layout (experimental).
101+
- Run midimech. You should see a window pop up with the layout.
71102

72-
- Set your virtual instruments' pitch bend range to double the LinnStrument's value.
103+
- Your Linnstrument or LaunchPad X should show the colors of the layout and be playable in your DAW.
104+
105+
- To enable the split, create another midi loopback device called "split" and click the SPLIT button. One side should turn blue.
73106

74107
## How to Play
75108

76109
### Layout
77110

78-
Each row consists of a whole tone scale, separated by 4ths, which cause the rows to alternate. It sounds strange at first but because of the layout's relation to the circle of 5ths, it makes a number of things easier to play and remember than the default chromatic layout.
111+
Each row consists of a whole tone scale and each row is separating by a fourth. This has a number of advantages you'll see below.
79112

80113
### Basic Scales
81114

@@ -109,69 +142,6 @@ Melodic minor has a "2-5" pattern:
109142
12
110143
```
111144

112-
## Basic Chord Shapes
113-
114-
The symbol 'o' is used for a pressed note to show the shape:
115-
116-
```
117-
Major:
118-
o
119-
o o
120-
121-
Minor:
122-
o o
123-
o
124-
125-
Dim:
126-
o
127-
o
128-
o
129-
130-
Aug:
131-
o o o
132-
133-
Sus2:
134-
o
135-
oo
136-
137-
Sus4:
138-
oo
139-
o
140-
141-
Maj7:
142-
o o
143-
o o
144-
145-
m7:
146-
o
147-
o o
148-
o
149-
150-
7:
151-
o
152-
o
153-
o o
154-
```
155-
156-
## Circle of 5ths
157-
158-
### Key Signature
159-
160-
A benefit of this layout is the ability to identify and switch key signatures easily based on position. As you shift to the left, you add flats. To the right, you add sharps. You walk these in a zig-zag motion between both whole tone scales. Follow the shape of these numbers to see the pattern (from 1 to 7).
161-
162-
```
163-
2468
164-
1357
165-
```
166-
167-
If note 1 is C (no sharps or flats in key signature), moving to 3 adds 2 sharps to the key signature. Simiarly if you're moving from 3 to 1, it adds two flats (or subtracts sharps).
168-
169-
### Brightness
170-
171-
Since the layout resembles the circle of 5ths, the further right you go from your tonic, the brighter than sound. The further left, the darker the sound. This is because the layout resembles a staggered circle of 5ths which corresponds with musical brightness.
172-
173-
If you take the 3-4 pattern described above and shift your tonic inside of it, the further the tonic is to the left, the brighter the mode, from lydian all the way to locrian (left to right). This happens with other scale shapes as well.
174-
175145
## More Scales
176146

177147
Once you become comfortable with this layout, you can introduce the harder scales into your playing:
@@ -258,47 +228,38 @@ Or:
258228
123 5
259229
```
260230

261-
## Visualizer
262-
263-
### DAW visualization
231+
## Circle of 5ths (Advanced)
264232

265-
Using this program, you can visualize the midi playing in your DAW on both the screen and LinnStrument.
266-
You do this by creating another device in LoopMidi called "visualizer" then use a Midi Out plugin
267-
on the track you want to visualize and set the plugin to use the visualizer midi device.
268-
269-
### Synthesia
233+
### Key Signature
270234

271-
To use the visualizer with Synthesia, create a new MIDI loopback device called "visualizer".
272-
In Synthesia settings, set it as an output device for note lights.
235+
A benefit of this layout is the ability to identify and switch key signatures easily based on position. As you shift to the left, you add flats. To the right, you add sharps. You walk these in a zig-zag motion between both whole tone scales. Follow the shape of these numbers to see the pattern (from 1 to 7).
273236

274-
## Full MPE
237+
```
238+
2468
239+
1357
240+
```
275241

276-
### 128 Key
242+
If note 1 is C (no sharps or flats in key signature), moving to 3 adds 2 sharps to the key signature. Simiarly if you're moving from 3 to 1, it adds two flats (or subtracts sharps).
277243

278-
To use ChPerNote/MPE mode, set your LinnStrument 128 to "NO OVERLAP" with a transposition of -3 octaves and +6 pitch.
279-
Then, set `no_overlap=true` in your settings.ini file (if you don't have one, copy it from settings.ini.example).
244+
### Brightness
280245

281-
### 200 Key
246+
Since the layout resembles the circle of 5ths, the further right you go from your tonic, the brighter than sound. The further left, the darker the sound. This is because the layout resembles a staggered circle of 5ths which corresponds with musical brightness.
282247

283-
Note: This workaround has not been tested on the 200 but it should work.
248+
If you take the 3-4 pattern described above and shift your tonic inside of it, the further the tonic is to the left, the brighter the mode, from lydian all the way to locrian (left to right). This happens with other scale shapes as well.
284249

285-
To use ChPerNote/MPE mode, first enable SPLIT. Then, set your LinnStrument to "NO OVERLAP" with a transposition on both splits of -3 octaves and +6 pitch. Make sure ChPerNote mode is also set on both splits.
286-
Then, set `no_overlap=true` and `hardware_split=true` in your settings.ini file (if you don't have one, copy it from settings.ini.example).
287250

288-
## Split
251+
## Visualizer
289252

290-
Because of the diagonal nature of the layout, the split is diagonal as well (through G# in the center).
291-
To use a split, create another midi loopback port called "split" and set `split=true` in your settings.ini.
292-
At the moment this requires using full MPE mode to work (see section `Full MPE`).
293-
The split creates a second virtual instrument you can access in your DAW called "split".
253+
### DAW visualization
294254

295-
Note: If you use the 128, do not set the split on your linnstrument. The program will make its own split.
296-
However, if you use the 200, you will need to enable to split in order to have all the notes come through.
297-
(This is to work around a limitation with no overlap mode.)
255+
Using this program, you can visualize the midi playing in your DAW on both the screen and LinnStrument.
256+
You do this by creating another device in LoopMidi called "visualizer" then use a Midi Out plugin
257+
on the track you want to visualize and set the plugin to use the visualizer midi device.
298258

299-
## Pitch Bend
259+
### Synthesia
300260

301-
To get pitch bending working properly, you'll need to set your virtual instruments' pitch bend range to exactly double the amount of the LinnStrument's range.
261+
To use the visualizer with Synthesia, create a new MIDI loopback device called "visualizer".
262+
In Synthesia settings, set it as an output device for note lights.
302263

303264
## Future Plans
304265

@@ -311,3 +272,5 @@ To get pitch bending working properly, you'll need to set your virtual instrumen
311272
## Contact / Questions
312273

313274
I'm on the LinnStrument Discord at https://discord.gg/h2BcrzmTXe. Come hang out!
275+
276+

0 commit comments

Comments
 (0)