1;Written by Iain McCurdy, 2009
2
3;Modified for QuteCsound by René, March 2011
4;Tested on Ubuntu 10.04 with csound-float 5.13.0 and QuteCsound svn rev 817
5
6;Notes on modifications from original csd:
7;	Add tables for exp slider
8;	INIT instrument added
9
10
11;my flags on Ubuntu: -odac -b1024 -B2048 -+rtaudio=alsa -+rtmidi=null -m0
12<CsoundSynthesizer>
13<CsOptions>
14
15</CsOptions>
16<CsInstruments>
17sr		= 44100	;SAMPLE RATE
18ksmps	= 100	;NUMBER OF AUDIO SAMPLES IN EACH CONTROL
19nchnls	= 2		;NUMBER OF CHANNELS (2=STEREO)
200dbfs	= 1		;MAXIMUM AMPLITUDE REGARDLESS OF BIT DEPTH
21
22
23giExp1	ftgen	0, 0, 129, -25, 0, 0.5, 128, 20000.0		;TABLE FOR EXP SLIDER
24
25
26instr	10	;GUI
27	ktrig	metro	10
28	if (ktrig == 1)	then
29		gkamp		invalue	"Amplitude"
30		kfreq 		invalue	"Frequency"
31		gkfreq		tablei	kfreq, giExp1, 1
32					outvalue	"Frequency_Value", gkfreq
33		gkbeans		invalue	"NbBeans"
34		gkdamp		invalue	"Damping"
35		gkdecay		invalue	"Decay"
36		gkoutgain		invalue	"OutGain"
37		gktimes 		invalue	"NbShakes"
38	endif
39endin
40
41instr	1
42	kSwitch		changed		gkdecay	;GENERATE A MOMENTARY '1' PULSE IN OUTPUT 'kSwitch' IF ANY OF THE SCANNED INPUT VARIABLES CHANGE. (OUTPUT 'kSwitch' IS NORMALLY ZERO)
43	if kSwitch=1	then
44		reinit	BEGIN
45	endif
46	BEGIN:
47	ashaker 		shaker 		gkamp, gkfreq, gkbeans, gkdamp, gktimes , i(gkdecay)
48				rireturn
49				outs 		ashaker * gkoutgain, ashaker * gkoutgain
50endin
51
52instr	2	;INIT
53		outvalue	"Amplitude"	, 0.2
54		outvalue	"Frequency"	, 0.0653
55		outvalue	"NbBeans"		, 30
56		outvalue	"Damping"		, 0.99
57		outvalue	"NbShakes"	, 5
58		outvalue	"Decay"		, 0
59		outvalue	"OutGain"		, 0.5
60endin
61</CsInstruments>
62<CsScore>
63;INSTR | START | DURATION
64i 10		0		3600	;GUI
65
66i 2		0		0.1	;INIT
67</CsScore>
68</CsoundSynthesizer>
69<bsbPanel>
70 <label>Widgets</label>
71 <objectName/>
72 <x>801</x>
73 <y>282</y>
74 <width>518</width>
75 <height>557</height>
76 <visible>true</visible>
77 <uuid/>
78 <bgcolor mode="background">
79  <r>241</r>
80  <g>226</g>
81  <b>185</b>
82 </bgcolor>
83 <bsbObject version="2" type="BSBLabel">
84  <objectName/>
85  <x>2</x>
86  <y>2</y>
87  <width>512</width>
88  <height>553</height>
89  <uuid>{aa607456-d368-4d59-8497-d16d608404c3}</uuid>
90  <visible>true</visible>
91  <midichan>0</midichan>
92  <midicc>0</midicc>
93  <label>shaker</label>
94  <alignment>center</alignment>
95  <font>Liberation Sans</font>
96  <fontsize>18</fontsize>
97  <precision>3</precision>
98  <color>
99   <r>0</r>
100   <g>0</g>
101   <b>0</b>
102  </color>
103  <bgcolor mode="background">
104   <r>147</r>
105   <g>154</g>
106   <b>255</b>
107  </bgcolor>
108  <bordermode>border</bordermode>
109  <borderradius>5</borderradius>
110  <borderwidth>2</borderwidth>
111 </bsbObject>
112 <bsbObject version="2" type="BSBLabel">
113  <objectName/>
114  <x>8</x>
115  <y>69</y>
116  <width>220</width>
117  <height>30</height>
118  <uuid>{640b50b7-7200-4f81-8394-89d9843ae939}</uuid>
119  <visible>true</visible>
120  <midichan>0</midichan>
121  <midicc>0</midicc>
122  <label>Amplitude</label>
123  <alignment>left</alignment>
124  <font>Liberation Sans</font>
125  <fontsize>10</fontsize>
126  <precision>3</precision>
127  <color>
128   <r>0</r>
129   <g>0</g>
130   <b>0</b>
131  </color>
132  <bgcolor mode="nobackground">
133   <r>255</r>
134   <g>255</g>
135   <b>255</b>
136  </bgcolor>
137  <bordermode>noborder</bordermode>
138  <borderradius>1</borderradius>
139  <borderwidth>1</borderwidth>
140 </bsbObject>
141 <bsbObject version="2" type="BSBHSlider">
142  <objectName>Amplitude</objectName>
143  <x>8</x>
144  <y>48</y>
145  <width>500</width>
146  <height>27</height>
147  <uuid>{5585fa6f-0f63-4ac3-bf1b-809c2b1d9134}</uuid>
148  <visible>true</visible>
149  <midichan>0</midichan>
150  <midicc>0</midicc>
151  <minimum>0.00000000</minimum>
152  <maximum>1.00000000</maximum>
153  <value>0.20000000</value>
154  <mode>lin</mode>
155  <mouseControl act="jump">continuous</mouseControl>
156  <resolution>-1.00000000</resolution>
157  <randomizable group="0">false</randomizable>
158 </bsbObject>
159 <bsbObject version="2" type="BSBDisplay">
160  <objectName>Amplitude</objectName>
161  <x>448</x>
162  <y>69</y>
163  <width>60</width>
164  <height>30</height>
165  <uuid>{b731b52e-e14a-476a-a583-f3b2bd885539}</uuid>
166  <visible>true</visible>
167  <midichan>0</midichan>
168  <midicc>0</midicc>
169  <label>0.200</label>
170  <alignment>right</alignment>
171  <font>Liberation Sans</font>
172  <fontsize>9</fontsize>
173  <precision>3</precision>
174  <color>
175   <r>0</r>
176   <g>0</g>
177   <b>0</b>
178  </color>
179  <bgcolor mode="nobackground">
180   <r>255</r>
181   <g>255</g>
182   <b>255</b>
183  </bgcolor>
184  <bordermode>noborder</bordermode>
185  <borderradius>1</borderradius>
186  <borderwidth>1</borderwidth>
187 </bsbObject>
188 <bsbObject version="2" type="BSBButton">
189  <objectName/>
190  <x>8</x>
191  <y>8</y>
192  <width>120</width>
193  <height>30</height>
194  <uuid>{04d44ebe-12eb-4bb0-a3f5-9e4fd3e7830e}</uuid>
195  <visible>true</visible>
196  <midichan>0</midichan>
197  <midicc>0</midicc>
198  <type>event</type>
199  <pressedValue>1.00000000</pressedValue>
200  <stringvalue/>
201  <text>Shake !</text>
202  <image>/</image>
203  <eventLine>i 1 0 -1</eventLine>
204  <latch>false</latch>
205  <latched>false</latched>
206 </bsbObject>
207 <bsbObject version="2" type="BSBLabel">
208  <objectName/>
209  <x>8</x>
210  <y>115</y>
211  <width>220</width>
212  <height>30</height>
213  <uuid>{1fee3c20-99d2-4c60-baa7-669d23492f06}</uuid>
214  <visible>true</visible>
215  <midichan>0</midichan>
216  <midicc>0</midicc>
217  <label>Frequency</label>
218  <alignment>left</alignment>
219  <font>Liberation Sans</font>
220  <fontsize>10</fontsize>
221  <precision>3</precision>
222  <color>
223   <r>0</r>
224   <g>0</g>
225   <b>0</b>
226  </color>
227  <bgcolor mode="nobackground">
228   <r>255</r>
229   <g>255</g>
230   <b>255</b>
231  </bgcolor>
232  <bordermode>noborder</bordermode>
233  <borderradius>1</borderradius>
234  <borderwidth>1</borderwidth>
235 </bsbObject>
236 <bsbObject version="2" type="BSBHSlider">
237  <objectName>Frequency</objectName>
238  <x>8</x>
239  <y>94</y>
240  <width>500</width>
241  <height>27</height>
242  <uuid>{f5ebacc2-9a31-48e3-adb0-3cb090aec444}</uuid>
243  <visible>true</visible>
244  <midichan>0</midichan>
245  <midicc>0</midicc>
246  <minimum>0.00000000</minimum>
247  <maximum>1.00000000</maximum>
248  <value>0.77000000</value>
249  <mode>lin</mode>
250  <mouseControl act="jump">continuous</mouseControl>
251  <resolution>-1.00000000</resolution>
252  <randomizable group="0">false</randomizable>
253 </bsbObject>
254 <bsbObject version="2" type="BSBDisplay">
255  <objectName>Frequency_Value</objectName>
256  <x>448</x>
257  <y>115</y>
258  <width>60</width>
259  <height>30</height>
260  <uuid>{221d17eb-f6ee-4286-a97f-e6bc5c0a1749}</uuid>
261  <visible>true</visible>
262  <midichan>0</midichan>
263  <midicc>0</midicc>
264  <label>1749.532</label>
265  <alignment>right</alignment>
266  <font>Liberation Sans</font>
267  <fontsize>9</fontsize>
268  <precision>3</precision>
269  <color>
270   <r>0</r>
271   <g>0</g>
272   <b>0</b>
273  </color>
274  <bgcolor mode="nobackground">
275   <r>255</r>
276   <g>255</g>
277   <b>255</b>
278  </bgcolor>
279  <bordermode>noborder</bordermode>
280  <borderradius>1</borderradius>
281  <borderwidth>1</borderwidth>
282 </bsbObject>
283 <bsbObject version="2" type="BSBLabel">
284  <objectName/>
285  <x>8</x>
286  <y>161</y>
287  <width>220</width>
288  <height>30</height>
289  <uuid>{bce7cccd-a303-4a57-af94-fd50cf914991}</uuid>
290  <visible>true</visible>
291  <midichan>0</midichan>
292  <midicc>0</midicc>
293  <label>Number of Beans</label>
294  <alignment>left</alignment>
295  <font>Liberation Sans</font>
296  <fontsize>10</fontsize>
297  <precision>3</precision>
298  <color>
299   <r>0</r>
300   <g>0</g>
301   <b>0</b>
302  </color>
303  <bgcolor mode="nobackground">
304   <r>255</r>
305   <g>255</g>
306   <b>255</b>
307  </bgcolor>
308  <bordermode>noborder</bordermode>
309  <borderradius>1</borderradius>
310  <borderwidth>1</borderwidth>
311 </bsbObject>
312 <bsbObject version="2" type="BSBHSlider">
313  <objectName>NbBeans</objectName>
314  <x>8</x>
315  <y>140</y>
316  <width>500</width>
317  <height>27</height>
318  <uuid>{aaf82558-9229-4d61-8190-0286f3764e87}</uuid>
319  <visible>true</visible>
320  <midichan>0</midichan>
321  <midicc>0</midicc>
322  <minimum>1.00000000</minimum>
323  <maximum>500.00000000</maximum>
324  <value>177.64600000</value>
325  <mode>lin</mode>
326  <mouseControl act="jump">continuous</mouseControl>
327  <resolution>-1.00000000</resolution>
328  <randomizable group="0">false</randomizable>
329 </bsbObject>
330 <bsbObject version="2" type="BSBDisplay">
331  <objectName>NbBeans</objectName>
332  <x>448</x>
333  <y>161</y>
334  <width>60</width>
335  <height>30</height>
336  <uuid>{1cd1723d-bcd9-44df-9f08-9d8191f03601}</uuid>
337  <visible>true</visible>
338  <midichan>0</midichan>
339  <midicc>0</midicc>
340  <label>177.646</label>
341  <alignment>right</alignment>
342  <font>Liberation Sans</font>
343  <fontsize>9</fontsize>
344  <precision>3</precision>
345  <color>
346   <r>0</r>
347   <g>0</g>
348   <b>0</b>
349  </color>
350  <bgcolor mode="nobackground">
351   <r>255</r>
352   <g>255</g>
353   <b>255</b>
354  </bgcolor>
355  <bordermode>noborder</bordermode>
356  <borderradius>1</borderradius>
357  <borderwidth>1</borderwidth>
358 </bsbObject>
359 <bsbObject version="2" type="BSBLabel">
360  <objectName/>
361  <x>8</x>
362  <y>207</y>
363  <width>220</width>
364  <height>30</height>
365  <uuid>{0f0e06ef-104c-459c-8a8b-3bf531321341}</uuid>
366  <visible>true</visible>
367  <midichan>0</midichan>
368  <midicc>0</midicc>
369  <label>Damping</label>
370  <alignment>left</alignment>
371  <font>Liberation Sans</font>
372  <fontsize>10</fontsize>
373  <precision>3</precision>
374  <color>
375   <r>0</r>
376   <g>0</g>
377   <b>0</b>
378  </color>
379  <bgcolor mode="nobackground">
380   <r>255</r>
381   <g>255</g>
382   <b>255</b>
383  </bgcolor>
384  <bordermode>noborder</bordermode>
385  <borderradius>1</borderradius>
386  <borderwidth>1</borderwidth>
387 </bsbObject>
388 <bsbObject version="2" type="BSBHSlider">
389  <objectName>Damping</objectName>
390  <x>8</x>
391  <y>186</y>
392  <width>500</width>
393  <height>27</height>
394  <uuid>{4a2f399c-8a7b-40cf-84ab-839e1d7012f5}</uuid>
395  <visible>true</visible>
396  <midichan>0</midichan>
397  <midicc>0</midicc>
398  <minimum>0.98000000</minimum>
399  <maximum>1.00000000</maximum>
400  <value>0.98000000</value>
401  <mode>lin</mode>
402  <mouseControl act="jump">continuous</mouseControl>
403  <resolution>-1.00000000</resolution>
404  <randomizable group="0">false</randomizable>
405 </bsbObject>
406 <bsbObject version="2" type="BSBDisplay">
407  <objectName>Damping</objectName>
408  <x>448</x>
409  <y>207</y>
410  <width>60</width>
411  <height>30</height>
412  <uuid>{62bd5b38-121f-4382-8c01-02c75edf2237}</uuid>
413  <visible>true</visible>
414  <midichan>0</midichan>
415  <midicc>0</midicc>
416  <label>0.980</label>
417  <alignment>right</alignment>
418  <font>Liberation Sans</font>
419  <fontsize>9</fontsize>
420  <precision>3</precision>
421  <color>
422   <r>0</r>
423   <g>0</g>
424   <b>0</b>
425  </color>
426  <bgcolor mode="nobackground">
427   <r>255</r>
428   <g>255</g>
429   <b>255</b>
430  </bgcolor>
431  <bordermode>noborder</bordermode>
432  <borderradius>1</borderradius>
433  <borderwidth>1</borderwidth>
434 </bsbObject>
435 <bsbObject version="2" type="BSBLabel">
436  <objectName/>
437  <x>8</x>
438  <y>253</y>
439  <width>220</width>
440  <height>30</height>
441  <uuid>{3967c371-a6b0-46ca-a51c-5a44bcad618d}</uuid>
442  <visible>true</visible>
443  <midichan>0</midichan>
444  <midicc>0</midicc>
445  <label>Decay Time (i-rate)</label>
446  <alignment>left</alignment>
447  <font>Liberation Sans</font>
448  <fontsize>10</fontsize>
449  <precision>3</precision>
450  <color>
451   <r>0</r>
452   <g>0</g>
453   <b>0</b>
454  </color>
455  <bgcolor mode="nobackground">
456   <r>255</r>
457   <g>255</g>
458   <b>255</b>
459  </bgcolor>
460  <bordermode>noborder</bordermode>
461  <borderradius>1</borderradius>
462  <borderwidth>1</borderwidth>
463 </bsbObject>
464 <bsbObject version="2" type="BSBHSlider">
465  <objectName>Decay</objectName>
466  <x>8</x>
467  <y>232</y>
468  <width>500</width>
469  <height>27</height>
470  <uuid>{fa94c4bb-3469-4fbf-9096-f6f7c115eb69}</uuid>
471  <visible>true</visible>
472  <midichan>0</midichan>
473  <midicc>0</midicc>
474  <minimum>0.00000000</minimum>
475  <maximum>1.00000000</maximum>
476  <value>0.00000000</value>
477  <mode>lin</mode>
478  <mouseControl act="jump">continuous</mouseControl>
479  <resolution>-1.00000000</resolution>
480  <randomizable group="0">false</randomizable>
481 </bsbObject>
482 <bsbObject version="2" type="BSBDisplay">
483  <objectName>Decay</objectName>
484  <x>448</x>
485  <y>253</y>
486  <width>60</width>
487  <height>30</height>
488  <uuid>{1f01b045-b441-4f44-8dfe-884fb64aba2a}</uuid>
489  <visible>true</visible>
490  <midichan>0</midichan>
491  <midicc>0</midicc>
492  <label>0.000</label>
493  <alignment>right</alignment>
494  <font>Liberation Sans</font>
495  <fontsize>9</fontsize>
496  <precision>3</precision>
497  <color>
498   <r>0</r>
499   <g>0</g>
500   <b>0</b>
501  </color>
502  <bgcolor mode="nobackground">
503   <r>255</r>
504   <g>255</g>
505   <b>255</b>
506  </bgcolor>
507  <bordermode>noborder</bordermode>
508  <borderradius>1</borderradius>
509  <borderwidth>1</borderwidth>
510 </bsbObject>
511 <bsbObject version="2" type="BSBLabel">
512  <objectName/>
513  <x>5</x>
514  <y>355</y>
515  <width>507</width>
516  <height>196</height>
517  <uuid>{4dd9a56f-89f0-4d88-aacf-1fcb6f6145fd}</uuid>
518  <visible>true</visible>
519  <midichan>0</midichan>
520  <midicc>0</midicc>
521  <label>----------------------------------------------------------------------------------------------------------------------------
522'shaker' is a semi-physical model of the sound of a maraca being shaken. 'Frequency' controls the resonance of the maraca. 'Number of Beans' seems to offer inverse control of the number of beans in the shaker. High values here result in a shaker containing fewer beans. 'Damping' simulates the internal mechanical damping of the shaker. Higher values closer to 1 result in less damping. 'Amplitude' controls the speed of shaking as well as the amplitude. For this reason a separate output gain is provided. 'Number of Shakes' works as expected except that one extra shake is given for the number indicated, e.g. given a value zero, one shake will result. 'Decay Time' appears to have no effect.</label>
523  <alignment>left</alignment>
524  <font>Liberation Sans</font>
525  <fontsize>14</fontsize>
526  <precision>3</precision>
527  <color>
528   <r>0</r>
529   <g>0</g>
530   <b>0</b>
531  </color>
532  <bgcolor mode="nobackground">
533   <r>255</r>
534   <g>255</g>
535   <b>255</b>
536  </bgcolor>
537  <bordermode>noborder</bordermode>
538  <borderradius>1</borderradius>
539  <borderwidth>1</borderwidth>
540 </bsbObject>
541 <bsbObject version="2" type="BSBSpinBox">
542  <objectName>NbShakes</objectName>
543  <x>278</x>
544  <y>274</y>
545  <width>50</width>
546  <height>30</height>
547  <uuid>{73b6e3dd-b842-4f01-9d9b-5a8f495a4dca}</uuid>
548  <visible>true</visible>
549  <midichan>0</midichan>
550  <midicc>0</midicc>
551  <alignment>right</alignment>
552  <font>Liberation Sans</font>
553  <fontsize>14</fontsize>
554  <color>
555   <r>0</r>
556   <g>0</g>
557   <b>0</b>
558  </color>
559  <bgcolor mode="nobackground">
560   <r>255</r>
561   <g>255</g>
562   <b>255</b>
563  </bgcolor>
564  <resolution>1.00000000</resolution>
565  <minimum>0</minimum>
566  <maximum>50</maximum>
567  <randomizable group="0">false</randomizable>
568  <value>5</value>
569 </bsbObject>
570 <bsbObject version="2" type="BSBLabel">
571  <objectName/>
572  <x>134</x>
573  <y>275</y>
574  <width>141</width>
575  <height>30</height>
576  <uuid>{0ff7e4d8-7aa2-4580-992a-1085433af7a3}</uuid>
577  <visible>true</visible>
578  <midichan>0</midichan>
579  <midicc>0</midicc>
580  <label>Number of Shakes</label>
581  <alignment>right</alignment>
582  <font>Liberation Sans</font>
583  <fontsize>10</fontsize>
584  <precision>3</precision>
585  <color>
586   <r>0</r>
587   <g>0</g>
588   <b>0</b>
589  </color>
590  <bgcolor mode="nobackground">
591   <r>255</r>
592   <g>255</g>
593   <b>255</b>
594  </bgcolor>
595  <bordermode>noborder</bordermode>
596  <borderradius>1</borderradius>
597  <borderwidth>1</borderwidth>
598 </bsbObject>
599 <bsbObject version="2" type="BSBLabel">
600  <objectName/>
601  <x>8</x>
602  <y>338</y>
603  <width>220</width>
604  <height>30</height>
605  <uuid>{bb8274f3-5c02-4c77-910c-7af6261b3bdc}</uuid>
606  <visible>true</visible>
607  <midichan>0</midichan>
608  <midicc>0</midicc>
609  <label>Output Gain</label>
610  <alignment>left</alignment>
611  <font>Liberation Sans</font>
612  <fontsize>10</fontsize>
613  <precision>3</precision>
614  <color>
615   <r>0</r>
616   <g>0</g>
617   <b>0</b>
618  </color>
619  <bgcolor mode="nobackground">
620   <r>255</r>
621   <g>255</g>
622   <b>255</b>
623  </bgcolor>
624  <bordermode>noborder</bordermode>
625  <borderradius>1</borderradius>
626  <borderwidth>1</borderwidth>
627 </bsbObject>
628 <bsbObject version="2" type="BSBHSlider">
629  <objectName>OutGain</objectName>
630  <x>8</x>
631  <y>317</y>
632  <width>500</width>
633  <height>27</height>
634  <uuid>{8060c436-34f2-4247-9dc1-8c1a551bb6c6}</uuid>
635  <visible>true</visible>
636  <midichan>0</midichan>
637  <midicc>0</midicc>
638  <minimum>0.00000000</minimum>
639  <maximum>10.00000000</maximum>
640  <value>0.50000000</value>
641  <mode>lin</mode>
642  <mouseControl act="jump">continuous</mouseControl>
643  <resolution>-1.00000000</resolution>
644  <randomizable group="0">false</randomizable>
645 </bsbObject>
646 <bsbObject version="2" type="BSBDisplay">
647  <objectName>OutGain</objectName>
648  <x>448</x>
649  <y>338</y>
650  <width>60</width>
651  <height>30</height>
652  <uuid>{54cc0b6c-d8c5-41a7-96ae-7b54ef47ec42}</uuid>
653  <visible>true</visible>
654  <midichan>0</midichan>
655  <midicc>0</midicc>
656  <label>0.500</label>
657  <alignment>right</alignment>
658  <font>Liberation Sans</font>
659  <fontsize>9</fontsize>
660  <precision>3</precision>
661  <color>
662   <r>0</r>
663   <g>0</g>
664   <b>0</b>
665  </color>
666  <bgcolor mode="nobackground">
667   <r>255</r>
668   <g>255</g>
669   <b>255</b>
670  </bgcolor>
671  <bordermode>noborder</bordermode>
672  <borderradius>1</borderradius>
673  <borderwidth>1</borderwidth>
674 </bsbObject>
675</bsbPanel>
676<bsbPresets>
677</bsbPresets>
678<EventPanel name="" tempo="60.00000000" loop="8.00000000" x="913" y="162" width="655" height="346" visible="true" loopStart="0" loopEnd="0">    </EventPanel>
679