1;Written by Iain McCurdy 2011 2 3;Modified for QuteCsound by René, May 2011 4;Tested on Ubuntu 10.04 with csound-float (git csound5-3c6d155, May 31 2011) and QuteCsound svn rev 848 5 6 7;Notes on modifications from original csd: 8; Add table(s) for exp slider 9 10 11;my flags on Ubuntu: -iadc -odac -b1024 -B2048 -+rtaudio=alsa -+rtmidi=null -m0 12<CsoundSynthesizer> 13<CsOptions> 14--env:SADIR+=../SourceMaterials 15</CsOptions> 16<CsInstruments> 17sr = 44100 ;SAMPLE RATE 18ksmps = 16 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE 19nchnls = 1 ;NUMBER OF CHANNELS (2=STEREO) 20 21 22giExp1 ftgen 0, 0, 129, -25, 0, 0.125, 128, 4.0 ;TABLE FOR EXP SLIDER 23 24 strset 1, "Write" 25 strset 2, "Read" 26 27#define ANALYSISFILE #"pvswriteFile.pvx"# 28 29instr 10 ;GUI 30 ktrig metro 10 31 if (ktrig == 1) then 32 ;BUTTONS 33 gkwrite invalue "Write" 34 gkread invalue "Read" ;lance i 2 0 3600 35 ;SLIDERS 36 gkptr invalue "Pointer" 37 gkspeed invalue "Speed" 38 ktrans invalue "Transpose" 39 gktrans tablei ktrans, giExp1, 1 40 outvalue "Transpose_Value", gktrans 41 gkGain invalue "Gain" 42 ;MENU 43 gkPtrMode invalue "Mode" 44 endif 45endin 46 47instr 1 ;WRITE PVS FILE 48 event_i "i", 3, 0, 0.01, 2, 2 ;to prevent to read while writing 49 50 asigin inch 1 ;READ AUDIO FROM THE LIVE AUDIO INPUT 51 fsigin pvsanal asigin, 1024, 256, 1024, 1 ;ANALYSE THE AUDIO SIGNAL THAT WAS CREATED IN INSTRUMENT 1. OUTPUT AN F-SIGNAL. 52 pvsfwrite fsigin, $ANALYSISFILE 53endin 54 55instr 2 ;READ PVS FILE 56 event_i "i", 3, 0, 0.01, 1, 1 ;to prevent to write while reading 57 58 ilen filelen $ANALYSISFILE 59 kporttime linseg 0,0.001,0.05 60 61 if gkPtrMode==0 then 62 kptr portk gkptr, kporttime 63 else 64 kptr phasor gkspeed/ilen 65 endif 66 67 fsig1 pvsfread kptr*ilen,$ANALYSISFILE 68 fsig2 pvscale fsig1, gktrans 69 70 aresyn pvsynth fsig2 ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL 71 out aresyn*gkGain 72endin 73 74instr 3 ;CONTROLS 75 Str strget p5 76 turnoff2 p4, 0, 0 77 outvalue Str, 0 78 turnoff 79endin 80 81instr 11 ;INIT 82 outvalue "Gain" , 0.5 83 outvalue "Mode" , 1 84 outvalue "Speed" , 1 85 outvalue "Pointer" , 0.5 86 outvalue "Transpose" , 0.6 87endin 88</CsInstruments> 89<CsScore> 90;INSTR | START | DURATION 91i 10 0 3600 ;GUI 92i 11 0 0 ;INIT 93</CsScore> 94</CsoundSynthesizer> 95 96 97 98<bsbPanel> 99 <label>Widgets</label> 100 <objectName/> 101 <x>73</x> 102 <y>206</y> 103 <width>865</width> 104 <height>362</height> 105 <visible>true</visible> 106 <uuid/> 107 <bgcolor mode="background"> 108 <r>241</r> 109 <g>226</g> 110 <b>185</b> 111 </bgcolor> 112 <bsbObject version="2" type="BSBLabel"> 113 <objectName/> 114 <x>2</x> 115 <y>2</y> 116 <width>512</width> 117 <height>360</height> 118 <uuid>{aa607456-d368-4d59-8497-d16d608404c3}</uuid> 119 <visible>true</visible> 120 <midichan>0</midichan> 121 <midicc>0</midicc> 122 <label>pvswrite</label> 123 <alignment>center</alignment> 124 <font>Liberation Sans</font> 125 <fontsize>18</fontsize> 126 <precision>3</precision> 127 <color> 128 <r>0</r> 129 <g>0</g> 130 <b>0</b> 131 </color> 132 <bgcolor mode="background"> 133 <r>181</r> 134 <g>199</g> 135 <b>255</b> 136 </bgcolor> 137 <bordermode>border</bordermode> 138 <borderradius>5</borderradius> 139 <borderwidth>2</borderwidth> 140 </bsbObject> 141 <bsbObject version="2" type="BSBLabel"> 142 <objectName/> 143 <x>517</x> 144 <y>2</y> 145 <width>348</width> 146 <height>360</height> 147 <uuid>{74928ed2-b701-4668-9a11-74763d317e9b}</uuid> 148 <visible>true</visible> 149 <midichan>0</midichan> 150 <midicc>0</midicc> 151 <label>pvswrite</label> 152 <alignment>center</alignment> 153 <font>Liberation Sans</font> 154 <fontsize>18</fontsize> 155 <precision>3</precision> 156 <color> 157 <r>0</r> 158 <g>0</g> 159 <b>0</b> 160 </color> 161 <bgcolor mode="background"> 162 <r>181</r> 163 <g>199</g> 164 <b>255</b> 165 </bgcolor> 166 <bordermode>border</bordermode> 167 <borderradius>5</borderradius> 168 <borderwidth>2</borderwidth> 169 </bsbObject> 170 <bsbObject version="2" type="BSBLabel"> 171 <objectName/> 172 <x>520</x> 173 <y>21</y> 174 <width>342</width> 175 <height>336</height> 176 <uuid>{d4bdb5ce-87d8-4c8c-9c64-40ec2eed6f5a}</uuid> 177 <visible>true</visible> 178 <midichan>0</midichan> 179 <midicc>0</midicc> 180 <label>----------------------------------------------------------------------------------- 181'pvswrite' allows you to write a streaming f-sig to a pvx file stored on disk. The stored pvx file can be accessed later during that performance or in a completely new performance. In this example the user first records a pvx file to disk using the 'Write' button to start and then stop this procedure. The audio for this pvx file is taken from the computer's live input. This stored file can then be replayed using the 'play' button. 'pvsfread' is used to replay the file and the user can choose between two modes of playback: 182one in which a pointer through the file is controlled manually and another in which the user controls the playback speed. The user can also modulate the transposition of the file - this is implemented using the 'pvscale' opcode. As the file is loaded once during playback, re-recording a new file will not overwrite the original file loaded into memory, instead performance will need to be restarted.</label> 183 <alignment>left</alignment> 184 <font>Liberation Sans</font> 185 <fontsize>14</fontsize> 186 <precision>3</precision> 187 <color> 188 <r>0</r> 189 <g>0</g> 190 <b>0</b> 191 </color> 192 <bgcolor mode="nobackground"> 193 <r>255</r> 194 <g>255</g> 195 <b>255</b> 196 </bgcolor> 197 <bordermode>noborder</bordermode> 198 <borderradius>1</borderradius> 199 <borderwidth>1</borderwidth> 200 </bsbObject> 201 <bsbObject version="2" type="BSBButton"> 202 <objectName>Write</objectName> 203 <x>8</x> 204 <y>55</y> 205 <width>80</width> 206 <height>30</height> 207 <uuid>{24979132-c53f-4414-ac6b-6b4f503ecfe8}</uuid> 208 <visible>true</visible> 209 <midichan>0</midichan> 210 <midicc>0</midicc> 211 <type>event</type> 212 <pressedValue>1.00000000</pressedValue> 213 <stringvalue/> 214 <text> Write</text> 215 <image>/</image> 216 <eventLine>i 1 0 -1</eventLine> 217 <latch>true</latch> 218 <latched>false</latched> 219 </bsbObject> 220 <bsbObject version="2" type="BSBDisplay"> 221 <objectName>Pointer</objectName> 222 <x>448</x> 223 <y>133</y> 224 <width>60</width> 225 <height>30</height> 226 <uuid>{745d6bee-b951-4a03-9fe8-9e10d5ae4556}</uuid> 227 <visible>true</visible> 228 <midichan>0</midichan> 229 <midicc>0</midicc> 230 <label>0.674</label> 231 <alignment>right</alignment> 232 <font>Arial</font> 233 <fontsize>9</fontsize> 234 <precision>3</precision> 235 <color> 236 <r>0</r> 237 <g>0</g> 238 <b>0</b> 239 </color> 240 <bgcolor mode="nobackground"> 241 <r>255</r> 242 <g>255</g> 243 <b>255</b> 244 </bgcolor> 245 <bordermode>noborder</bordermode> 246 <borderradius>1</borderradius> 247 <borderwidth>1</borderwidth> 248 </bsbObject> 249 <bsbObject version="2" type="BSBHSlider"> 250 <objectName>Pointer</objectName> 251 <x>8</x> 252 <y>111</y> 253 <width>500</width> 254 <height>27</height> 255 <uuid>{06814721-6151-4baa-84e2-8f39843b07a4}</uuid> 256 <visible>true</visible> 257 <midichan>0</midichan> 258 <midicc>0</midicc> 259 <minimum>0.00000000</minimum> 260 <maximum>1.00000000</maximum> 261 <value>0.67400000</value> 262 <mode>lin</mode> 263 <mouseControl act="jump">continuous</mouseControl> 264 <resolution>-1.00000000</resolution> 265 <randomizable group="0">false</randomizable> 266 </bsbObject> 267 <bsbObject version="2" type="BSBLabel"> 268 <objectName/> 269 <x>8</x> 270 <y>133</y> 271 <width>150</width> 272 <height>30</height> 273 <uuid>{c6d7165c-6730-426f-b293-52b411bc73cf}</uuid> 274 <visible>true</visible> 275 <midichan>0</midichan> 276 <midicc>0</midicc> 277 <label>File Pointer</label> 278 <alignment>left</alignment> 279 <font>Liberation Sans</font> 280 <fontsize>10</fontsize> 281 <precision>3</precision> 282 <color> 283 <r>0</r> 284 <g>0</g> 285 <b>0</b> 286 </color> 287 <bgcolor mode="nobackground"> 288 <r>255</r> 289 <g>255</g> 290 <b>255</b> 291 </bgcolor> 292 <bordermode>noborder</bordermode> 293 <borderradius>1</borderradius> 294 <borderwidth>1</borderwidth> 295 </bsbObject> 296 <bsbObject version="2" type="BSBDisplay"> 297 <objectName>Speed</objectName> 298 <x>448</x> 299 <y>181</y> 300 <width>60</width> 301 <height>30</height> 302 <uuid>{e18e15d6-c58d-4c38-a766-79602b72f947}</uuid> 303 <visible>true</visible> 304 <midichan>0</midichan> 305 <midicc>0</midicc> 306 <label>0.736</label> 307 <alignment>right</alignment> 308 <font>Arial</font> 309 <fontsize>9</fontsize> 310 <precision>3</precision> 311 <color> 312 <r>0</r> 313 <g>0</g> 314 <b>0</b> 315 </color> 316 <bgcolor mode="nobackground"> 317 <r>255</r> 318 <g>255</g> 319 <b>255</b> 320 </bgcolor> 321 <bordermode>noborder</bordermode> 322 <borderradius>1</borderradius> 323 <borderwidth>1</borderwidth> 324 </bsbObject> 325 <bsbObject version="2" type="BSBHSlider"> 326 <objectName>Speed</objectName> 327 <x>8</x> 328 <y>159</y> 329 <width>500</width> 330 <height>27</height> 331 <uuid>{36779c76-0b42-4e18-819b-e02bf72d22dd}</uuid> 332 <visible>true</visible> 333 <midichan>0</midichan> 334 <midicc>0</midicc> 335 <minimum>-2.00000000</minimum> 336 <maximum>2.00000000</maximum> 337 <value>0.73600000</value> 338 <mode>lin</mode> 339 <mouseControl act="jump">continuous</mouseControl> 340 <resolution>-1.00000000</resolution> 341 <randomizable group="0">false</randomizable> 342 </bsbObject> 343 <bsbObject version="2" type="BSBLabel"> 344 <objectName/> 345 <x>8</x> 346 <y>181</y> 347 <width>150</width> 348 <height>30</height> 349 <uuid>{b74148fe-3ba3-4d62-b507-64eb27627e65}</uuid> 350 <visible>true</visible> 351 <midichan>0</midichan> 352 <midicc>0</midicc> 353 <label>Pointer Speed</label> 354 <alignment>left</alignment> 355 <font>Liberation Sans</font> 356 <fontsize>10</fontsize> 357 <precision>3</precision> 358 <color> 359 <r>0</r> 360 <g>0</g> 361 <b>0</b> 362 </color> 363 <bgcolor mode="nobackground"> 364 <r>255</r> 365 <g>255</g> 366 <b>255</b> 367 </bgcolor> 368 <bordermode>noborder</bordermode> 369 <borderradius>1</borderradius> 370 <borderwidth>1</borderwidth> 371 </bsbObject> 372 <bsbObject version="2" type="BSBDisplay"> 373 <objectName>Transpose_Value</objectName> 374 <x>448</x> 375 <y>229</y> 376 <width>60</width> 377 <height>30</height> 378 <uuid>{3c299cf9-f5e6-4902-9f6c-4d3802f1beb8}</uuid> 379 <visible>true</visible> 380 <midichan>0</midichan> 381 <midicc>0</midicc> 382 <label>1.000</label> 383 <alignment>right</alignment> 384 <font>Arial</font> 385 <fontsize>9</fontsize> 386 <precision>3</precision> 387 <color> 388 <r>0</r> 389 <g>0</g> 390 <b>0</b> 391 </color> 392 <bgcolor mode="nobackground"> 393 <r>255</r> 394 <g>255</g> 395 <b>255</b> 396 </bgcolor> 397 <bordermode>noborder</bordermode> 398 <borderradius>1</borderradius> 399 <borderwidth>1</borderwidth> 400 </bsbObject> 401 <bsbObject version="2" type="BSBHSlider"> 402 <objectName>Transpose</objectName> 403 <x>8</x> 404 <y>207</y> 405 <width>500</width> 406 <height>27</height> 407 <uuid>{b96a19b5-e2ff-4bc8-9d9c-e1878dc2c7ea}</uuid> 408 <visible>true</visible> 409 <midichan>0</midichan> 410 <midicc>0</midicc> 411 <minimum>0.00000000</minimum> 412 <maximum>1.00000000</maximum> 413 <value>0.60000002</value> 414 <mode>lin</mode> 415 <mouseControl act="jump">continuous</mouseControl> 416 <resolution>-1.00000000</resolution> 417 <randomizable group="0">false</randomizable> 418 </bsbObject> 419 <bsbObject version="2" type="BSBLabel"> 420 <objectName/> 421 <x>8</x> 422 <y>229</y> 423 <width>150</width> 424 <height>30</height> 425 <uuid>{3f67483e-a5a5-4c55-8c4c-802b8cb45fcb}</uuid> 426 <visible>true</visible> 427 <midichan>0</midichan> 428 <midicc>0</midicc> 429 <label>Transpose</label> 430 <alignment>left</alignment> 431 <font>Liberation Sans</font> 432 <fontsize>10</fontsize> 433 <precision>3</precision> 434 <color> 435 <r>0</r> 436 <g>0</g> 437 <b>0</b> 438 </color> 439 <bgcolor mode="nobackground"> 440 <r>255</r> 441 <g>255</g> 442 <b>255</b> 443 </bgcolor> 444 <bordermode>noborder</bordermode> 445 <borderradius>1</borderradius> 446 <borderwidth>1</borderwidth> 447 </bsbObject> 448 <bsbObject version="2" type="BSBDisplay"> 449 <objectName>Gain</objectName> 450 <x>448</x> 451 <y>277</y> 452 <width>60</width> 453 <height>30</height> 454 <uuid>{44e73856-6869-4340-96a9-e5a61ecd5938}</uuid> 455 <visible>true</visible> 456 <midichan>0</midichan> 457 <midicc>0</midicc> 458 <label>0.752</label> 459 <alignment>right</alignment> 460 <font>Arial</font> 461 <fontsize>9</fontsize> 462 <precision>3</precision> 463 <color> 464 <r>0</r> 465 <g>0</g> 466 <b>0</b> 467 </color> 468 <bgcolor mode="nobackground"> 469 <r>255</r> 470 <g>255</g> 471 <b>255</b> 472 </bgcolor> 473 <bordermode>noborder</bordermode> 474 <borderradius>1</borderradius> 475 <borderwidth>1</borderwidth> 476 </bsbObject> 477 <bsbObject version="2" type="BSBHSlider"> 478 <objectName>Gain</objectName> 479 <x>8</x> 480 <y>255</y> 481 <width>500</width> 482 <height>27</height> 483 <uuid>{484ef1b1-d231-454a-b908-cadd3e9dcbc1}</uuid> 484 <visible>true</visible> 485 <midichan>0</midichan> 486 <midicc>0</midicc> 487 <minimum>0.00000000</minimum> 488 <maximum>1.00000000</maximum> 489 <value>0.75200000</value> 490 <mode>lin</mode> 491 <mouseControl act="jump">continuous</mouseControl> 492 <resolution>-1.00000000</resolution> 493 <randomizable group="0">false</randomizable> 494 </bsbObject> 495 <bsbObject version="2" type="BSBLabel"> 496 <objectName/> 497 <x>8</x> 498 <y>277</y> 499 <width>150</width> 500 <height>30</height> 501 <uuid>{07143124-f11e-43ad-9bad-2a731b719732}</uuid> 502 <visible>true</visible> 503 <midichan>0</midichan> 504 <midicc>0</midicc> 505 <label>Gain</label> 506 <alignment>left</alignment> 507 <font>Arial</font> 508 <fontsize>10</fontsize> 509 <precision>3</precision> 510 <color> 511 <r>0</r> 512 <g>0</g> 513 <b>0</b> 514 </color> 515 <bgcolor mode="nobackground"> 516 <r>255</r> 517 <g>255</g> 518 <b>255</b> 519 </bgcolor> 520 <bordermode>noborder</bordermode> 521 <borderradius>1</borderradius> 522 <borderwidth>1</borderwidth> 523 </bsbObject> 524 <bsbObject version="2" type="BSBButton"> 525 <objectName>Read</objectName> 526 <x>90</x> 527 <y>55</y> 528 <width>80</width> 529 <height>30</height> 530 <uuid>{ff846fa2-9bfa-40c6-a470-b3b3bf2811f1}</uuid> 531 <visible>true</visible> 532 <midichan>0</midichan> 533 <midicc>0</midicc> 534 <type>event</type> 535 <pressedValue>1.00000000</pressedValue> 536 <stringvalue/> 537 <text> Read</text> 538 <image>/</image> 539 <eventLine>i 2 0 -1</eventLine> 540 <latch>true</latch> 541 <latched>true</latched> 542 </bsbObject> 543 <bsbObject version="2" type="BSBDropdown"> 544 <objectName>Mode</objectName> 545 <x>240</x> 546 <y>55</y> 547 <width>162</width> 548 <height>30</height> 549 <uuid>{faecd829-2f06-4c0e-b683-f5de4235022b}</uuid> 550 <visible>true</visible> 551 <midichan>0</midichan> 552 <midicc>0</midicc> 553 <bsbDropdownItemList> 554 <bsbDropdownItem> 555 <name>Manual Pointer</name> 556 <value>0</value> 557 <stringvalue/> 558 </bsbDropdownItem> 559 <bsbDropdownItem> 560 <name>Speed Control</name> 561 <value>1</value> 562 <stringvalue/> 563 </bsbDropdownItem> 564 </bsbDropdownItemList> 565 <selectedIndex>0</selectedIndex> 566 <randomizable group="0">false</randomizable> 567 </bsbObject> 568</bsbPanel> 569<bsbPresets> 570</bsbPresets> 571<EventPanel name="" tempo="60.00000000" loop="8.00000000" x="913" y="162" width="655" height="346" visible="true" loopStart="0" loopEnd="0"> </EventPanel> 572