Old 08-25-2019, 01:44 PM   #1
kenm
Human being with feelings
 
Join Date: Dec 2011
Location: San Jose, CA, USA
Posts: 72
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: 72
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: 48
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: 113
Default

This should be interesting !

Thanks
Nantho is online now   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: 72
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: 72
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: 48
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: 72
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: 48
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: 72
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: 48
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: 48
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: 72
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: 48
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: 48
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: 72
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: 72
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: 72
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, 3 views)
File Type: lua ATOM_disableNC.lua (783 Bytes, 3 views)
File Type: lua __startup.lua (189 Bytes, 3 views)
File Type: lua ATOM_shift_test.lua (382 Bytes, 4 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: 48
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: 72
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: 72
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: 113
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 online now   Reply With Quote
Old 09-12-2019, 10:09 PM   #23
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 48
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: 72
Default

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
Attached Files
File Type: zip ATOM_0.1.zip (5.8 KB, 1 views)
kenm is offline   Reply With Quote
Old Yesterday, 02:35 PM   #25
psych
Human being with feelings
 
psych's Avatar
 
Join Date: Oct 2007
Posts: 48
Default

Thanks! That looks great, looking forward to trying it!
psych 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 12:53 AM.


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