| Author |
Message |
frijitz
Joined: May 04, 2007 Posts: 1734 Location: NM USA
Audio files: 54
|
Posted: Tue Mar 11, 2008 6:03 pm Post subject:
|
 |
|
| ScottG wrote: | | The FPGA design has been modified to include 2 LaGrange Interpolators, one on the bore delay output and one on the jet delay output. The system is working, but needs some help because parameters that resonate well, producing a very near sine output at short wavelengths don't work with lower notes. Some notes don't appear to work at all - this could be some error in my tuning tables or it could be a problem with the LaGrange Interpolator(s). I may also discover a problem of inaccuracy with the interpolators, the bore must be exactly twice as long as the jet. I created the tuning tables with this in mind, but I believe that the interpolator is most accurate with values farther away from 0.5. It may require hand tuning each note, but that just requires a new tuning table. |
Scott --
Thanks for keeping us updated on your very interesting results.
I think you may be seeing some of the same thing the Yamaha VL programmers did. Many of the VL parameters have "break points", ie they vary across the instrument's range. Tuning also took special care. This is probably the main reason that Yamaha didn't allow full programmability of its retail units.
I can't remember -- did I give you a reference to Manny Fernandez's work? He was one of the programmers and has a nice document on these issues. It used to be up on the wind org website, but that is defunct now.
Ian |
|
|
Back to top
|
|
 |
blue hell
Site Admin

Joined: Apr 03, 2004 Posts: 24676 Location: The Netherlands, Enschede
Audio files: 330
G2 patch files: 320
|
Posted: Tue Mar 11, 2008 6:29 pm Post subject:
|
 |
|
| frijitz wrote: | | It used to be up on the wind org website, but that is defunct now. |
Do you know anything about that Ian? I mean it was a very nice site, it had some good Nord Modular stuff as well. Is it forever gone? _________________ Jan
also .. could someone please turn down the thermostat a bit.
9 3 4 .. erm .. not 13 then? .. hmm, ah eight! .. yeah yeah as in 8647 .. 47 is an 88 .. pwew .. numbles! |
|
|
Back to top
|
|
 |
frijitz
Joined: May 04, 2007 Posts: 1734 Location: NM USA
Audio files: 54
|
Posted: Tue Mar 11, 2008 6:46 pm Post subject:
|
 |
|
| Blue Hell wrote: | | frijitz wrote: | | It used to be up on the wind org website, but that is defunct now. |
Do you know anything about that Ian? I mean it was a very nice site, it had some good Nord Modular stuff as well. Is it forever gone? |
Not really. I dropped out of the wind controller community when I decided to start working on chaos theory. I know there was an official windcontroller organization, but it only lasted a year. After that, they managed to keep the site alive for several years. Then one day I looked for it and it was gone.
To me the biggest loss was that that site was the only place hosting Bouvard Hosticka's, "electroclar" writeup. This is one of the most amazing synthesizer controllers ever built. An electonic and mechanical tour de force.
But who plays clarinet anymore?
Ian |
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Tue Mar 11, 2008 7:14 pm Post subject:
|
 |
|
| frijitz wrote: | Scott --
Thanks for keeping us updated on your very interesting results.
I think you may be seeing some of the same thing the Yamaha VL programmers did. Many of the VL parameters have "break points", ie they vary across the instrument's range. Tuning also took special care. This is probably the main reason that Yamaha didn't allow full programmability of its retail units.
I can't remember -- did I give you a reference to Manny Fernandez's work? He was one of the programmers and has a nice document on these issues. It used to be up on the wind org website, but that is defunct now.
Ian |
I don't think you did, but that would be a great thing to read. I'm having to do this blind-man's-bluff style.
I have a sister and a brother who both play the flute and doing this project has given me a better understanding of just how hard it can be to play a flute properly. I did think this would be easier to get going, but I'm not out of ideas yet. Parameters to adjust are the ADSR parameters, noise input level, 2 feedback scale values, and the reflection filter. Knowing what parameter to adjust for what effect has proven challenging. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
|
Back to top
|
|
 |
Dave Manley
Joined: Sep 03, 2007 Posts: 7 Location: North Bay, California
|
Posted: Tue Mar 11, 2008 10:42 pm Post subject:
|
 |
|
Perhaps a bit late, but the following query searches the US Patent Office for all patents with Assignee=Yamaha, with keywords "waveguide" and "dsp". It turned up a few interesting looking things. Note that some/all of these patents are still active.
shortened link
1 5,835,605 Full-Text Engine exhaust sound synthesizer
2 5,741,994 Full-Text Waveguide musical tone synthesizing apparatus with noise modulation of waveguide coupling
3 5,739,454 Full-Text Method and device for setting or selecting a tonal characteristic using segments of excitation mechanisms and structures
4 5,621,801 Full-Text Reverberation effect imparting system
5 5,519,167 Full-Text Musical tone synthesizing apparatus
6 5,508,469 Full-Text Musical tone synthesizing apparatus capable of changing musical parameters in real-time
7 5,438,156 Full-Text Wind type tone synthesizer adapted for simulating a conical resonance tube
Also: 5,212,334 Digital signal processing using closed waveguide networks
To get pdf's quickly use: http://www.pat2pdf.org/
The combination of searching on the USPTO website and pat2pdf makes quick work of digging through patents.
note blue hell: shortened the link to get a better page layout. |
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Wed Mar 12, 2008 7:48 am Post subject:
|
 |
|
Ah! Thanks Dave!
That should remove many question marks. I'm also interested in the "engine exhaust" synthesizer - I've used my (heavily modified) FatMan for that while flying with FS4... but I am very interested in how they do that. I really want to get this phLUTe working properly - as in "expressively playable" and this has a high probability of delivering answers to questions that loom. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
|
Back to top
|
|
 |
jksuperstar

Joined: Aug 20, 2004 Posts: 2503 Location: Denver
Audio files: 1
G2 patch files: 18
|
|
|
Back to top
|
|
 |
widdly
Joined: Jun 25, 2007 Posts: 268 Location: singapore
G2 patch files: 2
|
Posted: Wed Mar 12, 2008 1:53 pm Post subject:
|
 |
|
I've played around with Perry Cook's STK a bit and the overblown flute sound is definitely my favorites. It's so heavy metal.
The models in the STK all seem to have some hard coded values for scaling the parameters. These scalers are never really explained so I imagine they are found stochastically.
You could write an application to systematically test the model with a whole range of parameters at different frequencies and automatically determine which combinations will actually generate sound. You could then use the results to generate key scaling parameters to extend the useful range of the model.
The model for the Steampipe in Reaktor is pretty interesting. There is a reverb inside the model. I don't know how that relates to physics but it sounds pretty awesome.
If you haven't tried it out, check out the freeware vst called Miles'tone. It blew me away  Last edited by widdly on Thu Aug 05, 2010 10:18 pm; edited 1 time in total |
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Wed Mar 12, 2008 2:06 pm Post subject:
|
 |
|
I am not yet finished fiddling around with this, but I have tweaked it to the point that it may simply be the inaccuracy of the fractional delays that is causing me grief. I mapped out the keys that work and the keys that don't and saw that the lowest octave plus a few extras all work, from there, random notes won't resonate and the ones that do resonate are fewer and fewer as I go up the scale. The way I see the fractional delay scheme, the fractional delay becomes a larger portion of the delay as the frequency increases. I think because of that, any error becomes more and more important.
I have an alternative that could be viable. If I map all notes back to the first octave, the mechanics work as they should. I can control the octave by decimation. 1:1 (or no decimation) for the first octave, 2:1 for the second octave, 4:1 for the 3rd and 8:1 for the 4th. This isn't exactly the way I planned or even wanted to do it, but I know I can make that work. Since this is a phLUTe and not a flute, I can get away with that . At 8:1, the system would take 105 clocks to calculate a sample. The sample rate of 100 KHz allows for 500 clocks per DAC enable so I could even go higher or I could get perhaps 4 pipes of polyphony out of it. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
|
Back to top
|
|
 |
widdly
Joined: Jun 25, 2007 Posts: 268 Location: singapore
G2 patch files: 2
|
Posted: Wed Mar 12, 2008 3:33 pm Post subject:
|
 |
|
That decimation idea is interesting. I would have thought you would need to filter at 1/2 nyquist before the decimation to avoid aliasing. I wonder if there will be a very obvious audible step as you change octaves. Last edited by widdly on Thu Aug 05, 2010 10:18 pm; edited 1 time in total |
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Wed Mar 12, 2008 3:45 pm Post subject:
|
 |
|
| widdly wrote: | | That decimation idea is interesting. I would have thought you would need to filter at 1/2 nyquist before the decimation to avoid aliasing. |
The top frequency will be around 5Khz, with little in the way of harmonics. I don't believe the decimation will cause an alias problem. That's something I know to watch for... As far as I understand it, the alias problem occurs when the signal's frequency is more then half the sample rate. Nyquist in this case is 50 KHz.
| widdly wrote: | | I wonder if there will be a very obvious audible step as you change octaves. |
Perhaps, but it may be subtle. When I apply "too much" blow power, I get an airy tone. The nature of the "air" will be different as octaves increase, but that's not really the way a flute is played. It's normally played for a clear tone. So that may be one bit of expressiveness (intentional airy tone) that it won't be able to do well.
I'm about to post some sound samples if I can fix the MIDI controller which ain't doin' what it's spose-ta.
I'm also trying to find the parameters that will make overblowing work for all the notes of the first octave instead of just the bottom 4 or 5. Changing the parameters of the model affects a few different things, amplitude, easy of period halving, waveform purity, etc.
And another thing I found is that I may be able to ditch the fractional delay stuff altogether by adjusting the sample rate correctly for tuning with integer length waveguides. Using integer length waveguides makes it easier to force a 2:1 relationship between the length of the bore and the length of the jet. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
|
|
Back to top
|
|
 |
widdly
Joined: Jun 25, 2007 Posts: 268 Location: singapore
G2 patch files: 2
|
Posted: Thu Mar 13, 2008 3:07 am Post subject:
|
 |
|
The sample is sounding cool. The transients sound interesting, they have a string like boing to them. Maybe more Phlutey than flutey
| ScottG wrote: | | widdly wrote: | | That decimation idea is interesting. I would have thought you would need to filter at 1/2 nyquist before the decimation to avoid aliasing. |
The top frequency will be around 5Khz, with little in the way of harmonics. I don't believe the decimation will cause an alias problem. That's something I know to watch for... As far as I understand it, the alias problem occurs when the signal's frequency is more then half the sample rate. Nyquist in this case is 50 KHz.
|
Yeah but when you decimate you will be lowering the nyquist limit. Say you decimate by 2 then the nyquist will be halved. So any frequencies above 25kHz in the un-decimated signal will alias in the decimated signal. If you are going to 8 times decimation then it's going to be 3125Hz. Last edited by widdly on Thu Aug 05, 2010 10:18 pm; edited 1 time in total |
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Thu Mar 13, 2008 6:29 am Post subject:
|
 |
|
It is possible that I am using the term "decimation" incorrectly.
Here is what I want to do:
The state machine which calculates the next sample runs very fast compared to the time between DAC updates (100 KHz). There is time to calculate more than 32 state machine samples in that span. When I say decimate 2:1, what I mean is that while the sample rate (to the DAC) remains constant at 100 KHz, I would calculate 2 samples (within one DAC sample time) using the state machine and use only the second (thus killing every other one or "decimating").
If the signal without decimation is a 250 Hz signal, then it is 500 Hz when presented to the DAC after decimation (but without changing the DAC update rate). At 8:1, this same 250 Hz signal is 2000 Hz. But again, the DAC update rate is constant. The upper end of the lowest octave has a top frequency of less than 522 Hz, so the output after decimation is less than 4176 Hz. Since the DAC sample rate is still 100 Khz and the signal conveyed is only 4176 Hz at worst, how does aliasing happen? AFAIK, the Nyquist frequency is 1/2 the frequency of the sample rate to the DAC. I see no difference between what I want to do and simply presenting a 4176 Hz sinewave to a 100 KHz sample rate DAC system. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
|
Back to top
|
|
 |
widdly
Joined: Jun 25, 2007 Posts: 268 Location: singapore
G2 patch files: 2
|
Posted: Thu Mar 13, 2008 9:29 am Post subject:
|
 |
|
Let's say you have 1 second of samples at 100Khz. So your state machine generates 100,000 samples. The highest frequency you can express in this block of samples is 50kHz. Lets imagine your samples contain a mix of a 5kHz sine wave and a 40kHZ sine wave.
Now you decimate by 2 by throwing away every second sample. So you have 50,000 samples. Now you have 1/2 a second of audio at 100 kHz and all the frequencies will have doubled. So your 5kHZ sine wave is now a 10kHZ sine wave but your 40kHz sine wave is now an 80kHZ sine wave. You cannot represent an 80kHZ sine wave using a 100kHZ sampling rate, so what you get aliasing. Last edited by widdly on Thu Aug 05, 2010 10:18 pm; edited 1 time in total |
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Thu Mar 13, 2008 9:41 am Post subject:
|
 |
|
| widdly wrote: | Let's say you have 1 second of samples at 100Khz. So your state machine generates 100,000 samples. The highest frequency you can express in this block of samples is 50kHz. Lets imagine your samples contain a mix of a 5kHz sine wave and a 40kHZ sine wave.
Now you decimate by 2 by throwing away every second sample. So you have 50,000 samples. |
No, I have 200,000 "samples" in terms of what the state machine produced. Every 2nd one of those 200,000 samples is killed. So I stll have 100,000 samples sent to the DAC in that second.
| Quote: | | >Now you have 1/2 a second of audio at 100 kHz and all the frequencies will have doubled. |
No, I have 2 seconds of samples (if no decimation is used) that I output in 1 second by only sending every other one to the DAC, still at 100KHz update rate.
| Quote: | | So your 5kHZ sine wave is now a 10kHZ sine wave but your 40kHz sine wave is now an 80kHZ sine wave. You cannot represent an 80kHZ sine wave using a 100kHZ sampling rate, so what you get aliasing. |
_________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Thu Mar 13, 2008 12:29 pm Post subject:
|
 |
|
I think I see where the confusion is.
I have no idea what the technical term for this is:
When I am doing decimation by 2, I am running the state machine in an oversampled mode 2:1 and then I decimate it's output 1:2. This effectively doubles the frequency of the output signal without changing the sample rate. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
|
Back to top
|
|
 |
widdly
Joined: Jun 25, 2007 Posts: 268 Location: singapore
G2 patch files: 2
|
Posted: Fri Mar 14, 2008 2:51 am Post subject:
|
 |
|
It amounts to the same thing really. I think in theory the problem can still occur. In practice you said your bandwidth only goes up to about 5kHZ so it shouldn't be a problem.
You are assuming the bandwidth of the state machine is independent on the sample rate which I don't think it is. Think of it in terms of wavelengths instead of sample rates.
Lets say to generate a certain note, you delay line will be say 32 samples long. The highest overtone that can resonate in the delay line will have a wavelength of 2 samples.
To generate the same note in oversampled mode, your delay line will be 64 samples long, but the highest overtone that can resonate in the delay line will still have a wavelength of 2 samples. So effectively you have an octave more bandwidth in your delay line and when you decimate the signal, any overtones in this octave will alias. Last edited by widdly on Thu Aug 05, 2010 10:18 pm; edited 1 time in total |
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Fri Mar 14, 2008 5:33 am Post subject:
|
 |
|
Tall ya what - I disagree, I think there will be no alias problem.
The proof will be in the sound file once I get the decimation scheme coded. That should be sometime this weekend. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
|
Back to top
|
|
 |
widdly
Joined: Jun 25, 2007 Posts: 268 Location: singapore
G2 patch files: 2
|
Posted: Fri Mar 14, 2008 6:25 am Post subject:
|
 |
|
Of course, sorry if have been too argumentative. I'll be interested to hear the results  Last edited by widdly on Thu Aug 05, 2010 10:18 pm; edited 1 time in total |
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
|
|
Back to top
|
|
 |
CJ Miller

Joined: Jan 07, 2007 Posts: 368 Location: 127.0.0.1
|
Posted: Sat Mar 15, 2008 2:59 am Post subject:
|
 |
|
Three years ago I made some crude physical models on my OASYS PCI. Even these basic nodes showed a lot of potential. As I recall I gave up because my only controller was just note on/off so articulation was really limited. IAC sequences were too clumsy. I have too many old computers for different things! It'll be nice to try the OASYS again within my current setup once I can be bothered to get it out of storage.
As I recall i did some weird modal skin propagation nodes with additional delay lines between them. It was like a nonsense cross between tabla and saxophone, but without the controller data smoothed, and lots of scaling problems. But versions of this were my first success at making this sort of thing, it was noisy fun.
If you want to challenge your mind, check out the documents on physical modelling on Julius Orion Smith's web pages. I was interested to start on it, but I gave up after a week or so. Maybe I'll try to pick it up again later if I can fill in some fundamentals. |
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Sat Mar 15, 2008 6:59 am Post subject:
|
 |
|
| CJ Miller wrote: | | If you want to challenge your mind, check out the documents on physical modelling on Julius Orion Smith's web pages. I was interested to start on it, but I gave up after a week or so. Maybe I'll try to pick it up again later if I can fill in some fundamentals. |
I've been there many times, it's one of the places I got the information for my PolyDaWG/8 Karplus-Strong struck string synth. I also found the details for the DC killer filter I needed for the phLUTe in the JOS area. One thing to remember about sites like JOS's, it's a university and those papers are written assuming a certain level of basic knowledge. I had to pick that up the hard way, but after piecing bits from JOS and others together I was able to come up with all of the necessary information to make a complete model design. It was well worth the effort. I've archived quite a pile of PDF files from there and other sites.
The PolyDaWG works quite well and is now a finished synthesizer design, but it is simpler in that each "string" is a single waveguide system, not a complex circuit involving 2 waveguides. Perry Cook's "slide-flute" is actually an extension of the Karplus-Strong model, adding the jet waveguide and the rest.
This last attempt at the phLUTe isn't workable, the use of a single octave of resonator range causes an 11 note shift when moving from B up to C or C down to B and it's quite audible in the chromatic sample. That in itself is not bad, but it causes a larger transient than any other 1/2 step change. I can tolerate the smaller transients since they sound sort of like flute key clicks, but the B to C click is audibly different from the others.
I'm going to try to resolve the problem of reliable resonation with short wavelengths by doing more work with the tuning tables. I plan to use a rotary encoder to alter the jet while leaving the bore static and see if I can make the system resonate. If I can, I'll simply record the values that work and make a custom hand filled tuning table.
One of the reasons I started this was to create "nonsense" instruments that work. A violute, or pianello, stuff like that.
I've just started with this physical model stuff, so there's a lot I need to learn. If the phLUTe fails the tuning table adjustment attempt, I may abandon it and start something else, perhaps a bowed string. (I'd love to have a deep resonant Cello model). I'm a bit more familiar with strings at this point. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
|
Back to top
|
|
 |
JovianPyx

Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Tue Mar 18, 2008 1:44 pm Post subject:
|
 |
|
A bit of progress today. In my reading of many many PDFs on this subject, there was some mention about the jet to bore length ratio. This had been expressed not as delay line length, but just bore and jet length. The ratio is to be set to 1:2 jet:bore. However, the block diagram in one of the PDFs shows 2 bore delay lines because that model was a flute with tone holes (much more complex). Anyway the model I'm using is a _single_ delay line bore model, it models the bore's normally 2 delay lines with one (derived from a similar situation in the Karplus-Strong string model). It occurred to me that perhaps the jet delay line should be exactly the same length as the bore delay line. The result was an additional octave of range, from middle C for two full octaves plus up to Eb.
So for now, the model has a minimally useful range which I will try to extend. The model is also rather hard to control in terms of overblow octave cracking. It cracks much more easily than I like. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
|
Back to top
|
|
 |
jksuperstar

Joined: Aug 20, 2004 Posts: 2503 Location: Denver
Audio files: 1
G2 patch files: 18
|
Posted: Tue Mar 18, 2008 9:47 pm Post subject:
|
 |
|
| Sample Rate and Bit Width can be related much like Voltage and Current. So, you can gain bits in the decimation of your rate, and so not loose any information, just transform it. |
|
|
Back to top
|
|
 |
|