Hi Alex,
been using additive synthesis implemented in pd to create bespoke timbres to fit xenharmonic scales. It has taken a while and is not finished yet as I've had problems with creating polyphonic ad syn instruments though I'm on the right track. I constructed a proof-of-concept model in Csound a few years back, but wanted a system more suited to live performance and on-the-fly tweaking, hence the pd implementation.
 What I've got so far is a monophonic ad syn instrument w/ control over the pitch and amplitude  of each partial. An extra feature is a separate envelope for each partial to avoid tedium. Ultimately, there will be active, changing control over all of the partials, and a polyphonic version.
Part of the machine is a scale generating interface triggered by input events such as MIDI. I don't use conversions from MIDI as some do, the pitches are derived from an expression block - it calculates the correct scale steps for the xenharmonic scale. Right now, there are only ET scales in there - if the user wants a 7-tet scale she/he simply places 7 in a number box and the machine does the rest. The timbre for the scale is then derived in the Setharian way - decide which scale steps should be consonant and manipulate the partials to suit your system. By doing the sums, the partial frequencies are arrived at, plugged into the adsyn partial arguments with a massive message box, and a timbre suited to a non-12 tet is the result. It's hit-or-miss, and I've not been able to fully assess the new scale-timbre pairs due to a lack of polyphony. It's coming along though.......  

Rich Duckworth
Lecturer in Music Technology
School of Music
House 5
Trinity College
Dublin 2
Ireland


It's the most devastating moment in a young mans life, when he quite reasonably says to himself, "I shall never play The Dane!"

--- On Sat, 3/4/10, pd-list-request@iem.at <pd-list-request@iem.at> wrote:

From: pd-list-request@iem.at <pd-list-request@iem.at>
Subject: Pd-list Digest, Vol 61, Issue 14
To: pd-list@iem.at
Date: Saturday, 3 April, 2010, 10:40

Send Pd-list mailing list submissions to
    pd-list@iem.at

To subscribe or unsubscribe via the World Wide Web, visit
    http://lists.puredata.info/listinfo/pd-list
or, via email, send a message with subject or body 'help' to
    pd-list-request@iem.at

You can reach the person managing the list at
    pd-list-owner@iem.at

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Pd-list digest..."


Today's Topics:

   1. Re: Spectral Shiffting (Jaime Oliver)
   2. Re: Spectral Shiffting (Andrew Faraday)
   3. Re: strange colors with pix_record (Max)
   4. pd~ and DIO errors (tim vets)
   5. Re: pd~ and DIO errors (patrick)
   6. Re: Spectral Shiffting (hard off)
   7. Re: tabread4~ "broken" interpolation algorithm - was Re:, Max
      Smoother Audio than Pd? (Matteo Sisti Sette)


----------------------------------------------------------------------

Message: 1
Date: Fri, 2 Apr 2010 15:08:40 -0700
From: Jaime Oliver <jaime.oliver2@gmail.com>
Subject: Re: [PD] Spectral Shiffting
To: Alexandre Porres <porres@gmail.com>
Cc: pd-list@iem.at
Message-ID:
    <i2x616283881004021508k5a2751fct46ba5c19e20cb21c@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

frequency shifting and then pitch shifting by the same amount in hertz will
compress or expand a spectrum around a particular frequency (which could or
could not be the fundamental...)

J

On Fri, Apr 2, 2010 at 1:05 PM, Alexandre Porres <porres@gmail.com> wrote:

> >I know I read the spectral mapping technique he uses,
> >but I didn't really understand how it works.
>
> me neither, guess he didn't really explained it wel...
>
> cheers
>
>
> 2010/4/2 Charles Henry <czhenry@gmail.com>
>
> There's a method of tuning partials that William Sethares uses in his
>> compositionss and he talks about it in his book Tuning Timbre Spectrum
>> Scale.
>>
>> Specifically, he was also using inharmonic instruments which would be
>> arranged into consonant scales, and the similar problem of using
>> arbitrary scales with inharmonic spectra to fit with least dissonance.
>>  I know I read the spectral mapping technique he uses, but I didn't
>> really understand how it works.
>>
>> On Fri, Apr 2, 2010 at 2:38 PM, Alexandre Porres <porres@gmail.com>
>> wrote:
>> > Hi folks,
>> > I'd lke to distort a sound spectrum by transposing partials the way I
>> want.
>> > Like making the spectrum more inharmonic or harmonic.
>> > Anyone done something similar?
>> > What kind of processing should I use?
>> > I was thinking that maybe a Phase Vocoder, where you could control the
>> > frequency separately, huh!?!? Anyone did this by the way?
>> > thanks a lot
>> > Alex
>> > _______________________________________________
>> > Pd-list@iem.at mailing list
>> > UNSUBSCRIBE and account-management ->
>> > http://lists.puredata.info/listinfo/pd-list
>> >
>> >
>>
>
>
> _______________________________________________
> Pd-list@iem.at mailing list
> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>
>


--
Jaime E Oliver LR

www.jaimeoliver.pe

858 750 0924 (cel)
858 202 1522 (home)
9168 Regents Rd. Apt. G
La Jolla, CA 92037
USA
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20100402/76c3d366/attachment-0001.htm>

------------------------------

Message: 2
Date: Fri, 2 Apr 2010 23:32:04 +0100
From: Andrew Faraday <jbturgid@hotmail.com>
Subject: Re: [PD] Spectral Shiffting
To: <porres@gmail.com>, <pd-list@iem.at>
Message-ID: <COL120-W480473297F2055A1871B0CDE1C0@phx.gbl>
Content-Type: text/plain; charset="iso-8859-1"


Hey Alex
I'm not sure if this is what you're after, but have a look in the help browser for:
3.audio.examples/D08.table.spectrum
This is basically a bank of oscillators reading their own specific pitches from a single table. Perhaps use:
FFT to feed the table and [sigmund~] to set the pitch. Orchange the arguments in [spectrum_partial] in [pd oscbank] so you can manipulate the partials more precisely (you could add an inlet or a recieve to control these from somewhere else in your patch).
Hope this helps.
Andrew
Date: Fri, 2 Apr 2010 15:38:15 -0400
From: porres@gmail.com
To: pd-list@iem.at
Subject: [PD] Spectral Shiffting

Hi folks,
I'd lke to distort a sound spectrum by transposing partials the way I want. Like making the spectrum more inharmonic or harmonic.
Anyone done something similar?

What kind of processing should I use?
I was thinking that maybe a Phase Vocoder, where you could control the frequency separately, huh!?!? Anyone did this by the way?

thanks a lotAlex                          
_________________________________________________________________
http://clk.atdmt.com/UKM/go/195013117/direct/01/
We want to hear all your funny, exciting and crazy Hotmail stories. Tell us now
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20100402/c4a1584e/attachment-0001.htm>

------------------------------

Message: 3
Date: Sat, 3 Apr 2010 00:52:58 +0200
From: Max <abonnements@revolwear.com>
Subject: Re: [PD] strange colors with pix_record
To: chris clepper <cgclepper@gmail.com>
Cc: PD list <pd-list@iem.kug.ac.at>
Message-ID: <FDE5A954-E064-459B-BF8B-FCB2B2EA6FA1@revolwear.com>
Content-Type: text/plain; charset=us-ascii

that version of GEM
GEM: ver: 0.92.2
GEM: compiled: Jan 20 2010
unfortunately doesn't have a pix_recordQT
pix_recordQT
... couldn't create

m.

Am 01.04.2010 um 21:25 schrieb chris clepper:

> The Quicktime code being used in recent GEM builds is not the code I wrote, and does not work that well.  Can you try pix_recordQT and see if that loads? 
>
>
> On Wed, Mar 31, 2010 at 10:03 AM, Max <abonnements@revolwear.com> wrote:
> Hi List,
>
> i wonder why i get these strange colors when using pix_record with GEM ver: 0.92.2 compiled: Jan 20 2010 on OS X 10.6.3
> Any Ideas?
>
>
>
>
>
>
>
> this is grayscale in GEM but instead it is quite blue in the recorded quicktime.
>
>
>
>
> _______________________________________________
> Pd-list@iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>
>




------------------------------

Message: 4
Date: Sat, 3 Apr 2010 02:39:54 +0200
From: tim vets <timvets@gmail.com>
Subject: [PD] pd~ and DIO errors
To: pd-list <pd-list@iem.at>
Message-ID:
    <q2ia29740771004021739od28874eepc52d5ac280313d3a@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

Hi all,
I have a rather heavy patch which causes DIO errors when I switch~ on
several subpatches.
I'm running pd + Jack on a rt kernel (ubuntu-studio Hardy),... Jack shows
little or no Xruns.
Now I wanted to try and optimize the patch by using [pd~].
The way I understood it is that [pd~] will start a subprocess and it will
(automatically ?) divide the audio computation load over multiple
processors.
However, I get the impression that by using [pd~] I get the same (or even
worse) results as with my regular "abstraction / [switch~]" approach; DIO
error crackles.
Any advice very welcome!
Thanks,
Tim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20100403/90b585d1/attachment-0001.htm>

------------------------------

Message: 5
Date: Fri, 02 Apr 2010 21:13:15 -0400
From: patrick <puredata@11h11.com>
Subject: Re: [PD] pd~ and DIO errors
To: tim vets <timvets@gmail.com>
Cc: pd-list <pd-list@iem.at>
Message-ID: <4BB6962B.6080008@11h11.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

hi tim,

just to be sure, do you use the -rt flag when starting pd? also, try to
run everything (jack, pd) in root (just to see if the glitches is the
cause of a limitation).

pat



------------------------------

Message: 6
Date: Sat, 3 Apr 2010 12:15:04 +0900
From: hard off <hard.off@gmail.com>
Subject: Re: [PD] Spectral Shiffting
To: Andrew Faraday <jbturgid@hotmail.com>
Cc: pd-list@iem.at, porres@gmail.com
Message-ID:
    <t2p161320dd1004022015peb988d62xea8192713999829c@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

here's a frequency shifter that slur posted on the pd forum a little while
ago:

http://puredata.hurleur.com/viewtopic.php?pid=16842#p16842
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20100403/83f29514/attachment-0001.htm>

------------------------------

Message: 7
Date: Sat, 03 Apr 2010 11:40:07 +0200
From: Matteo Sisti Sette <matteosistisette@gmail.com>
Subject: Re: [PD] tabread4~ "broken" interpolation algorithm - was
    Re:, Max     Smoother Audio than Pd?
To: Charles Henry <czhenry@gmail.com>
Cc: pd-list@iem.at
Message-ID: <4BB70CF7.5090309@gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Charles Henry escribi?:

> The hardest class I ever had was stochastic analysis (as recent as 4
> years ago), where we solved problems like this.  Fundamentally, it's
> not too hard, but the details of the calculus are tricky.  I'd prefer
> to stay away unless there's a real good reason to do so :)
>

Well if you want to stay away from stochastic processes and consider the
signal as a deterministic function, then you'll have to make assumptions
that make sense for functions.

And a flat spectrum isn't. As you said at the very beginning (almost),
assuming it has a flat spectrum implies it is a dirac delta.

Finding the interpolator that best interpolates a dirac delta is finding
the interpolator that best matches the ideal interpolator (the sync),
hence your result.

Ok, we cannot find an interpolator that is optimum for all classes of
functions, so we have to choose some class of functions.
Even provided your reasoning about phase was right (so allowing to
extend the result not only to the delta function but to all function
with a flat spectrum with whatever phase), I don't think the resulting
class of function is much more general and much more interesting.

I think people often use a sinusoid to measure the quality of an
interpolator (e.g. in Miller's book you find tables with the
signal-to-noise ratio of the interpolator measured on a sinusoid, if i
remember correctly).
Maybe you could solve the problem of finding the best interpolator for a
sinusoid.
That would make a lot more sense than the best interpolator for a dirac
delta. (note that I don't know if the result turns out to be the same)

If you try to solve the problem for a whole "class" of functions of some
interest, I'm afraid you'll find out it is much (much much much) more
complicated than dealing with stochastic processes.


Note that I'm not saying that
>> E=|f(x)-sinc(x)|^2 is minimized when
>>
>> f(x)={sinc(x) -2<x<2  ,    0 elsewhere
is a bad choice.
I'm just arguing that your reasoning doesn't prove it is the best choice.

Indeed I think some software use

>> E=|f(x)-sinc(x)|^2 is minimized when
>>
>> f(x)={sinc(x) -N<x<N  ,    0 elsewhere

for some value of N. For infinite N, this would be the perfect
interpolator, so obviously for large N it is good enough.

The problem is that for N as little as 2, the truncation has
non-negligible effects on the stop band, so the problem arises, whether
another signal can reduce the effects of the truncation on the stop
band, at the cost of some added ripple within the passband.

Now that I think about it, your truncated sync should have perfect-flat
passband response, and big stopband "ripples" (how do you call the
stopband ripples? cannot remember the word), so any improvement at
stopband will have to be traded off with some increased passband ripple.

So here's what the truncated sync is best at: it's the one with the best
(meaning flattest) bandpass response. Is this correct???



Note however that the highest part of the high frequency noise (due to
the non-zero stopband part of the interpolator) will cause aliasing when
resampling. The analysis of passband ripple and stopband "ripple" and
whatever measure of their trade off doesn't take this into account: it
just considers the passband ripple as passband distortion, and the
stopband "ripple" as high-frequency noise. But after resampling part of
that high frequency noise will be brought back to low frequency in form
of aliasing. Note that the new Nyquist frequency depends on the
resampling frequency and is not the same as the original Nyquist
frequency, so how relevant aliasing is depends on the resampling rate.
If yoy resample at 1:1 then _all_ high freq noise will become aliasing.
Aliasing is often considered somewhat worse than anything else (correct
me if I am wrong), I guess because it is specially audible, being
perceived as something completely unconnected to the original signal.

This last digression is nothing specific to the truncated sync, it is
just to say that while trading off between passband distortion and
stopband noise, we have to consider that stopband noise may alias back
to low frequency and hence it is especially important to avoid it.
Hence an interpolator with strong stopband ripple is likely to need to
be used in conjunction with oversampling and filtering before
resampling. By the way when we resample at an unpredictable and varying
rate (such as using a tabreadWhatever~ with an input signal that is not
a ramp), oversampling and filtering is not feasible (or is it???)


--
Matteo Sisti Sette
matteosistisette@gmail.com
http://www.matteosistisette.com



------------------------------

_______________________________________________
Pd-list mailing list
Pd-list@iem.at
to manage your subscription (including un-subscription) see
http://lists.puredata.info/listinfo/pd-list


End of Pd-list Digest, Vol 61, Issue 14
***************************************