def onNewInstrument(self,sender):
''' allow editing of new instrument based on current instrument'''
if model._InstrumentTuning:
notes = model._InstrumentTuning
else:
console.hud_alert('Please select an instrument as the base for new one','error',2)
return
mainViewShield.conceal()
numStrings = len(notes)
self.span = model._Span
self.octave = model._InstrumentOctave
self.textField.text = model._InstrumentName
self.octaveTextField.text = "{}".format(self.octave)
spinnerWidth = min(75,int(self.width/float(numStrings)))
space = self.width - numStrings*spinnerWidth
spacer = int(space/float(numStrings + 1))
self.notes = [note for note in notes]
self.octaves = [divmod(note,12)[0] for note in notes]
self.spinnerFactor = 0.17
for i in range(numStrings):
temp = Spinner(name="string{}".format(i),
initialValue = ccc['NOTE_NAMES'],
spinnerSize = (spinnerWidth,40),
fontSize = 16,
action=self.onSpinner,
limitAction=self.onSpinnerLimit
)
temp.pointer = self.notes[i] % 12
tempOctave = ui.TextField(name='octave{}'.format(i),
frame=(0,0,40,32),
)
tempOctave.text = "{}".format(self.octaves[i])
temp.position = (spacer+i*(spacer+spinnerWidth), int(self.spinnerFactor*self.height))
location = (spacer+i*(spacer+spinnerWidth),int(self.spinnerFactor*self.height+42),0.0,0.0)
tempOctave.frame = tuple(map(add,tuple(location),tuple(tempOctave.frame)))
self.add_subview(temp)
self.add_subview(tempOctave)
self.spinnerArray.append(temp)
self.octaveTextArray.append(tempOctave)
self.SpanSpinner = Spinner(name='EIspanSpinner',
initialValue = self.span,
limits=(2,self.span+2),
spinnerSize = (spinnerWidth,32),
fontSize = 16
)
self.SpanSpinner.position = (240,185)
self.add_subview(self.SpanSpinner)
self.tuningButton.action = self.playTuning
self.update_tuning_label()
self.hidden = False
self.bring_to_front()
评论列表
文章目录