Skip to content

Commit

Permalink
Improve manual with MIDI Setup for firmware v.2x
Browse files Browse the repository at this point in the history
  • Loading branch information
davideanastasia committed Feb 7, 2021
1 parent 203d2e2 commit ed2af30
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 13 deletions.
2 changes: 1 addition & 1 deletion firmware.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ avrdude -c usbasp -p atmega328p -U flash:w:<hex file location>

## EEPROM

The third command will setup the EEPROM, where the chip stores presets. Upload of the firmware will reset this location of memory: the following command will restore default values.
The third command will setup the EEPROM, the portion of memory where the chip stores presets and config. The upload of the firmware will reset this location of memory, while running the following command will restore default values:

```
avrdude -c usbasp -p atmega328p -U eeprom:w:loopy.eep
Expand Down
15 changes: 11 additions & 4 deletions howto.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ All the jacks are mounted on the two boards, so I suggest to work your way up in

- **you should now be able to power up your project**, and check the activation of the all the relays, as well that all the voltages are correct (especially in and out of the voltage regulator)

I have uploaded a [small video on YouTube](https://www.youtube.com/watch?v=tt-ZAocfp6Q) that shows how the board should look like at this stage.

## Step 3: Finish it up & LED installation

If you got at this stage of the build, you are ready for the tricky part: the installation of the LED.
Expand All @@ -51,10 +53,10 @@ The following steps should get you over the finishing line:
- lock all the leads in place using small pieces of masking tapes, but don't bend the leads: this will allow you to rotate the board into its place without dropping all the LED out of the board
- tight the nut of a few jack socket so that the main board is in place
- one by one, release LED from their masking tape and make sure they finds the right hole on the front panel: might take a bit of time, so be patient
- you should be able now to power up the project and do another rundown before soldering all the LED
- if you are happy everything is working as expecteed, you can start soldering one by one all the LED and remove the excess for each lead (shouldn't be much)
- you should be able now to power up the project and do another rundown before soldering all the LED (I strongly suggestt you do this!)
- if you are happy everything is working as expected, you can start soldering one by one all the LED and remove the excess for each lead (shouldn't be much)
- tight all the sockets
- job done
- job done, enjoy your programmable looper! :-)

![Looper Midi Socket](./img/DSCF1541.jpg "Looper Midi Socket")
![Looper](./img/DSCF1542.jpg "Looper")
Expand All @@ -68,13 +70,16 @@ The following steps should get you over the finishing line:
| --- | --- |
| v1 | Original version, burnt into the first batch of chips |
| v1b | Use MIDI out as MIDI Thru; Better timing in button debouncing |
| v2(a, b) | MIDI Control Change + MIDI Control Panel |

#### Firmware Compatibility Matrix

| Firmware \ PCB | PCB.20200806 | PCB.20201125 |
| --- | --- | --- |
| v1 | Yes | Yes |
| v1b | Yes | Yes |
| v2a | Yes | Yes |
| v2b | Yes | Yes |

#### Relays

Expand All @@ -91,7 +96,9 @@ Some of these models are discontinued, but any other signal relay with the same

Any 5mm LED work in this project, but you want to be careful with the type you use and the resistors you couple with it.

I have personally used 400mcd LED like the one [here](https://www.switchelectronics.co.uk/blue-5mm-led-diffused-400mcd-30) with an 820R resistor, however you *must* to use a larger resistor value with high brightness LED, or you'll end up with a front panel too bright to be usable.
I have personally used 400mcd LED like the one [here](https://www.switchelectronics.co.uk/blue-5mm-led-diffused-400mcd-30) with an 820R resistor, however you *must* use a larger resistor value with high brightness LED, or you'll end up with a front panel too bright to be usable.

I strongly suggest to buy decent quality one and test all of them before mouting: undoing the LED installation can be a painful job.

#### Audio Jack

Expand Down
Binary file added img/frontpanel_midi_setup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
87 changes: 79 additions & 8 deletions manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,15 @@ Once a preset button is pressed, LED on the first strip will stop blinking and t

## MIDI

Since `v.2a`, MIDI support has been improved to:
- support Control Change commands
- configure MIDI channel

Version `v.1x` didn't support CC messages and was hardcoded to `Channel 1`. Instructions on how to update your firmware are available [here](./firmware.md).

### Midi Out

`MIDI Out` port is enabled when the looper is in `preset mode`. Program Change are sent to **Channel 1** using the table below:
`MIDI Out` port is enabled when the looper is in `preset mode`. Program Change are sent to current channel using the table below:

| Page | Preset | Program Change |
| --- | --- | --- |
Expand All @@ -64,26 +70,91 @@ Once a preset button is pressed, LED on the first strip will stop blinking and t
| 4 | 3 | 15 |
| 4 | 4 | 16 |

It is currently not possible to change the Channel without reprogramming the uC.
Since `v.2a`, it is possible to select the output channel. For version `v.1`, this value is fixed to `Channel 1`.

### MIDI Thru

Any data received in the `MIDI in` port is forwarded to the `MIDI out`, regardless of the operational mode of the looper.

### MIDI In

`MIDI In` port accepts Program Change (PC) commands on Channel 1. Loopy contains a table of 128 memory locations that can be associated to the 128 PC commands.
`MIDI In` port accepts Program Change (PC) commands on current channel.
Since `v.2a`, it is possible to select the input channel. For version `v.1`, this value is fixed to `Channel 1`.

To **store** a new preset, in `play mode`, hold for 2 seconds `FS2` and `FS4`.
Loopy contains a table of 128 memory locations that can be associated to the 128 MIDI PC commands.

To **store** a new preset, in `play mode`, hold `FS2` and `FS4` for 2 seconds.

![Looper Preset Mode](./img/frontpanel_midi_listener.png "Looper - Enable MIDI Listener")

Once the LED starts blinking, the looper will be waiting for a MIDI Program Change (PC) command.
Once the LED starts blinking, the looper will be waiting for a MIDI Program Change (PC) command on the current channel.

All the footswitch at this stage are still active to change whether a loop is active or not
At this stage all the footswitch are still active to engage or disangege loops.

Once a PC is received, Loopy will store in the associated PC memory location the combination of active loops.
Once a PC is received, Loopy will store the combination of active loops in the associated PC memory location.

If you want to exit the `MIDI Listen Mode`, hold the FS1 (Bypass) pressed for 2 seconds.
If you want to exit the `MIDI Listen Mode`, hold the FS1 (Bypass) pressed for 2 seconds (or alternative, hold the same combination used to enter the listening mode).

To **recall** a preset, send a PC command to Loopy when in `play mode`: configuration saved will be recalled and loops will engage/disengaged immediately.

### MIDI Control Change

Since `v.2a`, Loopy is capable of understanding MIDI Control Change messages from the `MIDI In` port. These messages are used to toggle loops indipendently from an external source.

At the current stage, Loopy can only receive CC messages, but it cannot send them.

Differently then PC messages, CC messages contain both a message number and a value. Values in the range 0-63 will toggle **off** a loop, while values in the range 64-127 will toggle **on** a loop.

Loopy will listen a specifc range of CC messages: these are defined in the MIDI setup. The paragraph below explains how to setup MIDI channel and MIDI CC range.

If you want to chain multiple Loopy, you might need to change the CC Range in order to toggle loops on/off (an example in [this video](https://www.youtube.com/watch?v=EMZONCrGOTY)).

### MIDI Setup

To **enter** the MIDI Setup control panel hold `FS3` and `FS5` for 2 seconds. This option is available only in `preset mode` in the `v.2a` firmware, and in `play mode` too since `v.2b`.

![Looper MIDI Setup Mode](./img/frontpanel_midi_setup.png)

Once in the MIDI setup, top line of LED allow to setup `MIDI Channel`, and `Control Change Range`.

Table below shows how to set the MIDI Channel (`x` for LED off, `o` for LED on):

| LED Combination | MIDI Channel |
| --- | --- |
| xxxx | Channel 1 |
| xxxo | Channel 2 |
| xxox | Channel 3 |
| xxoo | Channel 4 |
| xoxx | Channel 5 |
| xoxo | Channel 6 |
| xoox | Channel 7 |
| xooo | Channel 8 |
| oxxx | Channel 9 |
| oxxo | Channel 10 |
| oxox | Channel 11 |
| oxoo | Channel 12 |
| ooxx | Channel 13 |
| ooxo | Channel 14 |
| ooox | Channel 15 |
| oooo | Channel 16 (default) |

Table below shows how to set the MIDI Control Change range (`x` for LED off, `o` for LED on):

| LED Combination | MIDI CC Range |
| --- | --- |
| xxxx | 0-7 |
| xxxo | 8-13 |
| xxox | 14-23 |
| xxoo | 24-31 |
| xoxx | 32-39 |
| xoxo | 40-47 |
| xoox | 48-55 |
| xooo | 56-63 |
| oxxx | 64-71 |
| oxxo | 72-79 |
| oxox | 80-87 (default) |
| oxoo | 88-95 |
| ooxx | 96-103 |
| ooxo | 104-111 |
| ooox | 112-119 |
| oooo | 120-127 |

0 comments on commit ed2af30

Please sign in to comment.