Offline
Glasgow, Scotland.

Hello!

I've been using MIDIOUT on LSDJ for a while, and it's great. I've just been using it to send notes though, and want to start using program changes/CC values. I'm a bit confused by the documentation though:

Xxx - Sends a MIDI CC - By default in Arduinoboy the high nibble selects a CC#, and the low nibble sends a value 0-F to 0-127. This can be changed to allow just 1 midi CC with a range of 00-6F, or 7 CCs with scaled or unscaled values.

How does this work? Say I want to send a value of 80 on CC value 27 - how would I easily calculate the correct value to use in LSDJ?

Yxx - Sends a program/patch/preset change.

This description is a bit bare. Any ideas on how this is implemented?

Thanks for the help!

Offline
Sweden

Hi, I also like the MIDI out mode! LSDJ works great as a 4 channel sequencer.

With the default settings of the arduinoboy, CC works like this.
Say you use command Xyz, then you’ll get:

Value of y - CC number
1 - 1
2 - 2
3 - 3
4 - 7
5 - 10
6 - 11
7 - 12

Value of z - CC value
1 - 1 (or 0, not sure)
2 - 8
3 - 16
4 - 24
...
E - 112
F - 120

This is the default behaviour, it can be changed as you quoted from the docs.
Changes can be hard-coded in this file and then loaded to the Arduinoboy (search for the word midiOutCCMessageNumbers):
https://github.com/trash80/Arduinoboy/b … inoboy.ino

Or you can use the max patch to change this I think.

Also, I made some additions to the MIDI out mode in my personal repo, like MIDI clock out, velocity and more. Check it out if you’re interested, the readme contains documentation of functions and instructions on how to install on your arduinoboy:

https://github.com/ledfyr/ab-midiout-lite

Last but not least I found that the GBC and GBA models works best for busy sequencing in multiple channels.

Hope this helps!

Offline
Unsubscribe

Here is the setting you need in maxpat

And then on channel one, send the lsdj command X4F
You can validate this using a midi monitor.

Offline
Unsubscribe

@ledfyr: why did you choose to use the x command instead of the n command for the chords? If you have another thread for your fork id love to talk more.

Offline
Salt Lake City, UT
herr_prof wrote:

@ledfyr: why did you choose to use the x command instead of the n command for the chords? If you have another thread for your fork id love to talk more.

I'm also a fan of this fork and would like to open some chat about it. I use NOI for external drum sequencing and use the chord command for allowing more than one drum to be triggered at the same time, but it often suffers from stuck notes.

Offline
Sweden
herr_prof wrote:

@ledfyr: why did you choose to use the x command instead of the n command for the chords? If you have another thread for your fork id love to talk more.

The N command plays a single note in the current channel, I still want this to work the way it does. Though I heard you can use the C command with MIDI out to play chords. I never tried that, but I still think you get more chords to choose from with my code.

toasterpastries wrote:

I'm also a fan of this fork and would like to open some chat about it. I use NOI for external drum sequencing and use the chord command for allowing more than one drum to be triggered at the same time, but it often suffers from stuck notes.

You have to kill the note before switching to a new chord and playing it to avoid hanging notes.

I created a thread if you want to continue there:
https://chipmusic.org/forums/topic/2022 … -out-fork/

Offline
Sweden
unexpectedbowtie wrote:

Yxx - Sends a program/patch/preset change.

This description is a bit bare. Any ideas on how this is implemented?

I forgot you also asked about program changes. A program change MIDI message consists of channel 1-16 and value (0-127).

Example:

You use command "Y0A" in the PU2 channel - this sends a program change with value=10 on MIDI channel 2. This changes the patch to #10 on your synth if it listens to MIDI channel 2 and if it supports program changes (might need to be enabled in your synth's settings to work).