GridsToNoise
For the 1st day of MinaCoding2024 : "Favorite Song" will be coded in SonicPi with the array made in Python.
GridToNoise remixes a previous SonicPi coded composition that has been a favorite as of late to code with and sonifies a 16 x 16 array through various ways to produce the sound
Poetry
Magic that is within
Others may not see
But for the beholder
it is never hidden
As it is a folder
That holds the gateway to the rhythm
That has its own ocean, its own sea
That may open to its own breeze
The magic that is within
That others may not see
Audio
IllestPreacha · GridToNoise
Code
SonicPi
use_random_seed Time.now.to_i
def sonification(shipyard,looping,sampling)
live_loop looping do
for i in (0...shipyard.size)
for j in (0...shipyard[i].length)
x = shipyard[i][j]
y = Math.sqrt(shipyard[i][j])
case x
when 1..3
with_fx :ping_pong, mix: 0.65 do
with_fx :ixi_techno, mix: 0.75 do
with_fx [:echo,:whammy].choose, mix: rrand(0.4,0.8) do
sample [:loop_safari,:tabla_ghe4].choose, amp: 6, rate: x * rrand_i(-2,2) + 0.01, beat_stretch: y
end
end
end
when 4..6
with_fx [:ping_pong,:vowel].choose, mix: rrand(0.4,0.8) do
sample [:elec_blip,:elec_blip2,:elec_bong].choose, beat_stretch: y + 1, amp: x - 1, decay: x + 1
end
when 7..9
if x % 2 == 0
use_synth :piano
n = ring(:b3,:c4,:c5,:d6,:e7,x*9,x*12)
else
use_synth [:prophet,:chipbass,:chiplead].choose
n = ring(:c5,:a4,:b1,x*7)
end
with_fx :wobble do
play n.tick, on: spread(x+6,24).look, release: (x/24), pan: -0.5
end
else
with_fx [:ping_pong,:flanger,:whammy].choose, amp: 1, mix: rrand(0.4,0.8) do
sample sampling, attack: x, beat_stretch: (x-3).abs
end
end
sleep [0.5,0.75,1,1.5,2].choose
end
end
end
end
sonification(shipyard5,:yard5,:ambi_glass_hum)
sonification(shipyard4,:yard4,:ambi_glass_rub)
sonification(shipyard3,:yard3,:ambi_piano)
sonification(shipyard2,:yard2,:ambi_glass_hum)
sonification(shipyard1,:yard1,:ambi_piano)
sonification(shipyard1.shuffle,:yard1mix,:ambi_choir)
sonification(shipyard3.shuffle,:yard3mix,:ambi_lunar_land)
sonification(shipyard5.shuffle,:yard5mix,:ambi_soft_buzz)
Python
import numpy as np
import seaborn as sns
import matplotlib.pylab as plt
def battle():
boats = [0,1,2,3,4,5,6,7,8,9,10,11]
prob = [0.025,0.025,0.05,0.05,0.05,0.05,0.1,0.1,0.1,0.1,0.2,0.15]
shipyard2 = np.random.choice(boats, (16,16), p=prob)
return shipyard2
def plotting(x):
letters = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P']
uniform_data = x
ax = sns.heatmap(uniform_data, linewidth=0.5,cmap="Reds")
ax.set_xticklabels(letters)
plt.show()
return x
plotting(battle())
Array
shipyard1 = [[ 7, 2, 8, 6, 4, 11, 6, 7, 11, 7, 10, 10, 10, 5, 11, 7],
[ 5, 5, 10, 8, 1, 4, 10, 11, 10, 11, 6, 10, 11, 10, 2, 4],
[11, 1, 8, 9, 10, 7, 10, 10, 5, 10, 9, 6, 6, 1, 9, 11],
[10, 8, 10, 6, 11, 1, 5, 9, 6, 1, 10, 4, 10, 7, 10, 7],
[10, 8, 10, 10, 7, 4, 1, 9, 11, 9, 10, 2, 7, 10, 8, 5],
[10, 8, 10, 9, 10, 8, 8, 9, 10, 11, 8, 3, 10, 5, 10, 8],
[ 2, 3, 5, 10, 7, 9, 11, 6, 6, 6, 3, 10, 7, 6, 10, 3],
[ 9, 11, 9, 9, 10, 11, 11, 10, 11, 7, 10, 10, 7, 6, 8, 6],
[11, 4, 6, 7, 11, 10, 5, 6, 6, 11, 0, 9, 8, 10, 11, 9],
[ 4, 7, 11, 6, 7, 9, 11, 9, 1, 9, 8, 11, 3, 9, 6, 8],
[ 3, 11, 3, 10, 7, 9, 10, 4, 0, 7, 6, 11, 2, 8, 10, 11],
[ 7, 6, 10, 1, 11, 2, 3, 10, 6, 8, 4, 11, 3, 8, 8, 6],
[ 4, 2, 1, 11, 1, 11, 11, 8, 6, 10, 8, 10, 1, 10, 4, 10],
[ 8, 6, 8, 3, 5, 10, 9, 2, 10, 11, 7, 6, 10, 11, 11, 9],
[ 8, 7, 11, 10, 1, 10, 8, 10, 4, 9, 10, 3, 7, 11, 7, 4],
[ 8, 8, 10, 5, 9, 0, 2, 10, 9, 5, 0, 10, 6, 0, 10, 11]]
shipyard2 = [[ 8, 10, 7, 6, 4, 7, 10, 1, 5, 8, 10, 9, 6, 9, 10, 5],
[11, 3, 8, 10, 8, 10, 4, 7, 10, 7, 10, 7, 10, 10, 10, 10],
[ 7, 5, 7, 10, 7, 7, 8, 10, 10, 3, 6, 10, 11, 6, 6, 9],
[10, 11, 6, 10, 9, 11, 11, 2, 4, 9, 9, 2, 8, 1, 11, 1],
[11, 9, 10, 11, 9, 9, 7, 2, 6, 9, 10, 11, 9, 9, 0, 11],
[ 8, 6, 9, 9, 10, 4, 6, 10, 7, 4, 9, 11, 4, 8, 6, 7],
[11, 6, 6, 4, 10, 2, 6, 4, 7, 2, 7, 9, 10, 10, 10, 9],
[ 8, 0, 11, 8, 1, 11, 5, 7, 10, 7, 7, 5, 11, 0, 10, 1],
[10, 8, 1, 5, 10, 7, 8, 7, 11, 4, 2, 4, 2, 10, 8, 10],
[ 1, 11, 2, 5, 7, 11, 11, 2, 7, 3, 6, 10, 8, 8, 10, 4],
[ 6, 10, 6, 6, 10, 2, 9, 5, 8, 6, 8, 10, 1, 11, 10, 6],
[ 9, 7, 9, 4, 1, 6, 6, 7, 8, 9, 10, 11, 6, 6, 10, 8],
[ 9, 3, 10, 7, 0, 11, 10, 5, 11, 11, 9, 7, 8, 10, 10, 0],
[ 2, 11, 6, 10, 9, 7, 1, 10, 7, 0, 0, 9, 7, 8, 3, 8],
[ 3, 9, 5, 10, 2, 7, 4, 6, 2, 1, 4, 5, 6, 3, 10, 7],
[ 4, 10, 6, 9, 7, 10, 6, 4, 11, 5, 4, 3, 8, 10, 9, 6]]
shipyard3 = [[10, 11, 6, 7, 8, 6, 6, 4, 10, 11, 2, 2, 2, 10, 6, 10],
[ 2, 10, 7, 10, 8, 7, 10, 1, 8, 3, 11, 7, 8, 5, 10, 7],
[ 9, 10, 6, 9, 8, 0, 8, 11, 3, 6, 4, 10, 5, 11, 8, 2],
[ 7, 7, 3, 6, 11, 6, 3, 10, 7, 7, 8, 7, 6, 8, 11, 3],
[ 9, 10, 10, 9, 10, 10, 10, 6, 8, 5, 10, 8, 11, 6, 2, 11],
[10, 10, 2, 10, 7, 5, 5, 6, 7, 9, 5, 10, 11, 7, 9, 10],
[ 7, 10, 10, 10, 9, 10, 6, 10, 2, 11, 8, 8, 7, 10, 1, 8],
[11, 10, 11, 10, 8, 10, 8, 9, 10, 10, 10, 10, 10, 2, 0, 3],
[10, 11, 7, 8, 10, 11, 7, 4, 11, 8, 2, 2, 10, 1, 1, 4],
[ 5, 6, 11, 10, 2, 1, 6, 5, 7, 2, 8, 8, 8, 6, 5, 4],
[10, 8, 4, 3, 10, 7, 11, 6, 8, 5, 5, 8, 9, 7, 7, 10],
[ 7, 11, 11, 2, 9, 3, 9, 8, 9, 11, 7, 6, 11, 11, 4, 2],
[ 6, 10, 9, 11, 4, 11, 8, 3, 4, 8, 11, 7, 11, 6, 3, 8],
[ 9, 8, 4, 4, 11, 8, 8, 10, 11, 9, 3, 10, 11, 10, 7, 6],
[ 4, 5, 9, 4, 1, 7, 10, 5, 10, 6, 11, 11, 0, 0, 8, 7],
[ 6, 10, 10, 11, 10, 0, 10, 2, 6, 0, 0, 6, 10, 9, 9, 8]]
shipyard4 = [[10, 10, 6, 8, 9, 7, 6, 9, 11, 4, 6, 3, 3, 2, 6, 10],
[ 1, 11, 11, 9, 5, 6, 8, 1, 10, 7, 3, 3, 10, 11, 10, 5],
[ 3, 10, 4, 10, 10, 7, 6, 8, 7, 1, 11, 2, 7, 10, 4, 10],
[ 3, 10, 6, 7, 8, 6, 1, 7, 8, 7, 6, 8, 4, 7, 6, 11],
[ 9, 10, 9, 11, 10, 8, 7, 4, 5, 11, 11, 3, 9, 7, 10, 7],
[ 3, 8, 7, 8, 10, 10, 3, 5, 9, 8, 8, 6, 7, 7, 10, 10],
[ 3, 8, 1, 2, 7, 4, 9, 7, 2, 10, 3, 6, 0, 1, 10, 7],
[10, 5, 11, 3, 5, 6, 10, 6, 8, 8, 6, 8, 7, 3, 4, 7],
[ 7, 8, 2, 9, 6, 11, 7, 8, 1, 7, 11, 11, 10, 7, 11, 11],
[ 5, 11, 0, 11, 6, 10, 5, 9, 9, 6, 10, 10, 8, 1, 9, 11],
[ 6, 0, 10, 10, 11, 3, 5, 7, 6, 9, 11, 6, 6, 11, 10, 10],
[ 2, 6, 10, 5, 10, 8, 1, 8, 11, 8, 4, 8, 11, 9, 10, 10],
[ 6, 11, 11, 6, 7, 8, 2, 8, 8, 6, 10, 8, 10, 7, 2, 3],
[10, 2, 10, 7, 6, 6, 11, 10, 1, 6, 10, 10, 11, 7, 11, 10],
[ 8, 11, 9, 8, 10, 9, 10, 10, 3, 11, 5, 11, 10, 7, 11, 3],
[10, 6, 10, 9, 10, 2, 1, 7, 9, 7, 7, 6, 5, 7, 8, 10]]
shipyard5 = [[11, 7, 6, 9, 10, 2, 10, 5, 8, 3, 6, 10, 6, 0, 9, 3],
[ 9, 11, 2, 10, 8, 2, 9, 4, 11, 10, 3, 0, 9, 10, 2, 7],
[10, 6, 11, 6, 11, 9, 0, 7, 9, 11, 11, 5, 7, 11, 8, 11],
[ 9, 3, 1, 9, 11, 9, 6, 2, 10, 2, 10, 6, 5, 6, 9, 9],
[10, 5, 6, 3, 9, 5, 5, 11, 6, 3, 6, 10, 3, 4, 10, 3],
[ 4, 10, 5, 2, 10, 6, 4, 11, 7, 3, 9, 7, 10, 6, 7, 11],
[11, 10, 9, 10, 10, 11, 10, 0, 11, 11, 7, 9, 2, 11, 6, 8],
[10, 10, 3, 2, 10, 4, 8, 4, 10, 9, 8, 4, 9, 9, 1, 4],
[ 7, 7, 11, 11, 4, 11, 6, 10, 6, 9, 9, 11, 6, 0, 4, 7],
[ 8, 7, 7, 9, 8, 8, 11, 9, 4, 11, 7, 8, 1, 11, 7, 9],
[10, 4, 2, 4, 6, 6, 11, 7, 5, 6, 7, 7, 6, 11, 10, 7],
[ 9, 10, 6, 1, 10, 9, 8, 10, 11, 9, 3, 9, 10, 10, 2, 10],
[ 7, 10, 9, 10, 2, 10, 9, 10, 4, 10, 11, 9, 10, 10, 6, 4],
[ 6, 10, 3, 7, 2, 10, 6, 9, 6, 9, 8, 10, 11, 11, 9, 3],
[10, 6, 11, 10, 5, 3, 11, 9, 9, 6, 5, 6, 7, 8, 4, 2],
[ 1, 2, 10, 10, 4, 9, 4, 1, 9, 10, 11, 8, 4, 9, 7, 2]]