On Monday 09 December 2002 15.59, Steve Harris wrote: > On Mon, Dec 09, 2002 at 02:48:10PM +0100, David Olofson wrote: > > > For an apregiate in 12 tne you just add 1/12 per semitone, not > > > 1.0, I dont think thats hard. > > > > Well, yes - but did you get the actual point; that linear pitch > > may not be all that useful to plugins that don't care about the > > details of your scales? > > OK, I think I must be missing something. > > I dont see how a plugin can usfully process and note information > without any explicit knowledge of the scale (execpt for some > trivial cases, eg. octave shift, 5ths), but those can be handled in > linear pitch too.
You can do a lot more than that even with just integer MIDI pitch, at least if you assume that the scale in use is *somewhat* similar to 12tET. Even if some notes in the scale deviate a bit from the pitch they have in the 12tET scale, basic 12 tone theory still applies - and that's what the vast majority of harmonizers, autocomp units and whatnot are based on. So, why force these plugins to look at the scale in use, convert linear pitch into note pitch, process that, and then look at the scale and convert note pitch back into linear pitch for proper playback? They *could*, but IMHO, it should be optional, since it should be easy enough to have separate converter plugins for this. > I guess you can do something if its an equal tepmered scale, and > you dont know the note/octave division, but isn't that an unusual > case? Yes, probably. That would be 16 tone scales and that kind of stuff - but even then, the *actual* problem is still there: You cannot know for sure what linear pitch values mean in terms of tones in the current scale, unless you have a description of that scale at hand. If the linear pitch of a note is more than 50 cents off from the corresponding tone in the corresponding ET scale, you get the wrong note. > Granted if you have some way of expressing scale information then > note data makes things easier, but we dont (AFAIK). It sounds like > a hard problem. That's why simple plugins should not be forced to worry about it. As to scale information, that's basically something that's built into sequencers, scale converters and that kind of plugins. The implementation may be the definition, or the implementation might convert according to a scale definition loaded from a file of some (non-)standard format. However, it doesn't matter. If you deal only with 12tET, all you need is that multiplication or division by (1.0/12.0), if even that. (Linear pitch is still just linear pitch, and most synths should probably just use that.) Synths could chose not to have note_pitch controls at all (host or user throws in a suitable converter), to have note_pitch and built-in 12tET conversion (or more advanced converters) or to have *only* note_pitch and some kind of note->pitch conversion. Anything will work, and should be easy enough to deal with. > If you allow note data then you still have to provide some > mechanism/information for oscialtors to convert this back to a > frequency, and doesnt this nullify the point? No, because a synth is not *required* to have note_pitch inputs. It's considered an integrated bonus feature, if found on a synth. *If* a synth has note_pitch input, the synth could be seen as having builtin scale converters - which is something you might just as well plug in in between the synth and the event source. (Which would allow you to have different senders playing the same channel of the same synth with different scales, BTW. :-) Same thing applies to sequencers. Normally, you'd probably want a sequencer to "think" in terms of note_pitch, so you can tweak scales without destructively (and potentially irreversibly) modifying the database. However, since you'll normally connect a sequencer directly to a synth (and synths usually want linear_pitch), it might make sense to throw in a scale converter on each output channel. (Or a single global one, or whatever.) But that'd also be a bonus feature, since you might as well output *only* note_pitch, and then just throw in your favourite scale converter/generator plugin whenever you want or need to give some synth linear_pitch rather than note_pith. //David Olofson - Programmer, Composer, Open Source Advocate .- The Return of Audiality! --------------------------------. | Free/Open Source Audio Engine for use in Games or Studio. | | RT and off-line synth. Scripting. Sample accurate timing. | `---------------------------> http://olofson.net/audiality -' .- M A I A -------------------------------------------------. | The Multimedia Application Integration Architecture | `----------------------------> http://www.linuxdj.com/maia -' --- http://olofson.net --- http://www.reologica.se ---