Benutzer-Werkzeuge

Webseiten-Werkzeuge


friedhof:otus

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte Überarbeitung Beide Seiten der Revision
friedhof:otus [2011-05-17 22:04]
::ffff:93.231.143.25
friedhof:otus [2013-05-29 10:09]
91.203.212.124 [Drivers]
Zeile 1: Zeile 1:
 ====== OTUS ====== ====== OTUS ======
 +{{tag>​project audio music hadez}}
 +
 [[leute:​hadez]] bought an OTUS and doesn'​t get around using it. [[leute:​hadez]] bought an OTUS and doesn'​t get around using it.
 Be nice, don't scratch it, don't drown it in club-mate. Be nice, don't scratch it, don't drown it in club-mate.
  
 ===== Drivers ===== ===== Drivers =====
-User: ywrlroxuriw\\ 
-Pass: ywrlroxuriwywrlroxuriw 
- 
 [[http://​eks.fi/​index2.php?​p=support&​o=Otus%20Series|OTUS Product Support Website]] [[http://​eks.fi/​index2.php?​p=support&​o=Otus%20Series|OTUS Product Support Website]]
 +(Login: ywrlroxuriw:​ywrlroxuriwywrlroxuriw)
 +
  
 ==== Windows ==== ==== Windows ====
Zeile 13: Zeile 14:
   * [[http://​follvalsch.de/​dump/​EKS/​EKS_OTUSFW_WIN_11.2.2009.zip|Firmware 1.5]]   * [[http://​follvalsch.de/​dump/​EKS/​EKS_OTUSFW_WIN_11.2.2009.zip|Firmware 1.5]]
  
 +The OTUS came bundled with NI Traktor LE, however in more recent versions of Traktor LE, OTUS support was removed. NI support wants to push you to invest into Traktor Pro. Lesson learned: don't ever update Traktor.
 ==== OSX ==== ==== OSX ====
   * [[http://​follvalsch.de/​dump/​EKS/​EKS_OTUSFW_OSX_23.2.2009.dmg|Drivers]]   * [[http://​follvalsch.de/​dump/​EKS/​EKS_OTUSFW_OSX_23.2.2009.dmg|Drivers]]
Zeile 19: Zeile 21:
 ==== Linux ==== ==== Linux ====
 EKS claimed support for Linux, that's why hadez bought the damn thing. EKS claimed support for Linux, that's why hadez bought the damn thing.
-Turns out there'​s no Linux driver, so he reverse engineered the protocol.+<del>Turns out there'​s no Linux driver</​del>​, so he reverse engineered the protocol.
  
   * [[https://​github.com/​shackspace/​LOTUS|Repo at GitHub]]   * [[https://​github.com/​shackspace/​LOTUS|Repo at GitHub]]
 +
 +There is [[http://​mixxx.org/​wiki/​doku.php/​eks_otus|OTUS HID support in mixxx 1.11.0]]!
 +===== Protocol =====
 +  typedef struct OTUSMsg_ {
 +    unsigned short magic; ​          // 0x0035
 +  ​
 +    unsigned short jog0Rot; ​        // 0x0000..0xffff,​ rollover
 +      signed short jog0Speed; ​      // <0: CCW rotation, >0: CW rotation
 +  ​
 +    unsigned int timestamp; ​        // looks like unixtime, have to check details
 +  ​
 +    unsigned int _0a_0d_reserved;​
 +  ​
 +    unsigned char jog2Rot; ​         // 0x0000..0x00ff,​ rollover
 +    unsigned char jog4Rot; ​         // 0x0000..0x00ff,​ rollover
 +    unsigned char jog3Rot; ​         // 0x0000..0x00ff,​ rollover
 +    unsigned char jog1Rot; ​         // 0x0000..0x00ff,​ rollover
 +  ​
 +    unsigned short rotAGain; ​       // 0x0000..0x7dc0,​ mask: 0xfff0
 +    unsigned short rotBGain; ​       // 0x0000..0x7dc0,​ mask: 0xfff0
 +    unsigned short rotAHigh; ​       // 0x0000..0x7dc0,​ mask: 0xfff0
 +    unsigned short rotBHigh; ​       // 0x0000..0x7dc0,​ mask: 0xfff0
 +    unsigned short rotAMid; ​        // 0x0000..0x7dc0,​ mask: 0xfff0
 +    unsigned short rotBMid; ​        // 0x0000..0x7dc0,​ mask: 0xfff0
 +    unsigned short rotALow; ​        // 0x0000..0x7dc0,​ mask: 0xfff0
 +    unsigned short rotBLow; ​        // 0x0000..0x7dc0,​ mask: 0xfff0
 +  ​
 +    unsigned short rotXFader; ​      // 0x0000..0x7dc0,​ mask: 0xfff0
 +    unsigned short rotMaster; ​      // 0x0000..0x7dc0,​ mask: 0xfff0
 +  ​
 +    unsigned short padY;            // 0x0000..0xffff,​ 0x0000:​bottom ​
 +    unsigned short padX;            // 0x0000..0xffff,​ 0x0000:left
 +    unsigned short pitchA; ​         // 0x0000..0xffff
 +    unsigned short pitchB; ​         // 0x0000..0xffff
 +  ​
 +    unsigned int buttons; ​          // one-hot bitmask for 32 button actions
 +  ​
 +    unsigned char filler;
 +    unsigned char msgCounter; ​     // 0x0000..0xff00,​ mask:​0xff00,​ rollover
 +    unsigned short status; ​         // 0x0000: Deck A, 0x0001: Deck B
 +  ​
 +    unsigned char _36_reserved;​
 +    unsigned char _37_reserved;​
 +    unsigned int _38_3b_reserved;​
 +    unsigned int _3c_3f_reserved;​
 +  } __attribute__((__packed__)) OTUSMsg;
 +
 +
 +  // button mapping for the OTUSMsg.buttons field
 +  #define OTUS_BUTTON_PLAYPAUSE ​       0x00008000
 +  #define OTUS_BUTTON_UNKNOWN3 ​        ​0x00004000
 +  #define OTUS_BUTTON_JOG3 ​            ​0x00002000
 +  #define OTUS_BUTTON_RETURNLEFT ​      ​0x00001000
 +  #define OTUS_BUTTON_SHIFT ​           0x00000800
 +  #define OTUS_BUTTON_RETURNRIGHT ​     0x00000400
 +  #define OTUS_BUTTON_JOG4 ​            ​0x00000200
 +  #define OTUS_BUTTON_PITCH_SCALE ​     0x00000100
 +  #define OTUS_BUTTON_LOOP ​            ​0x00000080
 +  #define OTUS_BUTTON_LOOPOUT ​         0x00000040
 +  #define OTUS_BUTTON_LOOPIN ​          ​0x00000020
 +  #define OTUS_BUTTON_LOOPFULL ​        ​0x00000010
 +  #define OTUS_BUTTON_LOOPHALF ​        ​0x00000008
 +  #define OTUS_BUTTON_LOOPQUARTER ​     0x00000004
 +  #define OTUS_BUTTON_LOOPEIGTH ​       0x00000002
 +  #define OTUS_BUTTON_JOG2 ​            ​0x00000001
 +  #define OTUS_BUTTON_XYPAD ​           0x80000000
 +  #define OTUS_BUTTON_PITCH ​           0x40000000
 +  #define OTUS_BUTTON_USER5 ​           0x20000000
 +  #define OTUS_BUTTON_USER4 ​           0x10000000
 +  #define OTUS_BUTTON_USER3 ​           0x08000000
 +  #define OTUS_BUTTON_USER2 ​           0x04000000
 +  #define OTUS_BUTTON_USER1 ​           0x02000000
 +  #define OTUS_BUTTON_USER0 ​           0x01000000
 +  #define OTUS_BUTTON_MOUSERIGHT ​      ​0x00800000
 +  #define OTUS_BUTTON_MOUSELEFT ​       0x00400000
 +  #define OTUS_BUTTON_MOUSELEFT ​       0x00400000
 +  #define OTUS_BUTTON_JOG0 ​            ​0x00200000
 +  #define OTUS_BUTTON_JOG1 ​            ​0x00100000
 +  #define OTUS_BUTTON_FASTFORWARD ​     0x00080000
 +  #define OTUS_BUTTON_UNKNOWN1 ​        ​0x00040000
 +  #define OTUS_BUTTON_UNKNOWN2 ​        ​0x00020000
 +  #define OTUS_BUTTON_CUE ​             0x00010000
 +
 +  // IDs for value knobs
 +  #define OTUS_VALUE_JOG0ROT ​         0   
 +  #define OTUS_VALUE_JOG0SPEED ​       1   
 +  #define OTUS_VALUE_JOG1ROT ​         2   
 +  #define OTUS_VALUE_JOG2ROT ​         3   
 +  #define OTUS_VALUE_JOG3ROT ​         4   
 +  #define OTUS_VALUE_JOG4ROT ​         5   
 +  #define OTUS_VALUE_GAINA ​           6   
 +  #define OTUS_VALUE_GAINB ​           7   
 +  #define OTUS_VALUE_GAINM ​           8   
 +  #define OTUS_VALUE_HIGHA ​           9   
 +  #define OTUS_VALUE_HIGHB ​           10  ​
 +  #define OTUS_VALUE_MIDA ​            ​11  ​
 +  #define OTUS_VALUE_MIDB ​            ​12  ​
 +  #define OTUS_VALUE_LOWA ​            ​13  ​
 +  #define OTUS_VALUE_LOWB ​            ​14  ​
 +  #define OTUS_VALUE_XFADER ​          ​15  ​
 +  #define OTUS_VALUE_PITCHA ​          ​16  ​
 +  #define OTUS_VALUE_PITCHB ​          ​17  ​
 +  #define OTUS_VALUE_PADX ​            ​18  ​
 +  #define OTUS_VALUE_PADY ​            ​19  ​
 +
friedhof/otus.txt · Zuletzt geändert: 2020-07-20 11:43 von neos