SoundSheets in Tonfall

March 10th, 2011

I have uploaded a very rough demo of sound-sheets in Tonfall. The idea is to bring real instruments to Tonfall by using samples remaining a reasonable file size.
Usually you might think a single pitched sample can do the job, however pitching a sample one octave already means doubling the speed. It would sound very unnatural.
I decided to take 11 samples with a difference of 6 halftones (covering ~5 octaves). Hence the maximal speed difference (when the note is inside the provided range) is 25%. There is still space for improvements. The duration of each sample is fixed and needs to be small to respect the file-size. By looping a proper range of the samples after a certain attack duration, enough to maintain the characteristic of the instrument, it should reduce file-size again and sound better. However this will then implemented into Audiotool.

I've updated the DemoSuperMario to run SoundSheets. The synth is decoding MP3 in runtime. Samples are taking from Reason. Could be better...

Get Adobe Flash player

Listen to the piano.mp3 to get an idea how it works.

Filed under: audio dsp

10 Responses to “SoundSheets in Tonfall”

  1. bob smith Says:
    March 10th, 2011 at 10:53 pm

    Awesome stuff…been looking at injecting fluid synth via alchemy but this approach might do just as well..

  2. jeffrey Says:
    March 11th, 2011 at 8:43 am

    That’s cool, love the Mario theme. :)

    I’ve been thinking about using a single sample (like an A4) and pitch/timeshift it, but I think your approach keeps the quality of the sound without having to use dozens of samples. Very efficient.

    Nice post!

    Btw, the piano.mp3 link is broken.

  3. Lawrie Cape Says:
    March 11th, 2011 at 4:36 pm

    Great stuff. As far as I know, this is how Sound Fonts work too –

  4. RusKonung Says:
    March 12th, 2011 at 7:25 am

    Thanks for Tonfall very much. I see it to be a very useful stuff.
    But I have a question.
    If I want to change loaded sound (just Sound object) with effects I should extract samples, make signalBuffer and process it, do I? Does any standard method exist in Tonfall?

  5. derRaab Says:
    March 14th, 2011 at 6:13 pm


  6. Jason G Says:
    May 27th, 2011 at 9:41 pm

    Looking through your code I’m trying to figure out how you deciphered the values for the notes in the MP3 (piano). and I have some questions.

    Why did you use the numbers you did in creatFrequenceyTable()?

    Same for getNearestKeyIndexByNote( note: int ), what is the significance of the numbers used in that function?

    Do you think it might be possible to go a little more in depth with this?

  7. Freddy Says:
    June 23rd, 2011 at 6:24 pm

    Hi Andre, great work with Tonfall, I been playing with it lately and found this update, but the file DemoSuperMario is missing, can we get it please?


  8. kepce kulak Says:
    July 2nd, 2011 at 9:11 am

    reat stuff. As far as I know, this is how Sound Fonts work too –

  9. JimJ Says:
    September 27th, 2011 at 3:37 pm

    Ha! The strings sound really cool (they all sound good, but the strings..have a certain fullness to them)

  10. ubru bey Says:
    September 30th, 2011 at 5:34 am

    Nice:), you may want to do a demo for the starter like step by step guides to learn how to play a musical instrument.