Aeros MIDI Commands

+1

If I want to send a CC message only to the Aeros (this CC already exists on another device of my Midi set), I need to program the channel of the aeros on my Midi footswich.
Where is the Midi channel setting on the Aeros?

@Thovy64 currently Aeros is only set to respond to channel 1. We are working on making a setting to select the channel.

1 Like

Awesome. Can you share the sysex commands here? I just ordered an aeros this weekend :raised_hands:t4:

Awesome @Orion youā€™re gonna love it! :grin:

The sysex commands are:

Start: 0xFA
Stop: 0xFC
Clock: 0xF8

Reference here:

http://www.personal.kent.edu/~sbirch/Music_Production/MP-II/MIDI/midi_system_real.htm

For more general info on MIDI commands, see:

https://www.midi.org/specifications-old/item/table-4-universal-system-exclusive-messages

Another useful resource:

2 Likes

I was coming here to paste a conversation I was having on another forum, and I see one of the questions in the dialog below regarding MMC was answered, so please ignore that part of it (and good work!). You might still find some info in the below message to consider though. The original question was asked by a user about Fader implementation on a Launchcontrol XL for track volume and Anthony asked for any ideas:


This question led me to investigate the MIDI commands being published so far. I admit, I was so focused on there not being PC commands, I didnā€™t have much interest in the rest of it. Now that I have looked at it, I have a couple items to address or concerns that I have.

The pattern being followed here is unorthodox. For instance:
CC#39 = 0: Stop Playback Immediately.
So CC #39 does nothing else? It doesnā€™t even toggle to Start Playback if #39 = 127?
I know some products use CC for toggle: Value < 64 is OFF and Value >= 64 is ON. That makes sense, since you have to deal with ON/OFF toggle buttons in some way and MIDI doesnā€™t really have a GREAT way for dealing with booleans. But this isnā€™t a boolean, itā€™s just a command. Iā€™ve seen a lot of products that arenā€™t NOTE based, as is the case with AEROS and any other looper, will reuse MIDI NOTE ON commands for this kind of thing. Maybe MAESTRO doesnā€™t support sending NOTE ON commands? Whatever the case may be, AEROS should do what is best for AEROS so that it can participate in the wider MIDI ecosystem. Consider using NOTE ON for commands for this kind of stuff and save the CC space for booleans, expression control and modes. The CC space is going to get eaten up fast using it for simple commands.

I have another comment about ā€œStop Playback Immediatelyā€: This functionality is already covered in the MIDI spec by the MIDI Machine Controls (MMC), is it not? If the intention is to add a command IN ADDITION to AEROS responding to MMC, then fair enough. No harm in providing command flexibility ā€¦ after all, not every situation we find ourselves in uses a MMC compatible controller. But if MMC is simply not used at all, I think that is a mistake. MMC specifies STOP, PLAY, PAUSE, RECORD, PUNCH along with many other commands, they should be considered for adoption (if they havenā€™t been already, I donā€™t know how BeatBuddy communicates with AEROS and whether or not it is using MMC).

I also find this pattern odd:
CC#38: Mutes/Unmutes track (values 1-6)

So this is a toggle for MUTE, right? If I send CC38=1 then Track 1 will either Mute or Unmute based on itā€™s current state? Thatā€™s probably going to be a mistake. IMO, a MIDI command needs to be sent for a specific intended action, to tell a component to go to that specific state, not just tell the component to switch to itā€™s ā€œother possible stateā€. Thatā€™s why all toggle commands Iā€™ve ever encountered uses the pattern I mention above of Value < 64 and Value >=64. So if the intention is to map the Mute/Unmute to a toggle button on a controller, then that controller should send the specific Mute command when the button is activated and another specific Unmute command when the button is deactivated. You find this pattern a lot in the ā€œInstant Accessā€ buttons on controllers that toggle the bypass function of an effect pedal. They donā€™t (and shouldnā€™t) assume any specific state already exists, they send exactly the state needed.

So, the question at hand was about faders. There are a couple ways I see to go about this. The most straight forward way is to mimic the function of a treadle-based expression pedal. Each track has its own CC for volume, and accepts 0-127 as value. Thatā€™s the lowest common denominator style of volume or expression control. From there you could get a little fancier and have the UI on the AEROS switch to the MIXER screen automatically when it receives those CC commands and back to the performance screen when it stops receiving those commands for a second.

I can tell you that in a couple minutes of research I found that the LaunchControl XL support the Mackie HUI protocol. In that protocol, fader movements are actually Pitch Wheel commands. MIDI Pitch Wheel commands are their own subset of MIDI command that support a resolution greater than the usual 128 values. The Mackie HUI protocol is full of reusing things that they were not originally defined to do. A DAW Control Surface doesnā€™t need to send NOTES or PITCH for those intended uses, so they took them over for their own uses. Very much like I mentioned at the top of this post.

Another way assigns a CC for the volume of each track, but instead of value mapping between 0-127, any time a value < 64 is sent the volume goes down 1 ā€œnotchā€ and anything a value of >= 64 is sent the volume goes up 1 ā€œnotchā€. That is useful for assigning them to rotary controllers, not unlike the the behavior of the roller control on the AEROS itself. The Mackie HUI protocol does something similar (But with NOTE ON values instead of CC). A clockwise turn just sends the same value with each ā€œnotchā€ and a counter-clockwise turn sends the opposing value.

5 Likes

@RockDebris thank you for your detailed post.

To answer your questions:

CC-39, 0 is in addition to the MMC. Aeros responds to the sysex real time commands that the BeatBuddy sends. This was added to simplify the app setup of the MIDI Maestro. Start playback with CC-39, 127 is a good addition.

The Maestro does send note on commands ā€“ thatā€™s how it sends the different accent hits.

Mute/unmute with CC-38 was done for simplicity. I donā€™t see the downside of having the same commands toggle between two states.

Regarding the fader control: would it make sense to have values 0-100 mapped to volume 0-100? is there an advantage of using the full 0-127 range? What controllers would you be using to do this with?

3 Likes

I actually would prefer to not have toggling in a command because it makes it not play well with other devices. This why amplifier channels are never midi toggle, because it would make them never stay in sync with the state of other devices. I can elaborate on this further if need be.

In my experience, toggling should always be an option only done in the controller (by having it flip flop commands), not the controlled device. That will make it compatible with the most setups.

Line 6 briefly had a similar issue with Helix and it made it unusable with some amps and processors.

3 Likes

In that case, maybe just make one controller ā€œTransportā€ and assign all the MMC commands that you support to it? Just a thought to minimize usage of CCā€™s. Iā€™m not sure Iā€™ve ever seen that before, but it should work. Iā€™ve actually seen MMC equivalent commands implemented as PC commands when the target device only stores 100 presets, so PC 101 becomes Play, 102 stop, etc. Thatā€™s kind of weird, but it shows how companies are no stranger to mapping any MIDI command they wonā€™t be using to their own purpose.

Cool. That opens up possibilities to use NOTE ON in Aeros. That gives you a huge amount of additional command space. IMO, this is only necessary if you think you are in any danger of running out of CC commands, and since NOTE ON is not as well supported by many controllers while CCs are ubiquitous, itā€™s best to go the CC route if you can afford to. My original comment was based more on your proposed spec where it seems like if you keep going with that pattern you may run out of CC space (lots of CCs dedicated to a single command where I can imagine there will be many more).

Itā€™s simpler to design the spec, certainly, but harder to support for an end user on a controller that remembers boolean button state and where theyā€™ve made it the responsible of the controller for fully managing that state.

If you load a preset on any target device, you should be able to set the initial states of everything from a controller no matter how they were saved last in that device. Controllers are usually very adept and managing boolean states internally by letting you set the value of both 0 and 1 in their implementation of a generic Toggle mode. Then they have the added benefit of using LEDs or other indicators to show that the button is Active or Disabled without requiring feedback.

Otherwise, it becomes a guessing game and a roadblock for many of the ideas a user has. If you canā€™t absolutely rely on what state a device is in, you canā€™t rely on it enough to take on stage in a MIDI rig, IME.

So that implies that the AEROS supports 101 values for volume, correct? I believe you should scale the 101 actual Aeros values up to the 128 logical MIDI values. Thatā€™s the usual approach for nearly anything that you could think of as expression. That way, no matter what kind of physical controller is used or itā€™s capabilities, there wonā€™t be any dead space (ie: 27 values in the upper range that do nothing). Likewise, if the concrete values exceed 128, then they will scale down.

A lot of expression controllers can constrain their range (ie: scale their own 128 possible values down to whatever the user requires). However, I see that used more as a creative choice and not as a work around ā€¦ like you have a BandPass filter expression where you donā€™t want the mid-point frequency to go above or below a certain range, so then you can have the limits you want set in the controller, but still use the pedals full physical range.

This is the guideline I think makes the most sense with CC controllers and always leads to success, IME:

As a Command Button: CC[n] = 127
As a Boolean Control: CC[n] = 0-127 (0-63 OFF, 64-127 ON)
As an Expression Control: CC[n] = 0-127 (scaled if necessary except for maybe some esoteric cases.)
As a Mode Switch: CC[n] = 1-x (where x is the number of modes that exist, or if you go with zero based then 0-x where x is the number of modes that exist - 1. Either way, doesnā€™t matter.)
As an Increment/Decrement (Rotary/Jog/Scroll): CC[n] = 0,127 (0 = Decrement, 127 = Increment)

3 Likes

Thank you @JaredSmythe and @RockDebris for your feedback

Weā€™ll take all of this into account.

3 Likes

Certainly loving it, great build, real easy to figure out and navigate. Iā€™ve been testing some things with my morningstar mc6, all the realtime messages are working fine but iā€™m not getting cc102 (next part) messages working. Iā€™ve tried a slew of values to no avail, anything in particular i should try to get it working?

My other midi tests have been with my mpc live which has a transport button called play start. I can engage the play start function on my morningstar by stacking sysex messages, in this case these sysex messages are stacked; stop, reset, deferred play (not sure if aeros listens for deferred play?). The aeros however does not follow these messages like the mpc does. The first time i hit play start the aeros will start as intended but when i hit play start a second time the aeros stops, hit it again, it starts again. Basically alternating like that forever. The mpc retriggers at the start everytime. Not sure if this a bug or not but thought iā€™d mention it. The ideal behavior would be that the aeros follows the mpc and essentially retriggers from the top every button press.

Thanks

1 Like

I should revise my comments about cc102. If i press select part on the aeros i am then able to trigger play with cc102 on the morningstar. I think it would be more useful to say cc102 where value 1-6 trigger said part. So then i could essentially one button press for any part id like to go to.

1 Like

Can we have individual part change control of the 6 parts by sending a specific value (not just be limited to part changes that only move to the next sequential part)ā€¦ This would be essential for me as Iā€™d like to sequence my looped parts from my daw. Thanks.

1 Like

I have couple more feature requestsā€¦

Here is the firstā€¦

Can you implement the same midi function that the beat buddy has that sends out the time signature. I have an infinity looper and I know that it follows midi time signature commands that the BB sends out. I do not own a BB though I have other gear that handles this . it would be great if the aeros and the infinity played well together thoughā€¦

Iā€™ll post one idea/postā€¦ Best, H

1 Like

kā€¦ last request for nowā€¦

It would be nice to have some creative looping toolsā€¦ for instanceā€¦

if there was a feature where if a momentary switch was held down a cc command could be sent to temporarily re-record over specific areas of the loop.

This would be a game changer I think as it would enable for really wild loops. egsample ā€¦ sudden fx bursts in the loopā€¦ /stutters/ interesting rhythmic silenced areasā€¦

I have more ideas but I donā€™t want to overwhealm you with a ton of work ā€¦ I would be super happy though if you could implement this and my earlier suggestions. Love the pedal so farā€¦ it is very intuitive compared to other pedals that Iā€™ve tried. Best,H

1 Like

ERASE CURRENT SONGā€¦My old Infinity looper has this command. I use ONSONG and send the BeatBuddy setup and a looper ERASE CURRENT SONG command. This works great for playing real time.
Thanks again for consideration.
Jim Sesters

2 Likes

Can we select a song on BeatBuddy, then have BeatBuddy send a midi message to select the corresponding saved song in Aeros? Or does it have to be the other way around.?

1 Like

was going to post questions hereā€¦
all covered by others posters :sunglasses:
thanks ss for a GREAT product.
6x6 + song parts = THANK YOU
been watching keenly from the beginningā€¦
waiting to see the MM midi integration with looper to see if it can fit my application.
i sure hope it does.
Thanks

2 Likes

Would it be possible to have a command to solo the currently selected track, instead of having distinct commands to solo each track individually? And same for muting.

I donā€™t like having a huge midi controller with tons of buttons, but I might have a tiny one with just a few buttons, and so I want to be able to select a track on aeros, and then solo it using that midi controller.

2 Likes

The Boss RC-505 kinda has this feature, but they strangely donā€™t let you specify the current track. Instead you had to use the TRS connected footswitch to increment or decrement the selected track.

I really think SS may be overcomplicating all of this midi control talk. I think if they just had a robust midi assignment section and a set of controllable actions, they could do like Boss and let the users set it up to match whatever equipment they are integrating it with. If you want to get fancy, have midi settings presets to match various equipment out of the box. I kinda do this already with some software I wrote and run on a raspberry pi, but of course that doesnt help other users. Lol

3 Likes