is a Wave-to-Notes transcriber
WaoN|
gWaoN|
pv
News|
WaoN?|
Demo|
Features|
Platform|
Formats|
Screenshot|
Tips|
Download|
Install|
BUGS|
TODO|
Links|
History
What's new?
- News @ SF
- Jan. 1, 2012:
add "Demo" section.
- Dec. 27, 2011:
waon-0.10 released. (Release Note)
- waon:
the quality of result is improved by cleaning up useless notes.
- gwaon:
horizontal keyboard is added on the spectrum pane.
- Nov. 4, 2007 :
waon-0.9 released. (Release Note)
- add manual pages (waon.1, pv.1, gwaon.1).
- clean the codes.
- pv:
- add the interactive curses mode with real-time time-strech
and pitch-shift.
- add no-fft scheme (just for fun).
- gwaon:
update about window and the GUI, adding buttons for each function.
- Oct 9, 2007 :
ports for FreeBSD is now available.
- Mar 10, 2007 :
waon-0.8 released. (Release Note)
- pv:
rate and pitch options can work together.
- gWaoN:
add pitch-shift scale.
- Mar 1, 2007 :
waon-0.7 released!
- WaoN:
- bug fixed for the procedure in phase-diff correction.
- add two functionalities, drum-removal (by options -psub-n, -psub-f) and octave removal (by option -oct).
- set hanning window as the default window.
- set phase-diff correction as the default,
and cut --phase option and add -nophase option, instead.
- pv:
set hanning window as the default window.
- old news
What is WaoN?
WaoN is a Wave-to-Notes transcriber,
that is,
the inverse of timidity by Tuukka Toivonen (and its descendants
timidity++).
("WaoN" also has a meaning of harmony of notes or chord
in Japanese!)
My original intention is to pick up voicing of harmony
from sound of my favorite pianists.
(I have no talent to do so, but computer will :-)
But there is no functional application of this kind
on Unix platform,
as far as I know.
So I began writing this WaoN by myself.
Currently, WaoN contains three programs:
- waon: transcriber (wav-to-mid converter)
- pv:
phase vocoder for time-streching and pitch-shifting
- gwaon: GUI for waon and pv
WaoN is released under the
GNU General Public License.
Here is the
Project Page @ SF.
Demo
Features
- read wav file and write standard MIDI file format 0.
- stdin/stdout can be used as input/output file.
- no explicit limits of number of notes at a time or along the time.
- patch file (wav) can be used.
- pitch shift.
Platform
I believe that WaoN is able to be built on any platforms, but
I develop it on FreeBSD.
Currently, (to my knowledge) there are some packages:
Formats
WaoN's native format as sound-input is WAV,
and that as note-output is standard MIDI format 0.
If you have SoX, you can use almost all sound format
as input.
In addition, if you have timidity or some midi player
which could read standard MIDI file from stdin, you can play resultant
midi file on time.
See also Tips.
Screenshot ("WaoN" is not a GUI application but ... :-)
help
$ ./waon --help
WaoN - a Wave-to-Notes transcriber, Version 0.9
Copyright (C) 1998-2007 Kengo Ichiki <kichiki@users.sourceforge.net>
Web: http://waon.sourceforge.net/
WaoN is a Wave-to-Notes transcriber,
that is, a converter from sound file to midi file.
Usage: ./waon [option ...]
Options:
-h --help print this help.
-v, --version print version information.
OPTIONS FOR FILES
-i --input input wav file (default: stdin)
-o --output output mid file (default: 'output.mid')
options -i and -o have argument '-' as stdin/stdout
-p --patch patch file (default: no patch)
FFT OPTIONS
-n sampling number from WAV in 1 step (default: 2048)
-w --window 0 no window
1 parzen window
2 welch window
3 hanning window (default)
4 hamming window
5 blackman window
6 steeper 30-dB/octave rolloff window
READING WAV OPTIONS
-s --shift shift number from WAV in 1 step
(default: 1/4 of the value in -n option)
PHASE-VOCODER OPTIONS
-nophase don't use phase diff to improve freq estimation.
(default: use the correction)
NOTE SELECTION OPTIONS
-c --cutoff log10 of cut-off ratio to scale velocity of note
(default: -5.0)
-r --relative log10 of cut-off ratio relative to the average.
(default: no relative cutoff
= absolute cutoff with the value in -c option)
-k --peak peak threshold for note-on, which ranges [0,127]
(default: 128 = no peak-search = search only first on-event)
-t --top top note [midi #] (default: 103 = G7)
-b --bottom bottom note [midi #] (default: 28 = E1)
Here middle C (261 Hz) = C4 = midi 60. Midi # ranges [0,127].
-a --adjust adjust-pitch param, which is suggested by WaoN after analysis.
unit is half-note, that is, +1 is half-note up,
and -0.5 is quater-note down. (default: 0)
DRUM-REMOVAL OPTIONS
-psub-n number of averaging bins in one side.
that is, for n, (i-n,...,i,...,i+n) are averaged
(default: 0)
-psub-f factor to the average, where the power is modified as
p[i] = (sqrt(p[i]) - f * sqrt(ave[i]))^2
(default: 0.0)
OCTAVE-REMOVER OPTIONS
-oct factor to the octave removal, where the power is modified as
p[i] = (sqrt(p[i]) - f * sqrt(oct[i]))^2
(default: 0.0)
Tips
I think that the default setting (2048 samples for FFT, no window, etc)
is enough to judge how "WaoN" works.
Here are some more tips.
- Ex.1) if you need more resolution in time,
use -s (--shift) option as follows.
-
$ ./waon -i waltz4DB.wav -o waltz4DB.mid -w 3 -n 4096 -s 2048
- Ex.2) you can use stdin and stdout, so that you can use timidity
to play resultant midi file on time.
-
$ cat dolphineD.wav | ./waon -i - -o - | timidity -id -
- Ex.3) if you want to analyse MP3,
-
$ mpg123 -m -s reflectD.mp3\
| sox -t raw -r 44100 -s -w - -t wav -\
| ./waon -i -
or
$ sox ~/MP3/Mulgrew.mp3 -t wav -\
| ./waon -i - -n 4096 -s 1024
Download
please visit File Releases @ SF.
Changes
- 0.10 (Release Note)
- waon:
the quality of result is improved by cleaning up useless notes.
- gwaon:
horizontal keyboard is added on the spectrum pane.
- 0.9 (Release Note)
- add mannual pages (waon.1, pv.1, gwaon.1).
- clean the codes.
- pv:
- add the interactive curses mode with real-time time-strech
and pitch-shift.
- add no-fft scheme (just for fun).
- gwaon:
update about window and the GUI, adding buttons for each function.
- 0.8 (Release Note)
- pv:
rate and pitch options can work together.
- WaoN:
add pitch-shift scale.
- 0.7 (Release Note)
- WaoN:
- bug fixed for the prodecure in phase-diff correction.
- add two functionalities, drum-removal (by options -psub-n, -psub-f) and octave removal (by option -oct).
- set hanning window as the default window.
- set phase-diff correction as the default,
and cut --phase option and add -nophase option, instead.
- pv:
set hanning window as the default window.
- 0.6 (Release Note)
- gWaoN:
use ao libary, loop-play, play-position indicator,
loose phase lock PV.
- pv:
bug fixed on loose phase lock, use ao libary, pitch-shifting.
- WaoN:
get rid of my old sox-derived code.
- 0.5 (Release Note)
- gWaoN now has the audio playback function
with the real-time tempo-change by phase vocoder.
- 0.4 (Release Notes)
- two additional programs,
pv and gWaoN,
are added.
- 0.3 (Release Notes)
- add "--phase" option to improve freq estimations
by phase-vocoder technique.
- use libsndfile
for input.
- 0.2 (Release Notes)
- stereo wav can be handled properly.
- work with either FFTW version 2 or 3.
(thanks Victor Liu)
- 0.1a (Release Notes)
- correct explanation of '-a' option.
- add document "INSTALL", revise documents.
- modefy '-k' option.
Installation
To install the program "waon",
- take a look at "Makefile" and edit it if necessary.
- invoke "make waon", for example.
- you'll see an excutable "waon". copy it wherever you want.
- install man page "waon.1".
note:
for DEC users, the following site would be useful;
The DECWindows Archive - Audio and Sound
by pmoreau@cena.dgac.fr
Library
For "waon",
you need FFTW library
and libsndfile.
BUGS
- -
TODO
- improve algorithms --
partly done by phase vocoder technique.
current focus is on time-domain.
- give some examples and instructions.
Links
Useful sites
Similar projects
History
- Feb 24, 2007 :
waon-0.6 released!
- gWaoN:
use ao libary, loop-play, play-position indicator,
loose phase lock PV.
- pv:
bug fixed on loose phase lock, use ao libary, pitch-shifting.
- WaoN:
get rid of my old sox-derived code.
- Feb 16, 2007 :
waon-0.5 released!
- this release is for gWaoN functionality enhancement.
- Feb 13, 2007 :
- Feb 10, 2007 :
gWaoN is in the CVS Repository.
- Feb 8, 2007 :
waon-0.3 is out!
- add "--phase" option to improve freq estimations
by phase-vocoder technique.
- use libsndfile
for input.
- Sep 22, 2006 :
waon-0.2 is out!
- stereo wav can be handled properly.
- work with either FFTW version 2 or 3.
- Sep 20, 2006 : move to
sourceforge.
- Feb 2, 2005 :
Victor Liu sent a patch for FFTW3. thanks!
- Jan 9, 2004 :
LOGO is made.
- Dec 21, 2003 :
update URLs of source and mirror site.
- Mar 15, 2002 :
- change URL.
- revise and add some links only
(again. no update on program, sorry.)
- Mar 4, 2000 :
- long time no update...
- revise and add some links only (no update on program, sorry.)
- Jan 10, 1999 :
- Jan 6, 1999 :
add BUGS section,
update TODO list.
- Dec 29, 1998 : first release of "WaoN"
version 0.1.
- Dec 13, 1998 :
- catch up with the state before the accident
around Dec 5, 1996, at last.
- change the name of this project to "WaoN"
and focusing on non-GUI version.
- Nov 26, 1998 :
- signed up geocities to have web page for this project.
but http://www.geocities.com/SiliconValley/Ridge/4180/ is removed
(I forgot the passward... Dec. 28, 2001)
- delete programs by accident ;-<
- Oct 1998 : start writing Gtk+ programs of GUI for 'wav2mid'.
- Dec 5, 1996 : finish developing the first generation.
- Dec 3, 1996 : start original program named 'wav2mid'.
News|
WaoN?|
Features|
Platform|
Formats|
Screenshot|
Tips|
Download|
Install|
BUGS|
TODO|
Links|
History
WaoN|
gWaoN|
pv