Harmoniser with fiddle~

Mar 21, 2008 at 3:56pm

Harmoniser with fiddle~

hello.

patch really is my name, it’s not a way of being relevant to the software. i am doing a Max/msp module as part of my MA in Audio Technology at Thames Valley University.

i am a complete Max/msp novice and the project i am embarking on is quite intimidating but nevertheless..

i am trying to make an intelligent harmoniser for my saxophone. i have been told i need to use fiddle~ as it can output MIDI note numbers aswell as frequency numbers.

the “intelligent” bit of the harmoniser (in my head at least) was to make it respond to amplitude changes aswell as frequency changes on the input stage to change which harmonies get played automatically.

i also wanted to incorporate some form of buffer allowing me to record a phrase into it which can again be triggered by pitch or amplitude.

the annoying thing right now is, i am currently using the 30 day trial version, mainly so i can look up object help folders and also read some of the tutorial stuff. but in my version it appears that fiddle~ doesnt seem to exist..

i know FFT is involved in how this sorta thing works.. but really i am just guessing at the moment.

any one got any tips/sources of info?

cheers

patch

#36451
Mar 21, 2008 at 4:36pm

Quote: patchmorrison@gmail.com wrote on Fri, 21 March 2008 08:56
—————————————————-
>
> patch really is my name, it’s not a way of being relevant to the software.

*lol* Thanks for clearing that up.

> the annoying thing right now is, i am currently using the 30 day trial version, mainly so i can look up object help folders and also read some of the tutorial stuff. but in my version it appears that fiddle~ doesnt seem to exist..

Yes, fiddle~ is someone else’s add-on object. Lots of people make these. To find these objects, the best resrouce is http://maxobjects.com

Go to maxobjects.com, search for fiddle~, follow the links to the website and download it. If it doesn’t come with installation instructions, you usually just need to copy the .mxo file(s) (on windows I think it’s .mxe?) to somewhere on Max’s search path. See the Options -> File Preferences menu in Max to setup the search path.

It shouldn’t matter that you are on the trial version. It’s just like the full version until it expires.

#125110
Mar 21, 2008 at 5:06pm

On Mar 21, 2008, at 8:56 AM, Patch Morrison wrote:

> in my version it appears that fiddle~ doesnt seem to exist..

http://www.maxobjects.com

Chris Muir
cbm@well.com

http://www.xfade.com

#125111
Mar 21, 2008 at 7:11pm

Try pitch~ as well.
http://web.media.mit.edu/~tristan/maxmsp.html
It’s based on fiddle~. I don’t know what’s actually different, but it seems to work slightly better with the sounds I’m currently feeding it, and hits 1-2% lower on the CPU status (which may or may not be trivial, depending on your computer).

#125112
Mar 22, 2008 at 2:41am

Or Analyzer~, which incorporates pitch~ bark~ and a couple of other things… might be helpful.

#125113
Apr 21, 2008 at 11:56pm

so apparently something called Gizmo is relevant to this. i have absolutely no idea what it is or what it does..

i am currently in the process of buying the 9 month license for max but the order is still in the pending stage so i cant quickly look at any help files..

any kind words on the matter?

#125114
Apr 22, 2008 at 12:12am

Quote: patchmorrison@gmail.com wrote on Mon, 21 April 2008 19:56
—————————————————-
> so apparently something called Gizmo is relevant to this. i have absolutely no idea what it is or what it does..
>
> i am currently in the process of buying the 9 month license for max but the order is still in the pending stage so i cant quickly look at any help files..
>
> any kind words on the matter?
—————————————————-

[gizmo~] applies a frequency shift to frequency-domain data obtained from a Fast Fourier Transform (FFT). You will want to check out MSP Tutorials 25 and 26 to learn how to use the [pfft~] object to load a special pfft~ subpatch containing [gizmo~] that you would create.

Using [gizmo~] to pitch shift is one of the easier FFT moves you can do in Max/MSP, but if you want an even easier pitch shifter to use, check out [freqshift~] (a single sideband ring modulator). Both [freqshift~] and [gizmo~] will throw in some artifacts, so you will probably want to play around with both to see which sounds better for your application.

I guess there is also a technique for pitch shifting by crossfading between two variable length delay lines, but it has never been important enough (yet) for me to figure out how to make one of those…maybe soon. I think Miller Pucket’s book has a chapter on this technique.

#125115
Apr 22, 2008 at 12:24am

#125116
Apr 22, 2008 at 12:51am

Quote: Emmanuel Jourdan wrote on Mon, 21 April 2008 20:24
—————————————————-

> There’s an abstraction in the examples folder called transposer which
> uses this technique (tapin~/tapout~ with something to changes the
> position continuously).

Wow, thanks EJ! I first read about that technique a few years ago when I was teaching myself Pd and since then has been on my to-do list as far as things to implement. Once again, my “figure it out yourself” attitude I got from Pd made me look over some handy info in the examples folder. I guess once I finish this current piece (Hopefully tomorrow) I will go through those again more thoroughly and make sure there isn’t anything else cool in there I’m missing.

#125117
Apr 22, 2008 at 2:19am

#125118
Apr 22, 2008 at 2:31am

#125119
Apr 22, 2008 at 3:03am

On 22 avr. 08, at 04:31, Roth Michaels wrote:

> Is that [freqbinshift~] an external? That’s a new one to me, but
> the name makes it sound like it would handle some of the tricks I
> use buffers and delays for and could make some of my pfft~ patches
> simpler.

there’s an external called fbinshift~. It’s equivalent to the
freqshift~ object except that fbinshit~ works in the frequency domain.

ej

#125120
Apr 22, 2008 at 3:17am

> there’s an external called fbinshift~. It’s equivalent to the
> freqshift~ object except that fbinshit~ works in the frequency domain.

Merci! I was actually on my way to the forum to post that I figured this out. Thinking about it before, I couldn’t imagine how such an object couldn’t exist so I looked at the [gizmo~] help file for the see what other objects it linked to and there it was, [fbinshift~]. I guess the help filed looked familiar from when I first looked at FFT but I guess I forgot about it by the time I actually got into using FFT in my patches.

so does [fbinshift~] interpolate as necessary if the number of bins to shift isn’t an integer? Seems like a WAY more elegant solution than some of the silly stuff I was doing with buffers and delays inside of [pfft~].

#125121
Apr 22, 2008 at 3:32am

I don’t believe you.

Enjoy your real name.

bt

On Mar 21, 2008, at 8:56 AM, Patch Morrison wrote:

> patch really is my name

barry threw
Media Art and Technology

San Francisco, CA
Work: 857-544-3967
Email: bthrew (at) gmail (dot) com
Web: http://www.barrythrew.com

#125122
Apr 22, 2008 at 4:06am

man, barry sure did threw down!

On Apr 21, 2008, at 11:32 PM, barry threw wrote:

> I don’t believe you.
>
> Enjoy your real name.
>
> bt
>
> On Mar 21, 2008, at 8:56 AM, Patch Morrison wrote:
>
>> patch really is my name
>
> barry threw
> Media Art and Technology
>
> San Francisco, CA
> Work: 857-544-3967
> Email: bthrew (at) gmail (dot) com
> Web: http://www.barrythrew.com
>

#125123
Apr 22, 2008 at 10:45am

>> Is that [freqbinshift~] an external? That’s a new one to me, but
>> the name makes it sound like it would handle some of the tricks I
>> use buffers and delays for and could make some of my pfft~ patches
>> simpler.
>
>
> there’s an external called fbinshift~. It’s equivalent to the
> freqshift~ object except that fbinshit~ works in the frequency domain.
>
> ej

Yes, that’s what I meant.
fbinshift~
J-F.

#125124
Apr 22, 2008 at 2:12pm

i’ve been using fiddle~ to output a pitch in midi note form, and i’ve found this more accurate than analyzer~, and pitch~ although they are all great externals for different reasons.

i’m getting frustrated though that the midi note tends to constantly ‘flatten’, esp for the lower frequencies. i.e. when i send a signal frequency corresponding to midi note 24, the fiddle~ output constantly wavers between 23 and 24.

anyone have a solution for this?

i’ve thought about using expr to only output the maximum value that it recieves, i.e. when the midi note flattens, it will only output the unflattened note. obviously this would backfire should the note ever sharpen…

#125125
Apr 23, 2008 at 1:39am

> … except that fbinshit~ works in the frequency domain.

and presumably generates, er, brown noise?

#125126
Apr 23, 2008 at 6:07am

Emmanuel Jourdan schrieb:
> except that fbinshit~ works in the frequency domain.

Is that the reason why fft sounds so beautifully shitty?


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com

#125127
Apr 23, 2008 at 6:52am

On 23 avr. 08, at 08:07, Stefan Tiedje wrote:

> Is that the reason why fft sounds so beautifully shitty?

It’s because of the windowing, isn’t it?

ej

#125128
Apr 23, 2008 at 2:58pm

Niall Kelly schrieb:
> when i send a signal frequency corresponding to midi note 24, the
> fiddle~ output constantly wavers between 23 and 24.
>
> anyone have a solution for this?

fiddle~s output is a float, to convert it to a midi note I’d round it
(+0.5)…

Stefan


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com

#125129
Apr 23, 2008 at 3:00pm

Emmanuel Jourdan schrieb:
> It’s because of the windowing, isn’t it?

And I thought it was because its called ffbinshit… (I guess that’s
what brown noise is about… (and sorry for the noise…))

Stefan


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com

#125130
May 3, 2008 at 10:35am

i have tried copying fiddle~ to numerous computers and it is never recognised in the object list.

i have included the “externals” folder in the search path in file preferences and still no luck.

without fiddle~ i don’t really see how i can make this work. bearing in mind i know fuck all about this programme.

basically up until now i have been messing around with mutliple gizmo objects which i have set to certain transposition values to give me certain harmonies. but that limits me because it isn’t aware of what key i might be playing in and gives me 3rds 5ths etc no matter what note i am playing, which often results in dissonant sludge.

so i figured i needed a way of telling it what notes it was allowed to play and that led me to think well i need to tell it MIDI note number values. this all boils down to me thinking gizmo is the wrong object for this… maybe i am wrong. i am mostly just confused..

#125131

You must be logged in to reply to this topic.