SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

WaoN - a wave-to-notes transcriber 0.2


Copyright (C) 1998-2006 Kengo Ichiki <kichiki@users.sourceforge.net>

All Rights Reserved

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


WaoN

                       is a Wave-to-Notes transcriber
                        (last updated on 1/10/1999)

News| WaoN?| Features| Platform| Formats| Screenshot| Tips| Download|

                     BUGS| TODO| Links| History|| gWaoN
     _________________________________________________________________

What's new?

  • Jan 10, 1999 : start gWaoN page.

What is WaoN?

WaoN is a Wave-to-Notes transcriber, that is, the inverse of ' timidity' (and its descendants timidity++, and timidity with Gtk+). ("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 that I start writing WaoN by myself. WaoN is released under the GNU General Public License.

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 generic, but developed on FreeBSD.

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.1a Copyright (C) 1998 Kengo ICHIKI

Usage: ./waon [option ...]
-h --help print this help.
-v --version print version info.
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) 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 = G8)
  -b --bottom   bottom note [midi #] (DEFAULT 28 = E2)
        Here middle C (261 Hz) = C3 = 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)
READING WAV OPTIONS
  -n            sampling number from WAV in 1 step (DEFAULT 2048)
  -s --shift    shift number from WAV in 1 step
                (DEFAULT same in the value in -n option)

FFT OPTIONS
-w --window 0 no window (DEFAULT)

                1 parzen window
                2 welch window
                3 hanning window
                4 hamming window
                5 blackman window
                6 steeper 30-dB/octave rolloff window

analyse

$ ./waon -i duet-suite.wav -n 1024 -p piano1.wav -r 1 WaoN : Reading Wave file: Microsoft PCM format,

        1 channel, 11025 samp/sec, 11025 byte/sec, 1 block align,
        8 bits/samp, 9922500 data bytes.
WaoN : Reading Wave file: Microsoft PCM format,
        1 channel, 44100 samp/sec, 88200 byte/sec, 2 block align,
        16 bits/samp, 106848 data bytes.

WaoN : end of file.
WaoN : difference of pitch = -0.077538 ( + 0.000000 ) WaoN : # of notes = 26617

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 -

Download

source

WaoN version 0.1 (source waon-0.1.tar.gz) is now available.

library

You need FFTW library to compile WaoN. (Of course, you could use your favorite FFT routine easily by modifying WaoN's source a little bit.)

BUGS

  1. ...

TODO

  1. stereo
  2. improve algorithms
  3. give some examples and instructions here
  4. make GUI for WaoN in order to adjust parameters (with Gtk+)

Links

Referenced softwares and documents

  • SoX: Sound eXchange

    + original site + ver.12.15

  • standard MIDI Files 0.06
  • FFTW - C library for FFT used in WaoN.
  • Gtk+: the GIMP toolkit ; but gWaoN is not yet functional.

Similar projects

  • Timidity - a MIDI to WAVE converter and player

    + original site (up to 0.2i) + timidity with Gtk+ (0.2j or later). + timidity++

  • " A Parallel Conversion of WAV files to MID files" by John Markus and William Lee Sims (containing a source code Wav2Mid.c).
  • Inst2Midi, which converts a monophonic audio source into MIDI Data. (on SGI)
  • sharewares on Windows... Song Raita, Saihu no Tatsujin.

Other useful sites

  • Some Interesting Sound & MIDI Software For Linux (mirror1, mirror2) : an extensive list of softwares on unix (especially Linux) platform.
  • The Standards Page : containing documents on various formats (like standard MIDI format).
  • Wotsit's Format : yet another site on various formats (like MIDI, WAV, etc).

History

  • Jan 10, 1999 : start gWaoN page.
  • Jan 6, 1999 : add BUGS section, update TODO list.
  • Dec 29, 1998 : first release of "WaoN" version 0.1. See download section.
  • Dec 13, 1998 :

    + catch up with the state before the accident at last; equal to that on Dec 5, 1996. + change the name of this project and development is concentrated on non GUI version.

  • Nov 26, 1998 :

    + signed up geocities to have web page for this project. + delete programs by accident ;-<

  • Oct 1998 : start writing Gtk+ programs of GUI for 'wav2mid'. ...
  • Dec 5, 1996 : freeze developing the first generation.
  • Dec 3, 1996 : start original program named 'wav2mid'.

News| WaoN?| Features| Platform| Formats| Screenshot| Tips| Download|

BUGS| TODO| Links| History|| gWaoN

[INLINE]

e-mail: ichiki@geocities.com

         Copyright (c) 1998,1999 Kengo ICHIKI. All rights reserved.
     _________________________________________________________________


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.