electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Articles  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links  |  Store
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 » Instruments and Equipment » Reaktor
Violin physical modeling
Post new topic   Reply to topic
Page 1 of 2 [28 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Goto page: 1, 2 Next
Author Message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Mon Sep 01, 2008 7:01 pm    Post subject: Violin physical modeling Reply with quote  Mark this post and the followings unread

Hello,

I've been trying off and on for a few years to figure out how bowed string instruments work, so that I can build a physically modeled violin or cello using waveguides.

I've recently made two changes which have excited me and encouraged me to continue. The first was discovering that I was incorrectly modeling the string's impedance. Fixing that meant that I finally heard the initial scratchy sound that been eluding me. The second was deciding to model the wooden body resonances by using convolved impulses of real instruments. This meant that I no longer had to hand-build complicated filters.

Attached is short mp3 of the results, along with the experimental Reaktor ensemble used to create it. The ensemble is still a work in progress, but is mostly complete. The violin impulse used to model the body is also included, which I loaded into the SIR2 realtime convolution software.


Serenade220.zip
 Description:
PM violin Reaktor ensemble. Also includes an impulse file from a Klotz violin.

Download
 Filename:  Serenade220.zip
 Filesize:  1.83 MB
 Downloaded:  773 Time(s)


Serenade223-1.mp3
 Description:
Sample mp3 file, convolved with the Klotz violin body impulse

Download
 Filename:  Serenade223-1.mp3
 Filesize:  632.01 KB
 Downloaded:  883 Time(s)

Back to top
View user's profile Send private message
Blue Hell
Site Admin


Joined: Apr 03, 2004
Posts: 20274
Location: The Netherlands, Enschede
Audio files: 143
G2 patch files: 318

PostPosted: Mon Sep 08, 2008 1:18 pm    Post subject: Reply with quote  Mark this post and the followings unread

Sounds good Chet!

( too bad you switched to Reaktor Wink )

_________________
Jan
Back to top
View user's profile Send private message Visit poster's website
ian-s



Joined: Apr 01, 2004
Posts: 2564
Location: Auckland, New Zealand
Audio files: 42
G2 patch files: 600

PostPosted: Mon Sep 08, 2008 2:27 pm    Post subject: Reply with quote  Mark this post and the followings unread

Blue Hell wrote:
Sounds good Chet!

( too bad you switched to Reaktor Wink )


2nded

Any chance of a screen shot of the guts?
Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Mon Sep 08, 2008 6:59 pm    Post subject: Reply with quote  Mark this post and the followings unread

Sure. Here's most of the model itself. Very little is actually changed from the G2 patches I posted.

The main changes are:

1. The bow driver shape has hysteresis, which makes for a stickier bow. This wasn't possible on the G2.

2. There's an 'obstruction', which can model a finger lightly held on the string, or the string hitting the fretboard. I did this on the G2, also, on a slap bass patch.

3. The feedback path from the string back to the bow is no longer divided by two. This turned out to be really important, and creates the initial scraping sound that I had been searching for.

4. Torsional waves are modeled. The effect is subtle, but noticeable.

Unfortunately, I hit some architectural limitations when trying to do this on the G2. I ran out of DSP and inter-slot cables, and the shape of the bow driver couldn't be accurately modeled. It was a bummer, because the G2 patches much faster than Reaktor, imo.


BowDriver.JPG
 Description:
 Filesize:  12.91 KB
 Viewed:  259 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

BowDriver.JPG



BowedString.JPG
 Description:
 Filesize:  53.93 KB
 Viewed:  348 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

BowedString.JPG



BowToBridge.JPG
 Description:
 Filesize:  24.68 KB
 Viewed:  248 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

BowToBridge.JPG



ChafeNoise.JPG
 Description:
 Filesize:  21.93 KB
 Viewed:  236 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

ChafeNoise.JPG



FingerPressure.JPG
 Description:
 Filesize:  25.07 KB
 Viewed:  272 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

FingerPressure.JPG


Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Mon Sep 08, 2008 7:02 pm    Post subject: Reply with quote  Mark this post and the followings unread

Some pictures didn't make it.


Friedlander.JPG
 Description:
 Filesize:  27.28 KB
 Viewed:  279 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

Friedlander.JPG



String.JPG
 Description:
 Filesize:  147.67 KB
 Viewed:  372 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

String.JPG


Back to top
View user's profile Send private message
ehdyn



Joined: Sep 13, 2007
Posts: 33
Location: Caerdydd, Palau

PostPosted: Tue May 19, 2009 12:36 am    Post subject: Reply with quote  Mark this post and the followings unread

Wah, that is some sick Core patching. How are you doing this?
How do you model torsional waves in Reaktor?
How...

This is ridiculous - Head asplodes... Shocked
Back to top
View user's profile Send private message
Inventor
Stream Operator


Joined: Oct 13, 2007
Posts: 5978
Location: San Antonio, Tx, USA
Audio files: 258

PostPosted: Tue May 19, 2009 2:05 am    Post subject: Reply with quote  Mark this post and the followings unread

Very nice, great job!
_________________
"Let's make noise for peace." - Kijjaz
Back to top
View user's profile Send private message Send e-mail
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Tue May 19, 2009 4:46 am    Post subject: Reply with quote  Mark this post and the followings unread

ehdyn wrote:
Wah, that is some sick Core patching. How are you doing this?
How do you model torsional waves in Reaktor?
How...

This is ridiculous - Head asplodes... Shocked

Thanks! Yeah, it's grown pretty complicated.

The design for the torsional waves was taken from some publications by Drs. Stefania Serafin and Knut Guettler. Even then, I couldn't get it to work properly until I found some C++ code for Dr. Serafin's 'strad' model and saw what was actually going on. I'll find their links and post them later today.
Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Tue May 19, 2009 5:52 am    Post subject: Reply with quote  Mark this post and the followings unread

Here are some files that describe how torsion is modeled. One is Dr. Stefania Serafin's thesis paper which describes the technique (among other things), and the other two are code samples bowed string waveguide models that include torsion.


string_stuff.zip
 Description:
Bowed string files

Download
 Filename:  string_stuff.zip
 Filesize:  3.77 MB
 Downloaded:  441 Time(s)

Back to top
View user's profile Send private message
ehdyn



Joined: Sep 13, 2007
Posts: 33
Location: Caerdydd, Palau

PostPosted: Wed May 20, 2009 12:40 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hi Chet,
Tried diving into your patch last night but my snorkels not going to cut it. Keeps going on and on.

Do you sketch out your ideas on paper first?
You're so specific about what phenomena are being modelled and how it should be organized.
Not sure how you're translating such clear ideas into DSP with 0 fat.

Thanks very much for the paper,
Chester Wink
Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Thu May 21, 2009 10:01 am    Post subject: Reply with quote  Mark this post and the followings unread

You're welcome for the paper.

I do a lot of sketching on paper. I find I can scribble a lot faster than I can patch. I've been experimenting with that particular model for more than five years. It began as a pretty simple one, and has grown ever more complicated over time.

I still haven't added some of the features Dr. Serafin wrote about such as string stiffness and variable bow width. I've experimented with both, but couldn't get either one to work.
Back to top
View user's profile Send private message
"Minks"



Joined: Aug 05, 2009
Posts: 6
Location: UK

PostPosted: Sun Aug 09, 2009 12:59 pm    Post subject: Reply with quote  Mark this post and the followings unread

That's intense. I wish I had v5 so I could have a go!

I made an implementation of the Karplus-Strong algorithm (for simulating plucked strings by sending an impulse of noise into a delay line of period x).

It worked well enough but it didn't quite sound in tune though. I think the delay line time was quantised to a sample boundary (even though the tooltip claims it interpolates when the time is not an integer multiple of a sample).

_________________
http://www.myspace.com/abattleshipcalledquotminksquot
Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Sun Aug 09, 2009 1:46 pm    Post subject: Reply with quote  Mark this post and the followings unread

"Minks" wrote:
That's intense. I wish I had v5 so I could have a go!

I made an implementation of the Karplus-Strong algorithm (for simulating plucked strings by sending an impulse of noise into a delay line of period x).

It worked well enough but it didn't quite sound in tune though. I think the delay line time was quantised to a sample boundary (even though the tooltip claims it interpolates when the time is not an integer multiple of a sample).

Thanks!

Yeah, waveguide-based models are almost always inherently out of tune. This is typically due to three reasons:

* The delay line isn't interpolated.
* The termination lowpass filter adds phase delay.
* The modules aren't executed in the desired, order, adding a sample here and there.

All of these things can be compensated for by shortening the delay line slightly. The Steampipe ensemble has a single knob that does this, which works pretty well. I tend to be a little more precise and make a separate adjustment at each octave, or even at each 1/2 or 1/4 octave.
Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Sat Sep 12, 2009 3:59 pm    Post subject: Reply with quote  Mark this post and the followings unread

I periodically return to this project. Attached is a physically modeled cello created in Reaktor, along with a short mp3 of it.


Serenade294.zip
 Description:
Reaktor ensemble of a bowed string physical model. Also includes an impulse file that represents the body of a cello. Convolve the snapshot named "Flat Cello" through the impulse file. For best results run at 96 kHz.

Download
 Filename:  Serenade294.zip
 Filesize:  2.13 MB
 Downloaded:  402 Time(s)


Serenade294-1.mp3
 Description:
A short mp3 of the bowed string physical model, using the 'Flat Cello' snapshot and convolving the result with the cello impulse file.

Download
 Filename:  Serenade294-1.mp3
 Filesize:  861.56 KB
 Downloaded:  542 Time(s)

Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Sat Sep 19, 2009 6:23 pm    Post subject: Reply with quote  Mark this post and the followings unread

Here are a set of PM strings performing the fugue at the beginning of G. F. Handel's Messiah.

Being a MIDI sequence I grabbed off the web, it's without expression and robotic. It also has awful trills that I didn't bother to remove.

Attached is the Reaktor ensemble used to create the song, and the impulses used to model the wooden body resonances.


HandelQuintet.mp3
 Description:
String quintet fugue from G. F. Handel's Messiah, performed by physically modeled strings.

Download
 Filename:  HandelQuintet.mp3
 Filesize:  4.75 MB
 Downloaded:  617 Time(s)


Serenade298.zip
 Description:
Reaktor ensemble for physically modeled strings, along with wooden body responses for violin, viola, and cello.

Download
 Filename:  Serenade298.zip
 Filesize:  2 MB
 Downloaded:  412 Time(s)

Back to top
View user's profile Send private message
martin1981



Joined: Nov 14, 2008
Posts: 11
Location: UK

PostPosted: Mon Dec 28, 2009 1:04 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hello,
I've only just seen these examples, I'm really impressed with how you've managed to capture the woody resonance of the violin and cello through a synth!

I'm working on getting a good tone out of my electric cello, and have spent a long time trying out different mics/positions/preamps etc. I'm really happy with the tone, however as it's basically a "plank of wood with strings", what I am missing is exactly the woody resonance that you seem to have captured perfectly here.

I'm sure this is very basic indeed, but I have literally only just installed Reaktor and have never used it before in my life. So please bear with me for the moment! I understand your ensemble is mainly to be used as a synth. However what I want to do is use just the convolution effect of the body resonance on electric cello recordings I already have. So use only that part of your ensemble as a processor. Is this easy to do?

I don't really know what I'm doing at all at the moment, currently I've loaded up the ensemble from within Logic, and inserted it on my track. However I assume this is not working because it is set up as a synth. I guess I may need to use Reaktor in standalone instead, and tweak the ensemble? Sorry, I'm completely new to this! I will probably work it out eventually, as I plan to spend the next few days mucking around with Reaktor, but any advice you could give me would be great. Thanks!
Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Mon Dec 28, 2009 8:33 pm    Post subject: Reply with quote  Mark this post and the followings unread

Martin, what you need isn’t Reaktor, but convolution software.

While Serenade’s string is created in Reaktor, the sound it makes is somewhat like your electric cello: it contains no resonances. Passing the signal through a special filter called a convolver creates those resonances. I use a separate real-time convolver called SIR2, because Reaktor doesn’t include a convolver.

Convolvers are typically used to add reverb to tracks. Suppose you want your track to sound like it was played in Carnegie Hall. What you can do is go there, record the sound of a balloon popping in the hall, load that sound into the convolver, and then play your track through the convolver. The track will then sound like it’s being played in the hall. It sounds weird, but it works.

I did the same thing with the Serenade tracks. I have the sound of a cello’s bridge being struck by a small object. I then loaded that sound into the convolver, and when I played the synthetic sound through it, it sounded like the string was being played through the body of the cello.

What you need is:
1. Real-time convolution software. I use SIR2, which can be found at http://www.knufinke.de/sir/sir2.html It’s not free, but a free demo can be downloaded so you can experiment. The demo adds annoying "dings".
2. The sound of a cello’s bridge being struck. The serenade298.zip file includes one named CALCANI_7k_cello.wav.
3. A VST host, because SIR2 is a VST plugin only.

Then do this:
1. Connect up your VST software and verify that you can play your cello through your computer.
2. Load SIR2 into your VST host.
3. Load the impulse file into SIR2.
4. Play. Begin with 100% wet.

You’ll probably want to mess with SIR2's multi-band equalizer to tailor the sound.

Some added bonuses are that you may be able to make your instrument sound violin-like or viola-like by using the violin and viola impulses in the zip file. Also, SIR2 lets you transpose your impulse file up or down, making your “cello body” smaller or larger.

This is all pretty technical, so feel free to pepper me with questions. I find this stuff fun.

EDIT: I just had an idea. If you post an audio track of your cello, I'll convolve it and send it back for you to listen to. Also include a couple of sustained notes with vibrato at various pitches so I can try to equalize the output to some cello reference samples I have. Give me a day or so for turnaround.
Back to top
View user's profile Send private message
martin1981



Joined: Nov 14, 2008
Posts: 11
Location: UK

PostPosted: Tue Dec 29, 2009 12:38 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hi there, thanks for the quick and detailed response, you are amazing! Thanks for taking such an interest in what I'm trying to do.

It probably didn't sound like it from my previous post, but I'm familiar with the concept of convolution, but have never used any standalone software to perform it (only convolution reverb plugins, I used Soundhack before but a long time ago). I assumed the convolution was part of the Reaktor ensemble. Can Reaktor not do convolution at all then? That surprises me a little bit... I guess it's just easier with standalone software?

Your suggestion sounds great, if you're sure you can take the time and are interested enough to do this. I haven't had a chance to do any recording today, but will do tomorrow. Will prob PM you rather than put each stage of the process on the forum, then maybe post final results or whatever, we'll see. Thanks again!
Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Tue Dec 29, 2009 5:23 pm    Post subject: Reply with quote  Mark this post and the followings unread

Reaktor can't do convolution at all. Zip, zero, nada. There are a lot of folks on the NI forum asking that the next version of Reaktor include convolution. My fingers are crossed. If it does, I'll clean up Serenade and post it in the Reaktor User Library.

Regarding convolution and your cello, I have a lot of interest in this. I'd like to see how successfully convolution can turn an electric instrument into an "acoustic" one. It'll be fun.

I'd like to ask for the following:

1. Some sustained tones with vibrato, about 4 or 5 seconds long. The lowest one being a low C# or D, and then the higher ones spaced apart in pitch by about a 4th or 5th. I'll use these to help me EQ the impulse until the tones resemble some cello samples I have. If you include higher pitches I'll experiment with the viola and violin impulses, too.

2. A few tunes. I'll play them through the EQ'd convolver and we'll find out how convincing the results are.
Back to top
View user's profile Send private message
BobTheDog



Joined: Feb 28, 2005
Posts: 3830
Location: England
Audio files: 32
G2 patch files: 15

PostPosted: Tue Jan 05, 2010 8:41 am    Post subject: Reply with quote  Mark this post and the followings unread

Hi Chet,

is convolution not possible using Core then?

Cheers

Andy
Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Tue Jan 05, 2010 10:20 am    Post subject: Reply with quote  Mark this post and the followings unread

I won't go as far as say it's not possible. But it's not available. There are some FFT tools available for those who know how to use them, but I don't think they support the impulse lengths needed to model musical instrument bodies.
Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Mon Jan 25, 2010 8:37 pm    Post subject: Reply with quote  Mark this post and the followings unread

Here’s a Reaktor physical modeling ensemble that does gesture-controlled synthesis of a violin. It is “bowed” by moving the pitch wheel back and forth.

The physical model requires two variables: bow velocity, which is the speed that the bow is drawn across a string, and bow force, which is the contact pressure the bow places on the string as it is drawn.

As a violin is played by pressing the bow onto a string and moving it back and forth, the ensemble is played by pressing a key and moving the pitch wheel back and forth.

Press a key to make contact between the bow and the string. Then move the pitch wheel back and forth to simulate bow velocity. Upwards is positive velocity while downwards is negative velocity. Lift the key while the wheel is off-center to make the string ring.

If a pitch wheel isn’t available, the on-screen slider can be “bowed” by dragging it with the mouse.

The output of the ensemble must be convolved with a wooden body impulse. A violin impulse is included in the zip file. Use real-time convolution software such as SIR2 and set the output to 100% wet.

For proper tuning and high-quality sound, a sample rate of 96k must be used.


Serenade307.JPG
 Description:
Picture of gesture-controlled violin synthesizer.
 Filesize:  106.9 KB
 Viewed:  252 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

Serenade307.JPG



Serenade318.zip
 Description:
Reaktor ensemble that is a gesture-controlled physical model of a violin.

Download
 Filename:  Serenade318.zip
 Filesize:  2.84 MB
 Downloaded:  513 Time(s)

Back to top
View user's profile Send private message
BobTheDog



Joined: Feb 28, 2005
Posts: 3830
Location: England
Audio files: 32
G2 patch files: 15

PostPosted: Tue Jan 26, 2010 1:09 am    Post subject: Reply with quote  Mark this post and the followings unread

Nice one Chet, looking forward to having a play....

Andy
Back to top
View user's profile Send private message
Chet



Joined: Nov 19, 2004
Posts: 230
Location: Lititz,PA,USA
Audio files: 6
G2 patch files: 35

PostPosted: Tue Jan 18, 2011 11:01 am    Post subject: Reply with quote  Mark this post and the followings unread

Here's an updated ensemble that synthesizes a violin or cello. It's a physical model that's controlled using gesture.

As a violin is played by pressing the bow against the string and then moving the bow back and forth, Serenade is played by pressing down a key and moving the bow fader control or modulation wheel back and forth.

The zip file includes the ensemble and two impulse files (a violin and a cello) that the output must be convolved with (100% wet).

Also attached is an mp3 file of a short violin and cello duet, played with the ensemble.


Serenade427.jpg
 Description:
 Filesize:  180.72 KB
 Viewed:  183 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

Serenade427.jpg



BachMinuetIII.mp3
 Description:
Physically modeled violin and cello, playing a Bach minuet.

Download
 Filename:  BachMinuetIII.mp3
 Filesize:  1.89 MB
 Downloaded:  475 Time(s)


Serenade427.zip
 Description:
Physically modeled gesture-controlled violin and cello. Accompanied by two impulse files for convolving with.

Download
 Filename:  Serenade427.zip
 Filesize:  1.45 MB
 Downloaded:  337 Time(s)

Back to top
View user's profile Send private message
Aum Generator



Joined: Aug 15, 2011
Posts: 11
Location: Bratislava

PostPosted: Mon Aug 29, 2011 7:31 am    Post subject: Reply with quote  Mark this post and the followings unread

wow, it sounds really good
thanks for sharing!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic
Page 1 of 2 [28 Posts]
View unread posts
View new posts in the last week
Goto page: 1, 2 Next
Mark the topic unread :: View previous topic :: View next topic
 Forum index » Instruments and Equipment » Reaktor
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
mps board

Please support our site. If you click through and buy from
our affiliate partners, we earn a small commission.


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