コード例 #1
0
def whimsical_melody_lead():
    notes = [
        # bar 1
        (None, 1),
        (sp.Ds4, 1),
        (sp.C4, 1),
        (sp.As4, 1 / 4),
        (sp.C4, 3 / 4),
        # bar 2
        (sp.C4, 1),
        (sp.Ds4, 1),
        (sp.C4, 1),
        (None, 1),
        # bar 3
        (None, 1),
        (sp.Ds4, 1),
        (sp.C4, 1),
        (sp.As4, 1 / 4),
        (sp.C4, 3 / 4),
        # bar 4
        (sp.C4, 1),
        (sp.Ds4, 1),
        (sp.C4, 1),
        (sp.As4, 1),
    ]

    for note in notes:
        sp.use_synth(sp.PLUCK)
        sp.play(note[0], amp=2)
        Metronome().beat_sleep(note[1])
コード例 #2
0
def demo_play_combo():
    # demonstration of the optional parameters available using
    # the play function. To read about these, take a look at the
    # spreadsheet of documentation that I made for you:
    # https://docs.google.com/spreadsheets/d/1AlzpwvzsPou_gr532h8XKFWWlJY8l7QAfWFU2XXVgvI/edit#gid=860514818
    psonic.use_synth(psonic.SUBPULSE)
    play(48, amp=0.2, sustain=2, attack=1, decay=1)
コード例 #3
0
def play_c_scale_builtin():
    # so you don't have to build your scales manually
    scale_C2 = psonic.scale(psonic.C2, psonic.MAJOR)
    scale_C3 = psonic.scale(psonic.C3, psonic.MAJOR)
    scale_C4 = psonic.scale(psonic.C4, psonic.MAJOR)
    print('C2 Scale:', scale_C2)
    print('C3 Scale:', scale_C3)
    print('C4 Scale:', scale_C4)

    # listening demo:
    psonic.use_synth(psonic.PIANO)
    play(scale_C3[0])
    sleep(0.5)
    play(scale_C3[1])
    sleep(0.5)
    play(scale_C3[2])
    sleep(0.5)
    play(scale_C3[3])
    sleep(0.5)
    play(scale_C3[4])
    sleep(0.5)
    play(scale_C3[5])
    sleep(0.5)
    play(scale_C3[6])
    sleep(0.5)
    play(scale_C3[7])
コード例 #4
0
def sonic_pi(freq):
    import psonic
    psonic.use_synth(psonic.PULSE)
    while True:
        with psonic.Fx(psonic.REVERB):
            print(freq.value)
            psonic.play(freq.value, release=0.2)
            sleep(0.08)
コード例 #5
0
def three_quarter_notes_descending_arp():
    notes = sp.scale(root_note=sp.C5,
                     scale_mode=sp.MINOR_PENTATONIC,
                     num_octaves=1)
    for i in range(3):
        sp.use_synth(sp.SINE)
        sp.play(notes[-(i + 1)], release=0.1, amp=0.5)

        Metronome().beat_sleep(wait_len=0.25)
コード例 #6
0
def synthwave_offbeat_bass():
    bar_number = Metronome().bar_number % 4
    notes = [sp.C1, sp.C1, sp.Ds1, sp.As0]

    Metronome().beat_sleep(wait_len=1 / 4)
    for _ in range(3):
        sp.use_synth(sp.TB303)
        octave_notes = [notes[bar_number - 1], notes[bar_number - 1] + 12]
        sp.play(octave_notes, sustain=0.1, release=0.1, amp=0.9, cutoff=110)
        Metronome().beat_sleep(wait_len=1 / 4)
コード例 #7
0
def demo_play_fadeout():
    # controls the time it takes to fade-out time
    psonic.use_synth(psonic.SUBPULSE)
    play(48)  # default
    sleep(1)
    play(50, release=0.1)  # fade out
    sleep(1)
    play(52, release=0.2)  # longer fade in
    sleep(1)
    play(53, release=0.6)  # even longer fade in
    sleep(1)
コード例 #8
0
def demo_play_fadein():
    # controls the fade-in time
    psonic.use_synth(psonic.SUBPULSE)
    play(48)  # default
    sleep(1)
    play(50, attack=0.5)  # fade in
    sleep(1)
    play(52, attack=1)  # longer fade in
    sleep(1)
    play(53, attack=2)  # even longer fade in
    sleep(1)
コード例 #9
0
def riff_3(tempo: float = 60):
    speed = 60 / tempo
    psonic.use_synth(psonic.PROPHET)
    sc = psonic.scale(psonic.E2, psonic.MINOR)
    s = random.choice([0.125 * speed, 0.25 * speed, 0.5 * speed])
    for i in range(8):
        r = random.choice([0.125, 0.25, 1, 2])
        n = random.choice(sc)
        co = random.randint(30, 100)
        psonic.play(n, release=r, cutoff=co)
        psonic.sleep(s)
コード例 #10
0
def demo_play_sustain():
    # controls how long the note lasts
    psonic.use_synth(psonic.SUBPULSE)  # select a synthesizer:
    play(48)  # default
    sleep(1)
    play(50, sustain=1)  # a little longer
    sleep(1)
    play(52, sustain=2)  # a little longer
    sleep(1)
    play(53, sustain=4.5)  # even longer
    sleep(1)
コード例 #11
0
def play_happy_birthday():
    psonic.use_synth(psonic.PIANO)
    play(HAPPY_BIRTHDAY[0])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[1])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[2])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[3])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[4])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[5])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[6])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[7])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[8])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[9])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[10])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[11])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[12])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[13])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[14])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[15])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[16])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[17])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[18])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[19])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[20])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[21])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[22])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[23])
    sleep(0.25)
    play(HAPPY_BIRTHDAY[24])
    sleep(0.25)
コード例 #12
0
def play_super_mario():
    # play the first 24 notes of Super Mario Brothers theme music
    # audio demo: https://vimeo.com/85685770
    psonic.use_synth(psonic.PIANO)
    play(SUPER_MARIO_NOTES_FIRST_24[0])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[1])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[2])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[3])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[4])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[5])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[6])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[7])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[8])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[9])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[10])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[11])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[12])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[13])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[14])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[15])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[16])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[17])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[18])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[19])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[20])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[21])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[22])
    sleep(0.1)
    play(SUPER_MARIO_NOTES_FIRST_24[23])
    sleep(0.1)
コード例 #13
0
def simple_four_chords():
    bar_number = Metronome().bar_number % 4

    chords = [
        sp.chord(sp.C3, sp.MINOR),
        sp.chord(sp.C3, sp.MINOR),
        sp.chord(sp.Ds3, sp.MAJOR),
        sp.chord(sp.As2, sp.MAJOR),
    ]

    sp.use_synth(sp.TB303)
    sp.play(chords[bar_number - 1], amp=1.4, release=1.2)
    Metronome().beat_sleep(wait_len=4)
コード例 #14
0
def demo_play_volume_adjust():
    # controls how loud the note lasts
    psonic.use_synth(psonic.SUBPULSE)
    play(48)  # default
    sleep(1)
    play(50, sustain_level=0.2)  # soft
    sleep(1)
    play(52, sustain_level=0.4)  # a little louder
    sleep(1)
    play(53, sustain_level=0.6)  # even louder
    sleep(1)
    play(55, sustain_level=1.6)  # even louder
    sleep(1)
コード例 #15
0
def sonic_pi(freq):
    psonic.use_synth(psonic.PULSE)
    while True:
        with psonic.Fx(psonic.REVERB):
            if instrument.value == 0:
                psonic.use_synth(psonic.PULSE)
            if instrument.value == 1:
                psonic.use_synth(psonic.SAW)
            if instrument.value == 2:
                psonic.use_synth(psonic.FM)

            psonic.play(freq.value, release=0.2)
            sleep(0.08)
コード例 #16
0
def play_c_scale():
    # MIDI Notes available here:
    # https://docs.google.com/spreadsheets/d/1AlzpwvzsPou_gr532h8XKFWWlJY8l7QAfWFU2XXVgvI/edit#gid=0
    psonic.use_synth(psonic.PIANO)
    play(48)  # these are MIDI note numbers
    sleep(0.5)
    play(50)
    sleep(0.5)
    play(52)
    sleep(0.5)
    play(53)
    sleep(0.5)
    play(55)
    sleep(0.5)
    play(57)
    sleep(0.5)
    play(59)
    sleep(0.5)
    play(60)
    sleep(0.5)
    play(59)
    sleep(0.5)
    play(57)
    sleep(0.5)
    play(55)
    sleep(0.5)
    play(53)
    sleep(0.5)
    play(52)
    sleep(0.5)
    play(50)
    sleep(0.5)
    play(48)

    # play arpeggio (w/o sleep functions, notes play simultaneously):
    sleep(1)
    play(48)
    play(52)
    play(55)
    play(60)
    sleep(1)
コード例 #17
0
ファイル: music.py プロジェクト: eecs110/spring2019
def make_song():
    # do something interesting here with sound:
    psonic.use_synth(psonic.PIANO)
    psonic.play(76)
    psonic.sleep(0.25)
    psonic.play(76)
    psonic.sleep(0.5)
    psonic.play(76)
    psonic.sleep(0.5)
    psonic.play(72)
    psonic.sleep(0.25)
    psonic.play(76)
    psonic.sleep(0.5)
    psonic.play(79)
    psonic.sample(psonic.DRUM_CYMBAL_SOFT)
    psonic.sleep(1)
    psonic.play(67)
    psonic.sample(psonic.DRUM_BASS_HARD)
    psonic.sleep(1)

    # ...
コード例 #18
0
def switch_synth(selected_text):
    print(selected_text)
    if selected_text == available_synths[0]:
        psonic.use_synth(psonic.PIANO)
    elif selected_text == available_synths[1]:
        psonic.use_synth(psonic.PROPHET)
    elif selected_text == available_synths[2]:
        psonic.use_synth(psonic.SAW)
コード例 #19
0
def switch_synth(selected_text):
    print(selected_text)
    # set synth according to request:
    if selected_text == available_synths[0]:
        psonic.use_synth(psonic.PIANO)
    elif selected_text == available_synths[1]:
        psonic.use_synth(psonic.PROPHET)
    elif selected_text == available_synths[2]:
        psonic.use_synth(psonic.SAW)

    psonic.play(55)
コード例 #20
0
import psonic
import threader

psonic.use_synth(psonic.BEEP)


def low_part(tempo):
    psonic.play([55, 59])
    psonic.sleep(1)
    psonic.play_pattern_timed([57], 0.5)
    psonic.play_pattern_timed([59], 1.5)
    psonic.play_pattern_timed([60], 1.5)
    psonic.play_pattern_timed([59], 1.5)
    psonic.play_pattern_timed([57], 1.5)  #b5
    psonic.play_pattern_timed([55], 1.5)  #b6
    psonic.play_pattern_timed([62, 59, 55, 62], 0.5)  #b7
    psonic.play_pattern_timed([50, 60, 59, 57], 0.25)


def high_part(tempo):
    # TODO: the tempo should be controlled by the tempo variable
    psonic.play_pattern_timed([74], 0.5)
    psonic.play_pattern_timed([67, 69, 71, 72], 0.25)
    psonic.play_pattern_timed([74, 67, 67], 0.5)
    psonic.play_pattern_timed([76], 0.5)
    psonic.play_pattern_timed([72, 74, 76, 78], 0.25)
    psonic.play_pattern_timed([79, 67, 67], 0.5)
    psonic.play_pattern_timed([72], 0.5)
    psonic.play_pattern_timed([74, 72, 71, 69], 0.25)
    psonic.play_pattern_timed([71], 0.5)
    psonic.play_pattern_timed([72, 71, 69, 67], 0.25)
コード例 #21
0
# turns on the Blinkt LEDs with relevant colour


def show_led(led_num, led_colour, delay):
    r, g, b = led_colour
    blinkt.clear()
    blinkt.set_brightness(0.1)
    blinkt.set_pixel(led_num, r, g, b)
    blinkt.show()
    time.sleep(d)


# order of synth notes being played in the sequence
notes = [psonic.G4, psonic.A4, psonic.F4, psonic.F3, psonic.C4]

# limited by the 8 pixels so mapping synth notes to index
# FXCDEFGA
# 01234567

order = [6, 7, 5, 0, 2]

# overall loop
for d in delays:
    # iterate through notes in synth sequence
    for i, note in enumerate(notes):
        psonic.use_synth(psonic.SAW)
        psonic.play(note)
        psonic.sleep(d)
        show_led(led_num=order[i], led_colour=colours[i], delay=d)
コード例 #22
0
import psonic

c_arpeggio = psonic.scale(psonic.C2, psonic.MAJOR, num_octaves=4)
print(c_arpeggio)
psonic.use_synth(psonic.PIANO)

previous_note = 1000000
start = len(c_arpeggio) - 1
end = -1  # -1 b/c range function does not include the endpoint
for i in range(start, end, -1):
    print(i)  # for debugging
    note = c_arpeggio[i]
    if note == previous_note:
        continue
    psonic.play(note)
    psonic.sleep(0.2)
    previous_note = note
コード例 #23
0
ファイル: music.py プロジェクト: eecs110/winter2019
def make_song():
    # do something interesting here with sound:
    psonic.use_synth(psonic.PIANO)
    sample(psonic.DRUM_BASS_HARD)
    play(60)
コード例 #24
0
def play_song(notes, speed):
    psonic.use_synth(psonic.PIANO)
    for note in notes:
        psonic.play(note)
        psonic.sleep(speed)
コード例 #25
0
import psonic
import random

e = psonic.chord(psonic.E3, psonic.MINOR)
print(e)

# Challenge: Write a  loop that randomly plays a note from the
# e minor cord, for either 0.25, or 0.5 length of time
# after it plays 30 notes it should stop
psonic.use_synth(psonic.PROPHET)
psonic.play(e[0], release=0.6)
psonic.sleep(0.5)