Yes it does :)

On Sun, Mar 10, 2013 at 10:26 PM, stephane ducasse <stephane.ducasse@free.fr> wrote:
Guillermo

can you try if the following method works with you?
I folded the external register inside each note.

Stef



buildKeyboard
� � � � | wtWid bkWid keyRect octavePt nWhite nBlack |
� � � � self removeAllMorphs.
� � � � wtWid := 8. bkWid := 5.
� � � � self extent: 10@10.
� � � � 1 to: nOctaves+1 do:
� � � � � � � � [:i | i <= nOctaves ifTrue: [nWhite := 7. �nBlack := 5]
� � � � � � � � � � � � � � � � � � � � � � � � ifFalse: [nWhite := 1. �nBlack := 0 "High C"].
� � � � � � � � octavePt := self innerBounds topLeft + ((7*wtWid*(i-1)-1) @ -1).
� � � � � � � � 1 to: nWhite do:
� � � � � � � � � � � � [:j | | val |
� � � � � � � � � � � � keyRect := octavePt + (j-1*wtWid@0) extent: (wtWid+1)@36.
� � � � � � � � � � � � val := i-1*12 + (#(1 3 5 6 8 10 12) at: j).
� � � � � � � � � � � � self addMorph: ((RectangleMorph newBounds: keyRect color: whiteKeyColor)
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � borderWidth: 1;
� � � � � � � � � � � � � � � � on: #mouseDown send: #mouseDownPitch:event:noteMorph: to: self
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � withValue: val;
� � � � � � � � � � � � � � � � on: #mouseUp
� � � � � � � � � � � � � � � � � � � � send: #mouseUpPitch:event:noteMorph:
� � � � � � � � � � � � � � � � � � � � to: self
� � � � � � � � � � � � � � � � � � � � withValue: val;
� � � � � � � � � � � � � � � � on: #mouseLeaveDragging
� � � � � � � � � � � � � � � � � � � � send: #mouseUpPitch:event:noteMorph:
� � � � � � � � � � � � � � � � � � � � to: self
� � � � � � � � � � � � � � � � � � � � withValue: val;
� � � � � � � � � � � � � � � � on: #mouseMove
� � � � � � � � � � � � � � � � � � � � send: #mouseMovePitch:event:noteMorph:
� � � � � � � � � � � � � � � � � � � � to: self
� � � � � � � � � � � � � � � � � � � � withValue: val;
� � � � � � � � � � � � � � � � on: #mouseEnterDragging send: #mouseDownPitch:event:noteMorph: to: self
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � withValue: val)
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ].
� � � � � � � � 1 to: nBlack do:
� � � � � � � � � � � � [:j | |val|
� � � � � � � � � � � � keyRect := octavePt + ((#(6 15 29 38 47) at: j)@1) extent: bkWid@21.
� � � � � � � � � � � � val := i-1*12 + (#(2 4 7 9 11) at: j).
� � � � � � � � � � � � self addMorph: ((Morph newBounds: keyRect color: blackKeyColor)
� � � � � � � � � � � � � � � � on: #mouseDown send: #mouseDownPitch:event:noteMorph: to: self
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � withValue: val;
� � � � � � � � � � � � � � � � on: #mouseUp
� � � � � � � � � � � � � � � � � � � � send: #mouseUpPitch:event:noteMorph:
� � � � � � � � � � � � � � � � � � � � to: self
� � � � � � � � � � � � � � � � � � � � withValue: val �;
� � � � � � � � � � � � � � � � on: #mouseLeaveDragging
� � � � � � � � � � � � � � � � � � � � send: #mouseUpPitch:event:noteMorph:
� � � � � � � � � � � � � � � � � � � � to: self
� � � � � � � � � � � � � � � � � � � � withValue: val;
� � � � � � � � � � � � � � � � on: #mouseMove
� � � � � � � � � � � � � � � � � � � � send: #mouseMovePitch:event:noteMorph:
� � � � � � � � � � � � � � � � � � � � to: self
� � � � � � � � � � � � � � � � � � � � withValue: val;
� � � � � � � � � � � � � � � � on: #mouseEnterDragging send: #mouseDownPitch:event:noteMorph: to: self
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � withValue: val
� � � � � � � � � � � � � � � � � � � � )]].
� � � � "self submorphsDo:
� � � � � � � � [:m | m on: #mouseMove send: #mouseMovePitch:event:noteMorph: to: self;
� � � � � � � � � � � � � � � � on: #mouseUp send: #mouseUpPitch:event:noteMorph: to: self;
� � � � � � � � � � � � � � � � on: #mouseEnterDragging send: #mouseDownPitch:event:noteMorph: to: self;
� � � � � � � � � � � � � � � � on: #mouseLeaveDragging send: #mouseUpPitch:event:noteMorph: to: self]."
� � � � self extent: (self fullBounds extent + borderWidth - 1)