Да, оригинал (preset "Martin - Disco Mix 1") живёт в стандартной инсталляции (скажите, если надо поделиться им, или прочим (небольшим) опытом общения с MilkDrop), а свою версию я сейчас попробую сюда вклеить (посмотрим, поместится ли она в один коммент).
Первое впечатление было, что стандартная коллекция "MilkDrop presets" (которая приходит с инсталляцией Winamp) очень красивая, очень приятно просто дать Winamp гулять случайно по этой коллекции и смотреть, что получается, при этом каждый preset -- несколько десятков или сотен строк примерно такого кода, как я поместил, и можно выбрать наиболее интересные, разобраться, как они устроены, и их модифицировать (потом оказалось, что и без понимания того, как всё в точности работает, можно делать интересные модификации, хотя чем больше понимаешь, тем, конечно, лучше).
Сама тусовка вокруг Winamp и MilkDrop очень привлекательная (история Winamp вполне легендарна, и американский со-автор Winamp -- очень известный и смелый борец против copyright, который ухитрялся выпускать file sharing software, работая в AOL после того, как они купили Winamp, несмотря на крайнее неудовольствие AOL: http://en.wikipedia.org/wiki/Justin_Frankel )
Канонического определения языка пресетов, кажется, к сожалению, нет (по крайней мере, я не нашел). Но есть некоторое количество tutorials, которые, вместе с большим количеством доступных примеров разной степени сложности, помогают разобраться. (Система, вообще говоря open source, и это тот не вполне удобный случай, когда определением языка является имплентация.)
Я попробую в ближайшие дни написать более подробно про tutorials, которые я нашел, и, если получится, про что-то из того, чему я научился. Пример, который я здесь поместил, сделан без (и до) особого понимания (главное изменение по сравнению с оригиналом -- добавление большого warp, и, счастливым образом, в результате изменений, которые я сделал, он перестал зашкаливать иногда в слишком светлое на музыке этого типа, но я не знаю точно, почему). Менять можно как в меню (генерируя новый код для модифицированного пресета), так и просто в текстовом редакторе (более "программистский" стиль) -- я пробовал и то, и другое.
***
(copying from youtube description of this clip, so that it's all here):
music credits:
first 30 seconds: a fragment of Chopin: Mazurkas Op.7 #1 by Arthur Rubinstein (Rubinstein Collection, Vol.50)
last 90 seconds: 3 fragments (30 seconds each) of the track "Homogenous Lens" (the second track of the second disk of the 4-CD set named "Ambient Odyssey"), created by "Voyage Of The Future Race" (real name: Dave Hendry)
video credits:
first 30 seconds: Winamp MilkDrop2 plugin, preset: Martin - Disco Mix 1
last 90 seconds: my edits of the same preset (my main change was adding a lot of "warp" to it)
"Sorry, but your comment of 9452 characters exceeds the maximum character length of 4300. Please go back, shorten it, and try posting it again" -- придётся в три приёма...
вроде, получилось: строчки 1-137, 138-281, 282-382 (там немного изменений по сравнению с оригиналом, но diff показывает много изменённых строк, поскольку это делалось через меню, и в сгенерированном коде во многих местах другое количество значащих цифр).
Hi, since you have Paid Account, may you try, please, to add syndication for the blog 'paperdecoder.blogspot.com' It is like adding 'http://paperdecoder.blogspot.com/rss.xml' in the form at the end of this page: http://www.livejournal.com/syn/ I never did it by myself, I don't know how to do it *.blogspot.com blogs exactly. But I would greatly appreciate if you can help.
Thanks, I've missed a week worth of postings due to travel, have not noticed that (should catch up now, lest the unread friend's page goes beyond the 2-week barrier :-) ).
no subject
Date: 2011-12-31 10:15 pm (UTC)no subject
Date: 2011-12-31 10:35 pm (UTC)no subject
Date: 2011-12-31 10:46 pm (UTC)no subject
Date: 2012-01-01 12:04 am (UTC)Сама тусовка вокруг Winamp и MilkDrop очень привлекательная (история Winamp вполне легендарна, и американский со-автор Winamp -- очень известный и смелый борец против copyright, который ухитрялся выпускать file sharing software, работая в AOL после того, как они купили Winamp, несмотря на крайнее неудовольствие AOL: http://en.wikipedia.org/wiki/Justin_Frankel )
Канонического определения языка пресетов, кажется, к сожалению, нет (по крайней мере, я не нашел). Но есть некоторое количество tutorials, которые, вместе с большим количеством доступных примеров разной степени сложности, помогают разобраться. (Система, вообще говоря open source, и это тот не вполне удобный случай, когда определением языка является имплентация.)
Я попробую в ближайшие дни написать более подробно про tutorials, которые я нашел, и, если получится, про что-то из того, чему я научился. Пример, который я здесь поместил, сделан без (и до) особого понимания (главное изменение по сравнению с оригиналом -- добавление большого warp, и, счастливым образом, в результате изменений, которые я сделал, он перестал зашкаливать иногда в слишком светлое на музыке этого типа, но я не знаю точно, почему). Менять можно как в меню (генерируя новый код для модифицированного пресета), так и просто в текстовом редакторе (более "программистский" стиль) -- я пробовал и то, и другое.
***
(copying from youtube description of this clip, so that it's all here):
music credits:
first 30 seconds: a fragment of Chopin: Mazurkas Op.7 #1 by Arthur Rubinstein (Rubinstein Collection, Vol.50)
last 90 seconds: 3 fragments (30 seconds each) of the track "Homogenous Lens" (the second track of the second disk of the 4-CD set named "Ambient Odyssey"), created by "Voyage Of The Future Race" (real name: Dave Hendry)
video credits:
first 30 seconds: Winamp MilkDrop2 plugin, preset: Martin - Disco Mix 1
last 90 seconds: my edits of the same preset (my main change was adding a lot of "warp" to it)
***
no subject
Date: 2011-12-31 10:40 pm (UTC)no subject
Date: 2011-12-31 10:41 pm (UTC)PSVERSION=2
PSVERSION_WARP=2
PSVERSION_COMP=2
[preset00]
fRating=4.000
fGammaAdj=1.980
fDecay=0.500
fVideoEchoZoom=1.000
fVideoEchoAlpha=0.500
nVideoEchoOrientation=3
nWaveMode=4
bAdditiveWaves=1
bWaveDots=0
bWaveThick=1
bModWaveAlphaByVolume=1
bMaximizeWaveColor=0
bTexWrap=1
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=1
bSolarize=0
bInvert=0
fWaveAlpha=0.001
fWaveScale=0.527
fWaveSmoothing=0.450
fWaveParam=0.000
fModWaveAlphaStart=0.000
fModWaveAlphaEnd=1.320
fWarpAnimSpeed=1.459
fWarpScale=2.007
fZoomExponent=1.00000
fShader=0.000
zoom=1.47182
rot=1.00000
cx=0.500
cy=0.500
dx=0.00000
dy=0.00000
warp=27.53023
sx=0.99990
sy=1.00000
wave_r=0.800
wave_g=0.490
wave_b=1.000
wave_x=0.500
wave_y=0.500
ob_size=0.015
ob_r=0.000
ob_g=0.000
ob_b=1.000
ob_a=0.000
ib_size=0.260
ib_r=0.250
ib_g=0.250
ib_b=0.250
ib_a=0.000
nMotionVectorsX=64.000
nMotionVectorsY=48.000
mv_dx=0.000
mv_dy=0.000
mv_l=1.850
mv_r=0.500
mv_g=0.500
mv_b=0.500
mv_a=0.000
b1n=0.000
b2n=0.000
b3n=0.000
b1x=1.000
b2x=1.000
b3x=1.000
b1ed=0.000
wavecode_0_enabled=1
wavecode_0_samples=282
wavecode_0_sep=20
wavecode_0_bSpectrum=0
wavecode_0_bUseDots=1
wavecode_0_bDrawThick=0
wavecode_0_bAdditive=1
wavecode_0_scaling=3.91581
wavecode_0_smoothing=0.10000
wavecode_0_r=0.200
wavecode_0_g=0.300
wavecode_0_b=1.000
wavecode_0_a=0.600
wave_0_per_point1=
wave_0_per_point2=x = sample;
wave_0_per_point3=y = value1 * rand(50)/100 * abs(sample-.5)+ .49;
wave_0_per_point4=
wave_0_per_point5=a = q26/4 * (.2 + abs(sample-.5));
wavecode_1_enabled=0
wavecode_1_samples=512
wavecode_1_sep=0
wavecode_1_bSpectrum=0
wavecode_1_bUseDots=1
wavecode_1_bDrawThick=1
wavecode_1_bAdditive=0
wavecode_1_scaling=0.89152
wavecode_1_smoothing=0.82000
wavecode_1_r=1.000
wavecode_1_g=1.000
wavecode_1_b=1.000
wavecode_1_a=0.100
wave_1_per_point1=xi = rand(100)/100;
wave_1_per_point2=yi = rand(100)/100;
wave_1_per_point3=
wave_1_per_point4=x = xi; y = yi;
wave_1_per_point5=
wave_1_per_point6=a = q21/15;
wavecode_2_enabled=0
wavecode_2_samples=512
wavecode_2_sep=0
wavecode_2_bSpectrum=0
wavecode_2_bUseDots=0
wavecode_2_bDrawThick=1
wavecode_2_bAdditive=0
wavecode_2_scaling=0.89152
wavecode_2_smoothing=0.82000
wavecode_2_r=0.000
wavecode_2_g=0.200
wavecode_2_b=0.000
wavecode_2_a=1.000
wavecode_3_enabled=0
wavecode_3_samples=512
wavecode_3_sep=0
wavecode_3_bSpectrum=1
wavecode_3_bUseDots=1
wavecode_3_bDrawThick=0
wavecode_3_bAdditive=0
wavecode_3_scaling=1.00000
wavecode_3_smoothing=0.50000
wavecode_3_r=1.000
wavecode_3_g=1.000
wavecode_3_b=1.000
wavecode_3_a=1.000
no subject
Date: 2011-12-31 10:42 pm (UTC)shapecode_0_sides=4
shapecode_0_additive=0
shapecode_0_thickOutline=0
shapecode_0_textured=0
shapecode_0_num_inst=1
shapecode_0_x=0.500
shapecode_0_y=0.500
shapecode_0_rad=0.04896
shapecode_0_ang=0.00000
shapecode_0_tex_ang=1.00531
shapecode_0_tex_zoom=1.53117
shapecode_0_r=0.500
shapecode_0_g=1.000
shapecode_0_b=0.900
shapecode_0_a=1.000
shapecode_0_r2=0.830
shapecode_0_g2=0.930
shapecode_0_b2=0.800
shapecode_0_a2=1.000
shapecode_0_border_r=1.000
shapecode_0_border_g=1.000
shapecode_0_border_b=0.000
shapecode_0_border_a=0.000
shape_0_per_frame1=
shape_0_per_frame2=trel = time/3;
shape_0_per_frame3=
shape_0_per_frame4=x = .5+sin(trel*2);
shape_0_per_frame5=y = .5+cos(trel*1.3);
shape_0_per_frame6=
shape_0_per_frame7=
shape_0_per_frame8=
shape_0_per_frame9=cent = sqrt((x-.5)*(x-.5)+(y-.5)*(y-.5));
shape_0_per_frame10=
shape_0_per_frame11=rad = .1*cent;
shape_0_per_frame12=a = .8;
shapecode_1_enabled=1
shapecode_1_sides=4
shapecode_1_additive=0
shapecode_1_thickOutline=1
shapecode_1_textured=1
shapecode_1_num_inst=1
shapecode_1_x=0.260
shapecode_1_y=0.200
shapecode_1_rad=0.39317
shapecode_1_ang=0.00000
shapecode_1_tex_ang=0.00000
shapecode_1_tex_zoom=0.93550
shapecode_1_r=0.000
shapecode_1_g=0.550
shapecode_1_b=0.500
shapecode_1_a=1.000
shapecode_1_r2=0.000
shapecode_1_g2=0.400
shapecode_1_b2=0.400
shapecode_1_a2=0.070
shapecode_1_border_r=0.300
shapecode_1_border_g=0.700
shapecode_1_border_b=0.800
shapecode_1_border_a=0.200
shape_1_per_frame1=trig = q24;
shape_1_per_frame2=
shape_1_per_frame3=textured = 1;
shape_1_per_frame4=
shape_1_per_frame5=x0 = x0*bnot(trig) + trig*( rand(100)/100);
shape_1_per_frame6=y0 = y0*bnot(trig) + trig*( rand(100)/100);
shape_1_per_frame7=
shape_1_per_frame8=x0 = x0 + .5*q1/fps+q26/200;
shape_1_per_frame9=y0 = y0 + .5*q2/fps;
shape_1_per_frame10=
shape_1_per_frame11=tex_ang = time;
shape_1_per_frame12=tex_zoom = q1;
shape_1_per_frame13=ang = time/100*q2;
shape_1_per_frame14=x = x0; y = y0;
shape_1_per_frame15=rad0 = rad0*bnot(trig) + trig*rand(100)/200;
shape_1_per_frame16=rad = rad0;
shape_1_per_frame17=
shape_1_per_frame18=
shape_1_per_frame19=r0 = bnot(trig)*r0 + trig * rand(10)/10;
shape_1_per_frame20=b0 = bnot(trig)*b0 + trig * rand(10)/10;
shape_1_per_frame21=g0 = bnot(trig)*g0 + trig * rand(10)/10;
shape_1_per_frame22=
shape_1_per_frame23=r = r0; b = b0; g = g0;
shapecode_2_enabled=0
shapecode_2_sides=4
shapecode_2_additive=1
shapecode_2_thickOutline=0
shapecode_2_textured=0
shapecode_2_num_inst=1
shapecode_2_x=0.503
shapecode_2_y=0.500
shapecode_2_rad=0.03886
shapecode_2_ang=0.00000
shapecode_2_tex_ang=0.00000
shapecode_2_tex_zoom=0.60986
shapecode_2_r=1.000
shapecode_2_g=0.100
shapecode_2_b=0.000
shapecode_2_a=0.900
shapecode_2_r2=1.000
shapecode_2_g2=1.000
shapecode_2_b2=1.000
shapecode_2_a2=0.000
shapecode_2_border_r=0.500
shapecode_2_border_g=0.500
shapecode_2_border_b=0.500
shapecode_2_border_a=0.000
shape_2_per_frame1=x = rand(50)/50;
shape_2_per_frame2=y = .5 - 0*rand(15)/200;
shape_2_per_frame3=
shape_2_per_frame4=r = .4;
shape_2_per_frame5=g = .6;
shape_2_per_frame6=b = 1;
shape_2_per_frame7=r2 = r;
shape_2_per_frame8=g2 = g;
shape_2_per_frame9=b2 = b;
shape_2_per_frame10=
shape_2_per_frame11=a = min(q21/2 ,.9);
shape_2_per_frame12=rad = a * (.1+abs(x-.5))/2 ;
shapecode_3_enabled=0
shapecode_3_sides=4
shapecode_3_additive=0
shapecode_3_thickOutline=1
shapecode_3_textured=1
shapecode_3_num_inst=1
shapecode_3_x=0.260
shapecode_3_y=0.760
shapecode_3_rad=0.39478
shapecode_3_ang=0.00000
shapecode_3_tex_ang=0.00000
shapecode_3_tex_zoom=0.49981
shapecode_3_r=1.000
shapecode_3_g=1.000
shapecode_3_b=1.000
shapecode_3_a=1.000
shapecode_3_r2=1.000
shapecode_3_g2=1.000
shapecode_3_b2=1.000
shapecode_3_a2=0.800
shapecode_3_border_r=0.200
shapecode_3_border_g=0.700
shapecode_3_border_b=0.500
shapecode_3_border_a=1.000
shape_3_per_frame1=tex_zoom = q27/2;
no subject
Date: 2011-12-31 10:44 pm (UTC)per_frame_2=dec_slow = pow (0.99, 30/fps);
per_frame_3=beat = max (max (bass, mid), treb);
per_frame_4=avg = avg*dec_slow + beat*(1-dec_slow);
per_frame_5=is_beat = above(beat, 0+avg+peak) * above (time, t0+.2);
per_frame_6=t0 = is_beat*time + (1-is_beat)*t0;
per_frame_7=peak = is_beat * beat + (1-is_beat)*peak*dec_med;
per_frame_8=index = (index + is_beat) %16;
per_frame_9=index2 = (index2 + is_beat*bnot(index))%4;
per_frame_10=
per_frame_11=q20 = avg;
per_frame_12=q21 = beat;
per_frame_13=q22 = peak;
per_frame_14=q23 = index;
per_frame_15=q24 = is_beat;
per_frame_16=q26 = bass_att + mid_att + treb_att;
per_frame_17=q27 = index + 1;
per_frame_18=q28 = index2;
per_frame_19=
per_frame_20=
per_frame_21=
per_frame_22=k1 = is_
per_frame_23=beat*equal(index%2,0);
per_frame_24=p1 = k1*(p1+1) + (1-k1)*p1;
per_frame_25=p2 = dec_med * p2+ (1-dec_med)*p1;
per_frame_26=rott = p2 * 3.1416/4;
per_frame_27=
per_frame_28=q1 = cos(rott);
per_frame_29=q2 = sin(rott);
per_frame_30=q3 = -q2;
per_frame_31=q4 = q1;
per_frame_32=
per_frame_33=
per_frame_34=p3 = p3*dec_med + (1-dec_med) * (100*index + .0*q26);
per_frame_35=q30 = p3 ;
per_frame_36=
per_frame_37=p4 = dec_med*p4 + (1-dec_med)*q27;
per_frame_38=q31 = p4;
per_frame_39=
per_frame_40=//zoom = 1 + .05*q1;
per_frame_41=//rot = -0.01 * (index);
per_frame_42=
per_frame_43=zoom = 1+q28/4;
per_frame_44=warp = .0;
per_frame_45=dx = .2*q2;
warp_1=`sampler sampler_worms;
warp_2=`float3 color, mus;
warp_3=`float dx,dy;
warp_4=`shader_body {
warp_5=`float2 uv1 = (uv-.5) * aspect.xy;
warp_6=`
warp_7=`
warp_8=`float2 uv6 = uv1;
warp_9=`float z = q29*2*length(uv1)+rand_frame * 64;
warp_10=`float2 d = normalize(uv1);
warp_11=`float clp = .5+rand_preset*10;
warp_12=`float2 rs = clamp(tan(z)*d,-clp,clp);
warp_13=`uv += rs/20;
warp_14=`
warp_15=`
warp_16=`uv6 = .4*sin(uv1*22);
warp_17=`mus = .1/(length(uv6));
warp_18=`mus *= roam_cos;
warp_19=`
warp_20=`float3 blur = GetBlur1(frac(uv));
warp_21=`
warp_22=`float3 crisp= tex2D(sampler_main,uv);
warp_23=`
warp_24=`float3 ret1 = crisp - blur*.04 + .15*mus;
warp_25=`q25 = q24;
warp_26=`ret = q25*(ret1-.02)*.98 + (1-q25)* GetPixel(uv_orig);
warp_27=`}
comp_1=`sampler sampler_pw_noise_lq;
comp_2=`
comp_3=`float2 rs;
comp_4=`float3 noise, ret1;
comp_5=`
comp_6=`shader_body {
comp_7=`float corr = texsize.xy*texsize_noise_lq.zw;
comp_8=`float2 uv1 = (uv-.5-.0*float2(q1,q2) );//*aspect.xy;
comp_9=`//uv = mul(uv-.5,float2x2(_qa))+.5;
comp_10=`float h1 = .4;
comp_11=`
comp_12=`
comp_13=`float z = +h1/abs(uv1.y);
comp_14=`rs.x = uv1.x * z;
comp_15=`rs.y = z + time*4;
comp_16=`noise = tex2D(sampler_pw_noise_lq,rs/28);
comp_17=`noise *= (noise >= .84);
comp_18=`ret1 = noise;
comp_19=`
comp_20=`
comp_21=`z = h1/abs(uv1.x);
comp_22=`rs.y = uv1.y * z;
comp_23=`rs.x = z + time*4;
comp_24=`noise = tex2D(sampler_pw_noise_lq,rs/28);
comp_25=`noise *= (noise >= .84);
comp_26=`ret1 += noise;
comp_27=`
comp_28=`ret = GetPixel(uv+ret1*.1)*1.5 - .1*ret1;
comp_29=`}
no subject
Date: 2011-12-31 10:48 pm (UTC)no subject
Date: 2012-01-01 03:21 am (UTC)no subject
Date: 2012-02-08 10:34 am (UTC)since you have Paid Account, may you try, please, to add syndication for the blog 'paperdecoder.blogspot.com'
It is like adding 'http://paperdecoder.blogspot.com/rss.xml' in the form at the end of this page: http://www.livejournal.com/syn/
I never did it by myself, I don't know how to do it *.blogspot.com blogs exactly. But I would greatly appreciate if you can help.
no subject
Date: 2012-02-08 03:24 pm (UTC)I hope, one of them will work.
no subject
Date: 2012-02-08 04:39 pm (UTC)I added both to see which would work best.
no subject
Date: 2012-02-08 04:44 pm (UTC)no subject
Date: 2012-02-18 12:21 am (UTC)I will keep the one with shorter name.
Thanks again!
no subject
Date: 2012-02-21 06:42 am (UTC)Thanks, I've missed a week worth of postings due to travel, have not noticed that (should catch up now, lest the unread friend's page goes beyond the 2-week barrier :-) ).