~ubuntu-branches/ubuntu/utopic/ardour3/utopic

« back to all changes in this revision

Viewing changes to libs/surfaces/frontier/tests/README

  • Committer: Package Import Robot
  • Author(s): Felipe Sateler
  • Date: 2013-09-21 19:05:02 UTC
  • Revision ID: package-import@ubuntu.com-20130921190502-8gsftrku6jnzhd7v
Tags: upstream-3.4~dfsg
ImportĀ upstreamĀ versionĀ 3.4~dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
tranzport 0.1 <tranzport.sf.net>
 
2
oct 18, 2005
 
3
arthur@artcmusic.com
 
4
---
 
5
 
 
6
The Frontier Design Tranzport(tm) (www.frontierdesign.com) is a simple
 
7
wireless USB device. It is not a MIDI device. The document on their web
 
8
site "Tranzport(tm) Native Mode Interface Description" describes the
 
9
Tranzport(tm) as if it were a MIDI device, but this is implemented by their
 
10
Windows and Macintosh software drivers.
 
11
 
 
12
This code will allow you to use your Tranzport(tm) at a lower level of
 
13
abstraction. This code relies on libusb, which can be obtained from
 
14
libusb.sourceforge.net.
 
15
 
 
16
To compile the program, type "make". You should end up with a executable
 
17
called "tranzport". You'll probably have to run this program as root.
 
18
 
 
19
Using the program is straightforward. It will simply tell you which
 
20
buttons are being pressed and what not. If you press one of the buttons
 
21
with a light, the light will turn on. If you hold shift and press one of
 
22
the buttons with a light, the light will turn off. If you take out the
 
23
batteries to the device (or go out of range), it will tell you that the
 
24
device is offline. When you replace the batteries (or come back in
 
25
range), it should tell you it is back online.
 
26
 
 
27
Once you understand how everything works, you should be able to
 
28
incorporate it into your own setup however you wish.
 
29
 
 
30
This code was developed on a Linux machine, but (theoretically) it
 
31
should work on any system that is supported by libusb, since that is how
 
32
it communicates with the device.
 
33
 
 
34
Here are a few more details about the device:
 
35
 
 
36
There are two endpoints for communication with the device. All data
 
37
reads and writes are done in 8-byte segments.
 
38
 
 
39
One endpoint is for interrupt reads. This is used to read button data 
 
40
from the device. It also supplies status information for when the device 
 
41
goes out of range and comes back in range, loses power and regains 
 
42
power, etc. The format of the data is:
 
43
 
 
44
    00 ss bb bb bb bb dd 00  (hexadecimal)
 
45
 
 
46
where:
 
47
 
 
48
    ss - status code, 01=online ff=offline
 
49
    bb - button bits
 
50
    dd - data wheel, 01-3f=forward 41-7f=backward
 
51
 
 
52
Please refer to the source code for a list of the button bits.
 
53
 
 
54
The other endpoint is for interrupt writes. This is used to toggle the
 
55
lights on the device, and to write data to the LCD.
 
56
 
 
57
There are 7 lights on the device. To turn a light on, send the following 
 
58
sequence of bytes:
 
59
 
 
60
    00 00 nn 01 00 00 00 00  (hexadecimal)
 
61
 
 
62
where nn is the light number.
 
63
 
 
64
To turn a light off:
 
65
 
 
66
    00 00 nn 00 00 00 00 00  (hexadecimal)
 
67
 
 
68
Here is the list of lights:
 
69
 
 
70
    00  Record
 
71
    01  Track Rec
 
72
    02  Track Mute
 
73
    03  Track Solo
 
74
    04  Any Solo
 
75
    05  Loop
 
76
    06  Punch
 
77
 
 
78
The size of the LCD is 20x2, and it is split into 10 cells, each cell
 
79
being 4 characters wide. The cells progress across, then down. To write
 
80
to the LCD, send the following sequence of bytes:
 
81
 
 
82
    00 01 cc aa aa aa aa 00  (hexadecimal)
 
83
 
 
84
where:
 
85
 
 
86
    cc - cell number
 
87
    aa - ASCII code
 
88
 
 
89
Here is a list of the cells to clarify:
 
90
 
 
91
    00  row 0, column 0-3
 
92
    01  row 0, column 4-7
 
93
    02  row 0, column 8-11
 
94
    03  row 0, column 12-15
 
95
    04  row 0, column 16-19
 
96
    05  row 1, column 0-3
 
97
    06  row 1, column 4-7
 
98
    07  row 1, column 8-11
 
99
    08  row 1, column 12-15
 
100
    09  row 1, column 16-19
 
101
 
 
102
You should refer to the "Tranzport(tm) Native Mode Interface
 
103
Description" document for a listing of the ASCII codes the LCD uses.
 
104