(I should probably start a new topic for this, don’t want to overload the other thread - Mergrim tribute - that this appears in)
PD-Pi
(I should probably start a new topic for this, don’t want to overload the other thread - Mergrim tribute - that this appears in)
PD-Pi
For those following, I now have 5 buffers’ worth of ‘tutorial’ sketches for my student, and buffer 6 covers the intro to the Stardrive track. I have intentionally used a combination of pattern arrays, play_pattern_timed, and spread().rotate() for melodic and rhythmic contours, to expose the student to the different ways to sequence events.
I had considered using the ‘patented’ DJDave pattern function definition (if mypat == “x–x–x-”) but couldn’t quite see how to use it for melodic sequences.
Anyhoo:
/6 using the delay: control to sequence events in time/
use_synth :bass_foundation
pat1 = [1,0,1,0,0,1,0,2,0,0,0,0,0,2,3,2]
live_loop :bass2 do
use_synth_defaults release: 0.4
tick
play 32 if pat1.look == 1
play 34 if pat1.look == 2
play 36 if pat1.look == 3
sleep 0.25
end
use_synth :dsaw
live_loop :melody do
use_synth_defaults amp: 0.3, attack: 0.2, release: 0.2
play_pattern_timed [44,51,50,58], [0.75,1,0.5,1.75]
end
live_loop :drums, delay: 8 do
tick
sample :drum_bass_hard if spread(1,4).look
sample :drum_snare_hard, rate: 0.75 if spread(1,4).rotate(2).look
sample :perc_snap, rate: 0.75 if spread(1,4).rotate(2).look
sleep 0.25
end
live_loop :hats, delay: 16 do
12.times do
sample :drum_cymbal_closed
sleep 0.25
end
4.times do
sample :drum_cymbal_closed
sample :drum_cymbal_open, amp: 0.5, sustain: 0.3 if spread(2,4).rotate(1).tick
sleep 0.25
end
end
Over the next few months my student and I will add effects (slow filter sweeps, delay on/off, reverb etc), but that icing isn’t vital atm, I more concerned with getting him to sequence and control events in time, and in real time.
PD-Pi
Very cool.
I’m working on some utils to help arrange and perform music, including handling drum notation. It should be done later this week. I’ll be posting it to github, and I’ll post a message here talking about it.
Hi @HarryLeBlanc
I look forward to seeing the results - I do enjoy the way we are forced to think when sequencing musical events in Sonic Pi, and as a non-expert coder, I’m developing a ‘new’ conceptual model of event timing.
I was raised on audio SW like Audiomulch, Ableton, then Max and PD; Sonic Pi encourages a different way of conceptualising and realising music - no GUI - which is why I love it!!
PD-Pi
I just finished YummyFillings.rb and posted it to github; there’s another thread discussing it in detail. Tons of methods to help with all sorts of things – lfos, envelopes, trancegates, making rhythms swing, stutter effect for samples, simplifying transposing sample, arranging multiple instruments within a single method, etc etc. I hope you find it useful.
I haven’t yet delved into supercollider, puredata, etc., though I did dabble a bit in moduar synthesis with cardinal/vcvrack and reaktor.
It’s really a golden age for music making on the computer.
Hi
I will check this out after the holidays - looks like a lot of work you did!!
ps I highly recommend Pure Data if I may, especially pd-l2Ork or PurrData. I remember, maybe 20 years ago, installing Ableton Live and Reason, and thinking “this is it, this is all I’ll ever need!” And I get that same vibe now, but with Sonic Pi and PD (and OSC )
PD-Pi
[update]
So, I’ve assigned the 6 parts/sections of the intro to functions, with start/stop args so I can sequence the parts at will. I was going to leave the FX until the very end, but couldn’t resist.
And I learned something new!!
You can add FX when you call the function from another buffer, for example:
/Buffer 0/
define :foo do
live_loop :riff do
play some sounds
sleep n
end
end
Then elsewhere:
/Buffer 1/
with_fx :reverb do
foo
end
And it applies the effect to the active loop(s).
I’ll post a short video of me playing the intro to Stardrive in this way shortly.
PD-Pi