Old 08-25-2019, 01:44 PM   #1
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default Presonus Atom?

Has anyone tried one of these with Reaper?

Just saw a demo of its tight integration with Studio One 4 and I'd like to try to do the same or similar in Reaper. From the manual, it appears to just be a MIDI controller when sending messages to a DAW, but I'm wondering about controlling the LEDs, etc.

It's a little pricey but I had previously downloaded a copy of SO4 Prime to help out a friend with a problem he was having and they are now offering me an Atom + SO4 Artist for a pretty good discount. Not the least bit interested in SO4, but the Atom does look interesting.

Thanks,
Ken
kenm is offline   Reply With Quote
Old 08-30-2019, 12:51 PM   #2
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

So I ended up pulling the trigger on the special offer from Presonus. The Atom arrived yesterday but I just got a chance to hook it up.

My first thought is "Holy crap those LEDs are BRIGHT!". I had to unplug it while I downloaded the manual to figure out how to turn them off. As it turns out, you can't turn them off, only dim them, and since there's no power switch on the Atom, it will have to get plugged into a remote controlled USB hub so I can turn it on and off. Sure I could just unplug it all of the time but that will certainly wear out the USB port on the back of the controller.

Fired up Midi Monitor and starting to look at the MIDI messages. I'll provide another update once I get through the manual and understand all of the messages.

Ken
kenm is offline   Reply With Quote
Old 08-30-2019, 12:57 PM   #3
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

Quote:
Originally Posted by kenm View Post
So I ended up pulling the trigger on the special offer from Presonus. The Atom arrived yesterday but I just got a chance to hook it up.

My first thought is "Holy crap those LEDs are BRIGHT!". I had to unplug it while I downloaded the manual to figure out how to turn them off. As it turns out, you can't turn them off, only dim them, and since there's no power switch on the Atom, it will have to get plugged into a remote controlled USB hub so I can turn it on and off. Sure I could just unplug it all of the time but that will certainly wear out the USB port on the back of the controller.

Fired up Midi Monitor and starting to look at the MIDI messages. I'll provide another update once I get through the manual and understand all of the messages.

Ken
Cool looking forward to hearing what you find out!
psych is offline   Reply With Quote
Old 08-30-2019, 03:47 PM   #4
Nantho
Human being with feelings
 
Join Date: Mar 2013
Posts: 213
Default

This should be interesting !

Thanks
Nantho is offline   Reply With Quote
Old 09-01-2019, 12:02 PM   #5
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Let's start with the physical stuff:

1. The form factor is good. It doesn't take up too much space on my desk and it isn't too tall so it doesn't get in the way when doing something else. (See my comments later on the LEDs)

2. The top of the Atom is black while the sides and bottom are white. This looks a bit off on a black mixing desk. I would have preferred it to be all black.

3. The pads, knobs, and buttons feel really nice. If you want an Akai MPD pad tactile feel, these aren't the pads for you. I do wish the knob had a "push" function like the X-Touch Mini. I'm used to using that for parameter selection in plugins.

4. While technically not physical, here's as good a place as any to talk about the LEDs. They are super bright and distracting. Yes, you can dim them in advanced setup, but even then they are still pretty bright. Also, if you unplug and re-plug the Atom, the LEDs return to full brightness. I've resorted to leaving it plugged in and putting a small, flat cardboard box over it when I'm not using it. The green/blue Presonus logo at the very top is easy to cover with Gaffer's tape. BTW, It's blue when connected to SO4 otherwise it's green.

Now for the MIDI stuff:

1. The pads send pre-defined MIDI notes and CANNOT BE EDITED. Even though there are eight banks to chose from, each bank is just a sequential group of MIDI notes. You'll have to use Midi note re-mapping as described here: https://youtu.be/ceTWomSAMeE to record notes appropriate for a General MIDI Drum Kit.

2. Pads send MIDI Aftertouch which CANNOT be turned off. Search for "reaper midi filter" and you'll find a couple of options to "fix" this.

3. The knobs work as expected, sending a stream of CC's with values of 00-127. I like the fact that these are not continuous meaning they stop at "00" or "127" no matter how many times you turn them. You can also hold down the shift key and get a second set of values for a different CC. Granularity is nice with three full rotations from 00-127. I found them very smooth and linear.

4. The Buttons, starting in the lower left is the SHIFT button. This is an internal button and doesn't send any MIDI messages. It's used as a modifier for other controls.

5. The MODE Buttons are a little strange. They send MIDI CC messages but they also control local behavior at the same time. For example, Note Repeat is a latching button. Pressing it send CC24 with a value of 127. It also puts the Atom into note repeat mode where you can set the repeat rate for rolls. Pressing Note Repeat again sends a CC24 with a value of 0. Full Level does something similar by sending a CC25 and then all pads send full velocity until Full Level is pressed again at which point it sends CC25 with a value of 0. I have to question what the usefulness is in sending the CC messages for the Mode buttons? I'd like to understand that a bit more.

6. For the INST Buttons, the Bank button is similar to the MODE buttons, in that it sends a CC and then controls an internal Atom function, and then sends a CC when released. The Bank button is a momentary so you have to press and hold it to select one of eight pre-defined pad banks. One cool thing the Bank button does is sends a Note Off for all of the notes in the current bank so it could be used as a quick panic for stuck notes. Preset +/- is latching and in addition to sending a CC message it also causes the pads to change what notes they send. Releasing it returns the pads to their normal bank assignment. Show/Hide just sends a MIDI CC and doesn't appear to change anything locally on the Atom.

7. The Song and Event Buttons appear to just send MIDI CC messages and don't appear to have any local functionality. All four are latching.

I'll continue with the buttons on the right after a short break. I plan to continue to update/edit/refine this as I learn more.

One additional thing that just annoys the heck out of me and that is the fact that the PDF manual for the Atom doesn't take you to the page that's referenced in the Table of Contents. Sure, I can jump straight to the page using a "go to page" option but that shouldn't be necessary. OH yeah, I forgot this one. They didn't take into account the title page and table of contents in the page numbering so If the Table of Contents says "34" and you go to "34" you end up on page 32. Annoying.

Feel free to ask any and all questions. I'm happy to take "can you try this?" requests since it helps me learn more about the controller.

Stay tuned,
Ken
kenm is offline   Reply With Quote
Old 09-01-2019, 02:40 PM   #6
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Break is over.

The buttons on the right are very simple. They have no local Atom functionality so all they do is send MIDI CC messages. All of the NAV buttons are momentary with the exception of the Zoom button which is latching. They send the same MIDI CC messages whether or not they are normal or shifted.

All of the TRANS buttons are latching with the exception of the Stop/Undo button which is momentary. The buttons on the right with two words on them are the normal and shifted function in S04. These buttons seem to not only send different CCs in normal vs. shifted actions but some of them also appear to change from latching to momentary.

Click/Count In: Click is latching CC69 while Count In (shifted) is momentary CC6A.

Record/Save: Record is latching CC6B while Save (shifted) is a one-shot CC6C. By one-shot I mean that it goes to value of 7F and returns to 0 even if you hold it down. That's the first button I've seen do that but now I'm going to have to go back and look at them all again.

Play/Loop: Play is latching CC6D and Loop (shifted) is a latching CC6E.

Stop/Undo: Stop is momentary CC6F and Undo (shifted) is another one-shot CC70.


I haven't really talked about MIDI channels yet but just be aware that the pads, vs. knobs and buttons, send on different MIDI channels. The defaults are 10 and 1 but can be changed in Advanced Setup.

Now it's time to actually go do something with the Atom and see how it works out in a real application.

Ken
kenm is offline   Reply With Quote
Old 09-01-2019, 06:54 PM   #7
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

so other reviews of the Atom have said that it’s better in terms of its pad sensitivity then the lower price iPads on the MPD 226 for example. how is the pad sensitivity? That’s what’s most important to me because I want to use it to learn finger drumming.
psych is offline   Reply With Quote
Old 09-01-2019, 07:44 PM   #8
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Quote:
Originally Posted by psych View Post
so other reviews of the Atom have said that it’s better in terms of its pad sensitivity then the lower price iPads on the MPD 226 for example. how is the pad sensitivity? That’s what’s most important to me because I want to use it to learn finger drumming.
Hey psych,

It's funny. That was my primary motivation behind taking the offer. Yes, compared to an MPD218, which is sitting right next to it, the Atom's pads are much better from a sensitivity standpoint. I do wish the sensitivity was configurable, but that's a tough ask at this price point. They don't have the same tactile "bounce" feel of the 218 and I really like the black tops with under-glow on the 218, but the Atom's pads are much more sensitive.

My 218 is about two years old and it's now started developing the dreaded double-trigger problem. At first I thought it was my playing style. I suffer from diabetic neuropathy so the ends of my fingers are slowly getting less sensitive to pressure over time. After reading numerous posts about the problem I was convinced it wasn't my style.

I use the XpressPads finger drumming technique and I just finished the MIDI key mapping to support the left/right mirrored pad layout. Works great.

If you were in Northern California you could borrow it to try out.

Ken
kenm is offline   Reply With Quote
Old 09-02-2019, 01:33 PM   #9
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

Very nice of you to offer, but I’m in Hawaii. Thanks anyway and really looking forward to what you find out working with it.
psych is offline   Reply With Quote
Old 09-03-2019, 12:04 PM   #10
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Quote:
Originally Posted by psych View Post
Very nice of you to offer, but I’m in Hawaii. Thanks anyway and really looking forward to what you find out working with it.
Hey psych,

I spent about 30 minutes yesterday and 30 minutes this morning practicing my finger drumming and I can tell you for sure the Atom is a keeper. I think my playing style actually tightened up a bit. This may simply be because I wasn't worried about the annoying double triggers I'd been getting with the MPD218 but I think it's the pad sensitivity as well.

I configured some of the NAV and TRANS buttons (MIDI CCs) to trigger Reaper actions so I never have to take my hands off the Atom while I'm practicing. With the MPD218 I had to keep going back and forth between the 218 and the Faderport to control the transport.

My next experiments will be with hooking it up to an iPad and seeing how that works. In a YT review, I saw someone mention that it doesn't work on the iPad Pro without a powered, external hub because of all the LEDs. That seems a bit strange to me since I haven't been able to use many USB MIDI controllers without external power attached to my USB3 CCK. Nothing unique to the Atom as far as I can tell.

More to come.
Ken
kenm is offline   Reply With Quote
Old 09-04-2019, 04:57 PM   #11
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

Just got my own Atom off a discount used on Amazon. Looks great so far but haven't hooked it up yet. Going to use it with superior drummer 3 inside reaper. It would be fun to see how you set up the buttons to maximize the workflow. I will stay away from the INST and mode buttons for now. will also try it with my ipad. I have a midi Bluetooth adapter that could be patched into a battery or USB wall power that should work regardless.

Bryan
psych is offline   Reply With Quote
Old 09-05-2019, 02:33 AM   #12
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

Started messing with mine today and seems really good. Downloaded a copy of bome’s midi translator so that I can control superior drummer keystrokes with it. it’s a lot of fun. I already like it better than my akai 226 I have.
psych is offline   Reply With Quote
Old 09-05-2019, 09:42 AM   #13
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Hey psych,

Glad to hear you picked one up. It will be good to have someone else to compare notes with.

I was able to get it working with the iPad as long as I used external power for the CCK. I tried several USB MIDI devices (I have 4) and all of them required external power so I'm not sure what that YT reviewer was whining about.

One thing I did find that was a little strange but made sense after I thought about it and that is the connecting sequence is important for the iPad. It's important to plug in the CCK, either with or without external power connected to it, but you have to have external power connected BEFORE you connect the USB MIDI device. The reason for this is the CCK needs the additional power to be on otherwise it won't be able to power on the USB MIDI device and the iPad won't be able to detect it. In other words, plugging the USB MIDI device into the CCK along with external power, and then plugging the whole setup into the iPad will result in the MIDI device not being detected by the iPad.

As far as using Bome's MIDI Translator, why do you need that? If you are running SD3 as a plugin within Reaper, you can put the JS MIDI mapper on the input to the channel with SD3 on the output.

Still working on some integration things. I need to figure out if it's possible to trigger a Reaper action based on the "value" of a MIDI CC message not just the channel and CC number.

Keep having fun,
Ken
kenm is offline   Reply With Quote
Old 09-05-2019, 04:53 PM   #14
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

SD3 uses keystrokes for controlling the program itself. So calling up the editor for example can be done with a keystroke but not midi. So that made bome a good option to navigate the program itself. The rest can be done in reaper as you describe. If the keystrokes are the same as ones that reaper already uses I may have to change/delete the default ones in reaper so that I can use them on SD3. I am only using the classic version of bome which is free.

Haven't tried it with my ipad yet, but that would just be with bluetooth midi. Potential problem would be latency I guess but I don't anticipate it. I will try it out later today if I get a chance.

Last edited by psych; 09-05-2019 at 05:20 PM.
psych is offline   Reply With Quote
Old 09-06-2019, 04:47 PM   #15
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

How are you configuring your buttons?
psych is offline   Reply With Quote
Old 09-06-2019, 05:39 PM   #16
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Quote:
Originally Posted by psych View Post
How are you configuring your buttons?
Hey psych,

Hang in there for just a little while. Everything I've been doing up to now has been based on using the ATOM with Studio One Native control not active (Green Logo) vs. Studio One Native Control active (Blue Logo). Earlier today I figured out how SO4 gets the ATOM in and out of Native Control mode and I can tell you that Native Control mode is way better.

I got a little side tracked since the first thing I did was capture the LED control messages for the pads and figured out how to turn those F-ing things off. Now this thing can live on my desk without its little cardboard coffin covering it up.

I've got some time to work on this tonight and tomorrow so I should have something worth sharing by late tomorrow.

Again, Hang in there.
Ken
kenm is offline   Reply With Quote
Old 09-07-2019, 11:11 AM   #17
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Hey psych,

Two words: NATIVE CONTROL

I had no intention of ever installing SO4 Artist which came with the ATOM, but decided to play around with it to see what I could figure out about the tight integration. The first thing I figured out was what mechanism S04 uses to get the ATOM in and out of Native Control mode.

In NC mode, all of the pads and buttons are momentary, so no more of that momentary, latching, or one-shot BS. All buttons (even the shift) just send a CC on channel 1 with a 3rd byte of 127 when pressed and 0 when released. The pads do the same but send Note On and Off.

In this mode, all of the LEDs except for the logo, are OFF. Well as close to off as possible. The buttons only have Dim and Bright, so they never actually go off. At least, no way that I can find yet to turn them off. Controlling the LEDs is described below.

Now it's time to take what I've learned so far and do some scripting with it.

Here's my notes so far:

This information is based on ATOM Firmware v3.00 as reported by Universal Control

Messages are sent TO ATOM on MIDI channels 1, 2-4 (Pads RGB), and 16 (Native Control)

Studio One Native Control:
Enable (Blue Logo): Channel 16 Note Off 0 Velocity 127
Disable (Green Logo): Channel 16 Note Off 0 Velocity 0


Pad LEDs:

Pad Note xx is 36 - 51 for Pads 01-16. Note that there are no "Banks" in NC mode.

Pad xx LED On: Channel 1 Note On xx Velocity 127
Pad xx LED Off: Channel 1 Note On xx Velocity 0

Pad LED Color:

This even works if the Pad LED isn't On, so you can pre-set the color and then turn the pad LED on.

Channel 2: Red
Channel 3: Green
Channel 4: Blue

Channel X Note Off xx Velocity yy
where X is for RGB channels (2-4), xx is pad note (36-51), yy is intensity (0-127)


Button LEDs:

Button CCs are defined in Section 5 of the ATOM Owner's Manual. Note that there is no "shifted" CCs in NC mode. The <SHIFT> button is CC 32 which isn't defined in Section 5.

On and Off are actually Bright and Dim. There's no way that I've found (yet) to actually turn off the button LEDs.

Button xx LED On: Channel 1 CC xx 127
Button xx LED Off: Channel 1 CC xx 0

Encoders:

Encoder 1 - 4 are Channel 1 CC 14 - 17 <direction>

Rotate Clockwise is CC xx 1 for each step
Rotate Counter-Clockwise is CC xx 65 for each step

Encoders are continuous in this mode. One full rotation is XX steps. (Need to figure this out. Looks like about 32)

If interested, I'm on a Mac, using the following tools:

MIDI Monitor: https://www.snoize.com/MIDIMonitor/

SendMIDI: https://github.com/gbevin/SendMIDI

Both are free and open source.


Again, Now it's time to do some scripting.
Ken
kenm is offline   Reply With Quote
Old 09-07-2019, 05:32 PM   #18
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

So far I've been able to enable and disable NC mode from within Reaper as well as a very simple script to turn the Shift button LED On when the button is pressed and turn it Off when the button is released. This script will also be used to set a "global" shift mode to tell other scripts the shift button is pressed. I also found out how to automatically run a script at Reaper startup to Enable NC mode. Unfortunately, I can't find a way to run a script at shutdown to Disable it.

ATOM_enableNC.lua - Searches the MIDI Output devices until it finds an ATOM and sends the appropriate MIDI message to enable Native Control Mode.

ATOM_disableNC.lua - Same as able but it disables NC Mode.

__startup.lua - Runs ATOM_enableNC.lua every time Reaper is started.

ATOM_shift_test.lua - Bound to MIDI CH01 CC32, this script turns on the shift button LED when the button is pressed and turns if off when the button is released. You'll need to add the binding to the script action trigger manually.

Thanks to @airon for the example of how to search for a MIDI output device, @mespotine for the tip on creating a startup script, and @heda for the example of how to run a lua script from another lua script.

More to come.
Ken
Attached Files
File Type: lua ATOM_enableNC.lua (783 Bytes, 337 views)
File Type: lua ATOM_disableNC.lua (783 Bytes, 302 views)
File Type: lua __startup.lua (189 Bytes, 337 views)
File Type: lua ATOM_shift_test.lua (382 Bytes, 319 views)
kenm is offline   Reply With Quote
Old 09-09-2019, 01:31 AM   #19
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

Wow. Very impressive! Looking forward to see what you do with assigning the buttons
psych is offline   Reply With Quote
Old 09-10-2019, 01:30 PM   #20
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Quote:
Originally Posted by psych View Post
Wow. Very impressive! Looking forward to see what you do with assigning the buttons
Thanks psych.

Unfortunately, I've kind of hit a road block when it comes to getting this to work with scripting. I planned on creating a script (in Lua) that received all of the MIDI messages coming from the ATOM and processed them accordingly. As it turns out, there's no way to register a callback or subscribe to MIDI messages using scripts. This would have to be done as a plugin extension. Haven't figured out the difference between an extension and a control surface plugin but I'm looking into that. In either case, it would have to be done in C++, which I don't know very well. The only way to do this with scripts is to bind each ATOM button and pad to script action. 36 bindings would be a lot of manual setup and that doesn't even account for actions that would be needed to sync events in Reaper with buttons, such as Play in Reaper lighting the Play and Stop button LEDs appropriately.


Stay tuned. More research needed.

Ken

Last edited by kenm; 09-10-2019 at 07:57 PM. Reason: fixed typos
kenm is offline   Reply With Quote
Old 09-11-2019, 08:11 PM   #21
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Hey psych,

Apologies for the whining in my last post.

It's actually really easy for me to configure the MIDI CC bindings to the script actions and then export them as a keymap file, so that shouldn't be an issue. I've also figured out how to get a Lua module to load properly so most of the work can be done in a single module. Right now each CC binding has its own script that just loads the module and then calls a function within the module. It would be a lot cleaner if I could set an action to call a function within a script but it doesn't look like that's possible.

I'm focusing on Play/Stop so I should have something for you to try out in a day or so.

Ken

Last edited by kenm; 09-13-2019 at 08:33 AM. Reason: fixed typo
kenm is offline   Reply With Quote
Old 09-12-2019, 08:28 AM   #22
Nantho
Human being with feelings
 
Join Date: Mar 2013
Posts: 213
Default

Thank you for all of this, this is an incredible investigation work you're doing here !

Very interesting, I'll keep an eye on this thread 'cause I might pull the trigger on the Atom one day or another
Nantho is offline   Reply With Quote
Old 09-12-2019, 10:09 PM   #23
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

Great ken glad to hear you’re on the case!
psych is offline   Reply With Quote
Old 09-14-2019, 04:56 PM   #24
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

EDIT: Removed version 0.1 attachment. See 0.2 below.

A little longer than expected, but here you go...

So far I have Play/Stop/Record and Shift working.

Play, Stop, and Record work as usual and the button LEDs even follow the Reaper Transport actions.

Shift+Play toggles "Repeat" and changes the Play button color from green to blue. The pads all work on a MIDI track, they just don't light up yet. That's my next task.

To install:

CAUTON: If you already have a __startup.lua file, please BACK IT UP and merge it later.

1. Unzip the archive into the $RESOURCES/Scripts. You should end up with an ATOM sub-directory, an ATOM.ReaperKeyMap, and a __startup.lua file.

2. Move the ATOM.ReaperKeyMap file to $RESOURCES/KeyMaps (I'll make this easier in the future)

3. Start Reaper with your ATOM unplugged. You should get a message indicating that "ATOM:nc_mode() Couldn't find an ATOM Controller." That's OK and it means the scripts are working.

4. Open the Actions List and Import the ATOM keymap from the archive.

5. Merge your __startup.lua file with the file from the archive.

6. Shutdown Reaper, plug in your ATOM, and restart Reaper.

If all goes well, you should not see any message windows. At the bottom of the Actions Menu, you should see a script running called ATOM_polling.lua. Leave this running in the background. It's what syncs the button LEDs with Reaper states. You should also see that the Stop button is Bright Orange.

Load up your favorite project and press Play on the ATOM.

Enjoy. Much more to come. Now that the core Lua module (ATOM.lua) is created, I should be able to pick up the pace.

Ken

Last edited by kenm; 09-18-2019 at 10:31 AM.
kenm is offline   Reply With Quote
Old 09-17-2019, 02:35 PM   #25
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

Thanks! That looks great, looking forward to trying it!
psych is offline   Reply With Quote
Old 09-18-2019, 10:29 AM   #26
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Here is an updated version that includes support for:

Click - Toggles Metronome
Shift-Click (Count In) - Opens Metronome/Pre-Roll Settings Window
Shift-Record (Save) - Save the current project

One caveat with Click and that is that it's very easy to get out-of-sync with Reaper if you use the Click button sometimes and mouse click on the toolbar icon other times. Unlike "play-state" there's no way to poll for the state of the metronome so there's no way to update the ATOM Click status. If this happens, tap the Click button twice to re-sync with Reaper.

Same installation instructions as v0.1.

Pad color support is coming in the next release.

Ken

EDIT: Removed package 0.2. Scroll down to find 0.3.

Last edited by kenm; 10-01-2019 at 07:50 PM.
kenm is offline   Reply With Quote
Old 09-23-2019, 03:14 PM   #27
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

The Pads work for me but I didn't get anything else to trigger like the transport or metronome, I would guess that I didn't understand how to merge the .lua file correctly because although it does look for the device on start up correctly, it doesn't seem to do more than that. Is there something easy that I am missing?

Thanks for your hard work. It would really cool to get this working.

Last edited by psych; 09-23-2019 at 05:07 PM.
psych is offline   Reply With Quote
Old 09-23-2019, 04:48 PM   #28
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Hey psych,

Did you remember to import the ATOM.ReaperKeyMap file into the Action List? That's what associates the CCs coming from the ATOM to the Reaper actions.

Ken
kenm is offline   Reply With Quote
Old 09-24-2019, 11:22 AM   #29
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default Need some input on a design choice

As I started working on handling the pad presses for both controlling the LEDs and for using the pads for other functions, such as bank selects, I quickly discovered that I needed to write a JSFX plugin to do this. Thanks to Robert Randolph and his excellent JSFX plugin tutorial, that hasn't been too difficult.

In Native Control mode, the ATOM sends everything on MIDI Channel 1. The buttons are CCs and the pads are Notes. In order to trigger pad actions I need to convert Note On/Off messages to CC messages with a "value' indicating the On or Off state. The CC messages are then intercepted by the MidiToReaControlPath VST and passed into the Reaper Control Path to trigger the actions.

Now for my dilemma. Since the ATOM sends everything on MIDI Channel 1, all pad and button presses get recorded onto the MIDI track. My thought is to "shift" all of the incoming CC messages as well as the converted Note messages to Channel 2. With this all of the Note messages and Aftertouch data can still be recorded on Channel 1 as usual.

This has other implications if the ATOM were to be used as an input device on more than one track.

I'd appreciate some input on this and feel free to ask questions as well if something doesn't make sense. I'm just learning this stuff so my understanding may be off.

Thanks,
Ken
kenm is offline   Reply With Quote
Old 09-24-2019, 02:44 PM   #30
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

Better! Now the play button works, the click button works but takes two presses to change the metronome status. None of the shift functions work for me but since you have put it into native mode there's probably no reason I can just map those functions myself. Thanks for you hard work!
psych is offline   Reply With Quote
Old 09-24-2019, 03:06 PM   #31
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Hey psych,

It sounds like your ATOM isn't in NC mode? What color is the Logo at the very top of the ATOM? It needs to be Blue or my code will do all sorts of weird stuff.

EDIT: Can you post the contents of your __startup.lua file?

Ken
kenm is offline   Reply With Quote
Old 09-25-2019, 04:29 PM   #32
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

My light is green.

My startup.lua is...


package.path = reaper.GetResourcePath() .. "/Scripts/ATOM/?.lua"
atom = require("ATOM")
atom.nc_mode("enable")
atom.start_polling()

If I don't connect the Atom to USB then I do get the error message that its looking for it but can't find it.

Psych
psych is offline   Reply With Quote
Old 09-25-2019, 04:40 PM   #33
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Quote:
Originally Posted by psych View Post
My light is green.

My startup.lua is...


package.path = reaper.GetResourcePath() .. "/Scripts/ATOM/?.lua"
atom = require("ATOM")
atom.nc_mode("enable")
atom.start_polling()

If I don't connect the Atom to USB then I do get the error message that its looking for it but can't find it.

Psych
Duh. One critical setup step I forgot. You need to configure the ATOM as a MIDI Input device for Input & Control and you also need to configure it as a MIDI Output device.

EDIT: On other thing. Did you do the mandatory firmware update to the ATOM using the Universal Control utility? What firmware version does UC say your ATOM is running?


Hope this helps,
Ken
kenm is offline   Reply With Quote
Old 09-25-2019, 06:09 PM   #34
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

I have done the firmware update to 3.0. Can’t remember how I configured it as a controller. Because the pads we’re triggering drums I think I assumed that the inputs and outputs are set up correctly but that may not have been the case. I’ll look into it.
psych is offline   Reply With Quote
Old 09-27-2019, 02:48 PM   #35
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

Yep in blue now. My error of not putting the settings to send data to the device. Looks to work as advertised. Thanks!
psych is offline   Reply With Quote
Old 09-28-2019, 09:08 AM   #36
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Quote:
Originally Posted by psych View Post
Yep in blue now. My error of not putting the settings to send data to the device. Looks to work as advertised. Thanks!
Sweet.

I'm almost ready to push out the pad color support as well as support for the Full Level button. This part is implemented as a combination of a JSFX Input plugin as well as scripts that are run from actions. The JSFX plugin also uses the MidiToReaControlPath plugin to get the CC messages into the Reaper control path.

There were a lot of design choices with the JSFX plugin and rather than make them at this point I just implemented all the options as controls in the plugin so it's highly configurable.

Right now the options are:

- Turn On/Off the generation of CC messages for pads
- Turn On/Off AfterTouch filtering for pads
- Turn On/Off passing of Button CC messages
- An option to route CC messages to an alternate channel (other than 1)
- A selector to select the alternate channel

Of course, since it's a plugin, these options can be changed and saved as a user preset or as the default for the plugin.

I'll definitely write up better installation instructions for this version.

Stay tuned,
Ken
kenm is offline   Reply With Quote
Old 10-01-2019, 08:05 PM   #37
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Here is update 0.3 with pad color support.

I had to drop the Full Level button support for the moment since the changes I made to the JSFX plugin caused seriously high CPU usage. I need to debug this and thoroughly test it before release.

Please let me know if you find any issues with installation or usage.

Ken

EDIT: Deleted ZIP file. Package is now located at: https://github.com/kmitch95120/Reape...ses/tag/v0.3.1

Last edited by kenm; 10-02-2019 at 10:58 AM. Reason: Removed ZIP file
kenm is offline   Reply With Quote
Old 10-02-2019, 04:17 PM   #38
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 73
Default

Cool. So just install over top? or do I have to start from scratch?
psych is offline   Reply With Quote
Old 10-02-2019, 04:30 PM   #39
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Quote:
Originally Posted by psych View Post
Cool. So just install over top? or do I have to start from scratch?
Take a look at Installation.pdf

For the most part you can just install over top of what's already there.

The only exception is you have to delete all of the ATOM script actions from the action list before importing the new keymap. The reason for this is in version 0.2, the actions were triggered by CCs on Channel 1 and now they are triggered by CCs on Channel 2. If you just import the new file, Reaper will merge the triggers and then you'd have actions that would trigger on CCs from Channel 1 or 2. Not what we want.

Let me know how it goes.

Ken
kenm is offline   Reply With Quote
Old 10-05-2019, 05:34 PM   #40
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 115
Default

Update 0.4 has been pushed to Github.

- Added Support for Full Level button
- Added Support for Encoders in Absolute and Relative mode
- Added a track template for the Controller Track

Package can be downloaded from here: https://github.com/kmitch95120/Reape...eases/tag/v0.4

Investigating what it would take to properly implement the note repeat key and functions.

Looking for inspiration on what to work on next.

Enjoy,
Ken
kenm is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 08:03 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.