denemo-devel
[Top][All Lists]
Advanced

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

Re: [Denemo-devel] Midi shortcuts


From: Richard Shann
Subject: Re: [Denemo-devel] Midi shortcuts
Date: Sat, 07 May 2011 22:16:53 +0100

Oh - I see, and I was blaming Jeremiah:)
Well it has to be re-definable at runtime (IIRC), not just for folk who
want to create their own MIDI shortcuts but for the case where a script
wants to re-program how the MIDI controller works. I finished an example
of this recently - in the Chordal Accompaniment command the foot pedal
acts to sustain chords as the bass note changes, and also to back up
over leading rests. It also re-uses the modulation wheel to stop the
chord entering, re-setting it to the default value afterwards.

That looks neat stuff with scm_c_lookup() and such, as you may have
surmised it is sheer ignorance on my part. And, now that you mention it
I did spend a year or so writing Tcl more recently than the Lisp I did
before that. But all that was over 10 years ago. Really, I am just
hacking together something to do the job out of the bits that I know
about...

Thanks for the suggestions,

Richard


On Sat, 2011-05-07 at 22:55 +0200, R. Mattes wrote:
> On Sat, 07 May 2011 17:16:25 +0100, Richard Shann wrote
> > I am exceedingly puzzled by this: my code does not have such a 
> > static -
> 
> No - this is my quick hack-up to show an alternative to generating and
> then evaluating strings (remember: eval is evil :-)
> 
> >  it seems to be some version of the code developed by 
> > Jeremiah to fix memory leaks. But I don't know where it has come 
> > from, as I have just committed and so must be up-to-date. Where have 
> > you gotten this from?
> > (as you say it is wrong, a regression on the release) Richard
> 
> No - I deliberately did put in the static to optimize method lookup.
> Of course - if you feel the need to make Midi-shortcut::controller
> changeable at runtime just leave out the static declaration.
> 
> 
>  Cheers and sorry for the confusion
> 
>  RalfD
>  
> > On Sat, 2011-05-07 at 12:06 +0000, Ralf Mattes wrote:
> > > On Sat, 07 May 2011 11:58:16 +0000, Ralf Mattes wrote:
> > > 
> > > > 
> > > > gchar *get_midi_control_command(guchar type, guchar value) {
> > > >     static SCM lookup_fun = scm_c_lookup("MIDI-shortcut::controller");
> > > >     gchar  r_val = NULL;
> > > >     SCM    res;
> > > > 
> > > >     scm_dynwind_begin(0);
> > > >     res = scm_call_2(lookup_fun, SCM_I_MAKINUM(type), 
> SCM_I_MAKINUM(value)); 
> > > >     if(scm_is_string(res)) {
> > > >         SCM2LSTRING(r_val, res);
> > > >     }
> > > >     scm_dynwind_end();
> > > >     return r_val;
> > > > }
> > > 
> > > Just one more comment about this code: as a result the value of
> MIDI-shortcut::controller 
> > > is looked up only once, hence runtime redefinition won't work. If this is
> wanted, just
> > > remove the static from the definition of lookup_fun.
> > > 
> > >  Cheers, RalfD
> > > 
> > > > 
> > > > Cheers, RalfD
> > > > 
> > > >> HTH
> > > >> Richard
> > > >> 
> > > >> 
> > > >> 
> > > >>
> > > 
> > > 
> > > 
> > > _______________________________________________
> > > Denemo-devel mailing list
> > > address@hidden
> > > https://lists.gnu.org/mailman/listinfo/denemo-devel
> 
> 
> --
> R. Mattes -
> Hochschule fuer Musik Freiburg
> address@hidden
> 




reply via email to

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