

Ask HN: Guitar tabs online - k0ban

We do want to change the way people get guitar tabs (chords). You submit mp3 and get guitar tabs back for it. Tabs will be synchronized to your song and could be inserted to any page as flash object.<p>You can get one file for free in 24 hours. Processing is FIFO based, so expect your chords to be ready in couple of hours, depending on the load, unless you will pay for speedup processing :)<p>Small history. We had introduced Chords! Winamp quite a while ago, and general comment was additional players/OS, so we decided to go purely web, without any software installation.<p>Try it http://chords.fm/online/web<p>Any comments are be welcome.
======
noname123
I know you guys probably won't reveal any proprietary information - but I'm so
damn curious how this works. So I'm going to go out on a limb and try to guess
how this works, and maybe extract some more specific information.

1) Recognizing the musical notes. From here
([http://www.owlnet.rice.edu/~elec301/Projects02/realTime/301P...](http://www.owlnet.rice.edu/~elec301/Projects02/realTime/301Project.html)):
"Fourier analysis allows us to decompose any such pressure function into a sum
of sinusoids. Therefore, any sound can be represented as a sum of sinusoids.
If the sound has a pressure function that is aperiodic with respect to time,
decomposition into sinusoids is quite complicated. However, if the sound is
periodic with respect to time, it can be easily decomposed and transferred to
the frequency domain using a computer and the Fast Fourier Transform." And
since each note has a unique frequency/octave associated with it, it could be
easily identified via a frequency to note database.

2) Recognizing the time-measure of the song (i.e., whether the song is 4/4 or
3/5), since this is required to do straight-forward Fourier transform and also
perhaps to mark chord changes. I'm guessing this is either done by simple
analysis of any periodic and consistent rises in the sound frequency of the
song. Or perhaps, this is done via the same Fourier transform analysis of the
sound waves and mapping out where the peaks fall.

3) Recognizing the chords; once you have figured out the notes and beat
measure. The rest follows pretty easily, you have a chord database of all of
the note-triads to chords and map out the chords accordingly. But the
challenge there is, what if you have a rhythm guitar going at the same time
while there's a solo? How do you map which notes to which guitar. Perhaps, the
instruments are recorded onto different channels and you group on notes
according on the degree to which they pan to the left, to the right, etc.

4) Separating out the instruments from one another; Maybe grouping notes via
panning is not enough. Perhaps, you need to do some timbre analysis to group
the notes that sound like a guitar vs. notes that sound like a bass guitar.
Since each instrument has a distinct harmonics and overtone. You guys have
some type of classification algorithm that classifies what portion of the
sound belongs to what timbre of the instrument.

Any comments/response is appreciated.

~~~
k0ban
Your guesses are very accurate. We also use the knowledge of music theory,
(mostly) western musical patterns and traditions, and employ supervised and
unsupervised machine learning.

------
transmit101
Here's an older HN link covering the same product:
<http://news.ycombinator.com/item?id=638053>

There's some further information as to how it's achieved in the comments, as
well as link to the academic paper the product is based on.

------
jacquesm
Wow, that's some impressive signal processing you've got going there.

How accurate is it ?

Possible other output channel (if you got this far) would be automated mp3 to
midi transcription.

~~~
k0ban
We are quite good. Try it :)

~~~
jacquesm
I would if I could play the guitar!

You must have had some spectacular headaches to deal with, especially with
multiple instruments playing through one-another.

~~~
k0ban
This is correct. there is quite complicated math behind that.

~~~
wallflower
Sending this to my guitar-playing friends!

Tangent: Given your expertise, do you think it would be theoretically possible
to write a program that attempts to detects the '1' beat in Latin/Afro-Cuban
music, using your techniques, live, in real-time? Maybe using clave detection.
Thanks in advance.

~~~
k0ban
Not at this time. We rely on the whole song analisys for much of precision
improvements.

There is some literature out there on real-time beat following but the
precision is poor so far

------
monk_the_dog
Hmmm, it's taking longer than I'd like to get a confirmation email, so I'll
have to try later.

I'd _love_ it if you added bass tabs. I don't expect the market is large
enough to justify it, but I thought I'd ask.

~~~
monk_the_dog
I just tried to upload a song. It got to the end of the progress bar and then
put up the message "HTTP Error". Is it really that hard to find mp3s online
that you built a scam website to collect them :-) I'm sure it's cool. I'll try
again tomorrow.

~~~
k0ban
We will look to that case. Meanwhile if you don't mind try again later.

You could e-mail me at kos@cbmsnetworks.com if HTTP problem will persist.

------
CWuestefeld
The link on the referenced page (<http://chords.fm/online/web/>) to "Chords!
for WinAMP" yields an error:

We can't find page you have requested.

~~~
k0ban
Thanks. Fixed.

------
k0ban
Clickable link <http://chords.fm/online/web/>

------
nsrivast
Can you figure out a way to port to guitar hero and keep things enjoyable?
That would be excellent.

------
it0ny
this seems like a great idea, I am going to try it when I get home. :) Another
thing that interests me, is the composing of the chords completely automated?

~~~
k0ban
Yes. You could look to our product Chords! Winamp that transcripts completely
on your PC.

------
k0ban
We are overloaded. Queue right now is 8 - 12 hours.

------
rwk
http error when submitting?

~~~
k0ban
We will have a look.

If you will have this problem constantly just e-mail me at
kos@cbmsnetworks.com

