Simulated Violin Response
Started by Wm. Johnston, Jul 02 2012 08:04 PM
6 replies to this topic
#1
Posted 02 July 2012 - 08:04 PM
Hi, a few weeks ago I decided to write a simple program that will take a set of user defined violin resonances and formants and turn them into a recording that can be listened to. My hope is that I can develop a fairly simple tool that can help technically inclined builders decide how to modify their own instruments in order to improve their tone. Right now I have the basic code set up and I can input a set of resonances and formants. For each of these I can specify their amplitude, damping (width and decay time), and peak position. While I'm calling them resonances and formants, at the moment, I'm treating them exactly the same way but I'll probably be changing that soon, but that's not too important at the moment.
In addition to the simple resonances and formants the code allows for a set of high frequency resonances. Since specifying all of the high frequency resonances would take a lot of time and work (and there's nothing in the code to stop you from doing that) I have added in a feature that automatically adds in high frequency resonances. In principle this will allow for testing how important the 'modal density', as Oded Kishony calls it, is to the violin's tone. For the high frequency resonances you can specify their amplitude, spacing, and damping.
Right now what I would like is a recording of an solidbody electric violin played without the use of any effects or eq. The idea is to take the recording of the electric violin, run it through my code, and then the code will spit out a modified recording that will show how a certain spectrum sounds. I want a recording of a solidbody violin because it won't (shouldn't) have any strong resonances coloring it's tone the same way that an acoustic violin played through a pickup would. The idea is to take the pure signal from the strings and then see how the violin's response colors the tone.
Right now I would just like a short clip of something simple with vibrato because the effect of the modal density probably won't show up too strongly without vibrato. In my mind I'm thinking of something short (10-20s max) like the clip of the Bruch at the end of the Glory of Cremona cd. I'm not very picky and would appreciate any clean recording, even just a scale or a clip of something random would be nice too. The only requirement is that the file would need to be saved in wav file format so that nothing is lost, as in an mp3 compressed format. If anyone is interested in helping then please let me know by pm or a reply here. The only thing that I ask is that you are willing to let me post the recording and modified versions of it on Meastronet so that everyone can listen to them for the differences. Of course that's assuming the code ends up working well enough.
In addition to the simple resonances and formants the code allows for a set of high frequency resonances. Since specifying all of the high frequency resonances would take a lot of time and work (and there's nothing in the code to stop you from doing that) I have added in a feature that automatically adds in high frequency resonances. In principle this will allow for testing how important the 'modal density', as Oded Kishony calls it, is to the violin's tone. For the high frequency resonances you can specify their amplitude, spacing, and damping.
Right now what I would like is a recording of an solidbody electric violin played without the use of any effects or eq. The idea is to take the recording of the electric violin, run it through my code, and then the code will spit out a modified recording that will show how a certain spectrum sounds. I want a recording of a solidbody violin because it won't (shouldn't) have any strong resonances coloring it's tone the same way that an acoustic violin played through a pickup would. The idea is to take the pure signal from the strings and then see how the violin's response colors the tone.
Right now I would just like a short clip of something simple with vibrato because the effect of the modal density probably won't show up too strongly without vibrato. In my mind I'm thinking of something short (10-20s max) like the clip of the Bruch at the end of the Glory of Cremona cd. I'm not very picky and would appreciate any clean recording, even just a scale or a clip of something random would be nice too. The only requirement is that the file would need to be saved in wav file format so that nothing is lost, as in an mp3 compressed format. If anyone is interested in helping then please let me know by pm or a reply here. The only thing that I ask is that you are willing to let me post the recording and modified versions of it on Meastronet so that everyone can listen to them for the differences. Of course that's assuming the code ends up working well enough.
#2
Posted 03 July 2012 - 11:19 AM
Is this a follow up on the study that Mathews and Kohut (1) did a long time ago? Your work could be a great help for me in improving my instruments but I can't speak for other makers.
Here's a quick summary for our readers of what Mathews and Kohut did:
They electronically experimented with different electric violin damping Q values and they found that a resonance peak to valley difference of 10dB seemed optimum for tone quality in listening tests:
"The immediate conclusion from these tests is the choice of damping factor must be a compromise between too flat resonances which yield an unresponsive instrument and too prominent resonances which yield a hollow-sounding, uneven instrument."
They also experimented with different numbers of resonance peaks: 20 peaks with Strad random like spacing; those 20 plus 17 new ones spaced half way between the Strad peaks =37, and 24 evenly spaced peaks.
The tone with 37 peaks was slightly more brilliant than 20 peaks and the tone with 24 evenly spaced was also more brilliant and had more uniform loudness of scale notes.
They theorized: "In order to achieve a rich tone quality…the peak frequencies must be irregularly spaced, the Qs of the resonances must be sufficiently large so the response curve is steep almost everywhere…the peaks must be sufficiently close together so the depth of the intervening valleys does not exceed about 15dB."
(1) M.V. Mathews and J. Kohut, "Electronic simulation of violin resonances", The Journal of the Acoustical Society of America, vol 53, no 6, 1973
Here's a quick summary for our readers of what Mathews and Kohut did:
They electronically experimented with different electric violin damping Q values and they found that a resonance peak to valley difference of 10dB seemed optimum for tone quality in listening tests:
"The immediate conclusion from these tests is the choice of damping factor must be a compromise between too flat resonances which yield an unresponsive instrument and too prominent resonances which yield a hollow-sounding, uneven instrument."
They also experimented with different numbers of resonance peaks: 20 peaks with Strad random like spacing; those 20 plus 17 new ones spaced half way between the Strad peaks =37, and 24 evenly spaced peaks.
The tone with 37 peaks was slightly more brilliant than 20 peaks and the tone with 24 evenly spaced was also more brilliant and had more uniform loudness of scale notes.
They theorized: "In order to achieve a rich tone quality…the peak frequencies must be irregularly spaced, the Qs of the resonances must be sufficiently large so the response curve is steep almost everywhere…the peaks must be sufficiently close together so the depth of the intervening valleys does not exceed about 15dB."
(1) M.V. Mathews and J. Kohut, "Electronic simulation of violin resonances", The Journal of the Acoustical Society of America, vol 53, no 6, 1973
#3
Posted 03 July 2012 - 06:52 PM
No, I haven't seen this study.
This code is something that I've been wanting to do for a long time but have only recently gotten serious about writing. Right now the code isn't ready to be shared because I want to make it easier for non-programmers to use. I also need to test it out a bit. I've found a few short recordings of unadultered electric violins on the internets but none of them were really what I need.
All I really need to do to get the code ready to share is to simplify how the resonances are input by the user. I'm writing this in Matlab but it should run in Octave which is free to download by anyone.
This code is something that I've been wanting to do for a long time but have only recently gotten serious about writing. Right now the code isn't ready to be shared because I want to make it easier for non-programmers to use. I also need to test it out a bit. I've found a few short recordings of unadultered electric violins on the internets but none of them were really what I need.
All I really need to do to get the code ready to share is to simplify how the resonances are input by the user. I'm writing this in Matlab but it should run in Octave which is free to download by anyone.
#4
Posted 03 July 2012 - 11:50 PM
Interesting input. If the program can make an impulse response in wave format, it could be run using the freeware SIR1 VST- plugin from Audacity I mentioned in a thread here a couple of weeks ago. http://www.maestrone...ndpost&p=546673
The dry electric violin recordings Wm is asking for are also the input sound files one would or could need for comparing instruments using measured impulse responses.
It could also be a possibility to measure the impulse response of a violin at a given distance in a room so both the instrument and the room response is reproduced in an auralization.
The dry electric violin recordings Wm is asking for are also the input sound files one would or could need for comparing instruments using measured impulse responses.
It could also be a possibility to measure the impulse response of a violin at a given distance in a room so both the instrument and the room response is reproduced in an auralization.
"If the facts don't fit the theory, change the facts". A Einstein
#5
Posted 04 July 2012 - 03:41 PM
The code does compute the impulse response of the simulated vilin so outputting it in wave format will just require a single extra line of code, I'll be sure to add it soon.Interesting input. If the program can make an impulse response in wave format, it could be run using the freeware SIR1 VST- plugin from Audacity I mentioned in a thread here a couple of weeks ago. http://www.maestrone...ndpost&p=546673
This morning I modified the code to simplify inputting the details of all of the resonances. I also added in a feature that will place the high frequecy modes randomly. So at the moment the code can model the high frequency response as a smooth formant only response, formants plus evenly spaced resonances (like I plotted above), formants plus randomly spaced resonances, or just high frequency resonances.
Right now I think the code has plenty of inputs to keep a person busy for quite a while.
#6
Posted 05 July 2012 - 03:09 PM
It is a good thing to be able to listen to the impulse response directly too. Does it sound natural or not?
"If the facts don't fit the theory, change the facts". A Einstein
#7
Posted 05 July 2012 - 06:18 PM
Depends on the values that I use for the damping and how much high vs low frequency output. If the Q-values are too high and there isn't enough high frequency output then the impulse doesn't sound like you would expect for a good violin, the sound rings for too long. Also if there is too much high frequency output then the impulse sounds too 'crisp.' My next step will probably be to fit a real violin spectrum and then input the resonances into my program and see how the results sound compared to the real violin.Does it sound natural or not?
When the Q-values and amplitudes of all of the resonances look right on the spectrum plot then the impulse sounds reasonable. Once things are setup right it is easy to hear the difference between simulated impacts with different b1 frequencies.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users










