Jump to content
IGNORED

Lynx Launchpad


karri

Recommended Posts

I fell for an ad... It looked so nice on the web page.

 

Thomann sold a Novation Launchpad Mini Mk2 for €58.

 

Writing music is a very melodic thing for me. I sit by my piano and play something. Record it to MIDI and convert it to HandyMusic SASS format.

 

But for the next game I kind of need a bit more electronic, main stream music so I thought I could learn something by trying out the Launchpad with the software Ableton Lite. It was a very educational experience. I sat by my computer banging on the pad till past midnight.

 

Unfortunately most of the samples are analog so there is not much I could do for making Lynx music.

 

But the pad was super. I tried to run some launchpad libraries but they did not recognize the tablet. So I just started to bang on the tablet socket and within 30 minutes I had full control of the keys and the leds on the tablet.

 

The Ableton interface was much too complicated for practical Lynx work. But I liked some of the concepts.

 

At the top of the pad there is a row of buttons labeled 1 2 3 4 5 6 7 8

 

The first 4 columns will represent the Lynx sound channels.

1 2 3 4 5 6 7 8
o o o o . . . . A
o o o o . . . . B
o o o o . . . . C
o o o o . . . . D
o o o o . . . . E
o o o o . . . . F
o o o o . . . . G
o o o o . . . . H

 

Every button "o" will contain a one or two bar clip. It can be any kind of instrument. You can activate only one button per column at a time.

To mute/unmute a channel you can press the number pad on the top row.

 

The next thing I liked a lot was the rightmost column of letters.

 

Pressing a letter A..H activates the entire row (all 4 channels)

 

In order to visualize the rhythm the letters A..H light up one at a time in the tempo of the music.

 

Which brings me to the next problem. How to set the tempo?

 

For this purpose I decided to use button 7. You change the tempo by tapping button 7.

 

There is just two LED's per button (red + green) with 2 bits for intensity of one LED.

 

red = 0, green = 0 -> black (no data in this button)

red = 3, green = 3 -> yellow (there is a playable clip in this button)

red = 0, green = 3 -> green (this clip is currently playing)

 

Then I need to be able to present a clip library with pre-defined drum beats, bass lines, licks, riffs, counter rhythms, breaks.

 

For browsing through the library I plan to use columns 5 and 6. Both columns are independent from each other. By pressing button 5 you get the next page of clips in column 5. Same for column 6.

1 2 3 4 5 6 7 8
. . . . o o . . A
. . . . o o . . B
. . . . o o . . C
. . . . o o . . D
. . . . o o . . E
. . . . o o . . F
. . . . o o . . G
. . . . o o . . H

 

So for browsing the clip library you just press any button in column 5. It may contain pretty much anything for one or two bars.

 

If you like the clip and want to copy it to a channel you press the clip button for a long time till it starts blinking. Now you can press any button in columns 1..4 and it will be copied in place for performace.

 

To delete a clip you copy a cell without content and paste it.

 

Then we have the problem with the melody. There is still two columns unused and that will be our piano. We have space for one octave. The # keys are the black keys on a piano. + is for octave up. - is for octave down. The instrument can be dropped in the box 'o' between the black keys.

 

1 2 3 4 5 6 7 8
. . . . . . + C A
. . . . . . # H B
. . . . . . # A C
. . . . . . # G D
. . . . . . o F E
. . . . . . # E F
. . . . . . # D G
. . . . . . - C H

OMG. We have obviously wasted one button. The button 8 has no function. So we allocate that one for changing the operation mode for the whole Launchpad. It will toggle between the clip mode you have just seen and the build mode where you put together the clips from individual sounds.

 

The code will run on a Raspberry Pi. The Launchpad is attached to an USB port. I also plan to use another USB port for an USB->serial conversion using FT232. This allows me to communicate with ComLynx at full speed.

 

I am currently writing this in Python 3. Everything will be recorded to json files so you can playback your creation later. There is no "record" button.

 

From this recording I plan to write some kind of music conversion into Handy Music format.

 

... to be continued ...

 

IMG_20200306_164720.thumb.jpg.c6c83e3f7a7dd8553e8334f4e173cf44.jpg

 

The colours of the Launchpad are usable. Not "amazing". Here you can see the "piano" to the right. The beat counter is running down (at B just now). Plus there is two active channels. Channel 1 is playing clip nr 3. The "piano" is also green (row E, button 7).

 

I still have not written the Lynx software that plays the actual clips. But that part should be fairly easy to do.

  • Like 1
Link to comment
Share on other sites

The build mode is a little more difficult to understand.

 

Now you have these red basic sounds to deal with instead of clips. The build area resolution is also devided to the desired kind of notes you need.

 

It you choose 1 you will work with quarter notes only. By choosing 2 you deal with 1/8 notes. 3 is trioles 1/12. 4 is 1/16 notes.

 

So in the picture below you have two bars starting from the top going towards the bottom. This means that by choosing 1/8 resolution you can squeeze in 8 notes in a bar.

IMG_20200306_195114.jpg.6271bc5932883778fd83ef9b830d74b1.jpg

 

The piano keyboard is still there. Note: the black keys are operational even when they lack the LED. I just wanted to show them as black keys.

 

For tonal basic sounds you can select the sound and set the pitch with the "piano" keyboard. The keyboard scrolls up/down by pressing on the bright red buttons.

 

The big idea is to create a jamming Launchpad like they use in disco. You can switch samples by feeling. Hit in your own extra sounds. And finally extract the masterpiece and use it as background music in some Lynx game.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

As I am pretty much jamming at home singing "Isolation blues" I did actually add a cool feature to my pad.

(I am in perfect health. Just social distancing...)

lynxpad1.gif.48118334a8fbc1e008bb1d67761aac47.gif

 

The big idea was to code the pad to simultanously run a pad in addition to the Launchpad. So I could compile a phone/tablet version so that you could make music for the Lynx without a real Launchpad.

 

The part above is the clip building tool where you set sounds to a pattern area.

 

This second image is the live mode where you can trigger the patterns and channels to play.

lynxpad2.gif.c8cde518e76be130e7507429abc84a6e.gif

 

Currently the area is empty as there are no clips to play yet.

  • Like 1
Link to comment
Share on other sites

Thanks.

 

I am working from home and have no urge to watch movies. So coding in the Lynx Launchpad is a way for me to play.

 

Currently I have implemented pretty complex patterns. A pattern can by up to a 128 notes (1/16 per note). And you can use any instrument in a pattern.

 

Once I get everything in place I will try to make patterns that allow you to play ragtime. Like "Cantina band" from Starwars.

 

Oh, the code is public. At https://bitbucket.org/karri/lynxpad

 

You need to run it using Python3 with a lot of dependencies. I may try to create an installer that takes care of everything.

 

Currently it makes no sound. But soon it may simulate the Lynx sounds using sdl2 audio. You can run it without a pad by just clicking on the buttons with a mouse. Or you can use it with a touch screen. It should recognize up to 10 fingers simultaneously.

 

It you are rich, why not get a Novation Launchpad. And get an USB->ComLynx cable for controlling the real hardware.

 

If poor, then wait until I get my Android version running. Then you can make music with your phone ;) 

Link to comment
Share on other sites

This launchpad could suit Lynx games very well. Plus it opens up an easy way to create backgrounds with just feeling - no need to understand music theory or have piano lessons. I added a small text field that tells you what the button you just pressed did. This should make usage of the pad really intuitive. When you connect to a real Lynx this status text would show on the Lynx screen. So you don't need a monitor for making music - just the launchpad, a Raspberry Pi, a ComLynx cable and a Lynx. Or you could run just the LynxPad as standalone. The output could be Handy Music, Chipper, Midi or just musicXML to look at the result as notes.

 

The idea is that whenever you go to "performance mode" (press button 8 ) the recording starts and the music is streamed as high level events to a file. When you switch mode again the file is closed.

 

1257937123_Screenshotfrom2020-03-2607-27-55.thumb.png.cf55615babca35250fbf52141b12a155.png

 

1343300717_Screenshotfrom2020-03-2607-13-13.thumb.png.179026b48610170402a73d41fa0592fb.png

 

 

Link to comment
Share on other sites

5 hours ago, 42bs said:

Please excuse my ignorance: This pad is kind of a sequencer? And via ComLynx the single notes are played directly on the Lynx?

Yes. It is a sequences that forces all clips to play in the correct time slots.

 

But my plan is not to play single notes for everything. The idea is to modify the player to work as a dual buffer. You download all the clips to the Lynx. Then you just send which clips to activate after the current 4-beat tune has ended.

 

In addition to this you can play single sounds at any time.

 

The sequences keeps track of what you do. If you like what you made you can playback it without touching the pad. Hopefully you can also turn it to a Handy Music score.

 

For a single column you just need to send.

 

Note height, Clip number (The clip notes will be transposed up/down by the note height.)

 

After that the system will repeat this until it receives more data.

 

  • Like 2
Link to comment
Share on other sites

There seems to be some funny settings on my piano as well. This is called "Frontier" piano. Whatever that is. In any case the sound inspired me to some jam to "Watermelon man".

 

Also note the HOOK on top of the piano. It is to remind me that I should practice my songs instead of jamming the night along. Although Peter Pan is likely postponed :( 

 

http://79.125.115.174/pics/2020-03-26-202539.webm

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

One of the more problematic things on a Lynx is the small number of buttons. The entire pad has 80 buttons but the Lynx has just a few.

 

So I decided to keep the joypad for moving the active buttons around.

 

And use the PAUSE button to select which button to move around.

 

A, B, Opt 1 and Opt 2 are the jam buttons. They all behave the same.

 

64087366_Screenshotfrom2020-04-1019-27-04.png.a5234c1598e7bbf2ef01fbf2cb29c8a3.png

 

The best place to keep them while jamming is the rightmost column as pressing a button will activate the entire row.

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

The hardware is now connected.

 

IMG_20200508_084810.thumb.jpg.a326bd4b4ed22db39244794d47417049.jpg

 

But to my surprise the standard ComLynx cable does NOT connect the tip. The tip has the 5V I needed for the LaunchPad and the STM32 + SD card to turn on. Well, I have to build my own cable...

Or connect a separate USB Power Pack to provide 5V. Perhaps the Power Pack is easier as I do not have spare 2.5mm stereo jacks.

 

Here is a close up of the STM32 module. You can see the SD Card, the ComLynx connection and the USB with an adapter.

IMG_20200508_090023.thumb.jpg.8c6cccf36138f86665522ef2b4c1074b.jpg

Link to comment
Share on other sites

9 hours ago, Cyprian_K said:

looks cool and very promising.

could you please show also that UART 2?

I chose UART 3 because it happens to be 5V tolerant. Basically it needs to be open collector. I did order an open collector AND chip. But I may also just replace it with a diode between TX and RX. Connect the Rx directly to ComLynx and program the Rx pin to use a PULL-UP. The Tx pin would be connected to a diode. And the other pin of the diode to ComLynx. So the TX sinks current only when it sends a "0" bit. But it does not intefere with Lynx transmissions.

 

So the black and yellow wires go directly to ComLynx. The diode will be soldered on the solder side of the STM32 between Tx and RX pins of UART 3.

 

The big problem is the usage of RAM. It would be stylish to allocate 4k buffers for the FATFS, files etc. But there is only 20k available. So I keep getting out of memory every now and then. So I assume that 512 byte sectors has to be enough.

 

The design is going to be dirt cheap. The SD cart holder comes for free when you buy a mini SD (€5). I have a box of 2.5mm ComLynx stereo jacks as left over from previous experiments. The CPU was a free gift from PCBWAY as I have been ordering my PCB's from them. The only costly part is the Novation Launchpad MINI for €58 + delivery. But that could be replaced by an USB keyboard.

 

I happen to have hundreds of arranger styles for my Roland E96 that I played before I got my Nord Grand. In order to speed up experiments with the arranger I started to look at the binary files of my styles. The format is proprietary. But by trial and error I composed some styles and analysed the result. So now I have this format completely documented. This means that I can immediately publish a library of all the styles I have created during the years in LynxPad format :)

 

Perhaps the first screen(s) could be "Select your poison" like:

- Rock'n'Roll
- Funk

- Hip Hop
- Salsa
- Country
- Disco
- Metal
...

 

This would import the band and all the patterns and transitions for composing the music. I would pre-program all the styles on the cart.

 

The next screen could be an optional "Chord sequencer". It could provide the typical chord progressions to the chosen style of music. Like:

 

Dm G7 | Dm G7 | C | E7 A7 | D7 G7 | C |

 

After that you enter the Pad. And it is already completely filled with suitable patterns that match each other. Then you just press buttons to jam.

 

PS. You signature returns: Python 2.5 is no longer available. Please refer to https://goo.gl/aESk5L for more information.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...