Classical Guitar Soundfont

• Feb 10, 2020 - 08:30

I created my Classical Guitar Soundfont !

Since I’m not satisfied with default Classical Guitar sound, I had being hoping to create my own CG sound.
And I made it for the very first time! Almost all sounds (except D#2&C6) I recored & sampled.

I’m completely new in this field, and very much appreciate if someone gives me any feedback / technical advice.
I used “Polyphone” for the first time, I understood basics, but not advanced settings.

For now, I’m not so satisfied with treble sounds, little too metallic..
I wish if I can make these more mild, round sounds.
I did “rest stroke” on my right fingers except 6th string.

Link here

Demo : Adelita by F.Tarrega

*10.6MB / sf3 format
*mono recording
*Tuning 440Hz
*Range D2-C6
*Microphone : AKG C214
*Guitar : Kazuo / Kunihiko Ichiyanagi
*Sound editor : Audacity
*Soundfont editor : POLYPHONE


Thanks for the contribution.
"For now, I’m not so satisfied with treble sounds, little too metallic."
Indeed, here too. Pretty ennoying.

For the record, are you aware of this page:
The soundfont eg "Acoustic Guitars" JNv.2.4 is pretty good to my ears. In any case, better that the default soundfont.

In reply to by cadiz1

Thank you for your comment!
Actually I'm thinking to replace some 1st string sounds to 2nd string, like

1st string E -> 2nd string 5th fret
1st string F -> 2nd string 6th fret.. until 2nd string 12 (B) fret, then switch to 1st string 8th fret (C)

And Thanks for the link, I've seen it before but didn't try that font. will try it :)

In reply to by kazuma yamamoto

My advices:

for sampling:

  • Mute/silent other strings except the string you played during sampling. (Yellow cleaning cloths that you can cut into strips are ideal for this job.) Thus, you prevent the sympathetic resonance (and vibration) of other (open) strings.
  • Keep the microphone between the bridge and the sound hole, but a little closer to the sound hole.
  • Since this is a condenser microphone, adjust the ideal sound pickup distance between 5-25 centimeters by experiment. (Find the area where the body-sound of the guitar comes on average.)
  • Also, switch on the low-bass prevention filter on your microphone. (It's marked as /-- image: lf.png )
  • Do not sample from open strings, except for the low-E string.
  • Keep unprocessed raw samples, don't overwrite them. ( :) )

for The polyphone; In Instruments Section; set as (global):

  • Vol Env Attack: 0.003 (This setting prevents the non-existent and unwanted "crackling" sounds and some peaks {and pops} at the very beginning of the sample.)
  • Vol. Env. Release: 0.600 (This setting prevents the sound from being unnaturally cut off at the end {for classic guitar}.)

In reply to by kazuma yamamoto

No, I wanted to say that if you want to work again later, the raw samples you keep will be useful. (Now when I say it that way, it sounded to me like a useless piece of advice.)

But you mentioned a nice point.

I think: Only normalization process can work. (If the volume of the sample you recorded is at a low level, the limiter and compressor will not work at all.)

And try not to record the volume very-low. The sound level which is tried to be increased by digital processes after recording may cause some problems.

In my experience: Ideal sample recording level around -3 or -6 dB may be good as it is necessary to leave a free-room above. (and It prevents square-wave formation and dropouts in any {momentary} peak situations.)

There is always a way to increase the record gain. (I think you have a preamp since you use a condenser microphone.)

The closer the recording to the ideal level, and the less processing on the sample later, the better.

But still, if the recording level is too low and there is no way to prevent it, you will also need to perform a noise removal process. Because the level of unwanted noise (eg: "hiss" sound) will also increase. And every subsequent operation/process on the samples will reduce the timbre/clarity of the sound.

In reply to by kazuma yamamoto

The display you get the screenshot is linear "Waveform" display.
For "dB" display (logarithmic), you can select "Waveform (dB)" option from the "v" drop-down menu in the picture.

In the screenshot below, the -3 dB area is marked yellow and the -6 dB area is marked green.
//"Waveform (dB)".

On the screen where you get the screenshot (default display), this will look like this:
// linear "Waveform"
(The value "-3dB" is denoted by "0.7" and the value "-6dB" is denoted by "0.5". //approx.)

In reply to by kazuma yamamoto

These samples are much better than the previous ones:

In B_5, there is still a sympathetic resonance towards the end of the recording. I don't know if it is caused by other strings that are not well muted or somewhere else.

Also, although you have recorded with a microphone, I cannot hear any ambient sound. This means, to me, that the samples are over-filtered or over-processed. Did you filter frequencies above 6/8kHz?

Is it possible to see a raw sample (or several samples) that has not been normalized (and no other process)? Because in some samples, there is some kind of a bad digital frequency fall-off in the middle. It is not easy to hear, but a familiar ear detects it.

Please don't normalize it to 0 dB. There is an input box in the normalization window. it might be nice to leave a space at the top by entering a lower value of at least 0.9 or 0.85.
But while doing this, make sure that there is not a huge level difference between the raw samples. Therefore, it is important to keep the volume at a certain level while recording.

Once you find the right set-up, then the rest is very easy.
I think you can get a very high quality soundfont as a result of this effort.

In reply to by Ziya Mete Demircan

Thanks for your advice, help me a lot really, very much appreciate.

For sampling links above, I muted string by “left / right fingers” not by cloth.
It’s because I couldn’t find proper size to cut and how to wrap strings.

here is the cloth I want to cut and use.
Appreciate if you could advise how to cut & wrap ;

About ambient sound, don’t know if it’s cause by over-filtering. I will put links of raw sample later.
BTW, like you wrote, how can I, (and where can I find) filter frequencies above 6/8kHz? by using equalizer I guess?

Normalize, I always set to -1.0 but I will try 0.9 or 0.85
Is it ok to tick “remove DC offset” ?

Attachment Size
cloth.JPG 136.19 KB
normalize.jpg 58.97 KB

In reply to by kazuma yamamoto

samplings here ;
these are all "Raw Sample", nothing is edited.
*I'm using volume control via audio interface, "Alesis io2"

F 6th

B 5th

C 3rd

G 2nd

B 1st 7f

E 1st 12f…

I used yellow cloth to muse this time.
I put the cloth (haven't cut yet) beneath the fretboard so that the cloth is less slippy.
But still I feel some difficulty to mute especially recording middle strings, 3rd, 4th.

In reply to by kazuma yamamoto

The quality of these raw samples is better than average.

Especially in thick strings (E and A), a harmonic tone is heard after the middle of the sample.
Play (pick) the string over (or near) the sound hole.
If you are playing (picking) from the exactly half (or quarter) point of the length of the string (the fret you press also reduces the length of the string), then an artificial harmonic is inevitable.

It is getting much better now.
It may be better to use them without any process on it.

Complete the recording of samples and give a link to the beta version of the soundfont.
After that (and if you have permission): By working on this material, I can design many useful sounds from just one set of samples. And it's a nice gift to the users.

In reply to by kazuma yamamoto

Hearing harmonics in a normal sample is of course not much desired.

Btw. You can also record harmonics separately. //So we also have a harmonic patch.
especially the 2nd and 3rd and 4th ones are important. *1
1st: 0th pos. //open string
2nd: 12th pos.
3rd: 7th pos.
4th: 5th pos.

*1: The first harmonic is the sound of the open string.

In reply to by Ziya Mete Demircan

OK, I need some help for understanding "bank" and "preset".

In Preset section, I created "CL.Guitar" and "Cl.Guitar harmonics".
Hope it's fine to do like this.
Put "CL.Guitar" to bank 1
Put "Cl.Guitar harmonics" to bank 2.

But what does this "preset" means? which number should I assign for each of those ?

And you wrote,
>it could probably be 024: 025.
What does this 024 / 025 mean?

Attachment Size
bank.jpg 268.46 KB
bank1.jpg 250.52 KB

In reply to by kazuma yamamoto

According to the General-MIDI specification, each instrument has a certain preset number with it.
The patch number of Nylon String Guitar is 000:024 //Bank:000 Preset:024

Presets are the main-identifiers in bank 000.
//example: 000:024 Nylon String Guitar
subBanks are alternative and/or similar-sub-sounds of the Main Presets.
//example: 024:024 Nylon Gt. Harmonics


000:000 Grand Piano // Main patch
008:000 Grand Piano wide // subBank
016:000 Grand Piano dull //subBank
024:000 Piano+Strings //subBank
025:000 Piano+Strings2 //subBank


According to Roland's GS Standard, the 025:024 (uses 1 based counting for Presets; GS standard) is corresponds to a bank named "Velo harmonics" on the Nylon String Guitar patch. (This will be 024:024 for GM;{uses 0 based counting} ) // Bank:024 Preset:024 Velo Harmonics

If we define it like this, at least the subBank may comply with the GS standard and the Main Preset (000) can comply with the GM standard. (And when another soundfont is used in the score where this bank is not available, it will return (fallback) to the main patch..)

Bank:Preset (Standard GS patches) // Preset numbers are written according to GM. 
000:024 Nylon-str.Gt  // Main patch
008:024 Ukulele           
016:024 Nylon Gt.o
024:024 Velo Harmnix  //****
032:024 Nylon Gt.2
040:024 Lequint Gt.

mainPatch.png subBank.png

Attachment Size
subBank.png 7.69 KB
mainPatch.png 7.28 KB

In reply to by Ziya Mete Demircan

I’m getting !
Several years of big question of Soundfont is being solved in few days conversation..
it’s so amazing how you explain, Thank you so much :)

Shortly, I set bank / preset like this as you suggest, hope its fine.


One thing confused me is;

You wrote,
GM (General MIDI) uses ‘0’ bases counting, so Nylon St Guitar preset nr is : 24.
However when I google it,

looks like it uses ‘1’ bases counting and Nylon St Guitar preset nr is : 25.

Am I missing something?

Attachment Size
bank3.jpg 156.38 KB

In reply to by kazuma yamamoto

I wrote it as I remember it; They use 1-128 as the external representation; but Internal numbering is always 0-127

However, this is what confuses many years between users (GM, XG and GS or Internal numbering and External representation). After all, it seems like I'm confused too. :P

As a result, instead of "GM" there, you can replace it with "Internal Numbering", "0-Based Numbering" . Information is not wrong, but the source is wrongly remembered.

Altough some manufacturers use 1-128 (eg: Roland; GS) and some others 0-127

0-127 representation (for technical reasons) are also used in Soundfont editors and most (old?) MIDI editors. And I have been using it for years

cite (from Complete MIDI 1996-1-3 MIDI 1.0 Detailed Specification page:18)
The ability to reassign programs to a given program change number should be part of an instrument's capabilities. Some instruments number their internal patches in octal numerics. This should have no effect on the numbers used for patch change. Numbering should begin with 00H and increment sequentially. For example, octal 11 would be 00H, 12 would be 01H, etc.

And, yes; The program change and bank change numbers in the picture are correct.
screenshot from: R0land SCVA manual

In reply to by kazuma yamamoto

My brand new strings is being stable, getting ready to record in coming few days :)

Hereby summery of what I’m going to do ;
*Use RAW sample, nothing is edited / filtered
*sf3 format compiling
*mono recording
*create two sets of sample / normal & harmonics tones

*Tuning : 440Hz
*Range : D2-B5
*Microphone : AKG C214
*Guitar : Kazuo / Kunihiko Ichiyanagi

In reply to by kazuma yamamoto

I guess this is not a felt type (multi purpose) cleaning cloth, just a thin (instrument) cleaning cloth.
If you have two of these (one for the upper and one for lower strings), you can use it by folding the cloth in "z" or "w" shape (or if the cloth is too thin just roll it) and insert it between the strings.
example: -v-v- - -v- <=Dashes indicate wires. The v-letter(s) indicate folded cloth.
Simply: Fold the cloth somehow enough. And place (insert) it between the strings you want to mute, near to the bridge.

About normalization:
Yes, it's good to set as -1dB.
According to Audacity's "linear" settings, I said 0.9 or 0.85, which is equal to -1 dB approx.

In reply to by kazuma yamamoto

Not that, I think that he advises you about recording level before any processing.
Without normalization, It would be better to record the peak level of about 0.7 - 0.5.
If you have next recording opportunity, please try to record more louder level.
so you will get more better result.

ノーマライズも何もしない状態で,ピークレベルが 0.7 - 0.5 になるくらいの音量で録音するとよいでしょう.
(注: ノイズ対策や,音の振幅分解能などの点で,処理前の RAW サンプルの時点で,もっと大きい音量のほうがよいと私も思います.0.2 以下になってしまっているのは小さすぎると思います.ノーマライズで引き伸ばして大きな音を作るよりも,最初から大きな音で録音しておいたほうがよいです.)

Do you still have an unanswered question? Please log in first to post your question.