Oyd, oyd una cosa by Fransisco Guerrero (16th century) played by Sonic Pi

code at Oyd, oyd una cosa by Fransisco Guerrero (16th century) coded for Sonic Pi. Hear it on https://soundcloud.com/rbnsonicpi/oyd-una-cosa · GitHub

2 Likes

Thank you!!
Astonishing classics in a very compact format.

In my opinion it sounds good as well
solo with the synths :pretty_bell, :blade or :rodeo
or in a mixed arrangement (although this is just brute force by attempt)
as below.

Unfortunately we do not have ok horn or organ synths within Sonic PI as a default.

BTW synth :kalimba does seem to have strange defaults (very low amplification)

#OydUnaCosa.rb Oyd, oyd una cosa by Francisco Guerrero 1589
#coded for Sonic Pi by Robin newman October 2021
use_bpm 150
use_synth :pretty_bell
use_synth_defaults attack: 0.08

s=0.9;r=0.4
with_fx :reverb, room: 0.7,mix: 0.6 do
  with_fx :level,amp: 0.5 do
    a1=[:G4,:C5,:C5,:C5,:r,:B4,:D5,:D5,:D5,:E5,:E5,:E5,:D5,:D5,:G5,:G5,:F5,:E5,:E5,:D5,:D5,:r,:r,:r,:B4,:C5,:C5,:A4,:B4,:C5,:G4,:C5,:B4,:A4,:B4,:D5,:E5,:F5,:G5,:E5,:F5,:E5,:D5,:D5,:Cs5,:D5,:D5,:r,:G5,:F5,:E5,:G5,:C5,:E5,:F5,:E5,:A4,:G4,:A4,:B4,:C5,:B4,:C5,:C5,:r,:C5,:B4,:A4,:C5,:F4,:G4,:A4,:B4,:C5,:A4,:B4,:B4,:r,:G5,:F5,:E5,:G5,:C5,:C5,:C5,:C5,:C5,:C5,:D5,:D5,:E5,:E5,:E5,:C5,:C5,:C5,:D5,:E5,:D5,:E5,:r,:r,:C5,:F5,:E5,:C5,:D5,:E5,:D5,:C5,:G5,:F5,:E5,:G5,:F5,:E5,:F5,:D5,:E5,:D5,:C5,:D5,:E5,:C5,:D5,:C5,:B4,:A4,:A4,:G4,:G4,:G4,:C5,:C5,:C5,:r,:B4,:D5,:D5,:D5,:E5,:E5,:E5,:D5,:D5,:G5,:G5,:F5,:E5,:E5,:D5,:D5,:r,:r,:r,:B4,:C5,:C5,:A4,:B4,:C5,:G4,:C5,:B4,:A4,:B4,:D5,:E5,:F5,:G5,:E5,:F5,:E5,:D5,:D5,:Cs5,:D5,:D5,:r,:G5,:F5,:E5,:G5,:C5,:E5,:F5,:E5,:A4,:G4,:A4,:B4,:C5,:B4,:C5,:C5,:r,:C5,:B4,:A4,:C5,:F4,:G4,:A4,:B4,:C5,:A4,:B4,:B4,:r,:G5,:F5,:E5,:G5,:C5,:C5,:C5,:C5,:C5,:C5,:D5,:D5,:E5,:E5]
    b1=[2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,4.0,4.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0,1.0,2.0,0.5,0.5,2.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,2.0,1.0,2.0,1.0,3.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5,2.0,1.0,2.0,1.0,1.0,1.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,1.0,1.0,3.0,1.5,0.5,0.5,0.5,1.0,2.0,1.5,0.5,1.0,1.0,1.0,1.0,3.0,3.0,1.0,1.0,0.5,0.5,1.0,2.0,2.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5,1.0,2.0,1.5,0.5,0.5,0.5,0.5,0.5,2.0,2.0,1.0,0.5,0.5,1.0,1.0,1.0,1.5,0.5,1.0,1.5,0.5,3.0,3.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,4.0,4.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0,1.0,2.0,0.5,0.5,2.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,2.0,1.0,2.0,1.0,3.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5,2.0,1.0,2.0,1.0,1.0,1.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,1.0,1.0,3.0,1.5,0.5,0.5,0.5,1.0,2.0,1.5,0.5,1.0,1.0,1.0,1.0,3.0,3.0]
    in_thread do
      
      for j in 0..a1.length-1
        play a1[j],sustain: b1[j]*s,release: b1[j]*r,pan: -0.7,amp: 0.7
        sleep b1[j]
      end
    end
    
    
    a2=[:r,:r,:r,:G4,:B4,:B4,:C5,:r,:C5,:B4,:B4,:B4,:D5,:C5,:C5,:B4,:r,:B4,:C5,:C5,:C5,:B4,:G4,:A4,:B4,:r,:D5,:E5,:E5,:C5,:D5,:E5,:C5,:D5,:B4,:C5,:D5,:B4,:C5,:C5,:C5,:B4,:A4,:A4,:A4,:A4,:D5,:C5,:B4,:D5,:G4,:C5,:B4,:A4,:C5,:B4,:C5,:C5,:C5,:D5,:C5,:G4,:r,:r,:r,:D5,:C5,:B4,:D5,:G4,:B4,:B4,:C5,:G5,:F5,:E5,:G5,:C5,:E5,:F5,:E5,:C5,:B4,:C5,:C5,:C5,:A4,:A4,:A4,:B4,:C5,:A4,:B4,:G4,:C5,:A4,:A4,:G4,:A4,:B4,:C5,:B4,:C5,:E5,:D5,:C5,:E5,:D5,:C5,:D5,:B4,:B4,:A4,:G4,:A4,:B4,:A4,:A4,:B4,:G4,:G4,:Fs4,:G4,:G4,:r,:r,:r,:G4,:B4,:B4,:C5,:r,:C5,:B4,:B4,:B4,:D5,:C5,:C5,:B4,:r,:B4,:C5,:C5,:C5,:B4,:G4,:A4,:B4,:r,:D5,:E5,:E5,:C5,:D5,:E5,:C5,:D5,:B4,:C5,:D5,:B4,:C5,:C5,:C5,:B4,:A4,:A4,:A4,:A4,:D5,:C5,:B4,:D5,:G4,:C5,:B4,:A4,:C5,:B4,:C5,:C5,:C5,:D5,:C5,:G4,:r,:r,:r,:D5,:C5,:B4,:D5,:G4,:B4,:B4,:C5,:G5,:F5,:E5,:G5,:C5,:E5,:F5,:E5,:C5,:B4,:C5,:C5]
    b2=[4.0,4.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,4.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,2.0,1.0,2.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,3.0,3.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,2.0,1.0,3.0,3.0,1.0,1.0,0.5,0.5,1.0,2.0,2.0,1.0,1.0,1.0,1.5,0.5,0.5,0.5,0.5,1.0,0.5,2.0,1.5,0.5,0.5,0.5,0.5,0.5,2.0,2.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,3.0,3.0,4.0,4.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,4.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,2.0,1.0,2.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,3.0,3.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,2.0,1.0,3.0,3.0]
    in_thread do
      for j in 0..a2.length-1
        play a2[j],sustain: b2[j]*s,release: b2[j]*r,pan: -0.5,amp: 0.7
        sleep b2[j]
      end
    end
    
    a3=[:r,:C4,:G4,:G4,:G4,:r,:D4,:C4,:E4,:G4,:r,:G4,:G4,:A4,:A4,:G4,:G4,:r,:G4,:G4,:A4,:F4,:G4,:G4,:Fs4,:G4,:r,:G4,:C4,:C4,:F4,:D4,:C4,:C4,:G4,:G4,:G4,:A4,:G4,:G4,:A4,:G4,:G4,:F4,:E4,:D4,:D4,:r,:G4,:F4,:E4,:G4,:C4,:E4,:F4,:C4,:D4,:C4,:F4,:G4,:A4,:G4,:C4,:C4,:E4,:D4,:C4,:E4,:A3,:C4,:D4,:C4,:C4,:D4,:G3,:G3,:r,:G4,:G4,:E4,:G4,:G4,:G4,:A4,:G4,:A4,:G4,:G4,:G4,:C4,:F4,:F4,:F4,:D4,:C4,:F4,:E4,:r,:C4,:F4,:D4,:F4,:C4,:C4,:G4,:C4,:r,:r,:G4,:F4,:E4,:G4,:F4,:E4,:F4,:E4,:F4,:D4,:G4,:G3,:D4,:D4,:G3,:G3,:r,:C4,:G4,:G4,:G4,:r,:D4,:C4,:E4,:G4,:r,:G4,:G4,:A4,:A4,:G4,:G4,:r,:G4,:G4,:A4,:F4,:G4,:G4,:Fs4,:G4,:r,:G4,:C4,:C4,:F4,:D4,:C4,:C4,:G4,:G4,:G4,:A4,:G4,:G4,:A4,:G4,:G4,:F4,:E4,:D4,:D4,:r,:G4,:F4,:E4,:G4,:C4,:E4,:F4,:C4,:D4,:C4,:F4,:G4,:A4,:G4,:C4,:C4,:E4,:D4,:C4,:E4,:A3,:C4,:D4,:C4,:C4,:D4,:G3,:G3,:r,:G4,:G4,:E4,:G4,:G4,:G4,:A4,:G4,:A4,:G4,:G4,:G4]
    b3=[4.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,4.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.5,0.5,1.0,2.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0,2.0,2.0,1.0,1.0,1.5,0.5,1.0,1.0,0.5,0.5,0.5,0.5,1.0,1.0,3.0,6.0,1.0,1.0,0.5,0.5,1.0,2.0,2.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5,2.0,2.0,3.0,3.0,1.5,0.5,0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,3.0,3.0,4.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,4.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.5,0.5,1.0,2.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0,2.0,2.0,1.0,1.0,1.5,0.5,1.0,1.0,0.5,0.5,0.5,0.5,1.0,1.0,3.0,6.0]
    in_thread do
      use_synth :rodeo
      for j in 0..a3.length-1
        play a3[j],sustain: b3[j]*s,release: b3[j]*r,pan: 0.7,amp: 0.7
        sleep b3[j]
      end
    end
    
    a4=[:r,:r,:G3,:G4,:G4,:G4,:C4,:D4,:D4,:D4,:D4,:A3,:C4,:D4,:r,:D4,:E4,:E4,:C4,:D4,:E4,:C4,:D4,:r,:r,:r,:D4,:G3,:D4,:D4,:C4,:A3,:C4,:G3,:A3,:B3,:C4,:D4,:E4,:A3,:A3,:A3,:r,:r,:r,:r,:r,:G4,:F4,:E4,:G4,:C4,:E4,:F4,:E4,:D4,:E4,:G4,:G4,:D4,:C4,:B3,:D4,:G3,:G3,:C4,:C4,:E4,:E4,:E4,:C4,:E4,:D4,:C4,:C4,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:G3,:G4,:G4,:G4,:C4,:D4,:D4,:D4,:D4,:A3,:C4,:D4,:r,:D4,:E4,:E4,:C4,:D4,:E4,:C4,:D4,:r,:r,:r,:D4,:G3,:D4,:D4,:C4,:A3,:C4,:G3,:A3,:B3,:C4,:D4,:E4,:A3,:A3,:A3,:r,:r,:r,:r,:r,:G4,:F4,:E4,:G4,:C4,:E4,:F4,:E4,:D4,:E4,:G4,:G4,:D4,:C4,:B3,:D4,:G3,:G3,:C4,:C4,:E4,:E4,:E4,:C4,:E4,:D4,:C4,:C4]
    b4=[4.0,4.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,4.0,4.0,4.0,4.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5,1.0,1.0,1.0,2.0,1.0,3.0,3.0,3.0,3.0,3.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,2.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,4.0,4.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,4.0,4.0,4.0,4.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5,1.0,1.0,1.0,2.0,1.0,3.0,3.0,3.0,3.0,3.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,2.0,3.0,3.0]
    in_thread do
      use_synth :chiplead
      for j in 0..a4.length-1
        play a4[j],sustain: b4[j]*s,release: b4[j]*r,pan: 0.5,amp: 0.7
        sleep b4[j]
      end
    end
    
    a5=[:r,:r,:r,:G3,:C4,:C4,:C4,:C3,:G3,:G3,:G3,:D3,:F3,:C3,:G3,:r,:G3,:C4,:A3,:A3,:G3,:C4,:A3,:G3,:r,:r,:r,:G3,:E3,:D3,:G3,:C3,:F3,:C3,:D3,:E3,:F3,:G3,:D3,:A3,:A3,:D3,:D3,:r,:r,:r,:r,:r,:r,:r,:C4,:B3,:A3,:C4,:F3,:A3,:Bf3,:A3,:G3,:A3,:G3,:r,:G3,:F3,:E3,:G3,:C3,:C3,:r,:C4,:B3,:A3,:C4,:F3,:C3,:C3,:G3,:C3,:C3,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:G3,:C4,:C4,:C4,:C3,:G3,:G3,:G3,:D3,:F3,:C3,:G3,:r,:G3,:C4,:A3,:A3,:G3,:C4,:A3,:G3,:r,:r,:r,:G3,:E3,:D3,:G3,:C3,:F3,:C3,:D3,:E3,:F3,:G3,:D3,:A3,:A3,:D3,:D3,:r,:r,:r,:r,:r,:r,:r,:C4,:B3,:A3,:C4,:F3,:A3,:Bf3,:A3,:G3,:A3,:G3,:r,:G3,:F3,:E3,:G3,:C3,:C3,:r,:C4,:B3,:A3,:C4,:F3,:C3,:C3,:G3,:C3,:C3]
    b5=[4.0,4.0,2.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,4.0,4.0,4.0,4.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,2.0,1.0,3.0,3.0,3.0,3.0,3.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,0.5,0.5,1.0,2.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,2.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,4.0,4.0,2.0,2.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,1.0,1.0,1.0,1.0,2.0,4.0,4.0,4.0,4.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0,2.0,1.0,3.0,3.0,3.0,3.0,3.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,0.5,0.5,1.0,2.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,1.5,0.5,0.5,0.5,1.0,1.0,1.0,2.0,3.0,3.0]
    in_thread do
      for j in 0..a5.length-1
        play a5[j],sustain: b5[j]*s,release: b5[j]*r,amp: 0.7
        sleep b5[j]
      end
    end
  end #level
end #fx

Glad you like it. I also played around with various synths for this. It sounds good with quite a few. There are also one or two new synths coming with SP 4.0b which I have tried.
It is pretty easy to convert this to output midi and then you can easily use external synths from say qsynth

Whith which? Chiplead alone seems a bit a waste of your effort?
Do you recommend an arrangment?

Personally I quite like the effect with chiplead. Although the piece is originally for singers, I think that a somewhat reedy sound maybe akin to what a crumhorn might produce is appropriate for this era.
I have also experimented with various synth sounds using the vital synth where it is easy to produce a wide range of timbre. (I export the notes as a midi stream from Sonic Pi for this.