Celtic Tune : A Fig For A Kiss

#1

Hi to all, this is another Sonic-Pi’s interpretation of a traditional Celtic tune named “A Fig For A Kiss”.

    # Title: A Fig For A Kiss
    # Artist: Mattia Giovanetti
    # Date: 22/04/2019
    #
    # Sonic Pi v3.1

    a1 = [67,71,64,71,71,69,67]
    a2 = [66,69,62,69,69,67,66]
    a3 = [71,74,71,69,67,66,64]

    b1 = [1,0.5,1,0.5,0.5,0.5,0.5]
    b2 = [0.5,0.5,0.5,0.5,0.5,0.5,1.5]

    a4 = [79,76,79,76,76,62,71,]
    a5 = [78,74,74,73,74,78,76,74]
    a6 = [67,71,74,76,78,79,78,76]
    a7 = [79,78,76,78,76,74,76,74,71]

    b3 = [1,0.5,0.5,0.5,0.5,0.5,0.5,0.5]
    b4 = [0.5,0.5,0.5,1,0.5,0.5,0.5,0.5]
    b5 = [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]

    voceA = :pluck
    voceB = :fm

    use_bpm 168
    t = -12
    r = 4.5


    define :rit_A do
      in_thread do
    use_synth voceA
    play_pattern_timed a1,b1, release: r, pitch: t
    play_pattern_timed a2,b1, release: r, pitch: t
    play_pattern_timed a1,b1, release: r, pitch: t
    play_pattern_timed a3,b2, release: r, pitch: t
      end
      in_thread do
    use_synth voceB
    play_chord chord(:e4,:minor), release: 4.5
    sleep 4.5
    play_chord chord(:d4,:major), release: 4.5
    sleep 4.5
    play_chord chord(:e4,:minor), release: 4.5
    sleep 4.5
    play_chord chord(:e4,:minor), release: 1.5
    sleep 1.5
    play_chord chord(:d4,:major), release: 1.5
    sleep 1.5
    play_chord chord(:e4,:minor), release: 1.5
    sleep 1.5
      end
      in_thread do
    3.times do
      sample :drum_bass_hard, rate: 0.75
      sleep 3
      sample :drum_bass_soft, rate: 1.25
      sleep 1.5
    end
    sample :drum_bass_hard, rate: 0.75
    sleep 1.5
    sample :drum_bass_soft, rate: 1.25
    sleep 1.5
    sample :drum_bass_soft, rate: 1.25
    sleep 1.5
      end
      sleep 4.5*4 #tempo di una misura (= 4.5) per numero delle misure (= 4)
    end


    define :rit_B do
      in_thread do
    use_synth voceA
    play_pattern_timed a4,b1, release: r, pitch: t
    play_pattern_timed a5,b3, release: r, pitch: t
    play_pattern_timed a4,b1, release: r, pitch: t
    play_pattern_timed a6,b4, release: r, pitch: t
    ###
    play_pattern_timed a4,b1, release: r, pitch: t
    play_pattern_timed a5,b3, release: r, pitch: t
    play_pattern_timed a7,b5, release: r, pitch: t
    play_pattern_timed a3,b2, release: r, pitch: t
      end
      in_thread do
    use_synth voceB
    play_chord chord(:e4,:minor), release: 4.5
    sleep 4.5
    play_chord chord(:d4,:major), release: 4.5
    sleep 4.5
    play_chord chord(:e4,:minor), release: 4.5
    sleep 4.5
    play_chord chord(:g4,:major), release: 1.5
    sleep 1.5
    play_chord chord(:e4,:minor), release: 1.5
    sleep 1.5
    play_chord chord(:d4,:major), release: 1.5
    sleep 1.5
    ###
    play_chord chord(:e4,:minor), release: 4.5
    sleep 4.5
    play_chord chord(:d4,:major), release: 3
    sleep 3
    play_chord chord(:b3,:minor), release: 1.5
    sleep 1.5
    play_chord chord(:c4,:major), release: 1.5
    sleep 1.5
    play_chord chord(:d4,:major), release: 1.5
    sleep 1.5
    play_chord chord(:e4,:minor), release: 1.5
    sleep 1.5
    play_chord chord(:g4,:major), release: 1.5
    sleep 1.5
    play_chord chord(:d4,:major), release: 1.5
    sleep 1.5
    play_chord chord(:e4,:minor), release: 1.5
    sleep 1.5
      end
      in_thread do
    2.times do
      3.times do
        sample :drum_bass_hard, rate: 0.75
        sleep 3
        sample :drum_bass_soft, rate: 1.25
        sleep 1.5
      end
      sample :drum_bass_hard, rate: 0.75
      sleep 1.5
      sample :drum_bass_soft, rate: 1.25
      sleep 1.5
      sample :drum_bass_soft, rate: 1.25
      sleep 1.5
    end
      end
      sleep 4.5*8
    end

    define :rit_C do
      in_thread do
    use_synth voceA
    play_pattern_timed a3,b2, release: r, pitch: t
      end
      in_thread do
    use_synth voceB
    play_chord chord(:g4,:major), release: 1.5
    sleep 1.5
    play_chord chord(:d4,:major), release: 1.5
    sleep 1.5
    play_chord chord(:e4,:minor), release: 1.5
    sleep 1.5
      end
      in_thread do
    sample :drum_bass_hard, rate: 0.75
    sleep 1.5
    sample :drum_bass_soft, rate: 1.25
    sleep 1.5
    sample :drum_bass_soft, rate: 1.25
    sleep 1.5
      end
      sleep 4.5
    end


    with_fx :reverb, mix: 0.75, damp: 1 do
      with_fx :echo, mix: 0.12, phase: 0.66, decay: 4.5 do
    use_synth voceA
    play 64, release: r, pitch: t
    sleep 1.5
    2.times do
      2.times do
        rit_A
      end
      rit_B
    end
    rit_C
    use_synth voceA
    play_pattern_timed [76,79,83,88,64],[0.2,0.25,0.3,1.25,2.5], release: r, pitch: t
      end
    end
5 Likes
#2

Equally nice! I like the arpeggio flourish at the end.

1 Like
#3

Great !
May i suggest you to give us the possibility to listen easily your work from this forum via a soundcloud link

Cheers

1 Like
#4

First of all, thanks for the attention, I’m glad you enojy this tune. Some time ago I already had a SoundCloud account, I had also a facebook account, one for twitter, youtube, vimeo and so on. I decided to quit with these kind of social networks, in some sense I became more selective and “exclusive”, these reality brings to me too much “white noises”, so I prefer work in a quieter mode. The chooice to publish here (and on my web site) only the code and not the rendered audio is because of the nature of Sonic Pi. The shared code use the default sound, synth and fx libraries. I want to share the music that every machine with a basic Sonic Pi installed on can execute and run.

1 Like
#5

An Irish gig in Sonic Pi! I enjoyed it greatly.

Thanks very much for the music. Inspired by your work, I’m going to learn how to use play_pattern_timed which I haven’t done yet.

1 Like
#6

it’s up to you of course but why not publish it on your website into a “secret” folder and put here the link to simply click and listen to the result easily. The same idea for the source file.
Bon dimanche !

2 Likes
#7

I must admit that I do like the concept of pieces of music that play in any up to date base Sonic Pi distribution. It’s easy to click on the ‘CopyCode’ and then paste it into sp.

I’m not yet at the stage of making recommendations for future releases. But, I think that expanding the range of built-in synths would be very useful, as it would mean that more sophisticated sound design could be done without using add-ons.

2 Likes
#8

Without wanting to hijack this thread much, @PiEaterAndPlayer - that’s exactly what I’m (gradually) in the process of doing - I have a handful of them in various stages of completion, with more hopefully on the way as well! Have a bit of a search in this forum if you’re interested and you’ll find a few related threads - feel free to discuss any ideas around that topic there :slightly_smiling_face:

@Mattia, I enjoyed this one too! I agree with Robin, the flourish at the end is a nice touch :smiley:

2 Likes
#9

hey you know what ? it was just a suggestion. I think as Sonic Pi is an instrument it’s worth to propose a way to listen to the result of the code. As i like to be able to listen to a tune while reading its score, if you publish your code, i suppose it’s for people to listen to your tune so make life easy for people, offer them the possibility to listen to it. A copy paste needs a free empty buffer :slight_smile:
@PiEaterAndPlayer so we are all encouraged to write the version of Sonic Pi we use.
Cheers

2 Likes
#10

…mmm, yes, but I prefer to share the code, to underline the nature of this kind of composition. :slight_smile:

#11

Expand the standard sound and synth library, also but just a bit, would be nice. In case of composition with extra samples, who share the code should share also the archive file filled with the used samples. :slight_smile:

#12

Thanks @ethancrawford :slight_smile:

#13

I will take a step back from my request for additional synths. While I think that additional synths would be nice, I’ve realised that I’ve not been pushing the synthesis potential of Sonic Pi anywhere near its limits, and need to look further into this.

(Sorry if this has gone a bit off-topic.)

#14

I understand your reason, and don’t misunderstand my opinion on it, it’s a good idea, but really want keep only the code shared because of the nature of these compositions. :blush: