FoxDot composition

Well i dont know if we share only sonic pi related ideas, or generally coded music,
anyway here is a track i made in FoxDot with pretty basic knowledge of the language.

Crunchy von M. E. (

Hi @holz - these forums are mainly for Sonic Pi related things - although broader areas of interest are definitely encouraged especially if they cross-pollinate and provide inspiration/motivation for our community.

In this case, I’d be very much interested in what you did in FoxDot, how it might relate to Sonic Pi (for example, which bits were much easier/more expressive in FoxDot) which an eye to look at what we might add to Sonic Pi to make this kind of thing easier.

I’m definitely interested in making little pattern languages easier to work with and share, so that kind of feedback would be super useful :slight_smile:

1 Like

Hi aaron, glad u liked it :slight_smile:

i think a key component which makes composing in FoxDot very easy is the function Var

it looks something like that var([1,2,3],[1,2,3])
this would mean 1,2,3 1,1,2,2,3,3 1,1,1, 2,2,2, 3,3,3
this allows to generate very quickly quite complex structures, i am not aware of that function in SP maybe i am missing it.
Otherwise i would say Sonic Pi and Foxdot are capable of the same stuff, but i am like an advanced newb xD

Hey, if you wanted that kind of result, you could take a look at the stretch function:

define :var do |a, s|
  r = []
  s.each do |i|
    r = r + stretch(a, i)
  return r

puts var([1,2,3],[1,2,3]) # => [1,2,3 1,1,2,2,3,3 1,1,1, 2,2,2, 3,3,3]