资源说明:Make music with a macbook trackpad
Trackpad synth
==============
Program to generate SKINI or MIDI data from a macbook trackpad.
Binary Installation (use this if you're not sure)
-------------------------------------------------
Download the disk image for snow leopard (10.6):
https://github.com/downloads/jeffkaufman/trackpad_synth/multitouch_midi_v1.dmg
Open it, drag to applications. Double click on it to run.
You need something to turn my program's midi signals into sound.
SimpleSynth is good:
http://notahat.com/simplesynth
Download, install, run. Once it's running, select "touchpad" under
"MIDI Source" and you should hear this play!
Source Installation
-------------------
Choose either MIDI, SKINI, or Octaveless output. MIDI lets you choose from more and
better voices, SKINI lets you write new voices with the stanford toolkit, Octaveless
doesn't have octaves.
MIDI
----
See the note on SimpleSynth above.
SKINI
-----
Get a SKINI reader. I've been using the Standford Synthesis Toolkit.
You can download it from:
http://ccrma.stanford.edu/software/stk/release/stk-4.4.2.tar.gz
Unzip it, run "./configure" and "make" in the stk directory.
Check that it's working:
cat stk-4.4.2/projects/demo/scores/test.ski | stk-4.4.2/projects/demo/demo Clarinet -or -ip
You should hear something.
Put the stk folder paralell to our test.m and Makefile.
Octaveless
----------
Get octaveless from:
https://github.com/jeffkaufman/octaveless
Build it (requires port audio) and check that it works as:
gcc -o octaveless octaveless.c -lportaudio -Wall
echo A | ./octaveless
You should hear something; kill it with Ctrl+C.
Copy the octaveless binary to this directory
cp /path/to/octaveless .
Once you have MIDI, SKINI, or Octaveless working, in this directory run one of:
# for midi
make
./trackcontroller [options]
# for skini
make runskini
# for octaveless
make runoctaveless
# for midi, simple
just double click on the trackcontrol command line program
Kill it with control C when you're done. It puts midi on channel 3,
so that's the one you'd twiddle settings for. Options are:
Usage: trackcontroller [options]
Options:
-k [KEY] Play in the given key. Allowable keys are
'A'-'G' followed by an optional '#' or 'b'.
Default is D.
-H Harmonic minor mode
-r Relative/natural minor mode
-x Mixolidian mode
-K A Klezmer mode (flat 2, sharp 6)
-5 Pentatonic scale
-C [nnn] Specify scale (ex: '024579B')
-S Send SKINI to stdout instead of MIDI from a
virtual source.
-V Use the far left of the controller as a
volume control.
-o [N] Divide the trackpad vertically into this many
octaves. Default is 5.
-s [N] Octave Shift: how far down to shift from the
top of our range. Default is 3.
-v Use velocity. When pressing keys, set midi
velocity to the finger width detected on the
trackpad.
-a Send aftertouch midi messages based on how fat
each finger is
-c [N] Send on channel N. Default is 3.
-p Send channel pressure messages based on how fat
all the fingers are on average,
-P Fake channel pressure using volume instead.
-h Print this usage.
(run "./trackcontroller -h" for the most up to date usage info)
Usage
-----
There are 5 rows (-o option) each of which has a major scale (change
'scale') of 7 notes. It's polyphonic, so move your fingers around.
If using midi output, it can do velocity, aftertouch, channel
pressure, and a kind of faking channel pressure by setting the volume,
all depending on how much of your finger is in contact with the pad
(and if your midi synthesizer supports it). These are off be default
and can be enabled with the -v, -a, -p, or -P options.
If you don't want a major scale, the -h, -r, -x, and -K options choose
other scales; see above. You can also specify arbitrary scales with
-C. The format is:
./trackcontroller -k C -C 0123456789AB
This would make a fully chromatic trackpad starting on C (with even
divisions). To leave notes out, don't include their numbers:
./trackcontroller -k C -C 024579B
This would include the notes of the major scale. You can make
sections wider by repeating them:
./trackcontroller -k C -C 0057
This would divide the pad with the left half sounding 'C' and the
right half divided into 'F' and 'G'.
Misc
----
Started with multitouch code from:
http://www.steike.com/code/multitouch/
For writing midi output I used the source of vmpk as a guide:
http://vmpk.sourceforge.net/
All code gpl
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。
English
