electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
 Forum index » DIY Hardware and Software
Digital Synthesis: Passive Nonlinear Filter and Waveguide
Post new topic   Reply to topic Moderators: jksuperstar, Scott Stites, Uncle Krunkus
Page 1 of 1 [17 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Sat Mar 21, 2009 10:22 am    Post subject: Digital Synthesis: Passive Nonlinear Filter and Waveguide Reply with quote  Mark this post and the followings unread

This regards patent 5703313 wherein is described a method of sound synthesis using a digital waveguide and a passive nonlinear filter at the reflection point.

I found this using Google's patent search at:

http://www.google.com/patents?id=6ZMnAAAAEBAJ&dq=digital+synth+waveguide+passive+nonlinear+filter

Since it's patented, it can't be used for profit, but nothing stops us from implementing the device ourselves for our own use. The patent description claims that in some way or other, this invention relates to physically modeling of gongs and cymbals. There is text regarding the "transfer of energy to higher frequencies" using this passive nonlinear filter (which is quite simple structurally).

Figure 1 shows a very simple setup with one wavegude and one filter, I like simple. I'd imagine that it doesn't do a cymbal, but it may still be interesting. Figure 2 shows what looks like a waveguide mesh.

I am strongly interested in this - has anyone else played with this?

_________________
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
View user's profile Send private message Visit poster's website
mosc
Site Admin


Joined: Jan 31, 2003
Posts: 18197
Location: Durham, NC
Audio files: 212
G2 patch files: 60

PostPosted: Sat Mar 21, 2009 10:48 am    Post subject: Reply with quote  Mark this post and the followings unread

That is an interesting idea. I'm always amazed how patents are awarded for things that seem obvious. If I'm not mistaken, this is virtually the situation that happens when a radio transmitter is driving an antenna, or any other situation where there is a nonlinear impedance mismatch. I probably don't get it though.
_________________
--Howard
my music and other stuff
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Sat Mar 21, 2009 11:21 am    Post subject: Reply with quote  Mark this post and the followings unread

I'm not sure that's wrong and it could be a reason for a transmitter wasting some of it's energy on a part of the band it's not intending to use.

My interest in this is obviously sound synthesis. I'd like to try first the very simple single waveguide and single passive nonlinear filter - I've got to hear what that sounds like. I would think that it would be tonal, like a string (this looks like a modified Karplus-Strong model to me), but it should have enhanced or at least different harmonic content.

I've already got an FPGA implementation of an 8 voice polysynth that is very close to this simplest version of the model. It has 8 waveguides and 8 single pole IIR filters one filter for each waveguide. Each waveguide and filter implement a voice. The filter described in the patent looks like it is nothing more than a single pole IIR filter with a way to change the bandwidth parameter depending on the sign state of the input summing node. I should be able to modify my design to do this. I may get that working this weekend, if so, I will post some results and if it sounds interesting, I'll include a sound clip.

_________________
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
View user's profile Send private message Visit poster's website
mosc
Site Admin


Joined: Jan 31, 2003
Posts: 18197
Location: Durham, NC
Audio files: 212
G2 patch files: 60

PostPosted: Sat Mar 21, 2009 1:04 pm    Post subject: Reply with quote  Mark this post and the followings unread

Sounds interesting to me, at least.

What are you coding your synth research with?

_________________
--Howard
my music and other stuff
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Sat Mar 21, 2009 3:23 pm    Post subject: Reply with quote  Mark this post and the followings unread

mosc wrote:
Sounds interesting to me, at least.

What are you coding your synth research with?


I use Verilog, my sig has a link to most of my projects, the complete source is there as well as some sound samples or pointers to them.

Since the FPGAs I use are moderately large (not huge!) I get away with using a PicoBlaze (free!) embedded soft microcontroller for MIDI input to the synths, that's coded in the PicoBlaze native assembly language (free assembler!) and the source code for that is also included. So far, all of my projects run on one or another Xilinx-based development board. It's great wads of dandy fun.

_________________
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
View user's profile Send private message Visit poster's website
mosc
Site Admin


Joined: Jan 31, 2003
Posts: 18197
Location: Durham, NC
Audio files: 212
G2 patch files: 60

PostPosted: Sat Mar 21, 2009 5:23 pm    Post subject: Reply with quote  Mark this post and the followings unread

Holy Toledo!

I'm familiar with Verilog. At one time we had a huge computer farm dedicated to Verilog simulations.

Do you work for in IC design, or are you using this methodology just for fun?

Your synths sound great!

Your stuff puts new meaning to the hardware/software and analog/digital discussions. Laughing

Hopefully we won't get into that at this time.



EDIT - no need to answer these questions, I just checked out your Introduce Yourself topic. Sorry I missed it until now. http://electro-music.com/forum/topic-21911.html

What to you use for your nonliner elements? I'm curious, and not patient enough to read all of your docs, which are amazing in themselves.

_________________
--Howard
my music and other stuff
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Sat Mar 21, 2009 6:04 pm    Post subject: Reply with quote  Mark this post and the followings unread

At this point, I'll say "just for fun". But it is a passion for me so if I can be paid, well, so much the better.

And thank you for the kind things you've said about my designs.

It's late today and I've indulged myself in Pisco beverages. Tomorrow I want to hit the bricks and see if I can make this idea work in an FPGA. Rolling Eyes Rolling Eyes Rolling Eyes Cool Cool

Initially, the nonlinearity I will test will be pretty much the allpass system described in the patent. Very interesting because it's totally unknown to me at this time.

_________________
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
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Sun Mar 22, 2009 5:05 pm    Post subject: Reply with quote  Mark this post and the followings unread

As usual, I haven't had luck with this. I have the project modified to include the nonlinear allpass filter, but it doesn't work yet. Not sure why, so I will have to make a model using C which might be easier to troubleshoot. It's acting like the sign of the first summer is not changing so it selects only one of the two a0 parameters supplied. As such, there is no transfer of energy to higher frequencies. I also need to read, yet again, the patent description, especially paying attention to the "termination" of the waveguide system to see if there is an attentuator built in - because my system does not die out over time as a cymbal or gong would.

Also, the diagrams in the patent description show two delay lines used for the waveguide. The model I'm trying to implement is a single delay line waveguide a la the simplified Karplus-Strong model. Not sure if that's an issue because the model I have inverts the sign of the signal at the termination point. This is meant to halve the amount of RAM required to implement a digital waveguide for Karplus-Strong models. The inversion causes the waveform to flip over every half cycle (which I can see on the scope) and that sign inversion should cause the allpass filter to select between the two a0 values I'm supplying.

So I will do the C simulation (which will make a sound file) and see what happens. If that works, it should give me some insight on what the hell is happening here.

_________________
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
View user's profile Send private message Visit poster's website
mosc
Site Admin


Joined: Jan 31, 2003
Posts: 18197
Location: Durham, NC
Audio files: 212
G2 patch files: 60

PostPosted: Mon Mar 23, 2009 7:35 am    Post subject: Reply with quote  Mark this post and the followings unread

Sounds like a typical experimental process. Enjoy. scratch
_________________
--Howard
my music and other stuff
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Mon Mar 23, 2009 4:50 pm    Post subject: Reply with quote  Mark this post and the followings unread

You're sure right about that.

I just got the C version working - and I found the problem and noticed another characteristic that I hadn't considered.

The problem was that I read the filter's block diagram and didn't see a minus sign for the leftmost summer (see diagram). I also hadn't considered that the output amplitude could exceed unity, so I will have to limit the amplitude of the excitation input to prevent the output from a "peaking" condition.

Next is to go back to the Verilog and try it again.

While writing the C version didn't actually fix it - it forced me to look at the block diagram of the filter again which is when I discovered the minus sign I had missed before.


passive_nonlinear_allpass_IIR_filter.gif
 Description:
Block diagram of the passive nonlinear allpass filter
 Filesize:  20.23 KB
 Viewed:  408 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

passive_nonlinear_allpass_IIR_filter.gif



_________________
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
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Thu Mar 26, 2009 10:59 am    Post subject: Reply with quote  Mark this post and the followings unread

The C model so far seems to be doing what it should. The patent's description of the nonlinear passive allpass filter points out that the total energy is preserved even as energy is converted from lower frequencies to higher frequencies. Without any sort of attenuation in the waveguide's loop, the system will resonate (theoretically) forever.

There is also no detail that I can find regarding the "TERM." component which I assume means "terminator". The sound of what I get from the C model is anything but musically useful IMO. Currently, the "TERM." component in my C model is a unity gain sign inverting reflection point. I'm considering replacing that with a single pole lowpass IIR filter to force the system to lose energy as would be the case in any natural vibrating object.

_________________
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
View user's profile Send private message Visit poster's website
mosc
Site Admin


Joined: Jan 31, 2003
Posts: 18197
Location: Durham, NC
Audio files: 212
G2 patch files: 60

PostPosted: Thu Mar 26, 2009 12:56 pm    Post subject: Reply with quote  Mark this post and the followings unread

Maybe you have different experience, but I've found that most patents don't really work. I've met a few patent farmers in my time, if you know what I mean.
_________________
--Howard
my music and other stuff
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Thu Mar 26, 2009 1:20 pm    Post subject: Reply with quote  Mark this post and the followings unread

mosc wrote:
Maybe you have different experience, but I've found that most patents don't really work. I've met a few patent farmers in my time, if you know what I mean.


Actually, this is the first time I'm trying to implement something in a patent, directly from the patent paperwork. I must admit that I naively expected something different. Embarassed Hence my dissappointed remark.

I'm not giving up though. I want to try a simple attenuator in the loop as well as a single pole lowpass. That should change things...

_________________
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
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Thu Mar 26, 2009 2:24 pm    Post subject: Reply with quote  Mark this post and the followings unread

It just occurred to me that my current excite method may be a problem. I'm using a square inpulse - lots of harmonics to start with. Perhaps something more band limited, even an exponentially decaying sinewave at the waveguide frequency. No matter what the input spectrum is, the filter will always try to move energy from lower freqs to higher freqs.

I tried a flat attenuator which mainly just makes the resonance die out.

I know I need to try a lowpass filter, with the nonlinear filter's output energy moving up spectrum, a lowpass will allow the system to have a somewhat controlled loss of energy. The higher the frequency energy generated, the more it will dissapate. I'd have to assume that it might take getting parameters "just right" for this to be useful.

_________________
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
View user's profile Send private message Visit poster's website
blue hell
Site Admin


Joined: Apr 03, 2004
Posts: 24079
Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320

PostPosted: Thu Mar 26, 2009 2:34 pm    Post subject: Reply with quote  Mark this post and the followings unread

Usually it works best to excite with a short impulse, or a noise burst, then the wave guide should be allowed to build its tone from that.
_________________
Jan
also .. could someone please turn down the thermostat a bit.
Posted Image, might have been reduced in size. Click Image to view fullscreen.
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Thu Mar 26, 2009 3:20 pm    Post subject: Reply with quote  Mark this post and the followings unread

Yeah, that's certainly true for a standard K-S string model, but this experiment has a nonlinear allpass filter that causes a redistribution of energy from low frequencies to higher frequencies. My current model doesn't yet have a lowpass filter.

Since the system had only a flat spectrum attentuator, it's spectrum keeps going higher. Surely that's giving me a Nyquist headache at least.

In a K-S system, there's a lowpass filter which causes the resonation to "lock" to a lower harmonic, usually #1 and become more and more sinusoidal at that frequency. That's why I'm going to add a lowpass to this.

_________________
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
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Thu Mar 26, 2009 5:02 pm    Post subject: Reply with quote  Mark this post and the followings unread

After adding the single pole IIR lowpass filter, I get something more expected. It seems to resonate like a string except that there is a more metallic timbre, like a bell and I can hear that the resonator is favoring harmonics of the waveguide. As I open the lowpass filter bandwidth up, a higher harmonic (or likely a set of higher harmonics) is obvious.

I'm attaching a sample wave file from the C model with both filters.



EDIT ADD: I have deleted the old sample because I noticed that it had what I would call alias artifacts especially in the first part of the sample. I believe this is because the excitation impulse was a simple rectangular impulse with no band limiting. Since the nonlinear passive allpass filter will transmute energy from lower frequencies to higher frequencies, it should make aliasing worse, especially if signals start out with harmonics that are already at high frequencies.

The new sample uses a triangular impulse which does not appear to present the alias artifact problem, but it still demonstrates this waveguide system nicely. I hear a strong 3rd harmonic as well as other upper harmonics that seem to resonate much longer than with a plain K-S system.

Ultimately, I think that this method of generating sounds is rather problematic. The idea of using a nonlinear allpass filter to move energy from lower frequencies to higher frequencies seems counterproductive in a system that should have a bandwidth limited at the Nyquist frequency. Once a harmonic or partial has attempted to pass Nyquist, it is automatically wrapped back below Nyquist and usually presents itself as something undesirable. In the case of a nonlinear allpass filter, there is a constant movement of energy upward in frequency, so the chances of attempting to pass Nyquist are great. The bell-like character of this particular system is more apparent as the lowpass filter's bandwidth is extended, but that also allows the nonlinear allpass filter to present frequencies that could attempt to pass Nyquist. The sample presented in the attachment uses a sample rate of 512 Khz and even at such a high rate, alias artifacts can still be apparent. Only very conservative settings of the lowpass IIR filter seem to mitigate that at the expense of the "brightness" desired.

A better approach to enhancing harmonic content might be to use a 2 or 4 pole resonant IIR filter because there is no movement of energy to higher frequencies. The resonant peak provided by the filter can be used to enhance particular harmonics, but it must be tuned correctly to do so.


x6.wav
 Description:
New sample -- The old sample (deleted) used a rectangular impulse to excite the wave guide. This sample was created with the same waveguide system, but is excited by a triangular impulse width = 1/8 waveguide.

Download
 Filename:  x6.wav
 Filesize:  7.82 MB
 Downloaded:  996 Time(s)


_________________
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
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic Moderators: jksuperstar, Scott Stites, Uncle Krunkus
Page 1 of 1 [17 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
 Forum index » DIY Hardware and Software
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use