denemo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Denemo-devel] Scripting mode changes


From: Jeremiah Benham
Subject: Re: [Denemo-devel] Scripting mode changes
Date: Sat, 23 Aug 2008 07:33:09 -0500

On Sat, 2008-08-23 at 10:50 +0100, Richard Shann wrote:

> > > Is c-sharp and d-flat being represented by the same values on entry to
> > > this function?

You are right. I never thought of that. While C# and Db can be derived
from a keysig value that doesn't take into account for neopolitan
chords, secondary dominants, modal borrowing, or any other from of
temporarily shifting tonic center. C# and Db are mostly irrelevant in 12
tone music. But yes a value like 61 does not tell you whether it is a c#
or a db

> Is this not a crucial question??????????????????

I must have missed it.

> ....... so here is my worry - can Midi represent the information we need
> to hold? Can you represent a cis,,4. in Midi? And distinguish it from
> des,,4.

No. see above. 

> I can write the glue code in and out of scheme (there is a sample,
> passing a string from scheme to denemo in the source under #if 0, it
> turns out to be quite gruesome involving an old gh-interface, because
> they are in transition between the old gh_ stuff and new scm_ stuff).
> 
> Assuming the Midi representation can hold the needed information then
> if you write something to take the appropriate DenemoWhatever and return
> the midi pitch/duration integer/string (whatever will be convenient in
> Scheme), I can glue it in (or you can do this bit as well, as I am very
> busy with getting the scripts insertable into the menu system as first
> class menu items).

I realize the midi representation is dependent on the keysig to get
enharmonic or accidental information correct. It seems to be the easiest
to manipulate though. I will see if I can find time also. Maybe next
week sometime.   

> 
> > 
> > I was thinking having it be midi note numbers. We could have a separate
> > function that wrapper function to accept different types of input like
> > similar to the above struct notetype and sturct harmonic if users
> > wished. Harmonic is defined as :
> > 
> > typedef struct harmonic
> > {
> >         gint pitch;
> >         gint enshift;
> > }harmonic;
> > 
> > pitch values equate to this:
> > local.pitch = (input / 12) - 5;
> > 
> > input is the midi note number value. 60 = middle c etc.....
> > local.pitch for middle c would be 0. b would be -1. 
> > 
> > > Given a pitch can we calculate pitch + minor 3rd?
> I put this badly - I should have said note: 256 Hz is a pitch, but we
> want C-sharp to transpose to something different form D-Flat or
> B-double-sharp.

I am confused. You want and enharmonic respelling?

> > 
> > If we switch to storing pitches in midi numbers a minor third would be
> > extremely simple to perform.
> > 
> > int interval = 3; //half steps in minor third
> > int notepitch = 60;
> > notepitch += interval;
> > 
> This doesn't look like it can do what we want does it?

The above does not work if notes are stored in (int scale_degree, int
accidental) format. With this (scale_degree, accidental) format
transposition will be a bit more work.  

Jeremiah

> Richard
> 
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]