Spiano Readme
Revision: 04
WWW: http://spiano.sourceforge.net/
git: git://spiano.git.sourceforge.net/gitroot/spiano/spiano (read-only)
gitweb: http://spiano.git.sourceforge.net/git/gitweb-index.cgi
Spiano project currently consists of 3 applications:
spianoi, ssynth and splaymid. They are designed to be used both
together or separately with other MIDI sw/hw.
Spiano is visual piano keyboard for X Windows, which
outputs raw MIDI to standard output.
Splaymid reads MIDI files and sends raw MIDI events to
standard output.
Ssynth is a simple software "piano" synthetizator, which
reads raw MIDI events from standard input and outputs audio
to /dev/dsp. It has a special property of each 88 keys
being tunable individually using pitch bend events. It ignores
all channel and patch information and simply plays all
events with same sound.
Building
(libX11-devel is required)
Run "make".
Run "make check" if you wish to execute the unit tests.
Installation
Currently there is no automatic installation. Simply run
the spiano, ssynth or splaymid binary.
These applications don't use any configuration or data files.
Usage
(ssynth uses /dev/dsp, which requires module snd-pcm-oss be loaded)
spiano -h shows the list of supported options. Note that
spiano outputs raw MIDI data to STDOUT, which looks like
garbage if you don't redirect the data anywhere. For
example:
$ ./spiano > /dev/ttyS0
Where /dev/ttyS0 is a raw midi device.
To use ssynth with a MIDI keyboard connected to serial port:
$ ./ssynth < /dev/ttyS0
Or, use spiano and ssynth together:
$ ./spiano | ./ssynth
When the spiano is running, these keys have following
functions:
ESC, q: quit
plus: add a white key to the right
minus: remove a white key from the left
right: move visible keys left
left: move visible keys left
mouse left: pressing the key
mouse right: sustain pedal
Tuning
Spiano sends pitch bend events when the mouse is moving up/down
while the key is pressed down. Ssynth starts to tune lastly
pressed key from pitch bend events as long as the key is pressed.
The tuning is very fine: each step is a fraction of a cent.
Example: use spiano with fluidsynth through ALSA
1. modprobe snd-virmidi # as root
2. fluidsynth -a alsa soundfontfile.sf2
3. #see port numbers with aconnect -i and aconnect -o
4. aconnect 20 128
5. spiano >/dev/midi1
Bugs/defects/TODO
These are already planned to be done:
-some UI rendering flaws
-tuning GUI
-save/restore tuning
-improve ssynth sound
-velocity support
-and more (but without much planning)
Feedback is welcomed!
Lauri Kaila
laurikaila -at- users.sourceforge.net