Converting old code in sc 13.3

Hello everyone, I recently came across some code by Fredrik Olofsson.(. . Fredrik Olofsson Musikproduktion . . f0blog low-life) This code includes three programs that sonify characters from a text document. However, the code is quite old and does not work with SC 13.3. Can anyone help me update the code to work with modern systems? Thank you for your assistance.

RedSnake

( //z z z z z z z z z z z z z z z z
s.waitForBoot{{
var d= Document.allDocuments.choose.front,
c, i= 0, j= 1, k= 1,
syn= {|f, o| SinOsc.ar(f*[1, 1.01], LPF.ar(LFSaw.ar(f, 0, o), 80))}.play;
0.5.wait;
loop{
d.selectRange(i.div(2)%d.string.size, i%2); c= d.selectedText[0];
syn.set(\f, 99k+c.ascii, \o, i%(d.string.size2)/d.string.size*99);
i= i+j;
if(“%&@”.includes(c), {i= i-[8, 4, -1].choose});
if(“(){}.,:”.includes(c), {j= [-1, 1, 0.25, 1/3, 3]@@i});
if(c==$\n, {k= [1, 1.06, 0.5]@@i});
(1/40).wait
}
}
.fork(AppClock)
}
) //z z z z z z z z z z z z z z z z

RedWorm

( //w w w w w w w w w w w ww
s.waitForBoot{{
var c,i=0,j=1,
syn={|f,o|SinOsc.ar(o*[1,4],LFTri.ar(f,0,pi))}.play,
d=Document.allDocuments.choose.front;
0.5.wait;
loop{
d.selectRange(i.div(2)%d.string.size,1);c=d.selectedText[0];
syn.set(\f,c.ascii.midicps/2,\o,c.ascii/80);
if(c.isDecDigit,{d.selectedString_((c.ascii/d.string.size).asString);j=j.neg*(c.digit+1)});
i=i+j;
(1/20).wait
}
}
.fork(AppClock)
}
)

Red Snail

( // s s s s s s
s.waitForBoot{{
var d= Document.allDocuments.choose.front,
b, c, i, j= 1, k= 1, m= 0, n= 0, o= 1, p= 1,
syn= {|j, k, b, c, a| SinOsc.ar(a, BPF.ar(Saw.ar([j, k], [b, c]), 200, 0.1))}.play;
0.5.wait;
i= d.string.size.div(2);
loop{
d.selectRange(i-j, k+j);
b= d.selectedText.first; c= d.selectedText.last;
if(b==$-, {o= o.neg; n= n+1}); j= j+o;
if(c==$-, {p= p.neg; m= m+1}); k= k+p;
if(j<=k.neg, {o= 1}); if(k<=j.neg, {p= 1});
if(m%4==0, {m= m+1; i= i+1});
if(n%4==0, {n= n+1; i= i-1});
if(j-i>=0, {j= i+k; i= (d.string.size-j).div(2); k= d.string.size; o= p.neg; p= -1});
if(k+i>=d.string.size, {k= (i-j).div(2); i= k; j= k; p= o.neg; o= -1});
syn.set(\j, j, \k, k, \b, b.ascii, \c, c.ascii, \a, j+k/d.string.size);
(1/c.ascii).wait
}
}
.fork(AppClock)
}
) // s s s s s s

You need to swap selectedText with selectedString:

RedWorm

( //w w w w w w w w w w w ww
s.waitForBoot{{
var c,i=0,j=1,
syn={|f,o|SinOsc.ar(o*[1,4],LFTri.ar(f,0,pi))}.play,
d=Document.allDocuments.choose.front;
0.5.wait;
loop{
d.selectRange(i.div(2)%d.string.size,1);c=d.selectedString[0];
syn.set(\f,c.ascii.midicps/2,\o,c.ascii/80);
if(c.isDecDigit,{d.selectedString_((c.ascii/d.string.size).asString);j=j.neg*(c.digit+1)});
i=i+j;
(1/20).wait
}
}
.fork(AppClock)
}
)

Red Snail

( // s s s s s s
s.waitForBoot{{
var d= Document.allDocuments.choose.front,
b, c, i, j= 1, k= 1, m= 0, n= 0, o= 1, p= 1,
syn= {|j, k, b, c, a| SinOsc.ar(a, BPF.ar(Saw.ar([j, k], [b, c]), 200, 0.1))}.play;
0.5.wait;
i= d.string.size.div(2);
loop{
d.selectRange(i-j, k+j);
b= d.selectedString.first; c= d.selectedString.last;
if(b==$-, {o= o.neg; n= n+1}); j= j+o;
if(c==$-, {p= p.neg; m= m+1}); k= k+p;
if(j<=k.neg, {o= 1}); if(k<=j.neg, {p= 1});
if(m%4==0, {m= m+1; i= i+1});
if(n%4==0, {n= n+1; i= i-1});
if(j-i>=0, {j= i+k; i= (d.string.size-j).div(2); k= d.string.size; o= p.neg; p= -1});
if(k+i>=d.string.size, {k= (i-j).div(2); i= k; j= k; p= o.neg; o= -1});
syn.set(\j, j, \k, k, \b, b.ascii, \c, c.ascii, \a, j+k/d.string.size);
(1/c.ascii).wait
}
}
.fork(AppClock)
}
) // s s s s s s
1 Like

+1

Ottieni BlueMail per Android