Menu

Tree [978f4d] master /
 History

HTTPS access


File Date Author Commit
 debian 2011-12-09 Lauri Kaila Lauri Kaila [98dbc6] Version 04
 www 2013-05-03 Lauri Kaila Lauri Kaila [978f4d] www: update git url
 .gitignore 2010-11-24 Lauri Kaila Lauri Kaila [d076b5] ssyntha: like ssynth, but for ALSA PCM output
 Makefile 2010-11-24 Lauri Kaila Lauri Kaila [d076b5] ssyntha: like ssynth, but for ALSA PCM output
 README.txt 2011-12-09 Lauri Kaila Lauri Kaila [98dbc6] Version 04
 bach-invention-13.mid 2010-09-04 Lauri Kaila Lauri Kaila [a0c3d6] Add test song: bach-invention-13.mid
 gpl.txt 2009-11-14 late late [0db4fd] Transferred files from SVN to Git
 make_spiano_dist 2011-12-09 Lauri Kaila Lauri Kaila [98dbc6] Version 04
 spiano.c 2012-04-30 Lauri Kaila Lauri Kaila [8f64fa] spiano: make variable black static
 spianocheck.c 2011-05-21 Lauri Kaila Lauri Kaila [7d6ae7] WIP:?
 splaymid.c 2012-04-30 Lauri Kaila Lauri Kaila [043a61] splaymid: Fix printf format for size_t
 ssynth-benchmark.c 2010-06-12 Lauri Kaila Lauri Kaila [3a30fa] benchmark: put benchmark to separate binary
 ssynth.c 2010-11-07 Lauri Kaila Lauri Kaila [a7e99e] ssynth: refactor render_sound little faster
 ssyntha.c 2011-12-06 Lauri Kaila Lauri Kaila [a19d7f] ssyntha: add -D <pcm device> option

Read Me

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
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.