def last_beat_every_other(speed): print('last beat every other...') # alternate second cycle ending psonic.sample(psonic.DRUM_TOM_LO_HARD) psonic.sleep(0.125 * speed) psonic.sample(psonic.DRUM_TOM_MID_HARD) psonic.sleep(0.125 * speed)
def riff_6(tempo=1): psonic.sample(psonic.DRUM_TOM_HI_SOFT, rate=1) psonic.sleep(.25 * tempo) psonic.sample(psonic.DRUM_TOM_HI_SOFT) psonic.sleep(.125 * tempo) psonic.sample(psonic.DRUM_TOM_HI_SOFT, rate=1) psonic.sleep(.25 * tempo) psonic.sample(psonic.DRUM_TOM_HI_SOFT, rate=1) psonic.sleep(.125 * tempo) psonic.sample(psonic.DRUM_TOM_HI_SOFT) psonic.sleep(0.24 * tempo) # make the last sleep a little shorter
def riff_2(tempo=60): speed = 60 / tempo psonic.sample(psonic.DRUM_TOM_HI_SOFT, rate=1) psonic.sleep(.25 * speed) psonic.sample(psonic.DRUM_TOM_HI_SOFT) psonic.sleep(.125 * speed) psonic.sample(psonic.DRUM_TOM_HI_SOFT, rate=1) psonic.sleep(.25 * speed) psonic.sample(psonic.DRUM_TOM_HI_SOFT, rate=1) psonic.sleep(.125 * speed) psonic.sample(psonic.DRUM_TOM_HI_SOFT)
def riff_4(tempo=2): psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.25 * tempo) psonic.sample(psonic.DRUM_SNARE_HARD) psonic.sleep(.125 * tempo) psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.25 * tempo) psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.125 * tempo) psonic.sample(psonic.DRUM_SNARE_HARD) psonic.sleep(0.24 * tempo) # make the last sleep a little shorter
def riff_1(tempo: float = 60): speed = tempo / 60 * 2 psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.25 * speed) psonic.sample(psonic.DRUM_SNARE_HARD) psonic.sleep(.125 * speed) psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.25 * speed) psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.125 * speed) psonic.sample(psonic.DRUM_SNARE_HARD) psonic.sleep(0.20 * speed)
def main_rhythm(speed): print('main rhythm...') psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.25 * speed) psonic.sample(psonic.DRUM_SNARE_HARD) psonic.sleep(.125 * speed) psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.25 * speed) psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.125 * speed)
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) # ...
def riff_8(tempo): for i in range(6): psonic.sample(psonic.DRUM_HEAVY_KICK, rate=0.8) psonic.sleep(tempo * 0.5) for i in range(7): psonic.sample(psonic.DRUM_HEAVY_KICK, rate=0.8) psonic.sleep(tempo * .125) psonic.sample(psonic.DRUM_HEAVY_KICK, rate=0.8)
def controller_riff(tempo): speed = 60 / tempo # very low volume controller beat (just for debugging): psonic.sample(psonic.DRUM_BASS_SOFT, amp=0.2, rate=7) psonic.sleep(speed)
def riff_3(tempo=60): speed = 60 / tempo psonic.sample(psonic.AMBI_LUNAR_LAND) #psonic.sample(psonic.AMBI_DRONE) psonic.sleep(3.99 * speed) # make the last sleep a little shorter
def one_beat_hi_hat(): sp.sample(sp.DRUM_CYMBAL_CLOSED, amp=2.5) Metronome().beat_sleep(wait_len=1)
def riff_1b(tempo=60): speed = 60 / tempo for i in range(7): psonic.sample(psonic.DRUM_HEAVY_KICK, rate=0.8) psonic.sleep(speed * .125) psonic.sample(psonic.DRUM_HEAVY_KICK, rate=0.8)
def sound(): while True: if not b1.is_pressed: ps.sample(ps.DRUM_HEAVY_KICK) time.sleep(0.5)
def riff_3(tempo=1): for i in range(3): psonic.sample(psonic.DRUM_SNARE_SOFT) psonic.sleep(tempo * .25) psonic.sample(psonic.DRUM_SNARE_SOFT)
import psonic import random counter = 0 while True: # note: the "rate" parameter adjusts pitch # you can read about it here: # psonic.sample(psonic.DRUM_BASS_HARD, rate=random.randrange(1, 5)) # Cymbal hit every third time: if counter % 3 == 0: psonic.sample(psonic.DRUM_CYMBAL_PEDAL) psonic.sleep(0.125) counter += 1
def quiet_kick(): sp.sample(sp.BD_HAUS, amp=1.5) Metronome().beat_sleep(1)
def open_cymbal(): sp.sample(sp.DRUM_CYMBAL_OPEN)
import random import psonic # Challenge: write a loop that plays 128 beats, using the # psonic.DRUM_BASS_HARD sample, that are each at a different # pitch (from 1 to 10). Note that pitch is controlled by the "rate" keyword argument. psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(0.125) psonic.sample(psonic.DRUM_BASS_HARD, rate=5) psonic.sleep(0.125) psonic.sample(psonic.DRUM_BASS_HARD, rate=8) psonic.sleep(0.125)
def riff_7(tempo=1): for i in range(4): psonic.sample(psonic.DRUM_CYMBAL_PEDAL) psonic.sleep(tempo * 0.25)
def controller_riff(tempo=1): psonic.sample(psonic.DRUM_BASS_SOFT) psonic.sleep(tempo)
import psonic speed = 2 while True: psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.25 * speed) psonic.sample(psonic.DRUM_SNARE_HARD) psonic.sleep(.125 * speed) psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.25 * speed) psonic.sample(psonic.DRUM_BASS_HARD, rate=1) psonic.sleep(.125 * speed) psonic.sample(psonic.DRUM_SNARE_HARD) psonic.sleep(0.25 * speed)
def riff_2(tempo=1): psonic.sample(psonic.DRUM_CYMBAL_OPEN) psonic.sleep(tempo * 0.99)
import random import psonic # Challenge: write a loop that plays 128 beats, using the # psonic.DRUM_BASS_HARD sample, that are each at a different # pitch (from 1 to 10). Note that pitch is controlled by the "rate" keyword argument. for n in range(128): print(n, 'of 128') r = random.randrange(1, 10) psonic.sample(psonic.DRUM_BASS_HARD, rate=r) psonic.sleep(0.125)
import psonic as p import random def tests(): for i in range(5): p.play(random.randrange(60, 80)) p.sleep(1) #tests() #p.play(':d4') #for i in range(10): # p.sample('drum_heavy_kick') # p.sleep(0.5) # p.sample('drum_snare_hard') # p.sleep(0.5) # p.sample('drum_heavy_kick') # p.sleep(0.5) # p.play(random.randrange(60,80)) # p.sleep(0.5) for i in range(10): p.sleep(0.5) p.sample('drum_cymbal_closed') p.sleep(0.5) p.sample('drum_cymbal_pedal') p.sleep(0.1)
################################################################################################## # Before you begin: # 1. Download and install Sonic Pi: https://sonic-pi.net/ # 2. Install the psonic module using PIP. Run the following on the command line: # $ pip install python-sonic # 3. Ensure that your Sonic Pi is running # # # Useful documentation: # 1. psonic documentation: # https://github.com/gkvoelkl/python-sonic # 2. MIDI Reference: http://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies # 3. play function reference: https://docs.google.com/spreadsheets/d/1AlzpwvzsPou_gr532h8XKFWWlJY8l7QAfWFU2XXVgvI/edit#gid=860514818 ################################################################################################## import psonic # Challenge: # 1. Use a while loop to repeat the drum beat below over and over again (forever) # 2. When you're done with part 1, edit your while loop so that the loop breaks # after 200 drum beats psonic.sample(psonic.DRUM_BASS_HARD) psonic.sleep(0.2) psonic.sample(psonic.DRUM_CYMBAL_PEDAL) psonic.sleep(0.2)
def riff_5(tempo=2): psonic.sample(psonic.AMBI_LUNAR_LAND) #psonic.sample(psonic.AMBI_DRONE) psonic.sleep(3.99 * tempo) # make the last sleep a little shorter
def four_to_the_floor(): sp.sample(sp.BD_HAUS, amp=2.5) Metronome().beat_sleep(1)
def vinyl_hiss(): sp.sample(sp.VINYL_HISS, rate=7, amp=3) Metronome().beat_sleep(wait_len=2)
def controller_riff(tempo): # the controller synchronizes the threads # make it really soft: psonic.sample(psonic.DRUM_BASS_SOFT, amp=0.3) psonic.sleep(tempo)
def default_riff(self, tempo): psonic.sample(psonic.DRUM_BASS_SOFT, amp=0.5) psonic.sleep(1 * tempo)