def gen(self, path, nnotes=200, motif=None): self.t = 0 if motif: motif = parse(motif) print "="*60 print "Generating Shepard Tones" tobj = TrackObj(trackName="Track1") for i in range(nnotes): dur = 1 if motif: j,dur = motif[i % len(motif)] if j == 'r': self.t += dur*self.ticksPerBeat continue else: j = i % 12 #print i, j notes = self.getChord(j, dur) self.t += dur*self.ticksPerBeat for note in notes: tobj.addNote(note) midiObj = MidiObj() midiObj.addTrack(tobj) midiObj.saveAsJSON(path) mpath = path.replace(".json", ".mid") midiObj.saveAsMidi(mpath)
def gen(self, path, nnotes=200, motif=None): self.t = 0 if motif: motif = parse(motif) print "="*60 print "Generating Shepard Tones" tobj = TrackObj(trackName="Track1") for i in range(nnotes): dur = 1 if motif: j,dur = motif[i % len(motif)] else: j = i % 12 #print i, j notes = self.getChord(j, dur) for note in notes: tobj.addNote(note) midiObj = MidiObj() midiObj.addTrack(tobj) midiObj.saveAsJSON(path)
def gen(self, path, nnotes=200, motif=None): self.t = 0 if motif: motif = parse(motif) print "=" * 60 print "Generating Shepard Tones" tobj = TrackObj(trackName="Track1") for i in range(nnotes): dur = 1 if motif: j, dur = motif[i % len(motif)] else: j = i % 12 #print i, j notes = self.getChord(j, dur) for note in notes: tobj.addNote(note) midiObj = MidiObj() midiObj.addTrack(tobj) midiObj.saveAsJSON(path)
def genShepard(path, nvoices=5, noctaves=5, nnotes=200, motif=None): if motif: motif = parse(motif) print "=" * 60 print "Generating Shepard Tones" tobj = TrackObj(trackName="Track1") t = 0 for v in range(nvoices): sv = ShepVoice(noctaves, 12 * v) for i in range(nnotes): j = i dur = 1 if motif: j, dur = motif[i % len(motif)] #print j, dur tOn, note = sv.getNote(t, j, dur) t += sv.ticksPerBeat * dur if note: #print i, note.toList() tobj.addNote(note) midiObj = MidiObj() midiObj.addTrack(tobj) midiObj.saveAsJSON(path)
def genShepard(path, nvoices=5, noctaves=5, nnotes=200, motif=None): if motif: motif = parse(motif) print "="*60 print "Generating Shepard Tones" tobj = TrackObj(trackName="Track1") t = 0 for v in range(nvoices): sv = ShepVoice(noctaves, 12*v) for i in range(nnotes): j = i dur = 1 if motif: j,dur = motif[i % len(motif)] #print j, dur tOn, note = sv.getNote(t, j, dur) t += sv.ticksPerBeat*dur if note: #print i, note.toList() tobj.addNote(note) midiObj = MidiObj() midiObj.addTrack(tobj) midiObj.saveAsJSON(path)
def save(tObj, path): mObj = MidiObj() mObj.addTrack(tObj) mObj.saveAsJSON(path)