Showing posts with label grid controllers. Show all posts
Showing posts with label grid controllers. Show all posts

Thursday, December 06, 2018

Teensy 3.6 as Standalone Mediator Between USB MIDI and Eurorack




Overview
USB MIDI controllers (such as Launchpad Mini Mk II for example) are common and often quite low in cost.

To interface such a controller with a Eurorack synth system, often a host computer and a MIDI to CV interface might be used. The host computer would take USB MIDI data from the MIDI controller, perhaps store and manipulate that data in some way (e.g. a sequence), using a MIDI to CV converter to then control a Eurorack synth system.

It would be useful to use USB MIDI controllers with Eurorack synth systems without needing a computer and MIDI to CV interface in between the two.

Teensy 3.6 is a great microcontroller that can be programmed using the Arduino IDE. A very useful feature of the Teensy 3.6 is the USB host port.

Using the USB host port, the Teensy 3.6 can act as a host device for a USB MIDI controller. This means that a computer is not required to interpret the USB MIDI messages from a USB MIDI controller.

The Teensy can receive MIDI data sent over USB from the MIDI controller (e.g. faders, knobs, buttons) and can also send MIDI data back to the MIDI controller over USB (e.g. LEDs for buttons, displays).

At the same time, the Teensy can send and receive voltages to and from a Eurorack system. This includes control voltages, gates, triggers and clock signals as both inputs and outputs.

By programming the Teensy, a relationship between USB MIDI data from the controller and the voltages to and from a Eurorack system can be set up.




Example - Launchpad Mini Mk II as Eurorack Sequencer
In this example, the Launchpad and Teensy are working together as a simple Eurorack gate sequencer. This example can be built on extensively, but serves to illustrate the point of USB MIDI host mediation.






Hardware Setup
The USB host port on the Teensy 3.6 needs to have header pins soldered for accessibility, so that the header pins stick up out of the Teensy.


A USB host cable is connected between the USB host post on the Teensy and a USB MIDI device, in this case a Launchpad Mini Mk II.


The desired input and output connections are then connected to the Teensy. In this simple example, the Teensy will provide six gate outputs via six Eurorack-style 3.5mm sockets.

Teensy 3.6 digital pins 0 - 5 are connected via 1k resistors to the signal connection of the 3.5mm sockets. Teensy 3.6 ground is connected to the ground connection of the 3.5mm sockets.



If more complexity was required, additional outputs, inputs, buttons and pots could be connected to the Teensy to extend this example beyond the six gates.

The six gate outputs are connected to gate inputs in a Eurorack system, which in the demo video is triggering some Erica Synths, Make Noise and Doepfer modules.



Software Setup
The Arduino code can be downloaded here. The Teensyduino extension should be installed, the board should be set to Teensy 3.6 and the USB mode to Serial. The code is not very concise, but is hopefully easy enough to read.


The code takes button inputs from the Launchpad Mini Mk II grid and stores these button presses in an array which holds the pattern. The Teensy also controls the LED lights on the Launchpad, and has an indicator as to which step is currently playing.

Each row represents a trigger output. Each column represents a step.

Pressing a button in the grid once will make sure it plays each loop of eight steps. Pressing a button a second time will play that gate every odd loop. Pressing a button a third time will play that gate every even loop. Pressing a button a fourth time will turn that stop off completely.

The const int interval_time, which defaults to 90, sets the speed of the sequencer.


Expansion
Obviously, this simple example can be greatly expanded on. The next step in this project is to build a generic PCB with perhaps 8 gate outputs, 4 CV outputs, 4 gate inputs, and two buttons and two pots, and then start writing code to adapt a number of USB MIDI controllers to Eurorack.

Sunday, August 28, 2011

Basic Linear Sequencer for Launchpad (Max for Live Device)


The Basic Linear Sequencer for Launchpad device is exactly what is sounds like. Straightforward and to the point. In this example, the LaunchPad communicates with Live directly via the Live API.

Download here: http://milkcrate.com.au/_other/downloads/M4L/LaunchPad%20-%20Basic%20Linear%20Sequencer/little-scale.Launchpad%20-%20Basic%20Linear%20Sequencer%2020110828.zip

Saturday, September 25, 2010

Dot Matrix Printer Controlled Using Launchpad

Well, how does the Launchpad map to the printer? The first two rows each represent the sixteen characters of the ASCII table starting with "!". These characters can be either strung together into 'phrases' that are printer out all at once, or they can be triggered so that each character is printed individually. The third row contains predefined 'macro phrases' with specific rhythms. The first button of the fourth row controls whether the first two rows print immediately or are strung together as phrases to be printed together.




Thursday, December 17, 2009

BabyCastles / CDM Handmade Music Wrap Up

Last night I played / hung out at the inaugural launch of the indie arcade BabyCastles at a Create Digital Music 'Handmade Music' event. I just wanted to thank Peter Kirn for the opportunity.












Thursday, December 10, 2009

Max Patch for Radar Sequencer (SquareGeom)

A number of people have asked for the Max/MSP patch which I recently made. You can download it here. It's not very user friendly, but it should be pretty obvious to anyone who has used Max/MSP - ie. it's nothing fancy at all.

Wednesday, December 09, 2009

Novation Launchpad: Radar Sequencer

Tuesday, December 01, 2009

Novation Launchpad: With Sega Mega Drive!

I am quite happy with the results of the following setup: Launchpad to Max/MSP, then via MIDI to the Sega Mega Drive (as hardware) where the sound is generated. This is then routed back to the computer - specifically, Ableton Live - where a simple delay line is added.

Novation Launchpad: Ripple Sequencer with Retriggers



Download the patch here.

How to set it up:
• Connect the LaunchPad to your computer
• Open up the Max/MSP patch in Max runtime or environment
• Open up Ableton Live
• Quite Automap
• Route the MIDI Launchpad input and output fields in the Max/MSP patch to and from the Launchpad port
• Route the External MIDI output field in the Max/MSP patch to a virtual MIDI patch (in Mac OS X, this means an IAC Bus - for Windows users, this could mean one of a number of virtual paths depending on your software I think)
• In Ableton Live create a new track with an instrument on it of your choosing
• Set the input to the same virtual path you chose earlier
• On the LaunchPad, hit the 'view / down arrow' button
• Set the speed in milliseconds in the Max/MSP patch
• Click on the toggle next to the speed control


How to use it:
• Press a button in the grid area
• A yellow ripple should appear
• On the LaunchPad, hold the 'view / down arrow' button
• Press a button in the grid area
• The button will turn red - this is a note
• On the LaunchPad, hold the 'page left / left arrow' button
• Press a button in the grid area
• The button will turn green - this is a retrigger point

Friday, November 27, 2009

Novation Launchpad: Ripple Sequencer

Today I made a simple ripple-based sequencer for the Novation Launchpad. The idea is simple. By pressing a grid button, a yellow, square ripple is created that emanates from the point that was touched. By holding down a modifier button and pressing a grid button, static, red points are created. Each red point represents a musical note. Whenever a given yellow ripple intersects (touches) a red point, the sequencer plays a note.

I am quite happy with this patch so far, but I want to add additional features. So I won't make it available quite yet.

Thursday, November 26, 2009

Novation Launchpad: Waveform Editor


This evening I made a Launchpad-based 3-bit by 3-bit waveform editor. In a way, this is related to my ever-present desire to touch sound (eg. the Toriton water-based instrument etc). If anyone is interested in downloading the Max/MSP patch, please let me know.

So the idea is very simple. The 8 x 8 grid is a representation of an audio waveform, whose shape is controlled by the grid. The frequency of the waveform is controlled by the horizontal aux buttons.

Novation Launchpad: Linear Sequencer


Today I made a simple linear sequencer for the Launchpad in Max/MSP
Features:
• 5 row by 8 subdivision drum sequencer, which outputs MIDI notes geared towards using the Impulse instrument in Live
• Up to 8 patterns can be stored in volatile memory
• Each pattern can be edited whilst any of the patterns are playing ie. editing and playback are completely separate, yet continuous.
• 8 MIDI CC controls, with a resolution of 8 steps across the 128 data value range



Use:
• Boot up the Max/MSP patch (which can be found here)
• Select the Launchpad as the inputs and outputs
• Select your external MIDI bus (say, for Live for example)
• Select your sequencer speed (in milliseconds)
• Hit the toggle to start and stop the sequencer
• Rows 3, 4, 5, 6 and 7 are the main sequencing area. A green LED means that a note will be played as the sequencer transport crosses that point
• Row 8 is an indicator of where the sequencer is at
• Row 1 selects one of 8 MIDI CC controllers (from MIDI CC #16 onwards)
• Row 2 controls the MIDI CC value of the controller as selected in row 1
• The horizontal auxiliary buttons control which of the eight patterns are currently being played back
• The vertical auxiliary buttons control which of the eight patterns can be currently seen in the sequencing area, and can therefore be edited.


Demo Video:

Sunday, November 22, 2009

Novation Launchpad Toggle Control


My friend Alex Yabsley aka Dot.AY wanted to send out toggle-based control from his Novation Launchpad. So we decided to make a Max/MSP patch.Very simple, but it works.