back to list

RE: [harmonic_entropy] Harmonic Entropy formulation of Partch's O ne-Footed Bride

🔗Paul H. Erlich <PERLICH@...>

5/29/2001 1:26:02 PM

Hi Ed!

As you can see in the last few messages in the archives, I recently put the
data for the octave-equivalent harmonic entropy curve (ad well as an
anntotated graph) in the "files" folder of this list. There are 601 data
points, corresponding to cents values from 0 to 600.

There are more discussions of the algorithm in the archives, and I'd be
happy to go deeper, but I could also provide you with the Matlab code
itself, if you're interested. Do you do Matlab?

Anyway, the calculation can be rather time-consuming, so for your purposes,
a table representation might be the way to go.

-Paul

-----Original Message-----
From: Ed Borasky [mailto:znmeb@...]
Sent: Tuesday, May 29, 2001 12:50 AM
To: harmonic_entropy@yahoogroups.com
Subject: [harmonic_entropy] Harmonic Entropy formulation of Partch's
One-Footed Bride

OK ... here I am :-). I'm looking for a mathematical formula that
duplicates Harry Partch's "One-Footed Bride". I'm given to understand
that there is an equivalent of sorts known to the Harmonic Entropy
folk here. I need something specified as an algorithm; the intended
use is in sound-generation code in the SAOL (Structured Audio
Orchestra Language), so it needs to be expressible as an algorithm.
Actually, a suitably-fine-grained table representation will work,
since I can use some applied mathemagic to derive code from that if I
need to, and SAOL is capable of working with tables. But I'd prefer a
formula. :-)
--
M. Edward (Ed) Borasky, Chief Scientist, Borasky Research
http://www.borasky-research.net http://www.aracnet.com/~znmeb
mailto:znmeb@... mailto:znmeb@...

The National Coal Institute reminds you, "There's no fuel like an old
fuel."

To unsubscribe from this group, send an email to:
harmonic_entropy-unsubscribe@egroups.com

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

🔗M. Edward Borasky <znmeb@...>

5/29/2001 4:58:27 PM

I don't have MatLab, but I have both Octave and SciLab, which more or less
do the same things, on both Windows and Linux. So I'll take the MatLab code.
Meanwhile, I'm going to download the table and fool with it. Thanks!!

--
M. Edward (Ed) Borasky, Chief Scientist, Borasky Research
http://www.borasky-research.net http://www.aracnet.com/~znmeb
mailto:znmeb@... mailto:znmeb@...

If there's nothing to astrology, how come so many famous men were born on
holidays?

> -----Original Message-----
> From: Paul H. Erlich [mailto:PERLICH@...]
> Sent: Tuesday, May 29, 2001 1:26 PM
> To: 'harmonic_entropy@yahoogroups.com'
> Subject: RE: [harmonic_entropy] Harmonic Entropy formulation of Partch's
> O ne-Footed Bride
>
>
> Hi Ed!
>
> As you can see in the last few messages in the archives, I
> recently put the
> data for the octave-equivalent harmonic entropy curve (ad well as an
> anntotated graph) in the "files" folder of this list. There are 601 data
> points, corresponding to cents values from 0 to 600.
>
> There are more discussions of the algorithm in the archives, and I'd be
> happy to go deeper, but I could also provide you with the Matlab code
> itself, if you're interested. Do you do Matlab?
>
> Anyway, the calculation can be rather time-consuming, so for your
> purposes,
> a table representation might be the way to go.
>
> -Paul
>
> -----Original Message-----
> From: Ed Borasky [mailto:znmeb@...]
> Sent: Tuesday, May 29, 2001 12:50 AM
> To: harmonic_entropy@yahoogroups.com
> Subject: [harmonic_entropy] Harmonic Entropy formulation of Partch's
> One-Footed Bride
>
>
> OK ... here I am :-). I'm looking for a mathematical formula that
> duplicates Harry Partch's "One-Footed Bride". I'm given to understand
> that there is an equivalent of sorts known to the Harmonic Entropy
> folk here. I need something specified as an algorithm; the intended
> use is in sound-generation code in the SAOL (Structured Audio
> Orchestra Language), so it needs to be expressible as an algorithm.
> Actually, a suitably-fine-grained table representation will work,
> since I can use some applied mathemagic to derive code from that if I
> need to, and SAOL is capable of working with tables. But I'd prefer a
> formula. :-)
> --
> M. Edward (Ed) Borasky, Chief Scientist, Borasky Research
> http://www.borasky-research.net http://www.aracnet.com/~znmeb
> mailto:znmeb@... mailto:znmeb@...
>
> The National Coal Institute reminds you, "There's no fuel like an old
> fuel."
>
>
> To unsubscribe from this group, send an email to:
> harmonic_entropy-unsubscribe@egroups.com
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
> To unsubscribe from this group, send an email to:
> harmonic_entropy-unsubscribe@egroups.com
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>

🔗Paul H. Erlich <PERLICH@...>

5/29/2001 5:10:47 PM

Ed, here's the Matlab code, and if you have any ideas as to optimizing it
for speed (particularly as I'd like to create a triadic harmonic entropy --
not sum-of-dyadic harmonic entropies -- _surface_), please let be know.

****************************************************************************
*******
function out=oddl(n)
out=ones(n^2,4);
z=2;
for a=1:2:n;
for b=1:2:n;
l=max(a,b);
if a/b>2;
p=a;
q=b*2^floor(log(a/b)/log(2));
elseif a/b<=1;
p=a*2^floor(1+log(b/a)/log(2));
q=b;
else
p=a;
q=b;
end
if length(find(out(:,1)==p/q))==0
out(z,:)=[p/q p q l];
z=z+1;
end;
end;
end;
out(z:n^2,:)=[];
[y,i]=sort(out(:,1));
out=out(i,:);
[r,c]=size(out);
out2=out(r/2+1:-1:2,[1 3 2 4]);
out2(:,1)=1./out2(:,1);
out3=out(2,:);
out3(:,1:2)=2*out3(:,1:2);
out=[out2;out;out3];
****************************************************************************
*******

****************************************************************************
*******
function out=oranges(n);
f=oddl(n);
p=size(f,1);
bounds=(f(1:p-1,4).*log(f(1:p-1,1))+f(2:p,4).*log(f(2:p,1)))./(f(1:p-1,4)+f(
2:p,4));
out=[bounds(1:p-1) f(1:p-1,2:3)];
****************************************************************************
*******

****************************************************************************
*******
function [entropy,r,pp]=oharminp(cents,r,s);
if s>.04
disp('oops -- results will be off!')
end
in=cents/1200*log(2);
a=size(r,1);
n=normcrit(r(:,1)*ones(size(in)),ones(a,1)*in,s);
p=diff(n);
pp=p;
%[y,i]=max(p);
%numbest=r(i+1,2);
%denbest=r(i+1,3);
p(find(p==0))=ones(size(find(p==0)));
entropy=-sum(p.*log(p))';
****************************************************************************
*******

To get the data you saw, I type

r=oranges(511);
out=oharminp([0:600],r,.003)

511 is large enough to get the main features I wanted to see --
theoretically this should go to infinity.
.003 is super-fine resolution . . . I tend to use larger values.

Look forward to hearing more about what you're doing with this!

-Paul