# X1 to S4 Push-rotary modification

**URL:** <https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075>\
**Category:** Controller Mappings\
**Created:** [March 22, 2014, 1:55pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075 "2014-03-22T13:55:32Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sonarious](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/sonarious/32/16205_2.png) [@Sonarious](https://forum.djtechtools.com/u/Sonarious)\
**Post date:** [March 22, 2014, 1:55pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/1 "2014-03-22T13:55:32Z")

</div>

**X1 to S4 Push-rotary modification**

I really love the way the two push-rotaries on the S4 (above the cue points) are mapped. I loop a lot in my sets and just love the way how these two allow me to quickly set, move, and adjust the size of loops. Especially the moving is great for small adjustments.

Now as far as I know, the X1 allows for moving too, but only by 1 bar at a time. What I particularly like about the S4’s mapping is that I can move a loop with it’s full size at one time.

Now I’m moving to two X1’s to replace my S4, I want to do the same with the two push-rotaries on the X1. I don’t care much about the browser push-rotary on the X1 so I thought I’d sacrifice that one for my loop controls.

But how? How do I create a mapping for the two push-rotaries on the X1 so that they are exactly the same as the one on the S4?

Thanks so much!

---

<div class="post-metadata">

**Author:** ![Scalage](https://avatars.discourse-cdn.com/v4/letter/s/3d9bf3/32.png) [@Scalage](https://forum.djtechtools.com/u/Scalage)\
**Post date:** [March 22, 2014, 3:16pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/2 "2014-03-22T15:16:05Z")

</div>

If you can show what the encoders do on the s4 I can show you how to map them to your X1’s.

---

<div class="post-metadata">

**Author:** ![Stewe](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/stewe/32/14607_2.png) [@Stewe](https://forum.djtechtools.com/u/Stewe)\
**Post date:** [March 22, 2014, 5:56pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/3 "2014-03-22T17:56:58Z")

</div>

The easy way of locating necessary controls. Open an S4 mapping\> Map whatever function and Learn with loop move encoder. Now scroll trough the list of commands and search for duplicates which should be highlighted. All the highlighted loop related entries are your target commands.

---

<div class="post-metadata">

**Author:** ![Sonarious](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/sonarious/32/16205_2.png) [@Sonarious](https://forum.djtechtools.com/u/Sonarious)\
**Post date:** [May 10, 2014, 11:43am UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/4 "2014-05-10T11:43:14Z")

</div>

Hi Stewe, I don’t seem to be able to find a mapping in which these encoders are mapped manually. Just have the default embedded mapping. Can you recommend a mapping in which they work the same? Or another approach maybe?

BTW: I have no trouble paying someone for the trouble of creating me a mapping that maps the push-rotaries in the same way as the S4 does. Rest of the mapping I can do myself, just want these puppies to do the same as its big brother’s. 🎉

---

<div class="post-metadata">

**Author:** ![Stewe](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/stewe/32/14607_2.png) [@Stewe](https://forum.djtechtools.com/u/Stewe)\
**Post date:** [May 10, 2014, 11:57am UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/5 "2014-05-10T11:57:41Z")

</div>

What exactly those loop encoders do?

---

<div class="post-metadata">

**Author:** ![Sonarious](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/sonarious/32/16205_2.png) [@Sonarious](https://forum.djtechtools.com/u/Sonarious)\
**Post date:** [May 10, 2014, 4:43pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/6 "2014-05-10T16:43:01Z")

</div>

As you can see on the image below:

[http://yeahdef.com/wp-content/uploads/2011/05/yeahdef\_s4\_map\_layout.png](http://yeahdef.com/wp-content/uploads/2011/05/yeahdef_s4_map_layout.png)

Left:  
• Move the loop with the size you’ve selected  
•\*Pressing sets the loop to active / deactivates it  
Right:  
• Increase / decrease the size of the loop  
•\*Pressing instantly sets creates the loop with the size selected and sets it to active

Optionally it would be great if the moving of the loop goes with 1 bar per “click” if you hold shift 🎉

---

<div class="post-metadata">

**Author:** ![tekki](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/tekki/32/12829_2.png) [@tekki](https://forum.djtechtools.com/u/tekki)\
**Post date:** [May 10, 2014, 8:55pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/7 "2014-05-10T20:55:30Z")

</div>

What about these two?

Left Rotary  
—————  
Push - Loop In  
Twist - Beatjump and Loop Set

Right Rotary  
———————————-  
Push - Loop Active On (toggle)  
Twist - Loop Size Selector

---

<div class="post-metadata">

**Author:** ![Stewe](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/stewe/32/14607_2.png) [@Stewe](https://forum.djtechtools.com/u/Stewe)\
**Post date:** [May 10, 2014, 9:15pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/8 "2014-05-10T21:15:27Z")

</div>

**Left Encoder:**

Shift button Mx=1 (when held)

Deck Common \> Move \> Size Selector / Mx=0 / type=button / mode=direct / value=loop  
Deck Common \> Move \> Size Selector / Mx=1 / type=button / mode=direct / value=1  
Deck Common \> Move \> Move / type=encoder / mode=relative / rotary sensitivity=100% / acceleration=0% (invert in the button options if asked for)

**Left Pushbutton:**

Deck Common \> Loop \> Set Loop / type=button / mode=hold

* * *

**Right Encoder:**

Deck Common \> Loop \> Loop Size Selector / type=encoder / mode=relative/ rotary sensitivity=100% / acceleration=0%

**Right Pushbutton:**

Deck Common \> Loop \> Loop Active On / type=button / mode=toggle

---

<div class="post-metadata">

**Author:** ![Sonarious](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/sonarious/32/16205_2.png) [@Sonarious](https://forum.djtechtools.com/u/Sonarious)\
**Post date:** [May 11, 2014, 8:22pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/9 "2014-05-11T20:22:31Z")

</div>

It almost works Stewe, only the loop doesn’t move with its own size if you turn the left encoder. This one needs to do:

• If loop = active, move loop with its own size  
• If loop = inactive, beatjump with selected loop size

Do you see what I mean? I’ve added you on facebook, perhaps we can chat about it?

---

<div class="post-metadata">

**Author:** ![Stewe](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/stewe/32/14607_2.png) [@Stewe](https://forum.djtechtools.com/u/Stewe)\
**Post date:** [May 11, 2014, 8:33pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/10 "2014-05-11T20:33:47Z")

</div>

That’s good to know mate. I thought that first two lines should do the loop move part with a shift? Anyways I’m glad you figured it out eventually.

---

<div class="post-metadata">

**Author:** ![feedbackl00p](https://avatars.discourse-cdn.com/v4/letter/f/838e76/32.png) [@feedbackl00p](https://forum.djtechtools.com/u/feedbackl00p)\
**Post date:** [May 12, 2014, 4:24am UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/11 "2014-05-12T04:24:16Z")

</div>

…

---

<div class="post-metadata">

**Author:** ![Sonarious](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/sonarious/32/16205_2.png) [@Sonarious](https://forum.djtechtools.com/u/Sonarious)\
**Post date:** [May 13, 2014, 3:46pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/12 "2014-05-13T15:46:04Z")

</div>

Ok, I’m almost there! The only thing I now need is for the track to beatjump with the same amount of bars as the loop size when the loop is not active - is that even possible?

---

<div class="post-metadata">

**Author:** ![tekki](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/tekki/32/12829_2.png) [@tekki](https://forum.djtechtools.com/u/tekki)\
**Post date:** [May 13, 2014, 7:18pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/13 "2014-05-13T19:18:20Z")

</div>

Doesn’t “Move \> Beatjump \> + loop” and “.. \> - loop” do just that?

---

<div class="post-metadata">

**Author:** ![Stewe](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.djtechtools.com/stewe/32/14607_2.png) [@Stewe](https://forum.djtechtools.com/u/Stewe)\
**Post date:** [May 13, 2014, 8:50pm UTC](https://forum.djtechtools.com/t/x1-to-s4-push-rotary-modification/65075/14 "2014-05-13T20:50:45Z")

</div>

I use ‘beatjump’ command for my buttons and the ‘move’ when it comes to encoder. This command basically moves around the track, but, if I add a ‘Size Selector’ \> set the value to loop and map to the same rotary then it should drink a water.
