JustInTerface

—Accessing Hardware Controllers—


2006  Till Bovermann (IEM)

2007, 2008 Till Bovermann (Uni Bielefeld)



A meta interface to various hardware-controllers. 

Designed especially for the use in [JITLib], but also usable in other styles.


See 

[JInT_HIDlda]

[JInT_TriggerFinger]

[JInT_PocketControl]

[JInT_PocketFader]

[JInT_PocketDial]

for details on how to work with it.



/// semantic: continuous

/// semantic: controlability


SC3 provides several ways to connect existing h/w controllers. There are e.g.


OpenSoundControl

MIDI

HID-Controllers


These are protocols


More interesting

controllers inherent natural behavior and 

how they fit into the patch to be controlled.


Most haptic controllers are assembled with subcontrollers, which are again each controllable by one finger.



Description dimensionality # states semantics

A,B,D Button 1d 2 discrete, backsnapper

C Nav.Cross 1d 9 discrete, backsnapper

E Joystick 2d 256**2 contiuous, backsnapper



Just InTeraction provides functionality to access controllers (not only) in JITLib.


[JInTController] 

provides semantic access to different controller types.

Examples (currently implemented):

JInTC_onoff : JInTController

simple one-DOF controller with on/off


JInTC_Button : JInTC_onoff

Button (on/off) with snap back ("Taster")

JInTC_linear : JInTController

simple one-DOF contiuous controller (abstract)

JInTC_linearSnapper : JInTController

simple one-DOF contiuous controller, snapping back into default position

JInTC_Fader : JInTC_linear

simple one-DOF Fader

JInTC_Knob : JInTC_linear

simple knob to turn

JInTC_composite : JInTController

A composite of several controllers. Should not be used (abstract class)

JInTC_ThumbStick : JInTC_composite

small two DOF analog joystick with an additional knob-functionality by pressing it. 

Normally actuated by thumb.


We may get information on a specific controller:


E.g:


a = JInTC_ThumbStick.new

a.numDOF; // number of dimensions

a.description; // a textual description

a.semantics; // keywords on semantics


a.specs.do{|a| a.asCompileString.postln};

// spec of each dimension



[JInT]

is a container filled with JInTControllers.

Examples (currently implemented):

[JInT_HIDlda]

implements JustInTerface for a Logitech Dual Action device.

[JInT_TriggerFinger]

implements JustInTerface for an M-Audio Trigger Finger.

[JInT_PocketControl]

implements JustInTerface for a Doepfer PocketControl.


[JInT_PocketFader]

implements JustInTerface for a Doepfer PocketFader.


[JInT_PocketDial]

implements JustInTerface for a Doepfer PocketDial.