source: Freeze/freeze.ck @ 385

Revision 17, 4.0 KB checked in by tiagoft, 11 years ago (diff)

Repository organization

  • Property svn:executable set to *
Line 
1/* Aqui, comecar somente com uma linha mesmo,
2mas acrescentar a outra linha no contra tempo em fade in.
3tamb acrescentar posicionamento e tamanho randomico
4de acordo com o tempo
51) Uma vez criada uma classe pública (para compartilhar dados
6entre processos através de variaveis estaticas, temos como deleta-la??
72) Como posso acessar o nome dos arquivos de um diretorio??
8*/
90 => int x => int y => int count => int rand_dur;
100 => float rand_rate => float rand_gain;
11Hid hiM;
12Hid hiK;
13HidMsg msg;
14hiM.openMouse( 0 );
15hiK.openKeyboard( 0 );
16
17Gain g => dac;
180 => g.gain;
19SndBuf buf[20];
20Shred shreds[20];
21"bleu.wav" => string filename;
22for(0=> int i; i < 20; i++)
23{
24  filename => buf[i].read;
25  0 => buf[i].rate;
26  buf[i] => g;
27}
28// starts playing the hole sound file
29buf[0].samples() => int size => int file_size;
300 => int position;
31<<<"samples in sound file: ", buf[0].samples()>>>;
32
33fun void voice(int n)
34{
35    while( true )
36    {
37        position => buf[n].pos;
38        Std.rand2f(.6 - rand_gain, .6 + rand_gain) => buf[n].gain;
39        1 + Std.rand2f(-rand_rate,rand_rate) => buf[n].rate;
40        ( size + Std.rand2f(0,rand_dur) )::samp => now;
41    }
42}
43
44fun void mouseMonitor()
45{
46    while( true )
47    {
48        hiM => now;
49        while( hiM.recv( msg ) )
50        {
51            if( msg.isMouseMotion() )
52            {
53                msg.deltaX*1000 => x;
54                msg.deltaY*1000 => y;
55                if( position + x <= file_size )
56                    position + x => position;
57                if( position + x < 0 )
58                    0 => position;
59                if( position + size + y <= file_size )
60                    size + y => size;
61                if( position + size + y > file_size )
62                    file_size - position => size;
63                if (size + y < 10 )
64                   10 => size;
65                   
66                <<< position, size >>>;
67            }
68            else if( msg.isButtonDown() )
69            {
70                if( msg.which == 0 )
71                1 => g.gain;
72            }
73            else if( msg.isButtonUp() )
74            {
75                0 => g.gain;
76            }
77        }
78    }
79}
80
81fun void keyboardMonitor()
82{
83    while( true )
84    {
85        hiK => now;
86        while( hiK.recv( msg ) )
87        {
88            if( msg.isButtonDown() )
89            {
90                if( msg.which == 30)
91                {
92                    1 +=> count;
93                    <<<"count: ", count>>>;
94                    spork ~ voice(count) @=> shreds[count];
95                }
96                if( msg.which == 44 )
97                {
98                    Machine.remove(shreds[count].id());
99                    1 -=> count;
100                }
101                //////////
102                if( msg.which == 31 )
103                {
104                    500 +=> rand_dur;
105                }
106                if( msg.which == 45 )
107                {
108                    500 -=> rand_dur;
109                    if( rand_dur < 0 ) 0 => rand_dur;
110                }
111                //////////
112                if( msg.which == 32 )
113                {
114                    0.1 +=> rand_rate;
115                }
116                if( msg.which == 46 )
117                {
118                    0.1 -=> rand_rate;
119                    if( rand_rate < 0 ) 0 => rand_rate;
120                }
121                /////////
122                if( msg.which == 33 )
123                {
124                    0.1 +=> rand_gain;
125                }
126                if( msg.which == 47 )
127                {
128                    0.1 -=> rand_gain;
129                    if( rand_gain < 0 ) 0 => rand_gain;
130                }
131            <<<msg.which, "count: ", count, " rand_dur: ", rand_dur, " rand_rate: ", rand_rate, " rand_gain: ", rand_gain>>>;
132            }
133        }
134    }
135}
136
137spork ~ mouseMonitor();
138spork ~ keyboardMonitor();
139//spork ~ voice(0) @=> Shred a;
140<<< "me here">>>;
141while( true) 1::second => now;
Note: See TracBrowser for help on using the repository browser.