• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Python music.NoteSeq类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中pyknon.music.NoteSeq的典型用法代码示例。如果您正苦于以下问题:Python NoteSeq类的具体用法?Python NoteSeq怎么用?Python NoteSeq使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了NoteSeq类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: strToMidi

def strToMidi(msg, fileName):
    from pyknon.genmidi import Midi
    from pyknon.music   import NoteSeq
    from pyknon.music   import Note
    notes = {
        '0' : Note(value=0, octave=5), # Do
        '1' : Note(value=2, octave=5), # Re
        '2' : Note(value=4, octave=5), # Mi
        '3' : Note(value=5, octave=5), # Fa
        '4' : Note(value=7, octave=5), # Sol
        '5' : Note(value=9, octave=5), # La
        '6' : Note(value=11, octave=5), # Si
        '7' : Note(value=0, octave=6),
        '8' : Note(value=2, octave=6),
        '9' : Note(value=4, octave=6),
        'a' : Note(value=5, octave=6),
        'b' : Note(value=7, octave=6),
        'c' : Note(value=9, octave=6),
        'd' : Note(value=11, octave=6),
        'e' : Note(value=0, octave=7),
        'f' : Note(value=2, octave=7)
    }
    msgHex = msg.encode('hex');
    sequence = NoteSeq('C1')
    before = ''
    for i in msgHex:
        if before == i:
            sequence.append(Note(value=4, octave=7))
        sequence.append(notes[i])
        before = i
    midi = Midi(1, tempo = 290)
    midi.seq_notes(sequence, track=0)
    midi.write(fileName)
开发者ID:Donluigimx,项目名称:str2Audio,代码行数:33,代码来源:str2Audio.py


示例2: test_stretch_inverval

 def test_stretch_inverval(self):
     seq1 = NoteSeq("C D E")
     seq2 = NoteSeq("C E G#")
     seq3 = NoteSeq("A Bb F#")
     seq4 = NoteSeq("A C#'' C''")
     self.assertEqual(seq1.stretch_inverval(2), seq2)
     self.assertEqual(seq3.stretch_inverval(3), seq4)
开发者ID:adamobeng,项目名称:pyknon,代码行数:7,代码来源:test_music.py


示例3: pix2noteseq

def pix2noteseq(pixelmap, width, height):
    """
    Convert a PIL pixel map to a PyKnon NoteSeq

    Use:
        pix2noteseq(pixelmap)

    Arguemnts:
        pixelmap: the PIL pixel map of the image
        width: the width in pixels
        height: height in pixels

    This function presumes the pixel map is in RGB and correct behavior when
    otherwise is not at all guaranteed.
    """
    notes = NoteSeq()
    
    # Iterate over the pixels, starting at the top left and working
    # colomn by colomn
    for y in range(height):
        for x in range(width):
            notes.append(pix2note(pixelmap[x,y]))
            if y == math.ceil(height/2) and x == math.ceil(width/2):
                print("50% done...")

    return notes
开发者ID:Jayjader,项目名称:PixelNoise,代码行数:26,代码来源:pixelnoise.py


示例4: crab_canon

def crab_canon(filename):
    theme = NoteSeq("file://%s.notes" % filename)
    rev_theme = theme.transposition(-12).retrograde()

    midi = Midi(2, tempo=120)
    midi.seq_notes(theme)
    midi.seq_notes(rev_theme, track=1)
    midi.write("%s.mid" % filename)
开发者ID:kuno,项目名称:music-for-geeks-exercises,代码行数:8,代码来源:exercise11.py


示例5: test_rotate

 def test_rotate(self):
     seq1 = NoteSeq("C E G")
     seq2 = NoteSeq("E G C")
     seq3 = NoteSeq("G C E")
     self.assertEqual(seq1.rotate(0), seq1)
     self.assertEqual(seq1.rotate(1), seq2)
     self.assertEqual(seq1.rotate(2), seq3)
     self.assertEqual(seq1.rotate(3), seq1)
开发者ID:adamobeng,项目名称:pyknon,代码行数:8,代码来源:test_music.py


示例6: play_list

def play_list(pitch_list, octave_list, duration, volume=120):
    result = NoteSeq()
    for pitch in pitch_list:
        note = pitch % 12
        octave = choice_if_list(octave_list)
        dur = choice_if_list(duration)
        vol = choice_if_list(volume)
        result.append(Note(note, octave, dur, vol))
    return result
开发者ID:kuno,项目名称:music-for-geeks-exercises,代码行数:9,代码来源:exercise10.py


示例7: random_notes

def random_notes(pitch_list, octave_list, duration,
                 number_of_notes, volume=120):
    result = NoteSeq()
    for x in range(0, number_of_notes):
        pitch = choice(pitch_list)
        octave = choice_if_list(octave_list)
        dur = choice_if_list(duration)
        vol = choice_if_list(volume)
        result.append(Note(pitch, octave, dur, vol))
    return result
开发者ID:kuno,项目名称:music-for-geeks-exercises,代码行数:10,代码来源:exercise08.py


示例8: play_list

def play_list(pitch_list, octave_list, duration,
              volume=120):
    result = NoteSeq()
    durl = [1/8, 1/8, 1/16, 1/16]
    cc = [choice([0,1,2,3,4,5,6,7,8,9,10,11]), choice([0,1,2,3,4,5,6,7,8,9,10,11]), choice([0,1,2,3,4,5,6,7,8,9,10,11]), choice([0,1,2,3,4,5,6,7,8,9,10,11])]
    st = 0
    for pitch in pitch_list:
        note1 = pitch
        note = cc[st%4]
        #octave = choice_if_list(octave_list)
        octave = change_range(note1, 0, 11, 1, 7)
        #dur = choice_if_list(duration)
        dur = durl[st%4]
        st += 1
        vol = choice_if_list(volume)
        result.append(Note(note, octave, dur, vol))
    return result
开发者ID:HackerPack,项目名称:StockTunes,代码行数:17,代码来源:beat_box.py


示例9: test_init_empty

 def test_init_empty(self):
     """Test if NoteSeq without arguments will clean previous values."""
     seq = NoteSeq()
     seq.append(Note("C"))
     seq = NoteSeq()
     seq.append(Note("D"))
     self.assertEqual(seq, NoteSeq("D"))
开发者ID:adamobeng,项目名称:pyknon,代码行数:7,代码来源:test_music.py


示例10: random_notes_with_memory

def random_notes_with_memory(pitch_list, octave_list, duration_list,
                             number_of_notes, memory_weights, volume=120):
    assert len(memory_weights) > 1, "more than 1 weight expected for memory"
    result = NoteSeq()
    for offset in range(0, number_of_notes):

        if 1+offset >= len(memory_weights):
            weights = memory_weights
        else:
            weights = memory_weights[0:1+offset]

        pitch_selection = weighted_random(weights)
        if pitch_selection == 0: # new note
            pitch = choice(pitch_list)
        else:
            pitch = result[-pitch_selection].value

        octave_selection = weighted_random(weights)
        if octave_selection == 0: # new note
            octave = choice_if_list(octave_list)
        else: # previous note at given position starting from the end
            octave = result[-octave_selection].octave

        duration_selection = weighted_random(weights)
        if duration_selection == 0: # new note
            dur = choice_if_list(duration_list)
        else: # previous note at given position starting from the end
            dur = result[-duration_selection].dur

        volume_selection = weighted_random(weights)
        if volume_selection == 0: # new note
            vol = choice_if_list(volume)
        else: # previous note at given position starting from the end
            vol = result[-volume_selection].volume

        result.append(Note(pitch, octave, dur, vol))
    return result
开发者ID:eric-brechemier,项目名称:music-for-geeks-exercises,代码行数:37,代码来源:exercise09.py


示例11: test_retrograde

 def test_retrograde(self):
     seq1 = NoteSeq("C4 D8 E8")
     seq2 = NoteSeq("E8 D8 C4")
     self.assertEqual(seq1.retrograde(), seq2)
开发者ID:adamobeng,项目名称:pyknon,代码行数:4,代码来源:test_music.py


示例12: test_append

 def test_append(self):
     seq1 = NoteSeq("C# D#")
     seq1.append(Note("F#"))
     seq2 = NoteSeq("C# D# F#")
     self.assertEqual(seq1, seq2)
开发者ID:adamobeng,项目名称:pyknon,代码行数:5,代码来源:test_music.py


示例13: test_stretch_dur

 def test_stretch_dur(self):
     seq1 = NoteSeq("C4 D8 E8")
     seq2 = NoteSeq("C8 D16 E16")
     seq3 = NoteSeq("C2 D4 E4")
     self.assertEqual(seq1.stretch_dur(.5), seq2)
     self.assertEqual(seq1.stretch_dur(2), seq3)
开发者ID:adamobeng,项目名称:pyknon,代码行数:6,代码来源:test_music.py


示例14: test_inversion_startswith_string

 def test_inversion_startswith_string(self):
     seq1 = NoteSeq("C E G")
     seq2 = NoteSeq("C Ab, F,")
     self.assertEqual(seq1.inversion_startswith("C"), seq2)
开发者ID:adamobeng,项目名称:pyknon,代码行数:4,代码来源:test_music.py


示例15: test_harmonize

 def test_harmonize(self):
     c_major = NoteSeq("C D E F G A B")
     c_major_harmonized = [NoteSeq("C E G"), NoteSeq("D F A"), NoteSeq("E G B"),
                           NoteSeq("F A C''"), NoteSeq("G B D''"), NoteSeq("A C'' E"),
                           NoteSeq("B D'' F''")]
     self.assertEqual(c_major.harmonize(), c_major_harmonized)
开发者ID:adamobeng,项目名称:pyknon,代码行数:6,代码来源:test_music.py


示例16: test_inversion_startswith_integer

 def test_inversion_startswith_integer(self):
     seq1 = NoteSeq("C E G")
     seq2 = NoteSeq("C Ab, F,")
     self.assertEqual(seq1.inversion_startswith(0), seq2)
开发者ID:adamobeng,项目名称:pyknon,代码行数:4,代码来源:test_music.py


示例17: test_inversion_startswith_octave

 def test_inversion_startswith_octave(self):
     seq1 = NoteSeq("G Ab B,")
     seq2 = NoteSeq("E Eb C''")
     self.assertEqual(seq1.inversion_startswith(Note(4, 5)), seq2)
开发者ID:adamobeng,项目名称:pyknon,代码行数:4,代码来源:test_music.py


示例18: range

    indices = range(1, size*i, i)
    return self.harmonize_template(scale, indices)

Note.harmonize_template = note_harmonize_template
Note.harmonize = note_harmonize

def noteseq_harmonize_template(self, indices):
    return [\
        NoteSeq(note.harmonize_template(self, indices)) for note in self\
    ]

NoteSeq.harmonize_template = noteseq_harmonize_template

c = Note("C")
assert str(c) == '<C>'
c_major_scale = NoteSeq("C D E F G A B")
assert str(c_major_scale) == '<Seq: [<C>, <D>, <E>, <F>, <G>, <A>, <B>]>'

assert str(c.harmonize(c_major_scale)) == '[<C>, <E>, <G>]'
assert str(c.harmonize_template(c_major_scale, [1, 3, 5])) == '[<C>, <E>, <G>]'

assert str(c.harmonize_template(c_major_scale, [1, 2, 3])) == '[<C>, <D>, <E>]'
assert str(c.harmonize_template(c_major_scale, [1, 4, 2])) == '[<C>, <F>, <D>]'
assert str(c.harmonize_template(c_major_scale, [5, 7, 9])) == '[<G>, <B>, <D>]'

assert str(c.harmonize_template(c_major_scale, [1, 2, 3, 4])) == \
       '[<C>, <D>, <E>, <F>]'
assert str(c.harmonize_template(c_major_scale, [1, 3, 5, 6, 8])) == \
       '[<C>, <E>, <G>, <A>, <C>]'

assert str(c_major_scale.harmonize()) == '[' \
开发者ID:kuno,项目名称:music-for-geeks-exercises,代码行数:31,代码来源:exercise14.py


示例19: test_inversion_startswith

 def test_inversion_startswith(self):
     seq1 = NoteSeq("C E G")
     seq2 = NoteSeq([Note(1, 5), Note(9, 4), Note(6, 4)])
     self.assertEqual(seq1.inversion_startswith(Note(1, 5)), seq2)
开发者ID:adamobeng,项目名称:pyknon,代码行数:4,代码来源:test_music.py


示例20: test_intervals

 def test_intervals(self):
     seq = NoteSeq("C D E F#")
     self.assertEqual(seq.intervals(), [2, 2, 2])
开发者ID:adamobeng,项目名称:pyknon,代码行数:3,代码来源:test_music.py



注:本文中的pyknon.music.NoteSeq类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python pykolab.getConf函数代码示例发布时间:2022-05-25
下一篇:
Python parser.parse函数代码示例发布时间:2022-05-25
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap