Skip to content

Commit 23c3739

Browse files
committed
added basic documentation
1 parent 7df4b01 commit 23c3739

File tree

6 files changed

+986
-0
lines changed

6 files changed

+986
-0
lines changed

doc/PythonMcu.pdf

163 KB
Binary file not shown.

doc/PythonMcu.tex

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
\input{include/settings.sty}
2+
\input{include/hyphenation.sty}
3+
4+
\title{Python MCU}
5+
\author{Martin Zuther}
6+
7+
\begin{document}
8+
9+
\title{Python MCU}
10+
11+
\subtitle{
12+
\normalsize{\textrm{\textmd{
13+
\vfill
14+
Mackie Host Controller written in Python
15+
\vfill
16+
\vspace{10em}
17+
\vfill
18+
}}}
19+
}
20+
21+
\author{\normalsize\copyright{} 2011
22+
\href{http://www.mzuther.de/}{Martin Zuther}}
23+
24+
\date{\normalsize \emph{Last edited on \today}}
25+
26+
\maketitle
27+
28+
\tableofcontents
29+
30+
\clearpage % layout
31+
32+
\chapter{Mackie Control}
33+
\label{chap:mackie_control}
34+
35+
\textbf{Mackie Control} (abbreviated to MCU), its predecessor
36+
\textbf{Logic Control} and their respective extension units
37+
(\textbf{XT}) are control surfaces that use a proprietary MIDI
38+
protocol to control digital audio workstations (DAWs), especially
39+
their mixing sections. However, these control surfaces have two
40+
drawbacks: they are definitely not cheap and require quite a bit of
41+
space. If these are no restrictions to you, by all means go and try
42+
them. But don't stop reading here, as this application might be
43+
useful for Mackie Control users as well.
44+
45+
If, on the other hand, you have a certain lack of money or available
46+
space (or you have a controller that is simply too good to be
47+
exchanged for an MCU), you might have found just the application you
48+
need. It might not support your MIDI hardware controller yet, but if
49+
you know a bit of \textbf{Python} (or a programmer) it's pretty easy
50+
to change that.
51+
52+
53+
\chapter{Installation}
54+
\label{chap:python_mcu}
55+
56+
Download and install the latest version of
57+
\href{http://www.python.org/}{Python 2.6} on your computer. As of
58+
August 2011, there is no installer of Python 2.6.7 for Microsoft
59+
Windows yet. Users of this operating system may download
60+
\href{http://www.python.org/download/releases/2.6.6/}{Python 2.6.6},
61+
instead.
62+
63+
Please also download and install these libraries:
64+
65+
\begin{compactitem}
66+
\item \href{http://www.pyside.org//}{PySide} (version 1.0.5 or above)
67+
\item \href{http://www.pygame.org/}{pygame} (version 1.9.1 or above;
68+
please note that pygame's MIDI implementation is still in its
69+
infancy and may occasionally crash \application{Python MCU})
70+
\end{compactitem}
71+
72+
You'll also need virtual MIDI ports or cables to connect
73+
\application{Python MCU} to your DAW and hardware controller. I have
74+
successfully used \application{MidiYoke NT} (Microsoft Windows) and
75+
\application{JACK} (GNU/Linux), but others may work just as well.
76+
77+
When you're done, simply run the file \path{PythonMcu.py} in the
78+
directory \path{src} by either double-clicking it or starting a
79+
console window, moving to the directory \path{src} and running
80+
\texttt{python PythonMcu.py}.
81+
82+
83+
\chapter{Tested configurations}
84+
\label{chap:tested_configurations}
85+
86+
\section{Hardware controllers}
87+
88+
\begin{compactitem}
89+
\item Novation ZeRO SL MkII
90+
\end{compactitem}
91+
92+
\section{Microsoft Windows XP}
93+
94+
\begin{compactitem}
95+
\item Ableton Live 8
96+
\item Cockos Reaper 4
97+
\item Emagic Logic 5
98+
\end{compactitem}
99+
100+
\section{Apple Mac}
101+
102+
I haven't got a Mac, but things should work just as well. Please
103+
report working configurations to me. Thanks!
104+
105+
\section{GNU/Linux}
106+
107+
\begin{compactitem}
108+
\item ardour 2 \emph{(skipped a lot of commands, though)}
109+
\end{compactitem}
110+
111+
\chapter{Extending Python MCU}
112+
\label{chap:extending_python_mcu}
113+
114+
\application{Python MCU} consists of three parts:
115+
116+
\begin{itemize}
117+
118+
\item the \textbf{MackieHostControl} class communicates with a
119+
connected sequencer using the Mackie Control protocol, translating
120+
the raw protocol to something much easier to read and use
121+
122+
\item the generalised \textbf{MidiControllerTemplate} class and its
123+
more specific relatives handle all the details of sending data to
124+
and receiving data from your hardware controller, again translating
125+
raw protocols to something easier to read and use
126+
127+
\item finally, the \textbf{McuInterconnector} class connects the
128+
\textbf{MackieHostControl} and \textbf{MidiControllerTemplate}
129+
classes (and thus your DAW and hardware controller) with each other
130+
131+
\end{itemize}
132+
133+
This modular design means that the application happily works away with
134+
the irrelevant implementation details being effectively hidden from
135+
you. As long as you adhere to the internal protocol, you may easily
136+
extend \application{Python MCU} by deriving a class from
137+
\textbf{MidiControllerTemplate} to include your own controller.
138+
139+
If all this means nothing to you, go find yourself a Python programmer
140+
(or learn Python yourself, it's rather easy and a lot of fun!). As
141+
long as you know the relevant MIDI implementation of your hardware
142+
controller and worked out a suitable layout of its buttons and
143+
controllers, hooking into \application{Python MCU} is pretty simple.
144+
If you don't believe me, just have a look into the \path{src/Hardware}
145+
directory.
146+
147+
\input{include/gpl_v3.tex}
148+
149+
\end{document}
150+
151+
152+
%%% Local Variables:
153+
%%% mode: latex
154+
%%% mode: outline-minor
155+
%%% TeX-command-default: "Rubber"
156+
%%% TeX-PDF-mode: t
157+
%%% ispell-local-dictionary: "british"
158+
%%% End:

0 commit comments

Comments
 (0)