Momentary Button Widget

that would be amazing if you have the time. thanks so much

Here the gig
mom.gig (7.8 KB)

Here the script, not very elegant - but easy to read :wink:

Var
midi : MidiInBlock
mom : Widget
mam : Widget
mem : Widget
mim : Widget

n  : NoteMessage
n2 : NoteMessage
n3 : NoteMessage
n4 : NoteMessage

nn : Integer

initialization
n  := MakeNoteMessage(C3, 100)
n2 := MakeNoteMessage(D3, 100)
n3 := MakeNoteMessage(E3, 100)
n4 := MakeNoteMessage(F3, 100)
end

on WidgetValueChanged (newValue : double) from mom
 if newValue == 1.0 then
  ScheduleMidiEvent(midi, n, 200)
 end
end

on WidgetValueChanged (newValue : double) from mam
 if newValue == 1.0 then
  ScheduleMidiEvent(midi, n2, 200)
 end
end

on WidgetValueChanged (newValue : double) from mem
 if newValue == 1.0 then
  ScheduleMidiEvent(midi, n3, 200)
 end
end

on WidgetValueChanged (newValue : double) from mim
 if newValue == 1.0 then
  ScheduleMidiEvent(midi, n4, 200)
 end
end

on NoteEvent (n : NoteMessage) from midi
 nn = GetNoteNumber(n)
 if nn == C3 then
  SetWidgetValue(mom,0.0)
 elsif nn == D3 then
  SetWidgetValue(mam,0.0)
 elsif nn == E3 then
  SetWidgetValue(mem,0.0)
 elsif nn == F3 then
  SetWidgetValue(mim,0.0)
 end 
end
3 Likes

Ah thanks so much for taking the time! That’s excellent. Solves all the problems immediately.

Easy to read is good. I’m definitely not a coder.

2 Likes