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 
go to the radio page Live at electro-music.com radio 1 Please visit the chat
poster
 Forum index » Clavia Nord Modular » G2 Patches - Experimental
GR300 style guitar-synth experiment (monophonic)
Post new topic   Reply to topic Moderators: Nord Modular Editors
Page 1 of 1 [22 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
Tim Kleinert



Joined: Mar 12, 2004
Posts: 1148
Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236

PostPosted: Sat Feb 21, 2009 4:03 pm    Post subject: GR300 style guitar-synth experiment (monophonic)
Subject description: guitarists, please help
Reply with quote  Mark this post and the followings unread

hi,

Being the self-proclaimed biggest Pat Metheny fan in the universe Laughing, I was thinking today about how the old GR300 might work. It is an old analogue design revered to this day for it's still unmatched pitch tracking. It cannot be that complex, as there are limits as to what is possible in analogue circuitry.

My hunch is that it is based on a slowly charging capacitor which is promptly discharged by zero crossing triggers from the input signal. This yields a ramp waveform which is in perfect lock step with the input signal (although the output level will vary with pitch, which might be compensated for, like in DCO circuits). No latency whatsoever.

I built the equivalent of this on the G2, and added LP filter and EQ to make it sound somewhat like Pat's trademark GR300 sound. Unfortunately, I'm not a guitarist. Meaning, it works perfectly when I sing into it. Laughing Chaotic transients are simply perfectly reproduced, there are no strange oscillator "blips" or quacks, nothing.

However, I'd be grateful for feedback from guitarists (or other instrumentalists) here that use the G2 to process their instrument, in order to find out if it actually works.

Unfortunately, it's only monophonic. No such thing as polyphonic pitch detection in the time domain -and no, FFT is definetely NOT possible in the G2! Laughing
Afaik, the GR300 guitar had a pickup for every string. Which such a device and the 4 G2 audio inputs, one could at least build something for 4 strings...

Try it out and let me know if it works.

thanks,
tim

Edit: I just read up on the G300. Seems like I was more or less spot on, even the "chopper gate" gain compensation (simply done with a clipper on the G2). The only things lacking are the adaptive input BPF filters and the mysterious "squelcher" circuit.


G300PatStyle_TK.pch2
 Description:
monophonic GR300 style guitar synth experiment

Download
 Filename:  G300PatStyle_TK.pch2
 Filesize:  1.74 KB
 Downloaded:  1844 Time(s)

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



Joined: Jun 04, 2004
Posts: 875
Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49

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

Hey Tim, you're on a roll!! I would love to try this one out with both my guitar and my bass, to see whether this one gets rid of the tracking quirks of the pitch detection modules...

Unfortunately my kids are ill so I'm unsure whether I can escape to my attic ....

_________________
Spinning at ~0.0000115740740741 Hz
Back to top
View user's profile Send private message
Tim Kleinert



Joined: Mar 12, 2004
Posts: 1148
Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236

PostPosted: Sun Feb 22, 2009 2:15 pm    Post subject: Reply with quote  Mark this post and the followings unread

Sorry to hear about your kids. Hope they get well asap.

Yeah, I'm really curious if this works at all with stringed instruments. Who knows, maybe it sucks. Laughing

What makes the GR300 work so well is that it doesn't follow the "guitar drives pitch detector, which drives sound generator"-paradigm, with all the problems which come with that. In fact, It actually doesn't have a true pitch detector in it. It's more like an "incomplete sawtooth VCO" without an internal lin-expo-converter and comparator/reset -but rather has a constant voltage charge rising flank which is reset simply by zero crossings from the inputted audio. The resulting differences in oscillation volume at different pitch ranges (because of the constant charge) are simply dealt with by clipping them away. Hence the typical GR300 assymetrical "clipped sawtooth" waveshape, which gets more extreme the lower the pitch is. So simple, so great. That's why the GR300 basically just has "one" sound.

Another benefit is that very high frequency zero crossings caused by noise or chaotic transitions are, if not prevented beforehand by the filter at the input section, at least very low in level. So you don't hear ugly high frequency "blips" like when going the normal way with pitch detector->oscillator.

As I say, it works like a charm when I sing into it. But with guitar it might be a different thing. The GR300 had some additional input filtering in order to further prevent artefacts (called "adaptive bandpass filters"), those aren't implemented yet (as I haven't understood them yet Laughing).

Maybe we can work this out together.

best,
tim

(Oh, and btw, I'm not "on a roll", but just on a higher dose of lamotrigine. Laughing makes me giddy, patching is a good remedy.)
Back to top
View user's profile Send private message
Fozzie



Joined: Jun 04, 2004
Posts: 875
Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49

PostPosted: Sun Feb 22, 2009 3:38 pm    Post subject: Reply with quote  Mark this post and the followings unread

Yeah, nothing serious with the kids, just a nasty stomach flu but it keeps you busy.

Anyway, I just had a chance to do some very quick testing with my strat. It tracks very well, especially in the high register where the pitch tracking approach is not good due to low sustain and hence much garbage on long high notes.
There is some stuff going on though that would be nice to get rid of. Some kind of octave-like switching happens occasionally. Setting the value of the feedback mixer (steepness of the ramp) affects this, as does some more aggressive hp filtering before the input.

Should go now, I hear noises below Rolling Eyes

Hope to record some quick samples soon.

_________________
Spinning at ~0.0000115740740741 Hz
Back to top
View user's profile Send private message
Tim Kleinert



Joined: Mar 12, 2004
Posts: 1148
Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236

PostPosted: Sun Feb 22, 2009 3:55 pm    Post subject: Reply with quote  Mark this post and the followings unread

Fozzie wrote:

There is some stuff going on though that would be nice to get rid of. Some kind of octave-like switching happens occasionally. Setting the value of the feedback mixer (steepness of the ramp) affects this, as does some more aggressive hp filtering before the input.


Does hp filtering make it better or worse?

which feedback mixer do you mean? the osc core or the one in the input section?

the one in the input section, together with the clipper, is there to make a square wave out of the input oscillation (the GR does this too). The lpf before should make sure that the fundamental is the loudest. octave switching means that the circuit latches on to the first harmonic as it is loud enough to create an extra zero crossing. so, perhaps lowering the lowpass filter in the input section might help.


anyway, good news that it works at all Laughing hey, we might even get it into a reasonable shape. because, once the core works, it is possible to add further waveshaping stuff, make a nice patch. Smile

best,
tim
Back to top
View user's profile Send private message
Fozzie



Joined: Jun 04, 2004
Posts: 875
Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49

PostPosted: Mon Feb 23, 2009 5:01 am    Post subject: Reply with quote  Mark this post and the followings unread

I think the filtering step is crucial here to improve the results. I have scanned through the service manual quickly, and it is described as being very fundamental (pun intended) in the zero crossing analysis circuit to get rid of dominant overtones.

Since the gr300 uses a hexaphonic pickup - one per string - the range of notes is much more limited per pickup. Therefore, better filtering can be applied (defaulting around the open string fundamental). The adaptive filtering is not entirely clear to me either, but it may be possible to do some kind of multi-band analysis on the entire 4-octave range of a guitar. I'll think about it some more, however, the central issue of telling a fundamental from a strong overtone is difficult to solve in instruments with strong overtones (such as guitars).

_________________
Spinning at ~0.0000115740740741 Hz
Back to top
View user's profile Send private message
jksuperstar



Joined: Aug 20, 2004
Posts: 2503
Location: Denver
Audio files: 1
G2 patch files: 18

PostPosted: Mon Feb 23, 2009 3:30 pm    Post subject: Reply with quote  Mark this post and the followings unread

Maybe instead of zero-crossing detection, a differential of the input signal would result in a better detection of the 180deg mark, or 90deg off phase at the differential's zero crossing. This relieves the need for such heavy & accurate filtering.

I've got a bass, and with a low B string (~30Hz), low-latency and accurate pitch tracking is so far non-existent.
Back to top
View user's profile Send private message Visit poster's website
Fozzie



Joined: Jun 04, 2004
Posts: 875
Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49

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

jksuperstar wrote:
Maybe instead of zero-crossing detection, a differential of the input signal would result in a better detection of the 180deg mark, or 90deg off phase at the differential's zero crossing. This relieves the need for such heavy & accurate filtering.

....


Ok, interesting, although I have no idea how this should be implemented Embarassed . I have made an incredibly inefficient patch to demonstrate my idea of multiband filtering (using 1/2 octave-apart filters set up for guitar use), using the lowest band that gets .25 of the original amplitude through (based on some online document from the early 90's that I can't seem to find again). The whole thing is theory right now, I haven't had time to test this yet. What do y'all think?


pitchdetectMultiband.pch2
 Description:
Idea (untested!) for 'adaptive filtering' of an input signal to extract the fundamental for pitch/zero crossing detection.

Download
 Filename:  pitchdetectMultiband.pch2
 Filesize:  2.96 KB
 Downloaded:  1506 Time(s)


_________________
Spinning at ~0.0000115740740741 Hz
Back to top
View user's profile Send private message
Tim Kleinert



Joined: Mar 12, 2004
Posts: 1148
Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236

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

Cannot test your patch right now, Paul, but what I once worked on was a near-instantaneous pitch detection process called "zero crossing max gradient detection", which sort of similar to what jksuperstar is suggesting.

This concept is based on the notion that even with multiple zero crossings, the fundamental one will have the maximum gradient (the steepest slope) at zero crossing. So, one has to measure the gradients at their zero crossing points (very easy: sample(z) - sample(z-1))and compare those to find the highest one, which will thus define the period.

I had a go at this once, have the patch lying around somewhere. Never finished it. Could dig it out though, when I have time.

All this sort of drifts away from my original GR300 intention, but who cares... Laughing

best,
t
Back to top
View user's profile Send private message
Fozzie



Joined: Jun 04, 2004
Posts: 875
Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49

PostPosted: Tue Feb 24, 2009 4:59 am    Post subject: Reply with quote  Mark this post and the followings unread

tim wrote:
All this sort of drifts away from my original GR300 intention, but who cares... Laughing

best,
t


Yeah, I know, your patch is very neat and efficient. However, according to the service manual of the GR300, filtering also played a major role in it. So making an elaborate filtering scheme and including this upstream of your GR300 osc core may enhance GR300-like operation with a guitar. I'll try to test tonight.

_________________
Spinning at ~0.0000115740740741 Hz
Back to top
View user's profile Send private message
jksuperstar



Joined: Aug 20, 2004
Posts: 2503
Location: Denver
Audio files: 1
G2 patch files: 18

PostPosted: Tue Feb 24, 2009 10:35 am    Post subject: Reply with quote  Mark this post and the followings unread

tim wrote:
Cannot test your patch right now, Paul, but what I once worked on was a near-instantaneous pitch detection process called "zero crossing max gradient detection", which sort of similar to what jksuperstar is suggesting.

This concept is based on the notion that even with multiple zero crossings, the fundamental one will have the maximum gradient (the steepest slope) at zero crossing. So, one has to measure the gradients at their zero crossing points (very easy: sample(z) - sample(z-1))and compare those to find the highest one, which will thus define the period.

I had a go at this once, have the patch lying around somewhere. Never finished it. Could dig it out though, when I have time.

All this sort of drifts away from my original GR300 intention, but who cares... Laughing

best,
t



That's interesting...I guess there should be plenty of oversampling & bit depth to detect slight differences in the slope of zero crossing pretty accurately...I like the idea, and curious if it works better than zero-detection or simple slope analysis.

I think Fozzie has a good point, that we're just creating an accurate zero-detector in the digital world. So, it's still very relevant to the sound of the gr-300.

In the DIY forum, someone was building a pitch->synth module, very very similar to this. Typical saw waveform, hard-sync'd to the input signal (has the zero-detect built in), then through a compressor, rather than a harsh clipper (removed the playing dynamics, but does a better job of not allowing low notes to be louder). This was then sent through an envelop detector -> VCA, to get the dynamics back.

Anyway, didn't get to play with this yet, hopefully soon.
Back to top
View user's profile Send private message Visit poster's website
Tim Kleinert



Joined: Mar 12, 2004
Posts: 1148
Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236

PostPosted: Wed Feb 25, 2009 4:41 am    Post subject: Reply with quote  Mark this post and the followings unread

jksuperstar wrote:

That's interesting...I guess there should be plenty of oversampling & bit depth to detect slight differences in the slope of zero crossing pretty accurately...I like the idea, and curious if it works better than zero-detection or simple slope analysis.


If you are a member of PatentStorm (it's free), you can read up on this here:
http://www.patentstorm.us/patents/pdfs/patent_id/5780759.html

I tried to build it a few months ago, as it can be made on the G2 with counter circuits etc. -but it never got finished (read: I got fed up with calibrating the finicky details Laughing). As far as I understand though, a sample rate of 96kHz should be perfectly sufficient. I might make another shot at it as time permits.


jksuperstar wrote:
In the DIY forum, someone was building a pitch->synth module, very very similar to this. Typical saw waveform, hard-sync'd to the input signal (has the zero-detect built in), then through a compressor, rather than a harsh clipper (removed the playing dynamics, but does a better job of not allowing low notes to be louder). This was then sent through an envelop detector -> VCA, to get the dynamics back.


Yes, I thought of that too.

Don't have time to pursue this further at the moment. But I'll get back to it later.

best,
t
Back to top
View user's profile Send private message
Fozzie



Joined: Jun 04, 2004
Posts: 875
Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49

PostPosted: Fri Feb 27, 2009 9:29 am    Post subject: Reply with quote  Mark this post and the followings unread

Well, finally had some time to test further (no recordings still, though), but my filtering scheme can be binned; it doesn't improve things much but has it's own switching problems and artefacts.
Biggest improvement / best settings so far for me have been to set the lowpass very low with not so steep curve (6-12db) AND using the neck pickup (definately not the bridge, as it has most harmonics).

_________________
Spinning at ~0.0000115740740741 Hz
Back to top
View user's profile Send private message
Tim Kleinert



Joined: Mar 12, 2004
Posts: 1148
Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236

PostPosted: Fri Feb 27, 2009 1:11 pm    Post subject: Reply with quote  Mark this post and the followings unread

My hunch is that the hexa-pickup is also a big part in the equation.

Well, however -as the title states: it is an experiment. Wink

I've done some more research. It seems that the AXON AX-100 is based on this zero-crossing-maximum-gradient-detection algorithm. So it indeed seems to be a workable approach for plucked strings.

I did some detective work with the G2 pitch tracker module, feeding it with triangle and saw oscillators running through a wavewrapper. You can crank the wrapper up quite a bit (introducing fierce harmonics) and it still tracks. At some point, it starts to warble periodically, but I wonder if this is not due to aliasing (which also is periodical).

Another interesting thing: if you patch a red signal into it (making it clock at audiorate), the DSP usage jumps up a whole 10% Shocked compared to controlrate. By duplicating it as many times as possible, I found out that it maxes out DSP mem% with 32 modules. This cannot be due to the zeropage issue (it's only 96 outputs), so the module obviously uses some DSP zeropage memory for something. For AMDF pitch detection, a whole delay line would be necessary -but it obviously uses no delay memory. (You can max out delay usage with a delay module, and still have many pitch trackers in the patch). This leaves me a bit wondering about the workings of this module.

Edit: The Help-Section states "The Pitchtrack module uses an advanced tracking method that is a good trade off between speed, noise immunity and accuracy." However, I tried feeding it with a mix of an saw oscillator and a noise osc. Result: the control output starts to warble even with very small noise amounts Shocked -so "noise immunity" is a bit of an exaggeration Laughing (like some other things from Clavia, as we had to painfully find out Wink ). No wonder it doesn't perform too well with guitar (or anything else for that matter).
Back to top
View user's profile Send private message
3phase



Joined: Jul 27, 2004
Posts: 1183
Location: Berlin
Audio files: 13
G2 patch files: 141

PostPosted: Wed May 20, 2009 11:21 am    Post subject: Reply with quote  Mark this post and the followings unread

do you guys have guitars with hexaphonic pick ups?
just currious because i just got my hands on one..and had to realize the the g2 has 2 inputs missing.. Wink
Back to top
View user's profile Send private message Send e-mail Visit poster's website
BobTheDog



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

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

Also two slots missing for 6 channel midi guitar, its a bugger!


I missed this thread before so some interesting patches to look at!
Back to top
View user's profile Send private message
jksuperstar



Joined: Aug 20, 2004
Posts: 2503
Location: Denver
Audio files: 1
G2 patch files: 18

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

I don't mind working within 4 slots, as I can use the output from the Status module, expand the voice request count to 4 (or more), and use the Voice Number output to select one of the four inputs. This allows me to create 1 patch, and even more - control one patch, as an entity, rather than 4x of everything.
Back to top
View user's profile Send private message Visit poster's website
BobTheDog



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

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

How do you deal with 6 channel pitchbend doing this?
Back to top
View user's profile Send private message
jksuperstar



Joined: Aug 20, 2004
Posts: 2503
Location: Denver
Audio files: 1
G2 patch files: 18

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

2 things:
1.) I play bass, so 4 strings (out of the 5 I have) are the only ones used.
2.) I don't use a midi converter, so there aren't any channels of pitch bend to deal with.

However, if your using a converter, can your device send out CC instead of pitch bend? 128/2 semi tones = 2cents of accuracy, which is probably inaudible for playing, especially once it's in a mix. (I picked two semitones, because I'm lucky to bend a bass note 1 semitone). If so, then you can use a MIDI CC IN module tuned to a specific channel for each voice.
Back to top
View user's profile Send private message Visit poster's website
BobTheDog



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

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

Ah I see, the G2 is perfect for the bass player Smile

You tend to have the range set to 24 semitones for bending as pitchbend is also used for sliding, this then gives you an octave slide each way. Also the midi converters I have tried (roland and axon) only send pitchbend messages.

Cheers

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



Joined: Apr 28, 2009
Posts: 111
Location: France
G2 patch files: 16

PostPosted: Sat Dec 05, 2009 7:49 am    Post subject: Reply with quote  Mark this post and the followings unread

Hi all.

I like this patch and I'd like to build it under NM G1 for my micro modular, but I have no sound. I'd don't know how to emulate the G2 flip-flop module and I think the problem come from this.

Any help appreciated. here is the NM patch.

Sorry for my english.

(also a big thanks to Tim, i'm a new g2 user and I really like the patch you share).


gr300NM1.pch
 Description:

Download
 Filename:  gr300NM1.pch
 Filesize:  1.76 KB
 Downloaded:  408 Time(s)


Last edited by Moody33 on Sat Dec 05, 2009 7:52 am; edited 1 time in total
Back to top
View user's profile Send private message
Moody33



Joined: Apr 28, 2009
Posts: 111
Location: France
G2 patch files: 16

PostPosted: Sat Dec 05, 2009 7:49 am    Post subject: Reply with quote  Mark this post and the followings unread

And the building block (.jpg).


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

gr300.jpg


Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic Moderators: Nord Modular Editors
Page 1 of 1 [22 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
 Forum index » Clavia Nord Modular » G2 Patches - Experimental
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