Пример #1
0
    def load(self, filename):
        from isobar.io.midifile import MidiFileIn
        from isobar.pattern.sequence import PSeq

        reader = MidiFileIn()
        d = reader.read(filename)
        d = dict([(key, PSeq(value, 1)) for key, value in d.items()])
        return PDict(d)
Пример #2
0
    def __init__(self, value=None):
        from isobar.pattern.sequence import PSeq

        self.dict = {}

        if type(value) == dict:
            self.dict = value
        elif type(value) == list:
            self.dict = {}
            try:
                keys = value[0].keys()
                for key in keys:
                    self.dict[key] = PSeq([item[key] for item in value], 1)
            except IndexError:
                pass
Пример #3
0
    def __init__(self, value={}):
        from isobar.pattern.sequence import PSeq

        self.dict = {}

        if isinstance(value, dict):
            self.dict = value
        elif isinstance(value, list):
            self.dict = {}
            try:
                keys = value[0].keys()
                for key in keys:
                    self.dict[key] = PSeq([item[key] for item in value], 1)
            except IndexError:
                pass
Пример #4
0
    def pattern(v):
        """ Patternify a value, turning it into an object with a next() method
		to obtain its next value.
		
		Pattern subclasses remain untouched.
		Lists are turned into PSeq sequences.
		Scalars and other objects are turned into PConst objects. """

        from isobar.pattern.sequence import PSeq

        if isinstance(v, Pattern):
            return v
        elif isinstance(v, list):
            return PSeq(v, 1)
        else:
            return PConst(v)