Spiano project contains four applications: spiano, ssynth, ssyntha and splaymid.
Spiano is a simple MIDI keyboard for Linux and X Windows. The piano is played by clicking the mouse on the keys. It can be used as a replacement of a real MIDI keyboard, when it's enough to poke one key at a time. It can also visualize MIDI events from input.
Ssynth is a simple piano synthetizator using additive synthesis. It's not intented to be a realistic sounding or implement much MIDI features, but is has a special feature of each key being tunable with MIDI pitch bend events. You can practise tuning a piano with it, with spiano or a any MIDI keyboard with a pitch wheel.
Ssyntha is just like ssynth but for ALSA audio output (no alsa MIDI but RAW). Optionally pass ALSA PCM device with -D parameter.
Splaymid is a simple MIDI sequencer. It reads standard MIDI files and sends MIDI events to standard output.
Because these applications talk raw MIDI, they work together simply using pipes:
"$ spiano | ssyntha" or:
"$ splaymid song.mid | ssyntha"
All three can work together. Command
"splaymid song.mid |
spiano | ssyntha" does both visualization and playback.
Or, say, there is a MIDI keyboard connected to a device file /dev/midi1, then
start ssynth like this:
$ ssynth </dev/midi1. Or if your MIDI device has a serial port interface, you can do
$ splaymid song.mid >/dev/ttyS0.
The work is (slowly) in progress. There's a preview version available from sf.net download page. Only source code is available currently, but it'll compile with just "make" on a normal Linux workstation.
Development snapshot of the sources can be found from the git repository git://spiano.git.sourceforge.net/gitroot/spiano/spiano (read-only). The repository can also be browsed with spiano repository gitweb
The feature sets of the applications will be kept at minimum. But I'll make fixes and extend the application family with new members. Some ideas: tuning GUI (says how many beats you are hearing, which keys are how much out of tune and so on). I'm also planning a new data format for these applications (both file and streaming).
Lauri Kaila laurikaila at users.sourceforge.net