Benutzer-Werkzeuge

Webseiten-Werkzeuge


friedhof:otus

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
project:otus [2011-05-17 21:48] ::ffff:93.231.143.25project:otus [2013-05-29 10:07] – [Linux] 91.203.212.124
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.
Zeile 10: Zeile 12:
  
 ==== Windows ==== ==== Windows ====
-[[http://follvalsch.de/dump/EKS/EKS_DriverPack_WIN_16.12.2010.exe|Drivers]] +  * [[http://follvalsch.de/dump/EKS/EKS_DriverPack_WIN_16.12.2010.exe|Drivers]] 
-[[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]]
  
 ==== 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]] 
-[[http://follvalsch.de/dump/EKS/EKS_DriverPack_OSX_16.12.2010.dmg|Firmware 1.5]]+  [[http://follvalsch.de/dump/EKS/EKS_DriverPack_OSX_16.12.2010.dmg|Firmware 1.5]]
  
 ==== Linux ==== ==== Linux ====
 +EKS claimed support for Linux, that's why hadez bought the damn thing.
 +<del>Turns out there's no Linux driver</del>, so he reverse engineered the protocol.
 +
 +  * [[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