Jump to content


Photo

Behringer X-Touch


  • Please log in to reply
12 replies to this topic

#1 beublo

beublo

    Member

  • Normal Members
  • PipPip
  • 15 posts

Posted 10 November 2017 - 16:16

Hi everyone!

 

Anyone here owning an X-Touch or X-Touch compact?

 

I'm starting with Renoise, and wish to make my X-Touch work with it. There is already support for (most of the) MCU protocol in Duplex, but it's really not to my taste. Also, it seems the full potential of the X-Touch (like color scribble strips) can only be unlocked when using their proprietary Xctl protocol. So, I'm planning on working to implement Xctl in Renoise. It seems fairly simple, except I'm discovering the Renoise API and haven't used Lua in, hm, over a decade (that's not the issue :) I'll get into it fast enough).

I'll be basing my implementation on this doc: http://www.budgetfea...-Touch V1.0.pdf

After a few quick experiments in the terminal, I could configure a scribble strip properly, so I trust this doc is solid. :)

Also, I'm planning to tailor the overlay to my very needs, so if anyone is interested, let's discuss what overlay(s) to create! :)

 

Apart from that, I'm not sure whether it's better to make a new device for Duplex or code it from scratch. It seems Duplex doesn't handle screens or VU leds yet? Also I couldn't find a proper tutorial to create a new Duplex device, nor could I find a proper starting point in the Duplex docs (Maybe it's already there, I can easily overlook things when I'm browsing, especially the obvious. It happens.)



#2 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6985 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 10 November 2017 - 21:36

Nah, you're right. The deeper innards of Duplex is not very well documented (except perhaps in the code itself). 

So I would ignore Duplex for now, and write a simple tool that works. 

 

The reason that there is no screen support in Duplex is that I've struggled to come up with a sufficiently "generic" solution. Unlike with MIDI itself, there are no standards that define what should or shouldn't be possible. So such a thing would most likely end up being a device-specific feature anyway.


Tracking with Stuff. API wishlist | Soundcloud


#3 beublo

beublo

    Member

  • Normal Members
  • PipPip
  • 15 posts

Posted 11 November 2017 - 16:09

Thanks for you response. And for Renoise haha!

 

It's going surprisingly well. Lua is a bit quirky in unexpected places, but overall it's still a very decent language and the Renoise API is just fluffy for what I've seen so far.

 

I agree defining a proper abstraction for a screen is a few orders of magnitude more mind-boggling than it's worth in the end, unless we settle on a terribly minimal feature set (and still…). Maybe over time I'll be able to look under the hood and try and bring some help with Duplex.



#4 beublo

beublo

    Member

  • Normal Members
  • PipPip
  • 15 posts

Posted 28 November 2017 - 14:56

So, a little progress update…

 

I now have a class XTouch that maps all the X-Touch controls in a renoise Document so everything can be observed the renoise way and also provides a simple event system to handle explicitly events such as press/release (a button), move (a fader), etc. In addition, there's a simplistic system to host various programs (implemented as lua files in a Programs/ subdirectory) and switch between them directly on the X-Touch. As of now, only MIDI is supported. I'll need to do some packet sniffing to understand the ethernet protocol when I have nothing else to do to implement the probably incomparably faster ethernet link.

It also includes a dirty—but working—hack to be able to attach a VU meter to the current level of a track.

 

It is heavily undocumented at the moment, but if anyone's interested I can release it as a library. Otherwise it stays in the future X-Touch tool which I plan to release when I'm done implementing the Mixer interface program, at least enough to control the mixer decently. There is potential for controlling most of Renoise on this piece of gear, even though pattern editing on the X-Touch will probably not be desirable.

 

I'm happy enough coding X-Touch support for my own needs but it'd be awesome to hear anyone else interested in this :) Or maybe this can help inspire hacking other control surfaces… :)


Edited by beublo, 28 November 2017 - 15:05.

  • bit guzzler likes this

#5 ffx

ffx

    Composes without Wires burns Directly from Brain to DVD that is already in Store Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 3521 posts
  • Gender:Not Telling

Posted 18 September 2018 - 14:24

beublo, do you know if it also is possible to trasmit the display text contents to the device? Did you contact the Behringer support?


Test system: macOS 10.13.4, HFS+. Firewire Audio, i7 4770, 8GB Ram, GTX1050 2GB, 48kHz
GUI Automation RecorderNative DSP Context MenuTuned ShortcutsUnified Value Shift And Transpose | Jump To From Send Modified (Docs) | Quick Template | Nisanmol's Groove Tool FixedThemes


#6 muckleby

muckleby

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 159 posts

Posted 18 September 2018 - 17:28

will be keeping a eye out for this tool, sounds like i might be wanting an x touch when you release it ;)



#7 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1854 posts
  • Gender:Not Telling

Posted 19 September 2018 - 07:35

Yeah I just ordered an x-touch one. I've heard that some of the x-touch models don't have MIDI (only HUI/Mackie). Wouldn't that be a problem?

 

Anyway, I'm working on my own implementation as well :)



#8 ffx

ffx

    Composes without Wires burns Directly from Brain to DVD that is already in Store Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 3521 posts
  • Gender:Not Telling

Posted 19 September 2018 - 09:00

So any idea how to program the display text? Couldn't find any hint so far.


Test system: macOS 10.13.4, HFS+. Firewire Audio, i7 4770, 8GB Ram, GTX1050 2GB, 48kHz
GUI Automation RecorderNative DSP Context MenuTuned ShortcutsUnified Value Shift And Transpose | Jump To From Send Modified (Docs) | Quick Template | Nisanmol's Groove Tool FixedThemes


#9 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1854 posts
  • Gender:Not Telling

Posted 19 September 2018 - 09:08

So any idea how to program the display text? Couldn't find any hint so far.

 
For the x-touch one? It's not thoroughly explained in the quickstart manual, but what's there should be sufficient to figure everything out?
 
The LCD Display and LED segment display can be aff  ected by 
sending SysEx messages as follows:
•
• 
LCD display:
- SysEx (hex) F0 00 20 32 dd 4C 00 cc c1 .. c14 F7
- dd: device id (X-Touch: 0x40)
- cc: bits 0-2:  backlight color (black, red, green, yellow, blue, 
magenta, cyan, white) 
- cc: bit 4: invert upper half of LCD
- cc: bit 5: invert lower half of LCD
- c1..c14: ascii characters (1..7: upper half, 8..14: lower half )
•
• 
Segment Display:
- SysEx (hex) F0 00 20 32 dd 37 s1 .. s12 d1 d2 F7
- s1..s12: segment data (bit 0: segment a, .. bit 6: segment g)
- d1: dots for displays 1..7 (bit 0: display 1, .. bit 6: display 7)
- d2: dots for displays 8..12 (bit 0: display 8, .. bit 4: display 12)


#10 ffx

ffx

    Composes without Wires burns Directly from Brain to DVD that is already in Store Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 3521 posts
  • Gender:Not Telling

Posted 19 September 2018 - 09:49

Where did you get that from?


Test system: macOS 10.13.4, HFS+. Firewire Audio, i7 4770, 8GB Ram, GTX1050 2GB, 48kHz
GUI Automation RecorderNative DSP Context MenuTuned ShortcutsUnified Value Shift And Transpose | Jump To From Send Modified (Docs) | Quick Template | Nisanmol's Groove Tool FixedThemes


#11 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1854 posts
  • Gender:Not Telling

Posted 19 September 2018 - 09:55

Where did you get that from?


X-touch one quickstart manual all languages, page 35. https://media.music-... ONE_QSG_WW.pdf

Edited by joule, 19 September 2018 - 09:56.

  • ffx likes this

#12 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1854 posts
  • Gender:Not Telling

Posted 20 September 2018 - 13:36

My X-touch one arrived. The first impression is very good, especially for its price.

 

PS.

I'm working on a 'universal midi controller' tool for it, dubbed "Simplex". Kind of like if x-rules and duplex had a baby. Basic concept: 1) Press "add event", 2) Press learn, 3) Move knob, 4) Filter for midi code is added, 5) Enter sandbox code for the event ... There will be one init function, and a sandbox environment for input and output section respectively. The init function can set up song notifiers needed, and helper functions like lcd output. And in the environment(s) you can store things like "scene = 2" (used for function buttons), for being able to check these values in the event codes.


  • gimmeapill and Veggies like this

#13 gimmeapill

gimmeapill

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 169 posts
  • Gender:Male

Posted 03 October 2018 - 14:20

PS.

I'm working on a 'universal midi controller' tool for it, dubbed "Simplex". Kind of like if x-rules and duplex had a baby. Basic concept: 1) Press "add event", 2) Press learn, 3) Move knob, 4) Filter for midi code is added, 5) Enter sandbox code for the event ... There will be one init function, and a sandbox environment for input and output section respectively. The init function can set up song notifiers needed, and helper functions like lcd output. And in the environment(s) you can store things like "scene = 2" (used for function buttons), for being able to check these values in the event codes.

 

Count me in. My attempts at Duplexing so far have been less than stellar.

After failing miserably at getting bi-directional communication with my akai midimix working the way i wanted, I ended up doing the whole thing in puredata: https://github.com/G..._button_control

That works but is a bit clunky, so anything in between would be welcome.