0

カスタムスケールを定義する適切な方法は、「スケール」クラスの属性を継承することでしょうか?

クラスを「music21/scale/ init .py」に含めるべきですか

class myAbastract(AbstractScale):
    '''
    A pseudo my-scale.
    '''
    def __init__(self):
        super().__init__()
        self.type = 'Abstract My Name'
        self.octaveDuplicating = True
        self.dominantDegree: int = -1
        self.buildNetwork()

main.py で myScale を定義したところ、「deriveAll()」メソッド/関数を継承していないようです。

pitchListStrs = 'a b` c d e f g a'.split()
pitchList = [pitch.Pitch(p) for p in pitchListStrs]
myScaleA = scale.ConcreteScale(pitches=pitchList)
[str(p) for p in myScaleA.getPitches('E-5', 'G-7')]

myScale = myScaleA.abstract
mySol =scale.ConcreteScale()
mySol.tonic = pitch.Pitch('D')

しかし、deriveAll は定義されていません。

myScale.deriveAll(['E5', 'F5', 'G5', 'A5', 'B`5', 'C6', 'D6', 'E6'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'AbstractScale' object has no attribute 'deriveAll'

どんな助けでも大歓迎です。

4

1 に答える 1

3

deriveAllConcreteScaleインスタンスで定義されたルーチンです。のインスタンスでそれを呼び出そうとしましたAbstractScalemyScaleA具体的なvariable で呼び出してみてください。

于 2020-12-26T16:13:55.873 に答える